This nametag was submitted by Kleros Scout.
Latest 25 from a total of 139,991 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Remove_liquidity... | 147688147 | 2 days ago | IN | 0 ETH | 0.000010616778 | ||||
| Remove_liquidity... | 147681943 | 2 days ago | IN | 0 ETH | 0.000000248006 | ||||
| Remove_liquidity... | 147582704 | 4 days ago | IN | 0 ETH | 0.000000015508 | ||||
| Remove_liquidity | 147573127 | 4 days ago | IN | 0 ETH | 0.000000052283 | ||||
| Remove_liquidity... | 147538178 | 5 days ago | IN | 0 ETH | 0.000000229127 | ||||
| Remove_liquidity... | 147426395 | 8 days ago | IN | 0 ETH | 0.000000623489 | ||||
| Remove_liquidity | 147413435 | 8 days ago | IN | 0 ETH | 0.000000126351 | ||||
| Remove_liquidity... | 147402117 | 8 days ago | IN | 0 ETH | 0.00000031255 | ||||
| Remove_liquidity... | 147342479 | 10 days ago | IN | 0 ETH | 0.000000028998 | ||||
| Remove_liquidity... | 147334821 | 10 days ago | IN | 0 ETH | 0.000000015079 | ||||
| Remove_liquidity... | 147309113 | 10 days ago | IN | 0 ETH | 0.000000274052 | ||||
| Remove_liquidity... | 147270581 | 11 days ago | IN | 0 ETH | 0.000000235852 | ||||
| Remove_liquidity... | 147211436 | 13 days ago | IN | 0 ETH | 0.000000031975 | ||||
| Remove_liquidity... | 147211038 | 13 days ago | IN | 0 ETH | 0.000000030831 | ||||
| Remove_liquidity... | 147207445 | 13 days ago | IN | 0 ETH | 0.000000142076 | ||||
| Remove_liquidity... | 147177907 | 13 days ago | IN | 0 ETH | 0.00000007366 | ||||
| Remove_liquidity... | 147171944 | 14 days ago | IN | 0 ETH | 0.000000010875 | ||||
| Remove_liquidity... | 147082501 | 16 days ago | IN | 0 ETH | 0.000000028391 | ||||
| Remove_liquidity... | 147051919 | 16 days ago | IN | 0 ETH | 0.000000085761 | ||||
| Remove_liquidity... | 147043069 | 17 days ago | IN | 0 ETH | 0.000000232781 | ||||
| Add_liquidity | 146973443 | 18 days ago | IN | 0 ETH | 0.000000301604 | ||||
| Remove_liquidity... | 146949096 | 19 days ago | IN | 0 ETH | 0.000000012238 | ||||
| Remove_liquidity... | 146869791 | 21 days ago | IN | 0 ETH | 0.000000001219 | ||||
| Remove_liquidity... | 146864098 | 21 days ago | IN | 0 ETH | 0.000000025832 | ||||
| Remove_liquidity... | 146844645 | 21 days ago | IN | 0 ETH | 0.000000005513 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 107555655 | 931 days ago | 0 ETH | ||||
| 107555655 | 931 days ago | 0 ETH | ||||
| 107555655 | 931 days ago | 0 ETH | ||||
| 107555655 | 931 days ago | 0 ETH | ||||
| 107555655 | 931 days ago | 0 ETH | ||||
| 107555280 | 931 days ago | 0 ETH | ||||
| 107555280 | 931 days ago | 0 ETH | ||||
| 107555280 | 931 days ago | 0 ETH | ||||
| 107555280 | 931 days ago | 0 ETH | ||||
| 107555280 | 931 days ago | 0 ETH | ||||
| 107555280 | 931 days ago | 0 ETH | ||||
| 107555280 | 931 days ago | 0 ETH | ||||
| 107555280 | 931 days ago | 0 ETH | ||||
| 107555280 | 931 days ago | 0 ETH | ||||
| 107555280 | 931 days ago | 0 ETH | ||||
| 107555181 | 931 days ago | 0 ETH | ||||
| 107555181 | 931 days ago | 0 ETH | ||||
| 107555181 | 931 days ago | 0 ETH | ||||
| 107555181 | 931 days ago | 0 ETH | ||||
| 107555181 | 931 days ago | 0 ETH | ||||
| 107553907 | 931 days ago | 0 ETH | ||||
| 107553907 | 931 days ago | 0 ETH | ||||
| 107553907 | 931 days ago | 0 ETH | ||||
| 107553907 | 931 days ago | 0 ETH | ||||
| 107553907 | 931 days ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.3.1
Contract Source Code (Vyper language format)
# @version 0.3.1
"""
@title "Zap" Depositer for permissionless factory metapools
@author Curve.Fi
@license Copyright (c) Curve.Fi, 2021 - all rights reserved
"""
interface ERC20:
def approve(_spender: address, _amount: uint256): nonpayable
def balanceOf(_owner: address) -> uint256: view
interface CurveMeta:
def add_liquidity(amounts: uint256[N_COINS], min_mint_amount: uint256, _receiver: address) -> uint256: nonpayable
def remove_liquidity(_amount: uint256, min_amounts: uint256[N_COINS]): nonpayable
def remove_liquidity_one_coin(_token_amount: uint256, i: int128, min_amount: uint256, _receiver: address) -> uint256: nonpayable
def remove_liquidity_imbalance(amounts: uint256[N_COINS], max_burn_amount: uint256) -> uint256: nonpayable
def calc_withdraw_one_coin(_token_amount: uint256, i: int128) -> uint256: view
def calc_token_amount(amounts: uint256[N_COINS], deposit: bool) -> uint256: view
def coins(i: uint256) -> address: view
interface CurveBase:
def add_liquidity(amounts: uint256[BASE_N_COINS], min_mint_amount: uint256): nonpayable
def remove_liquidity(_amount: uint256, min_amounts: uint256[BASE_N_COINS]): nonpayable
def remove_liquidity_one_coin(_token_amount: uint256, i: int128, min_amount: uint256): nonpayable
def remove_liquidity_imbalance(amounts: uint256[BASE_N_COINS], max_burn_amount: uint256): nonpayable
def calc_withdraw_one_coin(_token_amount: uint256, i: int128) -> uint256: view
def calc_token_amount(amounts: uint256[BASE_N_COINS], deposit: bool) -> uint256: view
def coins(i: uint256) -> address: view
def fee() -> uint256: view
BASE_POOL: constant(address) = 0x1337BedC9D22ecbe766dF105c9623922A27963EC
BASE_N_COINS: constant(int128) = 3
BASE_COINS: constant(address[BASE_N_COINS]) = [
0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1,
0x7F5c764cBc14f9669B88837ca1490cCa17c31607,
0x94b008aA00579c1307B0EF2c499aD98a8ce58e58
]
BASE_LP_TOKEN: constant(address) = 0x1337BedC9D22ecbe766dF105c9623922A27963EC
N_COINS: constant(int128) = 2
MAX_COIN: constant(int128) = N_COINS-1
N_ALL_COINS: constant(int128) = N_COINS + BASE_N_COINS - 1
FEE_DENOMINATOR: constant(uint256) = 10 ** 10
FEE_IMPRECISION: constant(uint256) = 100 * 10 ** 8 # % of the fee
# coin -> pool -> is approved to transfer?
is_approved: HashMap[address, HashMap[address, bool]]
@external
def __init__():
"""
@notice Contract constructor
"""
for coin in BASE_COINS:
ERC20(coin).approve(BASE_POOL, MAX_UINT256)
@external
def add_liquidity(
_pool: address,
_deposit_amounts: uint256[N_ALL_COINS],
_min_mint_amount: uint256,
_receiver: address = msg.sender,
) -> uint256:
"""
@notice Wrap underlying coins and deposit them into `_pool`
@param _pool Address of the pool to deposit into
@param _deposit_amounts List of amounts of underlying coins to deposit
@param _min_mint_amount Minimum amount of LP tokens to mint from the deposit
@param _receiver Address that receives the LP tokens
@return Amount of LP tokens received by depositing
"""
meta_amounts: uint256[N_COINS] = empty(uint256[N_COINS])
base_amounts: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS])
deposit_base: bool = False
base_coins: address[BASE_N_COINS] = BASE_COINS
if _deposit_amounts[0] != 0:
coin: address = CurveMeta(_pool).coins(0)
if not self.is_approved[coin][_pool]:
ERC20(coin).approve(_pool, MAX_UINT256)
self.is_approved[coin][_pool] = True
response: Bytes[32] = raw_call(
coin,
_abi_encode(
msg.sender,
self,
_deposit_amounts[0],
method_id=method_id("transferFrom(address,address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
# hand fee on transfer
meta_amounts[0] = ERC20(coin).balanceOf(self)
for i in range(1, N_ALL_COINS):
amount: uint256 = _deposit_amounts[i]
if amount == 0:
continue
deposit_base = True
base_idx: uint256 = i - 1
coin: address = base_coins[base_idx]
response: Bytes[32] = raw_call(
coin,
_abi_encode(
msg.sender,
self,
amount,
method_id=method_id("transferFrom(address,address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
# Handle potential transfer fees (i.e. Tether/renBTC)
base_amounts[base_idx] = ERC20(coin).balanceOf(self)
# Deposit to the base pool
if deposit_base:
coin: address = BASE_LP_TOKEN
CurveBase(BASE_POOL).add_liquidity(base_amounts, 0)
meta_amounts[MAX_COIN] = ERC20(coin).balanceOf(self)
if not self.is_approved[coin][_pool]:
ERC20(coin).approve(_pool, MAX_UINT256)
self.is_approved[coin][_pool] = True
# Deposit to the meta pool
return CurveMeta(_pool).add_liquidity(meta_amounts, _min_mint_amount, _receiver)
@external
def remove_liquidity(
_pool: address,
_burn_amount: uint256,
_min_amounts: uint256[N_ALL_COINS],
_receiver: address = msg.sender
) -> uint256[N_ALL_COINS]:
"""
@notice Withdraw and unwrap coins from the pool
@dev Withdrawal amounts are based on current deposit ratios
@param _pool Address of the pool to deposit into
@param _burn_amount Quantity of LP tokens to burn in the withdrawal
@param _min_amounts Minimum amounts of underlying coins to receive
@param _receiver Address that receives the LP tokens
@return List of amounts of underlying coins that were withdrawn
"""
response: Bytes[32] = raw_call(
_pool,
_abi_encode(
msg.sender,
self,
_burn_amount,
method_id=method_id("transferFrom(address,address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
min_amounts_base: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS])
amounts: uint256[N_ALL_COINS] = empty(uint256[N_ALL_COINS])
# Withdraw from meta
meta_received: uint256[N_COINS] = empty(uint256[N_COINS])
CurveMeta(_pool).remove_liquidity(_burn_amount, [_min_amounts[0], convert(0, uint256)])
coins: address[N_COINS] = empty(address[N_COINS])
for i in range(N_COINS):
coin: address = CurveMeta(_pool).coins(i)
coins[i] = coin
# Handle fee on transfer for the first coin
meta_received[i] = ERC20(coin).balanceOf(self)
# Withdraw from base
for i in range(BASE_N_COINS):
min_amounts_base[i] = _min_amounts[MAX_COIN+i]
CurveBase(BASE_POOL).remove_liquidity(meta_received[MAX_COIN], min_amounts_base)
# Transfer all coins out
response = raw_call(
coins[0], # metapool coin 0
_abi_encode(
_receiver,
meta_received[0],
method_id=method_id("transfer(address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
amounts[0] = meta_received[0]
base_coins: address[BASE_N_COINS] = BASE_COINS
for i in range(1, N_ALL_COINS):
coin: address = base_coins[i-1]
# handle potential fee on transfer
amounts[i] = ERC20(coin).balanceOf(self)
response = raw_call(
coin,
_abi_encode(
_receiver,
amounts[i],
method_id=method_id("transfer(address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
return amounts
@external
def remove_liquidity_one_coin(
_pool: address,
_burn_amount: uint256,
i: int128,
_min_amount: uint256,
_receiver: address=msg.sender
) -> uint256:
"""
@notice Withdraw and unwrap a single coin from the pool
@param _pool Address of the pool to deposit into
@param _burn_amount Amount of LP tokens to burn in the withdrawal
@param i Index value of the coin to withdraw
@param _min_amount Minimum amount of underlying coin to receive
@param _receiver Address that receives the LP tokens
@return Amount of underlying coin received
"""
response: Bytes[32] = raw_call(
_pool,
_abi_encode(
msg.sender,
self,
_burn_amount,
method_id=method_id("transferFrom(address,address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
coin_amount: uint256 = 0
if i == 0:
coin_amount = CurveMeta(_pool).remove_liquidity_one_coin(_burn_amount, i, _min_amount, _receiver)
else:
base_coins: address[BASE_N_COINS] = BASE_COINS
coin: address = base_coins[i - MAX_COIN]
# Withdraw a base pool coin
coin_amount = CurveMeta(_pool).remove_liquidity_one_coin(_burn_amount, MAX_COIN, 0, self)
CurveBase(BASE_POOL).remove_liquidity_one_coin(coin_amount, i-MAX_COIN, _min_amount)
coin_amount = ERC20(coin).balanceOf(self)
response = raw_call(
coin,
_abi_encode(
_receiver,
coin_amount,
method_id=method_id("transfer(address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
return coin_amount
@external
def remove_liquidity_imbalance(
_pool: address,
_amounts: uint256[N_ALL_COINS],
_max_burn_amount: uint256,
_receiver: address=msg.sender
) -> uint256:
"""
@notice Withdraw coins from the pool in an imbalanced amount
@param _pool Address of the pool to deposit into
@param _amounts List of amounts of underlying coins to withdraw
@param _max_burn_amount Maximum amount of LP token to burn in the withdrawal
@param _receiver Address that receives the LP tokens
@return Actual amount of the LP token burned in the withdrawal
"""
fee: uint256 = CurveBase(BASE_POOL).fee() * BASE_N_COINS / (4 * (BASE_N_COINS - 1))
fee += fee * FEE_IMPRECISION / FEE_DENOMINATOR # Overcharge to account for imprecision
# Transfer the LP token in
response: Bytes[32] = raw_call(
_pool,
_abi_encode(
msg.sender,
self,
_max_burn_amount,
method_id=method_id("transferFrom(address,address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
withdraw_base: bool = False
amounts_base: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS])
amounts_meta: uint256[N_COINS] = empty(uint256[N_COINS])
# determine amounts to withdraw from base pool
for i in range(BASE_N_COINS):
amount: uint256 = _amounts[MAX_COIN + i]
if amount != 0:
amounts_base[i] = amount
withdraw_base = True
# determine amounts to withdraw from metapool
amounts_meta[0] = _amounts[0]
if withdraw_base:
amounts_meta[MAX_COIN] = CurveBase(BASE_POOL).calc_token_amount(amounts_base, False)
amounts_meta[MAX_COIN] += amounts_meta[MAX_COIN] * fee / FEE_DENOMINATOR + 1
# withdraw from metapool and return the remaining LP tokens
burn_amount: uint256 = CurveMeta(_pool).remove_liquidity_imbalance(amounts_meta, _max_burn_amount)
response = raw_call(
_pool,
_abi_encode(
msg.sender,
_max_burn_amount - burn_amount,
method_id=method_id("transfer(address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
# withdraw from base pool
if withdraw_base:
CurveBase(BASE_POOL).remove_liquidity_imbalance(amounts_base, amounts_meta[MAX_COIN])
coin: address = BASE_LP_TOKEN
leftover: uint256 = ERC20(coin).balanceOf(self)
if leftover > 0:
# if some base pool LP tokens remain, re-deposit them for the caller
if not self.is_approved[coin][_pool]:
ERC20(coin).approve(_pool, MAX_UINT256)
self.is_approved[coin][_pool] = True
burn_amount -= CurveMeta(_pool).add_liquidity([convert(0, uint256), leftover], 0, msg.sender)
# transfer withdrawn base pool tokens to caller
base_coins: address[BASE_N_COINS] = BASE_COINS
for i in range(BASE_N_COINS):
response = raw_call(
base_coins[i],
_abi_encode(
_receiver,
ERC20(base_coins[i]).balanceOf(self), # handle potential transfer fees
method_id=method_id("transfer(address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
# transfer withdrawn metapool tokens to caller
if _amounts[0] > 0:
coin: address = CurveMeta(_pool).coins(0)
response = raw_call(
coin,
_abi_encode(
_receiver,
ERC20(coin).balanceOf(self), # handle potential fees
method_id=method_id("transfer(address,uint256)"),
),
max_outsize=32
)
if len(response) != 0:
assert convert(response, bool)
return burn_amount
@view
@external
def calc_withdraw_one_coin(_pool: address, _token_amount: uint256, i: int128) -> uint256:
"""
@notice Calculate the amount received when withdrawing and unwrapping a single coin
@param _pool Address of the pool to deposit into
@param _token_amount Amount of LP tokens to burn in the withdrawal
@param i Index value of the underlying coin to withdraw
@return Amount of coin received
"""
if i < MAX_COIN:
return CurveMeta(_pool).calc_withdraw_one_coin(_token_amount, i)
else:
_base_tokens: uint256 = CurveMeta(_pool).calc_withdraw_one_coin(_token_amount, MAX_COIN)
return CurveBase(BASE_POOL).calc_withdraw_one_coin(_base_tokens, i-MAX_COIN)
@view
@external
def calc_token_amount(_pool: address, _amounts: uint256[N_ALL_COINS], _is_deposit: bool) -> uint256:
"""
@notice Calculate addition or reduction in token supply from a deposit or withdrawal
@dev This calculation accounts for slippage, but not fees.
Needed to prevent front-running, not for precise calculations!
@param _pool Address of the pool to deposit into
@param _amounts Amount of each underlying coin being deposited
@param _is_deposit set True for deposits, False for withdrawals
@return Expected amount of LP tokens received
"""
meta_amounts: uint256[N_COINS] = empty(uint256[N_COINS])
base_amounts: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS])
meta_amounts[0] = _amounts[0]
for i in range(BASE_N_COINS):
base_amounts[i] = _amounts[i + MAX_COIN]
base_tokens: uint256 = CurveBase(BASE_POOL).calc_token_amount(base_amounts, _is_deposit)
meta_amounts[MAX_COIN] = base_tokens
return CurveMeta(_pool).calc_token_amount(meta_amounts, _is_deposit)Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"stateMutability":"nonpayable","type":"constructor","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"add_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_deposit_amounts","type":"uint256[4]"},{"name":"_min_mint_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":121432},{"stateMutability":"nonpayable","type":"function","name":"add_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_deposit_amounts","type":"uint256[4]"},{"name":"_min_mint_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":121432},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_burn_amount","type":"uint256"},{"name":"_min_amounts","type":"uint256[4]"}],"outputs":[{"name":"","type":"uint256[4]"}],"gas":47367},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_burn_amount","type":"uint256"},{"name":"_min_amounts","type":"uint256[4]"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256[4]"}],"gas":47367},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_one_coin","inputs":[{"name":"_pool","type":"address"},{"name":"_burn_amount","type":"uint256"},{"name":"i","type":"int128"},{"name":"_min_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":21060},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_one_coin","inputs":[{"name":"_pool","type":"address"},{"name":"_burn_amount","type":"uint256"},{"name":"i","type":"int128"},{"name":"_min_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":21060},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_imbalance","inputs":[{"name":"_pool","type":"address"},{"name":"_amounts","type":"uint256[4]"},{"name":"_max_burn_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":105451},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_imbalance","inputs":[{"name":"_pool","type":"address"},{"name":"_amounts","type":"uint256[4]"},{"name":"_max_burn_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":105451},{"stateMutability":"view","type":"function","name":"calc_withdraw_one_coin","inputs":[{"name":"_pool","type":"address"},{"name":"_token_amount","type":"uint256"},{"name":"i","type":"int128"}],"outputs":[{"name":"","type":"uint256"}],"gas":5845},{"stateMutability":"view","type":"function","name":"calc_token_amount","inputs":[{"name":"_pool","type":"address"},{"name":"_amounts","type":"uint256[4]"},{"name":"_is_deposit","type":"bool"}],"outputs":[{"name":"","type":"uint256"}],"gas":6777}]Contract Creation Code
73da10009cbd5d07dd0cecc66161fc93d7c9000da161012052737f5c764cbc14f9669b88837ca1490cca17c31607610140527394b008aa00579c1307b0ef2c499ad98a8ce58e586101605261010060006003818352015b60206101005102610120015160e05263095ea7b361018052731337bedc9d22ecbe766df105c9623922a27963ec6101a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101c05260e0513b15611a4b5760006000604461019c600060e0515af16100d4573d600060003e3d6000fd5b8151600101808352811415610056575050611a3356600436101561000d5761193e565b60046000601c37600051346119445763384e03db811861003157336101005261004c565b63d0b951e881186105b75760c4358060a01c61194457610100525b6004358060a01c6119445760e05260c0366101203773da10009cbd5d07dd0cecc66161fc93d7c9000da16101e052737f5c764cbc14f9669b88837ca1490cca17c31607610200527394b008aa00579c1307b0ef2c499ad98a8ce58e586102205260006024351461027f5763c6610657610260526000610280526020610260602461027c60e0515afa6100e3573d600060003e3d6000fd5b601f3d111561194457610260518060a01c611944576102405260006102405160a052608052604060802060e05160a0526080526040608020546101a25763095ea7b36102605260e051610280527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102a052610240513b156119445760006000604461027c6000610240515af161017f573d600060003e3d6000fd5b600160006102405160a052608052604060802060e05160a0526080526040608020555b6323b872dd6102a4526004336102c452306102e452602435610304526060016102a0526102a05060206103606102a0516102c06000610240515af16101ec573d600060003e3d6000fd5b61034060203d8082116101ff5781610201565b805b905090508152805160200180610260828460045afa905050506000610260511461024057610280516102605181816020036008021c9050905015611944575b6370a082316102a052306102c05260206102a060246102bc610240515afa61026d573d600060003e3d6000fd5b601f3d1115611944576102a051610120525b61024060016003818352015b602061024051026024013561026052610260516102a7576103cd565b60016101c0526102405160018082106119445780820390509050610280526101e06102805160038110156119445760200201516102a0526323b872dd610304526004336103245230610344526102605161036452606001610300526103005060206103c06103005161032060006102a0515af1610329573d600060003e3d6000fd5b6103a060203d80821161033c578161033e565b805b9050905081528051602001806102c0828460045afa9050505060006102c0511461037d576102e0516102c05181816020036008021c9050905015611944575b6370a082316103005230610320526020610300602461031c6102a0515afa6103aa573d600060003e3d6000fd5b601f3d111561194457610300516101606102805160038110156119445760200201525b815160010180835281141561028b5750506101c0511561055757731337bedc9d22ecbe766df105c9623922a27963ec61024052634515cef3610260526101605161028052610180516102a0526101a0516102c05260006102e052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000608461027c6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610473573d600060003e3d6000fd5b6370a082316102605230610280526020610260602461027c610240515afa6104a0573d600060003e3d6000fd5b601f3d111561194457610260516101405260006102405160a052608052604060802060e05160a0526080526040608020546105575763095ea7b36102605260e051610280527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102a052610240513b156119445760006000604461027c6000610240515af1610534573d600060003e3d6000fd5b600160006102405160a052608052604060802060e05160a0526080526040608020555b630c3e4b54610240526101205161026052610140516102805260a4356102a052610100516102c0526020610240608461025c600060e0515af161059f573d600060003e3d6000fd5b601f3d111561194457610240516102e05260206102e0f35b63ad5cc91881186105cc5733610100526105e7565b63cbc399e58118610ad15760c4358060a01c61194457610100525b6004358060a01c6119445760e0526323b872dd6101645260043361018452306101a4526024356101c4526060016101605261016050602061022061016051610180600060e0515af161063e573d600060003e3d6000fd5b61020060203d8082116106515781610653565b805b905090508152805160200180610120828460045afa905050506000610120511461069257610140516101205181816020036008021c9050905015611944575b6101203661016037635b36389c610280526024356102a0526044356102c05260006102e05260e0513b156119445760006000606461029c600060e0515af16106df573d600060003e3d6000fd5b604036610280376102c060006002818352015b63c6610657610300526102c051610320526020610300602461031c60e0515afa610721573d600060003e3d6000fd5b601f3d111561194457610300518060a01c611944576102e0526102e0516102806102c05160028110156119445760200201526370a082316103005230610320526020610300602461031c6102e0515afa610780573d600060003e3d6000fd5b601f3d111561194457610300516102406102c051600281101561194457602002015281516001018083528114156106f25750506102c060006003818352015b602060016102c0518181830110611944578082019050905002604401356101606102c051600381101561194457602002015281516001018083528114156107bf57505063ecb586a56102c052610260516102e052610160516103005261018051610320526101a05161034052731337bedc9d22ecbe766df105c9623922a27963ec3b15611944576000600060846102dc6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610877573d600060003e3d6000fd5b63a9059cbb6102c4526004610100516102e45261024051610304526040016102c0526102c05060206103606102c0516102e06000610280515af16108c0573d600060003e3d6000fd5b61034060203d8082116108d357816108d5565b805b905090508152805160200180610120828460045afa905050506000610120511461091457610140516101205181816020036008021c9050905015611944575b610240516101c05273da10009cbd5d07dd0cecc66161fc93d7c9000da16102c052737f5c764cbc14f9669b88837ca1490cca17c316076102e0527394b008aa00579c1307b0ef2c499ad98a8ce58e586103005261032060016003818352015b6102c061032051600180821061194457808203905090506003811015611944576020020151610340526370a082316103605230610380526020610360602461037c610340515afa6109c9573d600060003e3d6000fd5b601f3d111561194457610360516101c061032051600481101561194457602002015263a9059cbb61036452600461010051610384526101c06103205160048110156119445760200201516103a45260400161036052610360506020610400610360516103806000610340515af1610a45573d600060003e3d6000fd5b6103e060203d808211610a585781610a5a565b805b905090508152805160200180610120828460045afa9050505060006101205114610a9957610140516101205181816020036008021c9050905015611944575b81516001018083528114156109735750506101c051610320526101e05161034052610200516103605261022051610380526080610320f35b6329ed28628118610ae6573361012052610b01565b631e700cbb8118610e64576084358060a01c61194457610120525b6004358060a01c6119445760e0526044358060801d81607f1d1861194457610100526323b872dd610184526004336101a452306101c4526024356101e45260600161018052610180506020610240610180516101a0600060e0515af1610b6c573d600060003e3d6000fd5b61022060203d808211610b7f5781610b81565b805b905090508152805160200180610140828460045afa9050505060006101405114610bc057610160516101405181816020036008021c9050905015611944575b6000610180526101005115610dfc5773da10009cbd5d07dd0cecc66161fc93d7c9000da16101a052737f5c764cbc14f9669b88837ca1490cca17c316076101c0527394b008aa00579c1307b0ef2c499ad98a8ce58e586101e0526101a06101005160018082038060801d81607f1d18611944579050905060038110156119445760200201516102005263081579a56102205260243561024052600161026052600061028052306102a0526020610220608461023c600060e0515af1610c8a573d600060003e3d6000fd5b601f3d1115611944576102205161018052631a4d01d26102205261018051610240526101005160018082038060801d81607f1d1861194457905090506102605260643561028052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000606461023c6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610d1d573d600060003e3d6000fd5b6370a082316102205230610240526020610220602461023c610200515afa610d4a573d600060003e3d6000fd5b601f3d111561194457610220516101805263a9059cbb61022452600461012051610244526101805161026452604001610220526102205060206102c0610220516102406000610200515af1610da4573d600060003e3d6000fd5b6102a060203d808211610db75781610db9565b805b905090508152805160200180610140828460045afa9050505060006101405114610e5557610160516101405181816020036008021c905090501561194457610e55565b63081579a56101a0526024356101c052610100516101e05260643561020052610120516102205260206101a060846101bc600060e0515af1610e43573d600060003e3d6000fd5b601f3d1115611944576101a051610180525b610180516101a05260206101a0f35b63ac24f7718118610e79573361010052610e94565b634329c8cc81186116a05760c4358060a01c61194457610100525b6004358060a01c6119445760e05263ddca3f43610140526020610140600461015c731337bedc9d22ecbe766df105c9623922a27963ec5afa610edb573d600060003e3d6000fd5b601f3d1115611944576101405160038082028215828483041417156119445790509050600880820490509050610120526101208051610120516402540be40080820282158284830414171561194457905090506402540be40080820490509050818183011061194457808201905090508152506323b872dd610184526004336101a452306101c45260a4356101e45260600161018052610180506020610240610180516101a0600060e0515af1610f97573d600060003e3d6000fd5b61022060203d808211610faa5781610fac565b805b905090508152805160200180610140828460045afa9050505060006101405114610feb57610160516101405181816020036008021c9050905015611944575b60c0366101803761024060006003818352015b6020600161024051818183011061194457808201905090500260240135610260526000610260511461104a57610260516101a06102405160038110156119445760200201526001610180525b8151600101808352811415610ffe57505060243561020052610180511561112757633883e119610240526101a051610260526101c051610280526101e0516102a05260006102c0526020610240608461025c731337bedc9d22ecbe766df105c9623922a27963ec5afa6110c2573d600060003e3d6000fd5b601f3d11156119445761024051610220526102208051610220516101205180820282158284830414171561194457905090506402540be40080820490509050600181818301106119445780820190509050818183011061194457808201905090508152505b63e3103273610260526102005161028052610220516102a05260a4356102c0526020610260606461027c600060e0515af1611167573d600060003e3d6000fd5b601f3d111561194457610260516102405263a9059cbb610264526004336102845260a4356102405180821061194457808203905090506102a4526040016102605261026050602061030061026051610280600060e0515af16111ce573d600060003e3d6000fd5b6102e060203d8082116111e157816111e3565b805b905090508152805160200180610140828460045afa905050506000610140511461122257610160516101405181816020036008021c9050905015611944575b610180511561156d57639fdaea0c610260526101a051610280526101c0516102a0526101e0516102c052610220516102e052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000608461027c6000731337bedc9d22ecbe766df105c9623922a27963ec5af16112a0573d600060003e3d6000fd5b731337bedc9d22ecbe766df105c9623922a27963ec610260526370a082316102a052306102c05260206102a060246102bc610260515afa6112e6573d600060003e3d6000fd5b601f3d1115611944576102a05161028052600061028051111561140f5760006102605160a052608052604060802060e05160a0526080526040608020546113a95763095ea7b36102a05260e0516102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e052610260513b15611944576000600060446102bc6000610260515af1611386573d600060003e3d6000fd5b600160006102605160a052608052604060802060e05160a0526080526040608020555b6102408051630c3e4b546102a05260006102c052610280516102e052600061030052336103205260206102a060846102bc600060e0515af16113f0573d600060003e3d6000fd5b601f3d1115611944576102a05180821061194457808203905090508152505b73da10009cbd5d07dd0cecc66161fc93d7c9000da16102a052737f5c764cbc14f9669b88837ca1490cca17c316076102c0527394b008aa00579c1307b0ef2c499ad98a8ce58e586102e05261030060006003818352015b63a9059cbb61036452600461010051610384526370a082316103205230610340526020610320602461033c6102a06103005160038110156119445760200201515afa6114b7573d600060003e3d6000fd5b601f3d111561194457610320516103a452604001610360526103605060206104006103605161038060006102a06103005160038110156119445760200201515af1611507573d600060003e3d6000fd5b6103e060203d80821161151a578161151c565b805b905090508152805160200180610140828460045afa905050506000610140511461155b57610160516101405181816020036008021c9050905015611944575b81516001018083528114156114665750505b600060243511156116915763c66106576102805260006102a0526020610280602461029c60e0515afa6115a5573d600060003e3d6000fd5b601f3d111561194457610280518060a01c611944576102605263a9059cbb6102c4526004610100516102e4526370a0823161028052306102a0526020610280602461029c610260515afa6115fe573d600060003e3d6000fd5b601f3d11156119445761028051610304526040016102c0526102c05060206103606102c0516102e06000610260515af161163d573d600060003e3d6000fd5b61034060203d8082116116505781611652565b805b905090508152805160200180610140828460045afa905050506000610140511461169157610160516101405181816020036008021c9050905015611944575b61024051610260526020610260f35b6341b028f381186117ee576004358060a01c6119445760e0526044358060801d81607f1d1861194457610100526001610100511261179b5763cc2b27d761014052602435610160526001610180526020610140604461015c60e0515afa61170c573d600060003e3d6000fd5b601f3d111561194457610140516101205263cc2b27d76101405261012051610160526101005160018082038060801d81607f1d186119445790509050610180526020610140604461015c731337bedc9d22ecbe766df105c9623922a27963ec5afa61177c573d600060003e3d6000fd5b601f3d111561194457610140516101a05260206101a06117ec566117ec565b63cc2b27d7610120526024356101405261010051610160526020610120604461013c60e0515afa6117d1573d600060003e3d6000fd5b601f3d111561194457610120516101805260206101806117ec565bf35b63861cdef0811861193c576004358060a01c6119445760e05260a4358060011c611944576101005260a03661012037602435610120526101c060006003818352015b60206101c05160018181830110611944578082019050905002602401356101606101c05160038110156119445760200201528151600101808352811415611830575050633883e1196101e052610160516102005261018051610220526101a05161024052610100516102605260206101e060846101fc731337bedc9d22ecbe766df105c9623922a27963ec5afa6118cc573d600060003e3d6000fd5b601f3d1115611944576101e0516101c0526101c0516101405263ed8e84f36101e05261012051610200526101405161022052610100516102405260206101e060646101fc60e0515afa611924573d600060003e3d6000fd5b601f3d1115611944576101e051610260526020610260f35b505b60006000fd5b600080fd5b6100ea611a33036100ea6000396100ea611a33036000f35b600080fd
Deployed Bytecode
0x600436101561000d5761193e565b60046000601c37600051346119445763384e03db811861003157336101005261004c565b63d0b951e881186105b75760c4358060a01c61194457610100525b6004358060a01c6119445760e05260c0366101203773da10009cbd5d07dd0cecc66161fc93d7c9000da16101e052737f5c764cbc14f9669b88837ca1490cca17c31607610200527394b008aa00579c1307b0ef2c499ad98a8ce58e586102205260006024351461027f5763c6610657610260526000610280526020610260602461027c60e0515afa6100e3573d600060003e3d6000fd5b601f3d111561194457610260518060a01c611944576102405260006102405160a052608052604060802060e05160a0526080526040608020546101a25763095ea7b36102605260e051610280527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102a052610240513b156119445760006000604461027c6000610240515af161017f573d600060003e3d6000fd5b600160006102405160a052608052604060802060e05160a0526080526040608020555b6323b872dd6102a4526004336102c452306102e452602435610304526060016102a0526102a05060206103606102a0516102c06000610240515af16101ec573d600060003e3d6000fd5b61034060203d8082116101ff5781610201565b805b905090508152805160200180610260828460045afa905050506000610260511461024057610280516102605181816020036008021c9050905015611944575b6370a082316102a052306102c05260206102a060246102bc610240515afa61026d573d600060003e3d6000fd5b601f3d1115611944576102a051610120525b61024060016003818352015b602061024051026024013561026052610260516102a7576103cd565b60016101c0526102405160018082106119445780820390509050610280526101e06102805160038110156119445760200201516102a0526323b872dd610304526004336103245230610344526102605161036452606001610300526103005060206103c06103005161032060006102a0515af1610329573d600060003e3d6000fd5b6103a060203d80821161033c578161033e565b805b9050905081528051602001806102c0828460045afa9050505060006102c0511461037d576102e0516102c05181816020036008021c9050905015611944575b6370a082316103005230610320526020610300602461031c6102a0515afa6103aa573d600060003e3d6000fd5b601f3d111561194457610300516101606102805160038110156119445760200201525b815160010180835281141561028b5750506101c0511561055757731337bedc9d22ecbe766df105c9623922a27963ec61024052634515cef3610260526101605161028052610180516102a0526101a0516102c05260006102e052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000608461027c6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610473573d600060003e3d6000fd5b6370a082316102605230610280526020610260602461027c610240515afa6104a0573d600060003e3d6000fd5b601f3d111561194457610260516101405260006102405160a052608052604060802060e05160a0526080526040608020546105575763095ea7b36102605260e051610280527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102a052610240513b156119445760006000604461027c6000610240515af1610534573d600060003e3d6000fd5b600160006102405160a052608052604060802060e05160a0526080526040608020555b630c3e4b54610240526101205161026052610140516102805260a4356102a052610100516102c0526020610240608461025c600060e0515af161059f573d600060003e3d6000fd5b601f3d111561194457610240516102e05260206102e0f35b63ad5cc91881186105cc5733610100526105e7565b63cbc399e58118610ad15760c4358060a01c61194457610100525b6004358060a01c6119445760e0526323b872dd6101645260043361018452306101a4526024356101c4526060016101605261016050602061022061016051610180600060e0515af161063e573d600060003e3d6000fd5b61020060203d8082116106515781610653565b805b905090508152805160200180610120828460045afa905050506000610120511461069257610140516101205181816020036008021c9050905015611944575b6101203661016037635b36389c610280526024356102a0526044356102c05260006102e05260e0513b156119445760006000606461029c600060e0515af16106df573d600060003e3d6000fd5b604036610280376102c060006002818352015b63c6610657610300526102c051610320526020610300602461031c60e0515afa610721573d600060003e3d6000fd5b601f3d111561194457610300518060a01c611944576102e0526102e0516102806102c05160028110156119445760200201526370a082316103005230610320526020610300602461031c6102e0515afa610780573d600060003e3d6000fd5b601f3d111561194457610300516102406102c051600281101561194457602002015281516001018083528114156106f25750506102c060006003818352015b602060016102c0518181830110611944578082019050905002604401356101606102c051600381101561194457602002015281516001018083528114156107bf57505063ecb586a56102c052610260516102e052610160516103005261018051610320526101a05161034052731337bedc9d22ecbe766df105c9623922a27963ec3b15611944576000600060846102dc6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610877573d600060003e3d6000fd5b63a9059cbb6102c4526004610100516102e45261024051610304526040016102c0526102c05060206103606102c0516102e06000610280515af16108c0573d600060003e3d6000fd5b61034060203d8082116108d357816108d5565b805b905090508152805160200180610120828460045afa905050506000610120511461091457610140516101205181816020036008021c9050905015611944575b610240516101c05273da10009cbd5d07dd0cecc66161fc93d7c9000da16102c052737f5c764cbc14f9669b88837ca1490cca17c316076102e0527394b008aa00579c1307b0ef2c499ad98a8ce58e586103005261032060016003818352015b6102c061032051600180821061194457808203905090506003811015611944576020020151610340526370a082316103605230610380526020610360602461037c610340515afa6109c9573d600060003e3d6000fd5b601f3d111561194457610360516101c061032051600481101561194457602002015263a9059cbb61036452600461010051610384526101c06103205160048110156119445760200201516103a45260400161036052610360506020610400610360516103806000610340515af1610a45573d600060003e3d6000fd5b6103e060203d808211610a585781610a5a565b805b905090508152805160200180610120828460045afa9050505060006101205114610a9957610140516101205181816020036008021c9050905015611944575b81516001018083528114156109735750506101c051610320526101e05161034052610200516103605261022051610380526080610320f35b6329ed28628118610ae6573361012052610b01565b631e700cbb8118610e64576084358060a01c61194457610120525b6004358060a01c6119445760e0526044358060801d81607f1d1861194457610100526323b872dd610184526004336101a452306101c4526024356101e45260600161018052610180506020610240610180516101a0600060e0515af1610b6c573d600060003e3d6000fd5b61022060203d808211610b7f5781610b81565b805b905090508152805160200180610140828460045afa9050505060006101405114610bc057610160516101405181816020036008021c9050905015611944575b6000610180526101005115610dfc5773da10009cbd5d07dd0cecc66161fc93d7c9000da16101a052737f5c764cbc14f9669b88837ca1490cca17c316076101c0527394b008aa00579c1307b0ef2c499ad98a8ce58e586101e0526101a06101005160018082038060801d81607f1d18611944579050905060038110156119445760200201516102005263081579a56102205260243561024052600161026052600061028052306102a0526020610220608461023c600060e0515af1610c8a573d600060003e3d6000fd5b601f3d1115611944576102205161018052631a4d01d26102205261018051610240526101005160018082038060801d81607f1d1861194457905090506102605260643561028052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000606461023c6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610d1d573d600060003e3d6000fd5b6370a082316102205230610240526020610220602461023c610200515afa610d4a573d600060003e3d6000fd5b601f3d111561194457610220516101805263a9059cbb61022452600461012051610244526101805161026452604001610220526102205060206102c0610220516102406000610200515af1610da4573d600060003e3d6000fd5b6102a060203d808211610db75781610db9565b805b905090508152805160200180610140828460045afa9050505060006101405114610e5557610160516101405181816020036008021c905090501561194457610e55565b63081579a56101a0526024356101c052610100516101e05260643561020052610120516102205260206101a060846101bc600060e0515af1610e43573d600060003e3d6000fd5b601f3d1115611944576101a051610180525b610180516101a05260206101a0f35b63ac24f7718118610e79573361010052610e94565b634329c8cc81186116a05760c4358060a01c61194457610100525b6004358060a01c6119445760e05263ddca3f43610140526020610140600461015c731337bedc9d22ecbe766df105c9623922a27963ec5afa610edb573d600060003e3d6000fd5b601f3d1115611944576101405160038082028215828483041417156119445790509050600880820490509050610120526101208051610120516402540be40080820282158284830414171561194457905090506402540be40080820490509050818183011061194457808201905090508152506323b872dd610184526004336101a452306101c45260a4356101e45260600161018052610180506020610240610180516101a0600060e0515af1610f97573d600060003e3d6000fd5b61022060203d808211610faa5781610fac565b805b905090508152805160200180610140828460045afa9050505060006101405114610feb57610160516101405181816020036008021c9050905015611944575b60c0366101803761024060006003818352015b6020600161024051818183011061194457808201905090500260240135610260526000610260511461104a57610260516101a06102405160038110156119445760200201526001610180525b8151600101808352811415610ffe57505060243561020052610180511561112757633883e119610240526101a051610260526101c051610280526101e0516102a05260006102c0526020610240608461025c731337bedc9d22ecbe766df105c9623922a27963ec5afa6110c2573d600060003e3d6000fd5b601f3d11156119445761024051610220526102208051610220516101205180820282158284830414171561194457905090506402540be40080820490509050600181818301106119445780820190509050818183011061194457808201905090508152505b63e3103273610260526102005161028052610220516102a05260a4356102c0526020610260606461027c600060e0515af1611167573d600060003e3d6000fd5b601f3d111561194457610260516102405263a9059cbb610264526004336102845260a4356102405180821061194457808203905090506102a4526040016102605261026050602061030061026051610280600060e0515af16111ce573d600060003e3d6000fd5b6102e060203d8082116111e157816111e3565b805b905090508152805160200180610140828460045afa905050506000610140511461122257610160516101405181816020036008021c9050905015611944575b610180511561156d57639fdaea0c610260526101a051610280526101c0516102a0526101e0516102c052610220516102e052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000608461027c6000731337bedc9d22ecbe766df105c9623922a27963ec5af16112a0573d600060003e3d6000fd5b731337bedc9d22ecbe766df105c9623922a27963ec610260526370a082316102a052306102c05260206102a060246102bc610260515afa6112e6573d600060003e3d6000fd5b601f3d1115611944576102a05161028052600061028051111561140f5760006102605160a052608052604060802060e05160a0526080526040608020546113a95763095ea7b36102a05260e0516102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e052610260513b15611944576000600060446102bc6000610260515af1611386573d600060003e3d6000fd5b600160006102605160a052608052604060802060e05160a0526080526040608020555b6102408051630c3e4b546102a05260006102c052610280516102e052600061030052336103205260206102a060846102bc600060e0515af16113f0573d600060003e3d6000fd5b601f3d1115611944576102a05180821061194457808203905090508152505b73da10009cbd5d07dd0cecc66161fc93d7c9000da16102a052737f5c764cbc14f9669b88837ca1490cca17c316076102c0527394b008aa00579c1307b0ef2c499ad98a8ce58e586102e05261030060006003818352015b63a9059cbb61036452600461010051610384526370a082316103205230610340526020610320602461033c6102a06103005160038110156119445760200201515afa6114b7573d600060003e3d6000fd5b601f3d111561194457610320516103a452604001610360526103605060206104006103605161038060006102a06103005160038110156119445760200201515af1611507573d600060003e3d6000fd5b6103e060203d80821161151a578161151c565b805b905090508152805160200180610140828460045afa905050506000610140511461155b57610160516101405181816020036008021c9050905015611944575b81516001018083528114156114665750505b600060243511156116915763c66106576102805260006102a0526020610280602461029c60e0515afa6115a5573d600060003e3d6000fd5b601f3d111561194457610280518060a01c611944576102605263a9059cbb6102c4526004610100516102e4526370a0823161028052306102a0526020610280602461029c610260515afa6115fe573d600060003e3d6000fd5b601f3d11156119445761028051610304526040016102c0526102c05060206103606102c0516102e06000610260515af161163d573d600060003e3d6000fd5b61034060203d8082116116505781611652565b805b905090508152805160200180610140828460045afa905050506000610140511461169157610160516101405181816020036008021c9050905015611944575b61024051610260526020610260f35b6341b028f381186117ee576004358060a01c6119445760e0526044358060801d81607f1d1861194457610100526001610100511261179b5763cc2b27d761014052602435610160526001610180526020610140604461015c60e0515afa61170c573d600060003e3d6000fd5b601f3d111561194457610140516101205263cc2b27d76101405261012051610160526101005160018082038060801d81607f1d186119445790509050610180526020610140604461015c731337bedc9d22ecbe766df105c9623922a27963ec5afa61177c573d600060003e3d6000fd5b601f3d111561194457610140516101a05260206101a06117ec566117ec565b63cc2b27d7610120526024356101405261010051610160526020610120604461013c60e0515afa6117d1573d600060003e3d6000fd5b601f3d111561194457610120516101805260206101806117ec565bf35b63861cdef0811861193c576004358060a01c6119445760e05260a4358060011c611944576101005260a03661012037602435610120526101c060006003818352015b60206101c05160018181830110611944578082019050905002602401356101606101c05160038110156119445760200201528151600101808352811415611830575050633883e1196101e052610160516102005261018051610220526101a05161024052610100516102605260206101e060846101fc731337bedc9d22ecbe766df105c9623922a27963ec5afa6118cc573d600060003e3d6000fd5b601f3d1115611944576101e0516101c0526101c0516101405263ed8e84f36101e05261012051610200526101405161022052610100516102405260206101e060646101fc60e0515afa611924573d600060003e3d6000fd5b601f3d1115611944576101e051610260526020610260f35b505b60006000fd5b600080fd
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.