ETH Price: $3,447.10 (+5.93%)
Gas: 51 Gwei

Contract

0x775Cf01c12D3E4296c7c9b52C8B835c071068F51
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
0x60808060182560622023-10-01 13:44:11150 days 15 hrs ago1696167851IN
 Create: UpdateENSDataProposal
0 ETH0.026272729.24511269

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UpdateENSDataProposal

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 4 : UpdateENSDataProposal.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

import { IGovernance } from "@interfaces/IGovernance.sol";
import { IENSRegistry } from "@interfaces/IENSRegistry.sol";
import { IENSResolver } from "@interfaces/IENSResolver.sol";

contract UpdateENSDataProposal {
    address constant governanceAddress = 0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce;

    address constant ensResolverAddress = 0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41;
    address constant ensRegistryAddress = 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e;

    IENSRegistry internal constant ensRegistry = IENSRegistry(ensRegistryAddress);
    IENSResolver internal constant ensResolver = IENSResolver(ensResolverAddress);

    bytes32 internal constant rootTornadoDomainNode = 0xe6ae31d630cc7a8279c0f1c7cbe6e7064814c47d1785fa2703d9ae511ee2be0c;
    bytes32 internal constant sourcesDomainNode = 0x4e5775b58e8aeaa32fc2b429c9485da9de5a1c6fead70b8704ce0f970a6f127d;
    bytes32 internal constant minifiedSourcesDomainNode = 0xe0df66963d3ee12f2f360e193f0443eaffb41afc582166678b806d25b9941ce2;
    bytes32 internal constant packagesDomainNode = 0x205450e4bb0700adede3b5117ed52080e8433e9287815066aea78582107db04e;
    bytes32 internal constant downloadScriptSourceDomainNode = 0x4a6bb62eaa2524f194a206df4c15dcc8e9a93036119d40516dab5b7c021fa43b;
    bytes32 internal constant classicUISourceDomainNode = 0xc0048472a571cb1a08f3ab829dc02e499a23802da54cc5a9a621d96f08acb124;
    bytes32 internal constant novaUISourceDomainNode = 0xa53a41e448ef36a88eb023695dd2e4db15897f6b6e02ce7cb81fe7603da1d860;
    bytes32 internal constant docsSourceDomainNode = 0xdd158a78d03e8c953fe2b54edcf9f9919efaec1d782a6603b3f8f5871107672c;
    bytes32 internal constant relayersUISourceDomainNode = 0x0315c3730f5894b97933d148a24f1b29f823c6a64caadc4a55b5600b510234b2;
    bytes32 internal constant tornTokenSourceDomainNode = 0xd817f80f72b6a337289ab88b44ba896365e52c5a08e816baef170fde21297ad9;
    bytes32 internal constant classicRelayerSoftwareSourceDomainNode = 0x28fe01fe7f28555b980620b2b69388adec9a8879ecc9648d8c32cd4107697408;
    bytes32 internal constant novaRelayerSoftwareSourceDomainNode = 0xdb0f46e0901b38c81ac357482fb43ea4c4da6655cade719cc228ccdedea39504;
    bytes32 internal constant tornadoCliSourceDomainNode = 0xccf6a9a7714d27164199e07b6443821e152be908ec362e4b16af8acc6bd47950;
    bytes32 internal constant infoPageSourceDomainNode = 0xb1735298044f249ea99f70f266979643a3a3ba2c6c7902fbb5aadcca6a04923c;
    bytes32 internal constant classicUIMinifiedDomainNode = 0x394177cecfcf0a9fdc53ffac572e0ad8d40448784e39f40442242e52dc405c8d;
    bytes32 internal constant novaMinifiedDomainNode = 0xb9d9bd7ba34401e9c30df77f171da6fbdb9acf16601d6b822c0f8ebb4e6fb34c;
    bytes32 internal constant tornadoCliMinifiedDomainNode = 0x8994773ddc1fa2e11e4b86dbe1e0905f8744bfe12d9760cd781b4b836b946d8b;
    bytes32 internal constant websnarkPackageDomainNode = 0x09a48ede99da7705e43c9fde7ec88ffb4fb61c77b8adb3a682f3d16849d708da;
    bytes32 internal constant circomlibPackageDomainNode = 0xc49cefe6742a807155aeb894fb982bef5ac0b7c64fcb383d4b54e7408dbf3e74;
    bytes32 internal constant snarkjsPackageDomainNode = 0xa5981a1a101fb57b405ec65007bfcc2d966f0cea15fa5720d288db7edb08160c;
    bytes32 internal constant tornadoOraclesPackageDomainNode = 0xa25976ac1e06a4cd62256c85d7eeb4721e011881d831a5fdf213b640e8c6ab0f;
    bytes32 internal constant gasPriceOraclePackageDomainNode = 0xb1eb7029ca628d908ee8f8de858985817e7d3003c8cb2c24d353822b7dde96f2;
    bytes32 internal constant tornadoConfigPackageDomainNode = 0xcb97b63094a6ffae96dca34ba12a51d9d4bce5c805dcbcc9f96267acc80c56b0;
    bytes32 internal constant anonymityMiningPackageDomainNode = 0x246e925f01d12a5dd0240023bebf85db3d64345941bfd5a0a1eb391cabfe04b0;
    bytes32 internal constant tornadoTreesPackageDomainNode = 0xde4753a77b1a26aa43bac29de191be4a48ed63b4d2232e91754cfe08bbf758ae;
    bytes32 internal constant fixedMerkleTreePackageDomainNode = 0x6f21b84dba16087fcd3620e24e632716a38eb0e39513bf540818bf2d5edea44e;
    bytes32 internal constant txManagerPackageDomainNode = 0xedb16516abf2f454740bab0349fc287887cc4395eb691873a6f4533ae5c5913a;
    bytes32 internal constant merkleRootUpdaterPackageDomainNode = 0xb4d53f6fa2f2ca1006da4c94cd391b54d98eacdf09bef972e0146e8735b21c4f;

    bytes32 internal constant rootTornadoDomainLabelhash = 0xe5b71d8431579082519dd1ae04b9f23df1cecbfd6f54a6cd9ae12eb0ab7f96f3;
    bytes32 internal constant sourcesDomainLabelhash = 0x6ee89d35dcb4b9803f51dc5e513c1c1714149cf0821537078d8ad61616e49f2b;
    bytes32 internal constant minifiedSourcesDomainLabelhash = 0x26403be8dc5694ba56b8d49945b813cff19140637d1fa38a3187a07faf4ee073;
    bytes32 internal constant packagesDomainLabelhash = 0x89c4c51c9264344cbc2ab3aa255b085918a2841af8ffaa3133ceabee961afffd;
    bytes32 internal constant downloadScriptSourceDomainLabelhash = 0xedb311f245ef85f918a5790470448cf17c7d06961f4dfa42cc41616de7f8c2e1;
    bytes32 internal constant classicUISourceDomainLabelhash = 0x4e27b2a330e4a0d8d8521393df67e9a24fb2ab5f10f9e640c244d504874322bc;
    bytes32 internal constant novaUISourceDomainLabelhash = 0xc90e7e9184dce6e0d7fff2e19e72ffa35430aca54bd634ada091bef2d2bb0635;
    bytes32 internal constant docsSourceDomainLabelhash = 0x6bf9054545420e9e9f4aa4f353a32c7d0d52c11dbcdda56c53be8375cafeebb1;
    bytes32 internal constant relayersUISourceDomainLabelhash = 0xea7c97223b0629f1c3bea11a57dd6179a12e9cc4bbdf8f69fb999c4051c682cf;
    bytes32 internal constant tornTokenSourceDomainLabelhash = 0x5d8fec99a5792d7772f788343c7991bf1049b821dcd1b0b900f86e6b7fe7fb25;
    bytes32 internal constant classicRelayerSoftwareSourceDomainLabelhash =
        0x7bece1009df269e16c3552ea6ced49b1d66c22438cda5caf73f55ac74bcadea9;
    bytes32 internal constant novaRelayerSoftwareSourceDomainLabelhash = 0xe01bed58384f9ee9a9dccf26a4236eca42aa8b767efe27c5d191a51885118e5b;
    bytes32 internal constant tornadoCliSourceDomainLabelhash = 0x92c0fea2a18f1747f48f5503806e5f24d5ccb2c360ef56a462ce254707afa64a;
    bytes32 internal constant infoPageSourceDomainLabelhash = 0x41c8b7e0e9650ab5d1f55454c8ad68d9d4c6d42f1a8a14878b77e92e9794e610;
    bytes32 internal constant classicUIMinifiedDomainLabelhash = 0x4e27b2a330e4a0d8d8521393df67e9a24fb2ab5f10f9e640c244d504874322bc;
    bytes32 internal constant novaMinifiedDomainLabelhash = 0xc90e7e9184dce6e0d7fff2e19e72ffa35430aca54bd634ada091bef2d2bb0635;
    bytes32 internal constant tornadoCliMinifiedDomainLabelhash = 0x92c0fea2a18f1747f48f5503806e5f24d5ccb2c360ef56a462ce254707afa64a;
    bytes32 internal constant websnarkPackageDomainLabelhash = 0x50d1752a9b1f31ebf05378927a112194d33596cc02a04c06970477bd8a40c931;
    bytes32 internal constant circomlibPackageDomainLabelhash = 0x68dc231d08143bcf7cf261e63071bdcb7d606e41dec696e34482f6d1068c4afa;
    bytes32 internal constant snarkjsPackageDomainLabelhash = 0x31df71a9eb77699aba0f0e6d565af942889afef76e60ee8a9f80c27f2e946065;
    bytes32 internal constant tornadoOraclesPackageDomainLabelhash = 0xb7a48206cd37ed309fdcdf62fe4b65d6871298645d5e41942f0cd89c08a65cbf;
    bytes32 internal constant gasPriceOraclePackageDomainLabelhash = 0x05048648c60bebc220ad5a82188a966f910539a7e1947cc8a9ac0ec1cd99ca40;
    bytes32 internal constant tornadoConfigPackageDomainLabelhash = 0x0b49c88cd3d1ba3c99fdd9a41ced95ec8629bda85e80b6c506c15db62ab8f761;
    bytes32 internal constant anonymityMiningPackageDomainLabelhash = 0xc3520c36e06133299b24abf819a008b22bc3e9adfa39a38bbccd5cf829831d48;
    bytes32 internal constant tornadoTreesPackageDomainLabelhash = 0xef1496a9cbb93e123ce8e3a0868374bda8446faafa4c2eb7fce3c7a9465be8df;
    bytes32 internal constant fixedMerkleTreePackageDomainLabelhash = 0x37441881d8c14192cbe636eb3d4318346c6af80d92971e1357419a1a94e8a2e2;
    bytes32 internal constant txManagerPackageDomainLabelhash = 0x0d3be7866f858f24a43fd40d3844a410405b3d6abd2255102d8327fa242a4ff3;
    bytes32 internal constant merkleRootUpdaterPackageDomainLabelhash = 0x1b162702ef4549cb2e6522252d90c0d44fcce15b939897373cfa4f829488cab4;

    function executeProposal() public {
        // Register all subnodes, set Governance as an owner
        ensRegistry.setSubnodeRecord(rootTornadoDomainNode, sourcesDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(sourcesDomainNode, minifiedSourcesDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(sourcesDomainNode, packagesDomainLabelhash, governanceAddress, ensResolverAddress, 0);

        ensRegistry.setSubnodeRecord(sourcesDomainNode, downloadScriptSourceDomainLabelhash, governanceAddress, ensResolverAddress, 0);

        ensRegistry.setSubnodeRecord(sourcesDomainNode, classicUISourceDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(sourcesDomainNode, novaUISourceDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(sourcesDomainNode, docsSourceDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(sourcesDomainNode, relayersUISourceDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(sourcesDomainNode, tornTokenSourceDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(sourcesDomainNode, novaRelayerSoftwareSourceDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(
            sourcesDomainNode, classicRelayerSoftwareSourceDomainLabelhash, governanceAddress, ensResolverAddress, 0
        );
        ensRegistry.setSubnodeRecord(sourcesDomainNode, tornadoCliSourceDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(sourcesDomainNode, infoPageSourceDomainLabelhash, governanceAddress, ensResolverAddress, 0);

        ensRegistry.setSubnodeRecord(minifiedSourcesDomainNode, classicUIMinifiedDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(minifiedSourcesDomainNode, novaMinifiedDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(minifiedSourcesDomainNode, tornadoCliMinifiedDomainLabelhash, governanceAddress, ensResolverAddress, 0);

        ensRegistry.setSubnodeRecord(packagesDomainNode, websnarkPackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(packagesDomainNode, circomlibPackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(packagesDomainNode, snarkjsPackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(packagesDomainNode, tornadoOraclesPackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(packagesDomainNode, gasPriceOraclePackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(packagesDomainNode, tornadoConfigPackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(packagesDomainNode, anonymityMiningPackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(packagesDomainNode, tornadoTreesPackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(packagesDomainNode, fixedMerkleTreePackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(packagesDomainNode, txManagerPackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);
        ensRegistry.setSubnodeRecord(packagesDomainNode, merkleRootUpdaterPackageDomainLabelhash, governanceAddress, ensResolverAddress, 0);

        // From data/ensDomainsIPFSContenthashes.txt, calculated via scripts/calculateIPFSContenthashes.ts
        bytes memory downloadInstructionsHtmlContenthash = hex"e30101701220810e2b756845f89793b616c56a0b5ab9689da7f6e7fdf93280d05a0969a4902c";
        bytes memory downloadScriptSourceContenthash = hex"e301017012208d6f8f48d3c2bcb6eaafae3110ad59b5aa2137010d827996ea1b87f39266b4f5";
        bytes memory classicUiSourceContenthash = hex"e30101701220b674829af0777f2b89ed96020184ee6f04f6cfd2eb176ad2b653b1f2a5563d98";
        bytes memory classicRelayerSourceContenthash = hex"e301017012205ad0c59d5fcc60e4866ab37f063480ffa305eb84da143894be5baeff2bb8e931";
        bytes memory novaRelayerSourceContenthash = hex"e30101701220c9106227570ab16e639adb5f05ccde1b367b004f582e0700a00dfb54f914068c";
        bytes memory relayersUiSourceContenthash = hex"e3010170122046847feae11b2774438df322e014e04652fe029ba59b79df90fafba040ba6550";
        bytes memory novaUiSourceContenthash = hex"e30101701220b554eed2a9ba47011b6790ff6d23d0480419de78abf723ea7ada55e1664f5976";
        bytes memory docsSourceContenthash = hex"e30101701220a140c7c35f6f2cc72f77d69b73dbab14ac0ccd6ba611a394282ac29f05b89951";
        bytes memory tornadoCliSourceContenthash = hex"e30101701220cb1d7ca2be9c5d7ddba48d5c2b5bb027359ac4c0cf077327a14c9ffe1db057e6";
        bytes memory infoPageSourceContenthash = hex"e30101701220269c131010a479474d82d7926cc14394d01c41bfb4cda23c26aa3defd65ad4fe";
        bytes memory classicUiMinifiedContenthash = hex"e301017012201cbffa16ff8f8bd88f2600f1826648aead1ad513b2f3b1118ef873db9f2add59";
        bytes memory novaUiMinifiedContenthash = hex"e30101701220f1e9f532b9a96e8d808f983d4471da7c261daeacbd9d8e76f82d04875d5ad9fa";
        bytes memory tornadoCliMinifiedContenthash = hex"e3010170122057be20935fa635689427856a462b288fe353df7b588dcb30ff1b7e6cbffe0d9c";
        bytes memory tornTokenSourceContenthash = hex"e30101701220fdee0b6906de7f60179c44103dc0bfd4600233f3737c48eb2e7279850970fd92";
        bytes memory merkleRootUpdaterPackageContenthash = hex"e301017012204c9d433771e8e97cece783366a16c6cd4357b6fb94c6602a90d98e54c4179a3d";
        bytes memory gasPriceOraclePackageContenthash = hex"e3010170122073e0f65b60d455058aff4fd9b2d0ba2b87f62fb59069433439810dad2d54e615";
        bytes memory tornadoOraclesPackageContenthash = hex"e30101701220968d7fb0c0b8981bc8ec464e27ad2a90ef0dbcf67df5990498d94718fa9c6361";
        bytes memory snarkjsPackageContenthash = hex"e30101701220e5d69d83d296c8623aa1b1ff5f9ddc3242914df2bd5f20c1682f07ee095dc6d4";
        bytes memory websnarkPackageContenthash = hex"e3010170122033fa876a2752cc124fec5c61ebedaf623b42ac50ff348322f8f08183c5aabb8f";
        bytes memory circomlibPackageContenthash = hex"e30101701220663529c784c5702922344a1035884949317cd59a529160cfb4571709df9c7059";
        bytes memory txManagerPackageContenthash = hex"e30101701220952a5880f8b175e2206e7502b9891710876e2c970031616b7ede68ce994dea4b";
        bytes memory fixedMerkleTreePackageContenthash = hex"e30101701220615d9d0986e8fd6a233615d792a70cf5125e188aa82c7493816a5d83c384b924";
        bytes memory tornadoTreesPackageContenthash = hex"e30101701220b8ea77533cc9b2f434bac48d96d8bc48183cc335fd726b8c5edf11dfa36a78dc";
        bytes memory anonymityMiningPackageContenthash = hex"e301017012204f3d3a8f0a8a183261288f6012844f74605fd7813d9adc5200784125fb1f671c";
        bytes memory tornadoConfigPackageContenthash = hex"e301017012202d419e8834b28e8aafabe3dfe39e3d71f2c07c3911c856248a6e6587bfec195a";

        // Set IPFS Cids in ENS subdomain contenthashes
        ensResolver.setContenthash(sourcesDomainNode, downloadInstructionsHtmlContenthash);
        ensResolver.setContenthash(downloadScriptSourceDomainNode, downloadScriptSourceContenthash);
        ensResolver.setContenthash(classicUISourceDomainNode, classicUiSourceContenthash);
        ensResolver.setContenthash(novaUISourceDomainNode, novaUiSourceContenthash);
        ensResolver.setContenthash(docsSourceDomainNode, docsSourceContenthash);
        ensResolver.setContenthash(relayersUISourceDomainNode, relayersUiSourceContenthash);
        ensResolver.setContenthash(tornTokenSourceDomainNode, tornTokenSourceContenthash);
        ensResolver.setContenthash(classicRelayerSoftwareSourceDomainNode, classicRelayerSourceContenthash);
        ensResolver.setContenthash(novaRelayerSoftwareSourceDomainNode, novaRelayerSourceContenthash);
        ensResolver.setContenthash(tornadoCliSourceDomainNode, tornadoCliSourceContenthash);
        ensResolver.setContenthash(infoPageSourceDomainNode, infoPageSourceContenthash);
        ensResolver.setContenthash(classicUIMinifiedDomainNode, classicUiMinifiedContenthash);
        ensResolver.setContenthash(tornadoCliMinifiedDomainNode, tornadoCliMinifiedContenthash);
        ensResolver.setContenthash(websnarkPackageDomainNode, websnarkPackageContenthash);
        ensResolver.setContenthash(circomlibPackageDomainNode, circomlibPackageContenthash);
        ensResolver.setContenthash(novaMinifiedDomainNode, novaUiMinifiedContenthash);
        ensResolver.setContenthash(snarkjsPackageDomainNode, snarkjsPackageContenthash);
        ensResolver.setContenthash(tornadoOraclesPackageDomainNode, tornadoOraclesPackageContenthash);
        ensResolver.setContenthash(gasPriceOraclePackageDomainNode, gasPriceOraclePackageContenthash);
        ensResolver.setContenthash(tornadoConfigPackageDomainNode, tornadoConfigPackageContenthash);
        ensResolver.setContenthash(anonymityMiningPackageDomainNode, anonymityMiningPackageContenthash);
        ensResolver.setContenthash(tornadoTreesPackageDomainNode, tornadoTreesPackageContenthash);
        ensResolver.setContenthash(fixedMerkleTreePackageDomainNode, fixedMerkleTreePackageContenthash);
        ensResolver.setContenthash(txManagerPackageDomainNode, txManagerPackageContenthash);
        ensResolver.setContenthash(merkleRootUpdaterPackageDomainNode, merkleRootUpdaterPackageContenthash);
    }
}

File 2 of 4 : IGovernance.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

enum ProposalState {
    Pending,
    Active,
    Defeated,
    Timelocked,
    AwaitingExecution,
    Executed,
    Expired
}

struct Proposal {
    // Creator of the proposal
    address proposer;
    // target addresses for the call to be made
    address target;
    // The block at which voting begins
    uint256 startTime;
    // The block at which voting ends: votes must be cast prior to this block
    uint256 endTime;
    // Current number of votes in favor of this proposal
    uint256 forVotes;
    // Current number of votes in opposition to this proposal
    uint256 againstVotes;
    // Flag marking whether the proposal has been executed
    bool executed;
    // Flag marking whether the proposal voting time has been extended
    // Voting time can be extended once, if the proposal outcome has changed during CLOSING_PERIOD
    bool extended;
}

interface IGovernance {
    function initialized() external view returns (bool);
    function initializing() external view returns (bool);
    function EXECUTION_DELAY() external view returns (uint256);
    function EXECUTION_EXPIRATION() external view returns (uint256);
    function QUORUM_VOTES() external view returns (uint256);
    function PROPOSAL_THRESHOLD() external view returns (uint256);
    function VOTING_DELAY() external view returns (uint256);
    function VOTING_PERIOD() external view returns (uint256);
    function CLOSING_PERIOD() external view returns (uint256);
    function VOTE_EXTEND_TIME() external view returns (uint256);
    function torn() external view returns (address);
    function proposals(uint256 index) external view returns (Proposal memory);
    function proposalCount() external view returns (uint256);
    function lockedBalance(address account) external view returns (uint256);
    function propose(address target, string memory description) external returns (uint256);
    function castVote(uint256 proposalId, bool support) external;
    function lock(address owner, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
    function unlock(uint256 amount) external;
    function lockWithApproval(uint256 amount) external;
    function execute(uint256 proposalId) external payable;
    function state(uint256 proposalId) external view returns (ProposalState);
}

File 3 of 4 : IENSRegistry.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

interface IENSRegistry {
    function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external returns (bytes32);

    function setSubnodeRecord(bytes32 node, bytes32 label, address owner, address resolver, uint64 ttl) external;

    function resolver(bytes32 node) external view returns (address);

    function setOwner(bytes32 node, address owner) external;

    function owner(bytes32 node) external view returns (address);

    function recordExists(bytes32 node) external view returns (bool);
}

File 4 of 4 : IENSResolver.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

interface IENSResolver {
    function setContenthash(bytes32 node, bytes memory hash) external;

    function setAddr(bytes32 node, address a) external;

    function addr(bytes32 node) external view returns (address);

    function contenthash(bytes32 node) external returns (bytes memory);
}

Settings
{
  "remappings": [
    "@ens/contracts/=node_modules/@ensdomains/ens-contracts/contracts/",
    "@ensdomains/=node_modules/@ensdomains/",
    "@forge-std/=lib/forge-std/src/",
    "@gnosis/contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/",
    "@gnosis/ido-contracts/=node_modules/@gnosis.pm/ido-contracts/contracts/",
    "@interfaces/=src/interfaces/",
    "@openzeppelin/=node_modules/@openzeppelin/",
    "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",
    "@openzeppelin/upgrades/=node_modules/@openzeppelin/upgrades-core/",
    "@proprietary/=src/proprietary/",
    "@root/=src/",
    "@torn-token/=node_modules/torn-token/",
    "base58-solidity/=node_modules/base58-solidity/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "hardhat/=node_modules/hardhat/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": true,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"executeProposal","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608080604052346100165761326b908161001c8239f35b600080fdfe6102a080604052600436101561001457600080fd5b60006102805260003560e01c63373058b81461002f57600080fd5b3461316a57600036600319011261316a576e0c2e074ec69a0dfb2997ba6c7d2e1e3b1561316a576305ef2c7f60e41b81527fe6ae31d630cc7a8279c0f1c7cbe6e7064814c47d1785fa2703d9ae511ee2be0c60048201527f6ee89d35dcb4b9803f51dc5e513c1c1714149cf0821537078d8ad61616e49f2b60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015261028080516084830152518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa85761315b575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f26403be8dc5694ba56b8d49945b813cff19140637d1fa38a3187a07faf4ee07360248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613145575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f89c4c51c9264344cbc2ab3aa255b085918a2841af8ffaa3133ceabee961afffd60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa85761312f575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527fedb311f245ef85f918a5790470448cf17c7d06961f4dfa42cc41616de7f8c2e160248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613119575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f4e27b2a330e4a0d8d8521393df67e9a24fb2ab5f10f9e640c244d504874322bc60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613103575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527fc90e7e9184dce6e0d7fff2e19e72ffa35430aca54bd634ada091bef2d2bb063560248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa8576130ed575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f6bf9054545420e9e9f4aa4f353a32c7d0d52c11dbcdda56c53be8375cafeebb160248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa8576130d7575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527fea7c97223b0629f1c3bea11a57dd6179a12e9cc4bbdf8f69fb999c4051c682cf60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa8576130c1575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f5d8fec99a5792d7772f788343c7991bf1049b821dcd1b0b900f86e6b7fe7fb2560248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa8576130ab575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527fe01bed58384f9ee9a9dccf26a4236eca42aa8b767efe27c5d191a51885118e5b60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613095575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f7bece1009df269e16c3552ea6ced49b1d66c22438cda5caf73f55ac74bcadea960248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa85761307f575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f92c0fea2a18f1747f48f5503806e5f24d5ccb2c360ef56a462ce254707afa64a60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613069575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f41c8b7e0e9650ab5d1f55454c8ad68d9d4c6d42f1a8a14878b77e92e9794e61060248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613053575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81527fe0df66963d3ee12f2f360e193f0443eaffb41afc582166678b806d25b9941ce260048201527f4e27b2a330e4a0d8d8521393df67e9a24fb2ab5f10f9e640c244d504874322bc60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa85761303d575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81527fe0df66963d3ee12f2f360e193f0443eaffb41afc582166678b806d25b9941ce260048201527fc90e7e9184dce6e0d7fff2e19e72ffa35430aca54bd634ada091bef2d2bb063560248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613027575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81527fe0df66963d3ee12f2f360e193f0443eaffb41afc582166678b806d25b9941ce260048201527f92c0fea2a18f1747f48f5503806e5f24d5ccb2c360ef56a462ce254707afa64a60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613011575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f50d1752a9b1f31ebf05378927a112194d33596cc02a04c06970477bd8a40c93160248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612ffb575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f68dc231d08143bcf7cf261e63071bdcb7d606e41dec696e34482f6d1068c4afa60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612fe5575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f31df71a9eb77699aba0f0e6d565af942889afef76e60ee8a9f80c27f2e94606560248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612fcf575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527fb7a48206cd37ed309fdcdf62fe4b65d6871298645d5e41942f0cd89c08a65cbf60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612fb9575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f05048648c60bebc220ad5a82188a966f910539a7e1947cc8a9ac0ec1cd99ca4060248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612fa3575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f0b49c88cd3d1ba3c99fdd9a41ced95ec8629bda85e80b6c506c15db62ab8f76160248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f8d575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527fc3520c36e06133299b24abf819a008b22bc3e9adfa39a38bbccd5cf829831d4860248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f77575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527fef1496a9cbb93e123ce8e3a0868374bda8446faafa4c2eb7fce3c7a9465be8df60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f61575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f37441881d8c14192cbe636eb3d4318346c6af80d92971e1357419a1a94e8a2e260248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f4b575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f0d3be7866f858f24a43fd40d3844a410405b3d6abd2255102d8327fa242a4ff360248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f35575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f1b162702ef4549cb2e6522252d90c0d44fcce15b939897373cfa4f829488cab460248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f1f575b506113766040518061020052613199565b602661020051527fe30101701220810e2b756845f89793b616c56a0b5ab9689da7f6e7fdf93280d060206102005101526516825a69240b60d21b60406102005101526113c8604051806101e052613199565b60266101e051527fe301017012208d6f8f48d3c2bcb6eaafae3110ad59b5aa2137010d827996ea1b60206101e05101526587f39266b4f560d01b60406101e051015261141a604051806101c052613199565b60266101c051527fe30101701220b674829af0777f2b89ed96020184ee6f04f6cfd2eb176ad2b65360206101c051015265163e54aac7b360d31b60406101c051015260405161146881613199565b602681527fe301017012205ad0c59d5fcc60e4866ab37f063480ffa305eb84da143894be5b602082015265aeff2bb8e93160d01b6040820152604051906114ae82613199565b602682527fe30101701220c9106227570ab16e639adb5f05ccde1b367b004f582e0700a00d6020830152653ed53e4501a360d21b6040830152604051916114f483613199565b602683527fe3010170122046847feae11b2774438df322e014e04652fe029ba59b79df90fa6020840152650fba040ba65560d41b604084015261153d6040518061024052613199565b602661024051527fe30101701220b554eed2a9ba47011b6790ff6d23d0480419de78abf723ea7ada6020610240510152652af0b327acbb60d11b604061024051015261158f6040518061022052613199565b602661022051527fe30101701220a140c7c35f6f2cc72f77d69b73dbab14ac0ccd6ba611a394282a602061022051015265c29f05b8995160d01b60406102205101526040516115dd81613199565b602681527fe30101701220cb1d7ca2be9c5d7ddba48d5c2b5bb027359ac4c0cf077327a14c6020820152654fff0ed82bf360d11b60408201526040519061162382613199565b602682527fe30101701220269c131010a479474d82d7926cc14394d01c41bfb4cda23c26aa6020830152651ef7eb2d6a7f60d11b60408301526040519261166984613199565b602684527fe301017012201cbffa16ff8f8bd88f2600f1826648aead1ad513b2f3b1118ef860208501526573db9f2add5960d01b60408501526116b26040518061026052613199565b602661026051527fe30101701220f1e9f532b9a96e8d808f983d4471da7c261daeacbd9d8e76f82d6020610260510152650243aead6cfd60d11b60406102605101526040519461170186613199565b602686527fe3010170122057be20935fa635689427856a462b288fe353df7b588dcb30ff1b6020870152651f9b2fff836760d21b604087015260405161174681613199565b602681527fe30101701220fdee0b6906de7f60179c44103dc0bfd4600233f3737c48eb2e726020820152653cc284b87ec960d11b60408201526040519761178c89613199565b602689527fe301017012204c9d433771e8e97cece783366a16c6cd4357b6fb94c6602a90d960208a0152658e54c4179a3d60d01b60408a01526117d46040518060e052613199565b602660e051527fe3010170122073e0f65b60d455058aff4fd9b2d0ba2b87f62fb5906943343981602060e0510152650dad2d54e61560d01b604060e051015261182260405180608052613199565b6026608051527fe30101701220968d7fb0c0b8981bc8ec464e27ad2a90ef0dbcf67df5990498d960206080510152654718fa9c636160d01b604060805101526118706040518060c052613199565b602660c051527fe30101701220e5d69d83d296c8623aa1b1ff5f9ddc3242914df2bd5f20c1682f602060c05101526501fb825771b560d21b604060c05101526118be6040518060a052613199565b602660a051527fe3010170122033fa876a2752cc124fec5c61ebedaf623b42ac50ff348322f8f0602060a0510152658183c5aabb8f60d01b604060a051015261190d6040518061016052613199565b602661016051527fe30101701220663529c784c5702922344a1035884949317cd59a529160cfb4576020610160510152651709df9c705960d01b604061016051015261195f604051806101a052613199565b60266101a051527fe30101701220952a5880f8b175e2206e7502b9891710876e2c970031616b7ede60206101a05101526568ce994dea4b60d01b60406101a05101526119b16040518061018052613199565b602661018051527fe30101701220615d9d0986e8fd6a233615d792a70cf5125e188aa82c7493816a6020610180510152651760f0e12e4960d21b6040610180510152611a036040518061010052613199565b602661010051527fe30101701220b8ea77533cc9b2f434bac48d96d8bc48183cc335fd726b8c5edf6020610100510152650477e8da9e3760d21b6040610100510152611a556040518061014052613199565b602661014051527fe301017012204f3d3a8f0a8a183261288f6012844f74605fd7813d9adc52007860206101405101526510497ec7d9c760d21b6040610140510152611aa76040518061012052613199565b602661012051527fe301017012202d419e8834b28e8aafabe3dfe39e3d71f2c07c3911c856248a6e60206101205101526532c3dff60cad60d11b60406101205101526000805160206132168339815191523b15612acc57604051631827356f60e11b81526000805160206131f6833981519152600482015260406024820152610200515180604483015260005b818110612f065750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612ef0575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527f4a6bb62eaa2524f194a206df4c15dcc8e9a93036119d40516dab5b7c021fa43b6004820152604060248201526101e0515180604483015260005b818110612ed75750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612ec1575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fc0048472a571cb1a08f3ab829dc02e499a23802da54cc5a9a621d96f08acb1246004820152604060248201526101c0515180604483015260005b818110612ea85750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612e92575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fa53a41e448ef36a88eb023695dd2e4db15897f6b6e02ce7cb81fe7603da1d860600482015260406024820152610240515180604483015260005b818110612e795750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612e63575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fdd158a78d03e8c953fe2b54edcf9f9919efaec1d782a6603b3f8f5871107672c600482015260406024820152610220515180604483015260005b818110612e4a5750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612e34575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527f0315c3730f5894b97933d148a24f1b29f823c6a64caadc4a55b5600b510234b260048301526040602483015280519081604484015260005b828110612e1e575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612e08575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527fd817f80f72b6a337289ab88b44ba896365e52c5a08e816baef170fde21297ad960048301526040602483015280519081604484015260005b828110612df2575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612ddc575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527f28fe01fe7f28555b980620b2b69388adec9a8879ecc9648d8c32cd410769740860048301526040602483015280519081604484015260005b828110612dc6575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612db0575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527fdb0f46e0901b38c81ac357482fb43ea4c4da6655cade719cc228ccdedea3950460048301526040602483015280519081604484015260005b828110612d9a575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612d84575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527fccf6a9a7714d27164199e07b6443821e152be908ec362e4b16af8acc6bd4795060048301526040602483015280519081604484015260005b828110612d6e575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612d58575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527fb1735298044f249ea99f70f266979643a3a3ba2c6c7902fbb5aadcca6a04923c60048301526040602483015280519081604484015260005b828110612d42575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612d2c575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527f394177cecfcf0a9fdc53ffac572e0ad8d40448784e39f40442242e52dc405c8d60048301526040602483015280519081604484015260005b828110612d16575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612d00575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527f8994773ddc1fa2e11e4b86dbe1e0905f8744bfe12d9760cd781b4b836b946d8b60048301526040602483015280519081604484015260005b828110612cea575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612cd4575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527f09a48ede99da7705e43c9fde7ec88ffb4fb61c77b8adb3a682f3d16849d708da60048201526040602482015260a0515180604483015260005b818110612cbc5750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612ca6575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fc49cefe6742a807155aeb894fb982bef5ac0b7c64fcb383d4b54e7408dbf3e74600482015260406024820152610160515180604483015260005b818110612c8d5750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612c77575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fb9d9bd7ba34401e9c30df77f171da6fbdb9acf16601d6b822c0f8ebb4e6fb34c600482015260406024820152610260515180604483015260005b818110612c5e5750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612c48575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fa5981a1a101fb57b405ec65007bfcc2d966f0cea15fa5720d288db7edb08160c60048201526040602482015260c0515180604483015260005b818110612c305750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612c1a575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fa25976ac1e06a4cd62256c85d7eeb4721e011881d831a5fdf213b640e8c6ab0f6004820152604060248201526080515180604483015260005b818110612c025750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612bec575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fb1eb7029ca628d908ee8f8de858985817e7d3003c8cb2c24d353822b7dde96f260048201526040602482015260e0515180604483015260005b818110612bd45750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612bbe575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fcb97b63094a6ffae96dca34ba12a51d9d4bce5c805dcbcc9f96267acc80c56b0600482015260406024820152610120515180604483015260005b818110612ba55750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612b8f575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527f246e925f01d12a5dd0240023bebf85db3d64345941bfd5a0a1eb391cabfe04b0600482015260406024820152610140515180604483015260005b818110612b765750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612b60575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fde4753a77b1a26aa43bac29de191be4a48ed63b4d2232e91754cfe08bbf758ae600482015260406024820152610100515180604483015260005b818110612b475750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612b31575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527f6f21b84dba16087fcd3620e24e632716a38eb0e39513bf540818bf2d5edea44e600482015260406024820152610180515180604483015260005b818110612b185750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612b02575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fedb16516abf2f454740bab0349fc287887cc4395eb691873a6f4533ae5c5913a6004820152604060248201526101a0515180604483015260005b818110612ae95750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612ad3575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527fb4d53f6fa2f2ca1006da4c94cd391b54d98eacdf09bef972e0146e8735b21c4f60048301526040602483015280519081604484015260005b828110612ab6575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612a92575b6102805180f35b612a9b9061316f565b610280518015612a8b5780fd5b6040513d61028051823e3d90fd5b8060208092840101516064828701015201612a47565b6102805180fd5b612adc9061316f565b6102805180156129ea5780fd5b80602080926101a05101015160648286010152016129a7565b612b0b9061316f565b6102805180156129495780fd5b8060208092610180510101516064828601015201612906565b612b3a9061316f565b6102805180156128a85780fd5b8060208092610100510101516064828601015201612865565b612b699061316f565b6102805180156128075780fd5b80602080926101405101015160648286010152016127c4565b612b989061316f565b6102805180156127665780fd5b8060208092610120510101516064828601015201612723565b612bc79061316f565b6102805180156126c55780fd5b806020809260e0510101516064828601015201612682565b612bf59061316f565b6102805180156126255780fd5b806020809260805101015160648286010152016125e2565b612c239061316f565b6102805180156125855780fd5b806020809260c0510101516064828601015201612542565b612c519061316f565b6102805180156124e55780fd5b80602080926102605101015160648286010152016124a2565b612c809061316f565b6102805180156124445780fd5b8060208092610160510101516064828601015201612401565b612caf9061316f565b6102805180156123a35780fd5b806020809260a0510101516064828601015201612360565b612cdd9061316f565b6102805180156123035780fd5b80602080928401015160648287010152016122bf565b612d099061316f565b6102805180156122625780fd5b806020809284010151606482870101520161221e565b612d359061316f565b6102805180156121c15780fd5b806020809284010151606482870101520161217d565b612d619061316f565b6102805180156121205780fd5b80602080928401015160648287010152016120dc565b612d8d9061316f565b61028051801561207f5780fd5b806020809284010151606482870101520161203b565b612db99061316f565b610280518015611fde5780fd5b8060208092840101516064828701015201611f9a565b612de59061316f565b610280518015611f3d5780fd5b8060208092840101516064828701015201611ef9565b612e119061316f565b610280518015611e9c5780fd5b8060208092840101516064828701015201611e58565b612e3d9061316f565b610280518015611dfb5780fd5b8060208092610220510101516064828601015201611db8565b612e6c9061316f565b610280518015611d5a5780fd5b8060208092610240510101516064828601015201611d17565b612e9b9061316f565b610280518015611cb95780fd5b80602080926101c0510101516064828601015201611c76565b612eca9061316f565b610280518015611c185780fd5b80602080926101e0510101516064828601015201611bd5565b612ef99061316f565b610280518015611b775780fd5b8060208092610200510101516064828601015201611b34565b612f289061316f565b6102805180156113655780fd5b612f3e9061316f565b6102805180156112b25780fd5b612f549061316f565b6102805180156111ff5780fd5b612f6a9061316f565b61028051801561114c5780fd5b612f809061316f565b6102805180156110995780fd5b612f969061316f565b610280518015610fe65780fd5b612fac9061316f565b610280518015610f335780fd5b612fc29061316f565b610280518015610e805780fd5b612fd89061316f565b610280518015610dcd5780fd5b612fee9061316f565b610280518015610d1a5780fd5b6130049061316f565b610280518015610c675780fd5b61301a9061316f565b610280518015610bb45780fd5b6130309061316f565b610280518015610aef5780fd5b6130469061316f565b610280518015610a2a5780fd5b61305c9061316f565b6102805180156109655780fd5b6130729061316f565b6102805180156108b25780fd5b6130889061316f565b6102805180156107ff5780fd5b61309e9061316f565b61028051801561074c5780fd5b6130b49061316f565b6102805180156106995780fd5b6130ca9061316f565b6102805180156105e65780fd5b6130e09061316f565b6102805180156105335780fd5b6130f69061316f565b6102805180156104805780fd5b61310c9061316f565b6102805180156103cd5780fd5b6131229061316f565b61028051801561031a5780fd5b6131389061316f565b6102805180156102675780fd5b61314e9061316f565b6102805180156101b45780fd5b6131649061316f565b38610101565b600080fd5b67ffffffffffffffff811161318357604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176131835760405256fe205450e4bb0700adede3b5117ed52080e8433e9287815066aea78582107db04e0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce4e5775b58e8aeaa32fc2b429c9485da9de5a1c6fead70b8704ce0f970a6f127d0000000000000000000000004976fb03c32e5b8cfe2b6ccb31c09ba78ebaba41a26469706673582212206f043bf0af535fc25b023de33fc258c52ec22c8db6de8a5fa2ecc9f0131fa61264736f6c63430008140033

Deployed Bytecode

0x6102a080604052600436101561001457600080fd5b60006102805260003560e01c63373058b81461002f57600080fd5b3461316a57600036600319011261316a576e0c2e074ec69a0dfb2997ba6c7d2e1e3b1561316a576305ef2c7f60e41b81527fe6ae31d630cc7a8279c0f1c7cbe6e7064814c47d1785fa2703d9ae511ee2be0c60048201527f6ee89d35dcb4b9803f51dc5e513c1c1714149cf0821537078d8ad61616e49f2b60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015261028080516084830152518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa85761315b575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f26403be8dc5694ba56b8d49945b813cff19140637d1fa38a3187a07faf4ee07360248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613145575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f89c4c51c9264344cbc2ab3aa255b085918a2841af8ffaa3133ceabee961afffd60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa85761312f575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527fedb311f245ef85f918a5790470448cf17c7d06961f4dfa42cc41616de7f8c2e160248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613119575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f4e27b2a330e4a0d8d8521393df67e9a24fb2ab5f10f9e640c244d504874322bc60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613103575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527fc90e7e9184dce6e0d7fff2e19e72ffa35430aca54bd634ada091bef2d2bb063560248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa8576130ed575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f6bf9054545420e9e9f4aa4f353a32c7d0d52c11dbcdda56c53be8375cafeebb160248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa8576130d7575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527fea7c97223b0629f1c3bea11a57dd6179a12e9cc4bbdf8f69fb999c4051c682cf60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa8576130c1575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f5d8fec99a5792d7772f788343c7991bf1049b821dcd1b0b900f86e6b7fe7fb2560248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa8576130ab575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527fe01bed58384f9ee9a9dccf26a4236eca42aa8b767efe27c5d191a51885118e5b60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613095575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f7bece1009df269e16c3552ea6ced49b1d66c22438cda5caf73f55ac74bcadea960248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa85761307f575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f92c0fea2a18f1747f48f5503806e5f24d5ccb2c360ef56a462ce254707afa64a60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613069575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131f683398151915260048201527f41c8b7e0e9650ab5d1f55454c8ad68d9d4c6d42f1a8a14878b77e92e9794e61060248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613053575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81527fe0df66963d3ee12f2f360e193f0443eaffb41afc582166678b806d25b9941ce260048201527f4e27b2a330e4a0d8d8521393df67e9a24fb2ab5f10f9e640c244d504874322bc60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa85761303d575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81527fe0df66963d3ee12f2f360e193f0443eaffb41afc582166678b806d25b9941ce260048201527fc90e7e9184dce6e0d7fff2e19e72ffa35430aca54bd634ada091bef2d2bb063560248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613027575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81527fe0df66963d3ee12f2f360e193f0443eaffb41afc582166678b806d25b9941ce260048201527f92c0fea2a18f1747f48f5503806e5f24d5ccb2c360ef56a462ce254707afa64a60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857613011575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f50d1752a9b1f31ebf05378927a112194d33596cc02a04c06970477bd8a40c93160248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612ffb575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f68dc231d08143bcf7cf261e63071bdcb7d606e41dec696e34482f6d1068c4afa60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612fe5575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f31df71a9eb77699aba0f0e6d565af942889afef76e60ee8a9f80c27f2e94606560248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612fcf575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527fb7a48206cd37ed309fdcdf62fe4b65d6871298645d5e41942f0cd89c08a65cbf60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612fb9575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f05048648c60bebc220ad5a82188a966f910539a7e1947cc8a9ac0ec1cd99ca4060248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612fa3575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f0b49c88cd3d1ba3c99fdd9a41ced95ec8629bda85e80b6c506c15db62ab8f76160248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f8d575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527fc3520c36e06133299b24abf819a008b22bc3e9adfa39a38bbccd5cf829831d4860248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f77575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527fef1496a9cbb93e123ce8e3a0868374bda8446faafa4c2eb7fce3c7a9465be8df60248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f61575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f37441881d8c14192cbe636eb3d4318346c6af80d92971e1357419a1a94e8a2e260248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f4b575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f0d3be7866f858f24a43fd40d3844a410405b3d6abd2255102d8327fa242a4ff360248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f35575b506e0c2e074ec69a0dfb2997ba6c7d2e1e3b15612acc576040516305ef2c7f60e41b81526000805160206131b683398151915260048201527f1b162702ef4549cb2e6522252d90c0d44fcce15b939897373cfa4f829488cab460248201526000805160206131d68339815191526044820152600080516020613216833981519152606482015260006084820152610280518160a481836e0c2e074ec69a0dfb2997ba6c7d2e1e5af18015612aa857612f1f575b506113766040518061020052613199565b602661020051527fe30101701220810e2b756845f89793b616c56a0b5ab9689da7f6e7fdf93280d060206102005101526516825a69240b60d21b60406102005101526113c8604051806101e052613199565b60266101e051527fe301017012208d6f8f48d3c2bcb6eaafae3110ad59b5aa2137010d827996ea1b60206101e05101526587f39266b4f560d01b60406101e051015261141a604051806101c052613199565b60266101c051527fe30101701220b674829af0777f2b89ed96020184ee6f04f6cfd2eb176ad2b65360206101c051015265163e54aac7b360d31b60406101c051015260405161146881613199565b602681527fe301017012205ad0c59d5fcc60e4866ab37f063480ffa305eb84da143894be5b602082015265aeff2bb8e93160d01b6040820152604051906114ae82613199565b602682527fe30101701220c9106227570ab16e639adb5f05ccde1b367b004f582e0700a00d6020830152653ed53e4501a360d21b6040830152604051916114f483613199565b602683527fe3010170122046847feae11b2774438df322e014e04652fe029ba59b79df90fa6020840152650fba040ba65560d41b604084015261153d6040518061024052613199565b602661024051527fe30101701220b554eed2a9ba47011b6790ff6d23d0480419de78abf723ea7ada6020610240510152652af0b327acbb60d11b604061024051015261158f6040518061022052613199565b602661022051527fe30101701220a140c7c35f6f2cc72f77d69b73dbab14ac0ccd6ba611a394282a602061022051015265c29f05b8995160d01b60406102205101526040516115dd81613199565b602681527fe30101701220cb1d7ca2be9c5d7ddba48d5c2b5bb027359ac4c0cf077327a14c6020820152654fff0ed82bf360d11b60408201526040519061162382613199565b602682527fe30101701220269c131010a479474d82d7926cc14394d01c41bfb4cda23c26aa6020830152651ef7eb2d6a7f60d11b60408301526040519261166984613199565b602684527fe301017012201cbffa16ff8f8bd88f2600f1826648aead1ad513b2f3b1118ef860208501526573db9f2add5960d01b60408501526116b26040518061026052613199565b602661026051527fe30101701220f1e9f532b9a96e8d808f983d4471da7c261daeacbd9d8e76f82d6020610260510152650243aead6cfd60d11b60406102605101526040519461170186613199565b602686527fe3010170122057be20935fa635689427856a462b288fe353df7b588dcb30ff1b6020870152651f9b2fff836760d21b604087015260405161174681613199565b602681527fe30101701220fdee0b6906de7f60179c44103dc0bfd4600233f3737c48eb2e726020820152653cc284b87ec960d11b60408201526040519761178c89613199565b602689527fe301017012204c9d433771e8e97cece783366a16c6cd4357b6fb94c6602a90d960208a0152658e54c4179a3d60d01b60408a01526117d46040518060e052613199565b602660e051527fe3010170122073e0f65b60d455058aff4fd9b2d0ba2b87f62fb5906943343981602060e0510152650dad2d54e61560d01b604060e051015261182260405180608052613199565b6026608051527fe30101701220968d7fb0c0b8981bc8ec464e27ad2a90ef0dbcf67df5990498d960206080510152654718fa9c636160d01b604060805101526118706040518060c052613199565b602660c051527fe30101701220e5d69d83d296c8623aa1b1ff5f9ddc3242914df2bd5f20c1682f602060c05101526501fb825771b560d21b604060c05101526118be6040518060a052613199565b602660a051527fe3010170122033fa876a2752cc124fec5c61ebedaf623b42ac50ff348322f8f0602060a0510152658183c5aabb8f60d01b604060a051015261190d6040518061016052613199565b602661016051527fe30101701220663529c784c5702922344a1035884949317cd59a529160cfb4576020610160510152651709df9c705960d01b604061016051015261195f604051806101a052613199565b60266101a051527fe30101701220952a5880f8b175e2206e7502b9891710876e2c970031616b7ede60206101a05101526568ce994dea4b60d01b60406101a05101526119b16040518061018052613199565b602661018051527fe30101701220615d9d0986e8fd6a233615d792a70cf5125e188aa82c7493816a6020610180510152651760f0e12e4960d21b6040610180510152611a036040518061010052613199565b602661010051527fe30101701220b8ea77533cc9b2f434bac48d96d8bc48183cc335fd726b8c5edf6020610100510152650477e8da9e3760d21b6040610100510152611a556040518061014052613199565b602661014051527fe301017012204f3d3a8f0a8a183261288f6012844f74605fd7813d9adc52007860206101405101526510497ec7d9c760d21b6040610140510152611aa76040518061012052613199565b602661012051527fe301017012202d419e8834b28e8aafabe3dfe39e3d71f2c07c3911c856248a6e60206101205101526532c3dff60cad60d11b60406101205101526000805160206132168339815191523b15612acc57604051631827356f60e11b81526000805160206131f6833981519152600482015260406024820152610200515180604483015260005b818110612f065750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612ef0575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527f4a6bb62eaa2524f194a206df4c15dcc8e9a93036119d40516dab5b7c021fa43b6004820152604060248201526101e0515180604483015260005b818110612ed75750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612ec1575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fc0048472a571cb1a08f3ab829dc02e499a23802da54cc5a9a621d96f08acb1246004820152604060248201526101c0515180604483015260005b818110612ea85750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612e92575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fa53a41e448ef36a88eb023695dd2e4db15897f6b6e02ce7cb81fe7603da1d860600482015260406024820152610240515180604483015260005b818110612e795750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612e63575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fdd158a78d03e8c953fe2b54edcf9f9919efaec1d782a6603b3f8f5871107672c600482015260406024820152610220515180604483015260005b818110612e4a5750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612e34575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527f0315c3730f5894b97933d148a24f1b29f823c6a64caadc4a55b5600b510234b260048301526040602483015280519081604484015260005b828110612e1e575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612e08575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527fd817f80f72b6a337289ab88b44ba896365e52c5a08e816baef170fde21297ad960048301526040602483015280519081604484015260005b828110612df2575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612ddc575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527f28fe01fe7f28555b980620b2b69388adec9a8879ecc9648d8c32cd410769740860048301526040602483015280519081604484015260005b828110612dc6575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612db0575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527fdb0f46e0901b38c81ac357482fb43ea4c4da6655cade719cc228ccdedea3950460048301526040602483015280519081604484015260005b828110612d9a575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612d84575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527fccf6a9a7714d27164199e07b6443821e152be908ec362e4b16af8acc6bd4795060048301526040602483015280519081604484015260005b828110612d6e575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612d58575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527fb1735298044f249ea99f70f266979643a3a3ba2c6c7902fbb5aadcca6a04923c60048301526040602483015280519081604484015260005b828110612d42575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612d2c575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527f394177cecfcf0a9fdc53ffac572e0ad8d40448784e39f40442242e52dc405c8d60048301526040602483015280519081604484015260005b828110612d16575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612d00575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527f8994773ddc1fa2e11e4b86dbe1e0905f8744bfe12d9760cd781b4b836b946d8b60048301526040602483015280519081604484015260005b828110612cea575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612cd4575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527f09a48ede99da7705e43c9fde7ec88ffb4fb61c77b8adb3a682f3d16849d708da60048201526040602482015260a0515180604483015260005b818110612cbc5750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612ca6575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fc49cefe6742a807155aeb894fb982bef5ac0b7c64fcb383d4b54e7408dbf3e74600482015260406024820152610160515180604483015260005b818110612c8d5750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612c77575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fb9d9bd7ba34401e9c30df77f171da6fbdb9acf16601d6b822c0f8ebb4e6fb34c600482015260406024820152610260515180604483015260005b818110612c5e5750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612c48575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fa5981a1a101fb57b405ec65007bfcc2d966f0cea15fa5720d288db7edb08160c60048201526040602482015260c0515180604483015260005b818110612c305750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612c1a575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fa25976ac1e06a4cd62256c85d7eeb4721e011881d831a5fdf213b640e8c6ab0f6004820152604060248201526080515180604483015260005b818110612c025750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612bec575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fb1eb7029ca628d908ee8f8de858985817e7d3003c8cb2c24d353822b7dde96f260048201526040602482015260e0515180604483015260005b818110612bd45750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612bbe575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fcb97b63094a6ffae96dca34ba12a51d9d4bce5c805dcbcc9f96267acc80c56b0600482015260406024820152610120515180604483015260005b818110612ba55750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612b8f575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527f246e925f01d12a5dd0240023bebf85db3d64345941bfd5a0a1eb391cabfe04b0600482015260406024820152610140515180604483015260005b818110612b765750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612b60575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fde4753a77b1a26aa43bac29de191be4a48ed63b4d2232e91754cfe08bbf758ae600482015260406024820152610100515180604483015260005b818110612b475750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612b31575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527f6f21b84dba16087fcd3620e24e632716a38eb0e39513bf540818bf2d5edea44e600482015260406024820152610180515180604483015260005b818110612b185750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612b02575b506000805160206132168339815191523b15612acc57604051631827356f60e11b81527fedb16516abf2f454740bab0349fc287887cc4395eb691873a6f4533ae5c5913a6004820152604060248201526101a0515180604483015260005b818110612ae95750600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612ad3575b506000805160206132168339815191523b15612acc5760405190631827356f60e11b82527fb4d53f6fa2f2ca1006da4c94cd391b54d98eacdf09bef972e0146e8735b21c4f60048301526040602483015280519081604484015260005b828110612ab6575050600060648284010152816064816102805193601f80199101168101030181836000805160206132168339815191525af18015612aa857612a92575b6102805180f35b612a9b9061316f565b610280518015612a8b5780fd5b6040513d61028051823e3d90fd5b8060208092840101516064828701015201612a47565b6102805180fd5b612adc9061316f565b6102805180156129ea5780fd5b80602080926101a05101015160648286010152016129a7565b612b0b9061316f565b6102805180156129495780fd5b8060208092610180510101516064828601015201612906565b612b3a9061316f565b6102805180156128a85780fd5b8060208092610100510101516064828601015201612865565b612b699061316f565b6102805180156128075780fd5b80602080926101405101015160648286010152016127c4565b612b989061316f565b6102805180156127665780fd5b8060208092610120510101516064828601015201612723565b612bc79061316f565b6102805180156126c55780fd5b806020809260e0510101516064828601015201612682565b612bf59061316f565b6102805180156126255780fd5b806020809260805101015160648286010152016125e2565b612c239061316f565b6102805180156125855780fd5b806020809260c0510101516064828601015201612542565b612c519061316f565b6102805180156124e55780fd5b80602080926102605101015160648286010152016124a2565b612c809061316f565b6102805180156124445780fd5b8060208092610160510101516064828601015201612401565b612caf9061316f565b6102805180156123a35780fd5b806020809260a0510101516064828601015201612360565b612cdd9061316f565b6102805180156123035780fd5b80602080928401015160648287010152016122bf565b612d099061316f565b6102805180156122625780fd5b806020809284010151606482870101520161221e565b612d359061316f565b6102805180156121c15780fd5b806020809284010151606482870101520161217d565b612d619061316f565b6102805180156121205780fd5b80602080928401015160648287010152016120dc565b612d8d9061316f565b61028051801561207f5780fd5b806020809284010151606482870101520161203b565b612db99061316f565b610280518015611fde5780fd5b8060208092840101516064828701015201611f9a565b612de59061316f565b610280518015611f3d5780fd5b8060208092840101516064828701015201611ef9565b612e119061316f565b610280518015611e9c5780fd5b8060208092840101516064828701015201611e58565b612e3d9061316f565b610280518015611dfb5780fd5b8060208092610220510101516064828601015201611db8565b612e6c9061316f565b610280518015611d5a5780fd5b8060208092610240510101516064828601015201611d17565b612e9b9061316f565b610280518015611cb95780fd5b80602080926101c0510101516064828601015201611c76565b612eca9061316f565b610280518015611c185780fd5b80602080926101e0510101516064828601015201611bd5565b612ef99061316f565b610280518015611b775780fd5b8060208092610200510101516064828601015201611b34565b612f289061316f565b6102805180156113655780fd5b612f3e9061316f565b6102805180156112b25780fd5b612f549061316f565b6102805180156111ff5780fd5b612f6a9061316f565b61028051801561114c5780fd5b612f809061316f565b6102805180156110995780fd5b612f969061316f565b610280518015610fe65780fd5b612fac9061316f565b610280518015610f335780fd5b612fc29061316f565b610280518015610e805780fd5b612fd89061316f565b610280518015610dcd5780fd5b612fee9061316f565b610280518015610d1a5780fd5b6130049061316f565b610280518015610c675780fd5b61301a9061316f565b610280518015610bb45780fd5b6130309061316f565b610280518015610aef5780fd5b6130469061316f565b610280518015610a2a5780fd5b61305c9061316f565b6102805180156109655780fd5b6130729061316f565b6102805180156108b25780fd5b6130889061316f565b6102805180156107ff5780fd5b61309e9061316f565b61028051801561074c5780fd5b6130b49061316f565b6102805180156106995780fd5b6130ca9061316f565b6102805180156105e65780fd5b6130e09061316f565b6102805180156105335780fd5b6130f69061316f565b6102805180156104805780fd5b61310c9061316f565b6102805180156103cd5780fd5b6131229061316f565b61028051801561031a5780fd5b6131389061316f565b6102805180156102675780fd5b61314e9061316f565b6102805180156101b45780fd5b6131649061316f565b38610101565b600080fd5b67ffffffffffffffff811161318357604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176131835760405256fe205450e4bb0700adede3b5117ed52080e8433e9287815066aea78582107db04e0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce4e5775b58e8aeaa32fc2b429c9485da9de5a1c6fead70b8704ce0f970a6f127d0000000000000000000000004976fb03c32e5b8cfe2b6ccb31c09ba78ebaba41a26469706673582212206f043bf0af535fc25b023de33fc258c52ec22c8db6de8a5fa2ecc9f0131fa61264736f6c63430008140033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.