Feature Tip: Add private address tag to any address under My Name Tag !
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Exchange | 20163302 | 618 days ago | 0.32684336 ETH | ||||
| Burn | 20163302 | 618 days ago | 0.02339629 ETH | ||||
| Transfer | 20163302 | 618 days ago | 0.30344707 ETH | ||||
| Exchange | 20160888 | 619 days ago | 1.67501564 ETH | ||||
| Burn | 20160888 | 619 days ago | 1.00445119 ETH | ||||
| Transfer | 20160888 | 619 days ago | 0.67056444 ETH | ||||
| Exchange | 20124963 | 624 days ago | 7.19612539 ETH | ||||
| Transfer | 20124961 | 624 days ago | 7.19612539 ETH | ||||
| Exchange | 20124442 | 624 days ago | 13.94302004 ETH | ||||
| Burn | 20124442 | 624 days ago | 12.21134795 ETH | ||||
| Transfer | 20124442 | 624 days ago | 1.10753594 ETH | ||||
| Transfer | 20075288 | 631 days ago | 0.62413615 ETH | ||||
| Exchange | 20075285 | 631 days ago | 6.64155596 ETH | ||||
| Burn | 20075285 | 631 days ago | 4.05222302 ETH | ||||
| Transfer | 20075285 | 631 days ago | 2.58933294 ETH | ||||
| Exchange | 20025426 | 638 days ago | 4.77658028 ETH | ||||
| Burn | 20025426 | 638 days ago | 2.56970516 ETH | ||||
| Transfer | 20025426 | 638 days ago | 1.61418458 ETH | ||||
| Transfer | 19974960 | 645 days ago | 0.32818686 ETH | ||||
| Transfer | 19974960 | 645 days ago | 0.26450366 ETH | ||||
| Exchange | 19974957 | 645 days ago | 11.43799294 ETH | ||||
| Burn | 19974957 | 645 days ago | 8.35654694 ETH | ||||
| Transfer | 19974957 | 645 days ago | 2.80633851 ETH | ||||
| Transfer | 19974953 | 645 days ago | 0.27510749 ETH | ||||
| Exchange | 19925234 | 652 days ago | 17.33647008 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
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 TrueContract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.