ETH Price: $3,151.48 (+1.01%)
Gas: 1 Gwei

Contract

0xdc237b4B882Fa1d1fd1dD5B59A08F8dB3416DbE3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Commit_transfer_...166790332023-02-21 19:44:35507 days ago1677008675IN
0xdc237b4B...B3416DbE3
0 ETH0.0016376335.61936006
Set_many_swap_da...166790292023-02-21 19:43:35507 days ago1677008615IN
0xdc237b4B...B3416DbE3
0 ETH0.0332255129.97123924
0x60206113166789642023-02-21 19:30:35507 days ago1677007835IN
 Create: Vyper_contract
0 ETH0.0375774531.77788992

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
201633022024-06-24 18:22:1118 days ago1719253331
0xdc237b4B...B3416DbE3
0.32684336 ETH
201633022024-06-24 18:22:1118 days ago1719253331
0xdc237b4B...B3416DbE3
0.02339629 ETH
201633022024-06-24 18:22:1118 days ago1719253331
0xdc237b4B...B3416DbE3
0.30344707 ETH
201608882024-06-24 10:16:4719 days ago1719224207
0xdc237b4B...B3416DbE3
1.67501564 ETH
201608882024-06-24 10:16:4719 days ago1719224207
0xdc237b4B...B3416DbE3
1.00445119 ETH
201608882024-06-24 10:16:4719 days ago1719224207
0xdc237b4B...B3416DbE3
0.67056444 ETH
201249632024-06-19 9:42:5924 days ago1718790179
0xdc237b4B...B3416DbE3
7.19612539 ETH
201249612024-06-19 9:42:3524 days ago1718790155
0xdc237b4B...B3416DbE3
7.19612539 ETH
201244422024-06-19 7:58:2324 days ago1718783903
0xdc237b4B...B3416DbE3
13.94302004 ETH
201244422024-06-19 7:58:2324 days ago1718783903
0xdc237b4B...B3416DbE3
12.21134795 ETH
201244422024-06-19 7:58:2324 days ago1718783903
0xdc237b4B...B3416DbE3
1.10753594 ETH
200752882024-06-12 10:55:4731 days ago1718189747
0xdc237b4B...B3416DbE3
0.62413615 ETH
200752852024-06-12 10:55:1131 days ago1718189711
0xdc237b4B...B3416DbE3
6.64155596 ETH
200752852024-06-12 10:55:1131 days ago1718189711
0xdc237b4B...B3416DbE3
4.05222302 ETH
200752852024-06-12 10:55:1131 days ago1718189711
0xdc237b4B...B3416DbE3
2.58933294 ETH
200254262024-06-05 11:47:4738 days ago1717588067
0xdc237b4B...B3416DbE3
4.77658028 ETH
200254262024-06-05 11:47:4738 days ago1717588067
0xdc237b4B...B3416DbE3
2.56970516 ETH
200254262024-06-05 11:47:4738 days ago1717588067
0xdc237b4B...B3416DbE3
1.61418458 ETH
199749602024-05-29 10:35:2345 days ago1716978923
0xdc237b4B...B3416DbE3
0.32818686 ETH
199749602024-05-29 10:35:2345 days ago1716978923
0xdc237b4B...B3416DbE3
0.26450366 ETH
199749572024-05-29 10:34:4745 days ago1716978887
0xdc237b4B...B3416DbE3
11.43799294 ETH
199749572024-05-29 10:34:4745 days ago1716978887
0xdc237b4B...B3416DbE3
8.35654694 ETH
199749572024-05-29 10:34:4745 days ago1716978887
0xdc237b4B...B3416DbE3
2.80633851 ETH
199749532024-05-29 10:33:5945 days ago1716978839
0xdc237b4B...B3416DbE3
0.27510749 ETH
199252342024-05-22 11:50:4752 days ago1716378647
0xdc237b4B...B3416DbE3
17.33647008 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.7

Optimization Enabled:
N/A

Other Settings:
None license

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

Contract ABI

[{"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"}]}]

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


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.