More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Tricrypto LP Burner
Compiler Version
vyper:0.3.7
Contract Source Code (Vyper language format)
# @version 0.3.7 """ @title Tricrypto LP Burner @notice Withdraws Tricrypto LP tokens """ interface ERC20: def transfer(_to: address, _value: uint256) -> bool: nonpayable def transferFrom(_from: address, _to: address, _value: uint256) -> bool: nonpayable def balanceOf(_owner: address) -> uint256: view def decimals() -> uint256: view def totalSupply() -> uint256: view interface CryptoSwap: def remove_liquidity_one_coin(token_amount: uint256, i: uint256, min_amount: uint256, use_eth: bool = False, receiver: address = msg.sender) -> uint256: nonpayable def coins(_i: uint256) -> address: view def price_oracle(_i: uint256) -> uint256: view def lp_price() -> uint256: view def balances(_i: uint256) -> uint256: view interface OldCryptoSwap: def remove_liquidity_one_coin(token_amount: uint256, i: uint256, min_amount: uint256): nonpayable interface PoolProxy: def burners(_coin: address) -> address: view interface LP: def minter() -> address: view ETH_ADDRESS: constant(address) = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE BPS: constant(uint256) = 10000 slippage_of: public(HashMap[address, uint256]) priority_of: public(HashMap[address, uint256]) receiver_of: public(HashMap[address, address]) is_token: public(HashMap[address, bool]) old_implementation: public(HashMap[address, bool]) pool_proxy: public(address) slippage: public(uint256) receiver: public(address) recovery: public(address) owner: public(address) future_owner: public(address) @external def __init__(_pool_proxy: address): """ @notice Contract constructor @param _pool_proxy Address of pool owner proxy """ self.pool_proxy = _pool_proxy self.receiver = _pool_proxy self.recovery = _pool_proxy self.owner = msg.sender self.slippage = 100 # 1% self.priority_of[0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174] = 64 # USDC self.priority_of[0xE7a24EF0C5e95Ffb0f6684b813A78F2a3AD7D171] = 56 # am3crv self.priority_of[0xdAD97F7713Ae9437fa9249920eC8507e5FbB23d3] = 48 # tricrypto @payable @external def __default__(): # required to receive ether during intermediate swaps pass @internal def _transfer_out(_coin: ERC20, _receiver: address): if _coin.address == ETH_ADDRESS: raw_call(_receiver, b"", value=self.balance) else: assert _coin.transfer( _receiver, _coin.balanceOf(self), default_return_value=True ) # safe transfer @internal def _get_price(_token: ERC20, _swap: address, _i: uint256, _coins: address[3], _old_implementation: bool) -> uint256: price: uint256 = 10 ** 18 if _old_implementation: sum: uint256 = CryptoSwap(_swap).balances(0) * 10 ** (18 - ERC20(_coins[0]).decimals()) for i in range(1, 3): sum += CryptoSwap(_swap).balances(i) * 10 ** (18 - ERC20(_coins[i]).decimals()) * CryptoSwap(_swap).price_oracle(i - 1) / 10 ** 18 price = sum * 10 ** 18 / _token.totalSupply() # simple approximation else: price = CryptoSwap(_swap).lp_price() if _i > 0: price = price * 10 ** 18 / CryptoSwap(_swap).price_oracle(_i - 1) price /= 10 ** (18 - ERC20(_coins[_i]).decimals()) return price @internal def _burn(_coin: address, _amount: uint256): swap: address = _coin if self.is_token[_coin]: swap = LP(_coin).minter() coins: address[3] = [CryptoSwap(swap).coins(0), CryptoSwap(swap).coins(1), CryptoSwap(swap).coins(2)] priorities: uint256[3] = [self.priority_of[coins[0]], self.priority_of[coins[1]], self.priority_of[coins[2]]] assert priorities[0] > 0 or priorities[1] > 0 or priorities[2] > 0 # dev: unknown coins i: uint256 = 0 if priorities[1] > priorities[i]: i = 1 if priorities[2] > priorities[i]: i = 2 is_old: bool = self.old_implementation[_coin] min_amount: uint256 = _amount * self._get_price(ERC20(_coin), swap, i, coins, is_old) / 10 ** 18 slippage: uint256 = self.slippage_of[swap] if slippage == 0: slippage = self.slippage min_amount -= min_amount * slippage / BPS receiver: address = self.receiver_of[coins[i]] if receiver == ZERO_ADDRESS: receiver = self.receiver if is_old: print(min_amount, hardhat_compat=True) OldCryptoSwap(swap).remove_liquidity_one_coin(_amount, i, min_amount) self._transfer_out(ERC20(coins[i]), receiver) else: CryptoSwap(swap).remove_liquidity_one_coin(_amount, i, min_amount, True, receiver) @external def burn(_coin: address) -> bool: """ @notice Convert `_coin` by removing liquidity @param _coin Address of the coin(swap) being converted @return bool success """ # transfer coins from caller amount: uint256 = ERC20(_coin).balanceOf(msg.sender) if amount != 0: ERC20(_coin).transferFrom(msg.sender, self, amount) # get actual balance in case of pre-existing balance amount = ERC20(_coin).balanceOf(self) if amount != 0: self._burn(_coin, amount) return True @external def burn_amount(_coin: address, _amount_to_burn: uint256): """ @notice Burn a specific quantity of `_coin` @dev Useful when the total amount to burn is so large that it fails from slippage @param _coin Address of the coin being converted @param _amount_to_burn Amount of the coin to burn """ pool_proxy: address = self.pool_proxy amount: uint256 = ERC20(_coin).balanceOf(pool_proxy) if PoolProxy(pool_proxy).burners(_coin) == self and amount != 0: ERC20(_coin).transferFrom(pool_proxy, self, amount) amount = ERC20(_coin).balanceOf(self) assert amount >= _amount_to_burn, "Insufficient balance" self._burn(_coin, _amount_to_burn) @external def set_priority_of(_coin: address, _priority: uint256): """ @notice Set priority of a coin @dev Bigger value means higher priority @param _coin Token address @param _priority Token priority """ assert msg.sender == self.owner # dev: only owner self.priority_of[_coin] = _priority @external def set_many_priorities(_coins: address[8], _priorities: uint256[8]): """ @notice Set priority of many coins @dev Bigger value means higher priority @param _coins Token addresses @param _priorities Token priorities """ assert msg.sender == self.owner # dev: only owner for i in range(8): coin: address = _coins[i] if coin == ZERO_ADDRESS: break self.priority_of[coin] = _priorities[i] @external def set_slippage_of(_coin: address, _slippage: uint256): """ @notice Set custom slippage limit of a coin @dev Using self.slippage by default @param _coin Token address @param _slippage Slippage in bps for pool of token """ assert msg.sender == self.owner # dev: only owner assert _slippage <= BPS # dev: slippage too high self.slippage_of[_coin] = _slippage @external def set_many_slippages(_coins: address[8], _slippages: uint256[8]): """ @notice Set custom slippage limit of a coin @dev Using self.slippage by default @param _coins Token addresses @param _slippages Slippages in bps for each pool of token """ assert msg.sender == self.owner # dev: only owner for i in range(8): coin: address = _coins[i] if coin == ZERO_ADDRESS: break assert _slippages[i] <= BPS # dev: slippage too high self.slippage_of[coin] = _slippages[i] @external def set_slippage(_slippage: uint256): """ @notice Set default slippage parameter @param _slippage Slippage value in bps """ assert msg.sender == self.owner # dev: only owner assert _slippage <= BPS # dev: slippage too high self.slippage = _slippage @external def set_receiver_of(_coin: address, _receiver: address): """ @notice Set receiver of a coin @dev Using self.receiver by default @param _coin Token address @param _receiver Receiver of a token """ assert msg.sender == self.owner # dev: only owner self.receiver_of[_coin] = _receiver @external def set_many_receivers(_coins: address[8], _receivers: address[8]): """ @notice Set receivers of many coins @dev Using self.receiver by default @param _coins Token addresses @param _receivers Receivers of each token """ assert msg.sender == self.owner # dev: only owner for i in range(8): coin: address = _coins[i] if coin == ZERO_ADDRESS: break self.receiver_of[coin] = _receivers[i] @external def set_receiver(_receiver: address): """ @notice Set default receiver @param _receiver Address of default receiver """ assert msg.sender == self.owner # dev: only owner self.receiver = _receiver @external def set_token(_token: address, _is: bool): """ @notice Set LP tokens that are not pools @param _token Token address @param _is True if _token is LP """ assert msg.sender == self.owner # dev: only owner self.is_token[_token] = _is @external def set_old_implementation(_token: address, _is: bool): """ @notice Set old implementations of LP tokens @param _token Token address @param _is True if _token is for old implementation """ assert msg.sender == self.owner # dev: only owner self.old_implementation[_token] = _is @external def recover_balance(_coin: address) -> bool: """ @notice Recover ERC20 tokens from this contract @dev Tokens are sent to the recovery address @param _coin Token address @return bool success """ assert msg.sender == self.owner # dev: only owner amount: uint256 = ERC20(_coin).balanceOf(self) response: Bytes[32] = raw_call( _coin, _abi_encode(self.recovery, amount, method_id=method_id("transfer(address,uint256)")), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) return True @external def set_recovery(_recovery: address) -> bool: """ @notice Set the token recovery address @param _recovery Token recovery address @return bool success """ assert msg.sender == self.owner # dev: only owner self.recovery = _recovery return True @external def commit_transfer_ownership(_future_owner: address) -> bool: """ @notice Commit a transfer of ownership @dev Must be accepted by the new owner via `accept_transfer_ownership` @param _future_owner New owner address @return bool success """ assert msg.sender == self.owner # dev: only owner self.future_owner = _future_owner return True @external def accept_transfer_ownership() -> bool: """ @notice Accept a transfer of ownership @return bool success """ assert msg.sender == self.future_owner # dev: only owner self.owner = msg.sender return True
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_pool_proxy","type":"address"}],"outputs":[]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"burn_amount","inputs":[{"name":"_coin","type":"address"},{"name":"_amount_to_burn","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_priority_of","inputs":[{"name":"_coin","type":"address"},{"name":"_priority","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_many_priorities","inputs":[{"name":"_coins","type":"address[8]"},{"name":"_priorities","type":"uint256[8]"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_slippage_of","inputs":[{"name":"_coin","type":"address"},{"name":"_slippage","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_many_slippages","inputs":[{"name":"_coins","type":"address[8]"},{"name":"_slippages","type":"uint256[8]"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_slippage","inputs":[{"name":"_slippage","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_receiver_of","inputs":[{"name":"_coin","type":"address"},{"name":"_receiver","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_many_receivers","inputs":[{"name":"_coins","type":"address[8]"},{"name":"_receivers","type":"address[8]"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_receiver","inputs":[{"name":"_receiver","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_token","inputs":[{"name":"_token","type":"address"},{"name":"_is","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_old_implementation","inputs":[{"name":"_token","type":"address"},{"name":"_is","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"recover_balance","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"set_recovery","inputs":[{"name":"_recovery","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"slippage_of","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"priority_of","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"receiver_of","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"is_token","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"old_implementation","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"pool_proxy","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"slippage","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"receiver","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"recovery","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}]}]
Contract Creation Code
60206116356000396000518060a01c61163057604052346116305760405160055560405160075560405160085533600955606460065560406001732791bca1f2de4661ed88a30c99a7a9449aa841746020526000526040600020556038600173e7a24ef0c5e95ffb0f6684b813a78f2a3ad7d1716020526000526040600020556030600173dad97f7713ae9437fa9249920ec8507e5fbb23d36020526000526040600020556115796100b661000039611579610000f36003361161000c57610c87565b60003560e01c6389afcb44811861014b5760243610611567576004358060a01c611567576104c05234611567576104c0516370a082316105005233610520526020610500602461051c845afa610067573d600060003e3d6000fd5b60203d10611567576105009050516104e0526104e051156100dd576104c0516323b872dd61050052336105205230610540526104e051610560526020610500606461051c6000855af16100bf573d600060003e3d6000fd5b60203d1061156757610500518060011c611567576105805261058050505b6104c0516370a082316105005230610520526020610500602461051c845afa61010b573d600060003e3d6000fd5b60203d10611567576105009050516104e0526104e0511561013e576104c051610240526104e0516102605261013e61112c565b6001610500526020610500f35b637afb0ed1811861034e5760443610611567576004358060a01c611567576104c05234611567576005546104e0526104c0516370a08231610520526104e051610540526020610520602461053c845afa6101aa573d600060003e3d6000fd5b60203d106115675761052090505161050052306104e0516303d41e0e610520526104c051610540526020610520602461053c845afa6101ee573d600060003e3d6000fd5b60203d1061156757610520518060a01c61156757610560526105609050511861021c5761050051151561021f565b60005b15610282576104c0516323b872dd610580526104e0516105a052306105c052610500516105e0526020610580606461059c6000855af1610264573d600060003e3d6000fd5b60203d1061156757610580518060011c611567576106005261060050505b6104c0516370a082316105205230610540526020610520602461053c845afa6102b0573d600060003e3d6000fd5b60203d106115675761052090505161050052602435610500511015610335576014610520527f496e73756666696369656e742062616c616e63650000000000000000000000006105405261052050610520518061054001601f826000031636823750506308c379a06104e052602061050052601f19601f6105205101166044016104fcfd5b6104c051610240526024356102605261034c61112c565b005b6340cfa09981186103935760443610611567576004358060a01c6115675760405234611567576009543318611567576024356001604051602052600052604060002055005b63820bd888811861048b576102043610611567576004358060a01c611567576040526024358060a01c611567576060526044358060a01c611567576080526064358060a01c6115675760a0526084358060a01c6115675760c05260a4358060a01c6115675760e05260c4358060a01c611567576101005260e4358060a01c6115675761012052346115675760095433186115675760006008905b806101405261014051600781116115675760051b60400151610160526101605161045657610487565b61014051600781116115675760051b610104013560016101605160205260005260406000205560010181811861042d575b5050005b6351b9c55b81186104db5760443610611567576004358060a01c61156757604052346115675760095433186115675761271060243511611567576024356000604051602052600052604060002055005b63629404ed81186105ef576102043610611567576004358060a01c611567576040526024358060a01c611567576060526044358060a01c611567576080526064358060a01c6115675760a0526084358060a01c6115675760c05260a4358060a01c6115675760e05260c4358060a01c611567576101005260e4358060a01c6115675761012052346115675760095433186115675760006008905b806101405261014051600781116115675760051b60400151610160526101605161059e576105eb565b61271061014051600781116115675760051b6101040135116115675761014051600781116115675760051b6101040135600061016051602052600052604060002055600101818118610575575b5050005b638edd69ec811861062357602436106115675734611567576009543318611567576127106004351161156757600435600655005b63c24240c481186106765760443610611567576004358060a01c611567576040526024358060a01c6115675760605234611567576009543318611567576060516002604051602052600052604060002055005b63e6a7199a81186107ee576102043610611567576004358060a01c611567576040526024358060a01c611567576060526044358060a01c611567576080526064358060a01c6115675760a0526084358060a01c6115675760c05260a4358060a01c6115675760e05260c4358060a01c611567576101005260e4358060a01c6115675761012052610104358060a01c6115675761014052610124358060a01c6115675761016052610144358060a01c6115675761018052610164358060a01c611567576101a052610184358060a01c611567576101c0526101a4358060a01c611567576101e0526101c4358060a01c61156757610200526101e4358060a01c6115675761022052346115675760095433186115675760006008905b806102405261024051600781116115675760051b6040015161026052610260516107b9576107ea565b61024051600781116115675760051b6101400151600261026051602052600052604060002055600101818118610790575b5050005b63d1dd6f5681186108255760243610611567576004358060a01c611567576040523461156757600954331861156757604051600755005b63672f616881186108785760443610611567576004358060a01c611567576040526024358060011c6115675760605234611567576009543318611567576060516003604051602052600052604060002055005b638c0b58bb81186108cb5760443610611567576004358060a01c611567576040526024358060011c6115675760605234611567576009543318611567576060516004604051602052600052604060002055005b63db2f5f7981186109bd5760243610611567576004358060a01c6115675760405234611567576009543318611567576040516370a082316080523060a052602060806024609c845afa610923573d600060003e3d6000fd5b60203d1061156757608090505160605263a9059cbb60c452600460085460e4526060516101045260400160c05260c050602061016060c05160e060006040515af1610973573d600060003e3d6000fd5b3d602081183d60201002186101405261014080518060805260208201805160a052505050608051156109b25760a05160805160200360031b1c15611567575b600160c052602060c0f35b635dc659b081186109fd5760243610611567576004358060a01c611567576040523461156757600954331861156757604051600855600160605260206060f35b636b441a408118610a3d5760243610611567576004358060a01c611567576040523461156757600954331861156757604051600a55600160605260206060f35b63e5ea47b88118610a6d5760043610611567573461156757600a5433186115675733600955600160405260206040f35b63b450efbd8118610aad5760243610611567576004358060a01c611567576040523461156757600060405160205260005260406000205460605260206060f35b6358fe27ec8118610aed5760243610611567576004358060a01c611567576040523461156757600160405160205260005260406000205460605260206060f35b63c25085f28118610b2d5760243610611567576004358060a01c611567576040523461156757600260405160205260005260406000205460605260206060f35b63bcacc18f8118610b6d5760243610611567576004358060a01c611567576040523461156757600360405160205260005260406000205460605260206060f35b63e0a42db68118610bad5760243610611567576004358060a01c611567576040523461156757600460405160205260005260406000205460605260206060f35b6391db89f38118610bd1576004361061156757346115675760055460405260206040f35b633e032a3b8118610bf5576004361061156757346115675760065460405260206040f35b63f7260d3e8118610c19576004361061156757346115675760075460405260206040f35b63ddceafa98118610c3d576004361061156757346115675760085460405260206040f35b638da5cb5b8118610c61576004361061156757346115675760095460405260206040f35b631ec0cdc18118610c855760043610611567573461156757600a5460405260206040f35b505b005b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60405118610cd05760006080526080506000600060805160a0476060515af1610d72573d600060003e3d6000fd610d72565b60405163a9059cbb60c05260605160e0526040516370a082316080523060a052602060806024609c845afa610d0a573d600060003e3d6000fd5b60203d1061156757608090505161010052602060c0604460dc6000855af1610d37573d600060003e3d6000fd5b3d610d4e57803b1561156757600161012052610d66565b60203d106115675760c0518060011c61156757610120525b61012090505115611567575b565b670de0b6b3a76400006101205261010051610dc8576060516354f0f7d5610140526020610140600461015c845afa610db1573d600060003e3d6000fd5b60203d106115675761014090505161012052611027565b606051634903b0d1610160526000610180526020610160602461017c845afa610df6573d600060003e3d6000fd5b60203d106115675761016090505160a05163313ce5676101a05260206101a060046101bc845afa610e2c573d600060003e3d6000fd5b60203d10611567576101a09050518060120360128111611567579050604d81116115675780600a0a9050808202811583838304141715611567579050905061014052600160028101905b806101605261014051606051634903b0d161018052610160516101a0526020610180602461019c845afa610eaf573d600060003e3d6000fd5b60203d106115675761018090505161016051600281116115675760051b60a0015163313ce5676101c05260206101c060046101dc845afa610ef5573d600060003e3d6000fd5b60203d10611567576101c09050518060120360128111611567579050604d81116115675780600a0a905080820281158383830414171561156757905090506060516368727653610200526101605160018103818111611567579050610220526020610200602461021c845afa610f70573d600060003e3d6000fd5b60203d10611567576102009050518082028115838383041417156115675790509050670de0b6b3a764000081049050808201828110611567579050905061014052600101818118610e7657505061014051670de0b6b3a7640000810281670de0b6b3a76400008204186115675790506040516318160ddd610160526020610160600461017c845afa611007573d600060003e3d6000fd5b60203d106115675761016090505180156115675780820490509050610120525b608051156110ad5761012051670de0b6b3a7640000810281670de0b6b3a764000082041861156757905060605163687276536101405260805160018103818111611567579050610160526020610140602461015c845afa61108d573d600060003e3d6000fd5b60203d106115675761014090505180156115675780820490509050610120525b61012051608051600281116115675760051b60a0015163313ce567610140526020610140600461015c845afa6110e8573d600060003e3d6000fd5b60203d10611567576101409050518060120360128111611567579050604d81116115675780600a0a9050801561156757808204905090506101205261012051815250565b610240516102805260036102405160205260005260406000205415611197576102405163075461726102a05260206102a060046102bc845afa611174573d600060003e3d6000fd5b60203d10611567576102a0518060a01c611567576102e0526102e0905051610280525b6102805163c6610657610300526000610320526020610300602461031c845afa6111c6573d600060003e3d6000fd5b60203d1061156757610300518060a01c61156757610340526103409050516102a0526102805163c6610657610360526001610380526020610360602461037c845afa611217573d600060003e3d6000fd5b60203d1061156757610360518060a01c611567576103a0526103a09050516102c0526102805163c66106576103c05260026103e05260206103c060246103dc845afa611268573d600060003e3d6000fd5b60203d10611567576103c0518060a01c61156757610400526104009050516102e05260016102a0516020526000526040600020546103005260016102c0516020526000526040600020546103205260016102e0516020526000526040600020546103405261030051156112dc5760016112f3565b61032051156112ec5760016112f3565b6103405115155b156115675760006103605261036051600281116115675760051b6103000151610320511115611323576001610360525b61036051600281116115675760051b6103000151610340511115611348576002610360525b60046102405160205260005260406000205461038052610260516102405160405261028051606052610360516080526102a05160a0526102c05160c0526102e05160e052610380516101005261139f6103c0610d74565b6103c0518082028115838383041417156115675790509050670de0b6b3a7640000810490506103a0526000610280516020526000526040600020546103c0526103c0516113ee576006546103c0525b6103a0516103a0516103c05180820281158383830414171561156757905090506127108104905080820382811161156757905090506103a052600261036051600281116115675760051b6102a001516020526000526040600020546103e0526103e05161145d576007546103e0525b610380516114c857610280516307329bcd61040052610260516104205261036051610440526103a051610460526001610480526103e0516104a052602061040060a461041c6000855af16114b6573d600060003e3d6000fd5b60203d10611567576104005050611565565b63f82c50f161040052600060006103a05161042052602060040161041c6a636f6e736f6c652e6c6f675afa506102805163f1dc3cc961040052610260516104205261036051610440526103a05161046052803b15611567576000610400606461041c6000855af161153e573d600060003e3d6000fd5b5061036051600281116115675760051b6102a001516040526103e051606052611565610c89565b565b600080fda165767970657283000307000b005b600080fd000000000000000000000000774d1dba98cfbd1f2bc3a1f59c494125e07c48f9
Deployed Bytecode
0x6003361161000c57610c87565b60003560e01c6389afcb44811861014b5760243610611567576004358060a01c611567576104c05234611567576104c0516370a082316105005233610520526020610500602461051c845afa610067573d600060003e3d6000fd5b60203d10611567576105009050516104e0526104e051156100dd576104c0516323b872dd61050052336105205230610540526104e051610560526020610500606461051c6000855af16100bf573d600060003e3d6000fd5b60203d1061156757610500518060011c611567576105805261058050505b6104c0516370a082316105005230610520526020610500602461051c845afa61010b573d600060003e3d6000fd5b60203d10611567576105009050516104e0526104e0511561013e576104c051610240526104e0516102605261013e61112c565b6001610500526020610500f35b637afb0ed1811861034e5760443610611567576004358060a01c611567576104c05234611567576005546104e0526104c0516370a08231610520526104e051610540526020610520602461053c845afa6101aa573d600060003e3d6000fd5b60203d106115675761052090505161050052306104e0516303d41e0e610520526104c051610540526020610520602461053c845afa6101ee573d600060003e3d6000fd5b60203d1061156757610520518060a01c61156757610560526105609050511861021c5761050051151561021f565b60005b15610282576104c0516323b872dd610580526104e0516105a052306105c052610500516105e0526020610580606461059c6000855af1610264573d600060003e3d6000fd5b60203d1061156757610580518060011c611567576106005261060050505b6104c0516370a082316105205230610540526020610520602461053c845afa6102b0573d600060003e3d6000fd5b60203d106115675761052090505161050052602435610500511015610335576014610520527f496e73756666696369656e742062616c616e63650000000000000000000000006105405261052050610520518061054001601f826000031636823750506308c379a06104e052602061050052601f19601f6105205101166044016104fcfd5b6104c051610240526024356102605261034c61112c565b005b6340cfa09981186103935760443610611567576004358060a01c6115675760405234611567576009543318611567576024356001604051602052600052604060002055005b63820bd888811861048b576102043610611567576004358060a01c611567576040526024358060a01c611567576060526044358060a01c611567576080526064358060a01c6115675760a0526084358060a01c6115675760c05260a4358060a01c6115675760e05260c4358060a01c611567576101005260e4358060a01c6115675761012052346115675760095433186115675760006008905b806101405261014051600781116115675760051b60400151610160526101605161045657610487565b61014051600781116115675760051b610104013560016101605160205260005260406000205560010181811861042d575b5050005b6351b9c55b81186104db5760443610611567576004358060a01c61156757604052346115675760095433186115675761271060243511611567576024356000604051602052600052604060002055005b63629404ed81186105ef576102043610611567576004358060a01c611567576040526024358060a01c611567576060526044358060a01c611567576080526064358060a01c6115675760a0526084358060a01c6115675760c05260a4358060a01c6115675760e05260c4358060a01c611567576101005260e4358060a01c6115675761012052346115675760095433186115675760006008905b806101405261014051600781116115675760051b60400151610160526101605161059e576105eb565b61271061014051600781116115675760051b6101040135116115675761014051600781116115675760051b6101040135600061016051602052600052604060002055600101818118610575575b5050005b638edd69ec811861062357602436106115675734611567576009543318611567576127106004351161156757600435600655005b63c24240c481186106765760443610611567576004358060a01c611567576040526024358060a01c6115675760605234611567576009543318611567576060516002604051602052600052604060002055005b63e6a7199a81186107ee576102043610611567576004358060a01c611567576040526024358060a01c611567576060526044358060a01c611567576080526064358060a01c6115675760a0526084358060a01c6115675760c05260a4358060a01c6115675760e05260c4358060a01c611567576101005260e4358060a01c6115675761012052610104358060a01c6115675761014052610124358060a01c6115675761016052610144358060a01c6115675761018052610164358060a01c611567576101a052610184358060a01c611567576101c0526101a4358060a01c611567576101e0526101c4358060a01c61156757610200526101e4358060a01c6115675761022052346115675760095433186115675760006008905b806102405261024051600781116115675760051b6040015161026052610260516107b9576107ea565b61024051600781116115675760051b6101400151600261026051602052600052604060002055600101818118610790575b5050005b63d1dd6f5681186108255760243610611567576004358060a01c611567576040523461156757600954331861156757604051600755005b63672f616881186108785760443610611567576004358060a01c611567576040526024358060011c6115675760605234611567576009543318611567576060516003604051602052600052604060002055005b638c0b58bb81186108cb5760443610611567576004358060a01c611567576040526024358060011c6115675760605234611567576009543318611567576060516004604051602052600052604060002055005b63db2f5f7981186109bd5760243610611567576004358060a01c6115675760405234611567576009543318611567576040516370a082316080523060a052602060806024609c845afa610923573d600060003e3d6000fd5b60203d1061156757608090505160605263a9059cbb60c452600460085460e4526060516101045260400160c05260c050602061016060c05160e060006040515af1610973573d600060003e3d6000fd5b3d602081183d60201002186101405261014080518060805260208201805160a052505050608051156109b25760a05160805160200360031b1c15611567575b600160c052602060c0f35b635dc659b081186109fd5760243610611567576004358060a01c611567576040523461156757600954331861156757604051600855600160605260206060f35b636b441a408118610a3d5760243610611567576004358060a01c611567576040523461156757600954331861156757604051600a55600160605260206060f35b63e5ea47b88118610a6d5760043610611567573461156757600a5433186115675733600955600160405260206040f35b63b450efbd8118610aad5760243610611567576004358060a01c611567576040523461156757600060405160205260005260406000205460605260206060f35b6358fe27ec8118610aed5760243610611567576004358060a01c611567576040523461156757600160405160205260005260406000205460605260206060f35b63c25085f28118610b2d5760243610611567576004358060a01c611567576040523461156757600260405160205260005260406000205460605260206060f35b63bcacc18f8118610b6d5760243610611567576004358060a01c611567576040523461156757600360405160205260005260406000205460605260206060f35b63e0a42db68118610bad5760243610611567576004358060a01c611567576040523461156757600460405160205260005260406000205460605260206060f35b6391db89f38118610bd1576004361061156757346115675760055460405260206040f35b633e032a3b8118610bf5576004361061156757346115675760065460405260206040f35b63f7260d3e8118610c19576004361061156757346115675760075460405260206040f35b63ddceafa98118610c3d576004361061156757346115675760085460405260206040f35b638da5cb5b8118610c61576004361061156757346115675760095460405260206040f35b631ec0cdc18118610c855760043610611567573461156757600a5460405260206040f35b505b005b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60405118610cd05760006080526080506000600060805160a0476060515af1610d72573d600060003e3d6000fd610d72565b60405163a9059cbb60c05260605160e0526040516370a082316080523060a052602060806024609c845afa610d0a573d600060003e3d6000fd5b60203d1061156757608090505161010052602060c0604460dc6000855af1610d37573d600060003e3d6000fd5b3d610d4e57803b1561156757600161012052610d66565b60203d106115675760c0518060011c61156757610120525b61012090505115611567575b565b670de0b6b3a76400006101205261010051610dc8576060516354f0f7d5610140526020610140600461015c845afa610db1573d600060003e3d6000fd5b60203d106115675761014090505161012052611027565b606051634903b0d1610160526000610180526020610160602461017c845afa610df6573d600060003e3d6000fd5b60203d106115675761016090505160a05163313ce5676101a05260206101a060046101bc845afa610e2c573d600060003e3d6000fd5b60203d10611567576101a09050518060120360128111611567579050604d81116115675780600a0a9050808202811583838304141715611567579050905061014052600160028101905b806101605261014051606051634903b0d161018052610160516101a0526020610180602461019c845afa610eaf573d600060003e3d6000fd5b60203d106115675761018090505161016051600281116115675760051b60a0015163313ce5676101c05260206101c060046101dc845afa610ef5573d600060003e3d6000fd5b60203d10611567576101c09050518060120360128111611567579050604d81116115675780600a0a905080820281158383830414171561156757905090506060516368727653610200526101605160018103818111611567579050610220526020610200602461021c845afa610f70573d600060003e3d6000fd5b60203d10611567576102009050518082028115838383041417156115675790509050670de0b6b3a764000081049050808201828110611567579050905061014052600101818118610e7657505061014051670de0b6b3a7640000810281670de0b6b3a76400008204186115675790506040516318160ddd610160526020610160600461017c845afa611007573d600060003e3d6000fd5b60203d106115675761016090505180156115675780820490509050610120525b608051156110ad5761012051670de0b6b3a7640000810281670de0b6b3a764000082041861156757905060605163687276536101405260805160018103818111611567579050610160526020610140602461015c845afa61108d573d600060003e3d6000fd5b60203d106115675761014090505180156115675780820490509050610120525b61012051608051600281116115675760051b60a0015163313ce567610140526020610140600461015c845afa6110e8573d600060003e3d6000fd5b60203d10611567576101409050518060120360128111611567579050604d81116115675780600a0a9050801561156757808204905090506101205261012051815250565b610240516102805260036102405160205260005260406000205415611197576102405163075461726102a05260206102a060046102bc845afa611174573d600060003e3d6000fd5b60203d10611567576102a0518060a01c611567576102e0526102e0905051610280525b6102805163c6610657610300526000610320526020610300602461031c845afa6111c6573d600060003e3d6000fd5b60203d1061156757610300518060a01c61156757610340526103409050516102a0526102805163c6610657610360526001610380526020610360602461037c845afa611217573d600060003e3d6000fd5b60203d1061156757610360518060a01c611567576103a0526103a09050516102c0526102805163c66106576103c05260026103e05260206103c060246103dc845afa611268573d600060003e3d6000fd5b60203d10611567576103c0518060a01c61156757610400526104009050516102e05260016102a0516020526000526040600020546103005260016102c0516020526000526040600020546103205260016102e0516020526000526040600020546103405261030051156112dc5760016112f3565b61032051156112ec5760016112f3565b6103405115155b156115675760006103605261036051600281116115675760051b6103000151610320511115611323576001610360525b61036051600281116115675760051b6103000151610340511115611348576002610360525b60046102405160205260005260406000205461038052610260516102405160405261028051606052610360516080526102a05160a0526102c05160c0526102e05160e052610380516101005261139f6103c0610d74565b6103c0518082028115838383041417156115675790509050670de0b6b3a7640000810490506103a0526000610280516020526000526040600020546103c0526103c0516113ee576006546103c0525b6103a0516103a0516103c05180820281158383830414171561156757905090506127108104905080820382811161156757905090506103a052600261036051600281116115675760051b6102a001516020526000526040600020546103e0526103e05161145d576007546103e0525b610380516114c857610280516307329bcd61040052610260516104205261036051610440526103a051610460526001610480526103e0516104a052602061040060a461041c6000855af16114b6573d600060003e3d6000fd5b60203d10611567576104005050611565565b63f82c50f161040052600060006103a05161042052602060040161041c6a636f6e736f6c652e6c6f675afa506102805163f1dc3cc961040052610260516104205261036051610440526103a05161046052803b15611567576000610400606461041c6000855af161153e573d600060003e3d6000fd5b5061036051600281116115675760051b6102a001516040526103e051606052611565610c89565b565b600080fda165767970657283000307000b
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000774d1dba98cfbd1f2bc3a1f59c494125e07c48f9
-----Decoded View---------------
Arg [0] : _pool_proxy (address): 0x774D1Dba98cfBD1F2Bc3A1F59c494125e07C48F9
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000774d1dba98cfbd1f2bc3a1f59c494125e07c48f9
Loading...
Loading
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.