More Info
Private Name Tags
ContractCreator
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 LP Burner @notice Converts Curve LP tokens to a single asset and forwards to another burner """ from vyper.interfaces import ERC20 interface AddressProvider: def get_registry() -> address: view interface Registry: def get_pool_from_lp_token(_lp_token: address) -> address: view def get_coins(_pool: address) -> address[8]: view interface StableSwap: def remove_liquidity_one_coin(_amount: uint256, i: int128, _min_amount: uint256): nonpayable struct SwapData: pool: address coin: address burner: address i: int128 ADDRESS_PROVIDER: constant(address) = 0x0000000022D53366457F9d5E68Ec105046FC4383 swap_data: public(HashMap[address, SwapData]) 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__(_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.recovery = _recovery self.owner = _owner self.emergency_owner = _emergency_owner @external def burn(_coin: address) -> bool: """ @notice Convert `_coin` by removing liquidity and transfer to another burner @param _coin Address of the coin being converted @return bool success """ assert not self.is_killed # dev: is killed # 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 transfer fee or pre-existing balance amount = ERC20(_coin).balanceOf(self) if amount != 0: # remove liquidity and pass to the next burner swap_data: SwapData = self.swap_data[_coin] StableSwap(swap_data.pool).remove_liquidity_one_coin(amount, swap_data.i, 0) amount = ERC20(swap_data.coin).balanceOf(self) response: Bytes[32] = raw_call( swap_data.coin, concat( method_id("transfer(address,uint256)"), convert(swap_data.burner, bytes32), convert(amount, bytes32), ), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) return True @external def set_swap_data(_lp_token: address, _coin: address, _burner: address) -> bool: """ @notice Set conversion and transfer data for `_lp_token` @param _lp_token LP token address @param _coin Underlying coin to remove liquidity in @param _burner Burner to transfer `_coin` to @return bool success """ assert msg.sender in [self.owner, self.emergency_owner] # dev: only owner # if another burner was previous set, revoke approvals pool: address = self.swap_data[_lp_token].pool if pool != ZERO_ADDRESS: # we trust that LP tokens always return True, so no need for `raw_call` ERC20(_lp_token).approve(pool, 0) coin: address = self.swap_data[_lp_token].coin if coin != ZERO_ADDRESS: response: Bytes[32] = raw_call( _coin, concat( method_id("approve(address,uint256)"), convert(self.swap_data[_lp_token].burner, bytes32), convert(0, bytes32), ), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) # find `i` for `_coin` within the pool, approve transfers and save to storage registry: address = AddressProvider(ADDRESS_PROVIDER).get_registry() pool = Registry(registry).get_pool_from_lp_token(_lp_token) coins: address[8] = Registry(registry).get_coins(pool) for i in range(8): if coins[i] == ZERO_ADDRESS: raise if coins[i] == _coin: self.swap_data[_lp_token] = SwapData({ pool: pool, coin: _coin, burner: _burner, i: i }) ERC20(_lp_token).approve(pool, MAX_UINT256) response: Bytes[32] = raw_call( _coin, concat( method_id("approve(address,uint256)"), convert(_burner, bytes32), convert(MAX_UINT256, bytes32), ), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) return True raise @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 in [self.owner, self.emergency_owner] # dev: only owner amount: uint256 = ERC20(_coin).balanceOf(self) response: Bytes[32] = raw_call( _coin, concat( method_id("transfer(address,uint256)"), convert(self.recovery, bytes32), convert(amount, bytes32), ), 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
[{"outputs":[],"inputs":[{"type":"address","name":"_recovery"},{"type":"address","name":"_owner"},{"type":"address","name":"_emergency_owner"}],"stateMutability":"nonpayable","type":"constructor"},{"name":"burn","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_coin"}],"stateMutability":"nonpayable","type":"function","gas":12815},{"name":"set_swap_data","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_lp_token"},{"type":"address","name":"_coin"},{"type":"address","name":"_burner"}],"stateMutability":"nonpayable","type":"function","gas":1176690},{"name":"recover_balance","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_coin"}],"stateMutability":"nonpayable","type":"function","gas":7709},{"name":"set_recovery","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_recovery"}],"stateMutability":"nonpayable","type":"function","gas":36353},{"name":"set_killed","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"bool","name":"_is_killed"}],"stateMutability":"nonpayable","type":"function","gas":37610},{"name":"commit_transfer_ownership","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_future_owner"}],"stateMutability":"nonpayable","type":"function","gas":36413},{"name":"accept_transfer_ownership","outputs":[{"type":"bool","name":""}],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":36339},{"name":"commit_transfer_emergency_ownership","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_future_owner"}],"stateMutability":"nonpayable","type":"function","gas":36473},{"name":"accept_transfer_emergency_ownership","outputs":[{"type":"bool","name":""}],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":36399},{"name":"swap_data","outputs":[{"type":"address","name":"pool"},{"type":"address","name":"coin"},{"type":"address","name":"burner"},{"type":"int128","name":"i"}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":4744},{"name":"recovery","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1361},{"name":"is_killed","outputs":[{"type":"bool","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1391},{"name":"owner","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1421},{"name":"emergency_owner","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1451},{"name":"future_owner","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1481},{"name":"future_emergency_owner","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1511}]
Contract Creation Code
6060610ef9610140396020610ef960c03960c05160a01c1561002057600080fd5b60206020610ef90160c03960c05160a01c1561003b57600080fd5b60206040610ef90160c03960c05160a01c1561005657600080fd5b610140516001556101605160035561018051600455610ee156341561000a57600080fd5b600436101561001857610e6b565b600035601c526389afcb4460005114156103555760043560a01c1561003c57600080fd5b6002541561004957600080fd5b60206101e060246370a0823161016052336101805261017c6004355afa61006f57600080fd5b601f3d1161007c57600080fd5b6000506101e0516101405260006101405118156100dd57602061022060646323b872dd610160523361018052306101a052610140516101c05261017c60006004355af16100c857600080fd5b601f3d116100d557600080fd5b600050610220505b60206101e060246370a0823161016052306101805261017c6004355afa61010357600080fd5b601f3d1161011057600080fd5b6000506101e05161014052600061014051181561034857610160600060043560e05260c052604060c0208060c052602060c02054825260018160c052602060c0200154826020015260028160c052602060c0200154826040015260038160c052602060c020015482606001525050610160513b61018c57600080fd5b600060006064631a4d01d26101e05261014051610200526101c051610220526000610240526101fc6000610160515af16101c557600080fd5b602061026060246370a082316101e05230610200526101fc610180515afa6101ec57600080fd5b601f3d116101f957600080fd5b600050610260516101405260006004610240527fa9059cbb00000000000000000000000000000000000000000000000000000000610260526102406004806020846102a001018260208501600060045af15050805182019150506101a0516020826102a0010152602081019050610140516020826102a0010152602081019050806102a0526102a090508051602001806103408284600060045af161029d57600080fd5b50506020610400610340516103606000610180515af16102bc57600080fd5b60203d808211156102cd57806102cf565b815b905090506103e0526103e08051602001806101e08284600060045af16102f457600080fd5b505060006101e0511815610347576101e080602001516000825180602090131561031d57600080fd5b809190121561032b57600080fd5b806020036101000a8204905090509050151561034657600080fd5b5b5b600160005260206000f350005b63294a859e60005114156109695760043560a01c1561037357600080fd5b60243560a01c1561038357600080fd5b60443560a01c1561039357600080fd5b600354610160526004546101805260006101405261014061012060006002818352015b6101205160200261016001513314156103d257600183526103e3565b5b81516001018083528114156103b6575b505050610140516001146103f657600080fd5b600060043560e05260c052604060c02060c052602060c02054610140526000610140511815610465576020610200604463095ea7b361016052610140516101805260006101a05261017c60006004355af161045057600080fd5b601f3d1161045d57600080fd5b600050610200505b6001600060043560e05260c052604060c02060c052602060c02001546101605260006101605118156105ea57600060046101e0527f095ea7b300000000000000000000000000000000000000000000000000000000610200526101e060048060208461024001018260208501600060045af15050805182019150506002600060043560e05260c052604060c02060c052602060c02001546020826102400101526020810190506000602082610240010152602081019050806102405261024090508051602001806102e08284600060045af161054057600080fd5b505060206103a06102e05161030060006024355af161055e57600080fd5b60203d8082111561056f5780610571565b815b90509050610380526103808051602001806101808284600060045af161059657600080fd5b505060006101805118156105e9576101808060200151600082518060209013156105bf57600080fd5b80919012156105cd57600080fd5b806020036101000a820490509050905015156105e857600080fd5b5b5b6020610200600463a262904b6101a0526101bc6f22d53366457f9d5e68ec105046fc43835afa61061957600080fd5b601f3d1161062657600080fd5b60005061020051610180526020610220602463bdf475c36101a0526004356101c0526101bc610180515afa61065a57600080fd5b601f3d1161066757600080fd5b60005061022051610140526101006103206024639ac90d3d6102a052610140516102c0526102bc610180515afa61069d57600080fd5b60ff3d116106aa57600080fd5b60005061032080516101a05280602001516101c05280604001516101e0528060600151610200528060800151610220528060a00151610240528060c00151610260528060e0015161028052506102a060006008818352015b6101a06102a0516008811061071657600080fd5b602002015115156107275760006000fd5b6024356101a06102a0516008811061073e57600080fd5b6020020151141561094f57600060043560e05260c052604060c02060c052602060c020610140518155602435600182015560443560028201556102a0516003820155506020610360604463095ea7b36102c052610140516102e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610300526102dc60006004355af16107d157600080fd5b601f3d116107de57600080fd5b6000506103605060006004610320527f095ea7b3000000000000000000000000000000000000000000000000000000006103405261032060048060208461038001018260208501600060045af15050805182019150506044356020826103800101526020810190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602082610380010152602081019050806103805261038090508051602001806104208284600060045af161089a57600080fd5b505060206104e06104205161044060006024355af16108b857600080fd5b60203d808211156108c957806108cb565b815b905090506104c0526104c08051602001806102c08284600060045af16108f057600080fd5b505060006102c0511815610943576102c080602001516000825180602090131561091957600080fd5b809190121561092757600080fd5b806020036101000a8204905090509050151561094257600080fd5b5b600160005260206000f3505b5b8151600101808352811415610702575b505060006000fd005b63db2f5f796000511415610b765760043560a01c1561098757600080fd5b600354610160526004546101805260006101405261014061012060006002818352015b6101205160200261016001513314156109c657600183526109d7565b5b81516001018083528114156109aa575b505050610140516001146109ea57600080fd5b60206101e060246370a0823161016052306101805261017c6004355afa610a1057600080fd5b601f3d11610a1d57600080fd5b6000506101e05161014052600060046101c0527fa9059cbb000000000000000000000000000000000000000000000000000000006101e0526101c060048060208461022001018260208501600060045af150508051820191505060015460208261022001015260208101905061014051602082610220010152602081019050806102205261022090508051602001806102c08284600060045af1610ac057600080fd5b505060206103806102c0516102e060006004355af1610ade57600080fd5b60203d80821115610aef5780610af1565b815b90509050610360526103608051602001806101608284600060045af1610b1657600080fd5b50506000610160511815610b6957610160806020015160008251806020901315610b3f57600080fd5b8091901215610b4d57600080fd5b806020036101000a82049050905090501515610b6857600080fd5b5b600160005260206000f350005b635dc659b06000511415610bb55760043560a01c15610b9457600080fd5b6003543314610ba257600080fd5b600435600155600160005260206000f350005b6390b229976000511415610c495760043560011c15610bd357600080fd5b600354610160526004546101805260006101405261014061012060006002818352015b610120516020026101600151331415610c125760018352610c23565b5b8151600101808352811415610bf6575b50505061014051600114610c3657600080fd5b600435600255600160005260206000f350005b636b441a406000511415610c885760043560a01c15610c6757600080fd5b6003543314610c7557600080fd5b600435600555600160005260206000f350005b63e5ea47b86000511415610cb5576005543314610ca457600080fd5b33600355600160005260206000f350005b6395c899156000511415610cf45760043560a01c15610cd357600080fd5b6004543314610ce157600080fd5b600435600655600160005260206000f350005b632d2cb6756000511415610d21576006543314610d1057600080fd5b33600455600160005260206000f350005b6312946aae6000511415610dc25760043560a01c15610d3f57600080fd5b600060043560e05260c052604060c0206101408080808460c052602060c0205481525050602081019050808060018560c052602060c020015481525050602081019050808060028560c052602060c020015481525050602081019050808060038560c052602060c02001548152505060809050905060c05260c051610140f39050005b63ddceafa96000511415610dde5760015460005260206000f350005b639c868ac06000511415610dfa5760025460005260206000f350005b638da5cb5b6000511415610e165760035460005260206000f350005b6363a4042a6000511415610e325760045460005260206000f350005b631ec0cdc16000511415610e4e5760055460005260206000f350005b63e19f994c6000511415610e6a5760065460005260206000f350005b5b60006000fd5b610070610ee103610070600039610070610ee1036000f3000000000000000000000000ae9c8320a6394120ecb7b2b2678d9b4ac848d1060000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a00000000000000000000000000669df67e4827fcc0e48a1838a8d5ab79281909
Deployed Bytecode
0x341561000a57600080fd5b600436101561001857610e6b565b600035601c526389afcb4460005114156103555760043560a01c1561003c57600080fd5b6002541561004957600080fd5b60206101e060246370a0823161016052336101805261017c6004355afa61006f57600080fd5b601f3d1161007c57600080fd5b6000506101e0516101405260006101405118156100dd57602061022060646323b872dd610160523361018052306101a052610140516101c05261017c60006004355af16100c857600080fd5b601f3d116100d557600080fd5b600050610220505b60206101e060246370a0823161016052306101805261017c6004355afa61010357600080fd5b601f3d1161011057600080fd5b6000506101e05161014052600061014051181561034857610160600060043560e05260c052604060c0208060c052602060c02054825260018160c052602060c0200154826020015260028160c052602060c0200154826040015260038160c052602060c020015482606001525050610160513b61018c57600080fd5b600060006064631a4d01d26101e05261014051610200526101c051610220526000610240526101fc6000610160515af16101c557600080fd5b602061026060246370a082316101e05230610200526101fc610180515afa6101ec57600080fd5b601f3d116101f957600080fd5b600050610260516101405260006004610240527fa9059cbb00000000000000000000000000000000000000000000000000000000610260526102406004806020846102a001018260208501600060045af15050805182019150506101a0516020826102a0010152602081019050610140516020826102a0010152602081019050806102a0526102a090508051602001806103408284600060045af161029d57600080fd5b50506020610400610340516103606000610180515af16102bc57600080fd5b60203d808211156102cd57806102cf565b815b905090506103e0526103e08051602001806101e08284600060045af16102f457600080fd5b505060006101e0511815610347576101e080602001516000825180602090131561031d57600080fd5b809190121561032b57600080fd5b806020036101000a8204905090509050151561034657600080fd5b5b5b600160005260206000f350005b63294a859e60005114156109695760043560a01c1561037357600080fd5b60243560a01c1561038357600080fd5b60443560a01c1561039357600080fd5b600354610160526004546101805260006101405261014061012060006002818352015b6101205160200261016001513314156103d257600183526103e3565b5b81516001018083528114156103b6575b505050610140516001146103f657600080fd5b600060043560e05260c052604060c02060c052602060c02054610140526000610140511815610465576020610200604463095ea7b361016052610140516101805260006101a05261017c60006004355af161045057600080fd5b601f3d1161045d57600080fd5b600050610200505b6001600060043560e05260c052604060c02060c052602060c02001546101605260006101605118156105ea57600060046101e0527f095ea7b300000000000000000000000000000000000000000000000000000000610200526101e060048060208461024001018260208501600060045af15050805182019150506002600060043560e05260c052604060c02060c052602060c02001546020826102400101526020810190506000602082610240010152602081019050806102405261024090508051602001806102e08284600060045af161054057600080fd5b505060206103a06102e05161030060006024355af161055e57600080fd5b60203d8082111561056f5780610571565b815b90509050610380526103808051602001806101808284600060045af161059657600080fd5b505060006101805118156105e9576101808060200151600082518060209013156105bf57600080fd5b80919012156105cd57600080fd5b806020036101000a820490509050905015156105e857600080fd5b5b5b6020610200600463a262904b6101a0526101bc6f22d53366457f9d5e68ec105046fc43835afa61061957600080fd5b601f3d1161062657600080fd5b60005061020051610180526020610220602463bdf475c36101a0526004356101c0526101bc610180515afa61065a57600080fd5b601f3d1161066757600080fd5b60005061022051610140526101006103206024639ac90d3d6102a052610140516102c0526102bc610180515afa61069d57600080fd5b60ff3d116106aa57600080fd5b60005061032080516101a05280602001516101c05280604001516101e0528060600151610200528060800151610220528060a00151610240528060c00151610260528060e0015161028052506102a060006008818352015b6101a06102a0516008811061071657600080fd5b602002015115156107275760006000fd5b6024356101a06102a0516008811061073e57600080fd5b6020020151141561094f57600060043560e05260c052604060c02060c052602060c020610140518155602435600182015560443560028201556102a0516003820155506020610360604463095ea7b36102c052610140516102e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610300526102dc60006004355af16107d157600080fd5b601f3d116107de57600080fd5b6000506103605060006004610320527f095ea7b3000000000000000000000000000000000000000000000000000000006103405261032060048060208461038001018260208501600060045af15050805182019150506044356020826103800101526020810190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602082610380010152602081019050806103805261038090508051602001806104208284600060045af161089a57600080fd5b505060206104e06104205161044060006024355af16108b857600080fd5b60203d808211156108c957806108cb565b815b905090506104c0526104c08051602001806102c08284600060045af16108f057600080fd5b505060006102c0511815610943576102c080602001516000825180602090131561091957600080fd5b809190121561092757600080fd5b806020036101000a8204905090509050151561094257600080fd5b5b600160005260206000f3505b5b8151600101808352811415610702575b505060006000fd005b63db2f5f796000511415610b765760043560a01c1561098757600080fd5b600354610160526004546101805260006101405261014061012060006002818352015b6101205160200261016001513314156109c657600183526109d7565b5b81516001018083528114156109aa575b505050610140516001146109ea57600080fd5b60206101e060246370a0823161016052306101805261017c6004355afa610a1057600080fd5b601f3d11610a1d57600080fd5b6000506101e05161014052600060046101c0527fa9059cbb000000000000000000000000000000000000000000000000000000006101e0526101c060048060208461022001018260208501600060045af150508051820191505060015460208261022001015260208101905061014051602082610220010152602081019050806102205261022090508051602001806102c08284600060045af1610ac057600080fd5b505060206103806102c0516102e060006004355af1610ade57600080fd5b60203d80821115610aef5780610af1565b815b90509050610360526103608051602001806101608284600060045af1610b1657600080fd5b50506000610160511815610b6957610160806020015160008251806020901315610b3f57600080fd5b8091901215610b4d57600080fd5b806020036101000a82049050905090501515610b6857600080fd5b5b600160005260206000f350005b635dc659b06000511415610bb55760043560a01c15610b9457600080fd5b6003543314610ba257600080fd5b600435600155600160005260206000f350005b6390b229976000511415610c495760043560011c15610bd357600080fd5b600354610160526004546101805260006101405261014061012060006002818352015b610120516020026101600151331415610c125760018352610c23565b5b8151600101808352811415610bf6575b50505061014051600114610c3657600080fd5b600435600255600160005260206000f350005b636b441a406000511415610c885760043560a01c15610c6757600080fd5b6003543314610c7557600080fd5b600435600555600160005260206000f350005b63e5ea47b86000511415610cb5576005543314610ca457600080fd5b33600355600160005260206000f350005b6395c899156000511415610cf45760043560a01c15610cd357600080fd5b6004543314610ce157600080fd5b600435600655600160005260206000f350005b632d2cb6756000511415610d21576006543314610d1057600080fd5b33600455600160005260206000f350005b6312946aae6000511415610dc25760043560a01c15610d3f57600080fd5b600060043560e05260c052604060c0206101408080808460c052602060c0205481525050602081019050808060018560c052602060c020015481525050602081019050808060028560c052602060c020015481525050602081019050808060038560c052602060c02001548152505060809050905060c05260c051610140f39050005b63ddceafa96000511415610dde5760015460005260206000f350005b639c868ac06000511415610dfa5760025460005260206000f350005b638da5cb5b6000511415610e165760035460005260206000f350005b6363a4042a6000511415610e325760045460005260206000f350005b631ec0cdc16000511415610e4e5760055460005260206000f350005b63e19f994c6000511415610e6a5760065460005260206000f350005b5b60006000fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ae9c8320a6394120ecb7b2b2678d9b4ac848d1060000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a00000000000000000000000000669df67e4827fcc0e48a1838a8d5ab79281909
-----Decoded View---------------
Arg [0] : _recovery (address): 0xAe9c8320A6394120ECb7B2B2678d9b4aC848d106
Arg [1] : _owner (address): 0x7EeAC6CDdbd1D0B8aF061742D41877D7F707289a
Arg [2] : _emergency_owner (address): 0x00669DF67E4827FCc0E48A1838a8d5AB79281909
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000ae9c8320a6394120ecb7b2b2678d9b4ac848d106
Arg [1] : 0000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a
Arg [2] : 00000000000000000000000000669df67e4827fcc0e48a1838a8d5ab79281909
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.