More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,423 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deposit ETH | 18295120 | 291 days ago | IN | 0 ETH | 0.00019549 | ||||
Execute Blocks | 18124929 | 315 days ago | IN | 0 ETH | 0.00262404 | ||||
Sync Blocks | 18124907 | 315 days ago | IN | 0 ETH | 0.00053046 | ||||
Receive Synchron... | 18124902 | 315 days ago | IN | 0 ETH | 0.0007331 | ||||
Commit Compresse... | 18124745 | 315 days ago | IN | 0 ETH | 0.00257272 | ||||
Commit Compresse... | 18124734 | 315 days ago | IN | 0 ETH | 0.00292772 | ||||
Commit Compresse... | 18124705 | 315 days ago | IN | 0 ETH | 0.00195981 | ||||
Commit Compresse... | 18124684 | 315 days ago | IN | 0 ETH | 0.00138531 | ||||
Commit Compresse... | 18124658 | 315 days ago | IN | 0 ETH | 0.002049 | ||||
Execute Blocks | 18124645 | 315 days ago | IN | 0 ETH | 0.00301581 | ||||
Commit Compresse... | 18124640 | 315 days ago | IN | 0 ETH | 0.0015097 | ||||
Commit Compresse... | 18124620 | 315 days ago | IN | 0 ETH | 0.00241725 | ||||
Sync Blocks | 18124619 | 315 days ago | IN | 0 ETH | 0.00040782 | ||||
Receive Synchron... | 18124613 | 315 days ago | IN | 0 ETH | 0.00061003 | ||||
Commit Compresse... | 18124604 | 315 days ago | IN | 0 ETH | 0.00223668 | ||||
Commit Compresse... | 18124579 | 315 days ago | IN | 0 ETH | 0.0018649 | ||||
Commit Compresse... | 18124558 | 315 days ago | IN | 0 ETH | 0.00191329 | ||||
Commit Compresse... | 18124533 | 315 days ago | IN | 0 ETH | 0.0025635 | ||||
Commit Compresse... | 18124512 | 315 days ago | IN | 0 ETH | 0.00137372 | ||||
Commit Compresse... | 18124492 | 315 days ago | IN | 0 ETH | 0.00206909 | ||||
Commit Compresse... | 18124457 | 315 days ago | IN | 0 ETH | 0.00171222 | ||||
Commit Compresse... | 18124439 | 315 days ago | IN | 0 ETH | 0.00154812 | ||||
Commit Compresse... | 18124425 | 315 days ago | IN | 0 ETH | 0.00157207 | ||||
Commit Compresse... | 18124411 | 315 days ago | IN | 0 ETH | 0.0015708 | ||||
Commit Compresse... | 18124391 | 315 days ago | IN | 0 ETH | 0.00393218 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
18118661 | 316 days ago | 3.94730766 ETH | ||||
18118661 | 316 days ago | 0.01260309 ETH | ||||
18118661 | 316 days ago | 0.01788706 ETH | ||||
18118661 | 316 days ago | 0.0139789 ETH | ||||
18117969 | 316 days ago | 0.01291049 ETH | ||||
18117969 | 316 days ago | 0.012577 ETH | ||||
18117902 | 316 days ago | 0.013909 ETH | ||||
18117902 | 316 days ago | 0.013909 ETH | ||||
18117495 | 316 days ago | 0.01284594 ETH | ||||
18117495 | 316 days ago | 0.01284594 ETH | ||||
18117446 | 316 days ago | 0.01444458 ETH | ||||
18117446 | 316 days ago | 0.01208822 ETH | ||||
18117446 | 316 days ago | 0.0079874 ETH | ||||
18117421 | 316 days ago | 0.01251411 ETH | ||||
18117421 | 316 days ago | 0.01251411 ETH | ||||
18117153 | 316 days ago | 0.01437236 ETH | ||||
18117153 | 316 days ago | 0.01437236 ETH | ||||
18117073 | 316 days ago | 0.01202777 ETH | ||||
18117073 | 316 days ago | 0.01202777 ETH | ||||
18117029 | 316 days ago | 0.00794746 ETH | ||||
18117029 | 316 days ago | 0.00794746 ETH | ||||
18116561 | 316 days ago | 0.01757581 ETH | ||||
18116561 | 316 days ago | 0.01157293 ETH | ||||
18116561 | 316 days ago | 0.01130922 ETH | ||||
18116561 | 316 days ago | 0.01513149 ETH |
Loading...
Loading
Contract Name:
Proxy
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.8.0; // SPDX-License-Identifier: MIT OR Apache-2.0 import "./Ownable.sol"; import "./Upgradeable.sol"; import "./UpgradeableMaster.sol"; /// @title Proxy Contract /// @dev NOTICE: Proxy must implement UpgradeableMaster interface to prevent calling some function of it not by master of proxy /// @author Matter Labs contract Proxy is Upgradeable, Ownable { /// @dev Storage position of "target" (actual implementation address: keccak256('eip1967.proxy.implementation') - 1) bytes32 private constant TARGET_POSITION = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; /// @notice Contract constructor /// @dev Calls Ownable contract constructor and initialize target /// @param target Initial implementation address /// @param targetInitializationParameters Target initialization parameters constructor(address target, bytes memory targetInitializationParameters) Ownable(msg.sender) { setTarget(target); // solhint-disable-next-line avoid-low-level-calls (bool initializationSuccess, ) = getTarget().delegatecall(abi.encodeWithSignature("initialize(bytes)", targetInitializationParameters)); require(initializationSuccess, "uin11"); // uin11 - target initialization failed } /// @notice Intercepts initialization calls function initialize(bytes calldata) external pure { revert("ini11"); // ini11 - interception of initialization call } /// @notice Intercepts upgrade calls function upgrade(bytes calldata) external pure { revert("upg11"); // upg11 - interception of upgrade call } /// @notice Returns target of contract /// @return target Actual implementation address function getTarget() public view returns (address target) { bytes32 position = TARGET_POSITION; assembly { target := sload(position) } } /// @notice Sets new target of contract /// @param _newTarget New actual implementation address function setTarget(address _newTarget) internal { bytes32 position = TARGET_POSITION; assembly { sstore(position, _newTarget) } } /// @notice Upgrades target /// @param newTarget New target /// @param newTargetUpgradeParameters New target upgrade parameters function upgradeTarget(address newTarget, bytes calldata newTargetUpgradeParameters) external override { requireMaster(msg.sender); setTarget(newTarget); // solhint-disable-next-line avoid-low-level-calls (bool upgradeSuccess, ) = getTarget().delegatecall(abi.encodeWithSignature("upgrade(bytes)", newTargetUpgradeParameters)); require(upgradeSuccess, "ufu11"); // ufu11 - target upgrade failed } /// @notice Performs a delegatecall to the contract implementation /// @dev Fallback function allowing to perform a delegatecall to the given implementation /// This function will return whatever the implementation call returns function _fallback() internal { address _target = getTarget(); assembly { // The pointer to the free memory slot let ptr := mload(0x40) // Copy function signature and arguments from calldata at zero position into memory at pointer position calldatacopy(ptr, 0x0, calldatasize()) // Delegatecall method of the implementation contract, returns 0 on error let result := delegatecall(gas(), _target, ptr, calldatasize(), 0x0, 0) // Get the size of the last return data let size := returndatasize() // Copy the size length of bytes from return data at zero position to pointer position returndatacopy(ptr, 0x0, size) // Depending on result value switch result case 0 { // End execution and revert state changes revert(ptr, size) } default { // Return data with length of size at pointers position return(ptr, size) } } } /// @notice Will run when no functions matches call data fallback() external payable { _fallback(); } /// @notice Same as fallback but called when calldata is empty receive() external payable { _fallback(); } }
pragma solidity ^0.8.0; // SPDX-License-Identifier: MIT OR Apache-2.0 /// @title Ownable Contract /// @author Matter Labs contract Ownable { /// @dev Storage position of the masters address (keccak256('eip1967.proxy.admin') - 1) bytes32 private constant MASTER_POSITION = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; /// @notice Contract constructor /// @dev Sets msg sender address as masters address /// @param masterAddress Master address constructor(address masterAddress) { setMaster(masterAddress); } /// @notice Check if specified address is master /// @param _address Address to check function requireMaster(address _address) internal view { require(_address == getMaster(), "1c"); // oro11 - only by master } /// @notice Returns contract masters address /// @return master Master's address function getMaster() public view returns (address master) { bytes32 position = MASTER_POSITION; assembly { master := sload(position) } } /// @dev Sets new masters address /// @param _newMaster New master's address function setMaster(address _newMaster) internal { bytes32 position = MASTER_POSITION; assembly { sstore(position, _newMaster) } } /// @notice Transfer mastership of the contract to new master /// @param _newMaster New masters address function transferMastership(address _newMaster) external { requireMaster(msg.sender); require(_newMaster != address(0), "1d"); // otp11 - new masters address can't be zero address setMaster(_newMaster); } }
pragma solidity ^0.8.0; // SPDX-License-Identifier: MIT OR Apache-2.0 /// @title Interface of the upgradeable contract /// @author Matter Labs interface Upgradeable { /// @notice Upgrades target of upgradeable contract /// @param newTarget New target /// @param newTargetInitializationParameters New target initialization parameters function upgradeTarget(address newTarget, bytes calldata newTargetInitializationParameters) external; }
pragma solidity ^0.8.0; // SPDX-License-Identifier: MIT OR Apache-2.0 /// @title Interface of the upgradeable master contract (defines notice period duration and allows finish upgrade during preparation of it) /// @author Matter Labs interface UpgradeableMaster { /// @notice Notice period before activation preparation status of upgrade mode function getNoticePeriod() external returns (uint256); /// @notice Checks that contract is ready for upgrade /// @return bool flag indicating that contract is ready for upgrade function isReadyForUpgrade() external returns (bool); }
{ "viaIR": true, "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetInitializationParameters","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"getMaster","outputs":[{"internalType":"address","name":"master","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTarget","outputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newMaster","type":"address"}],"name":"transferMastership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"upgrade","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newTarget","type":"address"},{"internalType":"bytes","name":"newTargetUpgradeParameters","type":"bytes"}],"name":"upgradeTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060409080825234610198576106d5803803809161001e828561019d565b833981018282820312610198578151906001600160a01b03821682036101985760208381015190936001600160401b03821161019857019181601f840112156101985782519161006d836101d6565b9061007a8751928361019d565b838252858201908685870101116101985761009c6000959482888897016101f1565b337fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355827f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5561012b6064885180936101148a83019663439fab9160e01b88528b6024850152518092816044860152858501906101f1565b601f8019910116810103604481018452018261019d565b51915af43d15610193573d61013f816101d6565b9061014c8551928361019d565b81526000833d92013e5b156101695750516104c090816102158239f35b606491519062461bcd60e51b82526004820152600560248201526475696e313160d81b6044820152fd5b610156565b600080fd5b601f909101601f19168101906001600160401b038211908210176101c057604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101c057601f01601f191660200190565b60005b8381106102045750506000910152565b81810151838201526020016101f456fe60806040526004361015610018575b3661044757610447565b60003560e01c80632539464514610078578063439fab91146100735780635a99719e1461006e5780636fc4914014610069578063c3f59687146100645763f00e6a2a0361000e57610333565b6102b4565b6101ab565b61014d565b610110565b346100ae57610086366100e1565b505062461bcd60e51b6080526020608452600560a45264757067313160d81b60c45260646080fd5b600080fd5b9181601f840112156100ae5782359167ffffffffffffffff83116100ae57602083818601950101116100ae57565b60206003198201126100ae576004359067ffffffffffffffff82116100ae5761010c916004016100b3565b9091565b346100ae5761011e366100e1565b505060405162461bcd60e51b8152602060048201526005602482015264696e69313160d81b6044820152606490fd5b346100ae5760003660031901126100ae577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546040516001600160a01b039091168152602090f35b600435906001600160a01b03821682036100ae57565b346100ae5760403660031901126100ae576101c4610195565b67ffffffffffffffff6024358181116100ae576064926101ea601f9236906004016100b3565b90916101f53361037b565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5560405192826020850191632539464560e01b835260206024870152816044870152888601378361026760009882868b83819a99829a0101528919998a91011681010360448101845201826103f1565b51915af4903d156102a9573d9283116102a4576102a192610293602060405193601f84011601836103f1565b81528360203d92013e610413565b80f35b6103db565b506102a19150610413565b346100ae5760203660031901126100ae576102cd610195565b6102d63361037b565b6001600160a01b03811615610309577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355005b60405162461bcd60e51b81526020600482015260026024820152610c5960f21b6044820152606490fd5b346100ae5760003660031901126100ae577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040516001600160a01b039091168152602090f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b039081169116036103b157565b60405162461bcd60e51b8152602060048201526002602482015261316360f01b6044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176102a457604052565b1561041a57565b60405162461bcd60e51b8152602060048201526005602482015264756675313160d81b6044820152606490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460008060405192368285378336915af4903d91826000833e1561048857f35bfdfea264697066735822122023c5567030e37071238ee6b9ee517a2e289dd1dbcb4d4500d3aefb65e9db7d7864736f6c63430008120033000000000000000000000000dd5097fc3f68958649ce70f42b7c1cf0067a3545000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000d9388994b2592a3284abf4828dde1561cc6e8030000000000000000000000005bc75b03601c2728f905164ac31a44374fa73e610000000000000000000000007c56da81caaceceeff624baa93b314e793bc88b30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015f051753e6e9527e5b77fb7a7e6153767260336f8b9410648870e6702f421e50000000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
Deployed Bytecode
0x60806040526004361015610018575b3661044757610447565b60003560e01c80632539464514610078578063439fab91146100735780635a99719e1461006e5780636fc4914014610069578063c3f59687146100645763f00e6a2a0361000e57610333565b6102b4565b6101ab565b61014d565b610110565b346100ae57610086366100e1565b505062461bcd60e51b6080526020608452600560a45264757067313160d81b60c45260646080fd5b600080fd5b9181601f840112156100ae5782359167ffffffffffffffff83116100ae57602083818601950101116100ae57565b60206003198201126100ae576004359067ffffffffffffffff82116100ae5761010c916004016100b3565b9091565b346100ae5761011e366100e1565b505060405162461bcd60e51b8152602060048201526005602482015264696e69313160d81b6044820152606490fd5b346100ae5760003660031901126100ae577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546040516001600160a01b039091168152602090f35b600435906001600160a01b03821682036100ae57565b346100ae5760403660031901126100ae576101c4610195565b67ffffffffffffffff6024358181116100ae576064926101ea601f9236906004016100b3565b90916101f53361037b565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5560405192826020850191632539464560e01b835260206024870152816044870152888601378361026760009882868b83819a99829a0101528919998a91011681010360448101845201826103f1565b51915af4903d156102a9573d9283116102a4576102a192610293602060405193601f84011601836103f1565b81528360203d92013e610413565b80f35b6103db565b506102a19150610413565b346100ae5760203660031901126100ae576102cd610195565b6102d63361037b565b6001600160a01b03811615610309577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355005b60405162461bcd60e51b81526020600482015260026024820152610c5960f21b6044820152606490fd5b346100ae5760003660031901126100ae577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040516001600160a01b039091168152602090f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b039081169116036103b157565b60405162461bcd60e51b8152602060048201526002602482015261316360f01b6044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176102a457604052565b1561041a57565b60405162461bcd60e51b8152602060048201526005602482015264756675313160d81b6044820152606490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460008060405192368285378336915af4903d91826000833e1561048857f35bfdfea264697066735822122023c5567030e37071238ee6b9ee517a2e289dd1dbcb4d4500d3aefb65e9db7d7864736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000dd5097fc3f68958649ce70f42b7c1cf0067a3545000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000d9388994b2592a3284abf4828dde1561cc6e8030000000000000000000000005bc75b03601c2728f905164ac31a44374fa73e610000000000000000000000007c56da81caaceceeff624baa93b314e793bc88b30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015f051753e6e9527e5b77fb7a7e6153767260336f8b9410648870e6702f421e50000000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
-----Decoded View---------------
Arg [0] : target (address): 0xDd5097FC3f68958649cE70F42B7c1CF0067a3545
Arg [1] : targetInitializationParameters (bytes): 0x0000000000000000000000000d9388994b2592a3284abf4828dde1561cc6e8030000000000000000000000005bc75b03601c2728f905164ac31a44374fa73e610000000000000000000000007c56da81caaceceeff624baa93b314e793bc88b30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015f051753e6e9527e5b77fb7a7e6153767260336f8b9410648870e6702f421e50000000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 000000000000000000000000dd5097fc3f68958649ce70f42b7c1cf0067a3545
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000d9388994b2592a3284abf4828dde1561cc6e803
Arg [4] : 0000000000000000000000005bc75b03601c2728f905164ac31a44374fa73e61
Arg [5] : 0000000000000000000000007c56da81caaceceeff624baa93b314e793bc88b3
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [8] : 15f051753e6e9527e5b77fb7a7e6153767260336f8b9410648870e6702f421e5
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
Loading...
Loading
Loading...
Loading
OVERVIEW
Build on the world’s first ZK Aggregated Layer 3 and access limitless liquidity with zkLink's Rollup solutions.Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
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.