Source Code (Proxy)
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
There are no matching entriesUpdate your filters to view other transactions | |||||||||
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ProxyPausable
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.6;
import "./Proxy.sol";
contract ProxyPausable is Proxy {
bytes32 constant PAUSED_SLOT = keccak256(abi.encodePacked("PAUSED_SLOT"));
bytes32 constant PAUZER_SLOT = keccak256(abi.encodePacked("PAUZER_SLOT"));
constructor() Proxy() {
setAddress(PAUZER_SLOT, msg.sender);
}
modifier onlyPauzer() {
require(msg.sender == readAddress(PAUZER_SLOT), "ProxyPausable.onlyPauzer: msg sender not pauzer");
_;
}
modifier notPaused() {
require(!readBool(PAUSED_SLOT), "ProxyPausable.notPaused: contract is paused");
_;
}
function getPauzer() public view returns (address) {
return readAddress(PAUZER_SLOT);
}
function setPauzer(address _newPauzer) public onlyProxyOwner{
setAddress(PAUZER_SLOT, _newPauzer);
}
function renouncePauzer() public onlyPauzer {
setAddress(PAUZER_SLOT, address(0));
}
function getPaused() public view returns (bool) {
return readBool(PAUSED_SLOT);
}
function setPaused(bool _value) public onlyPauzer {
setBool(PAUSED_SLOT, _value);
}
function internalFallback() internal virtual override notPaused {
super.internalFallback();
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.7.6;
import "./ProxyStorage.sol";
contract Proxy is ProxyStorage {
bytes32 constant IMPLEMENTATION_SLOT = keccak256(abi.encodePacked("IMPLEMENTATION_SLOT"));
bytes32 constant OWNER_SLOT = keccak256(abi.encodePacked("OWNER_SLOT"));
modifier onlyProxyOwner() {
require(msg.sender == readAddress(OWNER_SLOT), "Proxy.onlyProxyOwner: msg sender not owner");
_;
}
constructor () {
setAddress(OWNER_SLOT, msg.sender);
}
function getProxyOwner() public view returns (address) {
return readAddress(OWNER_SLOT);
}
function setProxyOwner(address _newOwner) onlyProxyOwner public {
setAddress(OWNER_SLOT, _newOwner);
}
function getImplementation() public view returns (address) {
return readAddress(IMPLEMENTATION_SLOT);
}
function setImplementation(address _newImplementation) onlyProxyOwner public {
setAddress(IMPLEMENTATION_SLOT, _newImplementation);
}
fallback () external payable {
return internalFallback();
}
receive () payable external {
return internalFallback();
}
function internalFallback() internal virtual {
address contractAddr = readAddress(IMPLEMENTATION_SLOT);
assembly {
let ptr := mload(0x40)
calldatacopy(ptr, 0, calldatasize())
let result := delegatecall(gas(), contractAddr, ptr, calldatasize(), 0, 0)
let size := returndatasize()
returndatacopy(ptr, 0, size)
switch result
case 0 { revert(ptr, size) }
default { return(ptr, size) }
}
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.7.6;
contract ProxyStorage {
function readBool(bytes32 _key) public view returns(bool) {
return storageRead(_key) == bytes32(uint256(1));
}
function setBool(bytes32 _key, bool _value) internal {
if(_value) {
storageSet(_key, bytes32(uint256(1)));
} else {
storageSet(_key, bytes32(uint256(0)));
}
}
function readAddress(bytes32 _key) public view returns(address) {
return bytes32ToAddress(storageRead(_key));
}
function setAddress(bytes32 _key, address _value) internal {
storageSet(_key, addressToBytes32(_value));
}
function storageRead(bytes32 _key) public view returns(bytes32) {
bytes32 value;
//solium-disable-next-line security/no-inline-assembly
assembly {
value := sload(_key)
}
return value;
}
function storageSet(bytes32 _key, bytes32 _value) internal {
// targetAddress = _address; // No!
bytes32 implAddressStorageKey = _key;
//solium-disable-next-line security/no-inline-assembly
assembly {
sstore(implAddressStorageKey, _value)
}
}
function bytes32ToAddress(bytes32 _value) public pure returns(address) {
return address(uint160(uint256(_value)));
}
function addressToBytes32(address _value) public pure returns(bytes32) {
return bytes32(uint256(uint160(_value)));
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_value","type":"address"}],"name":"addressToBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_value","type":"bytes32"}],"name":"bytes32ToAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPauzer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProxyOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"readAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"readBool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renouncePauzer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newPauzer","type":"address"}],"name":"setPauzer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"setProxyOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"storageRead","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561001057600080fd5b5061005460405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001203361009d60201b60201c565b61009860405160200180806a14105556915497d4d313d560aa1b815250600b019050604051602081830303815290604052805190602001203361009d60201b60201c565b6100c3565b6100af826100aa836100b3565b6100bf565b5050565b6001600160a01b031690565b9055565b610a66806100d26000396000f3fe6080604052600436106100e15760003560e01c806382c947b71161007f578063aaf10f4211610059578063aaf10f421461029e578063bb15ac8e146102b3578063caaee91c146102dd578063d784d42614610310576100f0565b806382c947b71461020e5780638f4edfe2146102415780639d84ae6914610274576100f0565b806337a440e6116100bb57806337a440e61461016a5780634bde4b2e146101a65780635ced058e146101bb5780636805b84b146101e5576100f0565b806316c38b3c146100f857806317b857dd146101245780631ab7710d14610139576100f0565b366100f0576100ee610343565b005b6100ee610343565b34801561010457600080fd5b506100ee6004803603602081101561011b57600080fd5b503515156103c6565b34801561013057600080fd5b506100ee610493565b34801561014557600080fd5b5061014e61055e565b604080516001600160a01b039092168252519081900360200190f35b34801561017657600080fd5b506101946004803603602081101561018d57600080fd5b50356105a1565b60408051918252519081900360200190f35b3480156101b257600080fd5b5061014e6105a5565b3480156101c757600080fd5b5061014e600480360360208110156101de57600080fd5b50356105e4565b3480156101f157600080fd5b506101fa6105e7565b604080519115158252519081900360200190f35b34801561021a57600080fd5b506101946004803603602081101561023157600080fd5b50356001600160a01b0316610626565b34801561024d57600080fd5b506100ee6004803603602081101561026457600080fd5b50356001600160a01b0316610632565b34801561028057600080fd5b5061014e6004803603602081101561029757600080fd5b50356106fb565b3480156102aa57600080fd5b5061014e610714565b3480156102bf57600080fd5b506101fa600480360360208110156102d657600080fd5b503561075b565b3480156102e957600080fd5b506100ee6004803603602081101561030057600080fd5b50356001600160a01b031661076f565b34801561031c57600080fd5b506100ee6004803603602081101561033357600080fd5b50356001600160a01b0316610837565b61038060405160200180806a14105554d15117d4d313d560aa1b815250600b0190506040516020818303038152906040528051906020012061075b565b156103bc5760405162461bcd60e51b815260040180806020018281038252602b815260200180610a06602b913960400191505060405180910390fd5b6103c4610908565b565b61040360405160200180806a14105556915497d4d313d560aa1b815250600b019050604051602081830303815290604052805190602001206106fb565b6001600160a01b0316336001600160a01b0316146104525760405162461bcd60e51b815260040180806020018281038252602f8152602001806109d7602f913960400191505060405180910390fd5b61049060405160200180806a14105554d15117d4d313d560aa1b815250600b0190506040516020818303038152906040528051906020012082610976565b50565b6104d060405160200180806a14105556915497d4d313d560aa1b815250600b019050604051602081830303815290604052805190602001206106fb565b6001600160a01b0316336001600160a01b03161461051f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806109d7602f913960400191505060405180910390fd5b6103c460405160200180806a14105556915497d4d313d560aa1b815250600b01905060405160208183030381529060405280519060200120600061099b565b600061059c60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001206106fb565b905090565b5490565b600061059c60405160200180806a14105556915497d4d313d560aa1b815250600b019050604051602081830303815290604052805190602001206106fb565b90565b600061059c60405160200180806a14105554d15117d4d313d560aa1b815250600b0190506040516020818303038152906040528051906020012061075b565b6001600160a01b031690565b61066e60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001206106fb565b6001600160a01b0316336001600160a01b0316146106bd5760405162461bcd60e51b815260040180806020018281038252602a8152602001806109ad602a913960400191505060405180910390fd5b61049060405160200180806a14105556915497d4d313d560aa1b815250600b019050604051602081830303815290604052805190602001208261099b565b600061070e610709836105a1565b6105e4565b92915050565b600061059c60405160200180807212535413115351539510551253d397d4d313d5606a1b8152506013019050604051602081830303815290604052805190602001206106fb565b60006001610768836105a1565b1492915050565b6107ab60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001206106fb565b6001600160a01b0316336001600160a01b0316146107fa5760405162461bcd60e51b815260040180806020018281038252602a8152602001806109ad602a913960400191505060405180910390fd5b61049060405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001208261099b565b61087360405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001206106fb565b6001600160a01b0316336001600160a01b0316146108c25760405162461bcd60e51b815260040180806020018281038252602a8152602001806109ad602a913960400191505060405180910390fd5b61049060405160200180807212535413115351539510551253d397d4d313d5606a1b8152506013019050604051602081830303815290604052805190602001208261099b565b600061094f60405160200180807212535413115351539510551253d397d4d313d5606a1b8152506013019050604051602081830303815290604052805190602001206106fb565b905060405136600082376000803683855af43d806000843e818015610972578184f35b8184fd5b801561098c576109878260016109a8565b610997565b6109978260006109a8565b5050565b610997826109a883610626565b905556fe50726f78792e6f6e6c7950726f78794f776e65723a206d73672073656e646572206e6f74206f776e657250726f78795061757361626c652e6f6e6c795061757a65723a206d73672073656e646572206e6f74207061757a657250726f78795061757361626c652e6e6f745061757365643a20636f6e747261637420697320706175736564a2646970667358221220093f940d7b68e3e359fad777a31b4af6914c80224527c1b6000d9577bf4e504f64736f6c63430007060033
Deployed Bytecode
0x6080604052600436106100e15760003560e01c806382c947b71161007f578063aaf10f4211610059578063aaf10f421461029e578063bb15ac8e146102b3578063caaee91c146102dd578063d784d42614610310576100f0565b806382c947b71461020e5780638f4edfe2146102415780639d84ae6914610274576100f0565b806337a440e6116100bb57806337a440e61461016a5780634bde4b2e146101a65780635ced058e146101bb5780636805b84b146101e5576100f0565b806316c38b3c146100f857806317b857dd146101245780631ab7710d14610139576100f0565b366100f0576100ee610343565b005b6100ee610343565b34801561010457600080fd5b506100ee6004803603602081101561011b57600080fd5b503515156103c6565b34801561013057600080fd5b506100ee610493565b34801561014557600080fd5b5061014e61055e565b604080516001600160a01b039092168252519081900360200190f35b34801561017657600080fd5b506101946004803603602081101561018d57600080fd5b50356105a1565b60408051918252519081900360200190f35b3480156101b257600080fd5b5061014e6105a5565b3480156101c757600080fd5b5061014e600480360360208110156101de57600080fd5b50356105e4565b3480156101f157600080fd5b506101fa6105e7565b604080519115158252519081900360200190f35b34801561021a57600080fd5b506101946004803603602081101561023157600080fd5b50356001600160a01b0316610626565b34801561024d57600080fd5b506100ee6004803603602081101561026457600080fd5b50356001600160a01b0316610632565b34801561028057600080fd5b5061014e6004803603602081101561029757600080fd5b50356106fb565b3480156102aa57600080fd5b5061014e610714565b3480156102bf57600080fd5b506101fa600480360360208110156102d657600080fd5b503561075b565b3480156102e957600080fd5b506100ee6004803603602081101561030057600080fd5b50356001600160a01b031661076f565b34801561031c57600080fd5b506100ee6004803603602081101561033357600080fd5b50356001600160a01b0316610837565b61038060405160200180806a14105554d15117d4d313d560aa1b815250600b0190506040516020818303038152906040528051906020012061075b565b156103bc5760405162461bcd60e51b815260040180806020018281038252602b815260200180610a06602b913960400191505060405180910390fd5b6103c4610908565b565b61040360405160200180806a14105556915497d4d313d560aa1b815250600b019050604051602081830303815290604052805190602001206106fb565b6001600160a01b0316336001600160a01b0316146104525760405162461bcd60e51b815260040180806020018281038252602f8152602001806109d7602f913960400191505060405180910390fd5b61049060405160200180806a14105554d15117d4d313d560aa1b815250600b0190506040516020818303038152906040528051906020012082610976565b50565b6104d060405160200180806a14105556915497d4d313d560aa1b815250600b019050604051602081830303815290604052805190602001206106fb565b6001600160a01b0316336001600160a01b03161461051f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806109d7602f913960400191505060405180910390fd5b6103c460405160200180806a14105556915497d4d313d560aa1b815250600b01905060405160208183030381529060405280519060200120600061099b565b600061059c60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001206106fb565b905090565b5490565b600061059c60405160200180806a14105556915497d4d313d560aa1b815250600b019050604051602081830303815290604052805190602001206106fb565b90565b600061059c60405160200180806a14105554d15117d4d313d560aa1b815250600b0190506040516020818303038152906040528051906020012061075b565b6001600160a01b031690565b61066e60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001206106fb565b6001600160a01b0316336001600160a01b0316146106bd5760405162461bcd60e51b815260040180806020018281038252602a8152602001806109ad602a913960400191505060405180910390fd5b61049060405160200180806a14105556915497d4d313d560aa1b815250600b019050604051602081830303815290604052805190602001208261099b565b600061070e610709836105a1565b6105e4565b92915050565b600061059c60405160200180807212535413115351539510551253d397d4d313d5606a1b8152506013019050604051602081830303815290604052805190602001206106fb565b60006001610768836105a1565b1492915050565b6107ab60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001206106fb565b6001600160a01b0316336001600160a01b0316146107fa5760405162461bcd60e51b815260040180806020018281038252602a8152602001806109ad602a913960400191505060405180910390fd5b61049060405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001208261099b565b61087360405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001206106fb565b6001600160a01b0316336001600160a01b0316146108c25760405162461bcd60e51b815260040180806020018281038252602a8152602001806109ad602a913960400191505060405180910390fd5b61049060405160200180807212535413115351539510551253d397d4d313d5606a1b8152506013019050604051602081830303815290604052805190602001208261099b565b600061094f60405160200180807212535413115351539510551253d397d4d313d5606a1b8152506013019050604051602081830303815290604052805190602001206106fb565b905060405136600082376000803683855af43d806000843e818015610972578184f35b8184fd5b801561098c576109878260016109a8565b610997565b6109978260006109a8565b5050565b610997826109a883610626565b905556fe50726f78792e6f6e6c7950726f78794f776e65723a206d73672073656e646572206e6f74206f776e657250726f78795061757361626c652e6f6e6c795061757a65723a206d73672073656e646572206e6f74207061757a657250726f78795061757361626c652e6e6f745061757365643a20636f6e747261637420697320706175736564a2646970667358221220093f940d7b68e3e359fad777a31b4af6914c80224527c1b6000d9577bf4e504f64736f6c63430007060033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.