ETH Price: $3,395.05 (+4.51%)
Gas: 2 Gwei

Contract

0xB174dac86dA5822f6e1cB9ba945baB0578125c81
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Burn_amount163844002023-01-11 15:14:59564 days ago1673450099IN
0xB174dac8...578125c81
0 ETH0.0090474325.13001562
Burn_amount163843562023-01-11 15:06:11564 days ago1673449571IN
0xB174dac8...578125c81
0 ETH0.0109390929.00064122
Set_swap_data163367162023-01-04 23:29:11571 days ago1672874951IN
0xB174dac8...578125c81
0 ETH0.0026585321.4456603
Set_swap_data163367112023-01-04 23:28:11571 days ago1672874891IN
0xB174dac8...578125c81
0 ETH0.0022411321.56677268
Set_swap_data139200692022-01-01 14:22:19939 days ago1641046939IN
0xB174dac8...578125c81
0 ETH0.0093302464.88441241
Burn_amount137582322021-12-07 11:20:32964 days ago1638876032IN
0xB174dac8...578125c81
0 ETH0.019142977.21032316
Burn_amount137582242021-12-07 11:18:25964 days ago1638875905IN
0xB174dac8...578125c81
0 ETH0.0152043261.32209696
Burn_amount137582152021-12-07 11:16:14964 days ago1638875774IN
0xB174dac8...578125c81
0 ETH0.0163901368.36143291
Burn_amount137582052021-12-07 11:13:52964 days ago1638875632IN
0xB174dac8...578125c81
0 ETH0.0156566867.55878302
Burn_amount137581932021-12-07 11:11:10964 days ago1638875470IN
0xB174dac8...578125c81
0 ETH0.0176656876.24343907
Burn_amount137581722021-12-07 11:05:56964 days ago1638875156IN
0xB174dac8...578125c81
0 ETH0.01481159.98861784
Burn_amount137577902021-12-07 9:32:31965 days ago1638869551IN
0xB174dac8...578125c81
0 ETH0.0204970976.25380769
Commit_transfer_...137089872021-11-29 13:56:54972 days ago1638194214IN
0xB174dac8...578125c81
0 ETH0.0043442494.44002993
Set_swap_data137089842021-11-29 13:56:22972 days ago1638194182IN
0xB174dac8...578125c81
0 ETH0.0148777898.24405647
Set_swap_data137089782021-11-29 13:55:43972 days ago1638194143IN
0xB174dac8...578125c81
0 ETH0.01497286114.15293382
Set_swap_data137089752021-11-29 13:55:01972 days ago1638194101IN
0xB174dac8...578125c81
0 ETH0.01490891103.53200405
0x6020610f137089252021-11-29 13:42:52972 days ago1638193372IN
 Create: Vyper_contract
0 ETH0.0948479399.88282556

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
166853872023-02-22 17:13:47522 days ago1677086027
0xB174dac8...578125c81
6.32314134 ETH
166853872023-02-22 17:13:47522 days ago1677086027
0xB174dac8...578125c81
6.32314134 ETH
166853872023-02-22 17:13:47522 days ago1677086027
0xB174dac8...578125c81
19.74650608 ETH
166853872023-02-22 17:13:47522 days ago1677086027
0xB174dac8...578125c81
19.74650608 ETH
166349312023-02-15 15:07:23529 days ago1676473643
0xB174dac8...578125c81
7.77917275 ETH
166349312023-02-15 15:07:23529 days ago1676473643
0xB174dac8...578125c81
7.77917275 ETH
166349312023-02-15 15:07:23529 days ago1676473643
0xB174dac8...578125c81
20.20056505 ETH
166349312023-02-15 15:07:23529 days ago1676473643
0xB174dac8...578125c81
20.20056505 ETH
165848292023-02-08 15:03:23536 days ago1675868603
0xB174dac8...578125c81
8.15956446 ETH
165848292023-02-08 15:03:23536 days ago1675868603
0xB174dac8...578125c81
8.15956446 ETH
165848292023-02-08 15:03:23536 days ago1675868603
0xB174dac8...578125c81
21.70462365 ETH
165848292023-02-08 15:03:23536 days ago1675868603
0xB174dac8...578125c81
21.70462365 ETH
165350552023-02-01 16:07:59543 days ago1675267679
0xB174dac8...578125c81
5.85840591 ETH
165350552023-02-01 16:07:59543 days ago1675267679
0xB174dac8...578125c81
5.85840591 ETH
165350552023-02-01 16:07:59543 days ago1675267679
0xB174dac8...578125c81
26.07022726 ETH
165350552023-02-01 16:07:59543 days ago1675267679
0xB174dac8...578125c81
26.07022726 ETH
164848082023-01-25 15:44:11550 days ago1674661451
0xB174dac8...578125c81
5.68121801 ETH
164848082023-01-25 15:44:11550 days ago1674661451
0xB174dac8...578125c81
5.68121801 ETH
164848082023-01-25 15:44:11550 days ago1674661451
0xB174dac8...578125c81
27.27262483 ETH
164848082023-01-25 15:44:11550 days ago1674661451
0xB174dac8...578125c81
27.27262483 ETH
164341832023-01-18 14:06:59557 days ago1674050819
0xB174dac8...578125c81
9.64502119 ETH
164341832023-01-18 14:06:59557 days ago1674050819
0xB174dac8...578125c81
9.64502119 ETH
164341832023-01-18 14:06:59557 days ago1674050819
0xB174dac8...578125c81
21.89985641 ETH
164341832023-01-18 14:06:59557 days ago1674050819
0xB174dac8...578125c81
21.89985641 ETH
163845562023-01-11 15:46:11564 days ago1673451971
0xB174dac8...578125c81
2.38251905 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.0

Optimization Enabled:
N/A

Other Settings:
MIT license

Contract Source Code (Vyper language format)

# @version 0.3.0
"""
@title 2Crypto Swap Burner
@notice Performs a swap using a 2 asset Crypto pool, with slippage protection via price oracle
"""

from vyper.interfaces import ERC20

interface CryptoPool:
    def exchange(i: uint256, j: uint256, dx: uint256, min_dy: uint256): payable
    def price_oracle() -> 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


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
    i: uint256 = 0
    j: 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)

    oracle_price: uint256 = CryptoPool(swap_data.pool).price_oracle()
    if swap_data.i == 1:
        i = 1
        min_dy = oracle_price * _amount / 10**18 * 98 / 100
    else:
        j = 1
        min_dy = _amount * 10**18 / oracle_price * 98 / 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, "Slippage"
        if swap_data.receiver != ZERO_ADDRESS:
            raw_call(swap_data.receiver, b"", value=self.balance)
    else:
        assert ERC20(swap_data.coin).balanceOf(self) - initial_balance >= min_dy, "Slippage"
        if swap_data.receiver != ZERO_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 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

    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, eth_amount)


@external
def set_swap_data(
    _from: address,
    _to: address,
    _pool: address,
    _receiver: address,
    i: uint256,
) -> 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.swap_data[_from] = SwapData({
        pool: _pool,
        coin: _to,
        receiver: _receiver,
        i: i
    })

    if _from != ETH_ADDRESS:
        response: Bytes[32] = raw_call(
            _from,
            _abi_encode(_pool, MAX_UINT256, method_id=method_id("approve(address,uint256)")),
            max_outsize=32,
        )
        if len(response) != 0:
            assert convert(response, bool)

    return True



@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,
        _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"}],"gas":112531},{"stateMutability":"nonpayable","type":"function","name":"burn_amount","inputs":[{"name":"_coin","type":"address"},{"name":"_amount_to_burn","type":"uint256"}],"outputs":[],"gas":115128},{"stateMutability":"nonpayable","type":"function","name":"set_swap_data","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_pool","type":"address"},{"name":"_receiver","type":"address"},{"name":"i","type":"uint256"}],"outputs":[{"name":"","type":"bool"}],"gas":153520},{"stateMutability":"nonpayable","type":"function","name":"recover_balance","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":17324},{"stateMutability":"nonpayable","type":"function","name":"set_recovery","inputs":[{"name":"_recovery","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":37995},{"stateMutability":"nonpayable","type":"function","name":"set_killed","inputs":[{"name":"_is_killed","type":"bool"}],"outputs":[{"name":"","type":"bool"}],"gas":40573},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":38055},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}],"gas":37924},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_emergency_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":38115},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_emergency_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}],"gas":37984},{"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"}]}],"gas":9587},{"stateMutability":"view","type":"function","name":"pool_proxy","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2946},{"stateMutability":"view","type":"function","name":"recovery","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2976},{"stateMutability":"view","type":"function","name":"is_killed","inputs":[],"outputs":[{"name":"","type":"bool"}],"gas":3006},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3036},{"stateMutability":"view","type":"function","name":"emergency_owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3066},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3096},{"stateMutability":"view","type":"function","name":"future_emergency_owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3126}]

6020610f3b60c03960c0518060a01c610f36578090506101405260206020610f3b0160c03960c0518060a01c610f36578090506101605260206040610f3b0160c03960c0518060a01c610f36578090506101805260206060610f3b0160c03960c0518060a01c610f36578090506101a0526101405160025561016051600355610180516005556101a051600655610f1e56600436101561000d57610826565b60046000601c376000516389afcb448114156100aa576004358060a01c610e885780905061046052600454610e88576040366104803761046051610140526002546101605261005d6104c0610828565b6104c080516104805260208101516104a05250600061048051181561009d57610460516101405261048051610160526104a0516101805261009c6109a6565b5b60016104c05260206104c0f35b637afb0ed18114156101bd576004358060a01c610e88578090506104605234610e8857600454610e8857604036610480376002546104c052306303d41e0e6104e052610460516105005260206104e060246104fc6104c0515afa15610e8857601f3d1115610e88576104e0511415610e885761046051610140526104c051610160526101376104e0610828565b6104e080516104805260208101516104a0525060243561048051101561019c576308c379a06104e0526020610500526014610520527f496e73756666696369656e742062616c616e6365000000000000000000000000610540526105205060646104fcfd5b6104605161014052602435610160526104a051610180526101bb6109a6565b005b63ec5956948114156103b8576004358060a01c610e8857809050610140526024358060a01c610e8857809050610160526044358060a01c610e8857809050610180526064358060a01c610e88578090506101a05234610e88576005546101e0526006546102005260006101c0526101c061012060006002818352015b610120516020026101e001513314156102555760018352610265565b8151600101808352811415610239575b5050506101c05115610e885760016101405160e05260c052604060c0206101805181556101605160018201556101a051600282015560843560038201555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101405118156103ab5763095ea7b361020452600461018051610224527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61024452604001610200526102008051602001806102808284600060045af115610e885750506020610320610280516102a06000610140515af115610e885760203d808211156103465780610348565b815b90509050610300526103008051602001806101c08284600060045af115610e8857505060006101c05118156103aa576101c08060200151600082518060209013610e885780919012610e8857806020036101000a820490509050905015610e88575b5b60016101c05260206101c0f35b63db2f5f79811415610541576004358060a01c610e88578090506101405234610e8857600554610180526006546101a05260006101605261016061012060006002818352015b61012051602002610180015133141561041a576001835261042a565b81516001018083528114156103fe575b5050506101605115610e88576370a0823161018052306101a0526020610180602461019c610140515afa15610e8857601f3d1115610e8857610180516101605263a9059cbb6101c45260046003546101e45261016051610204526040016101c0526101c08051602001806102408284600060045af115610e8857505060206102e0610240516102606000610140515af115610e885760203d808211156104d057806104d2565b815b905090506102c0526102c08051602001806101808284600060045af115610e885750506000610180511815610534576101808060200151600082518060209013610e885780919012610e8857806020036101000a820490509050905015610e88575b60016101c05260206101c0f35b635dc659b0811415610582576004358060a01c610e88578090506101405234610e8857600554331415610e8857610140516003556001610160526020610160f35b6390b22997811415610614576004358060011c610e88578090506101405234610e8857600554610180526006546101a05260006101605261016061012060006002818352015b6101205160200261018001513314156105e457600183526105f4565b81516001018083528114156105c8575b5050506101605115610e8857610140516004556001610160526020610160f35b636b441a40811415610655576004358060a01c610e88578090506101405234610e8857600554331415610e8857610140516007556001610160526020610160f35b63e5ea47b88114156106815734610e8857600754331415610e8857336005556001610140526020610140f35b6395c899158114156106c2576004358060a01c610e88578090506101405234610e8857600654331415610e8857610140516008556001610160526020610160f35b632d2cb6758114156106ee5734610e8857600854331415610e8857336006556001610140526020610140f35b6312946aae81141561074b576004358060a01c610e88578090506101405234610e885760016101405160e05260c052604060c02080546101605260018101546101805260028101546101a05260038101546101c052506080610160f35b6391db89f381141561076a5734610e8857600254610140526020610140f35b63ddceafa98114156107895734610e8857600354610140526020610140f35b639c868ac08114156107a85734610e8857600454610140526020610140f35b638da5cb5b8114156107c75734610e8857600554610140526020610140f35b6363a4042a8114156107e65734610e8857600654610140526020610140f35b631ec0cdc18114156108055734610e8857600754610140526020610140f35b63e19f994c8114156108245734610e8857600854610140526020610140f35b505b005b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61014051141561085657478152476020820152506109a4565b6370a082316101a052610160516101c05260206101a060246101bc610140515afa15610e8857601f3d1115610e88576101a051610180526000610180511815610969576323b872dd6101e452600460025461020452306102245261018051610244526060016101e0526101e08051602001806102808284600060045af115610e885750506020610340610280516102a06000610140515af115610e885760203d808211156109045780610906565b815b90509050610320526103208051602001806101a08284600060045af115610e8857505060006101a0511815610968576101a08060200151600082518060209013610e885780919012610e8857806020036101000a820490509050905015610e88575b5b6370a082316101a052306101c05260206101a060246101bc610140515afa15610e8857601f3d1115610e88576101a051815260006020820152505b565b6080366101a03760016101405160e05260c052604060c0208054610220526001810154610240526002810154610260526003810154610280525073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610240511415610a0957476101a052610a3e565b6370a082316102a052306102c05260206102a060246102bc610240515afa15610e8857601f3d1115610e88576102a0516101a0525b6386fc88d36102c05260206102c060046102dc610220515afa15610e8857601f3d1115610e88576102c0516102a0526001610280511415610ad95760016101e0526102a05161016051808202821582848304141715610e885780905090509050670de0b6b3a7640000808204905090506062808202821582848304141715610e8857809050905090506064808204905090506101c052610b3b565b60016102005261016051670de0b6b3a7640000808202821582848304141715610e8857809050905090506102a051808015610e88578204905090506062808202821582848304141715610e8857809050905090506064808204905090506101c0525b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610140511415610b61576001610b7c565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61024051145b15610bd55763394747c56102c0526101e0516102e05261020051610300526101605161032052600061034052600161036052610220513b15610e88576000600060a46102dc61018051610220515af115610e8857610c1d565b635b41b9086102c0526101e0516102e05261020051610300526101605161032052600061034052610220513b15610e88576000600060846102dc6000610220515af115610e88575b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610240511415610ce8576101c051476101a051808210610e8857808203905090501015610c9e576308c379a06102c05260206102e0526008610300527f536c697070616765000000000000000000000000000000000000000000000000610320526103005060646102dcfd5b6000610260511815610ce35760006102c0526102c08051602001806102e08284600060045af115610e88575050600060006102e05161030047610260515af115610e88575b610e86565b6101c0516370a082316102c052306102e05260206102c060246102dc610240515afa15610e8857601f3d1115610e88576102c0516101a051808210610e8857808203905090501015610d79576308c379a0610300526020610320526008610340527f536c6970706167650000000000000000000000000000000000000000000000006103605261034050606461031cfd5b6000610260511815610e85576370a082316102e052306103005260206102e060246102fc610240515afa15610e8857601f3d1115610e88576102e0516102c05263a9059cbb61032452600461026051610344526102c05161036452604001610320526103208051602001806103a08284600060045af115610e8857505060206104406103a0516103c06000610240515af115610e885760203d80821115610e205780610e22565b815b90509050610420526104208051602001806102e08284600060045af115610e8857505060006102e0511815610e84576102e08060200151600082518060209013610e885780919012610e8857806020036101000a820490509050905015610e88575b5b5b565b600080fd5b610091610f1e03610091600039610091610f1e036000f35b600080fd000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b3470000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a000000000000000000000000467947ee34af926cf1dcac093870f613c96b1e0c

Deployed Bytecode

0x600436101561000d57610826565b60046000601c376000516389afcb448114156100aa576004358060a01c610e885780905061046052600454610e88576040366104803761046051610140526002546101605261005d6104c0610828565b6104c080516104805260208101516104a05250600061048051181561009d57610460516101405261048051610160526104a0516101805261009c6109a6565b5b60016104c05260206104c0f35b637afb0ed18114156101bd576004358060a01c610e88578090506104605234610e8857600454610e8857604036610480376002546104c052306303d41e0e6104e052610460516105005260206104e060246104fc6104c0515afa15610e8857601f3d1115610e88576104e0511415610e885761046051610140526104c051610160526101376104e0610828565b6104e080516104805260208101516104a0525060243561048051101561019c576308c379a06104e0526020610500526014610520527f496e73756666696369656e742062616c616e6365000000000000000000000000610540526105205060646104fcfd5b6104605161014052602435610160526104a051610180526101bb6109a6565b005b63ec5956948114156103b8576004358060a01c610e8857809050610140526024358060a01c610e8857809050610160526044358060a01c610e8857809050610180526064358060a01c610e88578090506101a05234610e88576005546101e0526006546102005260006101c0526101c061012060006002818352015b610120516020026101e001513314156102555760018352610265565b8151600101808352811415610239575b5050506101c05115610e885760016101405160e05260c052604060c0206101805181556101605160018201556101a051600282015560843560038201555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101405118156103ab5763095ea7b361020452600461018051610224527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61024452604001610200526102008051602001806102808284600060045af115610e885750506020610320610280516102a06000610140515af115610e885760203d808211156103465780610348565b815b90509050610300526103008051602001806101c08284600060045af115610e8857505060006101c05118156103aa576101c08060200151600082518060209013610e885780919012610e8857806020036101000a820490509050905015610e88575b5b60016101c05260206101c0f35b63db2f5f79811415610541576004358060a01c610e88578090506101405234610e8857600554610180526006546101a05260006101605261016061012060006002818352015b61012051602002610180015133141561041a576001835261042a565b81516001018083528114156103fe575b5050506101605115610e88576370a0823161018052306101a0526020610180602461019c610140515afa15610e8857601f3d1115610e8857610180516101605263a9059cbb6101c45260046003546101e45261016051610204526040016101c0526101c08051602001806102408284600060045af115610e8857505060206102e0610240516102606000610140515af115610e885760203d808211156104d057806104d2565b815b905090506102c0526102c08051602001806101808284600060045af115610e885750506000610180511815610534576101808060200151600082518060209013610e885780919012610e8857806020036101000a820490509050905015610e88575b60016101c05260206101c0f35b635dc659b0811415610582576004358060a01c610e88578090506101405234610e8857600554331415610e8857610140516003556001610160526020610160f35b6390b22997811415610614576004358060011c610e88578090506101405234610e8857600554610180526006546101a05260006101605261016061012060006002818352015b6101205160200261018001513314156105e457600183526105f4565b81516001018083528114156105c8575b5050506101605115610e8857610140516004556001610160526020610160f35b636b441a40811415610655576004358060a01c610e88578090506101405234610e8857600554331415610e8857610140516007556001610160526020610160f35b63e5ea47b88114156106815734610e8857600754331415610e8857336005556001610140526020610140f35b6395c899158114156106c2576004358060a01c610e88578090506101405234610e8857600654331415610e8857610140516008556001610160526020610160f35b632d2cb6758114156106ee5734610e8857600854331415610e8857336006556001610140526020610140f35b6312946aae81141561074b576004358060a01c610e88578090506101405234610e885760016101405160e05260c052604060c02080546101605260018101546101805260028101546101a05260038101546101c052506080610160f35b6391db89f381141561076a5734610e8857600254610140526020610140f35b63ddceafa98114156107895734610e8857600354610140526020610140f35b639c868ac08114156107a85734610e8857600454610140526020610140f35b638da5cb5b8114156107c75734610e8857600554610140526020610140f35b6363a4042a8114156107e65734610e8857600654610140526020610140f35b631ec0cdc18114156108055734610e8857600754610140526020610140f35b63e19f994c8114156108245734610e8857600854610140526020610140f35b505b005b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61014051141561085657478152476020820152506109a4565b6370a082316101a052610160516101c05260206101a060246101bc610140515afa15610e8857601f3d1115610e88576101a051610180526000610180511815610969576323b872dd6101e452600460025461020452306102245261018051610244526060016101e0526101e08051602001806102808284600060045af115610e885750506020610340610280516102a06000610140515af115610e885760203d808211156109045780610906565b815b90509050610320526103208051602001806101a08284600060045af115610e8857505060006101a0511815610968576101a08060200151600082518060209013610e885780919012610e8857806020036101000a820490509050905015610e88575b5b6370a082316101a052306101c05260206101a060246101bc610140515afa15610e8857601f3d1115610e88576101a051815260006020820152505b565b6080366101a03760016101405160e05260c052604060c0208054610220526001810154610240526002810154610260526003810154610280525073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610240511415610a0957476101a052610a3e565b6370a082316102a052306102c05260206102a060246102bc610240515afa15610e8857601f3d1115610e88576102a0516101a0525b6386fc88d36102c05260206102c060046102dc610220515afa15610e8857601f3d1115610e88576102c0516102a0526001610280511415610ad95760016101e0526102a05161016051808202821582848304141715610e885780905090509050670de0b6b3a7640000808204905090506062808202821582848304141715610e8857809050905090506064808204905090506101c052610b3b565b60016102005261016051670de0b6b3a7640000808202821582848304141715610e8857809050905090506102a051808015610e88578204905090506062808202821582848304141715610e8857809050905090506064808204905090506101c0525b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610140511415610b61576001610b7c565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61024051145b15610bd55763394747c56102c0526101e0516102e05261020051610300526101605161032052600061034052600161036052610220513b15610e88576000600060a46102dc61018051610220515af115610e8857610c1d565b635b41b9086102c0526101e0516102e05261020051610300526101605161032052600061034052610220513b15610e88576000600060846102dc6000610220515af115610e88575b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610240511415610ce8576101c051476101a051808210610e8857808203905090501015610c9e576308c379a06102c05260206102e0526008610300527f536c697070616765000000000000000000000000000000000000000000000000610320526103005060646102dcfd5b6000610260511815610ce35760006102c0526102c08051602001806102e08284600060045af115610e88575050600060006102e05161030047610260515af115610e88575b610e86565b6101c0516370a082316102c052306102e05260206102c060246102dc610240515afa15610e8857601f3d1115610e88576102c0516101a051808210610e8857808203905090501015610d79576308c379a0610300526020610320526008610340527f536c6970706167650000000000000000000000000000000000000000000000006103605261034050606461031cfd5b6000610260511815610e85576370a082316102e052306103005260206102e060246102fc610240515afa15610e8857601f3d1115610e88576102e0516102c05263a9059cbb61032452600461026051610344526102c05161036452604001610320526103208051602001806103a08284600060045af115610e8857505060206104406103a0516103c06000610240515af115610e885760203d80821115610e205780610e22565b815b90509050610420526104208051602001806102e08284600060045af115610e8857505060006102e0511815610e84576102e08060200151600082518060209013610e885780919012610e8857806020036101000a820490509050905015610e88575b5b5b565b600080fd

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b3470000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a000000000000000000000000467947ee34af926cf1dcac093870f613c96b1e0c

-----Decoded View---------------
Arg [0] : _pool_proxy (address): 0xeCb456EA5365865EbAb8a2661B0c503410e9B347
Arg [1] : _recovery (address): 0xeCb456EA5365865EbAb8a2661B0c503410e9B347
Arg [2] : _owner (address): 0x7EeAC6CDdbd1D0B8aF061742D41877D7F707289a
Arg [3] : _emergency_owner (address): 0x467947EE34aF926cF1DCac093870f613C96B1E0c

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347
Arg [1] : 000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347
Arg [2] : 0000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a
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.