Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x6020611c | 15688656 | 726 days ago | IN | 0 ETH | 0.00907304 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.3.4
Contract Source Code (Vyper language format)
# @version 0.3.4 """ @title Curve Meta Registry @license MIT """ # ---- interfaces ---- # interface AddressProvider: def admin() -> address: view # registry and registry handlers are considered to be the same here. # registry handlers are just wrapper contracts that simplify/fix underlying registries # for integrating it into the Metaregistry. interface RegistryHandler: def find_pool_for_coins(_from: address, _to: address, i: uint256 = 0) -> address: view def get_admin_balances(_pool: address) -> uint256[MAX_COINS]: view def get_balances(_pool: address) -> uint256[MAX_COINS]: view def get_base_pool(_pool: address) -> address: view def get_coins(_pool: address) -> address[MAX_COINS]: view def get_coin_indices(_pool: address, _from: address, _to: address) -> (int128, int128, bool): view def get_decimals(_pool: address) -> uint256[MAX_COINS]: view def get_fees(_pool: address) -> uint256[10]: view def get_gauges(_pool: address) -> (address[10], int128[10]): view def get_lp_token(_pool: address) -> address: view def get_n_coins(_pool: address) -> uint256: view def get_n_underlying_coins(_pool: address) -> uint256: view def get_pool_asset_type(_pool: address) -> uint256: view def get_pool_from_lp_token(_lp_token: address) -> address: view def get_pool_name(_pool: address) -> String[64]: view def get_pool_params(_pool: address) -> uint256[20]: view def get_underlying_balances(_pool: address) -> uint256[MAX_COINS]: view def get_underlying_coins(_pool: address) -> address[MAX_COINS]: view def get_underlying_decimals(_pool: address) -> uint256[MAX_COINS]: view def is_meta(_pool: address) -> bool: view def is_registered(_pool: address) -> bool: view def pool_count() -> uint256: view def pool_list(_index: uint256) -> address: view def get_virtual_price_from_lp_token(_addr: address) -> uint256: view # ---- events ---- # event CommitNewAdmin: deadline: indexed(uint256) admin: indexed(address) event NewAdmin: admin: indexed(address) # ---- constants ---- # MAX_REGISTRIES: constant(uint256) = 10 MAX_COINS: constant(uint256) = 8 MAX_POOL_PARAMS: constant(uint256) = 20 ADMIN_ACTIONS_DELAY: constant(uint256) = 3 * 86400 # ---- storage variables ---- # address_provider: public(AddressProvider) owner: public(address) # get registry/registry_handler by index, index starts at 0: get_registry: public(HashMap[uint256, address]) registry_length: public(uint256) # ---- constructor ---- # @external def __init__(_address_provider: address): self.address_provider = AddressProvider(_address_provider) self.owner = AddressProvider(_address_provider).admin() # ---- internal methods ---- # @internal def _update_single_registry(_index: uint256, _registry_handler: address): assert _index <= self.registry_length if _index == self.registry_length: self.registry_length += 1 self.get_registry[_index] = _registry_handler @internal @view def _get_pool_from_lp_token(_token: address) -> address: for i in range(MAX_REGISTRIES): if i == self.registry_length: break handler: address = self.get_registry[i] pool: address = RegistryHandler(handler).get_pool_from_lp_token(_token) if pool != empty(address): return pool return empty(address) @internal @view def _get_registry_handlers_from_pool(_pool: address) -> address[MAX_REGISTRIES]: """ @notice Get registry handler that handles the registry api for a pool @dev sometimes a factory pool can be registered in a manual registry because of this, we always take the last registry a pool is registered in and not the first, as manual registries are first and factories come later @param _pool address of the pool @return registry_handlers: address[MAX_REGISTRIES] """ pool_registry_handler: address[MAX_REGISTRIES] = empty(address[MAX_REGISTRIES]) c: uint256 = 0 for i in range(MAX_REGISTRIES): if i == self.registry_length: break handler: address = self.get_registry[i] if RegistryHandler(handler).is_registered(_pool): pool_registry_handler[c] = handler c += 1 if pool_registry_handler[0] == empty(address): raise("no registry") return pool_registry_handler # ---- most used methods: Admin / DAO privileged methods ---- # @external def add_registry_handler(_registry_handler: address): """ @notice Adds a registry from the address provider entry @param _registry_handler Address of the handler contract """ assert msg.sender == self.owner # dev: only owner self._update_single_registry(self.registry_length, _registry_handler) @external def update_registry_handler(_index: uint256, _registry_handler: address): """ @notice Updates the contract used to handle a registry @param _index The index of the registry in get_registry @param _registry_handler Address of the new handler contract """ assert msg.sender == self.owner # dev: only owner assert _index < self.registry_length self._update_single_registry(_index, _registry_handler) # ---- view methods (API) of the contract ---- # @external @view def get_registry_handlers_from_pool(_pool: address) -> address[MAX_REGISTRIES]: """ @notice Get the registry handlers associated with a pool @param _pool Pool address @return List of registry handlers """ return self._get_registry_handlers_from_pool(_pool) @view @external def find_pool_for_coins(_from: address, _to: address, i: uint256 = 0) -> address: """ @notice Find an available pool for exchanging two coins @param _from Address of coin to be sent @param _to Address of coin to be received @param i Index value. When multiple pools are available this value is used to return the n'th address. @return Pool address """ local_index: uint256 = 0 pool: address = empty(address) for registry_index in range(MAX_REGISTRIES): if registry_index == self.registry_length: break registry: RegistryHandler = RegistryHandler(self.get_registry[registry_index]) for j in range(0, 65536): pool = registry.find_pool_for_coins(_from, _to, j) if pool == empty(address): break local_index += 1 if local_index > i: return pool return pool @external @view def get_admin_balances(_pool: address, _handler_id: uint256 = 0) -> uint256[MAX_COINS]: """ @notice Get the current admin balances (uncollected fees) for a pool @dev _handler_id < 1 if pool is registry in one handler, more than 0 otherwise @param _pool Pool address @param _handler_id id of registry handler @return List of uint256 admin balances """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_admin_balances(_pool) @external @view def get_balances(_pool: address, _handler_id: uint256 = 0) -> uint256[MAX_COINS]: """ @notice Get balances for each coin within a pool @dev For metapools, these are the wrapped coin balances @param _pool Pool address @param _handler_id id of registry handler @return uint256 list of balances """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_balances(_pool) @external @view def get_base_pool(_pool: address, _handler_id: uint256 = 0) -> address: """ @notice Get the base pool for a given factory metapool @dev Will return empty(address) if pool is not a metapool @param _pool Metapool address @param _handler_id id of registry handler @return Address of base pool """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_base_pool(_pool) @view @external def get_coin_indices(_pool: address, _from: address, _to: address, _handler_id: uint256 = 0) -> (int128, int128, bool): """ @notice Convert coin addresses to indices for use with pool methods @param _pool Pool address @param _from Coin address to be used as `i` within a pool @param _to Coin address to be used as `j` within a pool @param _handler_id id of registry handler @return from index, to index, is the market underlying ? """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_coin_indices(_pool, _from, _to) @external @view def get_coins(_pool: address, _handler_id: uint256 = 0) -> address[MAX_COINS]: """ @notice Get the coins within a pool @dev For metapools, these are the wrapped coin addresses @param _pool Pool address @param _handler_id id of registry handler @return List of coin addresses """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_coins(_pool) @external @view def get_decimals(_pool: address, _handler_id: uint256 = 0) -> uint256[MAX_COINS]: """ @notice Get decimal places for each coin within a pool @dev For metapools, these are the wrapped coin decimal places @param _pool Pool address @param _handler_id id of registry handler @return uint256 list of decimals """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_decimals(_pool) @external @view def get_fees(_pool: address, _handler_id: uint256 = 0) -> uint256[10]: """ @notice Get pool fees @dev Fees are expressed as integers @param _pool Pool address @param _handler_id id of registry handler @return Pool fee as uint256 with 1e10 precision Admin fee as 1e10 percentage of pool fee Mid fee Out fee 6 blank spots for future use cases """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_fees(_pool) @external @view def get_gauge(_pool: address, gauge_idx: uint256 = 0, _handler_id: uint256 = 0) -> address: """ @notice Get a single liquidity gauge contract associated with a pool @param _pool Pool address @param gauge_idx Index of gauge to return @param _handler_id id of registry handler @return Address of gauge """ registry_handler: RegistryHandler = RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]) handler_output: address[10] = registry_handler.get_gauges(_pool)[0] return handler_output[gauge_idx] @external @view def get_gauge_type(_pool: address, gauge_idx: uint256 = 0, _handler_id: uint256 = 0) -> int128: """ @notice Get gauge_type of a single liquidity gauge contract associated with a pool @param _pool Pool address @param gauge_idx Index of gauge to return @param _handler_id id of registry handler @return Address of gauge """ registry_handler: RegistryHandler = RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]) handler_output: int128[10] = registry_handler.get_gauges(_pool)[1] return handler_output[gauge_idx] @external @view def get_lp_token(_pool: address, _handler_id: uint256 = 0) -> address: """ @notice Get the address of the LP token of a pool @param _pool Pool address @param _handler_id id of registry handler @return Address of the LP token """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_lp_token(_pool) @external @view def get_n_coins(_pool: address, _handler_id: uint256 = 0) -> uint256: """ @notice Get the number of coins in a pool @dev For metapools, it is tokens + wrapping/lending token (no underlying) @param _pool Pool address @return Number of coins """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_n_coins(_pool) @external @view def get_n_underlying_coins(_pool: address, _handler_id: uint256 = 0) -> uint256: """ @notice Get the number of underlying coins in a pool @dev For non metapools, returns the same as get_n_coins @param _pool Pool address @return Number of coins """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_n_underlying_coins(_pool) @external @view def get_pool_asset_type(_pool: address, _handler_id: uint256 = 0) -> uint256: """ @notice Query the asset type of `_pool` @param _pool Pool Address @return The asset type as an unstripped string @dev 0 : USD, 1: ETH, 2: BTC, 3: Other, 4: CryptoSwap """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_pool_asset_type(_pool) @external @view def get_pool_from_lp_token(_token: address, _handler_id: uint256 = 0) -> address: """ @notice Get the pool associated with an LP token @param _token LP token address @return Pool address """ return self._get_pool_from_lp_token(_token) @external @view def get_pool_params(_pool: address, _handler_id: uint256 = 0) -> uint256[MAX_POOL_PARAMS]: """ @notice Get the parameters of a pool @param _pool Pool address @param _handler_id id of registry handler @return Pool parameters """ registry_handler: address = self._get_registry_handlers_from_pool(_pool)[_handler_id] return RegistryHandler(registry_handler).get_pool_params(_pool) @external @view def get_pool_name(_pool: address, _handler_id: uint256 = 0) -> String[64]: """ @notice Get the given name for a pool @param _pool Pool address @return The name of a pool """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_pool_name(_pool) @external @view def get_underlying_balances(_pool: address, _handler_id: uint256 = 0) -> uint256[MAX_COINS]: """ @notice Get balances for each underlying coin within a pool @dev For non metapools, returns the same value as `get_balances` @param _pool Pool address @param _handler_id id of registry handler @return uint256 List of underlyingbalances """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_underlying_balances(_pool) @external @view def get_underlying_coins(_pool: address, _handler_id: uint256 = 0) -> address[MAX_COINS]: """ @notice Get the underlying coins within a pool @dev For non metapools, returns the same value as `get_coins` @param _pool Pool address @param _handler_id id of registry handler @return List of coin addresses """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_underlying_coins(_pool) @external @view def get_underlying_decimals(_pool: address, _handler_id: uint256 = 0) -> uint256[MAX_COINS]: """ @notice Get decimal places for each underlying coin within a pool @dev For non metapools, returns the same value as `get_decimals` @param _pool Pool address @param _handler_id id of registry handler @return uint256 list of decimals """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).get_underlying_decimals(_pool) @external @view def get_virtual_price_from_lp_token(_token: address, _handler_id: uint256 = 0) -> uint256: """ @notice Get the virtual price of a pool LP token @param _token LP token address @param _handler_id id of registry handler @return uint256 Virtual price """ pool: address = self._get_pool_from_lp_token(_token) registry_handler: address = self._get_registry_handlers_from_pool(pool)[_handler_id] return RegistryHandler(registry_handler).get_virtual_price_from_lp_token(_token) @external @view def is_meta(_pool: address, _handler_id: uint256 = 0) -> bool: """ @notice Verify `_pool` is a metapool @param _pool Pool address @param _handler_id id of registry handler @return True if `_pool` is a metapool """ return RegistryHandler(self._get_registry_handlers_from_pool(_pool)[_handler_id]).is_meta(_pool) @external @view def is_registered(_pool: address, _handler_id: uint256 = 0) -> bool: """ @notice Check if a pool is in the metaregistry using get_n_coins @param _pool The address of the pool @param _handler_id id of registry handler @return A bool corresponding to whether the pool belongs or not """ return self._get_registry_handlers_from_pool(_pool)[_handler_id] != empty(address) @external @view def pool_count() -> uint256: """ @notice Return the total number of pools tracked by the metaregistry @return uint256 The number of pools in the metaregistry """ total_pools: uint256 = 0 for i in range(MAX_REGISTRIES): if i == self.registry_length: break handler: address = self.get_registry[i] total_pools += RegistryHandler(handler).pool_count() return total_pools @external @view def pool_list(_index: uint256) -> address: """ @notice Return the pool at a given index in the metaregistry @param _index The index of the pool in the metaregistry @return The address of the pool at the given index """ pools_skip: uint256 = 0 for i in range(MAX_REGISTRIES): if i == self.registry_length: break handler: address = self.get_registry[i] count: uint256 = RegistryHandler(handler).pool_count() if _index - pools_skip < count: return RegistryHandler(handler).pool_list(_index - pools_skip) pools_skip += count return empty(address)
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"CommitNewAdmin","inputs":[{"name":"deadline","type":"uint256","indexed":true},{"name":"admin","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"NewAdmin","inputs":[{"name":"admin","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_address_provider","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"add_registry_handler","inputs":[{"name":"_registry_handler","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"update_registry_handler","inputs":[{"name":"_index","type":"uint256"},{"name":"_registry_handler","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"get_registry_handlers_from_pool","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address[10]"}]},{"stateMutability":"view","type":"function","name":"find_pool_for_coins","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"find_pool_for_coins","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"i","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_admin_balances","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[8]"}]},{"stateMutability":"view","type":"function","name":"get_admin_balances","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256[8]"}]},{"stateMutability":"view","type":"function","name":"get_balances","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[8]"}]},{"stateMutability":"view","type":"function","name":"get_balances","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256[8]"}]},{"stateMutability":"view","type":"function","name":"get_base_pool","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_base_pool","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_coin_indices","inputs":[{"name":"_pool","type":"address"},{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"outputs":[{"name":"","type":"int128"},{"name":"","type":"int128"},{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"get_coin_indices","inputs":[{"name":"_pool","type":"address"},{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"int128"},{"name":"","type":"int128"},{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"get_coins","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address[8]"}]},{"stateMutability":"view","type":"function","name":"get_coins","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"address[8]"}]},{"stateMutability":"view","type":"function","name":"get_decimals","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[8]"}]},{"stateMutability":"view","type":"function","name":"get_decimals","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256[8]"}]},{"stateMutability":"view","type":"function","name":"get_fees","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[10]"}]},{"stateMutability":"view","type":"function","name":"get_fees","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256[10]"}]},{"stateMutability":"view","type":"function","name":"get_gauge","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_gauge","inputs":[{"name":"_pool","type":"address"},{"name":"gauge_idx","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_gauge","inputs":[{"name":"_pool","type":"address"},{"name":"gauge_idx","type":"uint256"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_gauge_type","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"int128"}]},{"stateMutability":"view","type":"function","name":"get_gauge_type","inputs":[{"name":"_pool","type":"address"},{"name":"gauge_idx","type":"uint256"}],"outputs":[{"name":"","type":"int128"}]},{"stateMutability":"view","type":"function","name":"get_gauge_type","inputs":[{"name":"_pool","type":"address"},{"name":"gauge_idx","type":"uint256"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"int128"}]},{"stateMutability":"view","type":"function","name":"get_lp_token","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_lp_token","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_n_coins","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_n_coins","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_n_underlying_coins","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_n_underlying_coins","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_pool_asset_type","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_pool_asset_type","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_pool_from_lp_token","inputs":[{"name":"_token","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_pool_from_lp_token","inputs":[{"name":"_token","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_pool_params","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[20]"}]},{"stateMutability":"view","type":"function","name":"get_pool_params","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256[20]"}]},{"stateMutability":"view","type":"function","name":"get_pool_name","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"get_pool_name","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"get_underlying_balances","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[8]"}]},{"stateMutability":"view","type":"function","name":"get_underlying_balances","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256[8]"}]},{"stateMutability":"view","type":"function","name":"get_underlying_coins","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address[8]"}]},{"stateMutability":"view","type":"function","name":"get_underlying_coins","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"address[8]"}]},{"stateMutability":"view","type":"function","name":"get_underlying_decimals","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[8]"}]},{"stateMutability":"view","type":"function","name":"get_underlying_decimals","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256[8]"}]},{"stateMutability":"view","type":"function","name":"get_virtual_price_from_lp_token","inputs":[{"name":"_token","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_virtual_price_from_lp_token","inputs":[{"name":"_token","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"is_meta","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"is_meta","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"is_registered","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"is_registered","inputs":[{"name":"_pool","type":"address"},{"name":"_handler_id","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"pool_count","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"pool_list","inputs":[{"name":"_index","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"address_provider","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_registry","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"registry_length","inputs":[],"outputs":[{"name":"","type":"uint256"}]}]
Contract Creation Code
6020611c446000396000518060a01c611c3f5760405234611c3f5760405160005560405163f851a440606052602060606004607c845afa610045573d600060003e3d6000fd5b60203d10611c3f576060518060a01c611c3f5760a05260a0905051600155611bc961007561000039611bc9610000f36003361161000c57611946565b60003560e01c34611bb9576322f595c881186100575760243618611bb9576004358060a01c611bb9576080526001543318611bb95760035460405260805160605261005561194c565b005b630dbdc9ff81186100a35760443618611bb9576024358060a01c611bb9576080526001543318611bb9576003546004351015611bb9576004356040526080516060526100a161194c565b005b63308d1b6d81186100df5760243618611bb9576004358060a01c611bb95761026052610140610260516040526100da610280611a2f565b610280f35b63a87df06c81186100fc5760443618611bb9576000608052610116565b636982eb0b811861022d5760643618611bb9576044356080525b6004358060a01c611bb9576040526024358060a01c611bb95760605260403660a0376000600a905b8060e05260035460e0511861015257610224565b600260e05160205260005260406000205461010052600062010000905b806101205261010051636982eb0b610140526040516101605260605161018052610120516101a0526020610140606461015c845afa6101b3573d600060003e3d6000fd5b60203d10611bb957610140518060a01c611bb9576101c0526101c090505160c05260c0516101e057610217565b60a05160018101818110611bb957905060a05260805160a051111561020c5750505050602060c061022b565b60010181811861016f575b505060010181811861013e575b5050602060c05bf35b63c11e45b8811861024b5760243618611bb957600061028052610266565b63c0bf4cbf81186102df5760443618611bb957602435610280525b6004358060a01c611bb957610260526101006102605160405261028a6102a0611a2f565b6102a06102805160098111611bb95760051b810190505163c11e45b86103e05261026051610400526101006103e060246103fc845afa6102cf573d600060003e3d6000fd5b6101003d10611bb9576103e09050f35b6392e3cc2d81186102fd5760243618611bb957600061028052610318565b63aa85169c81186103915760443618611bb957602435610280525b6004358060a01c611bb957610260526101006102605160405261033c6102a0611a2f565b6102a06102805160098111611bb95760051b81019050516392e3cc2d6103e05261026051610400526101006103e060246103fc845afa610381573d600060003e3d6000fd5b6101003d10611bb9576103e09050f35b636f20d6dd81186103af5760243618611bb9576000610280526103ca565b63a54e3ade81186104505760443618611bb957602435610280525b6004358060a01c611bb957610260526020610260516040526103ed6102a0611a2f565b6102a06102805160098111611bb95760051b8101905051636f20d6dd6103e052610260516104005260206103e060246103fc845afa610431573d600060003e3d6000fd5b60203d10611bb9576103e0518060a01c611bb957610420526104209050f35b63eb85226d811861046e5760643618611bb95760006102c052610489565b6363fb3ddb81186105615760843618611bb9576064356102c0525b6004358060a01c611bb957610260526024358060a01c611bb957610280526044358060a01c611bb9576102a0526060610260516040526104ca6102e0611a2f565b6102e06102c05160098111611bb95760051b810190505163eb85226d61042052610260516104405261028051610460526102a051610480526060610420606461043c845afa61051e573d600060003e3d6000fd5b60603d10611bb9576104205180600f0b8118611bb9576104a0526104405180600f0b8118611bb9576104c052610460518060011c611bb9576104e0526104a09050f35b639ac90d3d811861057f5760243618611bb95760006102805261059a565b636ebe51fc81186106935760443618611bb957602435610280525b6004358060a01c611bb95761026052610100610260516040526105be6102a0611a2f565b6102a06102805160098111611bb95760051b8101905051639ac90d3d6103e05261026051610400526101006103e060246103fc845afa610603573d600060003e3d6000fd5b6101003d10611bb9576103e0518060a01c611bb95761050052610400518060a01c611bb95761052052610420518060a01c611bb95761054052610440518060a01c611bb95761056052610460518060a01c611bb95761058052610480518060a01c611bb9576105a0526104a0518060a01c611bb9576105c0526104c0518060a01c611bb9576105e0526105009050f35b6352b5155581186106b15760243618611bb9576000610280526106cc565b63403f502f81186107455760443618611bb957602435610280525b6004358060a01c611bb95761026052610100610260516040526106f06102a0611a2f565b6102a06102805160098111611bb95760051b81019050516352b515556103e05261026051610400526101006103e060246103fc845afa610735573d600060003e3d6000fd5b6101003d10611bb9576103e09050f35b637cdb72b081186107635760243618611bb95760006102805261077e565b630ed5a42781186107f75760443618611bb957602435610280525b6004358060a01c611bb95761026052610140610260516040526107a26102a0611a2f565b6102a06102805160098111611bb95760051b8101905051637cdb72b06103e05261026051610400526101406103e060246103fc845afa6107e7573d600060003e3d6000fd5b6101403d10611bb9576103e09050f35b63daf297b981186108165760243618611bb95760403661028037610857565b63e4081220811861083b5760443618611bb9576024356102805260006102a052610857565b63773fb7e38118610a985760643618611bb95760406024610280375b6004358060a01c611bb95761026052610260516040526108786102e0611a2f565b6102e06102a05160098111611bb95760051b81019050516102c0526102c0516356059ffb610420526102605161044052610280610420602461043c845afa6108c5573d600060003e3d6000fd5b6102803d10611bb957610420518060a01c611bb9576106c052610440518060a01c611bb9576106e052610460518060a01c611bb95761070052610480518060a01c611bb957610720526104a0518060a01c611bb957610740526104c0518060a01c611bb957610760526104e0518060a01c611bb95761078052610500518060a01c611bb9576107a052610520518060a01c611bb9576107c052610540518060a01c611bb9576107e0526105605180600f0b8118611bb957610800526105805180600f0b8118611bb957610820526105a05180600f0b8118611bb957610840526105c05180600f0b8118611bb957610860526105e05180600f0b8118611bb957610880526106005180600f0b8118611bb9576108a0526106205180600f0b8118611bb9576108c0526106405180600f0b8118611bb9576108e0526106605180600f0b8118611bb957610900526106805180600f0b8118611bb957610920526106c0905080516102e05260208101516103005260408101516103205260608101516103405260808101516103605260a08101516103805260c08101516103a05260e08101516103c0526101008101516103e052610120810151610400525060206102805160098111611bb95760051b6102e001f35b6325fa5d138118610ab75760243618611bb95760403661028037610af8565b637c51db558118610adc5760443618611bb9576024356102805260006102a052610af8565b63f8b661e28118610d405760643618611bb95760406024610280375b6004358060a01c611bb9576102605261026051604052610b196102e0611a2f565b6102e06102a05160098111611bb95760051b81019050516102c0526102c0516356059ffb610420526102605161044052610280610420602461043c845afa610b66573d600060003e3d6000fd5b6102803d10611bb957610420518060a01c611bb9576106c052610440518060a01c611bb9576106e052610460518060a01c611bb95761070052610480518060a01c611bb957610720526104a0518060a01c611bb957610740526104c0518060a01c611bb957610760526104e0518060a01c611bb95761078052610500518060a01c611bb9576107a052610520518060a01c611bb9576107c052610540518060a01c611bb9576107e0526105605180600f0b8118611bb957610800526105805180600f0b8118611bb957610820526105a05180600f0b8118611bb957610840526105c05180600f0b8118611bb957610860526105e05180600f0b8118611bb957610880526106005180600f0b8118611bb9576108a0526106205180600f0b8118611bb9576108c0526106405180600f0b8118611bb9576108e0526106605180600f0b8118611bb957610900526106805180600f0b8118611bb957610920526106c090506101408101905080516102e05260208101516103005260408101516103205260608101516103405260808101516103605260a08101516103805260c08101516103a05260e08101516103c0526101008101516103e052610120810151610400525060206102805160098111611bb95760051b6102e001f35b63379510498118610d5e5760243618611bb957600061028052610d79565b630881715f8118610dff5760443618611bb957602435610280525b6004358060a01c611bb95761026052602061026051604052610d9c6102a0611a2f565b6102a06102805160098111611bb95760051b810190505163379510496103e052610260516104005260206103e060246103fc845afa610de0573d600060003e3d6000fd5b60203d10611bb9576103e0518060a01c611bb957610420526104209050f35b63940494f18118610e1d5760243618611bb957600061028052610e38565b6311d812798118610eae5760443618611bb957602435610280525b6004358060a01c611bb95761026052602061026051604052610e5b6102a0611a2f565b6102a06102805160098111611bb95760051b810190505163940494f16103e052610260516104005260206103e060246103fc845afa610e9f573d600060003e3d6000fd5b60203d10611bb9576103e09050f35b630a700c088118610ecc5760243618611bb957600061028052610ee7565b63decdf68f8118610f5d5760443618611bb957602435610280525b6004358060a01c611bb95761026052602061026051604052610f0a6102a0611a2f565b6102a06102805160098111611bb95760051b8101905051630a700c086103e052610260516104005260206103e060246103fc845afa610f4e573d600060003e3d6000fd5b60203d10611bb9576103e09050f35b6366d3966c8118610f7b5760243618611bb957600061028052610f96565b6390d1dd2d811861100c5760443618611bb957602435610280525b6004358060a01c611bb95761026052602061026051604052610fb96102a0611a2f565b6102a06102805160098111611bb95760051b81019050516366d3966c6103e052610260516104005260206103e060246103fc845afa610ffd573d600060003e3d6000fd5b60203d10611bb9576103e09050f35b63bdf475c3811861102a5760243618611bb957600061014052611045565b6336678b80811861106d5760443618611bb957602435610140525b6004358060a01c611bb9576101205260206101205160405261106861016061198c565b610160f35b63688532aa811861108b5760243618611bb9576000610280526110a6565b637a65d2dd81186111275760443618611bb957602435610280525b6004358060a01c611bb95761026052610260516040526110c76102c0611a2f565b6102c06102805160098111611bb95760051b81019050516102a0526102806102a05163688532aa6102c052610260516102e0526102806102c060246102dc845afa611117573d600060003e3d6000fd5b6102803d10611bb9576102c09050f35b635c91174181186111455760243618611bb957600061028052611160565b6392234f45811861124e5760443618611bb957602435610280525b6004358060a01c611bb957610260526020806104e052610260516040526111886102a0611a2f565b6102a06102805160098111611bb95760051b8101905051635c9117416103e052610260516104005260806103e060246103fc845afa6111cc573d600060003e3d6000fd5b60403d10611bb9576103e0516103e0016040815111611bb9578051806104805260208201816104a0838360045afa505050506104809050816104e001815180825260208301602083018281848460045afa505050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506104e0f35b6359f4f351811861126c5760243618611bb957600061028052611287565b63876112e681186113005760443618611bb957602435610280525b6004358060a01c611bb95761026052610100610260516040526112ab6102a0611a2f565b6102a06102805160098111611bb95760051b81019050516359f4f3516103e05261026051610400526101006103e060246103fc845afa6112f0573d600060003e3d6000fd5b6101003d10611bb9576103e09050f35b63a77576ef811861131e5760243618611bb957600061028052611339565b632fc90bcf81186114325760443618611bb957602435610280525b6004358060a01c611bb957610260526101006102605160405261135d6102a0611a2f565b6102a06102805160098111611bb95760051b810190505163a77576ef6103e05261026051610400526101006103e060246103fc845afa6113a2573d600060003e3d6000fd5b6101003d10611bb9576103e0518060a01c611bb95761050052610400518060a01c611bb95761052052610420518060a01c611bb95761054052610440518060a01c611bb95761056052610460518060a01c611bb95761058052610480518060a01c611bb9576105a0526104a0518060a01c611bb9576105c0526104c0518060a01c611bb9576105e0526105009050f35b634cb088f181186114505760243618611bb95760006102805261146b565b63622d64f481186114e45760443618611bb957602435610280525b6004358060a01c611bb957610260526101006102605160405261148f6102a0611a2f565b6102a06102805160098111611bb95760051b8101905051634cb088f16103e05261026051610400526101006103e060246103fc845afa6114d4573d600060003e3d6000fd5b6101003d10611bb9576103e09050f35b63c5b7074a81186115025760243618611bb95760006102805261151d565b634460f66f81186115b55760443618611bb957602435610280525b6004358060a01c611bb957610260526102605160405261153e6102c061198c565b6102c0516102a0526102a0516040526115586102e0611a2f565b6102e06102805160098111611bb95760051b81019050516102c05260206102c05163c5b7074a6102e052610260516103005260206102e060246102fc845afa6115a6573d600060003e3d6000fd5b60203d10611bb9576102e09050f35b63e4d332a981186115d35760243618611bb9576000610280526115ee565b63a64485a181186116745760443618611bb957602435610280525b6004358060a01c611bb957610260526020610260516040526116116102a0611a2f565b6102a06102805160098111611bb95760051b810190505163e4d332a96103e052610260516104005260206103e060246103fc845afa611655573d600060003e3d6000fd5b60203d10611bb9576103e0518060011c611bb957610420526104209050f35b63619ea80681186116925760243618611bb9576000610280526116ad565b63c9c4f3ec81186116f25760443618611bb957602435610280525b6004358060a01c611bb95761026052610260516040526116ce6102a0611a2f565b6102a06102805160098111611bb95760051b810190505115156103e05260206103e0f35b63956aae3a81186117915760043618611bb95760006040526000600a905b806060526003546060511861172457611789565b600260605160205260005260406000205460805260405160805163956aae3a60a052602060a0600460bc845afa611760573d600060003e3d6000fd5b60203d10611bb95760a0905051808201828110611bb95790509050604052600101818118611710575b505060206040f35b633a1d5d8e81186118ba5760243618611bb95760006040526000600a905b80606052600354606051186117c3576118ac565b600260605160205260005260406000205460805260805163956aae3a60c052602060c0600460dc845afa6117fc573d600060003e3d6000fd5b60203d10611bb95760c090505160a05260a051600435604051808203828111611bb95790509050101561188a5750506020608051633a1d5d8e60c052600435604051808203828111611bb9579050905060e052602060c0602460dc845afa611869573d600060003e3d6000fd5b60203d10611bb95760c0518060a01c611bb9576101005261010090506118b8565b60405160a051808201828110611bb957905090506040526001018181186117af575b50506000606052602060605bf35b63ce50c2e781186118d95760043618611bb95760005460405260206040f35b638da5cb5b81186118f85760043618611bb95760015460405260206040f35b63913d9b4d81186119255760243618611bb957600260043560205260005260406000205460405260206040f35b63083297d281186119445760043618611bb95760035460405260206040f35b505b60006000fd5b60035460405111611bb957600354604051186119765760035460018101818110611bb95790506003555b6060516002604051602052600052604060002055565b6000600a905b80606052600354606051186119a657611a25565b600260605160205260005260406000205460805260805163bdf475c360c05260405160e052602060c0602460dc845afa6119e5573d600060003e3d6000fd5b60203d10611bb95760c0518060a01c611bb9576101005261010090505160a05260a05115611a1a5760a0518352505050611a2d565b600101818118611992575b505060008152505b565b610160366060376000600a905b806101c0526003546101c05118611a5257611af3565b60026101c0516020526000526040600020546101e0526101e05163619ea80661020052604051610220526020610200602461021c845afa611a98573d600060003e3d6000fd5b60203d10611bb957610200518060011c611bb9576102405261024090505115611ae8576101e0516101a05160098111611bb95760051b606001526101a05160018101818110611bb95790506101a0525b600101818118611a3c575b5050606051611b6257600b6101c0527f6e6f2072656769737472790000000000000000000000000000000000000000006101e0526101c0506101c051806101e001601f826000031636823750506308c379a06101805260206101a052601f19601f6101c051011660440161019cfd5b6060518152608051602082015260a051604082015260c051606082015260e05160808201526101005160a08201526101205160c08201526101405160e0820152610160516101008201526101805161012082015250565b600080fda165767970657283000304005b600080fd0000000000000000000000000000000022d53366457f9d5e68ec105046fc4383
Deployed Bytecode
0x6003361161000c57611946565b60003560e01c34611bb9576322f595c881186100575760243618611bb9576004358060a01c611bb9576080526001543318611bb95760035460405260805160605261005561194c565b005b630dbdc9ff81186100a35760443618611bb9576024358060a01c611bb9576080526001543318611bb9576003546004351015611bb9576004356040526080516060526100a161194c565b005b63308d1b6d81186100df5760243618611bb9576004358060a01c611bb95761026052610140610260516040526100da610280611a2f565b610280f35b63a87df06c81186100fc5760443618611bb9576000608052610116565b636982eb0b811861022d5760643618611bb9576044356080525b6004358060a01c611bb9576040526024358060a01c611bb95760605260403660a0376000600a905b8060e05260035460e0511861015257610224565b600260e05160205260005260406000205461010052600062010000905b806101205261010051636982eb0b610140526040516101605260605161018052610120516101a0526020610140606461015c845afa6101b3573d600060003e3d6000fd5b60203d10611bb957610140518060a01c611bb9576101c0526101c090505160c05260c0516101e057610217565b60a05160018101818110611bb957905060a05260805160a051111561020c5750505050602060c061022b565b60010181811861016f575b505060010181811861013e575b5050602060c05bf35b63c11e45b8811861024b5760243618611bb957600061028052610266565b63c0bf4cbf81186102df5760443618611bb957602435610280525b6004358060a01c611bb957610260526101006102605160405261028a6102a0611a2f565b6102a06102805160098111611bb95760051b810190505163c11e45b86103e05261026051610400526101006103e060246103fc845afa6102cf573d600060003e3d6000fd5b6101003d10611bb9576103e09050f35b6392e3cc2d81186102fd5760243618611bb957600061028052610318565b63aa85169c81186103915760443618611bb957602435610280525b6004358060a01c611bb957610260526101006102605160405261033c6102a0611a2f565b6102a06102805160098111611bb95760051b81019050516392e3cc2d6103e05261026051610400526101006103e060246103fc845afa610381573d600060003e3d6000fd5b6101003d10611bb9576103e09050f35b636f20d6dd81186103af5760243618611bb9576000610280526103ca565b63a54e3ade81186104505760443618611bb957602435610280525b6004358060a01c611bb957610260526020610260516040526103ed6102a0611a2f565b6102a06102805160098111611bb95760051b8101905051636f20d6dd6103e052610260516104005260206103e060246103fc845afa610431573d600060003e3d6000fd5b60203d10611bb9576103e0518060a01c611bb957610420526104209050f35b63eb85226d811861046e5760643618611bb95760006102c052610489565b6363fb3ddb81186105615760843618611bb9576064356102c0525b6004358060a01c611bb957610260526024358060a01c611bb957610280526044358060a01c611bb9576102a0526060610260516040526104ca6102e0611a2f565b6102e06102c05160098111611bb95760051b810190505163eb85226d61042052610260516104405261028051610460526102a051610480526060610420606461043c845afa61051e573d600060003e3d6000fd5b60603d10611bb9576104205180600f0b8118611bb9576104a0526104405180600f0b8118611bb9576104c052610460518060011c611bb9576104e0526104a09050f35b639ac90d3d811861057f5760243618611bb95760006102805261059a565b636ebe51fc81186106935760443618611bb957602435610280525b6004358060a01c611bb95761026052610100610260516040526105be6102a0611a2f565b6102a06102805160098111611bb95760051b8101905051639ac90d3d6103e05261026051610400526101006103e060246103fc845afa610603573d600060003e3d6000fd5b6101003d10611bb9576103e0518060a01c611bb95761050052610400518060a01c611bb95761052052610420518060a01c611bb95761054052610440518060a01c611bb95761056052610460518060a01c611bb95761058052610480518060a01c611bb9576105a0526104a0518060a01c611bb9576105c0526104c0518060a01c611bb9576105e0526105009050f35b6352b5155581186106b15760243618611bb9576000610280526106cc565b63403f502f81186107455760443618611bb957602435610280525b6004358060a01c611bb95761026052610100610260516040526106f06102a0611a2f565b6102a06102805160098111611bb95760051b81019050516352b515556103e05261026051610400526101006103e060246103fc845afa610735573d600060003e3d6000fd5b6101003d10611bb9576103e09050f35b637cdb72b081186107635760243618611bb95760006102805261077e565b630ed5a42781186107f75760443618611bb957602435610280525b6004358060a01c611bb95761026052610140610260516040526107a26102a0611a2f565b6102a06102805160098111611bb95760051b8101905051637cdb72b06103e05261026051610400526101406103e060246103fc845afa6107e7573d600060003e3d6000fd5b6101403d10611bb9576103e09050f35b63daf297b981186108165760243618611bb95760403661028037610857565b63e4081220811861083b5760443618611bb9576024356102805260006102a052610857565b63773fb7e38118610a985760643618611bb95760406024610280375b6004358060a01c611bb95761026052610260516040526108786102e0611a2f565b6102e06102a05160098111611bb95760051b81019050516102c0526102c0516356059ffb610420526102605161044052610280610420602461043c845afa6108c5573d600060003e3d6000fd5b6102803d10611bb957610420518060a01c611bb9576106c052610440518060a01c611bb9576106e052610460518060a01c611bb95761070052610480518060a01c611bb957610720526104a0518060a01c611bb957610740526104c0518060a01c611bb957610760526104e0518060a01c611bb95761078052610500518060a01c611bb9576107a052610520518060a01c611bb9576107c052610540518060a01c611bb9576107e0526105605180600f0b8118611bb957610800526105805180600f0b8118611bb957610820526105a05180600f0b8118611bb957610840526105c05180600f0b8118611bb957610860526105e05180600f0b8118611bb957610880526106005180600f0b8118611bb9576108a0526106205180600f0b8118611bb9576108c0526106405180600f0b8118611bb9576108e0526106605180600f0b8118611bb957610900526106805180600f0b8118611bb957610920526106c0905080516102e05260208101516103005260408101516103205260608101516103405260808101516103605260a08101516103805260c08101516103a05260e08101516103c0526101008101516103e052610120810151610400525060206102805160098111611bb95760051b6102e001f35b6325fa5d138118610ab75760243618611bb95760403661028037610af8565b637c51db558118610adc5760443618611bb9576024356102805260006102a052610af8565b63f8b661e28118610d405760643618611bb95760406024610280375b6004358060a01c611bb9576102605261026051604052610b196102e0611a2f565b6102e06102a05160098111611bb95760051b81019050516102c0526102c0516356059ffb610420526102605161044052610280610420602461043c845afa610b66573d600060003e3d6000fd5b6102803d10611bb957610420518060a01c611bb9576106c052610440518060a01c611bb9576106e052610460518060a01c611bb95761070052610480518060a01c611bb957610720526104a0518060a01c611bb957610740526104c0518060a01c611bb957610760526104e0518060a01c611bb95761078052610500518060a01c611bb9576107a052610520518060a01c611bb9576107c052610540518060a01c611bb9576107e0526105605180600f0b8118611bb957610800526105805180600f0b8118611bb957610820526105a05180600f0b8118611bb957610840526105c05180600f0b8118611bb957610860526105e05180600f0b8118611bb957610880526106005180600f0b8118611bb9576108a0526106205180600f0b8118611bb9576108c0526106405180600f0b8118611bb9576108e0526106605180600f0b8118611bb957610900526106805180600f0b8118611bb957610920526106c090506101408101905080516102e05260208101516103005260408101516103205260608101516103405260808101516103605260a08101516103805260c08101516103a05260e08101516103c0526101008101516103e052610120810151610400525060206102805160098111611bb95760051b6102e001f35b63379510498118610d5e5760243618611bb957600061028052610d79565b630881715f8118610dff5760443618611bb957602435610280525b6004358060a01c611bb95761026052602061026051604052610d9c6102a0611a2f565b6102a06102805160098111611bb95760051b810190505163379510496103e052610260516104005260206103e060246103fc845afa610de0573d600060003e3d6000fd5b60203d10611bb9576103e0518060a01c611bb957610420526104209050f35b63940494f18118610e1d5760243618611bb957600061028052610e38565b6311d812798118610eae5760443618611bb957602435610280525b6004358060a01c611bb95761026052602061026051604052610e5b6102a0611a2f565b6102a06102805160098111611bb95760051b810190505163940494f16103e052610260516104005260206103e060246103fc845afa610e9f573d600060003e3d6000fd5b60203d10611bb9576103e09050f35b630a700c088118610ecc5760243618611bb957600061028052610ee7565b63decdf68f8118610f5d5760443618611bb957602435610280525b6004358060a01c611bb95761026052602061026051604052610f0a6102a0611a2f565b6102a06102805160098111611bb95760051b8101905051630a700c086103e052610260516104005260206103e060246103fc845afa610f4e573d600060003e3d6000fd5b60203d10611bb9576103e09050f35b6366d3966c8118610f7b5760243618611bb957600061028052610f96565b6390d1dd2d811861100c5760443618611bb957602435610280525b6004358060a01c611bb95761026052602061026051604052610fb96102a0611a2f565b6102a06102805160098111611bb95760051b81019050516366d3966c6103e052610260516104005260206103e060246103fc845afa610ffd573d600060003e3d6000fd5b60203d10611bb9576103e09050f35b63bdf475c3811861102a5760243618611bb957600061014052611045565b6336678b80811861106d5760443618611bb957602435610140525b6004358060a01c611bb9576101205260206101205160405261106861016061198c565b610160f35b63688532aa811861108b5760243618611bb9576000610280526110a6565b637a65d2dd81186111275760443618611bb957602435610280525b6004358060a01c611bb95761026052610260516040526110c76102c0611a2f565b6102c06102805160098111611bb95760051b81019050516102a0526102806102a05163688532aa6102c052610260516102e0526102806102c060246102dc845afa611117573d600060003e3d6000fd5b6102803d10611bb9576102c09050f35b635c91174181186111455760243618611bb957600061028052611160565b6392234f45811861124e5760443618611bb957602435610280525b6004358060a01c611bb957610260526020806104e052610260516040526111886102a0611a2f565b6102a06102805160098111611bb95760051b8101905051635c9117416103e052610260516104005260806103e060246103fc845afa6111cc573d600060003e3d6000fd5b60403d10611bb9576103e0516103e0016040815111611bb9578051806104805260208201816104a0838360045afa505050506104809050816104e001815180825260208301602083018281848460045afa505050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506104e0f35b6359f4f351811861126c5760243618611bb957600061028052611287565b63876112e681186113005760443618611bb957602435610280525b6004358060a01c611bb95761026052610100610260516040526112ab6102a0611a2f565b6102a06102805160098111611bb95760051b81019050516359f4f3516103e05261026051610400526101006103e060246103fc845afa6112f0573d600060003e3d6000fd5b6101003d10611bb9576103e09050f35b63a77576ef811861131e5760243618611bb957600061028052611339565b632fc90bcf81186114325760443618611bb957602435610280525b6004358060a01c611bb957610260526101006102605160405261135d6102a0611a2f565b6102a06102805160098111611bb95760051b810190505163a77576ef6103e05261026051610400526101006103e060246103fc845afa6113a2573d600060003e3d6000fd5b6101003d10611bb9576103e0518060a01c611bb95761050052610400518060a01c611bb95761052052610420518060a01c611bb95761054052610440518060a01c611bb95761056052610460518060a01c611bb95761058052610480518060a01c611bb9576105a0526104a0518060a01c611bb9576105c0526104c0518060a01c611bb9576105e0526105009050f35b634cb088f181186114505760243618611bb95760006102805261146b565b63622d64f481186114e45760443618611bb957602435610280525b6004358060a01c611bb957610260526101006102605160405261148f6102a0611a2f565b6102a06102805160098111611bb95760051b8101905051634cb088f16103e05261026051610400526101006103e060246103fc845afa6114d4573d600060003e3d6000fd5b6101003d10611bb9576103e09050f35b63c5b7074a81186115025760243618611bb95760006102805261151d565b634460f66f81186115b55760443618611bb957602435610280525b6004358060a01c611bb957610260526102605160405261153e6102c061198c565b6102c0516102a0526102a0516040526115586102e0611a2f565b6102e06102805160098111611bb95760051b81019050516102c05260206102c05163c5b7074a6102e052610260516103005260206102e060246102fc845afa6115a6573d600060003e3d6000fd5b60203d10611bb9576102e09050f35b63e4d332a981186115d35760243618611bb9576000610280526115ee565b63a64485a181186116745760443618611bb957602435610280525b6004358060a01c611bb957610260526020610260516040526116116102a0611a2f565b6102a06102805160098111611bb95760051b810190505163e4d332a96103e052610260516104005260206103e060246103fc845afa611655573d600060003e3d6000fd5b60203d10611bb9576103e0518060011c611bb957610420526104209050f35b63619ea80681186116925760243618611bb9576000610280526116ad565b63c9c4f3ec81186116f25760443618611bb957602435610280525b6004358060a01c611bb95761026052610260516040526116ce6102a0611a2f565b6102a06102805160098111611bb95760051b810190505115156103e05260206103e0f35b63956aae3a81186117915760043618611bb95760006040526000600a905b806060526003546060511861172457611789565b600260605160205260005260406000205460805260405160805163956aae3a60a052602060a0600460bc845afa611760573d600060003e3d6000fd5b60203d10611bb95760a0905051808201828110611bb95790509050604052600101818118611710575b505060206040f35b633a1d5d8e81186118ba5760243618611bb95760006040526000600a905b80606052600354606051186117c3576118ac565b600260605160205260005260406000205460805260805163956aae3a60c052602060c0600460dc845afa6117fc573d600060003e3d6000fd5b60203d10611bb95760c090505160a05260a051600435604051808203828111611bb95790509050101561188a5750506020608051633a1d5d8e60c052600435604051808203828111611bb9579050905060e052602060c0602460dc845afa611869573d600060003e3d6000fd5b60203d10611bb95760c0518060a01c611bb9576101005261010090506118b8565b60405160a051808201828110611bb957905090506040526001018181186117af575b50506000606052602060605bf35b63ce50c2e781186118d95760043618611bb95760005460405260206040f35b638da5cb5b81186118f85760043618611bb95760015460405260206040f35b63913d9b4d81186119255760243618611bb957600260043560205260005260406000205460405260206040f35b63083297d281186119445760043618611bb95760035460405260206040f35b505b60006000fd5b60035460405111611bb957600354604051186119765760035460018101818110611bb95790506003555b6060516002604051602052600052604060002055565b6000600a905b80606052600354606051186119a657611a25565b600260605160205260005260406000205460805260805163bdf475c360c05260405160e052602060c0602460dc845afa6119e5573d600060003e3d6000fd5b60203d10611bb95760c0518060a01c611bb9576101005261010090505160a05260a05115611a1a5760a0518352505050611a2d565b600101818118611992575b505060008152505b565b610160366060376000600a905b806101c0526003546101c05118611a5257611af3565b60026101c0516020526000526040600020546101e0526101e05163619ea80661020052604051610220526020610200602461021c845afa611a98573d600060003e3d6000fd5b60203d10611bb957610200518060011c611bb9576102405261024090505115611ae8576101e0516101a05160098111611bb95760051b606001526101a05160018101818110611bb95790506101a0525b600101818118611a3c575b5050606051611b6257600b6101c0527f6e6f2072656769737472790000000000000000000000000000000000000000006101e0526101c0506101c051806101e001601f826000031636823750506308c379a06101805260206101a052601f19601f6101c051011660440161019cfd5b6060518152608051602082015260a051604082015260c051606082015260e05160808201526101005160a08201526101205160c08201526101405160e0820152610160516101008201526101805161012082015250565b600080fda165767970657283000304
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000022d53366457f9d5e68ec105046fc4383
-----Decoded View---------------
Arg [0] : _address_provider (address): 0x0000000022D53366457F9d5E68Ec105046FC4383
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000022d53366457f9d5e68ec105046fc4383
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.