ETH Price: $2,054.87 (+5.32%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TvlAdapterIronBank

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-04-15
*/

/**
 *Submitted for verification at Etherscan.io on 2021-04-14
 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.2;

/*******************************************************
 *                       Interfaces                    *
 *******************************************************/
interface CyToken {
    function underlying() external view returns (address);

    function exchangeRateStored() external view returns (uint256);

    function getCash() external view returns (uint256);

    function totalBorrows() external view returns (uint256);

    function totalReserves() external view returns (uint256);

    function balanceOf() external view returns (uint256);

    function borrowBalanceStored() external view returns (uint256);

    function decimals() external view returns (uint8);
}

interface IERC20 {
    function decimals() external view returns (uint8);
}

interface IOracle {
    function getNormalizedValueUsdc(address tokenAddress, uint256 amount)
        external
        view
        returns (uint256);

    function getNormalizedValueUsdc(
        address tokenAddress,
        uint256 amount,
        uint256 priceUsdc
    ) external view returns (uint256);

    function getPriceUsdcRecommended(address tokenAddress)
        external
        view
        returns (uint256);
}

interface IDelegationMapping {
    function assetBalanceIsDelegated(address) external view returns (bool);
}

interface IAddressesGenerator {
    function assetsAddresses() external view returns (address[] memory);

    function assetsLength() external view returns (uint256);
}

/*******************************************************
 *                     Adapter Logic                   *
 *******************************************************/
contract TvlAdapterIronBank {
    /*******************************************************
     *           Common code shared by all adapters        *
     *******************************************************/

    IOracle public oracle; // The oracle is used to fetch USDC normalized pricing data
    IAddressesGenerator public addressesGenerator; // A utility for fetching assets addresses and length
    IDelegationMapping public delegationMapping;

    /**
     * TVL breakdown for an asset
     */
    struct AssetTvlBreakdown {
        address assetId; // Asset address
        address tokenId; // Token address
        uint256 tokenPriceUsdc; // Token price in USDC
        uint256 underlyingTokenBalance; // Amount of underlying token in asset
        uint256 delegatedBalance; // Amount of underlying token balance that is delegated
        uint256 adjustedBalance; // underlyingTokenBalance - delegatedBalance
        uint256 adjustedBalanceUsdc; // TVL
    }

    /**
     * Information about the adapter
     */
    struct AdapterInfo {
        address id; // Adapter address
        string typeId; // Adapter typeId (for example "VAULT_V2" or "IRON_BANK_MARKET")
        string categoryId; // Adapter categoryId (for example "VAULT")
    }

    /**
     * Configure adapter
     */
    constructor(
        address _oracleAddress,
        address _addressesGeneratorAddress,
        address _delegationMappingAddress
    ) {
        oracle = IOracle(_oracleAddress);
        addressesGenerator = IAddressesGenerator(_addressesGeneratorAddress);
        delegationMapping = IDelegationMapping(_delegationMappingAddress);
    }

    /**
     * Fetch the total number of assets for this adapter
     */
    function assetsLength() public view returns (uint256) {
        return addressesGenerator.assetsLength();
    }

    /**
     * Fetch all asset addresses for this adapter
     */
    function assetsAddresses() public view returns (address[] memory) {
        return addressesGenerator.assetsAddresses();
    }

    // Fetch TVL breakdown for adapter given an array of addresses
    function assetsTvlBreakdown(address[] memory _assetsAddresses)
        public
        view
        returns (AssetTvlBreakdown[] memory)
    {
        uint256 numberOfAssets = _assetsAddresses.length;

        AssetTvlBreakdown[] memory tvlData =
            new AssetTvlBreakdown[](numberOfAssets);
        for (uint256 assetIdx = 0; assetIdx < numberOfAssets; assetIdx++) {
            address assetAddress = _assetsAddresses[assetIdx];
            tvlData[assetIdx] = assetTvlBreakdown(assetAddress);
        }
        return tvlData;
    }

    /**
     * Fetch TVL breakdown for adapter
     */
    function assetsTvlBreakdown()
        external
        view
        returns (AssetTvlBreakdown[] memory)
    {
        address[] memory _assetsAddresses = assetsAddresses();
        return assetsTvlBreakdown(_assetsAddresses);
    }

    /**
     * Fetch TVL breakdown of an asset
     */
    function assetTvlBreakdown(address assetAddress)
        public
        view
        returns (AssetTvlBreakdown memory)
    {
        address tokenAddress = underlyingTokenAddress(assetAddress);
        uint256 underlyingBalanceAmount = assetBalance(assetAddress);
        uint256 delegatedBalanceAmount = assetDelegatedBalance(assetAddress);
        uint256 adjustedBalance =
            underlyingBalanceAmount - delegatedBalanceAmount;
        uint256 tokenPriceUsdc = oracle.getPriceUsdcRecommended(tokenAddress);
        return
            AssetTvlBreakdown({
                assetId: assetAddress,
                tokenId: tokenAddress,
                tokenPriceUsdc: tokenPriceUsdc,
                underlyingTokenBalance: underlyingBalanceAmount,
                delegatedBalance: delegatedBalanceAmount,
                adjustedBalance: adjustedBalance,
                adjustedBalanceUsdc: oracle.getNormalizedValueUsdc(
                    tokenAddress,
                    adjustedBalance,
                    tokenPriceUsdc
                )
            });
    }

    /**
     * Fetch TVL for adapter in USDC
     */
    function assetsTvlUsdc(address[] memory _assetsAddresses)
        public
        view
        returns (uint256)
    {
        uint256 tvl;
        uint256 numberOfAssets = assetsLength();
        for (uint256 assetIdx = 0; assetIdx < numberOfAssets; assetIdx++) {
            address assetAddress = _assetsAddresses[assetIdx];
            uint256 _assetTvl = assetTvlUsdc(assetAddress);
            tvl += _assetTvl;
        }
        return tvl;
    }

    /**
     * Fetch TVL for adapter in USDC given an array of addresses
     */
    function assetsTvlUsdc() external view returns (uint256) {
        address[] memory _assetsAddresses = assetsAddresses();
        return assetsTvlUsdc(_assetsAddresses);
    }

    /*******************************************************
     *                   Asset-specific Logic              *
     *******************************************************/

    /**
     * Fetch adapter info
     */
    function adapterInfo() public view returns (AdapterInfo memory) {
        return
            AdapterInfo({
                id: address(this),
                typeId: "IRON_BANK_MARKET",
                categoryId: "LENDING"
            });
    }

    /**
     * Fetch the underlying token address of an asset
     */
    function underlyingTokenAddress(address assetAddress)
        public
        view
        returns (address)
    {
        CyToken cyToken = CyToken(assetAddress);
        address tokenAddress = cyToken.underlying();
        return tokenAddress;
    }

    /**
     * Fetch asset balance in underlying tokens
     */
    function assetBalance(address assetAddress) public view returns (uint256) {
        CyToken cyToken = CyToken(assetAddress);
        uint256 cash = cyToken.getCash();
        uint256 totalBorrows = cyToken.totalBorrows();
        uint256 totalReserves = cyToken.totalReserves();
        uint256 totalSupplied = (cash + totalBorrows - totalReserves);
        return totalSupplied;
    }

    /**
     * Fetch TVL of an asset in USDC
     */
    function assetTvlUsdc(address assetAddress) public view returns (uint256) {
        address tokenAddress = underlyingTokenAddress(assetAddress);
        uint256 underlyingBalanceAmount = assetBalance(assetAddress);
        uint256 delegatedBalanceAmount = assetDelegatedBalance(assetAddress);
        uint256 adjustedBalanceAmount =
            underlyingBalanceAmount - delegatedBalanceAmount;
        uint256 adjustedBalanceUsdc =
            oracle.getNormalizedValueUsdc(tokenAddress, adjustedBalanceAmount);
        return adjustedBalanceUsdc;
    }

    function assetDelegatedBalance(address assetAddress)
        public
        view
        returns (uint256)
    {
        bool balanceIsDelegated =
            delegationMapping.assetBalanceIsDelegated(assetAddress);
        if (balanceIsDelegated) {
            return assetBalance(assetAddress);
        }
        return 0;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_oracleAddress","type":"address"},{"internalType":"address","name":"_addressesGeneratorAddress","type":"address"},{"internalType":"address","name":"_delegationMappingAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"adapterInfo","outputs":[{"components":[{"internalType":"address","name":"id","type":"address"},{"internalType":"string","name":"typeId","type":"string"},{"internalType":"string","name":"categoryId","type":"string"}],"internalType":"struct TvlAdapterIronBank.AdapterInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addressesGenerator","outputs":[{"internalType":"contract IAddressesGenerator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"assetAddress","type":"address"}],"name":"assetBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"assetAddress","type":"address"}],"name":"assetDelegatedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"assetAddress","type":"address"}],"name":"assetTvlBreakdown","outputs":[{"components":[{"internalType":"address","name":"assetId","type":"address"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"uint256","name":"tokenPriceUsdc","type":"uint256"},{"internalType":"uint256","name":"underlyingTokenBalance","type":"uint256"},{"internalType":"uint256","name":"delegatedBalance","type":"uint256"},{"internalType":"uint256","name":"adjustedBalance","type":"uint256"},{"internalType":"uint256","name":"adjustedBalanceUsdc","type":"uint256"}],"internalType":"struct TvlAdapterIronBank.AssetTvlBreakdown","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"assetAddress","type":"address"}],"name":"assetTvlUsdc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetsAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetsTvlBreakdown","outputs":[{"components":[{"internalType":"address","name":"assetId","type":"address"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"uint256","name":"tokenPriceUsdc","type":"uint256"},{"internalType":"uint256","name":"underlyingTokenBalance","type":"uint256"},{"internalType":"uint256","name":"delegatedBalance","type":"uint256"},{"internalType":"uint256","name":"adjustedBalance","type":"uint256"},{"internalType":"uint256","name":"adjustedBalanceUsdc","type":"uint256"}],"internalType":"struct TvlAdapterIronBank.AssetTvlBreakdown[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_assetsAddresses","type":"address[]"}],"name":"assetsTvlBreakdown","outputs":[{"components":[{"internalType":"address","name":"assetId","type":"address"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"uint256","name":"tokenPriceUsdc","type":"uint256"},{"internalType":"uint256","name":"underlyingTokenBalance","type":"uint256"},{"internalType":"uint256","name":"delegatedBalance","type":"uint256"},{"internalType":"uint256","name":"adjustedBalance","type":"uint256"},{"internalType":"uint256","name":"adjustedBalanceUsdc","type":"uint256"}],"internalType":"struct TvlAdapterIronBank.AssetTvlBreakdown[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_assetsAddresses","type":"address[]"}],"name":"assetsTvlUsdc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetsTvlUsdc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delegationMapping","outputs":[{"internalType":"contract IDelegationMapping","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracle","outputs":[{"internalType":"contract IOracle","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"assetAddress","type":"address"}],"name":"underlyingTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b5060405162001afb38038062001afb833981810160405281019062000037919062000119565b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620001bd565b6000815190506200011381620001a3565b92915050565b6000806000606084860312156200012f57600080fd5b60006200013f8682870162000102565b9350506020620001528682870162000102565b9250506040620001658682870162000102565b9150509250925092565b60006200017c8262000183565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620001ae816200016f565b8114620001ba57600080fd5b50565b61192e80620001cd6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a96e830311610097578063cd88e55811610066578063cd88e5581461028c578063d2377b55146102bc578063f50477a2146102ec578063f75c04711461030a576100f5565b8063a96e8303146101de578063baac517b1461020e578063c10e0eeb1461023e578063caa5a86d1461025c576100f5565b80637dc0d1d0116100d35780637dc0d1d01461016657806393c1bddc14610184578063a31091c7146101a2578063a704abca146101c0576100f5565b80630ca33a05146100fa57806332ade4791461012a5780636227d2de14610148575b600080fd5b610114600480360381019061010f919061103d565b61033a565b604051610121919061155f565b60405180910390f35b6101326103d4565b60405161013f91906114ec565b60405180910390f35b6101506103fa565b60405161015d91906114af565b60405180910390f35b61016e610417565b60405161017b9190611507565b60405180910390f35b61018c61043b565b604051610199919061155f565b60405180910390f35b6101aa610457565b6040516101b7919061148d565b60405180910390f35b6101c8610503565b6040516101d591906114d1565b60405180910390f35b6101f860048036038101906101f39190610feb565b610529565b6040516102059190611412565b60405180910390f35b61022860048036038101906102239190610feb565b6105bb565b6040516102359190611544565b60405180910390f35b6102466107bf565b6040516102539190611522565b60405180910390f35b6102766004803603810190610271919061103d565b610867565b60405161028391906114af565b60405180910390f35b6102a660048036038101906102a19190610feb565b6109a9565b6040516102b3919061155f565b60405180910390f35b6102d660048036038101906102d19190610feb565b610b5d565b6040516102e3919061155f565b60405180910390f35b6102f4610c52565b604051610301919061155f565b60405180910390f35b610324600480360381019061031f9190610feb565b610cf9565b604051610331919061155f565b60405180910390f35b6000806000610347610c52565b905060005b818110156103c957600085828151811061038f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905060006103a482610b5d565b905080856103b29190611659565b9450505080806103c1906117fb565b91505061034c565b508192505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000610406610457565b905061041181610867565b91505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610446610457565b90506104518161033a565b91505090565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a31091c76040518163ffffffff1660e01b815260040160006040518083038186803b1580156104c157600080fd5b505afa1580156104d5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906104fe919061107e565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff16636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561057757600080fd5b505afa15801561058b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105af9190611014565b90508092505050919050565b6105c3610dcb565b60006105ce83610529565b905060006105db846109a9565b905060006105e885610cf9565b9050600081836105f891906116af565b905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663482ba306866040518263ffffffff1660e01b81526004016106569190611412565b60206040518083038186803b15801561066e57600080fd5b505afa158015610682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a691906110e8565b90506040518060e001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200185815260200184815260200183815260200160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d02d20aa8886866040518463ffffffff1660e01b815260040161076093929190611456565b60206040518083038186803b15801561077857600080fd5b505afa15801561078c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b091906110e8565b81525095505050505050919050565b6107c7610e34565b60405180606001604052803073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280601081526020017f49524f4e5f42414e4b5f4d41524b45540000000000000000000000000000000081525081526020016040518060400160405280600781526020017f4c454e44494e4700000000000000000000000000000000000000000000000000815250815250905090565b606060008251905060008167ffffffffffffffff8111156108b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156108ea57816020015b6108d7610dcb565b8152602001906001900390816108cf5790505b50905060005b8281101561099e576000858281518110610933577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050610946816105bb565b83838151811061097f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250508080610996906117fb565b9150506108f0565b508092505050919050565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff16633b1d21a26040518163ffffffff1660e01b815260040160206040518083038186803b1580156109f757600080fd5b505afa158015610a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2f91906110e8565b905060008273ffffffffffffffffffffffffffffffffffffffff166347bd37186040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7957600080fd5b505afa158015610a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab191906110e8565b905060008373ffffffffffffffffffffffffffffffffffffffff16638f840ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610afb57600080fd5b505afa158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3391906110e8565b90506000818385610b449190611659565b610b4e91906116af565b90508095505050505050919050565b600080610b6983610529565b90506000610b76846109a9565b90506000610b8385610cf9565b905060008183610b9391906116af565b905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a7f668086846040518363ffffffff1660e01b8152600401610bf392919061142d565b60206040518083038186803b158015610c0b57600080fd5b505afa158015610c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4391906110e8565b90508095505050505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f50477a26040518163ffffffff1660e01b815260040160206040518083038186803b158015610cbc57600080fd5b505afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf491906110e8565b905090565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166391814920846040518263ffffffff1660e01b8152600401610d579190611412565b60206040518083038186803b158015610d6f57600080fd5b505afa158015610d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da791906110bf565b90508015610dc057610db8836109a9565b915050610dc6565b60009150505b919050565b6040518060e00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081525090565b6000610e7e610e798461159f565b61157a565b90508083825260208201905082856020860282011115610e9d57600080fd5b60005b85811015610ecd5781610eb38882610f43565b845260208401935060208301925050600181019050610ea0565b5050509392505050565b6000610eea610ee58461159f565b61157a565b90508083825260208201905082856020860282011115610f0957600080fd5b60005b85811015610f395781610f1f8882610f58565b845260208401935060208301925050600181019050610f0c565b5050509392505050565b600081359050610f52816118b3565b92915050565b600081519050610f67816118b3565b92915050565b600082601f830112610f7e57600080fd5b8135610f8e848260208601610e6b565b91505092915050565b600082601f830112610fa857600080fd5b8151610fb8848260208601610ed7565b91505092915050565b600081519050610fd0816118ca565b92915050565b600081519050610fe5816118e1565b92915050565b600060208284031215610ffd57600080fd5b600061100b84828501610f43565b91505092915050565b60006020828403121561102657600080fd5b600061103484828501610f58565b91505092915050565b60006020828403121561104f57600080fd5b600082013567ffffffffffffffff81111561106957600080fd5b61107584828501610f6d565b91505092915050565b60006020828403121561109057600080fd5b600082015167ffffffffffffffff8111156110aa57600080fd5b6110b684828501610f97565b91505092915050565b6000602082840312156110d157600080fd5b60006110df84828501610fc1565b91505092915050565b6000602082840312156110fa57600080fd5b600061110884828501610fd6565b91505092915050565b600061111d8383611141565b60208301905092915050565b600061113583836112d8565b60e08301905092915050565b61114a816116e3565b82525050565b611159816116e3565b82525050565b600061116a826115eb565b6111748185611626565b935061117f836115cb565b8060005b838110156111b05781516111978882611111565b97506111a28361160c565b925050600181019050611183565b5085935050505092915050565b60006111c8826115f6565b6111d28185611637565b93506111dd836115db565b8060005b8381101561120e5781516111f58882611129565b975061120083611619565b9250506001810190506111e1565b5085935050505092915050565b6112248161172b565b82525050565b6112338161174f565b82525050565b61124281611773565b82525050565b600061125382611601565b61125d8185611648565b935061126d818560208601611797565b611276816118a2565b840191505092915050565b60006060830160008301516112996000860182611141565b50602083015184820360208601526112b18282611248565b915050604083015184820360408601526112cb8282611248565b9150508091505092915050565b60e0820160008201516112ee6000850182611141565b5060208201516113016020850182611141565b50604082015161131460408501826113f4565b50606082015161132760608501826113f4565b50608082015161133a60808501826113f4565b5060a082015161134d60a08501826113f4565b5060c082015161136060c08501826113f4565b50505050565b60e08201600082015161137c6000850182611141565b50602082015161138f6020850182611141565b5060408201516113a260408501826113f4565b5060608201516113b560608501826113f4565b5060808201516113c860808501826113f4565b5060a08201516113db60a08501826113f4565b5060c08201516113ee60c08501826113f4565b50505050565b6113fd81611721565b82525050565b61140c81611721565b82525050565b60006020820190506114276000830184611150565b92915050565b60006040820190506114426000830185611150565b61144f6020830184611403565b9392505050565b600060608201905061146b6000830186611150565b6114786020830185611403565b6114856040830184611403565b949350505050565b600060208201905081810360008301526114a7818461115f565b905092915050565b600060208201905081810360008301526114c981846111bd565b905092915050565b60006020820190506114e6600083018461121b565b92915050565b6000602082019050611501600083018461122a565b92915050565b600060208201905061151c6000830184611239565b92915050565b6000602082019050818103600083015261153c8184611281565b905092915050565b600060e0820190506115596000830184611366565b92915050565b60006020820190506115746000830184611403565b92915050565b6000611584611595565b905061159082826117ca565b919050565b6000604051905090565b600067ffffffffffffffff8211156115ba576115b9611873565b5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061166482611721565b915061166f83611721565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156116a4576116a3611844565b5b828201905092915050565b60006116ba82611721565b91506116c583611721565b9250828210156116d8576116d7611844565b5b828203905092915050565b60006116ee82611701565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006117368261173d565b9050919050565b600061174882611701565b9050919050565b600061175a82611761565b9050919050565b600061176c82611701565b9050919050565b600061177e82611785565b9050919050565b600061179082611701565b9050919050565b60005b838110156117b557808201518184015260208101905061179a565b838111156117c4576000848401525b50505050565b6117d3826118a2565b810181811067ffffffffffffffff821117156117f2576117f1611873565b5b80604052505050565b600061180682611721565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561183957611838611844565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6118bc816116e3565b81146118c757600080fd5b50565b6118d3816116f5565b81146118de57600080fd5b50565b6118ea81611721565b81146118f557600080fd5b5056fea264697066735822122059b26a8de33ffbfd3ebd05777b86ba7b5c40d38d5babc44b478772eb5586cb1564736f6c6343000802003300000000000000000000000083d95e0d5f402511db06817aff3f9ea88224b030000000000000000000000000a0b57619a980dfefd50f24f310ee1b55a40a9d46000000000000000000000000c01a529c01f9399c928a4afc50e25f12d1e5b142

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a96e830311610097578063cd88e55811610066578063cd88e5581461028c578063d2377b55146102bc578063f50477a2146102ec578063f75c04711461030a576100f5565b8063a96e8303146101de578063baac517b1461020e578063c10e0eeb1461023e578063caa5a86d1461025c576100f5565b80637dc0d1d0116100d35780637dc0d1d01461016657806393c1bddc14610184578063a31091c7146101a2578063a704abca146101c0576100f5565b80630ca33a05146100fa57806332ade4791461012a5780636227d2de14610148575b600080fd5b610114600480360381019061010f919061103d565b61033a565b604051610121919061155f565b60405180910390f35b6101326103d4565b60405161013f91906114ec565b60405180910390f35b6101506103fa565b60405161015d91906114af565b60405180910390f35b61016e610417565b60405161017b9190611507565b60405180910390f35b61018c61043b565b604051610199919061155f565b60405180910390f35b6101aa610457565b6040516101b7919061148d565b60405180910390f35b6101c8610503565b6040516101d591906114d1565b60405180910390f35b6101f860048036038101906101f39190610feb565b610529565b6040516102059190611412565b60405180910390f35b61022860048036038101906102239190610feb565b6105bb565b6040516102359190611544565b60405180910390f35b6102466107bf565b6040516102539190611522565b60405180910390f35b6102766004803603810190610271919061103d565b610867565b60405161028391906114af565b60405180910390f35b6102a660048036038101906102a19190610feb565b6109a9565b6040516102b3919061155f565b60405180910390f35b6102d660048036038101906102d19190610feb565b610b5d565b6040516102e3919061155f565b60405180910390f35b6102f4610c52565b604051610301919061155f565b60405180910390f35b610324600480360381019061031f9190610feb565b610cf9565b604051610331919061155f565b60405180910390f35b6000806000610347610c52565b905060005b818110156103c957600085828151811061038f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905060006103a482610b5d565b905080856103b29190611659565b9450505080806103c1906117fb565b91505061034c565b508192505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000610406610457565b905061041181610867565b91505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610446610457565b90506104518161033a565b91505090565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a31091c76040518163ffffffff1660e01b815260040160006040518083038186803b1580156104c157600080fd5b505afa1580156104d5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906104fe919061107e565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff16636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561057757600080fd5b505afa15801561058b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105af9190611014565b90508092505050919050565b6105c3610dcb565b60006105ce83610529565b905060006105db846109a9565b905060006105e885610cf9565b9050600081836105f891906116af565b905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663482ba306866040518263ffffffff1660e01b81526004016106569190611412565b60206040518083038186803b15801561066e57600080fd5b505afa158015610682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a691906110e8565b90506040518060e001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200185815260200184815260200183815260200160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d02d20aa8886866040518463ffffffff1660e01b815260040161076093929190611456565b60206040518083038186803b15801561077857600080fd5b505afa15801561078c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b091906110e8565b81525095505050505050919050565b6107c7610e34565b60405180606001604052803073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280601081526020017f49524f4e5f42414e4b5f4d41524b45540000000000000000000000000000000081525081526020016040518060400160405280600781526020017f4c454e44494e4700000000000000000000000000000000000000000000000000815250815250905090565b606060008251905060008167ffffffffffffffff8111156108b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156108ea57816020015b6108d7610dcb565b8152602001906001900390816108cf5790505b50905060005b8281101561099e576000858281518110610933577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050610946816105bb565b83838151811061097f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250508080610996906117fb565b9150506108f0565b508092505050919050565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff16633b1d21a26040518163ffffffff1660e01b815260040160206040518083038186803b1580156109f757600080fd5b505afa158015610a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2f91906110e8565b905060008273ffffffffffffffffffffffffffffffffffffffff166347bd37186040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7957600080fd5b505afa158015610a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab191906110e8565b905060008373ffffffffffffffffffffffffffffffffffffffff16638f840ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610afb57600080fd5b505afa158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3391906110e8565b90506000818385610b449190611659565b610b4e91906116af565b90508095505050505050919050565b600080610b6983610529565b90506000610b76846109a9565b90506000610b8385610cf9565b905060008183610b9391906116af565b905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a7f668086846040518363ffffffff1660e01b8152600401610bf392919061142d565b60206040518083038186803b158015610c0b57600080fd5b505afa158015610c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4391906110e8565b90508095505050505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f50477a26040518163ffffffff1660e01b815260040160206040518083038186803b158015610cbc57600080fd5b505afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf491906110e8565b905090565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166391814920846040518263ffffffff1660e01b8152600401610d579190611412565b60206040518083038186803b158015610d6f57600080fd5b505afa158015610d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da791906110bf565b90508015610dc057610db8836109a9565b915050610dc6565b60009150505b919050565b6040518060e00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081525090565b6000610e7e610e798461159f565b61157a565b90508083825260208201905082856020860282011115610e9d57600080fd5b60005b85811015610ecd5781610eb38882610f43565b845260208401935060208301925050600181019050610ea0565b5050509392505050565b6000610eea610ee58461159f565b61157a565b90508083825260208201905082856020860282011115610f0957600080fd5b60005b85811015610f395781610f1f8882610f58565b845260208401935060208301925050600181019050610f0c565b5050509392505050565b600081359050610f52816118b3565b92915050565b600081519050610f67816118b3565b92915050565b600082601f830112610f7e57600080fd5b8135610f8e848260208601610e6b565b91505092915050565b600082601f830112610fa857600080fd5b8151610fb8848260208601610ed7565b91505092915050565b600081519050610fd0816118ca565b92915050565b600081519050610fe5816118e1565b92915050565b600060208284031215610ffd57600080fd5b600061100b84828501610f43565b91505092915050565b60006020828403121561102657600080fd5b600061103484828501610f58565b91505092915050565b60006020828403121561104f57600080fd5b600082013567ffffffffffffffff81111561106957600080fd5b61107584828501610f6d565b91505092915050565b60006020828403121561109057600080fd5b600082015167ffffffffffffffff8111156110aa57600080fd5b6110b684828501610f97565b91505092915050565b6000602082840312156110d157600080fd5b60006110df84828501610fc1565b91505092915050565b6000602082840312156110fa57600080fd5b600061110884828501610fd6565b91505092915050565b600061111d8383611141565b60208301905092915050565b600061113583836112d8565b60e08301905092915050565b61114a816116e3565b82525050565b611159816116e3565b82525050565b600061116a826115eb565b6111748185611626565b935061117f836115cb565b8060005b838110156111b05781516111978882611111565b97506111a28361160c565b925050600181019050611183565b5085935050505092915050565b60006111c8826115f6565b6111d28185611637565b93506111dd836115db565b8060005b8381101561120e5781516111f58882611129565b975061120083611619565b9250506001810190506111e1565b5085935050505092915050565b6112248161172b565b82525050565b6112338161174f565b82525050565b61124281611773565b82525050565b600061125382611601565b61125d8185611648565b935061126d818560208601611797565b611276816118a2565b840191505092915050565b60006060830160008301516112996000860182611141565b50602083015184820360208601526112b18282611248565b915050604083015184820360408601526112cb8282611248565b9150508091505092915050565b60e0820160008201516112ee6000850182611141565b5060208201516113016020850182611141565b50604082015161131460408501826113f4565b50606082015161132760608501826113f4565b50608082015161133a60808501826113f4565b5060a082015161134d60a08501826113f4565b5060c082015161136060c08501826113f4565b50505050565b60e08201600082015161137c6000850182611141565b50602082015161138f6020850182611141565b5060408201516113a260408501826113f4565b5060608201516113b560608501826113f4565b5060808201516113c860808501826113f4565b5060a08201516113db60a08501826113f4565b5060c08201516113ee60c08501826113f4565b50505050565b6113fd81611721565b82525050565b61140c81611721565b82525050565b60006020820190506114276000830184611150565b92915050565b60006040820190506114426000830185611150565b61144f6020830184611403565b9392505050565b600060608201905061146b6000830186611150565b6114786020830185611403565b6114856040830184611403565b949350505050565b600060208201905081810360008301526114a7818461115f565b905092915050565b600060208201905081810360008301526114c981846111bd565b905092915050565b60006020820190506114e6600083018461121b565b92915050565b6000602082019050611501600083018461122a565b92915050565b600060208201905061151c6000830184611239565b92915050565b6000602082019050818103600083015261153c8184611281565b905092915050565b600060e0820190506115596000830184611366565b92915050565b60006020820190506115746000830184611403565b92915050565b6000611584611595565b905061159082826117ca565b919050565b6000604051905090565b600067ffffffffffffffff8211156115ba576115b9611873565b5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061166482611721565b915061166f83611721565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156116a4576116a3611844565b5b828201905092915050565b60006116ba82611721565b91506116c583611721565b9250828210156116d8576116d7611844565b5b828203905092915050565b60006116ee82611701565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006117368261173d565b9050919050565b600061174882611701565b9050919050565b600061175a82611761565b9050919050565b600061176c82611701565b9050919050565b600061177e82611785565b9050919050565b600061179082611701565b9050919050565b60005b838110156117b557808201518184015260208101905061179a565b838111156117c4576000848401525b50505050565b6117d3826118a2565b810181811067ffffffffffffffff821117156117f2576117f1611873565b5b80604052505050565b600061180682611721565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561183957611838611844565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6118bc816116e3565b81146118c757600080fd5b50565b6118d3816116f5565b81146118de57600080fd5b50565b6118ea81611721565b81146118f557600080fd5b5056fea264697066735822122059b26a8de33ffbfd3ebd05777b86ba7b5c40d38d5babc44b478772eb5586cb1564736f6c63430008020033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000083d95e0d5f402511db06817aff3f9ea88224b030000000000000000000000000a0b57619a980dfefd50f24f310ee1b55a40a9d46000000000000000000000000c01a529c01f9399c928a4afc50e25f12d1e5b142

-----Decoded View---------------
Arg [0] : _oracleAddress (address): 0x83d95e0D5f402511dB06817Aff3f9eA88224B030
Arg [1] : _addressesGeneratorAddress (address): 0xa0B57619A980DFEfD50f24F310EE1b55A40A9D46
Arg [2] : _delegationMappingAddress (address): 0xC01a529c01f9399c928a4aFc50E25f12D1e5b142

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000083d95e0d5f402511db06817aff3f9ea88224b030
Arg [1] : 000000000000000000000000a0b57619a980dfefd50f24f310ee1b55a40a9d46
Arg [2] : 000000000000000000000000c01a529c01f9399c928a4afc50e25f12d1e5b142


Deployed Bytecode Sourcemap

1835:7269:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6090:465;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2253:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4619:239;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2059:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6647:178;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3793:128;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2147:45;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7400:258;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4924:1102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7067:252;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3997:556;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7733:392;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8189:563;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3603:113;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8760:341;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6090:465;6196:7;6221:11;6243:22;6268:14;:12;:14::i;:::-;6243:39;;6298:16;6293:234;6331:14;6320:8;:25;6293:234;;;6374:20;6397:16;6414:8;6397:26;;;;;;;;;;;;;;;;;;;;;;6374:49;;6438:17;6458:26;6471:12;6458;:26::i;:::-;6438:46;;6506:9;6499:16;;;;;:::i;:::-;;;6293:234;;6347:10;;;;;:::i;:::-;;;;6293:234;;;;6544:3;6537:10;;;;6090:465;;;:::o;2253:43::-;;;;;;;;;;;;;:::o;4619:239::-;4699:26;4743:33;4779:17;:15;:17::i;:::-;4743:53;;4814:36;4833:16;4814:18;:36::i;:::-;4807:43;;;4619:239;:::o;2059:21::-;;;;;;;;;;;;:::o;6647:178::-;6695:7;6715:33;6751:17;:15;:17::i;:::-;6715:53;;6786:31;6800:16;6786:13;:31::i;:::-;6779:38;;;6647:178;:::o;3793:128::-;3841:16;3877:18;;;;;;;;;;;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3870:43;;3793:128;:::o;2147:45::-;;;;;;;;;;;;;:::o;7400:258::-;7502:7;7527:15;7553:12;7527:39;;7577:20;7600:7;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7577:43;;7638:12;7631:19;;;;7400:258;;;:::o;4924:1102::-;5021:24;;:::i;:::-;5063:20;5086:36;5109:12;5086:22;:36::i;:::-;5063:59;;5133:31;5167:26;5180:12;5167;:26::i;:::-;5133:60;;5204:30;5237:35;5259:12;5237:21;:35::i;:::-;5204:68;;5283:23;5348:22;5322:23;:48;;;;:::i;:::-;5283:87;;5381:22;5406:6;;;;;;;;;;;:30;;;5437:12;5406:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5381:69;;5481:537;;;;;;;;5527:12;5481:537;;;;;;5567:12;5481:537;;;;;;5614:14;5481:537;;;;5671:23;5481:537;;;;5731:22;5481:537;;;;5789:15;5481:537;;;;5844:6;;;;;;;;;;:29;;;5896:12;5931:15;5969:14;5844:158;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5481:537;;;5461:557;;;;;;;4924:1102;;;:::o;7067:252::-;7111:18;;:::i;:::-;7162:149;;;;;;;;7205:4;7162:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7142:169;;7067:252;:::o;3997:556::-;4108:26;4152:22;4177:16;:23;4152:48;;4213:34;4287:14;4263:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4213:89;;4318:16;4313:208;4351:14;4340:8;:25;4313:208;;;4394:20;4417:16;4434:8;4417:26;;;;;;;;;;;;;;;;;;;;;;4394:49;;4478:31;4496:12;4478:17;:31::i;:::-;4458:7;4466:8;4458:17;;;;;;;;;;;;;;;;;;;;;:51;;;;4313:208;4367:10;;;;;:::i;:::-;;;;4313:208;;;;4538:7;4531:14;;;;3997:556;;;:::o;7733:392::-;7798:7;7818:15;7844:12;7818:39;;7868:12;7883:7;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7868:32;;7911:20;7934:7;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7911:45;;7967:21;7991:7;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7967:47;;8025:21;8072:13;8057:12;8050:4;:19;;;;:::i;:::-;:35;;;;:::i;:::-;8025:61;;8104:13;8097:20;;;;;;;7733:392;;;:::o;8189:563::-;8254:7;8274:20;8297:36;8320:12;8297:22;:36::i;:::-;8274:59;;8344:31;8378:26;8391:12;8378;:26::i;:::-;8344:60;;8415:30;8448:35;8470:12;8448:21;:35::i;:::-;8415:68;;8494:29;8565:22;8539:23;:48;;;;:::i;:::-;8494:93;;8598:27;8641:6;;;;;;;;;;;:29;;;8671:12;8685:21;8641:66;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8598:109;;8725:19;8718:26;;;;;;;8189:563;;;:::o;3603:113::-;3648:7;3675:18;;;;;;;;;;;:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3668:40;;3603:113;:::o;8760:341::-;8861:7;8886:23;8925:17;;;;;;;;;;;:41;;;8967:12;8925:55;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8886:94;;8995:18;8991:84;;;9037:26;9050:12;9037;:26::i;:::-;9030:33;;;;;8991:84;9092:1;9085:8;;;8760:341;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;24:623:1:-;;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;274:6;267:5;260:21;300:4;293:5;289:16;282:23;;325:6;375:3;367:4;359:6;355:17;350:3;346:27;343:36;340:2;;;392:1;389;382:12;340:2;420:1;405:236;430:6;427:1;424:13;405:236;;;497:3;525:37;558:3;546:10;525:37;:::i;:::-;520:3;513:50;592:4;587:3;583:14;576:21;;626:4;621:3;617:14;610:21;;465:176;452:1;449;445:9;440:14;;405:236;;;409:14;126:521;;;;;;;:::o;670:645::-;;802:81;818:64;875:6;818:64;:::i;:::-;802:81;:::i;:::-;793:90;;903:5;931:6;924:5;917:21;957:4;950:5;946:16;939:23;;982:6;1032:3;1024:4;1016:6;1012:17;1007:3;1003:27;1000:36;997:2;;;1049:1;1046;1039:12;997:2;1077:1;1062:247;1087:6;1084:1;1081:13;1062:247;;;1154:3;1182:48;1226:3;1214:10;1182:48;:::i;:::-;1177:3;1170:61;1260:4;1255:3;1251:14;1244:21;;1294:4;1289:3;1285:14;1278:21;;1122:187;1109:1;1106;1102:9;1097:14;;1062:247;;;1066:14;783:532;;;;;;;:::o;1321:139::-;;1405:6;1392:20;1383:29;;1421:33;1448:5;1421:33;:::i;:::-;1373:87;;;;:::o;1466:143::-;;1554:6;1548:13;1539:22;;1570:33;1597:5;1570:33;:::i;:::-;1529:80;;;;:::o;1632:303::-;;1752:3;1745:4;1737:6;1733:17;1729:27;1719:2;;1770:1;1767;1760:12;1719:2;1810:6;1797:20;1835:94;1925:3;1917:6;1910:4;1902:6;1898:17;1835:94;:::i;:::-;1826:103;;1709:226;;;;;:::o;1958:318::-;;2089:3;2082:4;2074:6;2070:17;2066:27;2056:2;;2107:1;2104;2097:12;2056:2;2140:6;2134:13;2165:105;2266:3;2258:6;2251:4;2243:6;2239:17;2165:105;:::i;:::-;2156:114;;2046:230;;;;;:::o;2282:137::-;;2367:6;2361:13;2352:22;;2383:30;2407:5;2383:30;:::i;:::-;2342:77;;;;:::o;2425:143::-;;2513:6;2507:13;2498:22;;2529:33;2556:5;2529:33;:::i;:::-;2488:80;;;;:::o;2574:262::-;;2682:2;2670:9;2661:7;2657:23;2653:32;2650:2;;;2698:1;2695;2688:12;2650:2;2741:1;2766:53;2811:7;2802:6;2791:9;2787:22;2766:53;:::i;:::-;2756:63;;2712:117;2640:196;;;;:::o;2842:284::-;;2961:2;2949:9;2940:7;2936:23;2932:32;2929:2;;;2977:1;2974;2967:12;2929:2;3020:1;3045:64;3101:7;3092:6;3081:9;3077:22;3045:64;:::i;:::-;3035:74;;2991:128;2919:207;;;;:::o;3132:405::-;;3265:2;3253:9;3244:7;3240:23;3236:32;3233:2;;;3281:1;3278;3271:12;3233:2;3352:1;3341:9;3337:17;3324:31;3382:18;3374:6;3371:30;3368:2;;;3414:1;3411;3404:12;3368:2;3442:78;3512:7;3503:6;3492:9;3488:22;3442:78;:::i;:::-;3432:88;;3295:235;3223:314;;;;:::o;3543:420::-;;3687:2;3675:9;3666:7;3662:23;3658:32;3655:2;;;3703:1;3700;3693:12;3655:2;3767:1;3756:9;3752:17;3746:24;3797:18;3789:6;3786:30;3783:2;;;3829:1;3826;3819:12;3783:2;3857:89;3938:7;3929:6;3918:9;3914:22;3857:89;:::i;:::-;3847:99;;3717:239;3645:318;;;;:::o;3969:278::-;;4085:2;4073:9;4064:7;4060:23;4056:32;4053:2;;;4101:1;4098;4091:12;4053:2;4144:1;4169:61;4222:7;4213:6;4202:9;4198:22;4169:61;:::i;:::-;4159:71;;4115:125;4043:204;;;;:::o;4253:284::-;;4372:2;4360:9;4351:7;4347:23;4343:32;4340:2;;;4388:1;4385;4378:12;4340:2;4431:1;4456:64;4512:7;4503:6;4492:9;4488:22;4456:64;:::i;:::-;4446:74;;4402:128;4330:207;;;;:::o;4543:179::-;;4633:46;4675:3;4667:6;4633:46;:::i;:::-;4711:4;4706:3;4702:14;4688:28;;4623:99;;;;:::o;4728:315::-;;4886:114;4996:3;4988:6;4886:114;:::i;:::-;5032:4;5027:3;5023:14;5009:28;;4876:167;;;;:::o;5049:108::-;5126:24;5144:5;5126:24;:::i;:::-;5121:3;5114:37;5104:53;;:::o;5163:118::-;5250:24;5268:5;5250:24;:::i;:::-;5245:3;5238:37;5228:53;;:::o;5317:732::-;;5465:54;5513:5;5465:54;:::i;:::-;5535:86;5614:6;5609:3;5535:86;:::i;:::-;5528:93;;5645:56;5695:5;5645:56;:::i;:::-;5724:7;5755:1;5740:284;5765:6;5762:1;5759:13;5740:284;;;5841:6;5835:13;5868:63;5927:3;5912:13;5868:63;:::i;:::-;5861:70;;5954:60;6007:6;5954:60;:::i;:::-;5944:70;;5800:224;5787:1;5784;5780:9;5775:14;;5740:284;;;5744:14;6040:3;6033:10;;5441:608;;;;;;;:::o;6157:1004::-;;6373:88;6455:5;6373:88;:::i;:::-;6477:120;6590:6;6585:3;6477:120;:::i;:::-;6470:127;;6621:90;6705:5;6621:90;:::i;:::-;6734:7;6765:1;6750:386;6775:6;6772:1;6769:13;6750:386;;;6851:6;6845:13;6878:131;7005:3;6990:13;6878:131;:::i;:::-;6871:138;;7032:94;7119:6;7032:94;:::i;:::-;7022:104;;6810:326;6797:1;6794;6790:9;6785:14;;6750:386;;;6754:14;7152:3;7145:10;;6349:812;;;;;;;:::o;7167:183::-;7280:63;7337:5;7280:63;:::i;:::-;7275:3;7268:76;7258:92;;:::o;7356:181::-;7468:62;7524:5;7468:62;:::i;:::-;7463:3;7456:75;7446:91;;:::o;7543:159::-;7644:51;7689:5;7644:51;:::i;:::-;7639:3;7632:64;7622:80;;:::o;7708:344::-;;7814:39;7847:5;7814:39;:::i;:::-;7869:61;7923:6;7918:3;7869:61;:::i;:::-;7862:68;;7939:52;7984:6;7979:3;7972:4;7965:5;7961:16;7939:52;:::i;:::-;8016:29;8038:6;8016:29;:::i;:::-;8011:3;8007:39;8000:46;;7790:262;;;;;:::o;8144:863::-;;8305:4;8300:3;8296:14;8390:4;8383:5;8379:16;8373:23;8409:63;8466:4;8461:3;8457:14;8443:12;8409:63;:::i;:::-;8320:162;8566:4;8559:5;8555:16;8549:23;8619:3;8613:4;8609:14;8602:4;8597:3;8593:14;8586:38;8645:73;8713:4;8699:12;8645:73;:::i;:::-;8637:81;;8492:237;8817:4;8810:5;8806:16;8800:23;8870:3;8864:4;8860:14;8853:4;8848:3;8844:14;8837:38;8896:73;8964:4;8950:12;8896:73;:::i;:::-;8888:81;;8739:241;8997:4;8990:11;;8274:733;;;;;:::o;9111:1457::-;9266:4;9261:3;9257:14;9356:4;9349:5;9345:16;9339:23;9375:63;9432:4;9427:3;9423:14;9409:12;9375:63;:::i;:::-;9281:167;9533:4;9526:5;9522:16;9516:23;9552:63;9609:4;9604:3;9600:14;9586:12;9552:63;:::i;:::-;9458:167;9717:4;9710:5;9706:16;9700:23;9736:63;9793:4;9788:3;9784:14;9770:12;9736:63;:::i;:::-;9635:174;9909:4;9902:5;9898:16;9892:23;9928:63;9985:4;9980:3;9976:14;9962:12;9928:63;:::i;:::-;9819:182;10095:4;10088:5;10084:16;10078:23;10114:63;10171:4;10166:3;10162:14;10148:12;10114:63;:::i;:::-;10011:176;10280:4;10273:5;10269:16;10263:23;10299:63;10356:4;10351:3;10347:14;10333:12;10299:63;:::i;:::-;10197:175;10469:4;10462:5;10458:16;10452:23;10488:63;10545:4;10540:3;10536:14;10522:12;10488:63;:::i;:::-;10382:179;9235:1333;;;:::o;10672:1467::-;10837:4;10832:3;10828:14;10927:4;10920:5;10916:16;10910:23;10946:63;11003:4;10998:3;10994:14;10980:12;10946:63;:::i;:::-;10852:167;11104:4;11097:5;11093:16;11087:23;11123:63;11180:4;11175:3;11171:14;11157:12;11123:63;:::i;:::-;11029:167;11288:4;11281:5;11277:16;11271:23;11307:63;11364:4;11359:3;11355:14;11341:12;11307:63;:::i;:::-;11206:174;11480:4;11473:5;11469:16;11463:23;11499:63;11556:4;11551:3;11547:14;11533:12;11499:63;:::i;:::-;11390:182;11666:4;11659:5;11655:16;11649:23;11685:63;11742:4;11737:3;11733:14;11719:12;11685:63;:::i;:::-;11582:176;11851:4;11844:5;11840:16;11834:23;11870:63;11927:4;11922:3;11918:14;11904:12;11870:63;:::i;:::-;11768:175;12040:4;12033:5;12029:16;12023:23;12059:63;12116:4;12111:3;12107:14;12093:12;12059:63;:::i;:::-;11953:179;10806:1333;;;:::o;12145:108::-;12222:24;12240:5;12222:24;:::i;:::-;12217:3;12210:37;12200:53;;:::o;12259:118::-;12346:24;12364:5;12346:24;:::i;:::-;12341:3;12334:37;12324:53;;:::o;12383:222::-;;12514:2;12503:9;12499:18;12491:26;;12527:71;12595:1;12584:9;12580:17;12571:6;12527:71;:::i;:::-;12481:124;;;;:::o;12611:332::-;;12770:2;12759:9;12755:18;12747:26;;12783:71;12851:1;12840:9;12836:17;12827:6;12783:71;:::i;:::-;12864:72;12932:2;12921:9;12917:18;12908:6;12864:72;:::i;:::-;12737:206;;;;;:::o;12949:442::-;;13136:2;13125:9;13121:18;13113:26;;13149:71;13217:1;13206:9;13202:17;13193:6;13149:71;:::i;:::-;13230:72;13298:2;13287:9;13283:18;13274:6;13230:72;:::i;:::-;13312;13380:2;13369:9;13365:18;13356:6;13312:72;:::i;:::-;13103:288;;;;;;:::o;13397:373::-;;13578:2;13567:9;13563:18;13555:26;;13627:9;13621:4;13617:20;13613:1;13602:9;13598:17;13591:47;13655:108;13758:4;13749:6;13655:108;:::i;:::-;13647:116;;13545:225;;;;:::o;13776:509::-;;14025:2;14014:9;14010:18;14002:26;;14074:9;14068:4;14064:20;14060:1;14049:9;14045:17;14038:47;14102:176;14273:4;14264:6;14102:176;:::i;:::-;14094:184;;13992:293;;;;:::o;14291:274::-;;14448:2;14437:9;14433:18;14425:26;;14461:97;14555:1;14544:9;14540:17;14531:6;14461:97;:::i;:::-;14415:150;;;;:::o;14571:272::-;;14727:2;14716:9;14712:18;14704:26;;14740:96;14833:1;14822:9;14818:17;14809:6;14740:96;:::i;:::-;14694:149;;;;:::o;14849:250::-;;14994:2;14983:9;14979:18;14971:26;;15007:85;15089:1;15078:9;15074:17;15065:6;15007:85;:::i;:::-;14961:138;;;;:::o;15105:385::-;;15292:2;15281:9;15277:18;15269:26;;15341:9;15335:4;15331:20;15327:1;15316:9;15312:17;15305:47;15369:114;15478:4;15469:6;15369:114;:::i;:::-;15361:122;;15259:231;;;;:::o;15496:359::-;;15695:3;15684:9;15680:19;15672:27;;15709:139;15845:1;15834:9;15830:17;15821:6;15709:139;:::i;:::-;15662:193;;;;:::o;15861:222::-;;15992:2;15981:9;15977:18;15969:26;;16005:71;16073:1;16062:9;16058:17;16049:6;16005:71;:::i;:::-;15959:124;;;;:::o;16089:129::-;;16150:20;;:::i;:::-;16140:30;;16179:33;16207:4;16199:6;16179:33;:::i;:::-;16130:88;;;:::o;16224:75::-;;16290:2;16284:9;16274:19;;16264:35;:::o;16305:311::-;;16472:18;16464:6;16461:30;16458:2;;;16494:18;;:::i;:::-;16458:2;16544:4;16536:6;16532:17;16524:25;;16604:4;16598;16594:15;16586:23;;16387:229;;;:::o;16622:132::-;;16712:3;16704:11;;16742:4;16737:3;16733:14;16725:22;;16694:60;;;:::o;16760:166::-;;16884:3;16876:11;;16914:4;16909:3;16905:14;16897:22;;16866:60;;;:::o;16932:114::-;;17033:5;17027:12;17017:22;;17006:40;;;:::o;17052:148::-;;17187:5;17181:12;17171:22;;17160:40;;;:::o;17206:99::-;;17292:5;17286:12;17276:22;;17265:40;;;:::o;17311:113::-;;17413:4;17408:3;17404:14;17396:22;;17386:38;;;:::o;17430:147::-;;17566:4;17561:3;17557:14;17549:22;;17539:38;;;:::o;17583:184::-;;17716:6;17711:3;17704:19;17756:4;17751:3;17747:14;17732:29;;17694:73;;;;:::o;17773:218::-;;17940:6;17935:3;17928:19;17980:4;17975:3;17971:14;17956:29;;17918:73;;;;:::o;17997:159::-;;18105:6;18100:3;18093:19;18145:4;18140:3;18136:14;18121:29;;18083:73;;;;:::o;18162:305::-;;18221:20;18239:1;18221:20;:::i;:::-;18216:25;;18255:20;18273:1;18255:20;:::i;:::-;18250:25;;18409:1;18341:66;18337:74;18334:1;18331:81;18328:2;;;18415:18;;:::i;:::-;18328:2;18459:1;18456;18452:9;18445:16;;18206:261;;;;:::o;18473:191::-;;18533:20;18551:1;18533:20;:::i;:::-;18528:25;;18567:20;18585:1;18567:20;:::i;:::-;18562:25;;18606:1;18603;18600:8;18597:2;;;18611:18;;:::i;:::-;18597:2;18656:1;18653;18649:9;18641:17;;18518:146;;;;:::o;18670:96::-;;18736:24;18754:5;18736:24;:::i;:::-;18725:35;;18715:51;;;:::o;18772:90::-;;18849:5;18842:13;18835:21;18824:32;;18814:48;;;:::o;18868:126::-;;18945:42;18938:5;18934:54;18923:65;;18913:81;;;:::o;19000:77::-;;19066:5;19055:16;;19045:32;;;:::o;19083:178::-;;19192:63;19249:5;19192:63;:::i;:::-;19179:76;;19169:92;;;:::o;19267:139::-;;19376:24;19394:5;19376:24;:::i;:::-;19363:37;;19353:53;;;:::o;19412:176::-;;19520:62;19576:5;19520:62;:::i;:::-;19507:75;;19497:91;;;:::o;19594:138::-;;19702:24;19720:5;19702:24;:::i;:::-;19689:37;;19679:53;;;:::o;19738:154::-;;19835:51;19880:5;19835:51;:::i;:::-;19822:64;;19812:80;;;:::o;19898:127::-;;19995:24;20013:5;19995:24;:::i;:::-;19982:37;;19972:53;;;:::o;20031:307::-;20099:1;20109:113;20123:6;20120:1;20117:13;20109:113;;;20208:1;20203:3;20199:11;20193:18;20189:1;20184:3;20180:11;20173:39;20145:2;20142:1;20138:10;20133:15;;20109:113;;;20240:6;20237:1;20234:13;20231:2;;;20320:1;20311:6;20306:3;20302:16;20295:27;20231:2;20080:258;;;;:::o;20344:281::-;20427:27;20449:4;20427:27;:::i;:::-;20419:6;20415:40;20557:6;20545:10;20542:22;20521:18;20509:10;20506:34;20503:62;20500:2;;;20568:18;;:::i;:::-;20500:2;20608:10;20604:2;20597:22;20387:238;;;:::o;20631:233::-;;20693:24;20711:5;20693:24;:::i;:::-;20684:33;;20739:66;20732:5;20729:77;20726:2;;;20809:18;;:::i;:::-;20726:2;20856:1;20849:5;20845:13;20838:20;;20674:190;;;:::o;20870:180::-;20918:77;20915:1;20908:88;21015:4;21012:1;21005:15;21039:4;21036:1;21029:15;21056:180;21104:77;21101:1;21094:88;21201:4;21198:1;21191:15;21225:4;21222:1;21215:15;21242:102;;21334:2;21330:7;21325:2;21318:5;21314:14;21310:28;21300:38;;21290:54;;;:::o;21350:122::-;21423:24;21441:5;21423:24;:::i;:::-;21416:5;21413:35;21403:2;;21462:1;21459;21452:12;21403:2;21393:79;:::o;21478:116::-;21548:21;21563:5;21548:21;:::i;:::-;21541:5;21538:32;21528:2;;21584:1;21581;21574:12;21528:2;21518:76;:::o;21600:122::-;21673:24;21691:5;21673:24;:::i;:::-;21666:5;21663:35;21653:2;;21712:1;21709;21702:12;21653:2;21643:79;:::o

Swarm Source

ipfs://59b26a8de33ffbfd3ebd05777b86ba7b5c40d38d5babc44b478772eb5586cb15

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

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.