More Info
Private Name Tags
ContractCreator
Multi Chain
Multichain Addresses
14 addresses found via
Latest 25 from a total of 5,306 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Add_liquidity | 18222888 | 1 day 20 hrs ago | IN | 0 ETH | 0.00578341 | ||||
Add_liquidity | 18222729 | 1 day 20 hrs ago | IN | 0 ETH | 0.00496327 | ||||
Remove_liquidity... | 18194045 | 5 days 21 hrs ago | IN | 0 ETH | 0.00298679 | ||||
Remove_liquidity... | 18110979 | 17 days 13 hrs ago | IN | 0 ETH | 0.00274506 | ||||
Add_liquidity | 18080543 | 21 days 19 hrs ago | IN | 0 ETH | 0.00571965 | ||||
Remove_liquidity... | 18033627 | 28 days 9 hrs ago | IN | 0 ETH | 0.00479585 | ||||
Remove_liquidity... | 18020962 | 30 days 3 hrs ago | IN | 0 ETH | 0.02360309 | ||||
Add_liquidity | 17951874 | 39 days 19 hrs ago | IN | 0 ETH | 0.00452601 | ||||
Add_liquidity | 17947400 | 40 days 10 hrs ago | IN | 0 ETH | 0.00551251 | ||||
Remove_liquidity... | 17937426 | 41 days 20 hrs ago | IN | 0 ETH | 0.04783313 | ||||
Remove_liquidity... | 17916230 | 44 days 19 hrs ago | IN | 0 ETH | 0.00677557 | ||||
Remove_liquidity... | 17901456 | 46 days 21 hrs ago | IN | 0 ETH | 0.00407138 | ||||
Remove_liquidity... | 17901449 | 46 days 21 hrs ago | IN | 0 ETH | 0.0042366 | ||||
Remove_liquidity... | 17901363 | 46 days 21 hrs ago | IN | 0 ETH | 0.00447567 | ||||
Remove_liquidity... | 17901304 | 46 days 21 hrs ago | IN | 0 ETH | 0.0031591 | ||||
Add_liquidity | 17894695 | 47 days 19 hrs ago | IN | 0 ETH | 0.00286452 | ||||
Add_liquidity | 17894684 | 47 days 19 hrs ago | IN | 0 ETH | 0.00384369 | ||||
Add_liquidity | 17869458 | 51 days 8 hrs ago | IN | 0 ETH | 0.00815947 | ||||
Remove_liquidity... | 17844091 | 54 days 21 hrs ago | IN | 0 ETH | 0.00844693 | ||||
Add_liquidity | 17838884 | 55 days 15 hrs ago | IN | 0 ETH | 0.00600462 | ||||
Remove_liquidity... | 17830993 | 56 days 17 hrs ago | IN | 0 ETH | 0.00608069 | ||||
Add_liquidity | 17829849 | 56 days 21 hrs ago | IN | 0 ETH | 0.00925294 | ||||
Add_liquidity | 17826492 | 57 days 8 hrs ago | IN | 0 ETH | 0.00547418 | ||||
Remove_liquidity... | 17820820 | 58 days 3 hrs ago | IN | 0 ETH | 0.009814 | ||||
Remove_liquidity... | 17814998 | 58 days 23 hrs ago | IN | 0 ETH | 0.00697947 |
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 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: uint256) -> 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 # An asset which may have a transfer fee (USDT) FEE_ASSET: constant(address) = 0xdAC17F958D2ee523a2206206994597C13D831ec7 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(convert(i, uint256)) 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(convert(i, uint256)) 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" # Handle potential Tether fees if coin == FEE_ASSET: amount = ERC20(FEE_ASSET).balanceOf(self) if i < MAX_COIN: meta_amounts[i] = amount else: base_amounts[i - MAX_COIN] = amount # 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":34073},{"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
6040611cdb610140396020611cdb60c03960c05160a01c1561002057600080fd5b60206020611cdb0160c03960c05160a01c1561003b57600080fd5b610140516000556101605160015560206102006004635d6362bb6101a0526101bc610140515afa61006b57600080fd5b601f3d1161007857600080fd5b6000506102005161018052610180516002556101a060006002818352015b6020610260602463c66106576101e0526101a05160008112156100b857600080fd5b610200526101fc610140515afa6100ce57600080fd5b601f3d116100db57600080fd5b600050610260516101c0526101c0516101a051600281106100fb57600080fd5b600360c052602060c020015560006004610240527f095ea7b300000000000000000000000000000000000000000000000000000000610260526102406004806020846102a001018260208501600060045af1505080518201915050610140516020826102a00101526020810190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020826102a0010152602081019050806102a0526102a090508051602001806103408284600060045af16101bd57600080fd5b505060206104006103405161036060006101c0515af16101dc57600080fd5b60203d808211156101ed57806101ef565b815b905090506103e0526103e08051602001806101e08284600060045af161021457600080fd5b505060006101e0511115610267576101e080602001516000825180602090131561023d57600080fd5b809190121561024b57600080fd5b806020036101000a8204905090509050151561026657600080fd5b5b5b8151600101808352811415610096575b50506101a060006003818352015b6020610260602463c66106576101e0526101a05160008112156102a857600080fd5b610200526101fc610180515afa6102be57600080fd5b601f3d116102cb57600080fd5b600050610260516101c0526101c0516101a051600381106102eb57600080fd5b600460c052602060c020015560006004610240527f095ea7b300000000000000000000000000000000000000000000000000000000610260526102406004806020846102a001018260208501600060045af1505080518201915050610180516020826102a00101526020810190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020826102a0010152602081019050806102a0526102a090508051602001806103408284600060045af16103ad57600080fd5b505060206104006103405161036060006101c0515af16103cc57600080fd5b60203d808211156103dd57806103df565b815b905090506103e0526103e08051602001806101e08284600060045af161040457600080fd5b505060006101e0511115610457576101e080602001516000825180602090131561042d57600080fd5b809190121561043b57600080fd5b806020036101000a8204905090509050151561045657600080fd5b5b5b8151600101808352811415610286575b5050611cc356341561000a57600080fd5b60043610156100185761184e565b600035601c5263029b2f3460005114156105065760c0366101403761020060006004818352015b6004610200516004811061005257600080fd5b60200201356102205261022051151561006a57610363565b60006102405260016102005112156100bf57610200516002811061008d57600080fd5b600360c052602060c0200154610240526102205161014061020051600281106100b557600080fd5b6020020152610131565b610200516001808203808060008112156100d557195b607f1c156100e257600080fd5b9050905090506102605261026051600381106100fd57600080fd5b600460c052602060c02001546102405261022051610180610260516003811061012557600080fd5b602002015260016101e0525b600060046102c0527f23b872dd000000000000000000000000000000000000000000000000000000006102e0526102c060048060208461032001018260208501600060045af1505080518201915050336020826103200101526020810190503060208261032001015260208101905061022051602082610320010152602081019050806103205261032090508051602001806103e08284600060045af16101d757600080fd5b505060206104c06103e0516104006000610240515af16101f657600080fd5b60203d808211156102075780610209565b815b905090506104a0526104a08051602001806102608284600060045af161022e57600080fd5b505060006102605111156102815761026080602001516000825180602090131561025757600080fd5b809190121561026557600080fd5b806020036101000a8204905090509050151561028057600080fd5b5b73dac17f958d2ee523a2206206994597c13d831ec761024051141561036257602061034060246370a082316102c052306102e0526102dc73dac17f958d2ee523a2206206994597c13d831ec75afa6102d857600080fd5b601f3d116102e557600080fd5b6000506103405161022052600161020051121561031e5761022051610140610200516002811061031457600080fd5b6020020152610361565b610220516101806102005160018082038080600081121561033b57195b607f1c1561034857600080fd5b9050905090506003811061035b57600080fd5b60200201525b5b5b815160010180835281141561003f575b50506101e05115610415576002543b61038b57600080fd5b600060006084634515cef36102005261018051610220526101a051610240526101c0516102605260006102805261021c60006002545af16103cb57600080fd5b602061028060246370a0823161020052306102205261021c6001600360c052602060c02001545afa6103fc57600080fd5b601f3d1161040957600080fd5b60005061028051610160525b60206102c06064630b4c7e4d61020052610140516102205261016051610240526084356102605261021c60006000545af161044f57600080fd5b601f3d1161045c57600080fd5b6000506102c0506001546102005260206102c060246370a0823161024052306102605261025c610200515afa61049157600080fd5b601f3d1161049e57600080fd5b6000506102c0516102205260206102e0604463a9059cbb610240523361026052610220516102805261025c6000610200515af16104da57600080fd5b601f3d116104e757600080fd5b6000506102e0516104f757600080fd5b6102205160005260206000f350005b637d49d875600051141561096f5760015461014052602061022060646323b872dd610160523361018052306101a0526004356101c05261017c6000610140515af161055057600080fd5b601f3d1161055d57600080fd5b6000506102205161056d57600080fd5b610120366101603761028060006001818352015b6024610280516004811061059457600080fd5b602002013561016061028051600281106105ad57600080fd5b60200201525b8151600101808352811415610581575b505060406103406064635b36389c610280526004356102a052610160516102c052610180516102e05261029c60006000545af16105ff57600080fd5b603f3d1161060c57600080fd5b60005061034050602061032060246370a082316102a052306102c0526102bc6001600360c052602060c02001545afa61064457600080fd5b601f3d1161065157600080fd5b60005061032051610280526102a060006003818352015b602460016102a0518082018080600081121561068057195b607f1c1561068d57600080fd5b905090509050600481106106a057600080fd5b60200201356101a06102a051600381106106b957600080fd5b60200201525b8151600101808352811415610668575b50506002543b6106de57600080fd5b60006000608463ecb586a56102a052610280516102c0526101a0516102e0526101c051610300526101e051610320526102bc60006002545af161072057600080fd5b6102a060006004818352015b60006102c05260016102a0511215610764576102a0516002811061074f57600080fd5b600360c052602060c02001546102c0526107ab565b6102a05160018082038080600081121561077a57195b607f1c1561078757600080fd5b9050905090506003811061079a57600080fd5b600460c052602060c02001546102c0525b602061036060246370a082316102e05230610300526102fc6102c0515afa6107d257600080fd5b601f3d116107df57600080fd5b600050610360516102006102a051600481106107fa57600080fd5b602002015260006004610340527fa9059cbb00000000000000000000000000000000000000000000000000000000610360526103406004806020846103a001018260208501600060045af1505080518201915050336020826103a00101526020810190506102006102a0516004811061087257600080fd5b60200201516020826103a0010152602081019050806103a0526103a090508051602001806104408284600060045af16108aa57600080fd5b505060206105006104405161046060006102c0515af16108c957600080fd5b60203d808211156108da57806108dc565b815b905090506104e0526104e08051602001806102e08284600060045af161090157600080fd5b505060006102e0511115610954576102e080602001516000825180602090131561092a57600080fd5b809190121561093857600080fd5b806020036101000a8204905090509050151561095357600080fd5b5b5b815160010180835281141561072c575b50506080610200f3005b631a4d01d26000511415610d39576024358080600081121561098d57195b607f1c1561099a57600080fd5b905050602061020060646323b872dd61014052336101605230610180526004356101a05261015c60006001545af16109d157600080fd5b601f3d116109de57600080fd5b600050610200516109ee57600080fd5b60006101405260016024351215610a705760243560028110610a0f57600080fd5b600360c052602060c02001546101405260206102206064631a4d01d261016052600435610180526024356101a0526044356101c05261017c60006000545af1610a5757600080fd5b601f3d11610a6457600080fd5b60005061022050610bab565b602435600180820380806000811215610a8557195b607f1c15610a9257600080fd5b90509050905060038110610aa557600080fd5b600460c052602060c02001546101405260206102206064631a4d01d2610160526004356101805260016101a05260006101c05261017c60006000545af1610aeb57600080fd5b601f3d11610af857600080fd5b600050610220506002543b610b0c57600080fd5b600060006064631a4d01d26102005260206101e060246370a0823161016052306101805261017c6001600360c052602060c02001545afa610b4c57600080fd5b601f3d11610b5957600080fd5b6000506101e05161022052602435600180820380806000811215610b7957195b607f1c15610b8657600080fd5b905090509050610240526044356102605261021c60006002545af1610baa57600080fd5b5b602061020060246370a0823161018052306101a05261019c610140515afa610bd257600080fd5b601f3d11610bdf57600080fd5b6000506102005161016052600060046101e0527fa9059cbb00000000000000000000000000000000000000000000000000000000610200526101e060048060208461024001018260208501600060045af15050805182019150503360208261024001015260208101905061016051602082610240010152602081019050806102405261024090508051602001806102e08284600060045af1610c8057600080fd5b505060206103a06102e0516103006000610140515af1610c9f57600080fd5b60203d80821115610cb05780610cb2565b815b90509050610380526103808051602001806101808284600060045af1610cd757600080fd5b50506000610180511115610d2a57610180806020015160008251806020901315610d0057600080fd5b8091901215610d0e57600080fd5b806020036101000a82049050905090501515610d2957600080fd5b5b6101605160005260206000f350005b6318a7bd7660005114156114a957600254610140526000546101605260048060c052602060c020546101805260018160c052602060c02001546101a05260028160c052602060c02001546101c0525060038060c052602060c020546101e05260018160c052602060c020015461020052506001546102205260206102c0600463ddca3f436102605261027c610140515afa610dd357600080fd5b601f3d11610de057600080fd5b6000506102c05160038082028215828483041417610dfd57600080fd5b80905090509050600880820490509050610240526102408051610240516402540be4008082028215828483041417610e3457600080fd5b809050905090506402540be40080820490509050818183011015610e5757600080fd5b80820190509050815250602061032060646323b872dd610260523361028052306102a0526084356102c05261027c6000610220515af1610e9657600080fd5b601f3d11610ea357600080fd5b60005061032051610eb357600080fd5b610100366102603761036060006001818352015b60046103605160048110610eda57600080fd5b60200201356102e06103605160028110610ef357600080fd5b60200201525b8151600101808352811415610ec7575b505061036060006003818352015b600460016103605180820180806000811215610f2f57195b607f1c15610f3c57600080fd5b90509050905060048110610f4f57600080fd5b6020020135610380526000610380511815610f8857610380516102806103605160038110610f7c57600080fd5b60200201526001610260525b5b8151600101808352811415610f17575b505061026051156110625760206104406084633883e1196103605261028051610380526102a0516103a0526102c0516103c05260006103e05261037c6002545afa610fe357600080fd5b601f3d11610ff057600080fd5b600050610440516103005261030080516103005161024051808202821582848304141761101c57600080fd5b809050905090506402540be40080820490509050600181818301101561104157600080fd5b8082019050905081818301101561105757600080fd5b808201905090508152505b6020610420606463e3103273610360526102e05161038052610300516103a0526084356103c05261037c6000610160515af161109d57600080fd5b601f3d116110aa57600080fd5b6000506104205061026051156111a657610140513b6110c857600080fd5b600060006084639fdaea0c6103605261028051610380526102a0516103a0526102c0516103c052610300516103e05261037c6000610140515af161110b57600080fd5b60206103e060246370a0823161036052306103805261037c610200515afa61113257600080fd5b601f3d1161113f57600080fd5b6000506103e0516103405260006103405111156111a55760206104206064630b4c7e4d610360526103205161038052610340516103a05260006103c05261037c6000610160515af161119057600080fd5b601f3d1161119d57600080fd5b600050610420505b5b61036060006004818352015b604036610380376001610360511215611204576101e061036051600281106111d957600080fd5b6020020151610380526102e061036051600281106111f657600080fd5b60200201516103a052611289565b6101806103605160018082038080600081121561121d57195b607f1c1561122a57600080fd5b9050905090506003811061123d57600080fd5b6020020151610380526102806103605160018082038080600081121561125f57195b607f1c1561126c57600080fd5b9050905090506003811061127f57600080fd5b60200201516103a0525b60006103a05111156113d65760006004610420527fa9059cbb000000000000000000000000000000000000000000000000000000006104405261042060048060208461048001018260208501600060045af1505080518201915050336020826104800101526020810190506103a051602082610480010152602081019050806104805261048090508051602001806105208284600060045af161132b57600080fd5b505060206105e0610520516105406000610380515af161134a57600080fd5b60203d8082111561135b578061135d565b815b905090506105c0526105c08051602001806103c08284600060045af161138257600080fd5b505060006103c05111156113d5576103c08060200151600082518060209013156113ab57600080fd5b80919012156113b957600080fd5b806020036101000a820490509050905015156113d457600080fd5b5b5b5b81516001018083528114156111b2575b5050602061040060246370a0823161038052306103a05261039c610220515afa61141057600080fd5b601f3d1161141d57600080fd5b60005061040051610360526000610360511115611483576020610420604463a9059cbb61038052336103a052610360516103c05261039c6000610220515af161146557600080fd5b601f3d1161147257600080fd5b6000506104205161148257600080fd5b5b608435610360518082101561149757600080fd5b8082039050905060005260206000f350005b63cc2b27d760005114156115ee57602435808060008112156114c757195b607f1c156114d457600080fd5b905050600160243512156115335760206101e0604463cc2b27d761014052600435610160526024356101805261015c6000545afa61151157600080fd5b601f3d1161151e57600080fd5b6000506101e05160005260206000f3506115ec565b6020610200604463cc2b27d7610160526004356101805260016101a05261017c6000545afa61156157600080fd5b601f3d1161156e57600080fd5b60005061020051610140526020610200604463cc2b27d76101605261014051610180526024356001808203808060008112156115a657195b607f1c156115b357600080fd5b9050905090506101a05261017c6002545afa6115ce57600080fd5b601f3d116115db57600080fd5b6000506102005160005260206000f3505b005b63cf701ff7600051141561178f5760843560011c1561160c57600080fd5b60a036610140376101e060006001818352015b60046101e0516004811061163257600080fd5b60200201356101406101e0516002811061164b57600080fd5b60200201525b815160010180835281141561161f575b50506101e060006003818352015b60046101e05160018082018080600081121561168757195b607f1c1561169457600080fd5b905090509050600481106116a757600080fd5b60200201356101806101e051600381106116c057600080fd5b60200201525b815160010180835281141561166f575b505060206102e06084633883e1196102005261018051610220526101a051610240526101c051610260526084356102805261021c6002545afa61171857600080fd5b601f3d1161172557600080fd5b6000506102e0516101e0526101e0516101605260206102c0606463ed8e84f361020052610140516102205261016051610240526084356102605261021c6000545afa61177057600080fd5b601f3d1161177d57600080fd5b6000506102c05160005260206000f350005b6316f0115b60005114156117ab5760005460005260206000f350005b63fc0c546a60005114156117c75760015460005260206000f350005b635d6362bb60005114156117e35760025460005260206000f350005b63c66106576000511415611818576004356002811061180157600080fd5b600360c052602060c020015460005260206000f350005b6387cb4f57600051141561184d576004356003811061183657600080fd5b600460c052602060c020015460005260206000f350005b5b60006000fd5b61046f611cc30361046f60003961046f611cc3036000f30000000000000000000000004f062658eaaf2c1ccf8c8e36d6824cdf41167956000000000000000000000000d2967f45c4f384deea880f807be904762a3dea07
Deployed Bytecode
0x341561000a57600080fd5b60043610156100185761184e565b600035601c5263029b2f3460005114156105065760c0366101403761020060006004818352015b6004610200516004811061005257600080fd5b60200201356102205261022051151561006a57610363565b60006102405260016102005112156100bf57610200516002811061008d57600080fd5b600360c052602060c0200154610240526102205161014061020051600281106100b557600080fd5b6020020152610131565b610200516001808203808060008112156100d557195b607f1c156100e257600080fd5b9050905090506102605261026051600381106100fd57600080fd5b600460c052602060c02001546102405261022051610180610260516003811061012557600080fd5b602002015260016101e0525b600060046102c0527f23b872dd000000000000000000000000000000000000000000000000000000006102e0526102c060048060208461032001018260208501600060045af1505080518201915050336020826103200101526020810190503060208261032001015260208101905061022051602082610320010152602081019050806103205261032090508051602001806103e08284600060045af16101d757600080fd5b505060206104c06103e0516104006000610240515af16101f657600080fd5b60203d808211156102075780610209565b815b905090506104a0526104a08051602001806102608284600060045af161022e57600080fd5b505060006102605111156102815761026080602001516000825180602090131561025757600080fd5b809190121561026557600080fd5b806020036101000a8204905090509050151561028057600080fd5b5b73dac17f958d2ee523a2206206994597c13d831ec761024051141561036257602061034060246370a082316102c052306102e0526102dc73dac17f958d2ee523a2206206994597c13d831ec75afa6102d857600080fd5b601f3d116102e557600080fd5b6000506103405161022052600161020051121561031e5761022051610140610200516002811061031457600080fd5b6020020152610361565b610220516101806102005160018082038080600081121561033b57195b607f1c1561034857600080fd5b9050905090506003811061035b57600080fd5b60200201525b5b5b815160010180835281141561003f575b50506101e05115610415576002543b61038b57600080fd5b600060006084634515cef36102005261018051610220526101a051610240526101c0516102605260006102805261021c60006002545af16103cb57600080fd5b602061028060246370a0823161020052306102205261021c6001600360c052602060c02001545afa6103fc57600080fd5b601f3d1161040957600080fd5b60005061028051610160525b60206102c06064630b4c7e4d61020052610140516102205261016051610240526084356102605261021c60006000545af161044f57600080fd5b601f3d1161045c57600080fd5b6000506102c0506001546102005260206102c060246370a0823161024052306102605261025c610200515afa61049157600080fd5b601f3d1161049e57600080fd5b6000506102c0516102205260206102e0604463a9059cbb610240523361026052610220516102805261025c6000610200515af16104da57600080fd5b601f3d116104e757600080fd5b6000506102e0516104f757600080fd5b6102205160005260206000f350005b637d49d875600051141561096f5760015461014052602061022060646323b872dd610160523361018052306101a0526004356101c05261017c6000610140515af161055057600080fd5b601f3d1161055d57600080fd5b6000506102205161056d57600080fd5b610120366101603761028060006001818352015b6024610280516004811061059457600080fd5b602002013561016061028051600281106105ad57600080fd5b60200201525b8151600101808352811415610581575b505060406103406064635b36389c610280526004356102a052610160516102c052610180516102e05261029c60006000545af16105ff57600080fd5b603f3d1161060c57600080fd5b60005061034050602061032060246370a082316102a052306102c0526102bc6001600360c052602060c02001545afa61064457600080fd5b601f3d1161065157600080fd5b60005061032051610280526102a060006003818352015b602460016102a0518082018080600081121561068057195b607f1c1561068d57600080fd5b905090509050600481106106a057600080fd5b60200201356101a06102a051600381106106b957600080fd5b60200201525b8151600101808352811415610668575b50506002543b6106de57600080fd5b60006000608463ecb586a56102a052610280516102c0526101a0516102e0526101c051610300526101e051610320526102bc60006002545af161072057600080fd5b6102a060006004818352015b60006102c05260016102a0511215610764576102a0516002811061074f57600080fd5b600360c052602060c02001546102c0526107ab565b6102a05160018082038080600081121561077a57195b607f1c1561078757600080fd5b9050905090506003811061079a57600080fd5b600460c052602060c02001546102c0525b602061036060246370a082316102e05230610300526102fc6102c0515afa6107d257600080fd5b601f3d116107df57600080fd5b600050610360516102006102a051600481106107fa57600080fd5b602002015260006004610340527fa9059cbb00000000000000000000000000000000000000000000000000000000610360526103406004806020846103a001018260208501600060045af1505080518201915050336020826103a00101526020810190506102006102a0516004811061087257600080fd5b60200201516020826103a0010152602081019050806103a0526103a090508051602001806104408284600060045af16108aa57600080fd5b505060206105006104405161046060006102c0515af16108c957600080fd5b60203d808211156108da57806108dc565b815b905090506104e0526104e08051602001806102e08284600060045af161090157600080fd5b505060006102e0511115610954576102e080602001516000825180602090131561092a57600080fd5b809190121561093857600080fd5b806020036101000a8204905090509050151561095357600080fd5b5b5b815160010180835281141561072c575b50506080610200f3005b631a4d01d26000511415610d39576024358080600081121561098d57195b607f1c1561099a57600080fd5b905050602061020060646323b872dd61014052336101605230610180526004356101a05261015c60006001545af16109d157600080fd5b601f3d116109de57600080fd5b600050610200516109ee57600080fd5b60006101405260016024351215610a705760243560028110610a0f57600080fd5b600360c052602060c02001546101405260206102206064631a4d01d261016052600435610180526024356101a0526044356101c05261017c60006000545af1610a5757600080fd5b601f3d11610a6457600080fd5b60005061022050610bab565b602435600180820380806000811215610a8557195b607f1c15610a9257600080fd5b90509050905060038110610aa557600080fd5b600460c052602060c02001546101405260206102206064631a4d01d2610160526004356101805260016101a05260006101c05261017c60006000545af1610aeb57600080fd5b601f3d11610af857600080fd5b600050610220506002543b610b0c57600080fd5b600060006064631a4d01d26102005260206101e060246370a0823161016052306101805261017c6001600360c052602060c02001545afa610b4c57600080fd5b601f3d11610b5957600080fd5b6000506101e05161022052602435600180820380806000811215610b7957195b607f1c15610b8657600080fd5b905090509050610240526044356102605261021c60006002545af1610baa57600080fd5b5b602061020060246370a0823161018052306101a05261019c610140515afa610bd257600080fd5b601f3d11610bdf57600080fd5b6000506102005161016052600060046101e0527fa9059cbb00000000000000000000000000000000000000000000000000000000610200526101e060048060208461024001018260208501600060045af15050805182019150503360208261024001015260208101905061016051602082610240010152602081019050806102405261024090508051602001806102e08284600060045af1610c8057600080fd5b505060206103a06102e0516103006000610140515af1610c9f57600080fd5b60203d80821115610cb05780610cb2565b815b90509050610380526103808051602001806101808284600060045af1610cd757600080fd5b50506000610180511115610d2a57610180806020015160008251806020901315610d0057600080fd5b8091901215610d0e57600080fd5b806020036101000a82049050905090501515610d2957600080fd5b5b6101605160005260206000f350005b6318a7bd7660005114156114a957600254610140526000546101605260048060c052602060c020546101805260018160c052602060c02001546101a05260028160c052602060c02001546101c0525060038060c052602060c020546101e05260018160c052602060c020015461020052506001546102205260206102c0600463ddca3f436102605261027c610140515afa610dd357600080fd5b601f3d11610de057600080fd5b6000506102c05160038082028215828483041417610dfd57600080fd5b80905090509050600880820490509050610240526102408051610240516402540be4008082028215828483041417610e3457600080fd5b809050905090506402540be40080820490509050818183011015610e5757600080fd5b80820190509050815250602061032060646323b872dd610260523361028052306102a0526084356102c05261027c6000610220515af1610e9657600080fd5b601f3d11610ea357600080fd5b60005061032051610eb357600080fd5b610100366102603761036060006001818352015b60046103605160048110610eda57600080fd5b60200201356102e06103605160028110610ef357600080fd5b60200201525b8151600101808352811415610ec7575b505061036060006003818352015b600460016103605180820180806000811215610f2f57195b607f1c15610f3c57600080fd5b90509050905060048110610f4f57600080fd5b6020020135610380526000610380511815610f8857610380516102806103605160038110610f7c57600080fd5b60200201526001610260525b5b8151600101808352811415610f17575b505061026051156110625760206104406084633883e1196103605261028051610380526102a0516103a0526102c0516103c05260006103e05261037c6002545afa610fe357600080fd5b601f3d11610ff057600080fd5b600050610440516103005261030080516103005161024051808202821582848304141761101c57600080fd5b809050905090506402540be40080820490509050600181818301101561104157600080fd5b8082019050905081818301101561105757600080fd5b808201905090508152505b6020610420606463e3103273610360526102e05161038052610300516103a0526084356103c05261037c6000610160515af161109d57600080fd5b601f3d116110aa57600080fd5b6000506104205061026051156111a657610140513b6110c857600080fd5b600060006084639fdaea0c6103605261028051610380526102a0516103a0526102c0516103c052610300516103e05261037c6000610140515af161110b57600080fd5b60206103e060246370a0823161036052306103805261037c610200515afa61113257600080fd5b601f3d1161113f57600080fd5b6000506103e0516103405260006103405111156111a55760206104206064630b4c7e4d610360526103205161038052610340516103a05260006103c05261037c6000610160515af161119057600080fd5b601f3d1161119d57600080fd5b600050610420505b5b61036060006004818352015b604036610380376001610360511215611204576101e061036051600281106111d957600080fd5b6020020151610380526102e061036051600281106111f657600080fd5b60200201516103a052611289565b6101806103605160018082038080600081121561121d57195b607f1c1561122a57600080fd5b9050905090506003811061123d57600080fd5b6020020151610380526102806103605160018082038080600081121561125f57195b607f1c1561126c57600080fd5b9050905090506003811061127f57600080fd5b60200201516103a0525b60006103a05111156113d65760006004610420527fa9059cbb000000000000000000000000000000000000000000000000000000006104405261042060048060208461048001018260208501600060045af1505080518201915050336020826104800101526020810190506103a051602082610480010152602081019050806104805261048090508051602001806105208284600060045af161132b57600080fd5b505060206105e0610520516105406000610380515af161134a57600080fd5b60203d8082111561135b578061135d565b815b905090506105c0526105c08051602001806103c08284600060045af161138257600080fd5b505060006103c05111156113d5576103c08060200151600082518060209013156113ab57600080fd5b80919012156113b957600080fd5b806020036101000a820490509050905015156113d457600080fd5b5b5b5b81516001018083528114156111b2575b5050602061040060246370a0823161038052306103a05261039c610220515afa61141057600080fd5b601f3d1161141d57600080fd5b60005061040051610360526000610360511115611483576020610420604463a9059cbb61038052336103a052610360516103c05261039c6000610220515af161146557600080fd5b601f3d1161147257600080fd5b6000506104205161148257600080fd5b5b608435610360518082101561149757600080fd5b8082039050905060005260206000f350005b63cc2b27d760005114156115ee57602435808060008112156114c757195b607f1c156114d457600080fd5b905050600160243512156115335760206101e0604463cc2b27d761014052600435610160526024356101805261015c6000545afa61151157600080fd5b601f3d1161151e57600080fd5b6000506101e05160005260206000f3506115ec565b6020610200604463cc2b27d7610160526004356101805260016101a05261017c6000545afa61156157600080fd5b601f3d1161156e57600080fd5b60005061020051610140526020610200604463cc2b27d76101605261014051610180526024356001808203808060008112156115a657195b607f1c156115b357600080fd5b9050905090506101a05261017c6002545afa6115ce57600080fd5b601f3d116115db57600080fd5b6000506102005160005260206000f3505b005b63cf701ff7600051141561178f5760843560011c1561160c57600080fd5b60a036610140376101e060006001818352015b60046101e0516004811061163257600080fd5b60200201356101406101e0516002811061164b57600080fd5b60200201525b815160010180835281141561161f575b50506101e060006003818352015b60046101e05160018082018080600081121561168757195b607f1c1561169457600080fd5b905090509050600481106116a757600080fd5b60200201356101806101e051600381106116c057600080fd5b60200201525b815160010180835281141561166f575b505060206102e06084633883e1196102005261018051610220526101a051610240526101c051610260526084356102805261021c6002545afa61171857600080fd5b601f3d1161172557600080fd5b6000506102e0516101e0526101e0516101605260206102c0606463ed8e84f361020052610140516102205261016051610240526084356102605261021c6000545afa61177057600080fd5b601f3d1161177d57600080fd5b6000506102c05160005260206000f350005b6316f0115b60005114156117ab5760005460005260206000f350005b63fc0c546a60005114156117c75760015460005260206000f350005b635d6362bb60005114156117e35760025460005260206000f350005b63c66106576000511415611818576004356002811061180157600080fd5b600360c052602060c020015460005260206000f350005b6387cb4f57600051141561184d576004356003811061183657600080fd5b600460c052602060c020015460005260206000f350005b5b60006000fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004f062658eaaf2c1ccf8c8e36d6824cdf41167956000000000000000000000000d2967f45c4f384deea880f807be904762a3dea07
-----Decoded View---------------
Arg [0] : _pool (address): 0x4f062658EaAF2C1ccf8C8e36D6824CDf41167956
Arg [1] : _token (address): 0xD2967f45c4f384DEEa880F807Be904762a3DeA07
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000004f062658eaaf2c1ccf8c8e36d6824cdf41167956
Arg [1] : 000000000000000000000000d2967f45c4f384deea880f807be904762a3dea07
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.