Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
20163302 | 18 days ago | 0.32684336 ETH | ||||
20163302 | 18 days ago | 0.02339629 ETH | ||||
20163302 | 18 days ago | 0.30344707 ETH | ||||
20160888 | 19 days ago | 1.67501564 ETH | ||||
20160888 | 19 days ago | 1.00445119 ETH | ||||
20160888 | 19 days ago | 0.67056444 ETH | ||||
20124963 | 24 days ago | 7.19612539 ETH | ||||
20124961 | 24 days ago | 7.19612539 ETH | ||||
20124442 | 24 days ago | 13.94302004 ETH | ||||
20124442 | 24 days ago | 12.21134795 ETH | ||||
20124442 | 24 days ago | 1.10753594 ETH | ||||
20075288 | 31 days ago | 0.62413615 ETH | ||||
20075285 | 31 days ago | 6.64155596 ETH | ||||
20075285 | 31 days ago | 4.05222302 ETH | ||||
20075285 | 31 days ago | 2.58933294 ETH | ||||
20025426 | 38 days ago | 4.77658028 ETH | ||||
20025426 | 38 days ago | 2.56970516 ETH | ||||
20025426 | 38 days ago | 1.61418458 ETH | ||||
19974960 | 45 days ago | 0.32818686 ETH | ||||
19974960 | 45 days ago | 0.26450366 ETH | ||||
19974957 | 45 days ago | 11.43799294 ETH | ||||
19974957 | 45 days ago | 8.35654694 ETH | ||||
19974957 | 45 days ago | 2.80633851 ETH | ||||
19974953 | 45 days ago | 0.27510749 ETH | ||||
19925234 | 52 days ago | 17.33647008 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.3.7
Contract Source Code (Vyper language format)
# @version 0.3.7 """ @title Crypto Swap Burner @notice Performs a swap using a Crypto pool, with slippage protection via price oracle """ interface ERC20: def transferFrom(_from: address, _to: address, _value: uint256) -> bool: nonpayable def balanceOf(_owner: address) -> uint256: view def decimals() -> uint256: view interface CryptoPool: def exchange(i: uint256, j: uint256, dx: uint256, min_dy: uint256): payable def price_oracle() -> uint256: view interface TricryptoPool: def price_oracle(_i: uint256) -> uint256: view interface CryptoPoolETH: def exchange(i: uint256, j: uint256, dx: uint256, min_dy: uint256, use_eth: bool): payable interface PoolProxy: def burners(_coin: address) -> address: view struct SwapData: pool: address coin: address receiver: address i: uint256 j: uint256 is_tricrypto: bool ETH_ADDRESS: constant(address) = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE is_approved: HashMap[address, HashMap[address, bool]] swap_data: public(HashMap[address, SwapData]) pool_proxy: public(address) recovery: public(address) is_killed: public(bool) owner: public(address) emergency_owner: public(address) future_owner: public(address) future_emergency_owner: public(address) @external def __init__(_pool_proxy: address, _recovery: address, _owner: address, _emergency_owner: address): """ @notice Contract constructor @dev Unlike other burners, this contract may transfer tokens to multiple addresses after the swap. Receiver addresses are set by calling `set_swap_data` instead of setting it within the constructor. @param _recovery Address that tokens are transferred to during an emergency token recovery. @param _owner Owner address. Can kill the contract, recover tokens and modify the recovery address. @param _emergency_owner Emergency owner address. Can kill the contract and recover tokens. """ self.pool_proxy = _pool_proxy self.recovery = _recovery self.owner = _owner self.emergency_owner = _emergency_owner @payable @external def __default__(): # required to receive ether during intermediate swaps pass @internal def _transfer_from(_coin: address, _from: address) -> (uint256, uint256): if _coin == ETH_ADDRESS: return self.balance, self.balance # transfer coins from caller amount: uint256 = ERC20(_coin).balanceOf(_from) if amount != 0: response: Bytes[32] = raw_call( _coin, _abi_encode( self.pool_proxy, self, amount, method_id=method_id("transferFrom(address,address,uint256)") ), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) # get actual balance in case of transfer fee or pre-existing balance return ERC20(_coin).balanceOf(self), 0 @internal def _burn(_coin: address, _amount: uint256, _eth_amount: uint256): initial_balance: uint256 = 0 min_dy: uint256 = 0 swap_data: SwapData = self.swap_data[_coin] if swap_data.coin == ETH_ADDRESS: initial_balance = self.balance else: initial_balance = ERC20(swap_data.coin).balanceOf(self) i: uint256 = swap_data.i j: uint256 = swap_data.j mul_: uint256 = 10**18 div_: uint256 = 10**18 if i > 0: if swap_data.is_tricrypto: mul_ = TricryptoPool(swap_data.pool).price_oracle(i - 1) else: mul_ = CryptoPool(swap_data.pool).price_oracle() if j > 0: if swap_data.is_tricrypto: div_ = TricryptoPool(swap_data.pool).price_oracle(j - 1) else: div_ = CryptoPool(swap_data.pool).price_oracle() min_dy = _amount * mul_ * 99 / (div_ * 100) if _coin == ETH_ADDRESS or swap_data.coin == ETH_ADDRESS: CryptoPoolETH(swap_data.pool).exchange(i, j, _amount, 0, True, value=_eth_amount) else: CryptoPool(swap_data.pool).exchange(i, j, _amount, 0) if swap_data.coin == ETH_ADDRESS: assert self.balance - initial_balance >= min_dy * 10 ** (18 - ERC20(_coin).decimals()), "Slippage" if swap_data.receiver != empty(address): raw_call(swap_data.receiver, b"", value=self.balance) else: received: uint256 = (ERC20(swap_data.coin).balanceOf(self) - initial_balance)\ * 10 ** (18 - ERC20(swap_data.coin).decimals()) if _coin != ETH_ADDRESS: min_dy *= 10 ** (18 - ERC20(_coin).decimals()) assert received >= min_dy, "Slippage" if swap_data.receiver != empty(address): amount: uint256 = ERC20(swap_data.coin).balanceOf(self) response: Bytes[32] = raw_call( swap_data.coin, _abi_encode(swap_data.receiver, amount, method_id=method_id("transfer(address,uint256)")), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) @payable @external def burn(_coin: address) -> bool: """ @notice Convert `_coin` by swapping and transfer to another burner @param _coin Address of the coin being converted @return bool success """ assert not self.is_killed # dev: is killed amount: uint256 = 0 eth_amount: uint256 = 0 amount, eth_amount = self._transfer_from(_coin, self.pool_proxy) if amount != 0: self._burn(_coin, amount, eth_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 """ assert not self.is_killed # dev: is killed amount: uint256 = 0 eth_amount: uint256 = 0 pool_proxy: address = self.pool_proxy assert PoolProxy(pool_proxy).burners(_coin) == self amount, eth_amount = self._transfer_from(_coin, pool_proxy) assert amount >= _amount_to_burn, "Insufficient balance" self._burn(_coin, _amount_to_burn, min(eth_amount, _amount_to_burn)) @internal def _set_swap_data(_from: address, _swap_data: SwapData): self.swap_data[_from] = _swap_data if _from != ETH_ADDRESS: response: Bytes[32] = raw_call( _from, _abi_encode(_swap_data.pool, max_value(uint256), method_id=method_id("approve(address,uint256)")), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) @external def set_swap_data( _from: address, _pool: address, _to: address, _receiver: address, _i: uint256, _j: uint256, _is_tricrypto: bool, ) -> bool: """ @notice Set conversion and transfer data for `_from` @return bool success """ assert msg.sender in [self.owner, self.emergency_owner] # dev: only owner self._set_swap_data(_from, SwapData({ pool: _pool, coin: _to, receiver: _receiver, i: _i, j: _j, is_tricrypto: _is_tricrypto, })) return True @external def set_many_swap_data(_from: DynArray[address, 20], _swap_datas: DynArray[SwapData, 20]): assert msg.sender in [self.owner, self.emergency_owner] # dev: only owner assert len(_swap_datas) == len(_from), "Incorrect input" i: uint256 = 0 for data in _swap_datas: self._set_swap_data(_from[i], data) i += 1 @external def recover_balance(_coin: address) -> bool: """ @notice Recover ERC20 tokens or Ether from this contract @dev Tokens are sent to the recovery address @param _coin Token address @return bool success """ assert msg.sender in [self.owner, self.emergency_owner] # dev: only owner if _coin == ETH_ADDRESS: raw_call(self.recovery, b"", value=self.balance) else: 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 set_killed(_is_killed: bool) -> bool: """ @notice Set killed status for this contract @dev When killed, the `burn` function cannot be called @param _is_killed Killed status @return bool success """ assert msg.sender in [self.owner, self.emergency_owner] # dev: only owner self.is_killed = _is_killed 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 @external def commit_transfer_emergency_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.emergency_owner # dev: only owner self.future_emergency_owner = _future_owner return True @external def accept_transfer_emergency_ownership() -> bool: """ @notice Accept a transfer of ownership @return bool success """ assert msg.sender == self.future_emergency_owner # dev: only owner self.emergency_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"},{"name":"_recovery","type":"address"},{"name":"_owner","type":"address"},{"name":"_emergency_owner","type":"address"}],"outputs":[]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","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_swap_data","inputs":[{"name":"_from","type":"address"},{"name":"_pool","type":"address"},{"name":"_to","type":"address"},{"name":"_receiver","type":"address"},{"name":"_i","type":"uint256"},{"name":"_j","type":"uint256"},{"name":"_is_tricrypto","type":"bool"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"set_many_swap_data","inputs":[{"name":"_from","type":"address[]"},{"name":"_swap_datas","type":"tuple[]","components":[{"name":"pool","type":"address"},{"name":"coin","type":"address"},{"name":"receiver","type":"address"},{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"is_tricrypto","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":"set_killed","inputs":[{"name":"_is_killed","type":"bool"}],"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":"nonpayable","type":"function","name":"commit_transfer_emergency_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_emergency_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"swap_data","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"pool","type":"address"},{"name":"coin","type":"address"},{"name":"receiver","type":"address"},{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"is_tricrypto","type":"bool"}]}]},{"stateMutability":"view","type":"function","name":"pool_proxy","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"recovery","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"is_killed","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"emergency_owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_emergency_owner","inputs":[],"outputs":[{"name":"","type":"address"}]}]
Contract Creation Code
60206113566000396000518060a01c6113515760405260206113766000396000518060a01c6113515760605260206113966000396000518060a01c6113515760805260206113b66000396000518060a01c6113515760a052346113515760405160025560605160035560805160055560a0516006556112ca610086610000396112ca610000f36003361161000c57610956565b60003560e01c6389afcb4481186100a057602436106112b8576004358060a01c6112b857610360526004546112b857604036610380376103605160405260025460605261005a6103c0610958565b6103c080516103805260208101516103a0525061038051156100935761036051604052610380516060526103a051608052610093610a90565b60016103c05260206103c0f35b637afb0ed181186101fe57604436106112b8576004358060a01c6112b85761036052346112b8576004546112b857604036610380376002546103c052306103c0516303d41e0e6103e052610360516104005260206103e060246103fc845afa61010e573d600060003e3d6000fd5b60203d106112b8576103e0518060a01c6112b85761042052610420905051186112b857610360516040526103c05160605261014a6103e0610958565b6103e080516103805260208101516103a052506024356103805110156101d05760146103e0527f496e73756666696369656e742062616c616e6365000000000000000000000000610400526103e0506103e0518061040001601f826000031636823750506308c379a06103a05260206103c052601f19601f6103e05101166044016103bcfd5b610360516040526024356060526103a051602435808281188284100218905090506080526101fc610a90565b005b63a973862581186102c05760e436106112b8576004358060a01c6112b857610220526024358060a01c6112b857610240526044358060a01c6112b857610260526064358060a01c6112b8576102805260c4358060011c6112b8576102a052346112b857336005548118610272576001610279565b6006548118155b9050156112b8576102205160405261024051606052610260516080526102805160a0526040608460c0376102a051610100526102b36111b2565b60016102c05260206102c0f35b63abcc6883811861052857608436106112b85760043560040160148135116112b85780358061022052600081601481116112b857801561032257905b8060051b6020850101358060a01c6112b8578160051b61024001526001018181186102fc575b5050505060243560040160148135116112b8578035806104c052600081601481116112b85780156103c357905b60c081026104e00160c08202602086010180358060a01c6112b857825260208101358060a01c6112b857602083015260408101358060a01c6112b8576040830152606081013560608301526080810135608083015260a08101358060011c6112b85760a0830152505060010181811861034f575b50505050346112b8573360055481186103dd5760016103e4565b6006548118155b9050156112b857610220516104c051181561045f57600f6113e0527f496e636f727265637420696e7075740000000000000000000000000000000000611400526113e0506113e0518061140001601f826000031636823750506308c379a06113a05260206113c052601f19601f6113e05101166044016113bcfd5b60006113e05260006104c051601481116112b857801561052457905b60c081026104e00180516114005260208101516114205260408101516114405260608101516114605260808101516114805260a08101516114a052506113e051610220518110156112b85760051b610240015160405261140051606052611420516080526114405160a0526114605160c0526114805160e0526114a051610100526105046111b2565b6113e051600181018181106112b85790506113e05260010181811861047b575b5050005b63db2f5f79811861067757602436106112b8576004358060a01c6112b857604052346112b85733600554811861055f576001610566565b6006548118155b9050156112b85773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051186105b4576000606052606050600060006060516080476003545af161066c573d600060003e3d6000fd61066c565b6040516370a082316080523060a052602060806024609c845afa6105dd573d600060003e3d6000fd5b60203d106112b857608090505160605263a9059cbb60c452600460035460e4526060516101045260400160c05260c050602061016060c05160e060006040515af161062d573d600060003e3d6000fd5b3d602081183d60201002186101405261014080518060805260208201805160a0525050506080511561066c5760a05160805160200360031b1c156112b8575b600160605260206060f35b635dc659b081186106b757602436106112b8576004358060a01c6112b857604052346112b85760055433186112b857604051600355600160605260206060f35b6390b22997811861070d57602436106112b8576004358060011c6112b857604052346112b8573360055481186106ee5760016106f5565b6006548118155b9050156112b857604051600455600160605260206060f35b636b441a40811861074d57602436106112b8576004358060a01c6112b857604052346112b85760055433186112b857604051600755600160605260206060f35b63e5ea47b8811861077d57600436106112b857346112b85760075433186112b85733600555600160405260206040f35b6395c8991581186107bd57602436106112b8576004358060a01c6112b857604052346112b85760065433186112b857604051600855600160605260206060f35b632d2cb67581186107ed57600436106112b857346112b85760085433186112b85733600655600160405260206040f35b6312946aae811861085857602436106112b8576004358060a01c6112b857604052346112b8576001604051602052600052604060002080546060526001810154608052600281015460a052600381015460c052600481015460e0526005810154610100525060c06060f35b6391db89f3811861087c57600436106112b857346112b85760025460405260206040f35b63ddceafa981186108a057600436106112b857346112b85760035460405260206040f35b639c868ac081186108c457600436106112b857346112b85760045460405260206040f35b638da5cb5b81186108e857600436106112b857346112b85760055460405260206040f35b6363a4042a811861090c57600436106112b857346112b85760065460405260206040f35b631ec0cdc1811861093057600436106112b857346112b85760075460405260206040f35b63e19f994c811861095457600436106112b857346112b85760085460405260206040f35b505b005b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051186109845747815247602082015250610a8e565b6040516370a0823160a05260605160c052602060a0602460bc845afa6109af573d600060003e3d6000fd5b60203d106112b85760a090505160805260805115610a4d576323b872dd60e45260046002546101045230610124526080516101445260600160e05260e05060206101a060e05161010060006040515af1610a0e573d600060003e3d6000fd5b3d602081183d60201002186101805261018080518060a05260208201805160c05250505060a05115610a4d5760c05160a05160200360031b1c156112b8575b6040516370a0823160a0523060c052602060a0602460bc845afa610a76573d600060003e3d6000fd5b60203d106112b85760a0905051815260006020820152505b565b60403660a03760016040516020526000526040600020805460e0526001810154610100526002810154610120526003810154610140526004810154610160526005810154610180525073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101005118610b00574760a052610b40565b610100516370a082316101a052306101c05260206101a060246101bc845afa610b2e573d600060003e3d6000fd5b60203d106112b8576101a090505160a0525b610140516101a052610160516101c052670de0b6b3a76400006101e052670de0b6b3a7640000610200526101a05115610c0a5761018051610bba5760e0516386fc88d3610220526020610220600461023c845afa610ba3573d600060003e3d6000fd5b60203d106112b8576102209050516101e052610c0a565b60e0516368727653610220526101a051600181038181116112b8579050610240526020610220602461023c845afa610bf7573d600060003e3d6000fd5b60203d106112b8576102209050516101e0525b6101c05115610caa5761018051610c5a5760e0516386fc88d3610220526020610220600461023c845afa610c43573d600060003e3d6000fd5b60203d106112b85761022090505161020052610caa565b60e0516368727653610220526101c051600181038181116112b8579050610240526020610220602461023c845afa610c97573d600060003e3d6000fd5b60203d106112b857610220905051610200525b6060516101e0518082028115838383041417156112b85790509050606381028160638204186112b857905061020051606481028160648204186112b857905080156112b8578082049050905060c05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60405118610d1d576001610d39565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101005118155b610d915760e051635b41b908610220526101a051610240526101c051610260526060516102805260006102a052803b156112b8576000610220608461023c6000855af1610d8b573d600060003e3d6000fd5b50610de8565b60e05163394747c5610220526101a051610240526101c051610260526060516102805260006102a05260016102c052803b156112b857600061022060a461023c608051855af1610de6573d600060003e3d6000fd5b505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101005118610f255760c05160405163313ce567610220526020610220600461023c845afa610e31573d600060003e3d6000fd5b60203d106112b85761022090505180601203601281116112b8579050604d81116112b85780600a0a90508082028115838383041417156112b857905090504760a0518082038281116112b857905090501015610eed576008610260527f536c6970706167650000000000000000000000000000000000000000000000006102805261026050610260518061028001601f826000031636823750506308c379a061022052602061024052601f19601f61026051011660440161023cfd5b61012051156111b05760006102205261022050600060006102205161024047610120515af16111b0573d600060003e3d6000fd6111b0565b610100516370a082316102405230610260526020610240602461025c845afa610f53573d600060003e3d6000fd5b60203d106112b85761024090505160a0518082038281116112b857905090506101005163313ce567610280526020610280600461029c845afa610f9b573d600060003e3d6000fd5b60203d106112b85761028090505180601203601281116112b8579050604d81116112b85780600a0a90508082028115838383041417156112b857905090506102205273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051146110675760c05160405163313ce567610240526020610240600461025c845afa611025573d600060003e3d6000fd5b60203d106112b85761024090505180601203601281116112b8579050604d81116112b85780600a0a90508082028115838383041417156112b8579050905060c0525b60c0516102205110156110da576008610240527f536c6970706167650000000000000000000000000000000000000000000000006102605261024050610240518061026001601f826000031636823750506308c379a061020052602061022052601f19601f61024051011660440161021cfd5b61012051156111b057610100516370a082316102605230610280526020610260602461027c845afa611111573d600060003e3d6000fd5b60203d106112b8576102609050516102405263a9059cbb6102a4526004610120516102c452610240516102e4526040016102a0526102a05060206103406102a0516102c06000610100515af161116c573d600060003e3d6000fd5b3d602081183d602010021861032052610320805180610260526020820180516102805250505061026051156111b057610280516102605160200360031b1c156112b8575b565b600160405160205260005260406000206060518155608051600182015560a051600282015560c051600382015560e05160048201556101005160058201555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051146112b65763095ea7b3610164526004606051610184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101a452604001610160526101605060206102006101605161018060006040515af1611272573d600060003e3d6000fd5b3d602081183d60201002186101e0526101e0805180610120526020820180516101405250505061012051156112b657610140516101205160200360031b1c156112b8575b565b600080fda165767970657283000307000b005b600080fd000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b34700000000000000000000000071f718d3e4d1449d1502a6a7595eb84ebccb1683000000000000000000000000467947ee34af926cf1dcac093870f613c96b1e0c
Deployed Bytecode
0x6003361161000c57610956565b60003560e01c6389afcb4481186100a057602436106112b8576004358060a01c6112b857610360526004546112b857604036610380376103605160405260025460605261005a6103c0610958565b6103c080516103805260208101516103a0525061038051156100935761036051604052610380516060526103a051608052610093610a90565b60016103c05260206103c0f35b637afb0ed181186101fe57604436106112b8576004358060a01c6112b85761036052346112b8576004546112b857604036610380376002546103c052306103c0516303d41e0e6103e052610360516104005260206103e060246103fc845afa61010e573d600060003e3d6000fd5b60203d106112b8576103e0518060a01c6112b85761042052610420905051186112b857610360516040526103c05160605261014a6103e0610958565b6103e080516103805260208101516103a052506024356103805110156101d05760146103e0527f496e73756666696369656e742062616c616e6365000000000000000000000000610400526103e0506103e0518061040001601f826000031636823750506308c379a06103a05260206103c052601f19601f6103e05101166044016103bcfd5b610360516040526024356060526103a051602435808281188284100218905090506080526101fc610a90565b005b63a973862581186102c05760e436106112b8576004358060a01c6112b857610220526024358060a01c6112b857610240526044358060a01c6112b857610260526064358060a01c6112b8576102805260c4358060011c6112b8576102a052346112b857336005548118610272576001610279565b6006548118155b9050156112b8576102205160405261024051606052610260516080526102805160a0526040608460c0376102a051610100526102b36111b2565b60016102c05260206102c0f35b63abcc6883811861052857608436106112b85760043560040160148135116112b85780358061022052600081601481116112b857801561032257905b8060051b6020850101358060a01c6112b8578160051b61024001526001018181186102fc575b5050505060243560040160148135116112b8578035806104c052600081601481116112b85780156103c357905b60c081026104e00160c08202602086010180358060a01c6112b857825260208101358060a01c6112b857602083015260408101358060a01c6112b8576040830152606081013560608301526080810135608083015260a08101358060011c6112b85760a0830152505060010181811861034f575b50505050346112b8573360055481186103dd5760016103e4565b6006548118155b9050156112b857610220516104c051181561045f57600f6113e0527f496e636f727265637420696e7075740000000000000000000000000000000000611400526113e0506113e0518061140001601f826000031636823750506308c379a06113a05260206113c052601f19601f6113e05101166044016113bcfd5b60006113e05260006104c051601481116112b857801561052457905b60c081026104e00180516114005260208101516114205260408101516114405260608101516114605260808101516114805260a08101516114a052506113e051610220518110156112b85760051b610240015160405261140051606052611420516080526114405160a0526114605160c0526114805160e0526114a051610100526105046111b2565b6113e051600181018181106112b85790506113e05260010181811861047b575b5050005b63db2f5f79811861067757602436106112b8576004358060a01c6112b857604052346112b85733600554811861055f576001610566565b6006548118155b9050156112b85773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051186105b4576000606052606050600060006060516080476003545af161066c573d600060003e3d6000fd61066c565b6040516370a082316080523060a052602060806024609c845afa6105dd573d600060003e3d6000fd5b60203d106112b857608090505160605263a9059cbb60c452600460035460e4526060516101045260400160c05260c050602061016060c05160e060006040515af161062d573d600060003e3d6000fd5b3d602081183d60201002186101405261014080518060805260208201805160a0525050506080511561066c5760a05160805160200360031b1c156112b8575b600160605260206060f35b635dc659b081186106b757602436106112b8576004358060a01c6112b857604052346112b85760055433186112b857604051600355600160605260206060f35b6390b22997811861070d57602436106112b8576004358060011c6112b857604052346112b8573360055481186106ee5760016106f5565b6006548118155b9050156112b857604051600455600160605260206060f35b636b441a40811861074d57602436106112b8576004358060a01c6112b857604052346112b85760055433186112b857604051600755600160605260206060f35b63e5ea47b8811861077d57600436106112b857346112b85760075433186112b85733600555600160405260206040f35b6395c8991581186107bd57602436106112b8576004358060a01c6112b857604052346112b85760065433186112b857604051600855600160605260206060f35b632d2cb67581186107ed57600436106112b857346112b85760085433186112b85733600655600160405260206040f35b6312946aae811861085857602436106112b8576004358060a01c6112b857604052346112b8576001604051602052600052604060002080546060526001810154608052600281015460a052600381015460c052600481015460e0526005810154610100525060c06060f35b6391db89f3811861087c57600436106112b857346112b85760025460405260206040f35b63ddceafa981186108a057600436106112b857346112b85760035460405260206040f35b639c868ac081186108c457600436106112b857346112b85760045460405260206040f35b638da5cb5b81186108e857600436106112b857346112b85760055460405260206040f35b6363a4042a811861090c57600436106112b857346112b85760065460405260206040f35b631ec0cdc1811861093057600436106112b857346112b85760075460405260206040f35b63e19f994c811861095457600436106112b857346112b85760085460405260206040f35b505b005b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051186109845747815247602082015250610a8e565b6040516370a0823160a05260605160c052602060a0602460bc845afa6109af573d600060003e3d6000fd5b60203d106112b85760a090505160805260805115610a4d576323b872dd60e45260046002546101045230610124526080516101445260600160e05260e05060206101a060e05161010060006040515af1610a0e573d600060003e3d6000fd5b3d602081183d60201002186101805261018080518060a05260208201805160c05250505060a05115610a4d5760c05160a05160200360031b1c156112b8575b6040516370a0823160a0523060c052602060a0602460bc845afa610a76573d600060003e3d6000fd5b60203d106112b85760a0905051815260006020820152505b565b60403660a03760016040516020526000526040600020805460e0526001810154610100526002810154610120526003810154610140526004810154610160526005810154610180525073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101005118610b00574760a052610b40565b610100516370a082316101a052306101c05260206101a060246101bc845afa610b2e573d600060003e3d6000fd5b60203d106112b8576101a090505160a0525b610140516101a052610160516101c052670de0b6b3a76400006101e052670de0b6b3a7640000610200526101a05115610c0a5761018051610bba5760e0516386fc88d3610220526020610220600461023c845afa610ba3573d600060003e3d6000fd5b60203d106112b8576102209050516101e052610c0a565b60e0516368727653610220526101a051600181038181116112b8579050610240526020610220602461023c845afa610bf7573d600060003e3d6000fd5b60203d106112b8576102209050516101e0525b6101c05115610caa5761018051610c5a5760e0516386fc88d3610220526020610220600461023c845afa610c43573d600060003e3d6000fd5b60203d106112b85761022090505161020052610caa565b60e0516368727653610220526101c051600181038181116112b8579050610240526020610220602461023c845afa610c97573d600060003e3d6000fd5b60203d106112b857610220905051610200525b6060516101e0518082028115838383041417156112b85790509050606381028160638204186112b857905061020051606481028160648204186112b857905080156112b8578082049050905060c05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60405118610d1d576001610d39565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101005118155b610d915760e051635b41b908610220526101a051610240526101c051610260526060516102805260006102a052803b156112b8576000610220608461023c6000855af1610d8b573d600060003e3d6000fd5b50610de8565b60e05163394747c5610220526101a051610240526101c051610260526060516102805260006102a05260016102c052803b156112b857600061022060a461023c608051855af1610de6573d600060003e3d6000fd5b505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101005118610f255760c05160405163313ce567610220526020610220600461023c845afa610e31573d600060003e3d6000fd5b60203d106112b85761022090505180601203601281116112b8579050604d81116112b85780600a0a90508082028115838383041417156112b857905090504760a0518082038281116112b857905090501015610eed576008610260527f536c6970706167650000000000000000000000000000000000000000000000006102805261026050610260518061028001601f826000031636823750506308c379a061022052602061024052601f19601f61026051011660440161023cfd5b61012051156111b05760006102205261022050600060006102205161024047610120515af16111b0573d600060003e3d6000fd6111b0565b610100516370a082316102405230610260526020610240602461025c845afa610f53573d600060003e3d6000fd5b60203d106112b85761024090505160a0518082038281116112b857905090506101005163313ce567610280526020610280600461029c845afa610f9b573d600060003e3d6000fd5b60203d106112b85761028090505180601203601281116112b8579050604d81116112b85780600a0a90508082028115838383041417156112b857905090506102205273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051146110675760c05160405163313ce567610240526020610240600461025c845afa611025573d600060003e3d6000fd5b60203d106112b85761024090505180601203601281116112b8579050604d81116112b85780600a0a90508082028115838383041417156112b8579050905060c0525b60c0516102205110156110da576008610240527f536c6970706167650000000000000000000000000000000000000000000000006102605261024050610240518061026001601f826000031636823750506308c379a061020052602061022052601f19601f61024051011660440161021cfd5b61012051156111b057610100516370a082316102605230610280526020610260602461027c845afa611111573d600060003e3d6000fd5b60203d106112b8576102609050516102405263a9059cbb6102a4526004610120516102c452610240516102e4526040016102a0526102a05060206103406102a0516102c06000610100515af161116c573d600060003e3d6000fd5b3d602081183d602010021861032052610320805180610260526020820180516102805250505061026051156111b057610280516102605160200360031b1c156112b8575b565b600160405160205260005260406000206060518155608051600182015560a051600282015560c051600382015560e05160048201556101005160058201555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051146112b65763095ea7b3610164526004606051610184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101a452604001610160526101605060206102006101605161018060006040515af1611272573d600060003e3d6000fd5b3d602081183d60201002186101e0526101e0805180610120526020820180516101405250505061012051156112b657610140516101205160200360031b1c156112b8575b565b600080fda165767970657283000307000b
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b34700000000000000000000000071f718d3e4d1449d1502a6a7595eb84ebccb1683000000000000000000000000467947ee34af926cf1dcac093870f613c96b1e0c
-----Decoded View---------------
Arg [0] : _pool_proxy (address): 0xeCb456EA5365865EbAb8a2661B0c503410e9B347
Arg [1] : _recovery (address): 0xeCb456EA5365865EbAb8a2661B0c503410e9B347
Arg [2] : _owner (address): 0x71F718D3e4d1449D1502A6A7595eb84eBcCB1683
Arg [3] : _emergency_owner (address): 0x467947EE34aF926cF1DCac093870f613C96B1E0c
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347
Arg [1] : 000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347
Arg [2] : 00000000000000000000000071f718d3e4d1449d1502a6a7595eb84ebccb1683
Arg [3] : 000000000000000000000000467947ee34af926cf1dcac093870f613c96b1e0c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.