Source Code
Overview
ETH Balance
0 ETH
Token Holdings
More Info
ContractCreator
Multichain Info
N/A
Latest 25 from a total of 9,507 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deposit ETH | 2478670 | 30 hrs ago | IN | 1 ETH | 0.00001218 | ||||
Deposit ETH | 2476240 | 39 hrs ago | IN | 0.002 ETH | 0.00003159 | ||||
Bridge ETH To | 2471063 | 2 days ago | IN | 0.005 ETH | 0.00059715 | ||||
Bridge ETH To | 2471062 | 2 days ago | IN | 0.005 ETH | 0.00059704 | ||||
Bridge ETH To | 2467799 | 2 days ago | IN | 0.38 ETH | 0.00006205 | ||||
Bridge ETH To | 2467691 | 2 days ago | IN | 0.1 ETH | 0.00007009 | ||||
Bridge ETH To | 2467640 | 2 days ago | IN | 0.2 ETH | 0.0000745 | ||||
Deposit ETH | 2467616 | 2 days ago | IN | 0.5 ETH | 0.00007422 | ||||
Deposit ERC20 | 2466927 | 3 days ago | IN | 0 ETH | 0.00015845 | ||||
Deposit ERC20 | 2466817 | 3 days ago | IN | 0 ETH | 0.000209 | ||||
Deposit ERC20 | 2466734 | 3 days ago | IN | 0 ETH | 0.00023542 | ||||
Deposit ETH | 2466136 | 3 days ago | IN | 0.001 ETH | 0.00057701 | ||||
Deposit ETH | 2464068 | 3 days ago | IN | 1.8 ETH | 0.00002193 | ||||
Bridge ETH To | 2461446 | 3 days ago | IN | 0.68 ETH | 0.00002269 | ||||
Bridge ETH To | 2460927 | 3 days ago | IN | 0.001 ETH | 0.00002269 | ||||
Deposit ETH | 2460714 | 3 days ago | IN | 1 ETH | 0.00057701 | ||||
Deposit ERC20 | 2460684 | 3 days ago | IN | 0 ETH | 0.00002527 | ||||
Deposit ERC20 | 2460552 | 4 days ago | IN | 0 ETH | 0.00002847 | ||||
Deposit ERC20 | 2460459 | 4 days ago | IN | 0 ETH | 0.00016335 | ||||
Deposit ETH | 2460041 | 4 days ago | IN | 0.001 ETH | 0.00033348 | ||||
Deposit ETH | 2458143 | 4 days ago | IN | 0.01 ETH | 0.00004365 | ||||
Deposit ETH | 2458138 | 4 days ago | IN | 0.01 ETH | 0.00004365 | ||||
Deposit ETH | 2458132 | 4 days ago | IN | 0.01 ETH | 0.00004365 | ||||
Deposit ETH | 2458125 | 4 days ago | IN | 0.01 ETH | 0.00004365 | ||||
Deposit ETH | 2458119 | 4 days ago | IN | 0.01 ETH | 0.000045 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
2478869 | 29 hrs ago | 1.6 ETH | ||||
2478869 | 29 hrs ago | 1.6 ETH | ||||
2478670 | 30 hrs ago | 1 ETH | ||||
2476240 | 39 hrs ago | 0.002 ETH | ||||
2476180 | 39 hrs ago | 0.0001 ETH | ||||
2476180 | 39 hrs ago | 0.0001 ETH | ||||
2476180 | 39 hrs ago | 0.0002 ETH | ||||
2476180 | 39 hrs ago | 0.0002 ETH | ||||
2471063 | 2 days ago | 0.005 ETH | ||||
2471062 | 2 days ago | 0.005 ETH | ||||
2467799 | 2 days ago | 0.38 ETH | ||||
2467691 | 2 days ago | 0.1 ETH | ||||
2467640 | 2 days ago | 0.2 ETH | ||||
2467616 | 2 days ago | 0.5 ETH | ||||
2466136 | 3 days ago | 0.001 ETH | ||||
2466053 | 3 days ago | 0.00001 ETH | ||||
2466053 | 3 days ago | 0.00001 ETH | ||||
2464068 | 3 days ago | 1.8 ETH | ||||
2461446 | 3 days ago | 0.68 ETH | ||||
2460927 | 3 days ago | 0.001 ETH | ||||
2460714 | 3 days ago | 1 ETH | ||||
2460041 | 4 days ago | 0.001 ETH | ||||
2459179 | 4 days ago | 0.001 ETH | ||||
2459179 | 4 days ago | 0.001 ETH | ||||
2459177 | 4 days ago | 0.001 ETH |
Loading...
Loading
Contract Name:
L1ChugSplashProxy
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.15; /** * @title IL1ChugSplashDeployer */ interface IL1ChugSplashDeployer { function isUpgrading() external view returns (bool); } /** * @custom:legacy * @title L1ChugSplashProxy * @notice Basic ChugSplash proxy contract for L1. Very close to being a normal proxy but has added * functions `setCode` and `setStorage` for changing the code or storage of the contract. * * Note for future developers: do NOT make anything in this contract 'public' unless you * know what you're doing. Anything public can potentially have a function signature that * conflicts with a signature attached to the implementation contract. Public functions * SHOULD always have the `proxyCallIfNotOwner` modifier unless there's some *really* good * reason not to have that modifier. And there almost certainly is not a good reason to not * have that modifier. Beware! */ contract L1ChugSplashProxy { /** * @notice "Magic" prefix. When prepended to some arbitrary bytecode and used to create a * contract, the appended bytecode will be deployed as given. */ bytes13 internal constant DEPLOY_CODE_PREFIX = 0x600D380380600D6000396000f3; /** * @notice bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1) */ bytes32 internal constant IMPLEMENTATION_KEY = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; /** * @notice bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1) */ bytes32 internal constant OWNER_KEY = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; /** * @notice Blocks a function from being called when the parent signals that the system should * be paused via an isUpgrading function. */ modifier onlyWhenNotPaused() { address owner = _getOwner(); // We do a low-level call because there's no guarantee that the owner actually *is* an // L1ChugSplashDeployer contract and Solidity will throw errors if we do a normal call and // it turns out that it isn't the right type of contract. (bool success, bytes memory returndata) = owner.staticcall( abi.encodeWithSelector(IL1ChugSplashDeployer.isUpgrading.selector) ); // If the call was unsuccessful then we assume that there's no "isUpgrading" method and we // can just continue as normal. We also expect that the return value is exactly 32 bytes // long. If this isn't the case then we can safely ignore the result. if (success && returndata.length == 32) { // Although the expected value is a *boolean*, it's safer to decode as a uint256 in the // case that the isUpgrading function returned something other than 0 or 1. But we only // really care about the case where this value is 0 (= false). uint256 ret = abi.decode(returndata, (uint256)); require(ret == 0, "L1ChugSplashProxy: system is currently being upgraded"); } _; } /** * @notice Makes a proxy call instead of triggering the given function when the caller is * either the owner or the zero address. Caller can only ever be the zero address if * this function is being called off-chain via eth_call, which is totally fine and can * be convenient for client-side tooling. Avoids situations where the proxy and * implementation share a sighash and the proxy function ends up being called instead * of the implementation one. * * Note: msg.sender == address(0) can ONLY be triggered off-chain via eth_call. If * there's a way for someone to send a transaction with msg.sender == address(0) in any * real context then we have much bigger problems. Primary reason to include this * additional allowed sender is because the owner address can be changed dynamically * and we do not want clients to have to keep track of the current owner in order to * make an eth_call that doesn't trigger the proxied contract. */ // slither-disable-next-line incorrect-modifier modifier proxyCallIfNotOwner() { if (msg.sender == _getOwner() || msg.sender == address(0)) { _; } else { // This WILL halt the call frame on completion. _doProxyCall(); } } /** * @param _owner Address of the initial contract owner. */ constructor(address _owner) { _setOwner(_owner); } // slither-disable-next-line locked-ether receive() external payable { // Proxy call by default. _doProxyCall(); } // slither-disable-next-line locked-ether fallback() external payable { // Proxy call by default. _doProxyCall(); } /** * @notice Sets the code that should be running behind this proxy. * * Note: This scheme is a bit different from the standard proxy scheme where one would * typically deploy the code separately and then set the implementation address. We're * doing it this way because it gives us a lot more freedom on the client side. Can * only be triggered by the contract owner. * * @param _code New contract code to run inside this contract. */ function setCode(bytes memory _code) external proxyCallIfNotOwner { // Get the code hash of the current implementation. address implementation = _getImplementation(); // If the code hash matches the new implementation then we return early. if (keccak256(_code) == _getAccountCodeHash(implementation)) { return; } // Create the deploycode by appending the magic prefix. bytes memory deploycode = abi.encodePacked(DEPLOY_CODE_PREFIX, _code); // Deploy the code and set the new implementation address. address newImplementation; assembly { newImplementation := create(0x0, add(deploycode, 0x20), mload(deploycode)) } // Check that the code was actually deployed correctly. I'm not sure if you can ever // actually fail this check. Should only happen if the contract creation from above runs // out of gas but this parent execution thread does NOT run out of gas. Seems like we // should be doing this check anyway though. require( _getAccountCodeHash(newImplementation) == keccak256(_code), "L1ChugSplashProxy: code was not correctly deployed" ); _setImplementation(newImplementation); } /** * @notice Modifies some storage slot within the proxy contract. Gives us a lot of power to * perform upgrades in a more transparent way. Only callable by the owner. * * @param _key Storage key to modify. * @param _value New value for the storage key. */ function setStorage(bytes32 _key, bytes32 _value) external proxyCallIfNotOwner { assembly { sstore(_key, _value) } } /** * @notice Changes the owner of the proxy contract. Only callable by the owner. * * @param _owner New owner of the proxy contract. */ function setOwner(address _owner) external proxyCallIfNotOwner { _setOwner(_owner); } /** * @notice Queries the owner of the proxy contract. Can only be called by the owner OR by * making an eth_call and setting the "from" address to address(0). * * @return Owner address. */ function getOwner() external proxyCallIfNotOwner returns (address) { return _getOwner(); } /** * @notice Queries the implementation address. Can only be called by the owner OR by making an * eth_call and setting the "from" address to address(0). * * @return Implementation address. */ function getImplementation() external proxyCallIfNotOwner returns (address) { return _getImplementation(); } /** * @notice Sets the implementation address. * * @param _implementation New implementation address. */ function _setImplementation(address _implementation) internal { assembly { sstore(IMPLEMENTATION_KEY, _implementation) } } /** * @notice Changes the owner of the proxy contract. * * @param _owner New owner of the proxy contract. */ function _setOwner(address _owner) internal { assembly { sstore(OWNER_KEY, _owner) } } /** * @notice Performs the proxy call via a delegatecall. */ function _doProxyCall() internal onlyWhenNotPaused { address implementation = _getImplementation(); require(implementation != address(0), "L1ChugSplashProxy: implementation is not set yet"); assembly { // Copy calldata into memory at 0x0....calldatasize. calldatacopy(0x0, 0x0, calldatasize()) // Perform the delegatecall, make sure to pass all available gas. let success := delegatecall(gas(), implementation, 0x0, calldatasize(), 0x0, 0x0) // Copy returndata into memory at 0x0....returndatasize. Note that this *will* // overwrite the calldata that we just copied into memory but that doesn't really // matter because we'll be returning in a second anyway. returndatacopy(0x0, 0x0, returndatasize()) // Success == 0 means a revert. We'll revert too and pass the data up. if iszero(success) { revert(0x0, returndatasize()) } // Otherwise we'll just return and pass the data up. return(0x0, returndatasize()) } } /** * @notice Queries the implementation address. * * @return Implementation address. */ function _getImplementation() internal view returns (address) { address implementation; assembly { implementation := sload(IMPLEMENTATION_KEY) } return implementation; } /** * @notice Queries the owner of the proxy contract. * * @return Owner address. */ function _getOwner() internal view returns (address) { address owner; assembly { owner := sload(OWNER_KEY) } return owner; } /** * @notice Gets the code hash for a given account. * * @param _account Address of the account to get a code hash for. * * @return Code hash for the account. */ function _getAccountCodeHash(address _account) internal view returns (bytes32) { bytes32 codeHash; assembly { codeHash := extcodehash(_account) } return codeHash; } }
{ "remappings": [ "@eth-optimism-bedrock/=lib/optimism/packages/contracts-bedrock/", "@eth-optimism/=lib/optimism/packages/", "lib/optimism/packages/contracts-bedrock:src/=lib/optimism/packages/contracts-bedrock/src/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@rari-capital/solmate/=lib/solmate/", "@fraxchain-contracts/=lib/fraxchain-contracts/", "forge-std/=lib/forge-std/src/", "ds-test/=lib/forge-std/lib/ds-test/src/", "@cwia/=lib/clones-with-immutable-args/src/", "@openzeppelin-4/=lib/fraxchain-contracts/node_modules/@openzeppelin-4/", "@openzeppelin-new/=lib/fraxchain-contracts/node_modules/@openzeppelin-new/", "clones-with-immutable-args/=lib/clones-with-immutable-args/src/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "frax-standard-solidity/=lib/fraxchain-contracts/lib/frax-standard-solidity/src/", "frax-std/=lib/fraxchain-contracts/lib/frax-standard-solidity/src/", "fraxchain-contracts/=lib/fraxchain-contracts/src/", "multicall/=lib/fraxchain-contracts/lib/optimism/packages/contracts-periphery/lib/multicall/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "optimism/=lib/optimism/", "solidity-bytes-utils/=lib/fraxchain-contracts/lib/frax-standard-solidity/lib/solidity-bytes-utils/", "solmate/=lib/solmate/src/" ], "optimizer": { "enabled": true, "runs": 50000 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "evmVersion": "london", "libraries": {} }
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_code","type":"bytes"}],"name":"setCode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610a6d380380610a6d83398101604081905261002f9161005d565b610057817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b5061008d565b60006020828403121561006f57600080fd5b81516001600160a01b038116811461008657600080fd5b9392505050565b6109d18061009c6000396000f3fe60806040526004361061005e5760003560e01c8063893d20e811610043578063893d20e8146100b55780639b0b0fda146100f3578063aaf10f42146101135761006d565b806313af4035146100755780636c5d4ad0146100955761006d565b3661006d5761006b610128565b005b61006b610128565b34801561008157600080fd5b5061006b6100903660046107a2565b6103cb565b3480156100a157600080fd5b5061006b6100b036600461080e565b61045c565b3480156100c157600080fd5b506100ca610611565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100ff57600080fd5b5061006b61010e3660046108dd565b6106a8565b34801561011f57600080fd5b506100ca610716565b60006101527fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb7947262000000000000000000000000000000000000000000000000000000001790529051919250600091829173ffffffffffffffffffffffffffffffffffffffff8516916101d4919061093a565b600060405180830381855afa9150503d806000811461020f576040519150601f19603f3d011682016040523d82523d6000602084013e610214565b606091505b5091509150818015610227575080516020145b156102d9576000818060200190518101906102429190610946565b905080156102d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c314368756753706c61736850726f78793a2073797374656d2069732063757260448201527f72656e746c79206265696e67207570677261646564000000000000000000000060648201526084015b60405180910390fd5b505b60006103037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166103a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4c314368756753706c61736850726f78793a20696d706c656d656e746174696f60448201527f6e206973206e6f7420736574207965740000000000000000000000000000000060648201526084016102ce565b3660008037600080366000845af43d6000803e806103c5573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610424575033155b1561045457610451817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b50565b610451610128565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104b5575033155b156104545760006104e47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b9050803f82516020840120036104f8575050565b60405160009061052e907f600d380380600d6000396000f30000000000000000000000000000000000000090859060200161095f565b604051602081830303815290604052905060008151602083016000f084516020860120909150813f146105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4c314368756753706c61736850726f78793a20636f646520776173206e6f742060448201527f636f72726563746c79206465706c6f796564000000000000000000000000000060648201526084016102ce565b61060b817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50505050565b600061063b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610672575033155b1561069d57507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6106a5610128565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610701575033155b1561070a579055565b610712610128565b5050565b60006107407fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610777575033155b1561069d57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000602082840312156107b457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146107d857600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561082057600080fd5b813567ffffffffffffffff8082111561083857600080fd5b818401915084601f83011261084c57600080fd5b81358181111561085e5761085e6107df565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156108a4576108a46107df565b816040528281528760208487010111156108bd57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080604083850312156108f057600080fd5b50508035926020909101359150565b6000815160005b818110156109205760208185018101518683015201610906565b8181111561092f576000828601525b509290920192915050565b60006107d882846108ff565b60006020828403121561095857600080fd5b5051919050565b7fffffffffffffffffffffffffff00000000000000000000000000000000000000831681526000610993600d8301846108ff565b94935050505056fea2646970667358221220eb98cb21914fa09449476b684743d09bed3cd9ba2652f231eb9aa961dbe9fecd64736f6c634300080f0033000000000000000000000000e4c9465d334cf5de87ff4ff184ff5a769104c9c5
Deployed Bytecode
0x60806040526004361061005e5760003560e01c8063893d20e811610043578063893d20e8146100b55780639b0b0fda146100f3578063aaf10f42146101135761006d565b806313af4035146100755780636c5d4ad0146100955761006d565b3661006d5761006b610128565b005b61006b610128565b34801561008157600080fd5b5061006b6100903660046107a2565b6103cb565b3480156100a157600080fd5b5061006b6100b036600461080e565b61045c565b3480156100c157600080fd5b506100ca610611565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100ff57600080fd5b5061006b61010e3660046108dd565b6106a8565b34801561011f57600080fd5b506100ca610716565b60006101527fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb7947262000000000000000000000000000000000000000000000000000000001790529051919250600091829173ffffffffffffffffffffffffffffffffffffffff8516916101d4919061093a565b600060405180830381855afa9150503d806000811461020f576040519150601f19603f3d011682016040523d82523d6000602084013e610214565b606091505b5091509150818015610227575080516020145b156102d9576000818060200190518101906102429190610946565b905080156102d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c314368756753706c61736850726f78793a2073797374656d2069732063757260448201527f72656e746c79206265696e67207570677261646564000000000000000000000060648201526084015b60405180910390fd5b505b60006103037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166103a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4c314368756753706c61736850726f78793a20696d706c656d656e746174696f60448201527f6e206973206e6f7420736574207965740000000000000000000000000000000060648201526084016102ce565b3660008037600080366000845af43d6000803e806103c5573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610424575033155b1561045457610451817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b50565b610451610128565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104b5575033155b156104545760006104e47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b9050803f82516020840120036104f8575050565b60405160009061052e907f600d380380600d6000396000f30000000000000000000000000000000000000090859060200161095f565b604051602081830303815290604052905060008151602083016000f084516020860120909150813f146105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4c314368756753706c61736850726f78793a20636f646520776173206e6f742060448201527f636f72726563746c79206465706c6f796564000000000000000000000000000060648201526084016102ce565b61060b817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50505050565b600061063b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610672575033155b1561069d57507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6106a5610128565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610701575033155b1561070a579055565b610712610128565b5050565b60006107407fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610777575033155b1561069d57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000602082840312156107b457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146107d857600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561082057600080fd5b813567ffffffffffffffff8082111561083857600080fd5b818401915084601f83011261084c57600080fd5b81358181111561085e5761085e6107df565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156108a4576108a46107df565b816040528281528760208487010111156108bd57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080604083850312156108f057600080fd5b50508035926020909101359150565b6000815160005b818110156109205760208185018101518683015201610906565b8181111561092f576000828601525b509290920192915050565b60006107d882846108ff565b60006020828403121561095857600080fd5b5051919050565b7fffffffffffffffffffffffffff00000000000000000000000000000000000000831681526000610993600d8301846108ff565b94935050505056fea2646970667358221220eb98cb21914fa09449476b684743d09bed3cd9ba2652f231eb9aa961dbe9fecd64736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e4c9465d334cf5de87ff4ff184ff5a769104c9c5
-----Decoded View---------------
Arg [0] : _owner (address): 0xe4C9465D334CF5de87ff4FF184Ff5a769104C9c5
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e4c9465d334cf5de87ff4ff184ff5a769104c9c5
Deployed Bytecode Sourcemap
975:10004:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4798:14;:12;:14::i;:::-;975:10004;;4943:14;:12;:14::i;7396:97::-;;;;;;;;;;-1:-1:-1;7396:97:0;;;;;:::i;:::-;;:::i;5488:1285::-;;;;;;;;;;-1:-1:-1;5488:1285:0;;;;;:::i;:::-;;:::i;7726:102::-;;;;;;;;;;;;;:::i;:::-;;;1678:42:1;1666:55;;;1648:74;;1636:2;1621:18;7726:102:0;;;;;;;7081:148;;;;;;;;;;-1:-1:-1;7081:148:0;;;;;:::i;:::-;;:::i;8065:120::-;;;;;;;;;;;;;:::i;8812:1127::-;1909:13;1925:11;10514:9;10508:16;;10390:172;1925:11;2279:66;;;;;;;;;;;;;;;;;;2302:42;2279:66;;;2249:106;;1909:27;;-1:-1:-1;2208:12:0;;;;2249:16;;;;:106;;2279:66;2249:106;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2207:148;;;;2644:7;:34;;;;;2655:10;:17;2676:2;2655:23;2644:34;2640:475;;;2969:11;2994:10;2983:33;;;;;;;;;;;;:::i;:::-;2969:47;-1:-1:-1;3038:8:0;;3030:74;;;;;;;2912:2:1;3030:74:0;;;2894:21:1;2951:2;2931:18;;;2924:30;2990:34;2970:18;;;2963:62;3061:23;3041:18;;;3034:51;3102:19;;3030:74:0;;;;;;;;;2680:435;2640:475;8873:22:::1;8898:20;10209:18:::0;10203:25;;10058:217;8898:20:::1;8873:45:::0;-1:-1:-1;8937:28:0::1;::::0;::::1;8929:89;;;::::0;::::1;::::0;;3334:2:1;8929:89:0::1;::::0;::::1;3316:21:1::0;3373:2;3353:18;;;3346:30;3412:34;3392:18;;;3385:62;3483:18;3463;;;3456:46;3519:19;;8929:89:0::1;3132:412:1::0;8929:89:0::1;9140:14;9135:3;9130::::0;9117:38:::1;9324:3;9319::::0;9303:14:::1;9298:3;9282:14;9275:5;9262:66;9621:16;9616:3;9611::::0;9596:42:::1;9745:7;9735:80;;9784:16;9779:3;9772:29;9735:80;;9906:16;9901:3;9894:29;7396:97:::0;10514:9;10508:16;4339:25;;:10;:25;;;:53;;;-1:-1:-1;4368:10:0;:24;4339:53;4335:190;;;7469:17:::1;7479:6;8697:9:::0;8690:25;8613:118;7469:17:::1;7396:97:::0;:::o;4335:190::-;4500:14;:12;:14::i;5488:1285::-;10514:9;10508:16;4339:25;;:10;:25;;;:53;;;-1:-1:-1;4368:10:0;:24;4339:53;4335:190;;;5624:22:::1;5649:20;10209:18:::0;10203:25;;10058:217;5649:20:::1;5624:45:::0;-1:-1:-1;10915:21:0;;5765:16;;::::1;::::0;::::1;::::0;:55;5761:92:::1;;5836:7;7396:97:::0;:::o;5761:92::-:1;5953:43;::::0;5927:23:::1;::::0;5953:43:::1;::::0;5970:18;;5990:5;;5953:43:::1;;;:::i;:::-;;;;;;;;;;;;;5927:69;;6074:25;6194:10;6188:17;6181:4;6169:10;6165:21;6160:3;6153:53;6626:16:::0;;::::1;::::0;::::1;::::0;6132:74;;-1:-1:-1;10915:21:0;;6584:58:::1;6563:155;;;::::0;::::1;::::0;;4083:2:1;6563:155:0::1;::::0;::::1;4065:21:1::0;4122:2;4102:18;;;4095:30;4161:34;4141:18;;;4134:62;4232:20;4212:18;;;4205:48;4270:19;;6563:155:0::1;3881:414:1::0;6563:155:0::1;6729:37;6748:17;8422:18:::0;8415:43;8320:154;6729:37:::1;5554:1219;;;7396:97:::0;:::o;7726:102::-;7784:7;4353:11;10514:9;10508:16;;10390:172;4353:11;4339:25;;:10;:25;;;:53;;;-1:-1:-1;4368:10:0;:24;4339:53;4335:190;;;-1:-1:-1;10514:9:0;10508:16;;7726:102::o;4335:190::-;4500:14;:12;:14::i;:::-;7726:102;:::o;7081:148::-;10514:9;10508:16;4339:25;;:10;:25;;;:53;;;-1:-1:-1;4368:10:0;:24;4339:53;4335:190;;;7193:20;;7081:148::o;4335:190::-;4500:14;:12;:14::i;:::-;7081:148;;:::o;8065:120::-;8132:7;4353:11;10514:9;10508:16;;10390:172;4353:11;4339:25;;:10;:25;;;:53;;;-1:-1:-1;4368:10:0;:24;4339:53;4335:190;;;-1:-1:-1;10209:18:0;10203:25;;7726:102::o;14:309:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:1:o;328:184::-;380:77;377:1;370:88;477:4;474:1;467:15;501:4;498:1;491:15;517:980;585:6;638:2;626:9;617:7;613:23;609:32;606:52;;;654:1;651;644:12;606:52;694:9;681:23;723:18;764:2;756:6;753:14;750:34;;;780:1;777;770:12;750:34;818:6;807:9;803:22;793:32;;863:7;856:4;852:2;848:13;844:27;834:55;;885:1;882;875:12;834:55;921:2;908:16;943:2;939;936:10;933:36;;;949:18;;:::i;:::-;1083:2;1077:9;1145:4;1137:13;;988:66;1133:22;;;1157:2;1129:31;1125:40;1113:53;;;1181:18;;;1201:22;;;1178:46;1175:72;;;1227:18;;:::i;:::-;1267:10;1263:2;1256:22;1302:2;1294:6;1287:18;1342:7;1337:2;1332;1328;1324:11;1320:20;1317:33;1314:53;;;1363:1;1360;1353:12;1314:53;1419:2;1414;1410;1406:11;1401:2;1393:6;1389:15;1376:46;1464:1;1442:15;;;1459:2;1438:24;1431:35;;;;-1:-1:-1;1446:6:1;517:980;-1:-1:-1;;;;;517:980:1:o;1733:248::-;1801:6;1809;1862:2;1850:9;1841:7;1837:23;1833:32;1830:52;;;1878:1;1875;1868:12;1830:52;-1:-1:-1;;1901:23:1;;;1971:2;1956:18;;;1943:32;;-1:-1:-1;1733:248:1:o;1986:336::-;2027:3;2065:5;2059:12;2089:1;2099:128;2113:6;2110:1;2107:13;2099:128;;;2210:4;2195:13;;;2191:24;;2185:31;2172:11;;;2165:52;2128:12;2099:128;;;2245:6;2242:1;2239:13;2236:48;;;2280:1;2271:6;2266:3;2262:16;2255:27;2236:48;-1:-1:-1;2300:16:1;;;;;1986:336;-1:-1:-1;;1986:336:1:o;2327:189::-;2456:3;2481:29;2506:3;2498:6;2481:29;:::i;2521:184::-;2591:6;2644:2;2632:9;2623:7;2619:23;2615:32;2612:52;;;2660:1;2657;2650:12;2612:52;-1:-1:-1;2683:16:1;;2521:184;-1:-1:-1;2521:184:1:o;3549:327::-;3748:66;3740:6;3736:79;3731:3;3724:92;3706:3;3832:38;3866:2;3861:3;3857:12;3849:6;3832:38;:::i;:::-;3825:45;3549:327;-1:-1:-1;;;;3549:327:1:o
Swarm Source
ipfs://eb98cb21914fa09449476b684743d09bed3cd9ba2652f231eb9aa961dbe9fecd
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.