Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,381 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Remove_liquidity... | 20636097 | 14 days ago | IN | 0 ETH | 0.00071574 | ||||
Remove_liquidity... | 20197208 | 75 days ago | IN | 0 ETH | 0.00055083 | ||||
Remove_liquidity... | 20113050 | 87 days ago | IN | 0 ETH | 0.00408389 | ||||
Remove_liquidity... | 20008007 | 101 days ago | IN | 0 ETH | 0.00667322 | ||||
Remove_liquidity... | 20000536 | 102 days ago | IN | 0 ETH | 0.00161916 | ||||
Remove_liquidity... | 19674766 | 148 days ago | IN | 0 ETH | 0.00354706 | ||||
Remove_liquidity... | 19667204 | 149 days ago | IN | 0 ETH | 0.00360354 | ||||
Remove_liquidity... | 19561476 | 164 days ago | IN | 0 ETH | 0.01057748 | ||||
Remove_liquidity... | 18886911 | 258 days ago | IN | 0 ETH | 0.00713907 | ||||
Remove_liquidity... | 18865258 | 261 days ago | IN | 0 ETH | 0.00451587 | ||||
Remove_liquidity... | 18662389 | 290 days ago | IN | 0 ETH | 0.01006029 | ||||
Remove_liquidity... | 18544314 | 306 days ago | IN | 0 ETH | 0.0133361 | ||||
Remove_liquidity... | 18485334 | 315 days ago | IN | 0 ETH | 0.01474683 | ||||
Remove_liquidity... | 18485242 | 315 days ago | IN | 0 ETH | 0.01005936 | ||||
Remove_liquidity... | 18377983 | 330 days ago | IN | 0 ETH | 0.00727166 | ||||
Remove_liquidity... | 18325997 | 337 days ago | IN | 0 ETH | 0.00287443 | ||||
Remove_liquidity... | 17961541 | 388 days ago | IN | 0 ETH | 0.00409813 | ||||
Remove_liquidity... | 17961531 | 388 days ago | IN | 0 ETH | 0.00498831 | ||||
Remove_liquidity... | 17958503 | 388 days ago | IN | 0 ETH | 0.00612664 | ||||
Remove_liquidity... | 17772160 | 415 days ago | IN | 0 ETH | 0.00973796 | ||||
Remove_liquidity... | 17663942 | 430 days ago | IN | 0 ETH | 0.01226003 | ||||
Remove_liquidity... | 17655060 | 431 days ago | IN | 0 ETH | 0.00448041 | ||||
Remove_liquidity... | 17640199 | 433 days ago | IN | 0 ETH | 0.00577463 | ||||
Add_liquidity | 17623477 | 435 days ago | IN | 0 ETH | 0.02104519 | ||||
Add_liquidity | 17615627 | 437 days ago | IN | 0 ETH | 0.00753351 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.2.7
Contract Source Code (Vyper language format)
# @version 0.2.7 """ @title "Zap" Depositer for Curve tBTC pool @author Curve.Fi @license Copyright (c) Curve.Fi, 2020 - all rights reserved """ from vyper.interfaces import ERC20 interface CurveMeta: def add_liquidity(amounts: uint256[N_COINS], min_mint_amount: uint256) -> uint256: nonpayable def remove_liquidity(_amount: uint256, min_amounts: uint256[N_COINS]) -> uint256[N_COINS]: nonpayable def remove_liquidity_one_coin(_token_amount: uint256, i: int128, min_amount: uint256) -> 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 base_pool() -> address: 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: int128) -> address: view def fee() -> uint256: view N_COINS: constant(int128) = 2 MAX_COIN: constant(int128) = N_COINS-1 BASE_N_COINS: constant(int128) = 3 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 pool: public(address) token: public(address) base_pool: public(address) coins: public(address[N_COINS]) base_coins: public(address[BASE_N_COINS]) @external def __init__(_pool: address, _token: address): """ @notice Contract constructor @param _pool Metapool address @param _token Pool LP token address """ self.pool = _pool self.token = _token _base_pool: address = CurveMeta(_pool).base_pool() self.base_pool = _base_pool for i in range(N_COINS): coin: address = CurveMeta(_pool).coins(i) self.coins[i] = coin # approve coins for infinite transfers _response: Bytes[32] = raw_call( coin, concat( method_id("approve(address,uint256)"), convert(_pool, bytes32), convert(MAX_UINT256, bytes32), ), max_outsize=32, ) if len(_response) > 0: assert convert(_response, bool) for i in range(BASE_N_COINS): coin: address = CurveBase(_base_pool).coins(i) self.base_coins[i] = coin # approve underlying coins for infinite transfers _response: Bytes[32] = raw_call( coin, concat( method_id("approve(address,uint256)"), convert(_base_pool, bytes32), convert(MAX_UINT256, bytes32), ), max_outsize=32, ) if len(_response) > 0: assert convert(_response, bool) @external def add_liquidity(amounts: uint256[N_ALL_COINS], min_mint_amount: uint256) -> uint256: """ @notice Wrap underlying coins and deposit them in the pool @param amounts List of amounts of underlying coins to deposit @param min_mint_amount Minimum amount of LP tokens to mint from the deposit @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 # Transfer all coins in for i in range(N_ALL_COINS): amount: uint256 = amounts[i] if amount == 0: continue coin: address = ZERO_ADDRESS if i < MAX_COIN: coin = self.coins[i] meta_amounts[i] = amount else: x: int128 = i - MAX_COIN coin = self.base_coins[x] base_amounts[x] = amount deposit_base = True # "safeTransferFrom" which works for ERC20s which return bool or not _response: Bytes[32] = raw_call( coin, concat( method_id("transferFrom(address,address,uint256)"), convert(msg.sender, bytes32), convert(self, bytes32), convert(amount, bytes32), ), max_outsize=32, ) # dev: failed transfer if len(_response) > 0: assert convert(_response, bool) # dev: failed transfer # end "safeTransferFrom" # Deposit to the base pool if deposit_base: CurveBase(self.base_pool).add_liquidity(base_amounts, 0) meta_amounts[MAX_COIN] = ERC20(self.coins[MAX_COIN]).balanceOf(self) # Deposit to the meta pool CurveMeta(self.pool).add_liquidity(meta_amounts, min_mint_amount) # Transfer meta token back _lp_token: address = self.token _lp_amount: uint256 = ERC20(_lp_token).balanceOf(self) assert ERC20(_lp_token).transfer(msg.sender, _lp_amount) return _lp_amount @external def remove_liquidity(_amount: uint256, min_amounts: uint256[N_ALL_COINS]) -> uint256[N_ALL_COINS]: """ @notice Withdraw and unwrap coins from the pool @dev Withdrawal amounts are based on current deposit ratios @param _amount Quantity of LP tokens to burn in the withdrawal @param min_amounts Minimum amounts of underlying coins to receive @return List of amounts of underlying coins that were withdrawn """ _token: address = self.token assert ERC20(_token).transferFrom(msg.sender, self, _amount) min_amounts_meta: uint256[N_COINS] = empty(uint256[N_COINS]) 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 for i in range(MAX_COIN): min_amounts_meta[i] = min_amounts[i] CurveMeta(self.pool).remove_liquidity(_amount, min_amounts_meta) # Withdraw from base _base_amount: uint256 = ERC20(self.coins[MAX_COIN]).balanceOf(self) for i in range(BASE_N_COINS): min_amounts_base[i] = min_amounts[MAX_COIN+i] CurveBase(self.base_pool).remove_liquidity(_base_amount, min_amounts_base) # Transfer all coins out for i in range(N_ALL_COINS): coin: address = ZERO_ADDRESS if i < MAX_COIN: coin = self.coins[i] else: coin = self.base_coins[i - MAX_COIN] amounts[i] = ERC20(coin).balanceOf(self) # "safeTransfer" which works for ERC20s which return bool or not _response: Bytes[32] = raw_call( coin, concat( method_id("transfer(address,uint256)"), convert(msg.sender, bytes32), convert(amounts[i], bytes32), ), max_outsize=32, ) # dev: failed transfer if len(_response) > 0: assert convert(_response, bool) # dev: failed transfer # end "safeTransfer" return amounts @external def remove_liquidity_one_coin(_token_amount: uint256, i: int128, _min_amount: uint256) -> uint256: """ @notice Withdraw and unwrap a single coin from the pool @param _token_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 @return Amount of underlying coin received """ assert ERC20(self.token).transferFrom(msg.sender, self, _token_amount) coin: address = ZERO_ADDRESS if i < MAX_COIN: coin = self.coins[i] # Withdraw a metapool coin CurveMeta(self.pool).remove_liquidity_one_coin(_token_amount, i, _min_amount) else: coin = self.base_coins[i - MAX_COIN] # Withdraw a base pool coin CurveMeta(self.pool).remove_liquidity_one_coin(_token_amount, MAX_COIN, 0) CurveBase(self.base_pool).remove_liquidity_one_coin( ERC20(self.coins[MAX_COIN]).balanceOf(self), i-MAX_COIN, _min_amount ) # Tranfer the coin out coin_amount: uint256 = ERC20(coin).balanceOf(self) # "safeTransfer" which works for ERC20s which return bool or not _response: Bytes[32] = raw_call( coin, concat( method_id("transfer(address,uint256)"), convert(msg.sender, bytes32), convert(coin_amount, bytes32), ), max_outsize=32, ) # dev: failed transfer if len(_response) > 0: assert convert(_response, bool) # dev: failed transfer # end "safeTransfer" return coin_amount @external def remove_liquidity_imbalance(amounts: uint256[N_ALL_COINS], max_burn_amount: uint256) -> uint256: """ @notice Withdraw coins from the pool in an imbalanced amount @param amounts List of amounts of underlying coins to withdraw @param max_burn_amount Maximum amount of LP token to burn in the withdrawal. This value cannot exceed the caller's LP token balance. @return Actual amount of the LP token burned in the withdrawal """ _base_pool: address = self.base_pool _meta_pool: address = self.pool _base_coins: address[BASE_N_COINS] = self.base_coins _meta_coins: address[N_COINS] = self.coins _lp_token: address = self.token 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 assert ERC20(_lp_token).transferFrom(msg.sender, self, max_burn_amount) withdraw_base: bool = False amounts_base: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS]) amounts_meta: uint256[N_COINS] = empty(uint256[N_COINS]) leftover_amounts: uint256[N_COINS] = empty(uint256[N_COINS]) # Prepare quantities for i in range(MAX_COIN): amounts_meta[i] = amounts[i] for i in range(BASE_N_COINS): amount: uint256 = amounts[MAX_COIN + i] if amount != 0: amounts_base[i] = amount withdraw_base = True if withdraw_base: amounts_meta[MAX_COIN] = CurveBase(self.base_pool).calc_token_amount(amounts_base, False) amounts_meta[MAX_COIN] += amounts_meta[MAX_COIN] * fee / FEE_DENOMINATOR + 1 # Remove liquidity and deposit leftovers back CurveMeta(_meta_pool).remove_liquidity_imbalance(amounts_meta, max_burn_amount) if withdraw_base: CurveBase(_base_pool).remove_liquidity_imbalance(amounts_base, amounts_meta[MAX_COIN]) leftover_amounts[MAX_COIN] = ERC20(_meta_coins[MAX_COIN]).balanceOf(self) if leftover_amounts[MAX_COIN] > 0: CurveMeta(_meta_pool).add_liquidity(leftover_amounts, 0) # Transfer all coins out for i in range(N_ALL_COINS): coin: address = ZERO_ADDRESS amount: uint256 = 0 if i < MAX_COIN: coin = _meta_coins[i] amount = amounts_meta[i] else: coin = _base_coins[i - MAX_COIN] amount = amounts_base[i - MAX_COIN] # "safeTransfer" which works for ERC20s which return bool or not if amount > 0: _response: Bytes[32] = raw_call( coin, concat( method_id("transfer(address,uint256)"), convert(msg.sender, bytes32), convert(amount, bytes32), ), max_outsize=32, ) # dev: failed transfer if len(_response) > 0: assert convert(_response, bool) # dev: failed transfer # end "safeTransfer" # Transfer the leftover LP token out leftover: uint256 = ERC20(_lp_token).balanceOf(self) if leftover > 0: assert ERC20(_lp_token).transfer(msg.sender, leftover) return max_burn_amount - leftover @view @external def calc_withdraw_one_coin(_token_amount: uint256, i: int128) -> uint256: """ @notice Calculate the amount received when withdrawing and unwrapping a single coin @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(self.pool).calc_withdraw_one_coin(_token_amount, i) else: _base_tokens: uint256 = CurveMeta(self.pool).calc_withdraw_one_coin(_token_amount, MAX_COIN) return CurveBase(self.base_pool).calc_withdraw_one_coin(_base_tokens, i-MAX_COIN) @view @external def calc_token_amount(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 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]) for i in range(MAX_COIN): meta_amounts[i] = amounts[i] for i in range(BASE_N_COINS): base_amounts[i] = amounts[i + MAX_COIN] _base_tokens: uint256 = CurveBase(self.base_pool).calc_token_amount(base_amounts, is_deposit) meta_amounts[MAX_COIN] = _base_tokens return CurveMeta(self.pool).calc_token_amount(meta_amounts, is_deposit)
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"outputs":[],"inputs":[{"type":"address","name":"_pool"},{"type":"address","name":"_token"}],"stateMutability":"nonpayable","type":"constructor"},{"name":"add_liquidity","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256[4]","name":"amounts"},{"type":"uint256","name":"min_mint_amount"}],"stateMutability":"nonpayable","type":"function","gas":31141},{"name":"remove_liquidity","outputs":[{"type":"uint256[4]","name":""}],"inputs":[{"type":"uint256","name":"_amount"},{"type":"uint256[4]","name":"min_amounts"}],"stateMutability":"nonpayable","type":"function","gas":32919},{"name":"remove_liquidity_one_coin","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"_token_amount"},{"type":"int128","name":"i"},{"type":"uint256","name":"_min_amount"}],"stateMutability":"nonpayable","type":"function","gas":14467},{"name":"remove_liquidity_imbalance","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256[4]","name":"amounts"},{"type":"uint256","name":"max_burn_amount"}],"stateMutability":"nonpayable","type":"function","gas":38200},{"name":"calc_withdraw_one_coin","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"_token_amount"},{"type":"int128","name":"i"}],"stateMutability":"view","type":"function","gas":3147},{"name":"calc_token_amount","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256[4]","name":"amounts"},{"type":"bool","name":"is_deposit"}],"stateMutability":"view","type":"function","gas":4414},{"name":"pool","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1241},{"name":"token","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1271},{"name":"base_pool","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1301},{"name":"coins","outputs":[{"type":"address","name":""}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":1440},{"name":"base_coins","outputs":[{"type":"address","name":""}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":1470}]
Contract Creation Code
6040611bde610140396020611bde60c03960c05160a01c1561002057600080fd5b60206020611bde0160c03960c05160a01c1561003b57600080fd5b610140516000556101605160015560206102006004635d6362bb6101a0526101bc610140515afa61006b57600080fd5b601f3d1161007857600080fd5b6000506102005161018052610180516002556101a060006002818352015b6020610260602463c66106576101e0526101a051610200526101fc610140515afa6100c057600080fd5b601f3d116100cd57600080fd5b600050610260516101c0526101c0516101a051600281106100ed57600080fd5b600360c052602060c020015560006004610240527f095ea7b300000000000000000000000000000000000000000000000000000000610260526102406004806020846102a001018260208501600060045af1505080518201915050610140516020826102a00101526020810190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020826102a0010152602081019050806102a0526102a090508051602001806103408284600060045af16101af57600080fd5b505060206104006103405161036060006101c0515af16101ce57600080fd5b60203d808211156101df57806101e1565b815b905090506103e0526103e08051602001806101e08284600060045af161020657600080fd5b505060006101e0511115610259576101e080602001516000825180602090131561022f57600080fd5b809190121561023d57600080fd5b806020036101000a8204905090509050151561025857600080fd5b5b5b8151600101808352811415610096575b50506101a060006003818352015b602061026060246323746eb86101e0526101a051610200526101fc610180515afa6102a257600080fd5b601f3d116102af57600080fd5b600050610260516101c0526101c0516101a051600381106102cf57600080fd5b600460c052602060c020015560006004610240527f095ea7b300000000000000000000000000000000000000000000000000000000610260526102406004806020846102a001018260208501600060045af1505080518201915050610180516020826102a00101526020810190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020826102a0010152602081019050806102a0526102a090508051602001806103408284600060045af161039157600080fd5b505060206104006103405161036060006101c0515af16103b057600080fd5b60203d808211156103c157806103c3565b815b905090506103e0526103e08051602001806101e08284600060045af16103e857600080fd5b505060006101e051111561043b576101e080602001516000825180602090131561041157600080fd5b809190121561041f57600080fd5b806020036101000a8204905090509050151561043a57600080fd5b5b5b8151600101808352811415610278575b5050611bc656341561000a57600080fd5b60043610156100185761176d565b600035601c5263029b2f3460005114156104255760c0366101403761020060006004818352015b6004610200516004811061005257600080fd5b60200201356102205261022051151561006a57610282565b60006102405260016102005112156100bf57610200516002811061008d57600080fd5b600360c052602060c0200154610240526102205161014061020051600281106100b557600080fd5b6020020152610131565b610200516001808203808060008112156100d557195b607f1c156100e257600080fd5b9050905090506102605261026051600381106100fd57600080fd5b600460c052602060c02001546102405261022051610180610260516003811061012557600080fd5b602002015260016101e0525b600060046102c0527f23b872dd000000000000000000000000000000000000000000000000000000006102e0526102c060048060208461032001018260208501600060045af1505080518201915050336020826103200101526020810190503060208261032001015260208101905061022051602082610320010152602081019050806103205261032090508051602001806103e08284600060045af16101d757600080fd5b505060206104c06103e0516104006000610240515af16101f657600080fd5b60203d808211156102075780610209565b815b905090506104a0526104a08051602001806102608284600060045af161022e57600080fd5b505060006102605111156102815761026080602001516000825180602090131561025757600080fd5b809190121561026557600080fd5b806020036101000a8204905090509050151561028057600080fd5b5b5b815160010180835281141561003f575b50506101e05115610334576002543b6102aa57600080fd5b600060006084634515cef36102005261018051610220526101a051610240526101c0516102605260006102805261021c60006002545af16102ea57600080fd5b602061028060246370a0823161020052306102205261021c6001600360c052602060c02001545afa61031b57600080fd5b601f3d1161032857600080fd5b60005061028051610160525b60206102c06064630b4c7e4d61020052610140516102205261016051610240526084356102605261021c60006000545af161036e57600080fd5b601f3d1161037b57600080fd5b6000506102c0506001546102005260206102c060246370a0823161024052306102605261025c610200515afa6103b057600080fd5b601f3d116103bd57600080fd5b6000506102c0516102205260206102e0604463a9059cbb610240523361026052610220516102805261025c6000610200515af16103f957600080fd5b601f3d1161040657600080fd5b6000506102e05161041657600080fd5b6102205160005260206000f350005b637d49d875600051141561088e5760015461014052602061022060646323b872dd610160523361018052306101a0526004356101c05261017c6000610140515af161046f57600080fd5b601f3d1161047c57600080fd5b6000506102205161048c57600080fd5b610120366101603761028060006001818352015b602461028051600481106104b357600080fd5b602002013561016061028051600281106104cc57600080fd5b60200201525b81516001018083528114156104a0575b505060406103406064635b36389c610280526004356102a052610160516102c052610180516102e05261029c60006000545af161051e57600080fd5b603f3d1161052b57600080fd5b60005061034050602061032060246370a082316102a052306102c0526102bc6001600360c052602060c02001545afa61056357600080fd5b601f3d1161057057600080fd5b60005061032051610280526102a060006003818352015b602460016102a0518082018080600081121561059f57195b607f1c156105ac57600080fd5b905090509050600481106105bf57600080fd5b60200201356101a06102a051600381106105d857600080fd5b60200201525b8151600101808352811415610587575b50506002543b6105fd57600080fd5b60006000608463ecb586a56102a052610280516102c0526101a0516102e0526101c051610300526101e051610320526102bc60006002545af161063f57600080fd5b6102a060006004818352015b60006102c05260016102a0511215610683576102a0516002811061066e57600080fd5b600360c052602060c02001546102c0526106ca565b6102a05160018082038080600081121561069957195b607f1c156106a657600080fd5b905090509050600381106106b957600080fd5b600460c052602060c02001546102c0525b602061036060246370a082316102e05230610300526102fc6102c0515afa6106f157600080fd5b601f3d116106fe57600080fd5b600050610360516102006102a0516004811061071957600080fd5b602002015260006004610340527fa9059cbb00000000000000000000000000000000000000000000000000000000610360526103406004806020846103a001018260208501600060045af1505080518201915050336020826103a00101526020810190506102006102a0516004811061079157600080fd5b60200201516020826103a0010152602081019050806103a0526103a090508051602001806104408284600060045af16107c957600080fd5b505060206105006104405161046060006102c0515af16107e857600080fd5b60203d808211156107f957806107fb565b815b905090506104e0526104e08051602001806102e08284600060045af161082057600080fd5b505060006102e0511115610873576102e080602001516000825180602090131561084957600080fd5b809190121561085757600080fd5b806020036101000a8204905090509050151561087257600080fd5b5b5b815160010180835281141561064b575b50506080610200f3005b631a4d01d26000511415610c5857602435808060008112156108ac57195b607f1c156108b957600080fd5b905050602061020060646323b872dd61014052336101605230610180526004356101a05261015c60006001545af16108f057600080fd5b601f3d116108fd57600080fd5b6000506102005161090d57600080fd5b6000610140526001602435121561098f576024356002811061092e57600080fd5b600360c052602060c02001546101405260206102206064631a4d01d261016052600435610180526024356101a0526044356101c05261017c60006000545af161097657600080fd5b601f3d1161098357600080fd5b60005061022050610aca565b6024356001808203808060008112156109a457195b607f1c156109b157600080fd5b905090509050600381106109c457600080fd5b600460c052602060c02001546101405260206102206064631a4d01d2610160526004356101805260016101a05260006101c05261017c60006000545af1610a0a57600080fd5b601f3d11610a1757600080fd5b600050610220506002543b610a2b57600080fd5b600060006064631a4d01d26102005260206101e060246370a0823161016052306101805261017c6001600360c052602060c02001545afa610a6b57600080fd5b601f3d11610a7857600080fd5b6000506101e05161022052602435600180820380806000811215610a9857195b607f1c15610aa557600080fd5b905090509050610240526044356102605261021c60006002545af1610ac957600080fd5b5b602061020060246370a0823161018052306101a05261019c610140515afa610af157600080fd5b601f3d11610afe57600080fd5b6000506102005161016052600060046101e0527fa9059cbb00000000000000000000000000000000000000000000000000000000610200526101e060048060208461024001018260208501600060045af15050805182019150503360208261024001015260208101905061016051602082610240010152602081019050806102405261024090508051602001806102e08284600060045af1610b9f57600080fd5b505060206103a06102e0516103006000610140515af1610bbe57600080fd5b60203d80821115610bcf5780610bd1565b815b90509050610380526103808051602001806101808284600060045af1610bf657600080fd5b50506000610180511115610c4957610180806020015160008251806020901315610c1f57600080fd5b8091901215610c2d57600080fd5b806020036101000a82049050905090501515610c4857600080fd5b5b6101605160005260206000f350005b6318a7bd7660005114156113c857600254610140526000546101605260048060c052602060c020546101805260018160c052602060c02001546101a05260028160c052602060c02001546101c0525060038060c052602060c020546101e05260018160c052602060c020015461020052506001546102205260206102c0600463ddca3f436102605261027c610140515afa610cf257600080fd5b601f3d11610cff57600080fd5b6000506102c05160038082028215828483041417610d1c57600080fd5b80905090509050600880820490509050610240526102408051610240516402540be4008082028215828483041417610d5357600080fd5b809050905090506402540be40080820490509050818183011015610d7657600080fd5b80820190509050815250602061032060646323b872dd610260523361028052306102a0526084356102c05261027c6000610220515af1610db557600080fd5b601f3d11610dc257600080fd5b60005061032051610dd257600080fd5b610100366102603761036060006001818352015b60046103605160048110610df957600080fd5b60200201356102e06103605160028110610e1257600080fd5b60200201525b8151600101808352811415610de6575b505061036060006003818352015b600460016103605180820180806000811215610e4e57195b607f1c15610e5b57600080fd5b90509050905060048110610e6e57600080fd5b6020020135610380526000610380511815610ea757610380516102806103605160038110610e9b57600080fd5b60200201526001610260525b5b8151600101808352811415610e36575b50506102605115610f815760206104406084633883e1196103605261028051610380526102a0516103a0526102c0516103c05260006103e05261037c6002545afa610f0257600080fd5b601f3d11610f0f57600080fd5b6000506104405161030052610300805161030051610240518082028215828483041417610f3b57600080fd5b809050905090506402540be400808204905090506001818183011015610f6057600080fd5b80820190509050818183011015610f7657600080fd5b808201905090508152505b6020610420606463e3103273610360526102e05161038052610300516103a0526084356103c05261037c6000610160515af1610fbc57600080fd5b601f3d11610fc957600080fd5b6000506104205061026051156110c557610140513b610fe757600080fd5b600060006084639fdaea0c6103605261028051610380526102a0516103a0526102c0516103c052610300516103e05261037c6000610140515af161102a57600080fd5b60206103e060246370a0823161036052306103805261037c610200515afa61105157600080fd5b601f3d1161105e57600080fd5b6000506103e0516103405260006103405111156110c45760206104206064630b4c7e4d610360526103205161038052610340516103a05260006103c05261037c6000610160515af16110af57600080fd5b601f3d116110bc57600080fd5b600050610420505b5b61036060006004818352015b604036610380376001610360511215611123576101e061036051600281106110f857600080fd5b6020020151610380526102e0610360516002811061111557600080fd5b60200201516103a0526111a8565b6101806103605160018082038080600081121561113c57195b607f1c1561114957600080fd5b9050905090506003811061115c57600080fd5b6020020151610380526102806103605160018082038080600081121561117e57195b607f1c1561118b57600080fd5b9050905090506003811061119e57600080fd5b60200201516103a0525b60006103a05111156112f55760006004610420527fa9059cbb000000000000000000000000000000000000000000000000000000006104405261042060048060208461048001018260208501600060045af1505080518201915050336020826104800101526020810190506103a051602082610480010152602081019050806104805261048090508051602001806105208284600060045af161124a57600080fd5b505060206105e0610520516105406000610380515af161126957600080fd5b60203d8082111561127a578061127c565b815b905090506105c0526105c08051602001806103c08284600060045af16112a157600080fd5b505060006103c05111156112f4576103c08060200151600082518060209013156112ca57600080fd5b80919012156112d857600080fd5b806020036101000a820490509050905015156112f357600080fd5b5b5b5b81516001018083528114156110d1575b5050602061040060246370a0823161038052306103a05261039c610220515afa61132f57600080fd5b601f3d1161133c57600080fd5b600050610400516103605260006103605111156113a2576020610420604463a9059cbb61038052336103a052610360516103c05261039c6000610220515af161138457600080fd5b601f3d1161139157600080fd5b600050610420516113a157600080fd5b5b60843561036051808210156113b657600080fd5b8082039050905060005260206000f350005b63cc2b27d7600051141561150d57602435808060008112156113e657195b607f1c156113f357600080fd5b905050600160243512156114525760206101e0604463cc2b27d761014052600435610160526024356101805261015c6000545afa61143057600080fd5b601f3d1161143d57600080fd5b6000506101e05160005260206000f35061150b565b6020610200604463cc2b27d7610160526004356101805260016101a05261017c6000545afa61148057600080fd5b601f3d1161148d57600080fd5b60005061020051610140526020610200604463cc2b27d76101605261014051610180526024356001808203808060008112156114c557195b607f1c156114d257600080fd5b9050905090506101a05261017c6002545afa6114ed57600080fd5b601f3d116114fa57600080fd5b6000506102005160005260206000f3505b005b63cf701ff760005114156116ae5760843560011c1561152b57600080fd5b60a036610140376101e060006001818352015b60046101e0516004811061155157600080fd5b60200201356101406101e0516002811061156a57600080fd5b60200201525b815160010180835281141561153e575b50506101e060006003818352015b60046101e0516001808201808060008112156115a657195b607f1c156115b357600080fd5b905090509050600481106115c657600080fd5b60200201356101806101e051600381106115df57600080fd5b60200201525b815160010180835281141561158e575b505060206102e06084633883e1196102005261018051610220526101a051610240526101c051610260526084356102805261021c6002545afa61163757600080fd5b601f3d1161164457600080fd5b6000506102e0516101e0526101e0516101605260206102c0606463ed8e84f361020052610140516102205261016051610240526084356102605261021c6000545afa61168f57600080fd5b601f3d1161169c57600080fd5b6000506102c05160005260206000f350005b6316f0115b60005114156116ca5760005460005260206000f350005b63fc0c546a60005114156116e65760015460005260206000f350005b635d6362bb60005114156117025760025460005260206000f350005b63c66106576000511415611737576004356002811061172057600080fd5b600360c052602060c020015460005260206000f350005b6387cb4f57600051141561176c576004356003811061175557600080fd5b600460c052602060c020015460005260206000f350005b5b60006000fd5b610453611bc603610453600039610453611bc6036000f3000000000000000000000000c25099792e9349c7dd09759744ea681c7de2cb6600000000000000000000000064eda51d3ad40d56b9dfc5554e06f94e1dd786fd
Deployed Bytecode
0x341561000a57600080fd5b60043610156100185761176d565b600035601c5263029b2f3460005114156104255760c0366101403761020060006004818352015b6004610200516004811061005257600080fd5b60200201356102205261022051151561006a57610282565b60006102405260016102005112156100bf57610200516002811061008d57600080fd5b600360c052602060c0200154610240526102205161014061020051600281106100b557600080fd5b6020020152610131565b610200516001808203808060008112156100d557195b607f1c156100e257600080fd5b9050905090506102605261026051600381106100fd57600080fd5b600460c052602060c02001546102405261022051610180610260516003811061012557600080fd5b602002015260016101e0525b600060046102c0527f23b872dd000000000000000000000000000000000000000000000000000000006102e0526102c060048060208461032001018260208501600060045af1505080518201915050336020826103200101526020810190503060208261032001015260208101905061022051602082610320010152602081019050806103205261032090508051602001806103e08284600060045af16101d757600080fd5b505060206104c06103e0516104006000610240515af16101f657600080fd5b60203d808211156102075780610209565b815b905090506104a0526104a08051602001806102608284600060045af161022e57600080fd5b505060006102605111156102815761026080602001516000825180602090131561025757600080fd5b809190121561026557600080fd5b806020036101000a8204905090509050151561028057600080fd5b5b5b815160010180835281141561003f575b50506101e05115610334576002543b6102aa57600080fd5b600060006084634515cef36102005261018051610220526101a051610240526101c0516102605260006102805261021c60006002545af16102ea57600080fd5b602061028060246370a0823161020052306102205261021c6001600360c052602060c02001545afa61031b57600080fd5b601f3d1161032857600080fd5b60005061028051610160525b60206102c06064630b4c7e4d61020052610140516102205261016051610240526084356102605261021c60006000545af161036e57600080fd5b601f3d1161037b57600080fd5b6000506102c0506001546102005260206102c060246370a0823161024052306102605261025c610200515afa6103b057600080fd5b601f3d116103bd57600080fd5b6000506102c0516102205260206102e0604463a9059cbb610240523361026052610220516102805261025c6000610200515af16103f957600080fd5b601f3d1161040657600080fd5b6000506102e05161041657600080fd5b6102205160005260206000f350005b637d49d875600051141561088e5760015461014052602061022060646323b872dd610160523361018052306101a0526004356101c05261017c6000610140515af161046f57600080fd5b601f3d1161047c57600080fd5b6000506102205161048c57600080fd5b610120366101603761028060006001818352015b602461028051600481106104b357600080fd5b602002013561016061028051600281106104cc57600080fd5b60200201525b81516001018083528114156104a0575b505060406103406064635b36389c610280526004356102a052610160516102c052610180516102e05261029c60006000545af161051e57600080fd5b603f3d1161052b57600080fd5b60005061034050602061032060246370a082316102a052306102c0526102bc6001600360c052602060c02001545afa61056357600080fd5b601f3d1161057057600080fd5b60005061032051610280526102a060006003818352015b602460016102a0518082018080600081121561059f57195b607f1c156105ac57600080fd5b905090509050600481106105bf57600080fd5b60200201356101a06102a051600381106105d857600080fd5b60200201525b8151600101808352811415610587575b50506002543b6105fd57600080fd5b60006000608463ecb586a56102a052610280516102c0526101a0516102e0526101c051610300526101e051610320526102bc60006002545af161063f57600080fd5b6102a060006004818352015b60006102c05260016102a0511215610683576102a0516002811061066e57600080fd5b600360c052602060c02001546102c0526106ca565b6102a05160018082038080600081121561069957195b607f1c156106a657600080fd5b905090509050600381106106b957600080fd5b600460c052602060c02001546102c0525b602061036060246370a082316102e05230610300526102fc6102c0515afa6106f157600080fd5b601f3d116106fe57600080fd5b600050610360516102006102a0516004811061071957600080fd5b602002015260006004610340527fa9059cbb00000000000000000000000000000000000000000000000000000000610360526103406004806020846103a001018260208501600060045af1505080518201915050336020826103a00101526020810190506102006102a0516004811061079157600080fd5b60200201516020826103a0010152602081019050806103a0526103a090508051602001806104408284600060045af16107c957600080fd5b505060206105006104405161046060006102c0515af16107e857600080fd5b60203d808211156107f957806107fb565b815b905090506104e0526104e08051602001806102e08284600060045af161082057600080fd5b505060006102e0511115610873576102e080602001516000825180602090131561084957600080fd5b809190121561085757600080fd5b806020036101000a8204905090509050151561087257600080fd5b5b5b815160010180835281141561064b575b50506080610200f3005b631a4d01d26000511415610c5857602435808060008112156108ac57195b607f1c156108b957600080fd5b905050602061020060646323b872dd61014052336101605230610180526004356101a05261015c60006001545af16108f057600080fd5b601f3d116108fd57600080fd5b6000506102005161090d57600080fd5b6000610140526001602435121561098f576024356002811061092e57600080fd5b600360c052602060c02001546101405260206102206064631a4d01d261016052600435610180526024356101a0526044356101c05261017c60006000545af161097657600080fd5b601f3d1161098357600080fd5b60005061022050610aca565b6024356001808203808060008112156109a457195b607f1c156109b157600080fd5b905090509050600381106109c457600080fd5b600460c052602060c02001546101405260206102206064631a4d01d2610160526004356101805260016101a05260006101c05261017c60006000545af1610a0a57600080fd5b601f3d11610a1757600080fd5b600050610220506002543b610a2b57600080fd5b600060006064631a4d01d26102005260206101e060246370a0823161016052306101805261017c6001600360c052602060c02001545afa610a6b57600080fd5b601f3d11610a7857600080fd5b6000506101e05161022052602435600180820380806000811215610a9857195b607f1c15610aa557600080fd5b905090509050610240526044356102605261021c60006002545af1610ac957600080fd5b5b602061020060246370a0823161018052306101a05261019c610140515afa610af157600080fd5b601f3d11610afe57600080fd5b6000506102005161016052600060046101e0527fa9059cbb00000000000000000000000000000000000000000000000000000000610200526101e060048060208461024001018260208501600060045af15050805182019150503360208261024001015260208101905061016051602082610240010152602081019050806102405261024090508051602001806102e08284600060045af1610b9f57600080fd5b505060206103a06102e0516103006000610140515af1610bbe57600080fd5b60203d80821115610bcf5780610bd1565b815b90509050610380526103808051602001806101808284600060045af1610bf657600080fd5b50506000610180511115610c4957610180806020015160008251806020901315610c1f57600080fd5b8091901215610c2d57600080fd5b806020036101000a82049050905090501515610c4857600080fd5b5b6101605160005260206000f350005b6318a7bd7660005114156113c857600254610140526000546101605260048060c052602060c020546101805260018160c052602060c02001546101a05260028160c052602060c02001546101c0525060038060c052602060c020546101e05260018160c052602060c020015461020052506001546102205260206102c0600463ddca3f436102605261027c610140515afa610cf257600080fd5b601f3d11610cff57600080fd5b6000506102c05160038082028215828483041417610d1c57600080fd5b80905090509050600880820490509050610240526102408051610240516402540be4008082028215828483041417610d5357600080fd5b809050905090506402540be40080820490509050818183011015610d7657600080fd5b80820190509050815250602061032060646323b872dd610260523361028052306102a0526084356102c05261027c6000610220515af1610db557600080fd5b601f3d11610dc257600080fd5b60005061032051610dd257600080fd5b610100366102603761036060006001818352015b60046103605160048110610df957600080fd5b60200201356102e06103605160028110610e1257600080fd5b60200201525b8151600101808352811415610de6575b505061036060006003818352015b600460016103605180820180806000811215610e4e57195b607f1c15610e5b57600080fd5b90509050905060048110610e6e57600080fd5b6020020135610380526000610380511815610ea757610380516102806103605160038110610e9b57600080fd5b60200201526001610260525b5b8151600101808352811415610e36575b50506102605115610f815760206104406084633883e1196103605261028051610380526102a0516103a0526102c0516103c05260006103e05261037c6002545afa610f0257600080fd5b601f3d11610f0f57600080fd5b6000506104405161030052610300805161030051610240518082028215828483041417610f3b57600080fd5b809050905090506402540be400808204905090506001818183011015610f6057600080fd5b80820190509050818183011015610f7657600080fd5b808201905090508152505b6020610420606463e3103273610360526102e05161038052610300516103a0526084356103c05261037c6000610160515af1610fbc57600080fd5b601f3d11610fc957600080fd5b6000506104205061026051156110c557610140513b610fe757600080fd5b600060006084639fdaea0c6103605261028051610380526102a0516103a0526102c0516103c052610300516103e05261037c6000610140515af161102a57600080fd5b60206103e060246370a0823161036052306103805261037c610200515afa61105157600080fd5b601f3d1161105e57600080fd5b6000506103e0516103405260006103405111156110c45760206104206064630b4c7e4d610360526103205161038052610340516103a05260006103c05261037c6000610160515af16110af57600080fd5b601f3d116110bc57600080fd5b600050610420505b5b61036060006004818352015b604036610380376001610360511215611123576101e061036051600281106110f857600080fd5b6020020151610380526102e0610360516002811061111557600080fd5b60200201516103a0526111a8565b6101806103605160018082038080600081121561113c57195b607f1c1561114957600080fd5b9050905090506003811061115c57600080fd5b6020020151610380526102806103605160018082038080600081121561117e57195b607f1c1561118b57600080fd5b9050905090506003811061119e57600080fd5b60200201516103a0525b60006103a05111156112f55760006004610420527fa9059cbb000000000000000000000000000000000000000000000000000000006104405261042060048060208461048001018260208501600060045af1505080518201915050336020826104800101526020810190506103a051602082610480010152602081019050806104805261048090508051602001806105208284600060045af161124a57600080fd5b505060206105e0610520516105406000610380515af161126957600080fd5b60203d8082111561127a578061127c565b815b905090506105c0526105c08051602001806103c08284600060045af16112a157600080fd5b505060006103c05111156112f4576103c08060200151600082518060209013156112ca57600080fd5b80919012156112d857600080fd5b806020036101000a820490509050905015156112f357600080fd5b5b5b5b81516001018083528114156110d1575b5050602061040060246370a0823161038052306103a05261039c610220515afa61132f57600080fd5b601f3d1161133c57600080fd5b600050610400516103605260006103605111156113a2576020610420604463a9059cbb61038052336103a052610360516103c05261039c6000610220515af161138457600080fd5b601f3d1161139157600080fd5b600050610420516113a157600080fd5b5b60843561036051808210156113b657600080fd5b8082039050905060005260206000f350005b63cc2b27d7600051141561150d57602435808060008112156113e657195b607f1c156113f357600080fd5b905050600160243512156114525760206101e0604463cc2b27d761014052600435610160526024356101805261015c6000545afa61143057600080fd5b601f3d1161143d57600080fd5b6000506101e05160005260206000f35061150b565b6020610200604463cc2b27d7610160526004356101805260016101a05261017c6000545afa61148057600080fd5b601f3d1161148d57600080fd5b60005061020051610140526020610200604463cc2b27d76101605261014051610180526024356001808203808060008112156114c557195b607f1c156114d257600080fd5b9050905090506101a05261017c6002545afa6114ed57600080fd5b601f3d116114fa57600080fd5b6000506102005160005260206000f3505b005b63cf701ff760005114156116ae5760843560011c1561152b57600080fd5b60a036610140376101e060006001818352015b60046101e0516004811061155157600080fd5b60200201356101406101e0516002811061156a57600080fd5b60200201525b815160010180835281141561153e575b50506101e060006003818352015b60046101e0516001808201808060008112156115a657195b607f1c156115b357600080fd5b905090509050600481106115c657600080fd5b60200201356101806101e051600381106115df57600080fd5b60200201525b815160010180835281141561158e575b505060206102e06084633883e1196102005261018051610220526101a051610240526101c051610260526084356102805261021c6002545afa61163757600080fd5b601f3d1161164457600080fd5b6000506102e0516101e0526101e0516101605260206102c0606463ed8e84f361020052610140516102205261016051610240526084356102605261021c6000545afa61168f57600080fd5b601f3d1161169c57600080fd5b6000506102c05160005260206000f350005b6316f0115b60005114156116ca5760005460005260206000f350005b63fc0c546a60005114156116e65760015460005260206000f350005b635d6362bb60005114156117025760025460005260206000f350005b63c66106576000511415611737576004356002811061172057600080fd5b600360c052602060c020015460005260206000f350005b6387cb4f57600051141561176c576004356003811061175557600080fd5b600460c052602060c020015460005260206000f350005b5b60006000fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c25099792e9349c7dd09759744ea681c7de2cb6600000000000000000000000064eda51d3ad40d56b9dfc5554e06f94e1dd786fd
-----Decoded View---------------
Arg [0] : _pool (address): 0xC25099792E9349C7DD09759744ea681C7de2cb66
Arg [1] : _token (address): 0x64eda51d3Ad40D56b9dFc5554E06F94e1Dd786Fd
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c25099792e9349c7dd09759744ea681c7de2cb66
Arg [1] : 00000000000000000000000064eda51d3ad40d56b9dfc5554e06f94e1dd786fd
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.