ETH Price: $3,338.86 (+2.06%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Add Premium Doma...182415492023-09-29 13:04:11490 days ago1695992651IN
0x99a663e5...93B0Feb3d
0 ETH0.2427231311.79741672
Add Premium Doma...182415152023-09-29 12:57:23490 days ago1695992243IN
0x99a663e5...93B0Feb3d
0 ETH0.000494268.6623365

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WnsPriceOracle

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-09-29
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;

interface WnsAddressesInterface {
    function owner() external view returns (address);
    function getWnsAddress(string memory _label) external view returns(address);
}


pragma solidity 0.8.7;

abstract contract WnsImpl {
    WnsAddressesInterface wnsAddresses;

    constructor(address addresses_) {
        wnsAddresses = WnsAddressesInterface(addresses_);
    }

    function setAddresses(address addresses_) public {
        require(msg.sender == owner(), "Not authorized.");
        wnsAddresses = WnsAddressesInterface(addresses_);
    }

    function owner() public view returns (address) {
        return wnsAddresses.owner();
    }

    function getWnsAddress(string memory _label) public view returns (address) {
        return wnsAddresses.getWnsAddress(_label);
    }

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    modifier onlyTeam() {
        require(msg.sender == getWnsAddress("team"), "Ownable: caller is not team");
        _;
    }
}

pragma solidity ^0.8.0;

interface AggregatorV3Interface {
    function latestAnswer() external view returns (int256);
}

pragma solidity ^0.8.7;

abstract contract WnsPrimaryDomains is WnsImpl {
    mapping(string => uint256) primaryDomains;

    struct PremiumStruct {
        string domain;
        uint256 tier;
    }

    function addPremiumDomains(PremiumStruct[] memory premiumStruct) public onlyTeam {
        for (uint256 i = 0; i < premiumStruct.length; i++) {
            require(premiumStruct[i].tier > 0 && premiumStruct[i].tier <= 7, "Invalid tier");
            primaryDomains[premiumStruct[i].domain] = premiumStruct[i].tier;
        }
    }

    function removePremiumDomains(string[] memory domains) public onlyTeam {
        for (uint256 i = 0; i < domains.length; i++) {
            primaryDomains[domains[i]] = 0;
        }
    }

    function getPrimaryDomainTier(string memory domain) internal view returns (uint256) {
        return primaryDomains[domain];
    }
}

pragma solidity ^0.8.7;

abstract contract WnsTiers is WnsPrimaryDomains {
    function getDomainTier(string memory domain) public view returns (uint256) {
        uint256 length = bytes(domain).length;

        if (length < 3) {
            return 0;
        } else {
            uint256 primaryDomainTier = getPrimaryDomainTier(domain);
            if (primaryDomainTier != 0) {
                return primaryDomainTier;
            } else {
                uint256 tier = getLengthTier(length);
                return tier;
            }
        }
    }

    function getLengthTier(uint256 length) internal pure returns (uint256) {
        if (length < 3) {
            return 0;
        } else if (length == 3) {
            return 3;
        } else if (length == 4) {
            return 4;
        } else if (length == 5) {
            return 5;
        } else if (length >= 6 && length <= 10) {
            return 6;
        } else {
            return 7;
        }
    }
}

pragma solidity ^0.8.7;

abstract contract WnsTierPrices is WnsImpl  {
    mapping(uint256 => uint256) tierPrices;

    struct Tiers {
        uint256 tier;
        uint256 price;
    }

    constructor() {
        _setTierPrices([
            Tiers({tier: 1, price: 5000}),
            Tiers({tier: 2, price: 2500}),
            Tiers({tier: 3, price: 1000}),
            Tiers({tier: 4, price: 250}),
            Tiers({tier: 5, price: 100}),
            Tiers({tier: 6, price: 50}),
            Tiers({tier: 7, price: 25})
        ]);
    }

    function setTierPrices(Tiers[7] memory tiers) public onlyTeam {
        _setTierPrices(tiers);
    }

    function _setTierPrices(Tiers[7] memory tiers) internal {
        for (uint256 i = 0; i < tiers.length; i++) {
            tierPrices[tiers[i].tier] = tiers[i].price;
        }
    }

    function getTierPrice(uint256 tier) public view returns (uint256) {
        return tierPrices[tier];
    }

    function getAllTierPrices() public view returns (uint256[7] memory) {
        uint256[7] memory prices;

        for (uint256 i = 0; i < 7; i++) {
            prices[i] = getTierPrice(i + 1);
        }

        return prices;
    }
}

pragma solidity ^0.8.7;

abstract contract EthPriceOracle is WnsImpl {
    AggregatorV3Interface internal ethPriceOracle;

    constructor(address address_) {
        ethPriceOracle = AggregatorV3Interface(address_);
    }

    function setEthPriceOracle(address address_) public onlyTeam  {
        ethPriceOracle = AggregatorV3Interface(address_);
    }

    function getEthPrice() public view returns (uint256) {
        return uint256(ethPriceOracle.latestAnswer());
        //return 181395532974;
    }
}

pragma solidity ^0.8.7;

contract WnsPriceOracle is WnsTiers, WnsTierPrices, EthPriceOracle {

    constructor() WnsImpl(0xf3e15b3235b71685180e521FDC6c2Da3c2d9Dc82) EthPriceOracle(0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419) {}

    function getDomainPrice(string memory domain) public view returns (uint256) {
        return getTierPrice(getDomainTier(domain));
    }

    function getDomainPriceEth(string memory domain) public view returns (uint256) {
        uint256 usdPrice = getTierPrice(getDomainTier(domain));
        uint256 ethPrice = uint256(getEthPrice());
        uint256 cost = usdPrice * ( 1e18 / ethPrice ) * 1e8;
        return cost;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"components":[{"internalType":"string","name":"domain","type":"string"},{"internalType":"uint256","name":"tier","type":"uint256"}],"internalType":"struct WnsPrimaryDomains.PremiumStruct[]","name":"premiumStruct","type":"tuple[]"}],"name":"addPremiumDomains","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllTierPrices","outputs":[{"internalType":"uint256[7]","name":"","type":"uint256[7]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"domain","type":"string"}],"name":"getDomainPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"domain","type":"string"}],"name":"getDomainPriceEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"domain","type":"string"}],"name":"getDomainTier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEthPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tier","type":"uint256"}],"name":"getTierPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_label","type":"string"}],"name":"getWnsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"domains","type":"string[]"}],"name":"removePremiumDomains","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addresses_","type":"address"}],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"setEthPriceOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"tier","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"internalType":"struct WnsTierPrices.Tiers[7]","name":"tiers","type":"tuple[7]"}],"name":"setTierPrices","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50735f4ec3df9cbd43714fe2740f5e3616155c5b841973f3e15b3235b71685180e521fdc6c2da3c2d9dc82806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200015d6040518060e0016040528060405180604001604052806001815260200161138881525081526020016040518060400160405280600281526020016109c481525081526020016040518060400160405280600381526020016103e8815250815260200160405180604001604052806004815260200160fa815250815260200160405180604001604052806005815260200160648152508152602001604051806040016040528060068152602001603281525081526020016040518060400160405280600781526020016019815250815250620001a560201b60201c565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620002d6565b60005b60078110156200021c57818160078110620001c857620001c7620002a7565b5b60200201516020015160026000848460078110620001eb57620001ea620002a7565b5b602002015160000151815260200190815260200160002081905550808062000213906200022a565b915050620001a8565b5050565b6000819050919050565b6000620002378262000220565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200026d576200026c62000278565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6118dd80620002e66000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806372519c721161008c5780638da5cb5b116100665780638da5cb5b14610224578063a0d3955814610242578063ac8e44041461025e578063b585e11a1461027a576100cf565b806372519c72146101ce57806381d3c435146101ea57806389fb876014610206576100cf565b8063252a8875146100d45780634c68cd0c1461010457806362bd397214610134578063661e96071461016457806367c9b01714610180578063713a69a71461019e575b600080fd5b6100ee60048036038101906100e99190611166565b6102aa565b6040516100fb91906113d1565b60405180910390f35b61011e6004803603810190610119919061111d565b6102c7565b60405161012b91906113d1565b60405180910390f35b61014e6004803603810190610149919061111d565b610319565b60405161015b9190611319565b60405180910390f35b61017e60048036038101906101799190610fd6565b6103cc565b005b6101886104bb565b60405161019591906113d1565b60405180910390f35b6101b860048036038101906101b3919061111d565b610562565b6040516101c591906113d1565b60405180910390f35b6101e860048036038101906101e391906110c2565b61057c565b005b61020460048036038101906101ff9190610fd6565b610633565b005b61020e6106eb565b60405161021b9190611334565b60405180910390f35b61022c610753565b6040516102399190611319565b60405180910390f35b61025c60048036038101906102579190611030565b6107f9565b005b61027860048036038101906102739190611079565b610905565b005b610294600480360381019061028f919061111d565b610abe565b6040516102a191906113d1565b60405180910390f35b600060026000838152602001908152602001600020549050919050565b6000808251905060038110156102e1576000915050610314565b60006102ec84610b1d565b905060008114610300578092505050610314565b600061030b83610b45565b90508093505050505b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166362bd3972836040518263ffffffff1660e01b8152600401610375919061134f565b60206040518083038186803b15801561038d57600080fd5b505afa1580156103a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c59190611003565b9050919050565b61040a6040518060400160405280600481526020017f7465616d00000000000000000000000000000000000000000000000000000000815250610319565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046e90611371565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561052557600080fd5b505afa158015610539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055d91906110f0565b905090565b6000610575610570836102c7565b6102aa565b9050919050565b6105ba6040518060400160405280600481526020017f7465616d00000000000000000000000000000000000000000000000000000000815250610319565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061e90611371565b60405180910390fd5b61063081610bb9565b50565b61063b610753565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906113b1565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6106f3610c2a565b6106fb610c2a565b60005b600781101561074b5761071c6001826107179190611514565b6102aa565b82826007811061072f5761072e611755565b5b6020020181815250508080610743906116ae565b9150506106fe565b508091505090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107bc57600080fd5b505afa1580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190611003565b905090565b6108376040518060400160405280600481526020017f7465616d00000000000000000000000000000000000000000000000000000000815250610319565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b90611371565b60405180910390fd5b60005b815181101561090157600060018383815181106108c7576108c6611755565b5b60200260200101516040516108dc9190611302565b90815260200160405180910390208190555080806108f9906116ae565b9150506108a7565b5050565b6109436040518060400160405280600481526020017f7465616d00000000000000000000000000000000000000000000000000000000815250610319565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790611371565b60405180910390fd5b60005b8151811015610aba5760008282815181106109d1576109d0611755565b5b602002602001015160200151118015610a09575060078282815181106109fa576109f9611755565b5b60200260200101516020015111155b610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f90611391565b60405180910390fd5b818181518110610a5b57610a5a611755565b5b6020026020010151602001516001838381518110610a7c57610a7b611755565b5b602002602001015160000151604051610a959190611302565b9081526020016040518091039020819055508080610ab2906116ae565b9150506109b3565b5050565b600080610ad2610acd846102c7565b6102aa565b90506000610ade6104bb565b905060006305f5e10082670de0b6b3a7640000610afb919061156a565b84610b06919061159b565b610b10919061159b565b9050809350505050919050565b6000600182604051610b2f9190611302565b9081526020016040518091039020549050919050565b60006003821015610b595760009050610bb4565b6003821415610b6b5760039050610bb4565b6004821415610b7d5760049050610bb4565b6005821415610b8f5760059050610bb4565b60068210158015610ba15750600a8211155b15610baf5760069050610bb4565b600790505b919050565b60005b6007811015610c2657818160078110610bd857610bd7611755565b5b60200201516020015160026000848460078110610bf857610bf7611755565b5b6020020151600001518152602001908152602001600020819055508080610c1e906116ae565b915050610bbc565b5050565b6040518060e00160405280600790602082028036833780820191505090505090565b6000610c5f610c5a84611411565b6113ec565b90508083825260208201905082856020860282011115610c8257610c816117c2565b5b60005b85811015610cd057813567ffffffffffffffff811115610ca857610ca76117b3565b5b808601610cb58982610ed7565b85526020850194506020840193505050600181019050610c85565b5050509392505050565b6000610ced610ce88461143d565b6113ec565b90508083825260208201905082856020860282011115610d1057610d0f6117c2565b5b60005b85811015610d5e57813567ffffffffffffffff811115610d3657610d356117b3565b5b808601610d438982610f05565b85526020850194506020840193505050600181019050610d13565b5050509392505050565b6000610d7b610d7684611469565b6113ec565b90508082856040860282011115610d9557610d946117c2565b5b60005b85811015610dc55781610dab8882610f71565b845260208401935060408301925050600181019050610d98565b5050509392505050565b6000610de2610ddd8461148f565b6113ec565b905082815260208101848484011115610dfe57610dfd6117c7565b5b610e0984828561163b565b509392505050565b600081359050610e2081611862565b92915050565b600081519050610e3581611862565b92915050565b600082601f830112610e5057610e4f6117b3565b5b8135610e60848260208601610c4c565b91505092915050565b600082601f830112610e7e57610e7d6117b3565b5b8135610e8e848260208601610cda565b91505092915050565b600082601f830112610eac57610eab6117b3565b5b6007610eb9848285610d68565b91505092915050565b600081519050610ed181611879565b92915050565b600082601f830112610eec57610eeb6117b3565b5b8135610efc848260208601610dcf565b91505092915050565b600060408284031215610f1b57610f1a6117b8565b5b610f2560406113ec565b9050600082013567ffffffffffffffff811115610f4557610f446117bd565b5b610f5184828501610ed7565b6000830152506020610f6584828501610fc1565b60208301525092915050565b600060408284031215610f8757610f866117b8565b5b610f9160406113ec565b90506000610fa184828501610fc1565b6000830152506020610fb584828501610fc1565b60208301525092915050565b600081359050610fd081611890565b92915050565b600060208284031215610fec57610feb6117d1565b5b6000610ffa84828501610e11565b91505092915050565b600060208284031215611019576110186117d1565b5b600061102784828501610e26565b91505092915050565b600060208284031215611046576110456117d1565b5b600082013567ffffffffffffffff811115611064576110636117cc565b5b61107084828501610e3b565b91505092915050565b60006020828403121561108f5761108e6117d1565b5b600082013567ffffffffffffffff8111156110ad576110ac6117cc565b5b6110b984828501610e69565b91505092915050565b60006101c082840312156110d9576110d86117d1565b5b60006110e784828501610e97565b91505092915050565b600060208284031215611106576111056117d1565b5b600061111484828501610ec2565b91505092915050565b600060208284031215611133576111326117d1565b5b600082013567ffffffffffffffff811115611151576111506117cc565b5b61115d84828501610ed7565b91505092915050565b60006020828403121561117c5761117b6117d1565b5b600061118a84828501610fc1565b91505092915050565b600061119f83836112e4565b60208301905092915050565b6111b4816115f5565b82525050565b6111c3816114ca565b6111cd81846114ed565b92506111d8826114c0565b8060005b838110156112095781516111f08782611193565b96506111fb836114e0565b9250506001810190506111dc565b505050505050565b600061121c826114d5565b61122681856114f8565b935061123681856020860161164a565b61123f816117d6565b840191505092915050565b6000611255826114d5565b61125f8185611509565b935061126f81856020860161164a565b80840191505092915050565b6000611288601b836114f8565b9150611293826117e7565b602082019050919050565b60006112ab600c836114f8565b91506112b682611810565b602082019050919050565b60006112ce600f836114f8565b91506112d982611839565b602082019050919050565b6112ed81611631565b82525050565b6112fc81611631565b82525050565b600061130e828461124a565b915081905092915050565b600060208201905061132e60008301846111ab565b92915050565b600060e08201905061134960008301846111ba565b92915050565b600060208201905081810360008301526113698184611211565b905092915050565b6000602082019050818103600083015261138a8161127b565b9050919050565b600060208201905081810360008301526113aa8161129e565b9050919050565b600060208201905081810360008301526113ca816112c1565b9050919050565b60006020820190506113e660008301846112f3565b92915050565b60006113f6611407565b9050611402828261167d565b919050565b6000604051905090565b600067ffffffffffffffff82111561142c5761142b611784565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561145857611457611784565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561148457611483611784565b5b602082029050919050565b600067ffffffffffffffff8211156114aa576114a9611784565b5b6114b3826117d6565b9050602081019050919050565b6000819050919050565b600060079050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061151f82611631565b915061152a83611631565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561155f5761155e6116f7565b5b828201905092915050565b600061157582611631565b915061158083611631565b9250826115905761158f611726565b5b828204905092915050565b60006115a682611631565b91506115b183611631565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156115ea576115e96116f7565b5b828202905092915050565b600061160082611611565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561166857808201518184015260208101905061164d565b83811115611677576000848401525b50505050565b611686826117d6565b810181811067ffffffffffffffff821117156116a5576116a4611784565b5b80604052505050565b60006116b982611631565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156116ec576116eb6116f7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f74207465616d0000000000600082015250565b7f496e76616c696420746965720000000000000000000000000000000000000000600082015250565b7f4e6f7420617574686f72697a65642e0000000000000000000000000000000000600082015250565b61186b816115f5565b811461187657600080fd5b50565b61188281611607565b811461188d57600080fd5b50565b61189981611631565b81146118a457600080fd5b5056fea2646970667358221220f77afe8c6c04c018793d95f244ac8d6272e1e06e48856bc58e84d20bcef7948564736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806372519c721161008c5780638da5cb5b116100665780638da5cb5b14610224578063a0d3955814610242578063ac8e44041461025e578063b585e11a1461027a576100cf565b806372519c72146101ce57806381d3c435146101ea57806389fb876014610206576100cf565b8063252a8875146100d45780634c68cd0c1461010457806362bd397214610134578063661e96071461016457806367c9b01714610180578063713a69a71461019e575b600080fd5b6100ee60048036038101906100e99190611166565b6102aa565b6040516100fb91906113d1565b60405180910390f35b61011e6004803603810190610119919061111d565b6102c7565b60405161012b91906113d1565b60405180910390f35b61014e6004803603810190610149919061111d565b610319565b60405161015b9190611319565b60405180910390f35b61017e60048036038101906101799190610fd6565b6103cc565b005b6101886104bb565b60405161019591906113d1565b60405180910390f35b6101b860048036038101906101b3919061111d565b610562565b6040516101c591906113d1565b60405180910390f35b6101e860048036038101906101e391906110c2565b61057c565b005b61020460048036038101906101ff9190610fd6565b610633565b005b61020e6106eb565b60405161021b9190611334565b60405180910390f35b61022c610753565b6040516102399190611319565b60405180910390f35b61025c60048036038101906102579190611030565b6107f9565b005b61027860048036038101906102739190611079565b610905565b005b610294600480360381019061028f919061111d565b610abe565b6040516102a191906113d1565b60405180910390f35b600060026000838152602001908152602001600020549050919050565b6000808251905060038110156102e1576000915050610314565b60006102ec84610b1d565b905060008114610300578092505050610314565b600061030b83610b45565b90508093505050505b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166362bd3972836040518263ffffffff1660e01b8152600401610375919061134f565b60206040518083038186803b15801561038d57600080fd5b505afa1580156103a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c59190611003565b9050919050565b61040a6040518060400160405280600481526020017f7465616d00000000000000000000000000000000000000000000000000000000815250610319565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046e90611371565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561052557600080fd5b505afa158015610539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055d91906110f0565b905090565b6000610575610570836102c7565b6102aa565b9050919050565b6105ba6040518060400160405280600481526020017f7465616d00000000000000000000000000000000000000000000000000000000815250610319565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061e90611371565b60405180910390fd5b61063081610bb9565b50565b61063b610753565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906113b1565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6106f3610c2a565b6106fb610c2a565b60005b600781101561074b5761071c6001826107179190611514565b6102aa565b82826007811061072f5761072e611755565b5b6020020181815250508080610743906116ae565b9150506106fe565b508091505090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107bc57600080fd5b505afa1580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190611003565b905090565b6108376040518060400160405280600481526020017f7465616d00000000000000000000000000000000000000000000000000000000815250610319565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b90611371565b60405180910390fd5b60005b815181101561090157600060018383815181106108c7576108c6611755565b5b60200260200101516040516108dc9190611302565b90815260200160405180910390208190555080806108f9906116ae565b9150506108a7565b5050565b6109436040518060400160405280600481526020017f7465616d00000000000000000000000000000000000000000000000000000000815250610319565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790611371565b60405180910390fd5b60005b8151811015610aba5760008282815181106109d1576109d0611755565b5b602002602001015160200151118015610a09575060078282815181106109fa576109f9611755565b5b60200260200101516020015111155b610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f90611391565b60405180910390fd5b818181518110610a5b57610a5a611755565b5b6020026020010151602001516001838381518110610a7c57610a7b611755565b5b602002602001015160000151604051610a959190611302565b9081526020016040518091039020819055508080610ab2906116ae565b9150506109b3565b5050565b600080610ad2610acd846102c7565b6102aa565b90506000610ade6104bb565b905060006305f5e10082670de0b6b3a7640000610afb919061156a565b84610b06919061159b565b610b10919061159b565b9050809350505050919050565b6000600182604051610b2f9190611302565b9081526020016040518091039020549050919050565b60006003821015610b595760009050610bb4565b6003821415610b6b5760039050610bb4565b6004821415610b7d5760049050610bb4565b6005821415610b8f5760059050610bb4565b60068210158015610ba15750600a8211155b15610baf5760069050610bb4565b600790505b919050565b60005b6007811015610c2657818160078110610bd857610bd7611755565b5b60200201516020015160026000848460078110610bf857610bf7611755565b5b6020020151600001518152602001908152602001600020819055508080610c1e906116ae565b915050610bbc565b5050565b6040518060e00160405280600790602082028036833780820191505090505090565b6000610c5f610c5a84611411565b6113ec565b90508083825260208201905082856020860282011115610c8257610c816117c2565b5b60005b85811015610cd057813567ffffffffffffffff811115610ca857610ca76117b3565b5b808601610cb58982610ed7565b85526020850194506020840193505050600181019050610c85565b5050509392505050565b6000610ced610ce88461143d565b6113ec565b90508083825260208201905082856020860282011115610d1057610d0f6117c2565b5b60005b85811015610d5e57813567ffffffffffffffff811115610d3657610d356117b3565b5b808601610d438982610f05565b85526020850194506020840193505050600181019050610d13565b5050509392505050565b6000610d7b610d7684611469565b6113ec565b90508082856040860282011115610d9557610d946117c2565b5b60005b85811015610dc55781610dab8882610f71565b845260208401935060408301925050600181019050610d98565b5050509392505050565b6000610de2610ddd8461148f565b6113ec565b905082815260208101848484011115610dfe57610dfd6117c7565b5b610e0984828561163b565b509392505050565b600081359050610e2081611862565b92915050565b600081519050610e3581611862565b92915050565b600082601f830112610e5057610e4f6117b3565b5b8135610e60848260208601610c4c565b91505092915050565b600082601f830112610e7e57610e7d6117b3565b5b8135610e8e848260208601610cda565b91505092915050565b600082601f830112610eac57610eab6117b3565b5b6007610eb9848285610d68565b91505092915050565b600081519050610ed181611879565b92915050565b600082601f830112610eec57610eeb6117b3565b5b8135610efc848260208601610dcf565b91505092915050565b600060408284031215610f1b57610f1a6117b8565b5b610f2560406113ec565b9050600082013567ffffffffffffffff811115610f4557610f446117bd565b5b610f5184828501610ed7565b6000830152506020610f6584828501610fc1565b60208301525092915050565b600060408284031215610f8757610f866117b8565b5b610f9160406113ec565b90506000610fa184828501610fc1565b6000830152506020610fb584828501610fc1565b60208301525092915050565b600081359050610fd081611890565b92915050565b600060208284031215610fec57610feb6117d1565b5b6000610ffa84828501610e11565b91505092915050565b600060208284031215611019576110186117d1565b5b600061102784828501610e26565b91505092915050565b600060208284031215611046576110456117d1565b5b600082013567ffffffffffffffff811115611064576110636117cc565b5b61107084828501610e3b565b91505092915050565b60006020828403121561108f5761108e6117d1565b5b600082013567ffffffffffffffff8111156110ad576110ac6117cc565b5b6110b984828501610e69565b91505092915050565b60006101c082840312156110d9576110d86117d1565b5b60006110e784828501610e97565b91505092915050565b600060208284031215611106576111056117d1565b5b600061111484828501610ec2565b91505092915050565b600060208284031215611133576111326117d1565b5b600082013567ffffffffffffffff811115611151576111506117cc565b5b61115d84828501610ed7565b91505092915050565b60006020828403121561117c5761117b6117d1565b5b600061118a84828501610fc1565b91505092915050565b600061119f83836112e4565b60208301905092915050565b6111b4816115f5565b82525050565b6111c3816114ca565b6111cd81846114ed565b92506111d8826114c0565b8060005b838110156112095781516111f08782611193565b96506111fb836114e0565b9250506001810190506111dc565b505050505050565b600061121c826114d5565b61122681856114f8565b935061123681856020860161164a565b61123f816117d6565b840191505092915050565b6000611255826114d5565b61125f8185611509565b935061126f81856020860161164a565b80840191505092915050565b6000611288601b836114f8565b9150611293826117e7565b602082019050919050565b60006112ab600c836114f8565b91506112b682611810565b602082019050919050565b60006112ce600f836114f8565b91506112d982611839565b602082019050919050565b6112ed81611631565b82525050565b6112fc81611631565b82525050565b600061130e828461124a565b915081905092915050565b600060208201905061132e60008301846111ab565b92915050565b600060e08201905061134960008301846111ba565b92915050565b600060208201905081810360008301526113698184611211565b905092915050565b6000602082019050818103600083015261138a8161127b565b9050919050565b600060208201905081810360008301526113aa8161129e565b9050919050565b600060208201905081810360008301526113ca816112c1565b9050919050565b60006020820190506113e660008301846112f3565b92915050565b60006113f6611407565b9050611402828261167d565b919050565b6000604051905090565b600067ffffffffffffffff82111561142c5761142b611784565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561145857611457611784565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561148457611483611784565b5b602082029050919050565b600067ffffffffffffffff8211156114aa576114a9611784565b5b6114b3826117d6565b9050602081019050919050565b6000819050919050565b600060079050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061151f82611631565b915061152a83611631565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561155f5761155e6116f7565b5b828201905092915050565b600061157582611631565b915061158083611631565b9250826115905761158f611726565b5b828204905092915050565b60006115a682611631565b91506115b183611631565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156115ea576115e96116f7565b5b828202905092915050565b600061160082611611565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561166857808201518184015260208101905061164d565b83811115611677576000848401525b50505050565b611686826117d6565b810181811067ffffffffffffffff821117156116a5576116a4611784565b5b80604052505050565b60006116b982611631565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156116ec576116eb6116f7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f74207465616d0000000000600082015250565b7f496e76616c696420746965720000000000000000000000000000000000000000600082015250565b7f4e6f7420617574686f72697a65642e0000000000000000000000000000000000600082015250565b61186b816115f5565b811461187657600080fd5b50565b61188281611607565b811461188d57600080fd5b50565b61189981611631565b81146118a457600080fd5b5056fea2646970667358221220f77afe8c6c04c018793d95f244ac8d6272e1e06e48856bc58e84d20bcef7948564736f6c63430008070033

Deployed Bytecode Sourcemap

4969:649:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4050:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2240:491;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;732:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4649:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4786:149;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5180:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3746:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;447:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4166:239;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;631:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1820:191;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1477:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5325:288;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4050:108;4107:7;4134:10;:16;4145:4;4134:16;;;;;;;;;;;;4127:23;;4050:108;;;:::o;2240:491::-;2306:7;2326:14;2349:6;2343:20;2326:37;;2389:1;2380:6;:10;2376:348;;;2414:1;2407:8;;;;;2376:348;2448:25;2476:28;2497:6;2476:20;:28::i;:::-;2448:56;;2544:1;2523:17;:22;2519:194;;2573:17;2566:24;;;;;;2519:194;2631:12;2646:21;2660:6;2646:13;:21::i;:::-;2631:36;;2693:4;2686:11;;;;;2240:491;;;;:::o;732:135::-;798:7;825:12;;;;;;;;;;;:26;;;852:6;825:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;818:41;;732:135;;;:::o;4649:129::-;1054:21;;;;;;;;;;;;;;;;;;:13;:21::i;:::-;1040:35;;:10;:35;;;1032:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;4761:8:::1;4722:14;;:48;;;;;;;;;;;;;;;;;;4649:129:::0;:::o;4786:149::-;4830:7;4865:14;;;;;;;;;;;:27;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4850:45;;4786:149;:::o;5180:137::-;5247:7;5274:35;5287:21;5301:6;5287:13;:21::i;:::-;5274:12;:35::i;:::-;5267:42;;5180:137;;;:::o;3746:102::-;1054:21;;;;;;;;;;;;;;;;;;:13;:21::i;:::-;1040:35;;:10;:35;;;1032:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;3819:21:::1;3834:5;3819:14;:21::i;:::-;3746:102:::0;:::o;447:176::-;529:7;:5;:7::i;:::-;515:21;;:10;:21;;;507:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;604:10;567:12;;:48;;;;;;;;;;;;;;;;;;447:176;:::o;4166:239::-;4215:17;;:::i;:::-;4245:24;;:::i;:::-;4287:9;4282:90;4306:1;4302;:5;4282:90;;;4341:19;4358:1;4354;:5;;;;:::i;:::-;4341:12;:19::i;:::-;4329:6;4336:1;4329:9;;;;;;;:::i;:::-;;;;;:31;;;;;4309:3;;;;;:::i;:::-;;;;4282:90;;;;4391:6;4384:13;;;4166:239;:::o;631:93::-;669:7;696:12;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;689:27;;631:93;:::o;1820:191::-;1054:21;;;;;;;;;;;;;;;;;;:13;:21::i;:::-;1040:35;;:10;:35;;;1032:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;1907:9:::1;1902:102;1926:7;:14;1922:1;:18;1902:102;;;1991:1;1962:14;1977:7;1985:1;1977:10;;;;;;;;:::i;:::-;;;;;;;;1962:26;;;;;;:::i;:::-;;;;;;;;;;;;;:30;;;;1942:3;;;;;:::i;:::-;;;;1902:102;;;;1820:191:::0;:::o;1477:335::-;1054:21;;;;;;;;;;;;;;;;;;:13;:21::i;:::-;1040:35;;:10;:35;;;1032:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;1574:9:::1;1569:236;1593:13;:20;1589:1;:24;1569:236;;;1667:1;1643:13;1657:1;1643:16;;;;;;;;:::i;:::-;;;;;;;;:21;;;:25;:55;;;;;1697:1;1672:13;1686:1;1672:16;;;;;;;;:::i;:::-;;;;;;;;:21;;;:26;;1643:55;1635:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;1772:13;1786:1;1772:16;;;;;;;;:::i;:::-;;;;;;;;:21;;;1730:14;1745:13;1759:1;1745:16;;;;;;;;:::i;:::-;;;;;;;;:23;;;1730:39;;;;;;:::i;:::-;;;;;;;;;;;;;:63;;;;1615:3;;;;;:::i;:::-;;;;1569:236;;;;1477:335:::0;:::o;5325:288::-;5395:7;5415:16;5434:35;5447:21;5461:6;5447:13;:21::i;:::-;5434:12;:35::i;:::-;5415:54;;5480:16;5507:13;:11;:13::i;:::-;5480:41;;5532:12;5580:3;5567:8;5560:4;:15;;;;:::i;:::-;5547:8;:30;;;;:::i;:::-;:36;;;;:::i;:::-;5532:51;;5601:4;5594:11;;;;;5325:288;;;:::o;2019:132::-;2094:7;2121:14;2136:6;2121:22;;;;;;:::i;:::-;;;;;;;;;;;;;;2114:29;;2019:132;;;:::o;2739:429::-;2801:7;2834:1;2825:6;:10;2821:340;;;2859:1;2852:8;;;;2821:340;2892:1;2882:6;:11;2878:283;;;2917:1;2910:8;;;;2878:283;2950:1;2940:6;:11;2936:225;;;2975:1;2968:8;;;;2936:225;3008:1;2998:6;:11;2994:167;;;3033:1;3026:8;;;;2994:167;3066:1;3056:6;:11;;:27;;;;;3081:2;3071:6;:12;;3056:27;3052:109;;;3107:1;3100:8;;;;3052:109;3148:1;3141:8;;2739:429;;;;:::o;3856:186::-;3928:9;3923:112;3947:12;3943:1;:16;3923:112;;;4009:5;4015:1;4009:8;;;;;;;:::i;:::-;;;;;;:14;;;3981:10;:25;3992:5;3998:1;3992:8;;;;;;;:::i;:::-;;;;;;:13;;;3981:25;;;;;;;;;;;:42;;;;3961:3;;;;;:::i;:::-;;;;3923:112;;;;3856:186;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23:957:1:-;129:5;154:91;170:74;237:6;170:74;:::i;:::-;154:91;:::i;:::-;145:100;;265:5;294:6;287:5;280:21;328:4;321:5;317:16;310:23;;354:6;404:3;396:4;388:6;384:17;379:3;375:27;372:36;369:143;;;423:79;;:::i;:::-;369:143;536:1;521:453;546:6;543:1;540:13;521:453;;;628:3;615:17;664:18;651:11;648:35;645:122;;;686:79;;:::i;:::-;645:122;810:11;802:6;798:24;848:47;891:3;879:10;848:47;:::i;:::-;843:3;836:60;925:4;920:3;916:14;909:21;;959:4;954:3;950:14;943:21;;581:393;;568:1;565;561:9;556:14;;521:453;;;525:14;135:845;;23:957;;;;;:::o;1034:1017::-;1160:5;1185:111;1201:94;1288:6;1201:94;:::i;:::-;1185:111;:::i;:::-;1176:120;;1316:5;1345:6;1338:5;1331:21;1379:4;1372:5;1368:16;1361:23;;1405:6;1455:3;1447:4;1439:6;1435:17;1430:3;1426:27;1423:36;1420:143;;;1474:79;;:::i;:::-;1420:143;1587:1;1572:473;1597:6;1594:1;1591:13;1572:473;;;1679:3;1666:17;1715:18;1702:11;1699:35;1696:122;;;1737:79;;:::i;:::-;1696:122;1861:11;1853:6;1849:24;1899:67;1962:3;1950:10;1899:67;:::i;:::-;1894:3;1887:80;1996:4;1991:3;1987:14;1980:21;;2030:4;2025:3;2021:14;2014:21;;1632:413;;1619:1;1616;1612:9;1607:14;;1572:473;;;1576:14;1166:885;;1034:1017;;;;;:::o;2094:721::-;2210:5;2235:101;2251:84;2328:6;2251:84;:::i;:::-;2235:101;:::i;:::-;2226:110;;2356:5;2382:6;2432:3;2424:4;2416:6;2412:17;2407:3;2403:27;2400:36;2397:143;;;2451:79;;:::i;:::-;2397:143;2564:1;2549:260;2574:6;2571:1;2568:13;2549:260;;;2642:3;2671:59;2726:3;2714:10;2671:59;:::i;:::-;2666:3;2659:72;2760:4;2755:3;2751:14;2744:21;;2794:4;2789:3;2785:14;2778:21;;2609:200;2596:1;2593;2589:9;2584:14;;2549:260;;;2553:14;2216:599;;2094:721;;;;;:::o;2821:412::-;2899:5;2924:66;2940:49;2982:6;2940:49;:::i;:::-;2924:66;:::i;:::-;2915:75;;3013:6;3006:5;2999:21;3051:4;3044:5;3040:16;3089:3;3080:6;3075:3;3071:16;3068:25;3065:112;;;3096:79;;:::i;:::-;3065:112;3186:41;3220:6;3215:3;3210;3186:41;:::i;:::-;2905:328;2821:412;;;;;:::o;3239:139::-;3285:5;3323:6;3310:20;3301:29;;3339:33;3366:5;3339:33;:::i;:::-;3239:139;;;;:::o;3384:143::-;3441:5;3472:6;3466:13;3457:22;;3488:33;3515:5;3488:33;:::i;:::-;3384:143;;;;:::o;3549:390::-;3630:5;3679:3;3672:4;3664:6;3660:17;3656:27;3646:122;;3687:79;;:::i;:::-;3646:122;3804:6;3791:20;3829:104;3929:3;3921:6;3914:4;3906:6;3902:17;3829:104;:::i;:::-;3820:113;;3636:303;3549:390;;;;:::o;3993:430::-;4094:5;4143:3;4136:4;4128:6;4124:17;4120:27;4110:122;;4151:79;;:::i;:::-;4110:122;4268:6;4255:20;4293:124;4413:3;4405:6;4398:4;4390:6;4386:17;4293:124;:::i;:::-;4284:133;;4100:323;3993:430;;;;:::o;4466:383::-;4557:5;4606:3;4599:4;4591:6;4587:17;4583:27;4573:122;;4614:79;;:::i;:::-;4573:122;4718:4;4740:103;4839:3;4831:6;4823;4740:103;:::i;:::-;4731:112;;4563:286;4466:383;;;;:::o;4855:141::-;4911:5;4942:6;4936:13;4927:22;;4958:32;4984:5;4958:32;:::i;:::-;4855:141;;;;:::o;5016:340::-;5072:5;5121:3;5114:4;5106:6;5102:17;5098:27;5088:122;;5129:79;;:::i;:::-;5088:122;5246:6;5233:20;5271:79;5346:3;5338:6;5331:4;5323:6;5319:17;5271:79;:::i;:::-;5262:88;;5078:278;5016:340;;;;:::o;5408:751::-;5487:5;5531:4;5519:9;5514:3;5510:19;5506:30;5503:117;;;5539:79;;:::i;:::-;5503:117;5638:21;5654:4;5638:21;:::i;:::-;5629:30;;5748:1;5737:9;5733:17;5720:31;5778:18;5770:6;5767:30;5764:117;;;5800:79;;:::i;:::-;5764:117;5920:59;5975:3;5966:6;5955:9;5951:22;5920:59;:::i;:::-;5913:4;5906:5;5902:16;5895:85;5669:322;6050:2;6091:49;6136:3;6127:6;6116:9;6112:22;6091:49;:::i;:::-;6084:4;6077:5;6073:16;6066:75;6001:151;5408:751;;;;:::o;6199:572::-;6270:5;6314:4;6302:9;6297:3;6293:19;6289:30;6286:117;;;6322:79;;:::i;:::-;6286:117;6421:21;6437:4;6421:21;:::i;:::-;6412:30;;6501:1;6541:49;6586:3;6577:6;6566:9;6562:22;6541:49;:::i;:::-;6534:4;6527:5;6523:16;6516:75;6452:150;6662:2;6703:49;6748:3;6739:6;6728:9;6724:22;6703:49;:::i;:::-;6696:4;6689:5;6685:16;6678:75;6612:152;6199:572;;;;:::o;6777:139::-;6823:5;6861:6;6848:20;6839:29;;6877:33;6904:5;6877:33;:::i;:::-;6777:139;;;;:::o;6922:329::-;6981:6;7030:2;7018:9;7009:7;7005:23;7001:32;6998:119;;;7036:79;;:::i;:::-;6998:119;7156:1;7181:53;7226:7;7217:6;7206:9;7202:22;7181:53;:::i;:::-;7171:63;;7127:117;6922:329;;;;:::o;7257:351::-;7327:6;7376:2;7364:9;7355:7;7351:23;7347:32;7344:119;;;7382:79;;:::i;:::-;7344:119;7502:1;7527:64;7583:7;7574:6;7563:9;7559:22;7527:64;:::i;:::-;7517:74;;7473:128;7257:351;;;;:::o;7614:559::-;7708:6;7757:2;7745:9;7736:7;7732:23;7728:32;7725:119;;;7763:79;;:::i;:::-;7725:119;7911:1;7900:9;7896:17;7883:31;7941:18;7933:6;7930:30;7927:117;;;7963:79;;:::i;:::-;7927:117;8068:88;8148:7;8139:6;8128:9;8124:22;8068:88;:::i;:::-;8058:98;;7854:312;7614:559;;;;:::o;8179:599::-;8293:6;8342:2;8330:9;8321:7;8317:23;8313:32;8310:119;;;8348:79;;:::i;:::-;8310:119;8496:1;8485:9;8481:17;8468:31;8526:18;8518:6;8515:30;8512:117;;;8548:79;;:::i;:::-;8512:117;8653:108;8753:7;8744:6;8733:9;8729:22;8653:108;:::i;:::-;8643:118;;8439:332;8179:599;;;;:::o;8784:420::-;8888:6;8937:3;8925:9;8916:7;8912:23;8908:33;8905:120;;;8944:79;;:::i;:::-;8905:120;9064:1;9089:98;9179:7;9170:6;9159:9;9155:22;9089:98;:::i;:::-;9079:108;;9035:162;8784:420;;;;:::o;9210:349::-;9279:6;9328:2;9316:9;9307:7;9303:23;9299:32;9296:119;;;9334:79;;:::i;:::-;9296:119;9454:1;9479:63;9534:7;9525:6;9514:9;9510:22;9479:63;:::i;:::-;9469:73;;9425:127;9210:349;;;;:::o;9565:509::-;9634:6;9683:2;9671:9;9662:7;9658:23;9654:32;9651:119;;;9689:79;;:::i;:::-;9651:119;9837:1;9826:9;9822:17;9809:31;9867:18;9859:6;9856:30;9853:117;;;9889:79;;:::i;:::-;9853:117;9994:63;10049:7;10040:6;10029:9;10025:22;9994:63;:::i;:::-;9984:73;;9780:287;9565:509;;;;:::o;10080:329::-;10139:6;10188:2;10176:9;10167:7;10163:23;10159:32;10156:119;;;10194:79;;:::i;:::-;10156:119;10314:1;10339:53;10384:7;10375:6;10364:9;10360:22;10339:53;:::i;:::-;10329:63;;10285:117;10080:329;;;;:::o;10415:179::-;10484:10;10505:46;10547:3;10539:6;10505:46;:::i;:::-;10583:4;10578:3;10574:14;10560:28;;10415:179;;;;:::o;10600:118::-;10687:24;10705:5;10687:24;:::i;:::-;10682:3;10675:37;10600:118;;:::o;10756:694::-;10892:52;10938:5;10892:52;:::i;:::-;10960:84;11037:6;11032:3;10960:84;:::i;:::-;10953:91;;11068:54;11116:5;11068:54;:::i;:::-;11145:7;11176:1;11161:282;11186:6;11183:1;11180:13;11161:282;;;11262:6;11256:13;11289:63;11348:3;11333:13;11289:63;:::i;:::-;11282:70;;11375:58;11426:6;11375:58;:::i;:::-;11365:68;;11221:222;11208:1;11205;11201:9;11196:14;;11161:282;;;11165:14;10868:582;;;10756:694;;:::o;11456:364::-;11544:3;11572:39;11605:5;11572:39;:::i;:::-;11627:71;11691:6;11686:3;11627:71;:::i;:::-;11620:78;;11707:52;11752:6;11747:3;11740:4;11733:5;11729:16;11707:52;:::i;:::-;11784:29;11806:6;11784:29;:::i;:::-;11779:3;11775:39;11768:46;;11548:272;11456:364;;;;:::o;11826:377::-;11932:3;11960:39;11993:5;11960:39;:::i;:::-;12015:89;12097:6;12092:3;12015:89;:::i;:::-;12008:96;;12113:52;12158:6;12153:3;12146:4;12139:5;12135:16;12113:52;:::i;:::-;12190:6;12185:3;12181:16;12174:23;;11936:267;11826:377;;;;:::o;12209:366::-;12351:3;12372:67;12436:2;12431:3;12372:67;:::i;:::-;12365:74;;12448:93;12537:3;12448:93;:::i;:::-;12566:2;12561:3;12557:12;12550:19;;12209:366;;;:::o;12581:::-;12723:3;12744:67;12808:2;12803:3;12744:67;:::i;:::-;12737:74;;12820:93;12909:3;12820:93;:::i;:::-;12938:2;12933:3;12929:12;12922:19;;12581:366;;;:::o;12953:::-;13095:3;13116:67;13180:2;13175:3;13116:67;:::i;:::-;13109:74;;13192:93;13281:3;13192:93;:::i;:::-;13310:2;13305:3;13301:12;13294:19;;12953:366;;;:::o;13325:108::-;13402:24;13420:5;13402:24;:::i;:::-;13397:3;13390:37;13325:108;;:::o;13439:118::-;13526:24;13544:5;13526:24;:::i;:::-;13521:3;13514:37;13439:118;;:::o;13563:275::-;13695:3;13717:95;13808:3;13799:6;13717:95;:::i;:::-;13710:102;;13829:3;13822:10;;13563:275;;;;:::o;13844:222::-;13937:4;13975:2;13964:9;13960:18;13952:26;;13988:71;14056:1;14045:9;14041:17;14032:6;13988:71;:::i;:::-;13844:222;;;;:::o;14072:315::-;14211:4;14249:3;14238:9;14234:19;14226:27;;14263:117;14377:1;14366:9;14362:17;14353:6;14263:117;:::i;:::-;14072:315;;;;:::o;14393:313::-;14506:4;14544:2;14533:9;14529:18;14521:26;;14593:9;14587:4;14583:20;14579:1;14568:9;14564:17;14557:47;14621:78;14694:4;14685:6;14621:78;:::i;:::-;14613:86;;14393:313;;;;:::o;14712:419::-;14878:4;14916:2;14905:9;14901:18;14893:26;;14965:9;14959:4;14955:20;14951:1;14940:9;14936:17;14929:47;14993:131;15119:4;14993:131;:::i;:::-;14985:139;;14712:419;;;:::o;15137:::-;15303:4;15341:2;15330:9;15326:18;15318:26;;15390:9;15384:4;15380:20;15376:1;15365:9;15361:17;15354:47;15418:131;15544:4;15418:131;:::i;:::-;15410:139;;15137:419;;;:::o;15562:::-;15728:4;15766:2;15755:9;15751:18;15743:26;;15815:9;15809:4;15805:20;15801:1;15790:9;15786:17;15779:47;15843:131;15969:4;15843:131;:::i;:::-;15835:139;;15562:419;;;:::o;15987:222::-;16080:4;16118:2;16107:9;16103:18;16095:26;;16131:71;16199:1;16188:9;16184:17;16175:6;16131:71;:::i;:::-;15987:222;;;;:::o;16215:129::-;16249:6;16276:20;;:::i;:::-;16266:30;;16305:33;16333:4;16325:6;16305:33;:::i;:::-;16215:129;;;:::o;16350:75::-;16383:6;16416:2;16410:9;16400:19;;16350:75;:::o;16431:321::-;16518:4;16608:18;16600:6;16597:30;16594:56;;;16630:18;;:::i;:::-;16594:56;16680:4;16672:6;16668:17;16660:25;;16740:4;16734;16730:15;16722:23;;16431:321;;;:::o;16758:341::-;16865:4;16955:18;16947:6;16944:30;16941:56;;;16977:18;;:::i;:::-;16941:56;17027:4;17019:6;17015:17;17007:25;;17087:4;17081;17077:15;17069:23;;16758:341;;;:::o;17105:271::-;17202:4;17292:18;17284:6;17281:30;17278:56;;;17314:18;;:::i;:::-;17278:56;17364:4;17356:6;17352:17;17344:25;;17105:271;;;:::o;17382:308::-;17444:4;17534:18;17526:6;17523:30;17520:56;;;17556:18;;:::i;:::-;17520:56;17594:29;17616:6;17594:29;:::i;:::-;17586:37;;17678:4;17672;17668:15;17660:23;;17382:308;;;:::o;17696:98::-;17761:4;17784:3;17776:11;;17696:98;;;:::o;17800:104::-;17865:6;17893:4;17883:14;;17800:104;;;:::o;17910:99::-;17962:6;17996:5;17990:12;17980:22;;17910:99;;;:::o;18015:111::-;18083:4;18115;18110:3;18106:14;18098:22;;18015:111;;;:::o;18132:143::-;18229:11;18266:3;18251:18;;18132:143;;;;:::o;18281:169::-;18365:11;18399:6;18394:3;18387:19;18439:4;18434:3;18430:14;18415:29;;18281:169;;;;:::o;18456:148::-;18558:11;18595:3;18580:18;;18456:148;;;;:::o;18610:305::-;18650:3;18669:20;18687:1;18669:20;:::i;:::-;18664:25;;18703:20;18721:1;18703:20;:::i;:::-;18698:25;;18857:1;18789:66;18785:74;18782:1;18779:81;18776:107;;;18863:18;;:::i;:::-;18776:107;18907:1;18904;18900:9;18893:16;;18610:305;;;;:::o;18921:185::-;18961:1;18978:20;18996:1;18978:20;:::i;:::-;18973:25;;19012:20;19030:1;19012:20;:::i;:::-;19007:25;;19051:1;19041:35;;19056:18;;:::i;:::-;19041:35;19098:1;19095;19091:9;19086:14;;18921:185;;;;:::o;19112:348::-;19152:7;19175:20;19193:1;19175:20;:::i;:::-;19170:25;;19209:20;19227:1;19209:20;:::i;:::-;19204:25;;19397:1;19329:66;19325:74;19322:1;19319:81;19314:1;19307:9;19300:17;19296:105;19293:131;;;19404:18;;:::i;:::-;19293:131;19452:1;19449;19445:9;19434:20;;19112:348;;;;:::o;19466:96::-;19503:7;19532:24;19550:5;19532:24;:::i;:::-;19521:35;;19466:96;;;:::o;19568:76::-;19604:7;19633:5;19622:16;;19568:76;;;:::o;19650:126::-;19687:7;19727:42;19720:5;19716:54;19705:65;;19650:126;;;:::o;19782:77::-;19819:7;19848:5;19837:16;;19782:77;;;:::o;19865:154::-;19949:6;19944:3;19939;19926:30;20011:1;20002:6;19997:3;19993:16;19986:27;19865:154;;;:::o;20025:307::-;20093:1;20103:113;20117:6;20114:1;20111:13;20103:113;;;20202:1;20197:3;20193:11;20187:18;20183:1;20178:3;20174:11;20167:39;20139:2;20136:1;20132:10;20127:15;;20103:113;;;20234:6;20231:1;20228:13;20225:101;;;20314:1;20305:6;20300:3;20296:16;20289:27;20225:101;20074:258;20025:307;;;:::o;20338:281::-;20421:27;20443:4;20421:27;:::i;:::-;20413:6;20409:40;20551:6;20539:10;20536:22;20515:18;20503:10;20500:34;20497:62;20494:88;;;20562:18;;:::i;:::-;20494:88;20602:10;20598:2;20591:22;20381:238;20338:281;;:::o;20625:233::-;20664:3;20687:24;20705:5;20687:24;:::i;:::-;20678:33;;20733:66;20726:5;20723:77;20720:103;;;20803:18;;:::i;:::-;20720:103;20850:1;20843:5;20839:13;20832:20;;20625:233;;;:::o;20864:180::-;20912:77;20909:1;20902:88;21009:4;21006:1;20999:15;21033:4;21030:1;21023:15;21050:180;21098:77;21095:1;21088:88;21195:4;21192:1;21185:15;21219:4;21216:1;21209:15;21236:180;21284:77;21281:1;21274:88;21381:4;21378:1;21371:15;21405:4;21402:1;21395:15;21422:180;21470:77;21467:1;21460:88;21567:4;21564:1;21557:15;21591:4;21588:1;21581:15;21608:117;21717:1;21714;21707:12;21731:117;21840:1;21837;21830:12;21854:117;21963:1;21960;21953:12;21977:117;22086:1;22083;22076:12;22100:117;22209:1;22206;22199:12;22223:117;22332:1;22329;22322:12;22346:117;22455:1;22452;22445:12;22469:102;22510:6;22561:2;22557:7;22552:2;22545:5;22541:14;22537:28;22527:38;;22469:102;;;:::o;22577:177::-;22717:29;22713:1;22705:6;22701:14;22694:53;22577:177;:::o;22760:162::-;22900:14;22896:1;22888:6;22884:14;22877:38;22760:162;:::o;22928:165::-;23068:17;23064:1;23056:6;23052:14;23045:41;22928:165;:::o;23099:122::-;23172:24;23190:5;23172:24;:::i;:::-;23165:5;23162:35;23152:63;;23211:1;23208;23201:12;23152:63;23099:122;:::o;23227:120::-;23299:23;23316:5;23299:23;:::i;:::-;23292:5;23289:34;23279:62;;23337:1;23334;23327:12;23279:62;23227:120;:::o;23353:122::-;23426:24;23444:5;23426:24;:::i;:::-;23419:5;23416:35;23406:63;;23465:1;23462;23455:12;23406:63;23353:122;:::o

Swarm Source

ipfs://f77afe8c6c04c018793d95f244ac8d6272e1e06e48856bc58e84d20bcef79485

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

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