Source Code
Overview
MATIC Balance
0 MATIC
Token Holdings
More Info
ContractCreator:
Multichain Info
N/A
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 19087599 | 922 days ago | IN | Create: UChildERC20Proxy | 0 MATIC | 0.00210686 |
Loading...
Loading
Contract Name:
UChildERC20Proxy
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at mumbai.polygonscan.com on 2021-09-18 */ // SPDX-License-Identifier: MIT // File: contracts/child/ChildToken/IChildToken.sol pragma solidity 0.6.12; interface IChildToken { function deposit(address user, bytes calldata depositData) external; } // File: contracts/common/Initializable.sol pragma solidity 0.6.12; contract Initializable { bool inited = false; modifier initializer() { require(!inited, "already inited"); _; inited = true; } } // File: contracts/common/EIP712Base.sol pragma solidity 0.6.12; contract EIP712Base is Initializable { struct EIP712Domain { string name; string version; address verifyingContract; bytes32 salt; } string constant public ERC712_VERSION = "1"; bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256( bytes( "EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)" ) ); bytes32 internal domainSeperator; // supposed to be called once while initializing. // one of the contractsa that inherits this contract follows proxy pattern // so it is not possible to do this in a constructor function _initializeEIP712( string memory name ) internal initializer { _setDomainSeperator(name); } function _setDomainSeperator(string memory name) internal { domainSeperator = keccak256( abi.encode( EIP712_DOMAIN_TYPEHASH, keccak256(bytes(name)), keccak256(bytes(ERC712_VERSION)), address(this), bytes32(getChainId()) ) ); } function getDomainSeperator() public view returns (bytes32) { return domainSeperator; } function getChainId() public pure returns (uint256) { uint256 id; assembly { id := chainid() } return id; } /** * Accept message hash and returns hash message in EIP712 compatible form * So that it can be used to recover signer from signature signed using EIP712 formatted data * https://eips.ethereum.org/EIPS/eip-712 * "\\x19" makes the encoding deterministic * "\\x01" is the version byte to make it compatible to EIP-191 */ function toTypedMessageHash(bytes32 messageHash) internal view returns (bytes32) { return keccak256( abi.encodePacked("\x19\x01", getDomainSeperator(), messageHash) ); } } // File: contracts/common/Proxy/IERCProxy.sol pragma solidity 0.6.12; interface IERCProxy { function proxyType() external pure returns (uint256 proxyTypeId); function implementation() external view returns (address codeAddr); } // File: contracts/common/Proxy/Proxy.sol pragma solidity 0.6.12; abstract contract Proxy is IERCProxy { function delegatedFwd(address _dst, bytes memory _calldata) internal { // solium-disable-next-line security/no-inline-assembly assembly { let result := delegatecall( sub(gas(), 10000), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0 ) let size := returndatasize() let ptr := mload(0x40) returndatacopy(ptr, 0, size) // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas. // if the call returned error data, forward it switch result case 0 { revert(ptr, size) } default { return(ptr, size) } } } function proxyType() external virtual override pure returns (uint256 proxyTypeId) { // Upgradeable proxy proxyTypeId = 2; } function implementation() external virtual override view returns (address); } // File: contracts/common/Proxy/UpgradableProxy.sol pragma solidity 0.6.12; contract UpgradableProxy is Proxy { event ProxyUpdated(address indexed _new, address indexed _old); event ProxyOwnerUpdate(address _new, address _old); bytes32 constant IMPLEMENTATION_SLOT = keccak256("matic.network.proxy.implementation"); bytes32 constant OWNER_SLOT = keccak256("matic.network.proxy.owner"); constructor(address _proxyTo) public { setProxyOwner(msg.sender); setImplementation(_proxyTo); } fallback() external payable { delegatedFwd(loadImplementation(), msg.data); } receive() external payable { delegatedFwd(loadImplementation(), msg.data); } modifier onlyProxyOwner() { require(loadProxyOwner() == msg.sender, "NOT_OWNER"); _; } function proxyOwner() external view returns(address) { return loadProxyOwner(); } function loadProxyOwner() internal view returns(address) { address _owner; bytes32 position = OWNER_SLOT; assembly { _owner := sload(position) } return _owner; } function implementation() external override view returns (address) { return loadImplementation(); } function loadImplementation() internal view returns(address) { address _impl; bytes32 position = IMPLEMENTATION_SLOT; assembly { _impl := sload(position) } return _impl; } function transferProxyOwnership(address newOwner) public onlyProxyOwner { require(newOwner != address(0), "ZERO_ADDRESS"); emit ProxyOwnerUpdate(newOwner, loadProxyOwner()); setProxyOwner(newOwner); } function setProxyOwner(address newOwner) private { bytes32 position = OWNER_SLOT; assembly { sstore(position, newOwner) } } function updateImplementation(address _newProxyTo) public onlyProxyOwner { require(_newProxyTo != address(0x0), "INVALID_PROXY_ADDRESS"); require(isContract(_newProxyTo), "DESTINATION_ADDRESS_IS_NOT_A_CONTRACT"); emit ProxyUpdated(_newProxyTo, loadImplementation()); setImplementation(_newProxyTo); } function updateAndCall(address _newProxyTo, bytes memory data) payable public onlyProxyOwner { updateImplementation(_newProxyTo); (bool success, bytes memory returnData) = address(this).call{value: msg.value}(data); require(success, string(returnData)); } function setImplementation(address _newProxyTo) private { bytes32 position = IMPLEMENTATION_SLOT; assembly { sstore(position, _newProxyTo) } } function isContract(address _target) internal view returns (bool) { if (_target == address(0)) { return false; } uint256 size; assembly { size := extcodesize(_target) } return size > 0; } } // File: contracts/child/ChildToken/UpgradeableChildERC20/UChildERC20Proxy.sol pragma solidity 0.6.12; contract UChildERC20Proxy is UpgradableProxy { constructor(address _proxyTo) public UpgradableProxy(_proxyTo) {} }
[{"inputs":[{"internalType":"address","name":"_proxyTo","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_new","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"}],"name":"ProxyOwnerUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_new","type":"address"},{"indexed":true,"internalType":"address","name":"_old","type":"address"}],"name":"ProxyUpdated","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyType","outputs":[{"internalType":"uint256","name":"proxyTypeId","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newProxyTo","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"updateAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_newProxyTo","type":"address"}],"name":"updateImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610bc2380380610bc28339818101604052602081101561003357600080fd5b8101908080519060200190929190505050806100543361006a60201b60201c565b6100638161009660201b60201c565b50506100c2565b60007f44f6e2e8884cba1236b7f22f351fa5d88b17292b7e0225ca47e5ecdf6055cdd690508181555050565b60007fbaab7dbf64751104133af04abc7d9979f0fda3b059a322a8333f533d3f32bf7f90508181555050565b610af1806100d16000396000f3fe6080604052600436106100595760003560e01c8063025313a21461010e578063025b22bc1461014f5780634555d5c9146101a05780635c60da1b146101cb578063d88ca2c81461020c578063f1739cae146102e7576100b6565b366100b6576100b4610069610338565b6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061036c565b005b61010c6100c1610338565b6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061036c565b005b34801561011a57600080fd5b50610123610396565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015b57600080fd5b5061019e6004803603602081101561017257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103a5565b005b3480156101ac57600080fd5b506101b56105bb565b6040518082815260200191505060405180910390f35b3480156101d757600080fd5b506101e06105c4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102e56004803603604081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561025f57600080fd5b82018360208201111561027157600080fd5b8035906020019184600183028401116401000000008311171561029357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506105d3565b005b3480156102f357600080fd5b506103366004803603602081101561030a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ef565b005b60008060007fbaab7dbf64751104133af04abc7d9979f0fda3b059a322a8333f533d3f32bf7f905080549150819250505090565b600080825160208401856127105a03f43d604051816000823e8260008114610392578282f35b8282fd5b60006103a06109b8565b905090565b3373ffffffffffffffffffffffffffffffffffffffff166103c46109b8565b73ffffffffffffffffffffffffffffffffffffffff161461044d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156104f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f494e56414c49445f50524f58595f41444452455353000000000000000000000081525060200191505060405180910390fd5b6104f9816109ec565b61054e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610a976025913960400191505060405180910390fd5b610556610338565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fd32d24edea94f55e932d9a008afc425a8561462d1b1f57bc6e508e9a6b9509e160405160405180910390a36105b881610a3e565b50565b60006002905090565b60006105ce610338565b905090565b3373ffffffffffffffffffffffffffffffffffffffff166105f26109b8565b73ffffffffffffffffffffffffffffffffffffffff161461067b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610684826103a5565b600060603073ffffffffffffffffffffffffffffffffffffffff1634846040518082805190602001908083835b602083106106d457805182526020820191506020810190506020830392506106b1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610736576040519150601f19603f3d011682016040523d82523d6000602084013e61073b565b606091505b50915091508181906107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107ad578082015181840152602081019050610792565b50505050905090810190601f1680156107da5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff1661080e6109b8565b73ffffffffffffffffffffffffffffffffffffffff1614610897576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a45524f5f41444452455353000000000000000000000000000000000000000081525060200191505060405180910390fd5b7fdbe5fd65bcdbae152f24ab660ea68e72b4d4705b57b16e0caae994e214680ee2816109646109b8565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a16109b581610a6a565b50565b60008060007f44f6e2e8884cba1236b7f22f351fa5d88b17292b7e0225ca47e5ecdf6055cdd6905080549150819250505090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a2b5760009050610a39565b6000823b9050600081119150505b919050565b60007fbaab7dbf64751104133af04abc7d9979f0fda3b059a322a8333f533d3f32bf7f90508181555050565b60007f44f6e2e8884cba1236b7f22f351fa5d88b17292b7e0225ca47e5ecdf6055cdd69050818155505056fe44455354494e4154494f4e5f414444524553535f49535f4e4f545f415f434f4e5452414354a2646970667358221220c3fd0b7c8e7f48b86466a2df8184c2ffda56b8a05d5e56b9fed58b7cf368663464736f6c634300060c0033000000000000000000000000c4acd115f1ceebd4a88273423d6cf77c4a1c7559
Deployed Bytecode
0x6080604052600436106100595760003560e01c8063025313a21461010e578063025b22bc1461014f5780634555d5c9146101a05780635c60da1b146101cb578063d88ca2c81461020c578063f1739cae146102e7576100b6565b366100b6576100b4610069610338565b6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061036c565b005b61010c6100c1610338565b6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061036c565b005b34801561011a57600080fd5b50610123610396565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015b57600080fd5b5061019e6004803603602081101561017257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103a5565b005b3480156101ac57600080fd5b506101b56105bb565b6040518082815260200191505060405180910390f35b3480156101d757600080fd5b506101e06105c4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102e56004803603604081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561025f57600080fd5b82018360208201111561027157600080fd5b8035906020019184600183028401116401000000008311171561029357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506105d3565b005b3480156102f357600080fd5b506103366004803603602081101561030a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ef565b005b60008060007fbaab7dbf64751104133af04abc7d9979f0fda3b059a322a8333f533d3f32bf7f905080549150819250505090565b600080825160208401856127105a03f43d604051816000823e8260008114610392578282f35b8282fd5b60006103a06109b8565b905090565b3373ffffffffffffffffffffffffffffffffffffffff166103c46109b8565b73ffffffffffffffffffffffffffffffffffffffff161461044d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156104f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f494e56414c49445f50524f58595f41444452455353000000000000000000000081525060200191505060405180910390fd5b6104f9816109ec565b61054e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610a976025913960400191505060405180910390fd5b610556610338565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fd32d24edea94f55e932d9a008afc425a8561462d1b1f57bc6e508e9a6b9509e160405160405180910390a36105b881610a3e565b50565b60006002905090565b60006105ce610338565b905090565b3373ffffffffffffffffffffffffffffffffffffffff166105f26109b8565b73ffffffffffffffffffffffffffffffffffffffff161461067b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610684826103a5565b600060603073ffffffffffffffffffffffffffffffffffffffff1634846040518082805190602001908083835b602083106106d457805182526020820191506020810190506020830392506106b1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610736576040519150601f19603f3d011682016040523d82523d6000602084013e61073b565b606091505b50915091508181906107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107ad578082015181840152602081019050610792565b50505050905090810190601f1680156107da5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff1661080e6109b8565b73ffffffffffffffffffffffffffffffffffffffff1614610897576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a45524f5f41444452455353000000000000000000000000000000000000000081525060200191505060405180910390fd5b7fdbe5fd65bcdbae152f24ab660ea68e72b4d4705b57b16e0caae994e214680ee2816109646109b8565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a16109b581610a6a565b50565b60008060007f44f6e2e8884cba1236b7f22f351fa5d88b17292b7e0225ca47e5ecdf6055cdd6905080549150819250505090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a2b5760009050610a39565b6000823b9050600081119150505b919050565b60007fbaab7dbf64751104133af04abc7d9979f0fda3b059a322a8333f533d3f32bf7f90508181555050565b60007f44f6e2e8884cba1236b7f22f351fa5d88b17292b7e0225ca47e5ecdf6055cdd69050818155505056fe44455354494e4154494f4e5f414444524553535f49535f4e4f545f415f434f4e5452414354a2646970667358221220c3fd0b7c8e7f48b86466a2df8184c2ffda56b8a05d5e56b9fed58b7cf368663464736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c4acd115f1ceebd4a88273423d6cf77c4a1c7559
-----Decoded View---------------
Arg [0] : _proxyTo (address): 0xc4ACD115F1CeeBD4A88273423D6CF77C4A1c7559
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c4acd115f1ceebd4a88273423d6cf77c4a1c7559
Deployed Bytecode Sourcemap
7388:143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4848:44;4861:20;:18;:20::i;:::-;4883:8;;4848:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:44::i;:::-;7388:143;;4750:44;4763:20;:18;:20::i;:::-;4785:8;;4750:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:44::i;:::-;7388:143;5025:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6139:353;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3925:146;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5360:113;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6500:289;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5723:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5481:234;5533:7;5553:13;5577:16;4453:47;5577:38;;5665:8;5659:15;5650:24;;5702:5;5695:12;;;;5481:234;:::o;3021:896::-;3388:1;3368;3339:9;3333:16;3309:4;3298:9;3294:20;3271:4;3246:5;3239;3235:17;3204:200;3430:16;3479:4;3473:11;3521:4;3518:1;3513:3;3498:28;3724:6;3753:1;3748:66;;;;3875:4;3870:3;3863:17;3748:66;3790:4;3785:3;3778:17;5025:95;5069:7;5096:16;:14;:16::i;:::-;5089:23;;5025:95;:::o;6139:353::-;4973:10;4953:30;;:16;:14;:16::i;:::-;:30;;;4945:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6254:3:::1;6231:27;;:11;:27;;;;6223:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;6303:23;6314:11;6303:10;:23::i;:::-;6295:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6412:20;:18;:20::i;:::-;6386:47;;6399:11;6386:47;;;;;;;;;;;;6454:30;6472:11;6454:17;:30::i;:::-;6139:353:::0;:::o;3925:146::-;3986:19;4062:1;4048:15;;3925:146;:::o;5360:113::-;5418:7;5445:20;:18;:20::i;:::-;5438:27;;5360:113;:::o;6500:289::-;4973:10;4953:30;;:16;:14;:16::i;:::-;:30;;;4945:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6604:33:::1;6625:11;6604:20;:33::i;:::-;6651:12;6665:23;6700:4;6692:18;;6718:9;6729:4;6692:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6650:84;;;;6753:7;6769:10;6745:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5008:1;;6500:289:::0;;:::o;5723:232::-;4973:10;4953:30;;:16;:14;:16::i;:::-;:30;;;4945:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5834:1:::1;5814:22;;:8;:22;;;;5806:47;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;5869:44;5886:8;5896:16;:14;:16::i;:::-;5869:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;5924:23;5938:8;5924:13;:23::i;:::-;5723:232:::0;:::o;5128:224::-;5176:7;5196:14;5221:16;4537:38;5221:29;;5301:8;5295:15;5285:25;;5338:6;5331:13;;;;5128:224;:::o;6996:274::-;7056:4;7096:1;7077:21;;:7;:21;;;7073:66;;;7122:5;7115:12;;;;7073:66;7151:12;7218:7;7206:20;7198:28;;7261:1;7254:4;:8;7247:15;;;6996:274;;;;:::o;6797:187::-;6864:16;4453:47;6864:38;;6954:11;6944:8;6937:29;6922:55;;:::o;5963:168::-;6023:16;4537:38;6023:29;;6104:8;6094;6087:26;6072:52;;:::o
Swarm Source
ipfs://c3fd0b7c8e7f48b86466a2df8184c2ffda56b8a05d5e56b9fed58b7cf3686634
Loading...
Loading
[ 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.