Contract Overview
Balance:
0 ETH
ETH Value:
$0.00
My Name Tag:
Not Available
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0x843ee87879a4ad9352d420f38130f97ce5972b5734d22cfd5123221fd9714f19 | Add_pool | 4530222 | 808 days 6 hrs ago | 0x7eeac6cddbd1d0b8af061742d41877d7f707289a | IN | 0x0e9fbb167df83ede3240d6a5fa5d40c6c6851e15 | 0 ETH | 0.004798857552 ETH | |
0x5ee454caa3bbeb73fe4e6e190db4bf71eb56ed790d725f96464dbf73ef5c9dbd | Add_pool | 4530193 | 808 days 6 hrs ago | 0x7eeac6cddbd1d0b8af061742d41877d7f707289a | IN | 0x0e9fbb167df83ede3240d6a5fa5d40c6c6851e15 | 0 ETH | 0.007120101434 ETH | |
0xa725ede6006960f78fe841ad5ad37e875f7cadb3ade8326d03f2bcc502a499aa | 0x6f7fffff | 4530115 | 808 days 6 hrs ago | 0x7eeac6cddbd1d0b8af061742d41877d7f707289a | IN | Create: Vyper_contract | 0 ETH | 0.069645688924 ETH |
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.3.0
Contract Source Code (Vyper language format)
# @version 0.3.0 """ @title Curve CryptoSwap Registry @license MIT @author Curve.Fi """ MAX_COINS: constant(int128) = 8 CALC_INPUT_SIZE: constant(int128) = 100 struct CoinInfo: index: uint256 register_count: uint256 swap_count: uint256 swap_for: address[MAX_INT128] struct PoolArray: location: uint256 decimals: uint256 coins: address[MAX_COINS] n_coins: uint256 name: String[64] interface AddressProvider: def admin() -> address: view def get_address(_id: uint256) -> address: view def get_registry() -> address: view interface ERC20: def balanceOf(_addr: address) -> uint256: view def decimals() -> uint256: view def totalSupply() -> uint256: view interface CurvePool: def token() -> address: view def coins(i: uint256) -> address: view def A() -> uint256: view def gamma() -> uint256: view def fee() -> uint256: view def get_virtual_price() -> uint256: view def mid_fee() -> uint256: view def out_fee() -> uint256: view def admin_fee() -> uint256: view def balances(i: uint256) -> uint256: view def D() -> uint256: view interface LiquidityGauge: def lp_token() -> address: view interface GaugeController: def gauge_types(gauge: address) -> int128: view event PoolAdded: pool: indexed(address) event PoolRemoved: pool: indexed(address) address_provider: public(AddressProvider) pool_list: public(address[65536]) # master list of pools pool_count: public(uint256) # actual length of pool_list pool_data: HashMap[address, PoolArray] coin_count: public(uint256) # total unique coins registered coins: HashMap[address, CoinInfo] get_coin: public(address[65536]) # unique list of registered coins # bitwise_xor(coina, coinb) -> (coina_pos, coinb_pos) sorted # stored as uint128[2] coin_swap_indexes: HashMap[uint256, uint256] # lp token -> pool get_pool_from_lp_token: public(HashMap[address, address]) # pool -> lp token get_lp_token: public(HashMap[address, address]) # mapping of coins -> pools for trading # a mapping key is generated for each pair of addresses via # `bitwise_xor(convert(a, uint256), convert(b, uint256))` markets: HashMap[uint256, address[65536]] market_counts: HashMap[uint256, uint256] liquidity_gauges: HashMap[address, address[10]] # mapping of pool -> deposit/exchange zap get_zap: public(HashMap[address, address]) last_updated: public(uint256) @external def __init__(_address_provider: AddressProvider): """ @notice Constructor function """ self.address_provider = _address_provider # internal functionality for getters @view @internal def _get_balances(_pool: address) -> uint256[MAX_COINS]: balances: uint256[MAX_COINS] = empty(uint256[MAX_COINS]) for i in range(MAX_COINS): if self.pool_data[_pool].coins[i] == ZERO_ADDRESS: assert i != 0 break balances[i] = CurvePool(_pool).balances(i) return balances # targetted external getters, optimized for on-chain calls @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 """ key: uint256 = bitwise_xor(convert(_from, uint256), convert(_to, uint256)) return self.markets[key][i] @view @external def get_n_coins(_pool: address) -> uint256: """ @notice Get the number of coins in a pool @dev For non-metapools, both returned values are identical even when the pool does not use wrapping/lending @param _pool Pool address @return Number of wrapped coins, number of underlying coins """ return self.pool_data[_pool].n_coins @view @external def get_coins(_pool: address) -> address[MAX_COINS]: """ @notice Get the coins within a pool @dev For pools using lending, these are the wrapped coin addresses @param _pool Pool address @return List of coin addresses """ coins: address[MAX_COINS] = empty(address[MAX_COINS]) n_coins: uint256 = self.pool_data[_pool].n_coins for i in range(MAX_COINS): if i == n_coins: break coins[i] = self.pool_data[_pool].coins[i] return coins @view @external def get_decimals(_pool: address) -> uint256[MAX_COINS]: """ @notice Get decimal places for each coin within a pool @dev For pools using lending, these are the wrapped coin decimal places @param _pool Pool address @return uint256 list of decimals """ # decimals are tightly packed as a series of uint8 within a little-endian bytes32 # the packed value is stored as uint256 to simplify unpacking via shift and modulo packed: uint256 = self.pool_data[_pool].decimals decimals: uint256[MAX_COINS] = empty(uint256[MAX_COINS]) n_coins: int128 = convert(self.pool_data[_pool].n_coins, int128) for i in range(MAX_COINS): if i == n_coins: break decimals[i] = shift(packed, -8 * i) % 256 return decimals @view @external def get_gauges(_pool: address) -> (address[10], int128[10]): """ @notice Get a list of LiquidityGauge contracts associated with a pool @param _pool Pool address @return address[10] of gauge addresses, int128[10] of gauge types """ liquidity_gauges: address[10] = empty(address[10]) gauge_types: int128[10] = empty(int128[10]) for i in range(10): gauge: address = self.liquidity_gauges[_pool][i] if gauge == ZERO_ADDRESS: break liquidity_gauges[i] = gauge return liquidity_gauges, gauge_types @view @external def get_balances(_pool: address) -> uint256[MAX_COINS]: """ @notice Get balances for each coin within a pool @dev For pools using lending, these are the wrapped coin balances @param _pool Pool address @return uint256 list of balances """ return self._get_balances(_pool) @view @external def get_virtual_price_from_lp_token(_token: address) -> uint256: """ @notice Get the virtual price of a pool LP token @param _token LP token address @return uint256 Virtual price """ return CurvePool(self.get_pool_from_lp_token[_token]).get_virtual_price() @view @external def get_A(_pool: address) -> uint256: return CurvePool(_pool).A() @view @external def get_D(_pool: address) -> uint256: return CurvePool(_pool).D() @view @external def get_gamma(_pool: address) -> uint256: return CurvePool(_pool).gamma() @view @external def get_fees(_pool: address) -> uint256[4]: """ @notice Get the fees for a pool @dev Fees are expressed as integers @return Pool fee as uint256 with 1e10 precision Admin fee as 1e10 percentage of pool fee Mid fee Out fee """ return [CurvePool(_pool).fee(), CurvePool(_pool).admin_fee(), CurvePool(_pool).mid_fee(), CurvePool(_pool).out_fee()] @view @external def get_admin_balances(_pool: address) -> uint256[MAX_COINS]: """ @notice Get the current admin balances (uncollected fees) for a pool @param _pool Pool address @return List of uint256 admin balances """ balances: uint256[MAX_COINS] = self._get_balances(_pool) n_coins: uint256 = self.pool_data[_pool].n_coins for i in range(MAX_COINS): coin: address = self.pool_data[_pool].coins[i] if i == n_coins: break if coin == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE: balances[i] = _pool.balance - balances[i] else: balances[i] = ERC20(coin).balanceOf(_pool) - balances[i] return balances @view @external def get_coin_indices( _pool: address, _from: address, _to: address ) -> (uint256, uint256): """ @notice Convert coin addresses to indices for use with pool methods @param _from Coin address to be used as `i` within a pool @param _to Coin address to be used as `j` within a pool @return int128 `i`, int128 `j`, boolean indicating if `i` and `j` are underlying coins """ # the return value is stored as `uint256[3]` to reduce gas costs # from index, to index, is the market underlying? result: uint256[2] = empty(uint256[2]) found_market: bool = False # check coin markets for x in range(MAX_COINS): coin: address = self.pool_data[_pool].coins[x] if coin == ZERO_ADDRESS: # if we reach the end of the coins, reset `found_market` and try again # with the underlying coins found_market = False break if coin == _from: result[0] = x elif coin == _to: result[1] = x else: continue if found_market: # the second time we find a match, break out of the loop return result[0], result[1] # the first time we find a match, set `found_market` to True found_market = True raise "No available market" @view @external def get_pool_name(_pool: address) -> String[64]: """ @notice Get the given name for a pool @param _pool Pool address @return The name of a pool """ return self.pool_data[_pool].name @view @external def get_coin_swap_count(_coin: address) -> uint256: """ @notice Get the number of unique coins available to swap `_coin` against @param _coin Coin address @return The number of unique coins available to swap for """ return self.coins[_coin].swap_count @view @external def get_coin_swap_complement(_coin: address, _index: uint256) -> address: """ @notice Get the coin available to swap against `_coin` at `_index` @param _coin Coin address @param _index An index in the `_coin`'s set of available counter coin's @return Address of a coin available to swap against `_coin` """ return self.coins[_coin].swap_for[_index] # internal functionality used in admin setters @internal def _register_coin(_coin: address): if self.coins[_coin].register_count == 0: coin_count: uint256 = self.coin_count self.coins[_coin].index = coin_count self.get_coin[coin_count] = _coin self.coin_count += 1 self.coins[_coin].register_count += 1 @internal def _register_coin_pair(_coina: address, _coinb: address, _key: uint256): # register _coinb in _coina's array of coins coin_b_pos: uint256 = self.coins[_coina].swap_count self.coins[_coina].swap_for[coin_b_pos] = _coinb self.coins[_coina].swap_count += 1 # register _coina in _coinb's array of coins coin_a_pos: uint256 = self.coins[_coinb].swap_count self.coins[_coinb].swap_for[coin_a_pos] = _coina self.coins[_coinb].swap_count += 1 # register indexes (coina pos in coinb array, coinb pos in coina array) if convert(_coina, uint256) < convert(_coinb, uint256): self.coin_swap_indexes[_key] = shift(coin_a_pos, 128) + coin_b_pos else: self.coin_swap_indexes[_key] = shift(coin_b_pos, 128) + coin_a_pos @internal def _unregister_coin(_coin: address): self.coins[_coin].register_count -= 1 if self.coins[_coin].register_count == 0: self.coin_count -= 1 coin_count: uint256 = self.coin_count location: uint256 = self.coins[_coin].index if location < coin_count: coin_b: address = self.get_coin[coin_count] self.get_coin[location] = coin_b self.coins[coin_b].index = location self.coins[_coin].index = 0 self.get_coin[coin_count] = ZERO_ADDRESS @internal def _unregister_coin_pair(_coina: address, _coinb: address, _coinb_idx: uint256): """ @param _coinb_idx the index of _coinb in _coina's array of unique coin's """ # decrement swap counts for both coins self.coins[_coina].swap_count -= 1 # retrieve the last currently occupied index in coina's array coina_arr_last_idx: uint256 = self.coins[_coina].swap_count # if coinb's index in coina's array is less than the last # overwrite it's position with the last coin if _coinb_idx < coina_arr_last_idx: # here's our last coin in coina's array coin_c: address = self.coins[_coina].swap_for[coina_arr_last_idx] # get the bitwise_xor of the pair to retrieve their indexes key: uint256 = bitwise_xor(convert(_coina, uint256), convert(coin_c, uint256)) indexes: uint256 = self.coin_swap_indexes[key] # update the pairing's indexes if convert(_coina, uint256) < convert(coin_c, uint256): # least complicated most readable way of shifting twice to remove the lower order bits self.coin_swap_indexes[key] = shift(shift(indexes, -128), 128) + _coinb_idx else: self.coin_swap_indexes[key] = shift(_coinb_idx, 128) + indexes % 2 ** 128 # set _coinb_idx in coina's array to coin_c self.coins[_coina].swap_for[_coinb_idx] = coin_c self.coins[_coina].swap_for[coina_arr_last_idx] = ZERO_ADDRESS @internal def _get_new_pool_coins( _pool: address, _n_coins: uint256, ) -> address[MAX_COINS]: coin_list: address[MAX_COINS] = empty(address[MAX_COINS]) coin: address = ZERO_ADDRESS for i in range(MAX_COINS): if i == _n_coins: break coin = CurvePool(_pool).coins(i) self.pool_data[_pool].coins[i] = coin coin_list[i] = coin for i in range(MAX_COINS): if i == _n_coins: break self._register_coin(coin_list[i]) # add pool to markets i2: uint256 = i + 1 for x in range(i2, i2 + MAX_COINS): if x == _n_coins: break key: uint256 = bitwise_xor(convert(coin_list[i], uint256), convert(coin_list[x], uint256)) length: uint256 = self.market_counts[key] self.markets[key][length] = _pool self.market_counts[key] = length + 1 # register the coin pair if length == 0: self._register_coin_pair(coin_list[x], coin_list[i], key) return coin_list @view @internal def _get_new_pool_decimals(_coins: address[MAX_COINS], _n_coins: uint256) -> uint256: packed: uint256 = 0 value: uint256 = 0 n_coins: int128 = convert(_n_coins, int128) for i in range(MAX_COINS): if i == n_coins: break coin: address = _coins[i] if coin == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE: value = 18 else: value = ERC20(coin).decimals() assert value < 256 # dev: decimal overflow packed += shift(value, i * 8) return packed @internal def _remove_market(_pool: address, _coina: address, _coinb: address): key: uint256 = bitwise_xor(convert(_coina, uint256), convert(_coinb, uint256)) length: uint256 = self.market_counts[key] - 1 if length == 0: indexes: uint256 = self.coin_swap_indexes[key] if convert(_coina, uint256) < convert(_coinb, uint256): self._unregister_coin_pair(_coina, _coinb, indexes % 2 ** 128) self._unregister_coin_pair(_coinb, _coina, shift(indexes, -128)) else: self._unregister_coin_pair(_coina, _coinb, shift(indexes, -128)) self._unregister_coin_pair(_coinb, _coina, indexes % 2 ** 128) self.coin_swap_indexes[key] = 0 for i in range(65536): if i > length: break if self.markets[key][i] == _pool: if i < length: self.markets[key][i] = self.markets[key][length] self.markets[key][length] = ZERO_ADDRESS self.market_counts[key] = length break # admin functions @external def add_pool( _pool: address, _n_coins: uint256, _lp_token: address, _gauge: address, _zap: address, _decimals: uint256, _name: String[64], ): """ @notice Add a pool to the registry @dev Only callable by admin @param _pool Pool address to add @param _n_coins Number of coins in the pool @param _lp_token Pool deposit token address @param _decimals Coin decimal values, tightly packed as uint8 in a little-endian bytes32 @param _name The name of the pool """ assert msg.sender == self.address_provider.admin() # dev: admin-only function assert _lp_token != ZERO_ADDRESS assert self.pool_data[_pool].coins[0] == ZERO_ADDRESS # dev: pool exists assert self.get_pool_from_lp_token[_lp_token] == ZERO_ADDRESS # add pool to pool_list length: uint256 = self.pool_count self.pool_list[length] = _pool self.pool_count = length + 1 self.pool_data[_pool].location = length self.pool_data[_pool].n_coins = _n_coins self.pool_data[_pool].name = _name # update public mappings self.get_pool_from_lp_token[_lp_token] = _pool self.get_lp_token[_pool] = _lp_token coins: address[MAX_COINS] = self._get_new_pool_coins(_pool, _n_coins) decimals: uint256 = _decimals if decimals == 0: decimals = self._get_new_pool_decimals(coins, _n_coins) self.pool_data[_pool].decimals = decimals if _zap != ZERO_ADDRESS: self.get_zap[_pool] = _zap if _gauge != ZERO_ADDRESS: self.liquidity_gauges[_pool][0] = _gauge self.last_updated = block.timestamp log PoolAdded(_pool) @external def remove_pool(_pool: address): """ @notice Remove a pool to the registry @dev Only callable by admin @param _pool Pool address to remove """ assert msg.sender == self.address_provider.admin() # dev: admin-only function assert self.pool_data[_pool].coins[0] != ZERO_ADDRESS # dev: pool does not exist self.get_pool_from_lp_token[self.get_lp_token[_pool]] = ZERO_ADDRESS self.get_lp_token[_pool] = ZERO_ADDRESS # remove _pool from pool_list location: uint256 = self.pool_data[_pool].location length: uint256 = self.pool_count - 1 if location < length: # replace _pool with final value in pool_list addr: address = self.pool_list[length] self.pool_list[location] = addr self.pool_data[addr].location = location # delete final pool_list value self.pool_list[length] = ZERO_ADDRESS self.pool_count = length self.pool_data[_pool].decimals = 0 self.pool_data[_pool].n_coins = 0 self.pool_data[_pool].name = "" coins: address[MAX_COINS] = empty(address[MAX_COINS]) for i in range(MAX_COINS): coins[i] = self.pool_data[_pool].coins[i] if coins[i] == ZERO_ADDRESS: break # delete coin address from pool_data self.pool_data[_pool].coins[i] = ZERO_ADDRESS self._unregister_coin(coins[i]) for i in range(MAX_COINS): coin: address = coins[i] if coin == ZERO_ADDRESS: break # remove pool from markets i2: uint256 = i + 1 for x in range(i2, i2 + MAX_COINS): coinx: address = coins[x] if coinx == ZERO_ADDRESS: break self._remove_market(_pool, coin, coinx) if self.get_zap[_pool] != ZERO_ADDRESS: self.get_zap[_pool] = ZERO_ADDRESS self.last_updated = block.timestamp log PoolRemoved(_pool) @external def set_liquidity_gauges(_pool: address, _liquidity_gauges: address[10]): """ @notice Set liquidity gauge contracts @param _pool Pool address @param _liquidity_gauges Liquidity gauge address """ assert msg.sender == self.address_provider.admin() # dev: admin-only function _lp_token: address = self.get_lp_token[_pool] for i in range(10): _gauge: address = _liquidity_gauges[i] if _gauge != ZERO_ADDRESS: assert LiquidityGauge(_gauge).lp_token() == _lp_token # dev: wrong token self.liquidity_gauges[_pool][i] = _gauge elif self.liquidity_gauges[_pool][i] != ZERO_ADDRESS: self.liquidity_gauges[_pool][i] = ZERO_ADDRESS else: break self.last_updated = block.timestamp @external def batch_set_liquidity_gauges(_pools: address[10], _liquidity_gauges: address[10]): """ @notice Set many liquidity gauge contracts @param _pools List of pool addresses @param _liquidity_gauges List of liquidity gauge addresses """ assert msg.sender == self.address_provider.admin() # dev: admin-only function for i in range(10): _pool: address = _pools[i] if _pool == ZERO_ADDRESS: break _gauge: address = _liquidity_gauges[i] assert LiquidityGauge(_gauge).lp_token() == self.get_lp_token[_pool] # dev: wrong token self.liquidity_gauges[_pool][0] = _gauge self.last_updated = block.timestamp
[{"name":"PoolAdded","inputs":[{"name":"pool","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"PoolRemoved","inputs":[{"name":"pool","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_address_provider","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"find_pool_for_coins","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"outputs":[{"name":"","type":"address"}],"gas":3111},{"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"}],"gas":3111},{"stateMutability":"view","type":"function","name":"get_n_coins","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":2834},{"stateMutability":"view","type":"function","name":"get_coins","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address[8]"}],"gas":22975},{"stateMutability":"view","type":"function","name":"get_decimals","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[8]"}],"gas":9818},{"stateMutability":"view","type":"function","name":"get_gauges","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address[10]"},{"name":"","type":"int128[10]"}],"gas":26055},{"stateMutability":"view","type":"function","name":"get_balances","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[8]"}],"gas":41626},{"stateMutability":"view","type":"function","name":"get_virtual_price_from_lp_token","inputs":[{"name":"_token","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":5321},{"stateMutability":"view","type":"function","name":"get_A","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3139},{"stateMutability":"view","type":"function","name":"get_D","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3169},{"stateMutability":"view","type":"function","name":"get_gamma","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3199},{"stateMutability":"view","type":"function","name":"get_fees","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[4]"}],"gas":10333},{"stateMutability":"view","type":"function","name":"get_admin_balances","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[8]"}],"gas":85771},{"stateMutability":"view","type":"function","name":"get_coin_indices","inputs":[{"name":"_pool","type":"address"},{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"gas":23608},{"stateMutability":"view","type":"function","name":"get_pool_name","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"string"}],"gas":13576},{"stateMutability":"view","type":"function","name":"get_coin_swap_count","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3224},{"stateMutability":"view","type":"function","name":"get_coin_swap_complement","inputs":[{"name":"_coin","type":"address"},{"name":"_index","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":3299},{"stateMutability":"nonpayable","type":"function","name":"add_pool","inputs":[{"name":"_pool","type":"address"},{"name":"_n_coins","type":"uint256"},{"name":"_lp_token","type":"address"},{"name":"_gauge","type":"address"},{"name":"_zap","type":"address"},{"name":"_decimals","type":"uint256"},{"name":"_name","type":"string"}],"outputs":[],"gas":18586944},{"stateMutability":"nonpayable","type":"function","name":"remove_pool","inputs":[{"name":"_pool","type":"address"}],"outputs":[],"gas":399675363514},{"stateMutability":"nonpayable","type":"function","name":"set_liquidity_gauges","inputs":[{"name":"_pool","type":"address"},{"name":"_liquidity_gauges","type":"address[10]"}],"outputs":[],"gas":422284},{"stateMutability":"nonpayable","type":"function","name":"batch_set_liquidity_gauges","inputs":[{"name":"_pools","type":"address[10]"},{"name":"_liquidity_gauges","type":"address[10]"}],"outputs":[],"gas":444084},{"stateMutability":"view","type":"function","name":"address_provider","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3126},{"stateMutability":"view","type":"function","name":"pool_list","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":3201},{"stateMutability":"view","type":"function","name":"pool_count","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":3186},{"stateMutability":"view","type":"function","name":"coin_count","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":3216},{"stateMutability":"view","type":"function","name":"get_coin","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":3291},{"stateMutability":"view","type":"function","name":"get_pool_from_lp_token","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"address"}],"gas":3548},{"stateMutability":"view","type":"function","name":"get_lp_token","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"address"}],"gas":3578},{"stateMutability":"view","type":"function","name":"get_zap","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"address"}],"gas":3608},{"stateMutability":"view","type":"function","name":"last_updated","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":3366}]
Contract Creation Code
6f7fffffffffffffffffffffffffffffff60405260206125a760c03960c0518060a01c6125a257809050610140526101405160005561258a56600436101561000d57611974565b60046000601c376f7fffffffffffffffffffffffffffffff6040526000513461254c5763a87df06c8114156100475760006101805261005b565b636982eb0b8114156100be57604435610180525b6004358060a01c61254c57809050610140526024358060a01c61254c57809050610160526101605161014051186101a0526001610180516201000081101561254c5702620200086101a05160e05260c052604060c02001546101c05260206101c0f35b63940494f18114156100fe576004358060a01c61254c5780905061014052600a620100026101405160e05260c052604060c0200154610160526020610160f35b639ac90d3d8114156101f5576004358060a01c61254c57809050610140526101003661016037600a620100026101405160e05260c052604060c02001546102605261028060006008818352015b6102605161028051141561015e576101ab565b600161028051600881101561254c57026002620100026101405160e05260c052604060c02001015461016061028051600881101561254c576020020152815160010180835281141561014b575b50506101605161028052610180516102a0526101a0516102c0526101c0516102e0526101e05161030052610200516103205261022051610340526102405161036052610100610280f35b6352b5155581141561034f576004358060a01c61254c57809050610140526001620100026101405160e05260c052604060c0200154610160526101003661018037600a620100026101405160e05260c052604060c0200154604051811161254c57610280526102a060006008818352015b610280516102a051141561027957610305565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86102a05180820280607f1d8160801d141561254c578090509050905060008112156102cd5761016051816000031c6102d4565b61016051811b5b9050610100808206905090506101806102a051600881101561254c5760200201528151600101808352811415610266575b5050610180516102a0526101a0516102c0526101c0516102e0526101e0516103005261020051610320526102205161034052610240516103605261026051610380526101006102a0f35b6356059ffb81141561048a576004358060a01c61254c578090506101405261028036610160376103e06000600a818352015b60016103e051600a81101561254c57026202000a6101405160e05260c052604060c020015461040052610400516103b7576103e0565b610400516101606103e051600a81101561254c5760200201528151600101808352811415610381575b5050610160516103e05261018051610400526101a051610420526101c051610440526101e051610460526102005161048052610220516104a052610240516104c052610260516104e05261028051610500526102a051610520526102c051610540526102e051610560526103005161058052610320516105a052610340516105c052610360516105e05261038051610600526103a051610620526103c051610640526102806103e0f35b6392e3cc2d81141561050c576004358060a01c61254c578090506102c0526102c051610140526104bb6102e061197a565b6102e080516103e0528060200151610400528060400151610420528060600151610440528060800151610460528060a00151610480528060c001516104a0528060e001516104c052506101006103e0f35b63c5b7074a811415610570576004358060a01c61254c578090506101405263bb7b8b80610160526020610160600461017c620200066101405160e05260c052604060c020545afa1561254c57601f3d111561254c57610160516101a05260206101a0f35b6355b30b198114156105c4576004358060a01c61254c578090506101405263f446c1d0610160526020610160600461017c610140515afa1561254c57601f3d111561254c57610160516101a05260206101a0f35b63e3663c99811415610618576004358060a01c61254c5780905061014052630f529ba2610160526020610160600461017c610140515afa1561254c57601f3d111561254c57610160516101a05260206101a0f35b637c400ccf81141561066c576004358060a01c61254c578090506101405263b1373929610160526020610160600461017c610140515afa1561254c57601f3d111561254c57610160516101a05260206101a0f35b637cdb72b081141561074d576004358060a01c61254c578090506101405263ddca3f43610160526020610160600461017c610140515afa1561254c57601f3d111561254c57610160516102605263fee3f7f96101a05260206101a060046101bc610140515afa1561254c57601f3d111561254c576101a051610280526392526c0c6101e05260206101e060046101fc610140515afa1561254c57601f3d111561254c576101e0516102a05263ee8de675610220526020610220600461023c610140515afa1561254c57601f3d111561254c57610220516102c0526080610260f35b63c11e45b8811415610954576004358060a01c61254c578090506102c0526102c0516101405261077e6103e061197a565b6103e080516102e0528060200151610300528060400151610320528060600151610340528060800151610360528060a00151610380528060c001516103a0528060e001516103c05250600a620100026102c05160e05260c052604060c02001546103e05261040060006008818352015b600161040051600881101561254c57026002620100026102c05160e05260c052604060c020010154610420526103e05161040051141561082d5761090a565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61042051141561088e576102c051316102e061040051600881101561254c57602002015180821061254c57808203905090506102e061040051600881101561254c5760200201526108fa565b6370a08231610440526102c051610460526020610440602461045c610420515afa1561254c57601f3d111561254c57610440516102e061040051600881101561254c57602002015180821061254c57808203905090506102e061040051600881101561254c5760200201525b81516001018083528114156107ee575b50506102e051610400526103005161042052610320516104405261034051610460526103605161048052610380516104a0526103a0516104c0526103c0516104e052610100610400f35b63eb85226d811415610aaa576004358060a01c61254c57809050610140526024358060a01c61254c57809050610160526044358060a01c61254c57809050610180526060366101a03761020060006008818352015b600161020051600881101561254c57026002620100026101405160e05260c052604060c02001015461022052610220516109e85760006101e052610a61565b61016051610220511415610a0357610200516101a052610a24565b61018051610220511415610a1e57610200516101c052610a23565b610a51565b5b6101e05115610a4a575050506101a051610240526101c051610260526040610240610aa8565b60016101e0525b81516001018083528114156109a9575b50506308c379a0610200526020610220526013610240527f4e6f20617661696c61626c65206d61726b6574000000000000000000000000006102605261024050606461021cfd5bf35b635c911741811415610b80576004358060a01c61254c5780905061014052610160806020808252600b620100026101405160e05260c052604060c0200181840180828082602082540161012060006003818352015b82610120516020021115610b1257610b33565b61012051850154610120516020028501528151600101808352811415610aff575b5050505050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f82010390509050905090508101905080905090509050610160f35b6398aede16811415610bc0576004358060a01c61254c57809050610140526002620100046101405160e05260c052604060c0200154610160526020610160f35b635d211982811415610c1f576004358060a01c61254c578090506101405260016024356f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101405160e05260c052604060c020010154610160526020610160f35b63c927255f811415610f6b576004358060a01c61254c578090506103e0526044358060a01c61254c57809050610400526064358060a01c61254c57809050610420526084358060a01c61254c578090506104405260c435600401604081351161254c5780803560200180826104603750505063f851a4406104c05260206104c060046104dc6000545afa1561254c57601f3d111561254c576104c05133141561254c57600061040051181561254c576002620100026103e05160e05260c052604060c020015461254c57620200066104005160e05260c052604060c0205461254c5762010001546104c0526103e05160016104c0516201000081101561254c5702600101556104c0516001818183011061254c578082019050905062010001556104c051620100026103e05160e05260c052604060c02055602435600a620100026103e05160e05260c052604060c020015561046080600b620100026103e05160e05260c052604060c02001602082510161012060006003818352015b82610120516020021115610daf57610dd0565b61012051602002850151610120518501558151600101808352811415610d9c575b5050505050506103e051620200066104005160e05260c052604060c0205561040051620200076103e05160e05260c052604060c020556103e0516101e05260243561020052610e206105e0611f55565b6105e080516104e0528060200151610500528060400151610520528060600151610540528060800151610560528060a00151610580528060c001516105a0528060e001516105c0525060a4356105e0526105e051610ed3576104e0516101405261050051610160526105205161018052610540516101a052610560516101c052610580516101e0526105a051610200526105c0516102205260243561024052610eca6106006121e3565b610600516105e0525b6105e0516001620100026103e05160e05260c052604060c02001556000610440511815610f1357610440516202000b6103e05160e05260c052604060c020555b6000610420511815610f3857610420516202000a6103e05160e05260c052604060c020555b426202000c556103e0517f73cca62ab1b520c9715bf4e6c71e3e518c754e7148f65102f43289a7df0efea66000610600a2005b63474932b0811415611355576004358060a01c61254c578090506102e05263f851a440610300526020610300600461031c6000545afa1561254c57601f3d111561254c576103005133141561254c5760006002620100026102e05160e05260c052604060c0200154181561254c57600062020006620200076102e05160e05260c052604060c0205460e05260c052604060c020556000620200076102e05160e05260c052604060c02055620100026102e05160e05260c052604060c02054610300526201000154600180821061254c578082039050905061032052610320516103005110156110a1576001610320516201000081101561254c57026001015461034052610340516001610300516201000081101561254c57026001015561030051620100026103405160e05260c052604060c020555b60006001610320516201000081101561254c57026001015561032051620100015560006001620100026102e05160e05260c052604060c02001556000600a620100026102e05160e05260c052604060c020015560006103405261034080600b620100026102e05160e05260c052604060c02001602082510161012060006001818352015b8261012051602002111561113857611159565b61012051602002850151610120518501558151600101808352811415611125575b505050505050610100366103403761044060006008818352015b600161044051600881101561254c57026002620100026102e05160e05260c052604060c02001015461034061044051600881101561254c57602002015261034061044051600881101561254c5760200201516111ce57611229565b6000600161044051600881101561254c57026002620100026102e05160e05260c052604060c02001015561034061044051600881101561254c57602002015161014052611219611c8a565b8151600101808352811415611173575b505061044060006008818352015b61034061044051600881101561254c576020020151610460526104605161125d576112ed565b610440516001818183011061254c5780820190509050610480526104a0610480516008818352015b6103406104a051600881101561254c5760200201516104c0526104c0516112ab576112db565b6102e0516102205261046051610240526104c051610260526112cb61230b565b8151600101808352811415611285575b50508151600101808352811415611237575b505060006202000b6102e05160e05260c052604060c0205418156113225760006202000b6102e05160e05260c052604060c020555b426202000c556102e0517f4106dfdaa577573db51c0ca93f766dbedfa0758faa2e7f5bcdb7c142be803c3f6000610440a2005b63ef6b9788811415611580576004358060a01c61254c57809050610140526024358060a01c61254c57809050610160526044358060a01c61254c57809050610180526064358060a01c61254c578090506101a0526084358060a01c61254c578090506101c05260a4358060a01c61254c578090506101e05260c4358060a01c61254c578090506102005260e4358060a01c61254c5780905061022052610104358060a01c61254c5780905061024052610124358060a01c61254c5780905061026052610144358060a01c61254c578090506102805263f851a4406102a05260206102a060046102bc6000545afa1561254c57601f3d111561254c576102a05133141561254c57620200076101405160e05260c052604060c020546102a0526102c06000600a818352015b6101606102c051600a81101561254c5760200201516102e05260006102e0511815611507576102a0516382c63066610300526020610300600461031c6102e0515afa1561254c57601f3d111561254c5761030051141561254c576102e05160016102c051600a81101561254c57026202000a6101405160e05260c052604060c0200155611566565b600060016102c051600a81101561254c57026202000a6101405160e05260c052604060c0200154181561156057600060016102c051600a81101561254c57026202000a6101405160e05260c052604060c0200155611565565b611576565b5b815160010180835281141561147f575b5050426202000c55005b63fec61ef58114156117f3576004358060a01c61254c57809050610140526024358060a01c61254c57809050610160526044358060a01c61254c57809050610180526064358060a01c61254c578090506101a0526084358060a01c61254c578090506101c05260a4358060a01c61254c578090506101e05260c4358060a01c61254c578090506102005260e4358060a01c61254c5780905061022052610104358060a01c61254c5780905061024052610124358060a01c61254c5780905061026052610144358060a01c61254c5780905061028052610164358060a01c61254c578090506102a052610184358060a01c61254c578090506102c0526101a4358060a01c61254c578090506102e0526101c4358060a01c61254c57809050610300526101e4358060a01c61254c5780905061032052610204358060a01c61254c5780905061034052610224358060a01c61254c5780905061036052610244358060a01c61254c5780905061038052610264358060a01c61254c578090506103a05263f851a4406103c05260206103c060046103dc6000545afa1561254c57601f3d111561254c576103c05133141561254c576103c06000600a818352015b6101406103c051600a81101561254c5760200201516103e0526103e051611763576117e9565b6102806103c051600a81101561254c57602002015161040052620200076103e05160e05260c052604060c020546382c63066610420526020610420600461043c610400515afa1561254c57601f3d111561254c5761042051141561254c57610400516202000a6103e05160e05260c052604060c02055815160010180835281141561173d575b5050426202000c55005b63ce50c2e781141561180d57600054610140526020610140f35b633a1d5d8e8114156118395760016004356201000081101561254c570260010154610140526020610140f35b63956aae3a811415611855576201000154610140526020610140f35b635075770f811415611871576201000354610140526020610140f35b6345f0db2481141561189f5760016004356201000081101561254c5702620100050154610140526020610140f35b63bdf475c38114156118dc576004358060a01c61254c5780905061014052620200066101405160e05260c052604060c02054610160526020610160f35b6337951049811415611919576004358060a01c61254c5780905061014052620200076101405160e05260c052604060c02054610160526020610160f35b6355335d7b811415611956576004358060a01c61254c57809050610140526202000b6101405160e05260c052604060c02054610160526020610160f35b6368900961811415611972576202000c54610140526020610140f35b505b60006000fd5b610100366101603761026060006008818352015b600161026051600881101561254c57026002620100026101405160e05260c052604060c0200101546119cb57600061026051181561254c57611a23565b634903b0d161028052610260516102a0526020610280602461029c610140515afa1561254c57601f3d111561254c576102805161016061026051600881101561254c576020020152815160010180835281141561198e575b50506101605181526101805181602001526101a05181604001526101c05181606001526101e0518160800152610200518160a00152610220518160c00152610240518160e0015250565b6001620100046101405160e05260c052604060c0200154611ae15762010003546101605261016051620100046101405160e05260c052604060c02055610140516001610160516201000081101561254c57026201000501556201000380546001818183011061254c57808201905090508155505b6001620100046101405160e05260c052604060c0200180546001818183011061254c5780820190509050815550565b6002620100046101405160e05260c052604060c02001546101a0526101605160016101a0516f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101405160e05260c052604060c0200101556002620100046101405160e05260c052604060c0200180546001818183011061254c57808201905090508155506002620100046101605160e05260c052604060c02001546101c0526101405160016101c0516f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101605160e05260c052604060c0200101556002620100046101605160e05260c052604060c0200180546001818183011061254c578082019050905081555061016051610140511015611c58576101c05160801b6101a051818183011061254c5780820190509050620200056101805160e05260c052604060c02055611c88565b6101a05160801b6101c051818183011061254c5780820190509050620200056101805160e05260c052604060c020555b565b6001620100046101405160e05260c052604060c020018054600180821061254c57808203905090508155506001620100046101405160e05260c052604060c0200154611d9a57620100038054600180821061254c5780820390509050815550620100035461016052620100046101405160e05260c052604060c020546101805261016051610180511015611d69576001610160516201000081101561254c57026201000501546101a0526101a0516001610180516201000081101561254c570262010005015561018051620100046101a05160e05260c052604060c020555b6000620100046101405160e05260c052604060c0205560006001610160516201000081101561254c57026201000501555b565b6002620100046101405160e05260c052604060c020018054600180821061254c57808203905090508155506002620100046101405160e05260c052604060c02001546101a0526101a051610180511015611f1a5760016101a0516f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101405160e05260c052604060c0200101546101c0526101c05161014051186101e052620200056101e05160e05260c052604060c02054610200526101c051610140511015611e95576102005160801c60801b61018051818183011061254c5780820190509050620200056101e05160e05260c052604060c02055611ede565b6101805160801b6102005170010000000000000000000000000000000080820690509050818183011061254c5780820190509050620200056101e05160e05260c052604060c020555b6101c0516001610180516f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101405160e05260c052604060c0200101555b600060016101a0516f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101405160e05260c052604060c020010155565b610120366102203761034060006008818352015b61020051610340511415611f7c57612013565b63c66106576103605261034051610380526020610360602461037c6101e0515afa1561254c57601f3d111561254c57610360518060a01c61254c578090506103205261032051600161034051600881101561254c57026002620100026101e05160e05260c052604060c0200101556103205161022061034051600881101561254c5760200201528151600101808352811415611f69575b505061034060006008818352015b6102005161034051141561203457612199565b61022061034051600881101561254c57602002015161014052612055611a6d565b610340516001818183011061254c578082019050905061036052610380610360516008818352015b6102005161038051141561209057612187565b61022061038051600881101561254c57602002015161022061034051600881101561254c576020020151186103a052620200096103a05160e05260c052604060c020546103c0526101e05160016103c0516201000081101561254c5702620200086103a05160e05260c052604060c02001556103c0516001818183011061254c5780820190509050620200096103a05160e05260c052604060c020556103c0516121775761022061038051600881101561254c5760200201516101405261022061034051600881101561254c576020020151610160526103a05161018052612176611b10565b5b815160010180835281141561207d575b50508151600101808352811415612021575b50506102205181526102405181602001526102605181604001526102805181606001526102a05181608001526102c0518160a001526102e0518160c00152610300518160e0015250565b6040366102603761024051604051811161254c576102a0526102c060006008818352015b6102a0516102c051141561221a57612300565b6101406102c051600881101561254c5760200201516102e05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6102e051141561225d5760126102805261229a565b63313ce567610300526020610300600461031c6102e0515afa1561254c57601f3d111561254c57610300516102805261010061028051101561254c575b61026080516102c051600880820280607f1d8160801d141561254c578090509050905060008112156122d45761028051816000031c6122db565b61028051811b5b9050818183011061254c57808201905090508152508151600101808352811415612207575b505061026051815250565b61026051610240511861028052620200096102805160e05260c052604060c02054600180821061254c57808203905090506102a0526102a05161244357620200056102805160e05260c052604060c020546102c052610260516102405110156123cf57610240516101405261026051610160526102c05170010000000000000000000000000000000080820690509050610180526123a7611d9c565b610260516101405261024051610160526102c05160801c610180526123ca611d9c565b61242c565b610240516101405261026051610160526102c05160801c610180526123f2611d9c565b610260516101405261024051610160526102c051700100000000000000000000000000000000808206905090506101805261242b611d9c565b5b6000620200056102805160e05260c052604060c020555b6102c0600062010000818352015b6102a0516102c051111561246457612548565b6102205160016102c0516201000081101561254c5702620200086102805160e05260c052604060c02001541415612538576102a0516102c05110156124f25760016102a0516201000081101561254c5702620200086102805160e05260c052604060c020015460016102c0516201000081101561254c5702620200086102805160e05260c052604060c02001555b600060016102a0516201000081101561254c5702620200086102805160e05260c052604060c02001556102a051620200096102805160e05260c052604060c02055612548565b8151600101808352811415612451575b5050565b600080fd5b61003961258a0361003960003961003961258a036000f35b600080fd0000000000000000000000000000000022d53366457f9d5e68ec105046fc4383
Deployed Bytecode
0x600436101561000d57611974565b60046000601c376f7fffffffffffffffffffffffffffffff6040526000513461254c5763a87df06c8114156100475760006101805261005b565b636982eb0b8114156100be57604435610180525b6004358060a01c61254c57809050610140526024358060a01c61254c57809050610160526101605161014051186101a0526001610180516201000081101561254c5702620200086101a05160e05260c052604060c02001546101c05260206101c0f35b63940494f18114156100fe576004358060a01c61254c5780905061014052600a620100026101405160e05260c052604060c0200154610160526020610160f35b639ac90d3d8114156101f5576004358060a01c61254c57809050610140526101003661016037600a620100026101405160e05260c052604060c02001546102605261028060006008818352015b6102605161028051141561015e576101ab565b600161028051600881101561254c57026002620100026101405160e05260c052604060c02001015461016061028051600881101561254c576020020152815160010180835281141561014b575b50506101605161028052610180516102a0526101a0516102c0526101c0516102e0526101e05161030052610200516103205261022051610340526102405161036052610100610280f35b6352b5155581141561034f576004358060a01c61254c57809050610140526001620100026101405160e05260c052604060c0200154610160526101003661018037600a620100026101405160e05260c052604060c0200154604051811161254c57610280526102a060006008818352015b610280516102a051141561027957610305565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86102a05180820280607f1d8160801d141561254c578090509050905060008112156102cd5761016051816000031c6102d4565b61016051811b5b9050610100808206905090506101806102a051600881101561254c5760200201528151600101808352811415610266575b5050610180516102a0526101a0516102c0526101c0516102e0526101e0516103005261020051610320526102205161034052610240516103605261026051610380526101006102a0f35b6356059ffb81141561048a576004358060a01c61254c578090506101405261028036610160376103e06000600a818352015b60016103e051600a81101561254c57026202000a6101405160e05260c052604060c020015461040052610400516103b7576103e0565b610400516101606103e051600a81101561254c5760200201528151600101808352811415610381575b5050610160516103e05261018051610400526101a051610420526101c051610440526101e051610460526102005161048052610220516104a052610240516104c052610260516104e05261028051610500526102a051610520526102c051610540526102e051610560526103005161058052610320516105a052610340516105c052610360516105e05261038051610600526103a051610620526103c051610640526102806103e0f35b6392e3cc2d81141561050c576004358060a01c61254c578090506102c0526102c051610140526104bb6102e061197a565b6102e080516103e0528060200151610400528060400151610420528060600151610440528060800151610460528060a00151610480528060c001516104a0528060e001516104c052506101006103e0f35b63c5b7074a811415610570576004358060a01c61254c578090506101405263bb7b8b80610160526020610160600461017c620200066101405160e05260c052604060c020545afa1561254c57601f3d111561254c57610160516101a05260206101a0f35b6355b30b198114156105c4576004358060a01c61254c578090506101405263f446c1d0610160526020610160600461017c610140515afa1561254c57601f3d111561254c57610160516101a05260206101a0f35b63e3663c99811415610618576004358060a01c61254c5780905061014052630f529ba2610160526020610160600461017c610140515afa1561254c57601f3d111561254c57610160516101a05260206101a0f35b637c400ccf81141561066c576004358060a01c61254c578090506101405263b1373929610160526020610160600461017c610140515afa1561254c57601f3d111561254c57610160516101a05260206101a0f35b637cdb72b081141561074d576004358060a01c61254c578090506101405263ddca3f43610160526020610160600461017c610140515afa1561254c57601f3d111561254c57610160516102605263fee3f7f96101a05260206101a060046101bc610140515afa1561254c57601f3d111561254c576101a051610280526392526c0c6101e05260206101e060046101fc610140515afa1561254c57601f3d111561254c576101e0516102a05263ee8de675610220526020610220600461023c610140515afa1561254c57601f3d111561254c57610220516102c0526080610260f35b63c11e45b8811415610954576004358060a01c61254c578090506102c0526102c0516101405261077e6103e061197a565b6103e080516102e0528060200151610300528060400151610320528060600151610340528060800151610360528060a00151610380528060c001516103a0528060e001516103c05250600a620100026102c05160e05260c052604060c02001546103e05261040060006008818352015b600161040051600881101561254c57026002620100026102c05160e05260c052604060c020010154610420526103e05161040051141561082d5761090a565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61042051141561088e576102c051316102e061040051600881101561254c57602002015180821061254c57808203905090506102e061040051600881101561254c5760200201526108fa565b6370a08231610440526102c051610460526020610440602461045c610420515afa1561254c57601f3d111561254c57610440516102e061040051600881101561254c57602002015180821061254c57808203905090506102e061040051600881101561254c5760200201525b81516001018083528114156107ee575b50506102e051610400526103005161042052610320516104405261034051610460526103605161048052610380516104a0526103a0516104c0526103c0516104e052610100610400f35b63eb85226d811415610aaa576004358060a01c61254c57809050610140526024358060a01c61254c57809050610160526044358060a01c61254c57809050610180526060366101a03761020060006008818352015b600161020051600881101561254c57026002620100026101405160e05260c052604060c02001015461022052610220516109e85760006101e052610a61565b61016051610220511415610a0357610200516101a052610a24565b61018051610220511415610a1e57610200516101c052610a23565b610a51565b5b6101e05115610a4a575050506101a051610240526101c051610260526040610240610aa8565b60016101e0525b81516001018083528114156109a9575b50506308c379a0610200526020610220526013610240527f4e6f20617661696c61626c65206d61726b6574000000000000000000000000006102605261024050606461021cfd5bf35b635c911741811415610b80576004358060a01c61254c5780905061014052610160806020808252600b620100026101405160e05260c052604060c0200181840180828082602082540161012060006003818352015b82610120516020021115610b1257610b33565b61012051850154610120516020028501528151600101808352811415610aff575b5050505050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f82010390509050905090508101905080905090509050610160f35b6398aede16811415610bc0576004358060a01c61254c57809050610140526002620100046101405160e05260c052604060c0200154610160526020610160f35b635d211982811415610c1f576004358060a01c61254c578090506101405260016024356f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101405160e05260c052604060c020010154610160526020610160f35b63c927255f811415610f6b576004358060a01c61254c578090506103e0526044358060a01c61254c57809050610400526064358060a01c61254c57809050610420526084358060a01c61254c578090506104405260c435600401604081351161254c5780803560200180826104603750505063f851a4406104c05260206104c060046104dc6000545afa1561254c57601f3d111561254c576104c05133141561254c57600061040051181561254c576002620100026103e05160e05260c052604060c020015461254c57620200066104005160e05260c052604060c0205461254c5762010001546104c0526103e05160016104c0516201000081101561254c5702600101556104c0516001818183011061254c578082019050905062010001556104c051620100026103e05160e05260c052604060c02055602435600a620100026103e05160e05260c052604060c020015561046080600b620100026103e05160e05260c052604060c02001602082510161012060006003818352015b82610120516020021115610daf57610dd0565b61012051602002850151610120518501558151600101808352811415610d9c575b5050505050506103e051620200066104005160e05260c052604060c0205561040051620200076103e05160e05260c052604060c020556103e0516101e05260243561020052610e206105e0611f55565b6105e080516104e0528060200151610500528060400151610520528060600151610540528060800151610560528060a00151610580528060c001516105a0528060e001516105c0525060a4356105e0526105e051610ed3576104e0516101405261050051610160526105205161018052610540516101a052610560516101c052610580516101e0526105a051610200526105c0516102205260243561024052610eca6106006121e3565b610600516105e0525b6105e0516001620100026103e05160e05260c052604060c02001556000610440511815610f1357610440516202000b6103e05160e05260c052604060c020555b6000610420511815610f3857610420516202000a6103e05160e05260c052604060c020555b426202000c556103e0517f73cca62ab1b520c9715bf4e6c71e3e518c754e7148f65102f43289a7df0efea66000610600a2005b63474932b0811415611355576004358060a01c61254c578090506102e05263f851a440610300526020610300600461031c6000545afa1561254c57601f3d111561254c576103005133141561254c5760006002620100026102e05160e05260c052604060c0200154181561254c57600062020006620200076102e05160e05260c052604060c0205460e05260c052604060c020556000620200076102e05160e05260c052604060c02055620100026102e05160e05260c052604060c02054610300526201000154600180821061254c578082039050905061032052610320516103005110156110a1576001610320516201000081101561254c57026001015461034052610340516001610300516201000081101561254c57026001015561030051620100026103405160e05260c052604060c020555b60006001610320516201000081101561254c57026001015561032051620100015560006001620100026102e05160e05260c052604060c02001556000600a620100026102e05160e05260c052604060c020015560006103405261034080600b620100026102e05160e05260c052604060c02001602082510161012060006001818352015b8261012051602002111561113857611159565b61012051602002850151610120518501558151600101808352811415611125575b505050505050610100366103403761044060006008818352015b600161044051600881101561254c57026002620100026102e05160e05260c052604060c02001015461034061044051600881101561254c57602002015261034061044051600881101561254c5760200201516111ce57611229565b6000600161044051600881101561254c57026002620100026102e05160e05260c052604060c02001015561034061044051600881101561254c57602002015161014052611219611c8a565b8151600101808352811415611173575b505061044060006008818352015b61034061044051600881101561254c576020020151610460526104605161125d576112ed565b610440516001818183011061254c5780820190509050610480526104a0610480516008818352015b6103406104a051600881101561254c5760200201516104c0526104c0516112ab576112db565b6102e0516102205261046051610240526104c051610260526112cb61230b565b8151600101808352811415611285575b50508151600101808352811415611237575b505060006202000b6102e05160e05260c052604060c0205418156113225760006202000b6102e05160e05260c052604060c020555b426202000c556102e0517f4106dfdaa577573db51c0ca93f766dbedfa0758faa2e7f5bcdb7c142be803c3f6000610440a2005b63ef6b9788811415611580576004358060a01c61254c57809050610140526024358060a01c61254c57809050610160526044358060a01c61254c57809050610180526064358060a01c61254c578090506101a0526084358060a01c61254c578090506101c05260a4358060a01c61254c578090506101e05260c4358060a01c61254c578090506102005260e4358060a01c61254c5780905061022052610104358060a01c61254c5780905061024052610124358060a01c61254c5780905061026052610144358060a01c61254c578090506102805263f851a4406102a05260206102a060046102bc6000545afa1561254c57601f3d111561254c576102a05133141561254c57620200076101405160e05260c052604060c020546102a0526102c06000600a818352015b6101606102c051600a81101561254c5760200201516102e05260006102e0511815611507576102a0516382c63066610300526020610300600461031c6102e0515afa1561254c57601f3d111561254c5761030051141561254c576102e05160016102c051600a81101561254c57026202000a6101405160e05260c052604060c0200155611566565b600060016102c051600a81101561254c57026202000a6101405160e05260c052604060c0200154181561156057600060016102c051600a81101561254c57026202000a6101405160e05260c052604060c0200155611565565b611576565b5b815160010180835281141561147f575b5050426202000c55005b63fec61ef58114156117f3576004358060a01c61254c57809050610140526024358060a01c61254c57809050610160526044358060a01c61254c57809050610180526064358060a01c61254c578090506101a0526084358060a01c61254c578090506101c05260a4358060a01c61254c578090506101e05260c4358060a01c61254c578090506102005260e4358060a01c61254c5780905061022052610104358060a01c61254c5780905061024052610124358060a01c61254c5780905061026052610144358060a01c61254c5780905061028052610164358060a01c61254c578090506102a052610184358060a01c61254c578090506102c0526101a4358060a01c61254c578090506102e0526101c4358060a01c61254c57809050610300526101e4358060a01c61254c5780905061032052610204358060a01c61254c5780905061034052610224358060a01c61254c5780905061036052610244358060a01c61254c5780905061038052610264358060a01c61254c578090506103a05263f851a4406103c05260206103c060046103dc6000545afa1561254c57601f3d111561254c576103c05133141561254c576103c06000600a818352015b6101406103c051600a81101561254c5760200201516103e0526103e051611763576117e9565b6102806103c051600a81101561254c57602002015161040052620200076103e05160e05260c052604060c020546382c63066610420526020610420600461043c610400515afa1561254c57601f3d111561254c5761042051141561254c57610400516202000a6103e05160e05260c052604060c02055815160010180835281141561173d575b5050426202000c55005b63ce50c2e781141561180d57600054610140526020610140f35b633a1d5d8e8114156118395760016004356201000081101561254c570260010154610140526020610140f35b63956aae3a811415611855576201000154610140526020610140f35b635075770f811415611871576201000354610140526020610140f35b6345f0db2481141561189f5760016004356201000081101561254c5702620100050154610140526020610140f35b63bdf475c38114156118dc576004358060a01c61254c5780905061014052620200066101405160e05260c052604060c02054610160526020610160f35b6337951049811415611919576004358060a01c61254c5780905061014052620200076101405160e05260c052604060c02054610160526020610160f35b6355335d7b811415611956576004358060a01c61254c57809050610140526202000b6101405160e05260c052604060c02054610160526020610160f35b6368900961811415611972576202000c54610140526020610140f35b505b60006000fd5b610100366101603761026060006008818352015b600161026051600881101561254c57026002620100026101405160e05260c052604060c0200101546119cb57600061026051181561254c57611a23565b634903b0d161028052610260516102a0526020610280602461029c610140515afa1561254c57601f3d111561254c576102805161016061026051600881101561254c576020020152815160010180835281141561198e575b50506101605181526101805181602001526101a05181604001526101c05181606001526101e0518160800152610200518160a00152610220518160c00152610240518160e0015250565b6001620100046101405160e05260c052604060c0200154611ae15762010003546101605261016051620100046101405160e05260c052604060c02055610140516001610160516201000081101561254c57026201000501556201000380546001818183011061254c57808201905090508155505b6001620100046101405160e05260c052604060c0200180546001818183011061254c5780820190509050815550565b6002620100046101405160e05260c052604060c02001546101a0526101605160016101a0516f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101405160e05260c052604060c0200101556002620100046101405160e05260c052604060c0200180546001818183011061254c57808201905090508155506002620100046101605160e05260c052604060c02001546101c0526101405160016101c0516f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101605160e05260c052604060c0200101556002620100046101605160e05260c052604060c0200180546001818183011061254c578082019050905081555061016051610140511015611c58576101c05160801b6101a051818183011061254c5780820190509050620200056101805160e05260c052604060c02055611c88565b6101a05160801b6101c051818183011061254c5780820190509050620200056101805160e05260c052604060c020555b565b6001620100046101405160e05260c052604060c020018054600180821061254c57808203905090508155506001620100046101405160e05260c052604060c0200154611d9a57620100038054600180821061254c5780820390509050815550620100035461016052620100046101405160e05260c052604060c020546101805261016051610180511015611d69576001610160516201000081101561254c57026201000501546101a0526101a0516001610180516201000081101561254c570262010005015561018051620100046101a05160e05260c052604060c020555b6000620100046101405160e05260c052604060c0205560006001610160516201000081101561254c57026201000501555b565b6002620100046101405160e05260c052604060c020018054600180821061254c57808203905090508155506002620100046101405160e05260c052604060c02001546101a0526101a051610180511015611f1a5760016101a0516f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101405160e05260c052604060c0200101546101c0526101c05161014051186101e052620200056101e05160e05260c052604060c02054610200526101c051610140511015611e95576102005160801c60801b61018051818183011061254c5780820190509050620200056101e05160e05260c052604060c02055611ede565b6101805160801b6102005170010000000000000000000000000000000080820690509050818183011061254c5780820190509050620200056101e05160e05260c052604060c020555b6101c0516001610180516f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101405160e05260c052604060c0200101555b600060016101a0516f7fffffffffffffffffffffffffffffff81101561254c57026003620100046101405160e05260c052604060c020010155565b610120366102203761034060006008818352015b61020051610340511415611f7c57612013565b63c66106576103605261034051610380526020610360602461037c6101e0515afa1561254c57601f3d111561254c57610360518060a01c61254c578090506103205261032051600161034051600881101561254c57026002620100026101e05160e05260c052604060c0200101556103205161022061034051600881101561254c5760200201528151600101808352811415611f69575b505061034060006008818352015b6102005161034051141561203457612199565b61022061034051600881101561254c57602002015161014052612055611a6d565b610340516001818183011061254c578082019050905061036052610380610360516008818352015b6102005161038051141561209057612187565b61022061038051600881101561254c57602002015161022061034051600881101561254c576020020151186103a052620200096103a05160e05260c052604060c020546103c0526101e05160016103c0516201000081101561254c5702620200086103a05160e05260c052604060c02001556103c0516001818183011061254c5780820190509050620200096103a05160e05260c052604060c020556103c0516121775761022061038051600881101561254c5760200201516101405261022061034051600881101561254c576020020151610160526103a05161018052612176611b10565b5b815160010180835281141561207d575b50508151600101808352811415612021575b50506102205181526102405181602001526102605181604001526102805181606001526102a05181608001526102c0518160a001526102e0518160c00152610300518160e0015250565b6040366102603761024051604051811161254c576102a0526102c060006008818352015b6102a0516102c051141561221a57612300565b6101406102c051600881101561254c5760200201516102e05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6102e051141561225d5760126102805261229a565b63313ce567610300526020610300600461031c6102e0515afa1561254c57601f3d111561254c57610300516102805261010061028051101561254c575b61026080516102c051600880820280607f1d8160801d141561254c578090509050905060008112156122d45761028051816000031c6122db565b61028051811b5b9050818183011061254c57808201905090508152508151600101808352811415612207575b505061026051815250565b61026051610240511861028052620200096102805160e05260c052604060c02054600180821061254c57808203905090506102a0526102a05161244357620200056102805160e05260c052604060c020546102c052610260516102405110156123cf57610240516101405261026051610160526102c05170010000000000000000000000000000000080820690509050610180526123a7611d9c565b610260516101405261024051610160526102c05160801c610180526123ca611d9c565b61242c565b610240516101405261026051610160526102c05160801c610180526123f2611d9c565b610260516101405261024051610160526102c051700100000000000000000000000000000000808206905090506101805261242b611d9c565b5b6000620200056102805160e05260c052604060c020555b6102c0600062010000818352015b6102a0516102c051111561246457612548565b6102205160016102c0516201000081101561254c5702620200086102805160e05260c052604060c02001541415612538576102a0516102c05110156124f25760016102a0516201000081101561254c5702620200086102805160e05260c052604060c020015460016102c0516201000081101561254c5702620200086102805160e05260c052604060c02001555b600060016102a0516201000081101561254c5702620200086102805160e05260c052604060c02001556102a051620200096102805160e05260c052604060c02055612548565b8151600101808352811415612451575b5050565b600080fd
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
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.