ETH Price: $2,317.06 (-4.00%)

Contract

0xB082d9f4734c535D9d80536F7E87a6f4F471bF65

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Sponsored

Transaction Hash
Method
Block
From
To
Set Calculations334347432022-11-01 16:50:15684 days ago1667321415IN
0xB082d9f4...4F471bF65
0 ETH0.0000807000310.001
Add Token Alias292460142022-10-14 3:53:11703 days ago1665719591IN
0xB082d9f4...4F471bF65
0 ETH0.0000446745020.001
Set Calculations183691192022-08-08 20:37:10769 days ago1659991030IN
0xB082d9f4...4F471bF65
0 ETH0.0006079045180.001
Set Calculations182187952022-08-07 21:22:03770 days ago1659907323IN
0xB082d9f4...4F471bF65
0 ETH0.0000252510540.001
0x60806040181092912022-08-06 22:06:01771 days ago1659823561IN
 Create: Oracle
0 ETH0.0004495400640.001

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Oracle

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at optimistic.etherscan.io on 2022-08-06
*/

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.2;

interface ManagementList {
    function isManager(address accountAddress) external returns (bool);
}

contract Manageable {
    ManagementList public managementList;

    constructor(address _managementListAddress) {
        managementList = ManagementList(_managementListAddress);
    }

    modifier onlyManagers() {
        bool isManager = managementList.isManager(msg.sender);
        require(isManager, "ManagementList: caller is not a manager");
        _;
    }
}

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

contract Oracle is Manageable {
    address[] private _calculations;
    address public usdcAddress;
    mapping(address => address) public tokenAliases;

    event TokenAliasAdded(address tokenAddress, address tokenAliasAddress);
    event TokenAliasRemoved(address tokenAddress);

    struct TokenAlias {
        address tokenAddress;
        address tokenAliasAddress;
    }

    constructor(address _managementListAddress, address _usdcAddress)
        Manageable(_managementListAddress)
    {
        usdcAddress = _usdcAddress;
    }

    /**
     * The oracle supports an array of calculation contracts. Each calculation contract must implement getPriceUsdc().
     * When setting calculation contracts all calculations must be set at the same time (we intentionally do not support for adding/removing calculations).
     * The order of calculation contracts matters as it determines the order preference in the cascading fallback mechanism.
     */
    function setCalculations(address[] memory calculationAddresses)
        external
        onlyManagers
    {
        _calculations = calculationAddresses;
    }

    function calculations() external view returns (address[] memory) {
        return (_calculations);
    }

    function addTokenAlias(address tokenAddress, address tokenAliasAddress)
        public
        onlyManagers
    {
        tokenAliases[tokenAddress] = tokenAliasAddress;
        emit TokenAliasAdded(tokenAddress, tokenAliasAddress);
    }

    function addTokenAliases(TokenAlias[] memory _tokenAliases)
        public
        onlyManagers
    {
        for (uint256 i = 0; i < _tokenAliases.length; i++) {
            addTokenAlias(
                _tokenAliases[i].tokenAddress,
                _tokenAliases[i].tokenAliasAddress
            );
        }
    }

    function removeTokenAlias(address tokenAddress) public onlyManagers {
        delete tokenAliases[tokenAddress];
        emit TokenAliasRemoved(tokenAddress);
    }

    function getNormalizedValueUsdc(
        address tokenAddress,
        uint256 amount,
        uint256 priceUsdc
    ) public view returns (uint256) {
        IERC20 token = IERC20(tokenAddress);
        uint256 tokenDecimals = token.decimals();

        uint256 usdcDecimals = 6;
        uint256 decimalsAdjustment;
        if (tokenDecimals >= usdcDecimals) {
            decimalsAdjustment = tokenDecimals - usdcDecimals;
        } else {
            decimalsAdjustment = usdcDecimals - tokenDecimals;
        }
        uint256 value;
        if (decimalsAdjustment > 0) {
            value =
                (amount * priceUsdc * (10**decimalsAdjustment)) /
                10**(decimalsAdjustment + tokenDecimals);
        } else {
            value = (amount * priceUsdc) / 10**usdcDecimals;
        }
        return value;
    }

    function getNormalizedValueUsdc(address tokenAddress, uint256 amount)
        external
        view
        returns (uint256)
    {
        uint256 priceUsdc = getPriceUsdcRecommended(tokenAddress);
        return getNormalizedValueUsdc(tokenAddress, amount, priceUsdc);
    }

    function getPriceUsdcRecommended(address tokenAddress)
        public
        view
        returns (uint256)
    {
        address tokenAddressAlias = tokenAliases[tokenAddress];
        address tokenToQuery = tokenAddress;
        if (tokenAddressAlias != address(0)) {
            tokenToQuery = tokenAddressAlias;
        }
        (bool success, bytes memory data) =
            address(this).staticcall(
                abi.encodeWithSignature("getPriceUsdc(address)", tokenToQuery)
            );
        if (success) {
            return abi.decode(data, (uint256));
        }
        return 0;
    }

    /**
     * Cascading fallback proxy
     *
     * Loop through all contracts in _calculations and attempt to forward the method call to each underlying contract.
     * This allows users to call getPriceUsdc() on the oracle contract and the result of the first non-reverting contract that
     * implements getPriceUsdc() will be returned.
     *
     * This mechanism also exposes all public methods for calculation contracts. This allows a user to
     * call oracle.isIronBankMarket() or oracle.isCurveLpToken() even though these methods live on different contracts.
     */
    fallback() external {
        for (uint256 i = 0; i < _calculations.length; i++) {
            address calculation = _calculations[i];
            assembly {
                let _target := calculation
                calldatacopy(0, 0, calldatasize())
                let success := staticcall(
                    gas(),
                    _target,
                    0,
                    calldatasize(),
                    0,
                    0
                )
                returndatacopy(0, 0, returndatasize())
                if success {
                    return(0, returndatasize())
                }
            }
        }
        revert("Oracle: Fallback proxy failed to return data");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_managementListAddress","type":"address"},{"internalType":"address","name":"_usdcAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"address","name":"tokenAliasAddress","type":"address"}],"name":"TokenAliasAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"}],"name":"TokenAliasRemoved","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"tokenAliasAddress","type":"address"}],"name":"addTokenAlias","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"tokenAliasAddress","type":"address"}],"internalType":"struct Oracle.TokenAlias[]","name":"_tokenAliases","type":"tuple[]"}],"name":"addTokenAliases","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"calculations","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getNormalizedValueUsdc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"priceUsdc","type":"uint256"}],"name":"getNormalizedValueUsdc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"getPriceUsdcRecommended","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"managementList","outputs":[{"internalType":"contract ManagementList","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"removeTokenAlias","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"calculationAddresses","type":"address[]"}],"name":"setCalculations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenAliases","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usdcAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50604051610fd9380380610fd983398101604081905261002f9161007c565b600080546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ae565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008e578182fd5b61009783610060565b91506100a560208401610060565b90509250929050565b610f1c806100bd6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806358443a3b1161007157806358443a3b1461022c5780636a4cb36c1461023f57806388dea52a146102525780638a7f668014610265578063d02d20aa14610278578063f3ae30771461028b576100a9565b806302d4545714610188578063255aacf1146101b85780633d71473b146101cd57806341394ced146101e2578063482ba3061461020b575b60005b600154811015610125576000600182815481106100d957634e487b7160e01b600052603260045260246000fd5b60009182526020822001546001600160a01b03169150819036908037600080366000845afa90503d6000803e8015610110573d6000f35b5050808061011d90610e9f565b9150506100ac565b5060405162461bcd60e51b815260206004820152602c60248201527f4f7261636c653a2046616c6c6261636b2070726f7879206661696c656420746f60448201526b2072657475726e206461746160a01b60648201526084015b60405180910390fd5b60025461019b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101cb6101c6366004610a41565b61029e565b005b6101d5610353565b6040516101af9190610c34565b61019b6101f036600461099a565b6003602052600090815260409020546001600160a01b031681565b61021e61021936600461099a565b6103b5565b6040519081526020016101af565b60005461019b906001600160a01b031681565b6101cb61024d3660046109b4565b6104a5565b6101cb610260366004610add565b6105ae565b61021e6102733660046109e6565b6106c9565b61021e610286366004610a0f565b6106ea565b6101cb61029936600461099a565b61080e565b6000805460405163f3ae241560e01b81523360048201526001600160a01b039091169063f3ae241590602401602060405180830381600087803b1580156102e457600080fd5b505af11580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190610ba2565b90508061033b5760405162461bcd60e51b815260040161017f90610c81565b815161034e906001906020850190610909565b505050565b606060018054806020026020016040519081016040528092919081815260200182805480156103ab57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161038d575b5050505050905090565b6001600160a01b038082166000908152600360205260408120549091168281156103dc5750805b6040516001600160a01b03821660248201526000908190309060440160408051601f198184030181529181526020820180516001600160e01b031663d61a784760e01b1790525161042d9190610bfb565b600060405180830381855afa9150503d8060008114610468576040519150601f19603f3d011682016040523d82523d6000602084013e61046d565b606091505b50915091508115610497578080602001905181019061048c9190610bc2565b9450505050506104a0565b60009450505050505b919050565b6000805460405163f3ae241560e01b81523360048201526001600160a01b039091169063f3ae241590602401602060405180830381600087803b1580156104eb57600080fd5b505af11580156104ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105239190610ba2565b9050806105425760405162461bcd60e51b815260040161017f90610c81565b6001600160a01b0383811660008181526003602090815260409182902080546001600160a01b031916948716948517905581519283528201929092527fa98e06f16867476bbb2764587292fb84dbd09b5502001113bc12b8359cb954f1910160405180910390a1505050565b6000805460405163f3ae241560e01b81523360048201526001600160a01b039091169063f3ae241590602401602060405180830381600087803b1580156105f457600080fd5b505af1158015610608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062c9190610ba2565b90508061064b5760405162461bcd60e51b815260040161017f90610c81565b60005b825181101561034e576106b783828151811061067a57634e487b7160e01b600052603260045260246000fd5b6020026020010151600001518483815181106106a657634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516104a5565b806106c181610e9f565b91505061064e565b6000806106d5846103b5565b90506106e28484836106ea565b949350505050565b6000808490506000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561072b57600080fd5b505afa15801561073f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107639190610bda565b60ff169050600660008183106107845761077d8284610e88565b9050610791565b61078e8383610e88565b90505b600081156107de576107a38483610d1d565b6107ae90600a610d9b565b6107b983600a610d9b565b6107c3898b610e69565b6107cd9190610e69565b6107d79190610d35565b9050610800565b6107e983600a610d9b565b6107f3888a610e69565b6107fd9190610d35565b90505b9450505050505b9392505050565b6000805460405163f3ae241560e01b81523360048201526001600160a01b039091169063f3ae241590602401602060405180830381600087803b15801561085457600080fd5b505af1158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088c9190610ba2565b9050806108ab5760405162461bcd60e51b815260040161017f90610c81565b6001600160a01b03821660008181526003602090815260409182902080546001600160a01b031916905590519182527f1262aa3d0f0c652f1a55888d946c631f1a234f587d9e3e9f8ee39974b628fe7f910160405180910390a15050565b82805482825590600052602060002090810192821561095e579160200282015b8281111561095e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610929565b5061096a92915061096e565b5090565b5b8082111561096a576000815560010161096f565b80356001600160a01b03811681146104a057600080fd5b6000602082840312156109ab578081fd5b61080782610983565b600080604083850312156109c6578081fd5b6109cf83610983565b91506109dd60208401610983565b90509250929050565b600080604083850312156109f8578182fd5b610a0183610983565b946020939093013593505050565b600080600060608486031215610a23578081fd5b610a2c84610983565b95602085013595506040909401359392505050565b60006020808385031215610a53578182fd5b823567ffffffffffffffff811115610a69578283fd5b8301601f81018513610a79578283fd5b8035610a8c610a8782610cf9565b610cc8565b8181528381019083850185840285018601891015610aa8578687fd5b8694505b83851015610ad157610abd81610983565b835260019490940193918501918501610aac565b50979650505050505050565b60006020808385031215610aef578182fd5b823567ffffffffffffffff811115610b05578283fd5b8301601f81018513610b15578283fd5b8035610b23610a8782610cf9565b818152838101908385016040808502860187018a1015610b41578788fd5b8795505b84861015610b945780828b031215610b5b578788fd5b610b6481610cc8565b610b6d83610983565b8152610b7a888401610983565b818901528452600195909501949286019290810190610b45565b509098975050505050505050565b600060208284031215610bb3578081fd5b81518015158114610807578182fd5b600060208284031215610bd3578081fd5b5051919050565b600060208284031215610beb578081fd5b815160ff81168114610807578182fd5b60008251815b81811015610c1b5760208186018101518583015201610c01565b81811115610c295782828501525b509190910192915050565b6020808252825182820181905260009190848201906040850190845b81811015610c755783516001600160a01b031683529284019291840191600101610c50565b50909695505050505050565b60208082526027908201527f4d616e6167656d656e744c6973743a2063616c6c6572206973206e6f7420612060408201526636b0b730b3b2b960c91b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610cf157610cf1610ed0565b604052919050565b600067ffffffffffffffff821115610d1357610d13610ed0565b5060209081020190565b60008219821115610d3057610d30610eba565b500190565b600082610d5057634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611610d675750610d92565b818704821115610d7957610d79610eba565b80861615610d8657918102915b9490941c938002610d58565b94509492505050565b60006108076000198484600082610db457506001610807565b81610dc157506000610807565b8160018114610dd75760028114610de157610e0e565b6001915050610807565b60ff841115610df257610df2610eba565b6001841b915084821115610e0857610e08610eba565b50610807565b5060208310610133831016604e8410600b8410161715610e41575081810a83811115610e3c57610e3c610eba565b610807565b610e4e8484846001610d55565b808604821115610e6057610e60610eba565b02949350505050565b6000816000190483118215151615610e8357610e83610eba565b500290565b600082821015610e9a57610e9a610eba565b500390565b6000600019821415610eb357610eb3610eba565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220d3eff517ea05bcbfc1b0f165b919965a9871008920f722510f534c328b9e115f64736f6c634300080200330000000000000000000000007e9756e1427b3c38f001f9d272d8d62bef63d6190000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c31607

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806358443a3b1161007157806358443a3b1461022c5780636a4cb36c1461023f57806388dea52a146102525780638a7f668014610265578063d02d20aa14610278578063f3ae30771461028b576100a9565b806302d4545714610188578063255aacf1146101b85780633d71473b146101cd57806341394ced146101e2578063482ba3061461020b575b60005b600154811015610125576000600182815481106100d957634e487b7160e01b600052603260045260246000fd5b60009182526020822001546001600160a01b03169150819036908037600080366000845afa90503d6000803e8015610110573d6000f35b5050808061011d90610e9f565b9150506100ac565b5060405162461bcd60e51b815260206004820152602c60248201527f4f7261636c653a2046616c6c6261636b2070726f7879206661696c656420746f60448201526b2072657475726e206461746160a01b60648201526084015b60405180910390fd5b60025461019b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101cb6101c6366004610a41565b61029e565b005b6101d5610353565b6040516101af9190610c34565b61019b6101f036600461099a565b6003602052600090815260409020546001600160a01b031681565b61021e61021936600461099a565b6103b5565b6040519081526020016101af565b60005461019b906001600160a01b031681565b6101cb61024d3660046109b4565b6104a5565b6101cb610260366004610add565b6105ae565b61021e6102733660046109e6565b6106c9565b61021e610286366004610a0f565b6106ea565b6101cb61029936600461099a565b61080e565b6000805460405163f3ae241560e01b81523360048201526001600160a01b039091169063f3ae241590602401602060405180830381600087803b1580156102e457600080fd5b505af11580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190610ba2565b90508061033b5760405162461bcd60e51b815260040161017f90610c81565b815161034e906001906020850190610909565b505050565b606060018054806020026020016040519081016040528092919081815260200182805480156103ab57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161038d575b5050505050905090565b6001600160a01b038082166000908152600360205260408120549091168281156103dc5750805b6040516001600160a01b03821660248201526000908190309060440160408051601f198184030181529181526020820180516001600160e01b031663d61a784760e01b1790525161042d9190610bfb565b600060405180830381855afa9150503d8060008114610468576040519150601f19603f3d011682016040523d82523d6000602084013e61046d565b606091505b50915091508115610497578080602001905181019061048c9190610bc2565b9450505050506104a0565b60009450505050505b919050565b6000805460405163f3ae241560e01b81523360048201526001600160a01b039091169063f3ae241590602401602060405180830381600087803b1580156104eb57600080fd5b505af11580156104ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105239190610ba2565b9050806105425760405162461bcd60e51b815260040161017f90610c81565b6001600160a01b0383811660008181526003602090815260409182902080546001600160a01b031916948716948517905581519283528201929092527fa98e06f16867476bbb2764587292fb84dbd09b5502001113bc12b8359cb954f1910160405180910390a1505050565b6000805460405163f3ae241560e01b81523360048201526001600160a01b039091169063f3ae241590602401602060405180830381600087803b1580156105f457600080fd5b505af1158015610608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062c9190610ba2565b90508061064b5760405162461bcd60e51b815260040161017f90610c81565b60005b825181101561034e576106b783828151811061067a57634e487b7160e01b600052603260045260246000fd5b6020026020010151600001518483815181106106a657634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516104a5565b806106c181610e9f565b91505061064e565b6000806106d5846103b5565b90506106e28484836106ea565b949350505050565b6000808490506000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561072b57600080fd5b505afa15801561073f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107639190610bda565b60ff169050600660008183106107845761077d8284610e88565b9050610791565b61078e8383610e88565b90505b600081156107de576107a38483610d1d565b6107ae90600a610d9b565b6107b983600a610d9b565b6107c3898b610e69565b6107cd9190610e69565b6107d79190610d35565b9050610800565b6107e983600a610d9b565b6107f3888a610e69565b6107fd9190610d35565b90505b9450505050505b9392505050565b6000805460405163f3ae241560e01b81523360048201526001600160a01b039091169063f3ae241590602401602060405180830381600087803b15801561085457600080fd5b505af1158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088c9190610ba2565b9050806108ab5760405162461bcd60e51b815260040161017f90610c81565b6001600160a01b03821660008181526003602090815260409182902080546001600160a01b031916905590519182527f1262aa3d0f0c652f1a55888d946c631f1a234f587d9e3e9f8ee39974b628fe7f910160405180910390a15050565b82805482825590600052602060002090810192821561095e579160200282015b8281111561095e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610929565b5061096a92915061096e565b5090565b5b8082111561096a576000815560010161096f565b80356001600160a01b03811681146104a057600080fd5b6000602082840312156109ab578081fd5b61080782610983565b600080604083850312156109c6578081fd5b6109cf83610983565b91506109dd60208401610983565b90509250929050565b600080604083850312156109f8578182fd5b610a0183610983565b946020939093013593505050565b600080600060608486031215610a23578081fd5b610a2c84610983565b95602085013595506040909401359392505050565b60006020808385031215610a53578182fd5b823567ffffffffffffffff811115610a69578283fd5b8301601f81018513610a79578283fd5b8035610a8c610a8782610cf9565b610cc8565b8181528381019083850185840285018601891015610aa8578687fd5b8694505b83851015610ad157610abd81610983565b835260019490940193918501918501610aac565b50979650505050505050565b60006020808385031215610aef578182fd5b823567ffffffffffffffff811115610b05578283fd5b8301601f81018513610b15578283fd5b8035610b23610a8782610cf9565b818152838101908385016040808502860187018a1015610b41578788fd5b8795505b84861015610b945780828b031215610b5b578788fd5b610b6481610cc8565b610b6d83610983565b8152610b7a888401610983565b818901528452600195909501949286019290810190610b45565b509098975050505050505050565b600060208284031215610bb3578081fd5b81518015158114610807578182fd5b600060208284031215610bd3578081fd5b5051919050565b600060208284031215610beb578081fd5b815160ff81168114610807578182fd5b60008251815b81811015610c1b5760208186018101518583015201610c01565b81811115610c295782828501525b509190910192915050565b6020808252825182820181905260009190848201906040850190845b81811015610c755783516001600160a01b031683529284019291840191600101610c50565b50909695505050505050565b60208082526027908201527f4d616e6167656d656e744c6973743a2063616c6c6572206973206e6f7420612060408201526636b0b730b3b2b960c91b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610cf157610cf1610ed0565b604052919050565b600067ffffffffffffffff821115610d1357610d13610ed0565b5060209081020190565b60008219821115610d3057610d30610eba565b500190565b600082610d5057634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611610d675750610d92565b818704821115610d7957610d79610eba565b80861615610d8657918102915b9490941c938002610d58565b94509492505050565b60006108076000198484600082610db457506001610807565b81610dc157506000610807565b8160018114610dd75760028114610de157610e0e565b6001915050610807565b60ff841115610df257610df2610eba565b6001841b915084821115610e0857610e08610eba565b50610807565b5060208310610133831016604e8410600b8410161715610e41575081810a83811115610e3c57610e3c610eba565b610807565b610e4e8484846001610d55565b808604821115610e6057610e60610eba565b02949350505050565b6000816000190483118215151615610e8357610e83610eba565b500290565b600082821015610e9a57610e9a610eba565b500390565b6000600019821415610eb357610eb3610eba565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220d3eff517ea05bcbfc1b0f165b919965a9871008920f722510f534c328b9e115f64736f6c63430008020033

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

0000000000000000000000007e9756e1427b3c38f001f9d272d8d62bef63d6190000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c31607

-----Decoded View---------------
Arg [0] : _managementListAddress (address): 0x7E9756E1427B3c38F001F9D272D8d62BEF63D619
Arg [1] : _usdcAddress (address): 0x7F5c764cBc14f9669B88837ca1490cCa17c31607

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007e9756e1427b3c38f001f9d272d8d62bef63d619
Arg [1] : 0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c31607


Deployed Bytecode Sourcemap

645:5157:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5098:9;5093:634;5117:13;:20;5113:24;;5093:634;;;5159:19;5181:13;5195:1;5181:16;;;;;;-1:-1:-1;;;5181:16:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5181:16:0;;-1:-1:-1;5181:16:0;;5303:14;;5181:16;5284:34;5527:1;5503;5466:14;5442:1;5412:7;5384:5;5351:196;5336:211;;5586:16;5583:1;5580;5565:38;5624:7;5621:2;;;5665:16;5662:1;5655:27;5621:2;;5221:495;5139:3;;;;;:::i;:::-;;;;5093:634;;;-1:-1:-1;5737:54:0;;-1:-1:-1;;;5737:54:0;;6304:2:1;5737:54:0;;;6286:21:1;6343:2;6323:18;;;6316:30;6382:34;6362:18;;;6355:62;-1:-1:-1;;;6433:18:1;;;6426:42;6485:19;;5737:54:0;;;;;;;;720:26;;;;;-1:-1:-1;;;;;720:26:0;;;;;;-1:-1:-1;;;;;4855:32:1;;;4837:51;;4825:2;4810:18;720:26:0;;;;;;;;1630:164;;;;;;:::i;:::-;;:::i;:::-;;1802:106;;;:::i;:::-;;;;;;;:::i;753:47::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;753:47:0;;;3837:625;;;;;;:::i;:::-;;:::i;:::-;;;7069:25:1;;;7057:2;7042:18;3837:625:0;7024:76:1;206:36:0;;;;;-1:-1:-1;;;;;206:36:0;;;1916:244;;;;;;:::i;:::-;;:::i;2168:328::-;;;;;;:::i;:::-;;:::i;3546:283::-;;;;;;:::i;:::-;;:::i;2679:859::-;;;;;;:::i;:::-;;:::i;2504:167::-;;;;;;:::i;:::-;;:::i;1630:164::-;412:14;429;;:36;;-1:-1:-1;;;429:36:0;;454:10;429:36;;;4837:51:1;-1:-1:-1;;;;;429:14:0;;;;:24;;4810:18:1;;429:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;412:53;;484:9;476:61;;;;-1:-1:-1;;;476:61:0;;;;;;;:::i;:::-;1750:36;;::::1;::::0;:13:::1;::::0;:36:::1;::::0;::::1;::::0;::::1;:::i;:::-;;1630:164:::0;;:::o;1802:106::-;1849:16;1886:13;1878:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1878:22:0;;;;;;;;;;;;;;;;;;;;;;;1802:106;:::o;3837:625::-;-1:-1:-1;;;;;3993:26:0;;;3940:7;3993:26;;;:12;:26;;;;;;3940:7;;3993:26;4006:12;4080:31;;4076:96;;-1:-1:-1;4143:17:0;4076:96;4274:62;;-1:-1:-1;;;;;4855:32:1;;4274:62:0;;;4837:51:1;4183:12:0;;;;4239:4;;4810:18:1;;4274:62:0;;;-1:-1:-1;;4274:62:0;;;;;;;;;;;;;;-1:-1:-1;;;;;4274:62:0;-1:-1:-1;;;4274:62:0;;;4231:120;;;4274:62;4231:120;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4182:169;;;;4366:7;4362:74;;;4408:4;4397:27;;;;;;;;;;;;:::i;:::-;4390:34;;;;;;;;4362:74;4453:1;4446:8;;;;;;3837:625;;;;:::o;1916:244::-;412:14;429;;:36;;-1:-1:-1;;;429:36:0;;454:10;429:36;;;4837:51:1;-1:-1:-1;;;;;429:14:0;;;;:24;;4810:18:1;;429:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;412:53;;484:9;476:61;;;;-1:-1:-1;;;476:61:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2042:26:0;;::::1;;::::0;;;:12:::1;:26;::::0;;;;;;;;:46;;-1:-1:-1;;;;;;2042:46:0::1;::::0;;::::1;::::0;;::::1;::::0;;2104:48;;5111:34:1;;;5161:18;;5154:43;;;;2104:48:0::1;::::0;5046:18:1;2104:48:0::1;;;;;;;1916:244:::0;;;:::o;2168:328::-;412:14;429;;:36;;-1:-1:-1;;;429:36:0;;454:10;429:36;;;4837:51:1;-1:-1:-1;;;;;429:14:0;;;;:24;;4810:18:1;;429:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;412:53;;484:9;476:61;;;;-1:-1:-1;;;476:61:0;;;;;;;:::i;:::-;2287:9:::1;2282:207;2306:13;:20;2302:1;:24;2282:207;;;2348:129;2380:13;2394:1;2380:16;;;;;;-1:-1:-1::0;;;2380:16:0::1;;;;;;;;;;;;;;;:29;;;2428:13;2442:1;2428:16;;;;;;-1:-1:-1::0;;;2428:16:0::1;;;;;;;;;;;;;;;:34;;;2348:13;:129::i;:::-;2328:3:::0;::::1;::::0;::::1;:::i;:::-;;;;2282:207;;3546:283:::0;3666:7;3691:17;3711:37;3735:12;3711:23;:37::i;:::-;3691:57;;3766:55;3789:12;3803:6;3811:9;3766:22;:55::i;:::-;3759:62;3546:283;-1:-1:-1;;;;3546:283:0:o;2679:859::-;2823:7;2843:12;2865;2843:35;;2889:21;2913:5;-1:-1:-1;;;;;2913:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2889:40;;;-1:-1:-1;2965:1:0;2942:20;3018:29;;;3014:193;;3085:28;3101:12;3085:13;:28;:::i;:::-;3064:49;;3014:193;;;3167:28;3182:13;3167:12;:28;:::i;:::-;3146:49;;3014:193;3217:13;3245:22;;3241:267;;3381:34;3402:13;3381:18;:34;:::i;:::-;3376:40;;:2;:40;:::i;:::-;3332:22;3336:18;3332:2;:22;:::i;:::-;3310:18;3319:9;3310:6;:18;:::i;:::-;:45;;;;:::i;:::-;3309:107;;;;:::i;:::-;3284:132;;3241:267;;;3480:16;3484:12;3480:2;:16;:::i;:::-;3458:18;3467:9;3458:6;:18;:::i;:::-;3457:39;;;;:::i;:::-;3449:47;;3241:267;3525:5;-1:-1:-1;;;;;2679:859:0;;;;;;:::o;2504:167::-;412:14;429;;:36;;-1:-1:-1;;;429:36:0;;454:10;429:36;;;4837:51:1;-1:-1:-1;;;;;429:14:0;;;;:24;;4810:18:1;;429:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;412:53;;484:9;476:61;;;;-1:-1:-1;;;476:61:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2590:26:0;::::1;;::::0;;;:12:::1;:26;::::0;;;;;;;;2583:33;;-1:-1:-1;;;;;;2583:33:0::1;::::0;;2632:31;;4837:51:1;;;2632:31:0::1;::::0;4810:18:1;2632:31:0::1;;;;;;;2504:167:::0;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:264::-;;;797:2;785:9;776:7;772:23;768:32;765:2;;;818:6;810;803:22;765:2;846:29;865:9;846:29;:::i;:::-;836:39;922:2;907:18;;;;894:32;;-1:-1:-1;;;755:177:1:o;937:332::-;;;;1083:2;1071:9;1062:7;1058:23;1054:32;1051:2;;;1104:6;1096;1089:22;1051:2;1132:29;1151:9;1132:29;:::i;:::-;1122:39;1208:2;1193:18;;1180:32;;-1:-1:-1;1259:2:1;1244:18;;;1231:32;;1041:228;-1:-1:-1;;;1041:228:1:o;1274:954::-;;1389:2;1432;1420:9;1411:7;1407:23;1403:32;1400:2;;;1453:6;1445;1438:22;1400:2;1498:9;1485:23;1531:18;1523:6;1520:30;1517:2;;;1568:6;1560;1553:22;1517:2;1596:22;;1649:4;1641:13;;1637:27;-1:-1:-1;1627:2:1;;1683:6;1675;1668:22;1627:2;1724;1711:16;1747:60;1763:43;1803:2;1763:43;:::i;:::-;1747:60;:::i;:::-;1841:15;;;1872:12;;;;1904:11;;;1942;;;1934:20;;1930:29;;1927:42;-1:-1:-1;1924:2:1;;;1987:6;1979;1972:22;1924:2;2014:6;2005:15;;2029:169;2043:2;2040:1;2037:9;2029:169;;;2100:23;2119:3;2100:23;:::i;:::-;2088:36;;2061:1;2054:9;;;;;2144:12;;;;2176;;2029:169;;;-1:-1:-1;2217:5:1;1369:859;-1:-1:-1;;;;;;;1369:859:1:o;2233:1219::-;;2374:2;2417;2405:9;2396:7;2392:23;2388:32;2385:2;;;2438:6;2430;2423:22;2385:2;2483:9;2470:23;2516:18;2508:6;2505:30;2502:2;;;2553:6;2545;2538:22;2502:2;2581:22;;2634:4;2626:13;;2622:27;-1:-1:-1;2612:2:1;;2668:6;2660;2653:22;2612:2;2709;2696:16;2732:60;2748:43;2788:2;2748:43;:::i;2732:60::-;2826:15;;;2857:12;;;;2889:11;;;2919:4;2950:11;;;2942:20;;2938:29;;2935:42;-1:-1:-1;2932:2:1;;;2995:6;2987;2980:22;2932:2;3022:6;3013:15;;3037:385;3051:2;3048:1;3045:9;3037:385;;;3122:2;3116:3;3107:7;3103:17;3099:26;3096:2;;;3143:6;3135;3128:22;3096:2;3178:19;3194:2;3178:19;:::i;:::-;3224:23;3243:3;3224:23;:::i;:::-;3217:5;3210:38;3284:32;3312:2;3307:3;3303:12;3284:32;:::i;:::-;3268:14;;;3261:56;3330:18;;3069:1;3062:9;;;;;3368:12;;;;3400;;;;3037:385;;;-1:-1:-1;3441:5:1;;2354:1098;-1:-1:-1;;;;;;;;2354:1098:1:o;3457:297::-;;3577:2;3565:9;3556:7;3552:23;3548:32;3545:2;;;3598:6;3590;3583:22;3545:2;3635:9;3629:16;3688:5;3681:13;3674:21;3667:5;3664:32;3654:2;;3715:6;3707;3700:22;3759:194;;3882:2;3870:9;3861:7;3857:23;3853:32;3850:2;;;3903:6;3895;3888:22;3850:2;-1:-1:-1;3931:16:1;;3840:113;-1:-1:-1;3840:113:1:o;3958:293::-;;4079:2;4067:9;4058:7;4054:23;4050:32;4047:2;;;4100:6;4092;4085:22;4047:2;4137:9;4131:16;4187:4;4180:5;4176:16;4169:5;4166:27;4156:2;;4212:6;4204;4197:22;4256:430;;4423:6;4417:13;4448:3;4460:129;4474:6;4471:1;4468:13;4460:129;;;4572:4;4556:14;;;4552:25;;4546:32;4533:11;;;4526:53;4489:12;4460:129;;;4607:6;4604:1;4601:13;4598:2;;;4642:3;4633:6;4628:3;4624:16;4617:29;4598:2;-1:-1:-1;4664:16:1;;;;;4393:293;-1:-1:-1;;4393:293:1:o;5208:661::-;5379:2;5431:21;;;5501:13;;5404:18;;;5523:22;;;5208:661;;5379:2;5602:15;;;;5576:2;5561:18;;;5208:661;5648:195;5662:6;5659:1;5656:13;5648:195;;;5727:13;;-1:-1:-1;;;;;5723:39:1;5711:52;;5818:15;;;;5783:12;;;;5759:1;5677:9;5648:195;;;-1:-1:-1;5860:3:1;;5359:510;-1:-1:-1;;;;;;5359:510:1:o;6515:403::-;6717:2;6699:21;;;6756:2;6736:18;;;6729:30;6795:34;6790:2;6775:18;;6768:62;-1:-1:-1;;;6861:2:1;6846:18;;6839:37;6908:3;6893:19;;6689:229::o;7105:275::-;7176:2;7170:9;7241:2;7222:13;;-1:-1:-1;;7218:27:1;7206:40;;7276:18;7261:34;;7297:22;;;7258:62;7255:2;;;7323:18;;:::i;:::-;7359:2;7352:22;7150:230;;-1:-1:-1;7150:230:1:o;7385:186::-;;7478:18;7470:6;7467:30;7464:2;;;7500:18;;:::i;:::-;-1:-1:-1;7560:4:1;7541:17;;;7537:28;;7454:117::o;7576:128::-;;7647:1;7643:6;7640:1;7637:13;7634:2;;;7653:18;;:::i;:::-;-1:-1:-1;7689:9:1;;7624:80::o;7709:217::-;;7775:1;7765:2;;-1:-1:-1;;;7800:31:1;;7854:4;7851:1;7844:15;7882:4;7807:1;7872:15;7765:2;-1:-1:-1;7911:9:1;;7755:171::o;7931:453::-;8027:6;8050:5;8064:314;8113:1;8150:2;8140:8;8137:16;8127:2;;8157:5;;;8127:2;8198:4;8193:3;8189:14;8183:4;8180:24;8177:2;;;8207:18;;:::i;:::-;8257:2;8247:8;8243:17;8240:2;;;8272:16;;;;8240:2;8351:17;;;;;8311:15;;8064:314;;;8008:376;;;;;;;:::o;8389:139::-;;8478:44;-1:-1:-1;;8505:8:1;8499:4;8533:922;8617:8;8607:2;;-1:-1:-1;8658:1:1;8672:5;;8607:2;8706:4;8696:2;;-1:-1:-1;8743:1:1;8757:5;;8696:2;8788:4;8806:1;8801:59;;;;8874:1;8869:183;;;;8781:271;;8801:59;8831:1;8822:10;;8845:5;;;8869:183;8906:3;8896:8;8893:17;8890:2;;;8913:18;;:::i;:::-;8969:1;8959:8;8955:16;8946:25;;8997:3;8990:5;8987:14;8984:2;;;9004:18;;:::i;:::-;9037:5;;;8781:271;;9136:2;9126:8;9123:16;9117:3;9111:4;9108:13;9104:36;9098:2;9088:8;9085:16;9080:2;9074:4;9071:12;9067:35;9064:77;9061:2;;;-1:-1:-1;9173:19:1;;;9208:14;;;9205:2;;;9225:18;;:::i;:::-;9258:5;;9061:2;9305:42;9343:3;9333:8;9327:4;9324:1;9305:42;:::i;:::-;9380:6;9375:3;9371:16;9362:7;9359:29;9356:2;;;9391:18;;:::i;:::-;9429:20;;8597:858;-1:-1:-1;;;;8597:858:1:o;9460:168::-;;9566:1;9562;9558:6;9554:14;9551:1;9548:21;9543:1;9536:9;9529:17;9525:45;9522:2;;;9573:18;;:::i;:::-;-1:-1:-1;9613:9:1;;9512:116::o;9633:125::-;;9701:1;9698;9695:8;9692:2;;;9706:18;;:::i;:::-;-1:-1:-1;9743:9:1;;9682:76::o;9763:135::-;;-1:-1:-1;;9823:17:1;;9820:2;;;9843:18;;:::i;:::-;-1:-1:-1;9890:1:1;9879:13;;9810:88::o;9903:127::-;9964:10;9959:3;9955:20;9952:1;9945:31;9995:4;9992:1;9985:15;10019:4;10016:1;10009:15;10035:127;10096:10;10091:3;10087:20;10084:1;10077:31;10127:4;10124:1;10117:15;10151:4;10148:1;10141:15

Swarm Source

ipfs://d3eff517ea05bcbfc1b0f165b919965a9871008920f722510f534c328b9e115f

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
[ 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.