ETH Price: $2,022.66 (-2.33%)
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Remove_liquidity...1476881472026-02-13 9:31:112 days ago1770975071IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000106167780.05000001
Remove_liquidity...1476819432026-02-13 6:04:232 days ago1770962663IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000002480060.00100245
Remove_liquidity...1475827042026-02-10 22:56:254 days ago1770764185IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000155080.00006021
Remove_liquidity1475731272026-02-10 17:37:114 days ago1770745031IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000522830.00012863
Remove_liquidity...1475381782026-02-09 22:12:135 days ago1770675133IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000002291270.00106032
Remove_liquidity...1474263952026-02-07 8:06:078 days ago1770451567IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000006234890.00262998
Remove_liquidity1474134352026-02-07 0:54:078 days ago1770425647IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000001263510.00028813
Remove_liquidity...1474021172026-02-06 18:36:518 days ago1770403011IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.000000312550.0014344
Remove_liquidity...1473424792026-02-05 9:28:5510 days ago1770283735IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000289980.00010045
Remove_liquidity...1473348212026-02-05 5:13:3910 days ago1770268419IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000150790.00005097
Remove_liquidity...1473091132026-02-04 14:56:4310 days ago1770217003IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000002740520.00112033
Remove_liquidity...1472705812026-02-03 17:32:1911 days ago1770139939IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000002358520.00107036
Remove_liquidity...1472114362026-02-02 8:40:4913 days ago1770021649IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000319750.000129
Remove_liquidity...1472110382026-02-02 8:27:3313 days ago1770020853IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000308310.00011343
Remove_liquidity...1472074452026-02-02 6:27:4713 days ago1770013667IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000001420760.00057577
Remove_liquidity...1471779072026-02-01 14:03:1113 days ago1769954591IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.000000073660.00028161
Remove_liquidity...1471719442026-02-01 10:44:2514 days ago1769942665IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000108750.00000327
Remove_liquidity...1470825012026-01-30 9:02:5916 days ago1769763779IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000283910.00011412
Remove_liquidity...1470519192026-01-29 16:03:3516 days ago1769702615IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000857610.00010453
Remove_liquidity...1470430692026-01-29 11:08:3517 days ago1769684915IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000002327810.00100185
Add_liquidity1469734432026-01-27 20:27:4318 days ago1769545663IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000003016040.00100682
Remove_liquidity...1469490962026-01-27 6:56:0919 days ago1769496969IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000122380.00005078
Remove_liquidity...1468697912026-01-25 10:52:3921 days ago1769338359IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000012190.00000321
Remove_liquidity...1468640982026-01-25 7:42:5321 days ago1769326973IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000258320.00010467
Remove_liquidity...1468446452026-01-24 20:54:2721 days ago1769288067IN
Curve Finance: MetaUSD Deposit Zap
0 ETH0.0000000055130.00002115
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1075556552023-07-30 9:41:27931 days ago1690710087
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075556552023-07-30 9:41:27931 days ago1690710087
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075556552023-07-30 9:41:27931 days ago1690710087
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075556552023-07-30 9:41:27931 days ago1690710087
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075556552023-07-30 9:41:27931 days ago1690710087
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075552802023-07-30 9:28:57931 days ago1690709337
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075552802023-07-30 9:28:57931 days ago1690709337
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075552802023-07-30 9:28:57931 days ago1690709337
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075552802023-07-30 9:28:57931 days ago1690709337
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075552802023-07-30 9:28:57931 days ago1690709337
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075552802023-07-30 9:28:57931 days ago1690709337
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075552802023-07-30 9:28:57931 days ago1690709337
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075552802023-07-30 9:28:57931 days ago1690709337
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075552802023-07-30 9:28:57931 days ago1690709337
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075552802023-07-30 9:28:57931 days ago1690709337
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075551812023-07-30 9:25:39931 days ago1690709139
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075551812023-07-30 9:25:39931 days ago1690709139
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075551812023-07-30 9:25:39931 days ago1690709139
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075551812023-07-30 9:25:39931 days ago1690709139
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075551812023-07-30 9:25:39931 days ago1690709139
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075539072023-07-30 8:43:11931 days ago1690706591
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075539072023-07-30 8:43:11931 days ago1690706591
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075539072023-07-30 8:43:11931 days ago1690706591
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075539072023-07-30 8:43:11931 days ago1690706591
Curve Finance: MetaUSD Deposit Zap
0 ETH
1075539072023-07-30 8:43:11931 days ago1690706591
Curve Finance: MetaUSD Deposit Zap
0 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.1

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

# @version 0.3.1
"""
@title "Zap" Depositer for permissionless factory metapools
@author Curve.Fi
@license Copyright (c) Curve.Fi, 2021 - all rights reserved
"""

interface ERC20:
    def approve(_spender: address, _amount: uint256): nonpayable
    def balanceOf(_owner: address) -> uint256: view

interface CurveMeta:
    def add_liquidity(amounts: uint256[N_COINS], min_mint_amount: uint256, _receiver: address) -> uint256: nonpayable
    def remove_liquidity(_amount: uint256, min_amounts: uint256[N_COINS]): nonpayable
    def remove_liquidity_one_coin(_token_amount: uint256, i: int128, min_amount: uint256, _receiver: address) -> uint256: nonpayable
    def remove_liquidity_imbalance(amounts: uint256[N_COINS], max_burn_amount: uint256) -> uint256: nonpayable
    def calc_withdraw_one_coin(_token_amount: uint256, i: int128) -> uint256: view
    def calc_token_amount(amounts: uint256[N_COINS], deposit: bool) -> uint256: view
    def coins(i: uint256) -> address: view

interface CurveBase:
    def add_liquidity(amounts: uint256[BASE_N_COINS], min_mint_amount: uint256): nonpayable
    def remove_liquidity(_amount: uint256, min_amounts: uint256[BASE_N_COINS]): nonpayable
    def remove_liquidity_one_coin(_token_amount: uint256, i: int128, min_amount: uint256): nonpayable
    def remove_liquidity_imbalance(amounts: uint256[BASE_N_COINS], max_burn_amount: uint256): nonpayable
    def calc_withdraw_one_coin(_token_amount: uint256, i: int128) -> uint256: view
    def calc_token_amount(amounts: uint256[BASE_N_COINS], deposit: bool) -> uint256: view
    def coins(i: uint256) -> address: view
    def fee() -> uint256: view


BASE_POOL: constant(address) = 0x1337BedC9D22ecbe766dF105c9623922A27963EC
BASE_N_COINS: constant(int128) = 3
BASE_COINS: constant(address[BASE_N_COINS]) = [
    0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1,
    0x7F5c764cBc14f9669B88837ca1490cCa17c31607,
    0x94b008aA00579c1307B0EF2c499aD98a8ce58e58
]
BASE_LP_TOKEN: constant(address) = 0x1337BedC9D22ecbe766dF105c9623922A27963EC

N_COINS: constant(int128) = 2
MAX_COIN: constant(int128) = N_COINS-1
N_ALL_COINS: constant(int128) = N_COINS + BASE_N_COINS - 1

FEE_DENOMINATOR: constant(uint256) = 10 ** 10
FEE_IMPRECISION: constant(uint256) = 100 * 10 ** 8  # % of the fee


# coin -> pool -> is approved to transfer?
is_approved: HashMap[address, HashMap[address, bool]]


@external
def __init__():
    """
    @notice Contract constructor
    """
    for coin in BASE_COINS:
        ERC20(coin).approve(BASE_POOL, MAX_UINT256)


@external
def add_liquidity(
    _pool: address,
    _deposit_amounts: uint256[N_ALL_COINS],
    _min_mint_amount: uint256,
    _receiver: address = msg.sender,
) -> uint256:
    """
    @notice Wrap underlying coins and deposit them into `_pool`
    @param _pool Address of the pool to deposit into
    @param _deposit_amounts List of amounts of underlying coins to deposit
    @param _min_mint_amount Minimum amount of LP tokens to mint from the deposit
    @param _receiver Address that receives the LP tokens
    @return Amount of LP tokens received by depositing
    """
    meta_amounts: uint256[N_COINS] = empty(uint256[N_COINS])
    base_amounts: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS])
    deposit_base: bool = False
    base_coins: address[BASE_N_COINS] = BASE_COINS

    if _deposit_amounts[0] != 0:
        coin: address = CurveMeta(_pool).coins(0)
        if not self.is_approved[coin][_pool]:
            ERC20(coin).approve(_pool, MAX_UINT256)
            self.is_approved[coin][_pool] = True
        response: Bytes[32] = raw_call(
            coin,
            _abi_encode(
                msg.sender,
                self,
                _deposit_amounts[0],
                method_id=method_id("transferFrom(address,address,uint256)"),
            ),
            max_outsize=32
        )
        if len(response) != 0:
            assert convert(response, bool)
        # hand fee on transfer
        meta_amounts[0] = ERC20(coin).balanceOf(self)

    for i in range(1, N_ALL_COINS):
        amount: uint256 = _deposit_amounts[i]
        if amount == 0:
            continue
        deposit_base = True
        base_idx: uint256 = i - 1
        coin: address = base_coins[base_idx]

        response: Bytes[32] = raw_call(
            coin,
            _abi_encode(
                msg.sender,
                self,
                amount,
                method_id=method_id("transferFrom(address,address,uint256)"),
            ),
            max_outsize=32
        )
        if len(response) != 0:
            assert convert(response, bool)

        # Handle potential transfer fees (i.e. Tether/renBTC)
        base_amounts[base_idx] = ERC20(coin).balanceOf(self)

    # Deposit to the base pool
    if deposit_base:
        coin: address = BASE_LP_TOKEN
        CurveBase(BASE_POOL).add_liquidity(base_amounts, 0)
        meta_amounts[MAX_COIN] = ERC20(coin).balanceOf(self)
        if not self.is_approved[coin][_pool]:
            ERC20(coin).approve(_pool, MAX_UINT256)
            self.is_approved[coin][_pool] = True

    # Deposit to the meta pool
    return CurveMeta(_pool).add_liquidity(meta_amounts, _min_mint_amount, _receiver)


@external
def remove_liquidity(
    _pool: address,
    _burn_amount: uint256,
    _min_amounts: uint256[N_ALL_COINS],
    _receiver: address = msg.sender
) -> uint256[N_ALL_COINS]:
    """
    @notice Withdraw and unwrap coins from the pool
    @dev Withdrawal amounts are based on current deposit ratios
    @param _pool Address of the pool to deposit into
    @param _burn_amount Quantity of LP tokens to burn in the withdrawal
    @param _min_amounts Minimum amounts of underlying coins to receive
    @param _receiver Address that receives the LP tokens
    @return List of amounts of underlying coins that were withdrawn
    """
    response: Bytes[32] = raw_call(
        _pool,
        _abi_encode(
            msg.sender,
            self,
            _burn_amount,
            method_id=method_id("transferFrom(address,address,uint256)"),
        ),
        max_outsize=32
    )
    if len(response) != 0:
        assert convert(response, bool)

    min_amounts_base: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS])
    amounts: uint256[N_ALL_COINS] = empty(uint256[N_ALL_COINS])

    # Withdraw from meta
    meta_received: uint256[N_COINS] = empty(uint256[N_COINS])
    CurveMeta(_pool).remove_liquidity(_burn_amount, [_min_amounts[0], convert(0, uint256)])

    coins: address[N_COINS] = empty(address[N_COINS])
    for i in range(N_COINS):
        coin: address = CurveMeta(_pool).coins(i)
        coins[i] = coin
        # Handle fee on transfer for the first coin
        meta_received[i] = ERC20(coin).balanceOf(self)

    # Withdraw from base
    for i in range(BASE_N_COINS):
        min_amounts_base[i] = _min_amounts[MAX_COIN+i]
    CurveBase(BASE_POOL).remove_liquidity(meta_received[MAX_COIN], min_amounts_base)

    # Transfer all coins out
    response = raw_call(
        coins[0],  # metapool coin 0
        _abi_encode(
            _receiver,
            meta_received[0],
            method_id=method_id("transfer(address,uint256)"),
        ),
        max_outsize=32
    )
    if len(response) != 0:
        assert convert(response, bool)

    amounts[0] = meta_received[0]

    base_coins: address[BASE_N_COINS] = BASE_COINS
    for i in range(1, N_ALL_COINS):
        coin: address = base_coins[i-1]
        # handle potential fee on transfer
        amounts[i] = ERC20(coin).balanceOf(self)
        response = raw_call(
            coin,
            _abi_encode(
                _receiver,
                amounts[i],
                method_id=method_id("transfer(address,uint256)"),
            ),
            max_outsize=32
        )
        if len(response) != 0:
            assert convert(response, bool)


    return amounts


@external
def remove_liquidity_one_coin(
    _pool: address,
    _burn_amount: uint256,
    i: int128,
    _min_amount: uint256,
    _receiver: address=msg.sender
) -> uint256:
    """
    @notice Withdraw and unwrap a single coin from the pool
    @param _pool Address of the pool to deposit into
    @param _burn_amount Amount of LP tokens to burn in the withdrawal
    @param i Index value of the coin to withdraw
    @param _min_amount Minimum amount of underlying coin to receive
    @param _receiver Address that receives the LP tokens
    @return Amount of underlying coin received
    """
    response: Bytes[32] = raw_call(
        _pool,
        _abi_encode(
            msg.sender,
            self,
            _burn_amount,
            method_id=method_id("transferFrom(address,address,uint256)"),
        ),
        max_outsize=32
    )
    if len(response) != 0:
        assert convert(response, bool)


    coin_amount: uint256 = 0
    if i == 0:
        coin_amount = CurveMeta(_pool).remove_liquidity_one_coin(_burn_amount, i, _min_amount, _receiver)
    else:
        base_coins: address[BASE_N_COINS] = BASE_COINS
        coin: address = base_coins[i - MAX_COIN]
        # Withdraw a base pool coin
        coin_amount = CurveMeta(_pool).remove_liquidity_one_coin(_burn_amount, MAX_COIN, 0, self)
        CurveBase(BASE_POOL).remove_liquidity_one_coin(coin_amount, i-MAX_COIN, _min_amount)
        coin_amount = ERC20(coin).balanceOf(self)
        response = raw_call(
            coin,
            _abi_encode(
                _receiver,
                coin_amount,
                method_id=method_id("transfer(address,uint256)"),
            ),
            max_outsize=32
        )
        if len(response) != 0:
            assert convert(response, bool)


    return coin_amount


@external
def remove_liquidity_imbalance(
    _pool: address,
    _amounts: uint256[N_ALL_COINS],
    _max_burn_amount: uint256,
    _receiver: address=msg.sender
) -> uint256:
    """
    @notice Withdraw coins from the pool in an imbalanced amount
    @param _pool Address of the pool to deposit into
    @param _amounts List of amounts of underlying coins to withdraw
    @param _max_burn_amount Maximum amount of LP token to burn in the withdrawal
    @param _receiver Address that receives the LP tokens
    @return Actual amount of the LP token burned in the withdrawal
    """
    fee: uint256 = CurveBase(BASE_POOL).fee() * BASE_N_COINS / (4 * (BASE_N_COINS - 1))
    fee += fee * FEE_IMPRECISION / FEE_DENOMINATOR  # Overcharge to account for imprecision

    # Transfer the LP token in
    response: Bytes[32] = raw_call(
        _pool,
        _abi_encode(
            msg.sender,
            self,
            _max_burn_amount,
            method_id=method_id("transferFrom(address,address,uint256)"),
        ),
        max_outsize=32
    )
    if len(response) != 0:
        assert convert(response, bool)

    withdraw_base: bool = False
    amounts_base: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS])
    amounts_meta: uint256[N_COINS] = empty(uint256[N_COINS])

    # determine amounts to withdraw from base pool
    for i in range(BASE_N_COINS):
        amount: uint256 = _amounts[MAX_COIN + i]
        if amount != 0:
            amounts_base[i] = amount
            withdraw_base = True

    # determine amounts to withdraw from metapool
    amounts_meta[0] = _amounts[0]
    if withdraw_base:
        amounts_meta[MAX_COIN] = CurveBase(BASE_POOL).calc_token_amount(amounts_base, False)
        amounts_meta[MAX_COIN] += amounts_meta[MAX_COIN] * fee / FEE_DENOMINATOR + 1

    # withdraw from metapool and return the remaining LP tokens
    burn_amount: uint256 = CurveMeta(_pool).remove_liquidity_imbalance(amounts_meta, _max_burn_amount)
    response = raw_call(
        _pool,
        _abi_encode(
            msg.sender,
            _max_burn_amount - burn_amount,
            method_id=method_id("transfer(address,uint256)"),
        ),
        max_outsize=32
    )
    if len(response) != 0:
        assert convert(response, bool)


    # withdraw from base pool
    if withdraw_base:
        CurveBase(BASE_POOL).remove_liquidity_imbalance(amounts_base, amounts_meta[MAX_COIN])
        coin: address = BASE_LP_TOKEN
        leftover: uint256 = ERC20(coin).balanceOf(self)

        if leftover > 0:
            # if some base pool LP tokens remain, re-deposit them for the caller
            if not self.is_approved[coin][_pool]:
                ERC20(coin).approve(_pool, MAX_UINT256)
                self.is_approved[coin][_pool] = True
            burn_amount -= CurveMeta(_pool).add_liquidity([convert(0, uint256), leftover], 0, msg.sender)

        # transfer withdrawn base pool tokens to caller
        base_coins: address[BASE_N_COINS] = BASE_COINS
        for i in range(BASE_N_COINS):
            response = raw_call(
                base_coins[i],
                _abi_encode(
                    _receiver,
                    ERC20(base_coins[i]).balanceOf(self),  # handle potential transfer fees
                    method_id=method_id("transfer(address,uint256)"),
                ),
                max_outsize=32
            )
            if len(response) != 0:
                assert convert(response, bool)


    # transfer withdrawn metapool tokens to caller
    if _amounts[0] > 0:
        coin: address = CurveMeta(_pool).coins(0)
        response = raw_call(
            coin,
            _abi_encode(
                _receiver,
                ERC20(coin).balanceOf(self),  # handle potential fees
                method_id=method_id("transfer(address,uint256)"),
            ),
            max_outsize=32
        )
        if len(response) != 0:
            assert convert(response, bool)


    return burn_amount


@view
@external
def calc_withdraw_one_coin(_pool: address, _token_amount: uint256, i: int128) -> uint256:
    """
    @notice Calculate the amount received when withdrawing and unwrapping a single coin
    @param _pool Address of the pool to deposit into
    @param _token_amount Amount of LP tokens to burn in the withdrawal
    @param i Index value of the underlying coin to withdraw
    @return Amount of coin received
    """
    if i < MAX_COIN:
        return CurveMeta(_pool).calc_withdraw_one_coin(_token_amount, i)
    else:
        _base_tokens: uint256 = CurveMeta(_pool).calc_withdraw_one_coin(_token_amount, MAX_COIN)
        return CurveBase(BASE_POOL).calc_withdraw_one_coin(_base_tokens, i-MAX_COIN)


@view
@external
def calc_token_amount(_pool: address, _amounts: uint256[N_ALL_COINS], _is_deposit: bool) -> uint256:
    """
    @notice Calculate addition or reduction in token supply from a deposit or withdrawal
    @dev This calculation accounts for slippage, but not fees.
         Needed to prevent front-running, not for precise calculations!
    @param _pool Address of the pool to deposit into
    @param _amounts Amount of each underlying coin being deposited
    @param _is_deposit set True for deposits, False for withdrawals
    @return Expected amount of LP tokens received
    """
    meta_amounts: uint256[N_COINS] = empty(uint256[N_COINS])
    base_amounts: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS])

    meta_amounts[0] = _amounts[0]
    for i in range(BASE_N_COINS):
        base_amounts[i] = _amounts[i + MAX_COIN]

    base_tokens: uint256 = CurveBase(BASE_POOL).calc_token_amount(base_amounts, _is_deposit)
    meta_amounts[MAX_COIN] = base_tokens

    return CurveMeta(_pool).calc_token_amount(meta_amounts, _is_deposit)

Contract Security Audit

Contract ABI

API
[{"stateMutability":"nonpayable","type":"constructor","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"add_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_deposit_amounts","type":"uint256[4]"},{"name":"_min_mint_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":121432},{"stateMutability":"nonpayable","type":"function","name":"add_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_deposit_amounts","type":"uint256[4]"},{"name":"_min_mint_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":121432},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_burn_amount","type":"uint256"},{"name":"_min_amounts","type":"uint256[4]"}],"outputs":[{"name":"","type":"uint256[4]"}],"gas":47367},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_burn_amount","type":"uint256"},{"name":"_min_amounts","type":"uint256[4]"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256[4]"}],"gas":47367},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_one_coin","inputs":[{"name":"_pool","type":"address"},{"name":"_burn_amount","type":"uint256"},{"name":"i","type":"int128"},{"name":"_min_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":21060},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_one_coin","inputs":[{"name":"_pool","type":"address"},{"name":"_burn_amount","type":"uint256"},{"name":"i","type":"int128"},{"name":"_min_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":21060},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_imbalance","inputs":[{"name":"_pool","type":"address"},{"name":"_amounts","type":"uint256[4]"},{"name":"_max_burn_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":105451},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_imbalance","inputs":[{"name":"_pool","type":"address"},{"name":"_amounts","type":"uint256[4]"},{"name":"_max_burn_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":105451},{"stateMutability":"view","type":"function","name":"calc_withdraw_one_coin","inputs":[{"name":"_pool","type":"address"},{"name":"_token_amount","type":"uint256"},{"name":"i","type":"int128"}],"outputs":[{"name":"","type":"uint256"}],"gas":5845},{"stateMutability":"view","type":"function","name":"calc_token_amount","inputs":[{"name":"_pool","type":"address"},{"name":"_amounts","type":"uint256[4]"},{"name":"_is_deposit","type":"bool"}],"outputs":[{"name":"","type":"uint256"}],"gas":6777}]

73da10009cbd5d07dd0cecc66161fc93d7c9000da161012052737f5c764cbc14f9669b88837ca1490cca17c31607610140527394b008aa00579c1307b0ef2c499ad98a8ce58e586101605261010060006003818352015b60206101005102610120015160e05263095ea7b361018052731337bedc9d22ecbe766df105c9623922a27963ec6101a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101c05260e0513b15611a4b5760006000604461019c600060e0515af16100d4573d600060003e3d6000fd5b8151600101808352811415610056575050611a3356600436101561000d5761193e565b60046000601c37600051346119445763384e03db811861003157336101005261004c565b63d0b951e881186105b75760c4358060a01c61194457610100525b6004358060a01c6119445760e05260c0366101203773da10009cbd5d07dd0cecc66161fc93d7c9000da16101e052737f5c764cbc14f9669b88837ca1490cca17c31607610200527394b008aa00579c1307b0ef2c499ad98a8ce58e586102205260006024351461027f5763c6610657610260526000610280526020610260602461027c60e0515afa6100e3573d600060003e3d6000fd5b601f3d111561194457610260518060a01c611944576102405260006102405160a052608052604060802060e05160a0526080526040608020546101a25763095ea7b36102605260e051610280527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102a052610240513b156119445760006000604461027c6000610240515af161017f573d600060003e3d6000fd5b600160006102405160a052608052604060802060e05160a0526080526040608020555b6323b872dd6102a4526004336102c452306102e452602435610304526060016102a0526102a05060206103606102a0516102c06000610240515af16101ec573d600060003e3d6000fd5b61034060203d8082116101ff5781610201565b805b905090508152805160200180610260828460045afa905050506000610260511461024057610280516102605181816020036008021c9050905015611944575b6370a082316102a052306102c05260206102a060246102bc610240515afa61026d573d600060003e3d6000fd5b601f3d1115611944576102a051610120525b61024060016003818352015b602061024051026024013561026052610260516102a7576103cd565b60016101c0526102405160018082106119445780820390509050610280526101e06102805160038110156119445760200201516102a0526323b872dd610304526004336103245230610344526102605161036452606001610300526103005060206103c06103005161032060006102a0515af1610329573d600060003e3d6000fd5b6103a060203d80821161033c578161033e565b805b9050905081528051602001806102c0828460045afa9050505060006102c0511461037d576102e0516102c05181816020036008021c9050905015611944575b6370a082316103005230610320526020610300602461031c6102a0515afa6103aa573d600060003e3d6000fd5b601f3d111561194457610300516101606102805160038110156119445760200201525b815160010180835281141561028b5750506101c0511561055757731337bedc9d22ecbe766df105c9623922a27963ec61024052634515cef3610260526101605161028052610180516102a0526101a0516102c05260006102e052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000608461027c6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610473573d600060003e3d6000fd5b6370a082316102605230610280526020610260602461027c610240515afa6104a0573d600060003e3d6000fd5b601f3d111561194457610260516101405260006102405160a052608052604060802060e05160a0526080526040608020546105575763095ea7b36102605260e051610280527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102a052610240513b156119445760006000604461027c6000610240515af1610534573d600060003e3d6000fd5b600160006102405160a052608052604060802060e05160a0526080526040608020555b630c3e4b54610240526101205161026052610140516102805260a4356102a052610100516102c0526020610240608461025c600060e0515af161059f573d600060003e3d6000fd5b601f3d111561194457610240516102e05260206102e0f35b63ad5cc91881186105cc5733610100526105e7565b63cbc399e58118610ad15760c4358060a01c61194457610100525b6004358060a01c6119445760e0526323b872dd6101645260043361018452306101a4526024356101c4526060016101605261016050602061022061016051610180600060e0515af161063e573d600060003e3d6000fd5b61020060203d8082116106515781610653565b805b905090508152805160200180610120828460045afa905050506000610120511461069257610140516101205181816020036008021c9050905015611944575b6101203661016037635b36389c610280526024356102a0526044356102c05260006102e05260e0513b156119445760006000606461029c600060e0515af16106df573d600060003e3d6000fd5b604036610280376102c060006002818352015b63c6610657610300526102c051610320526020610300602461031c60e0515afa610721573d600060003e3d6000fd5b601f3d111561194457610300518060a01c611944576102e0526102e0516102806102c05160028110156119445760200201526370a082316103005230610320526020610300602461031c6102e0515afa610780573d600060003e3d6000fd5b601f3d111561194457610300516102406102c051600281101561194457602002015281516001018083528114156106f25750506102c060006003818352015b602060016102c0518181830110611944578082019050905002604401356101606102c051600381101561194457602002015281516001018083528114156107bf57505063ecb586a56102c052610260516102e052610160516103005261018051610320526101a05161034052731337bedc9d22ecbe766df105c9623922a27963ec3b15611944576000600060846102dc6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610877573d600060003e3d6000fd5b63a9059cbb6102c4526004610100516102e45261024051610304526040016102c0526102c05060206103606102c0516102e06000610280515af16108c0573d600060003e3d6000fd5b61034060203d8082116108d357816108d5565b805b905090508152805160200180610120828460045afa905050506000610120511461091457610140516101205181816020036008021c9050905015611944575b610240516101c05273da10009cbd5d07dd0cecc66161fc93d7c9000da16102c052737f5c764cbc14f9669b88837ca1490cca17c316076102e0527394b008aa00579c1307b0ef2c499ad98a8ce58e586103005261032060016003818352015b6102c061032051600180821061194457808203905090506003811015611944576020020151610340526370a082316103605230610380526020610360602461037c610340515afa6109c9573d600060003e3d6000fd5b601f3d111561194457610360516101c061032051600481101561194457602002015263a9059cbb61036452600461010051610384526101c06103205160048110156119445760200201516103a45260400161036052610360506020610400610360516103806000610340515af1610a45573d600060003e3d6000fd5b6103e060203d808211610a585781610a5a565b805b905090508152805160200180610120828460045afa9050505060006101205114610a9957610140516101205181816020036008021c9050905015611944575b81516001018083528114156109735750506101c051610320526101e05161034052610200516103605261022051610380526080610320f35b6329ed28628118610ae6573361012052610b01565b631e700cbb8118610e64576084358060a01c61194457610120525b6004358060a01c6119445760e0526044358060801d81607f1d1861194457610100526323b872dd610184526004336101a452306101c4526024356101e45260600161018052610180506020610240610180516101a0600060e0515af1610b6c573d600060003e3d6000fd5b61022060203d808211610b7f5781610b81565b805b905090508152805160200180610140828460045afa9050505060006101405114610bc057610160516101405181816020036008021c9050905015611944575b6000610180526101005115610dfc5773da10009cbd5d07dd0cecc66161fc93d7c9000da16101a052737f5c764cbc14f9669b88837ca1490cca17c316076101c0527394b008aa00579c1307b0ef2c499ad98a8ce58e586101e0526101a06101005160018082038060801d81607f1d18611944579050905060038110156119445760200201516102005263081579a56102205260243561024052600161026052600061028052306102a0526020610220608461023c600060e0515af1610c8a573d600060003e3d6000fd5b601f3d1115611944576102205161018052631a4d01d26102205261018051610240526101005160018082038060801d81607f1d1861194457905090506102605260643561028052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000606461023c6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610d1d573d600060003e3d6000fd5b6370a082316102205230610240526020610220602461023c610200515afa610d4a573d600060003e3d6000fd5b601f3d111561194457610220516101805263a9059cbb61022452600461012051610244526101805161026452604001610220526102205060206102c0610220516102406000610200515af1610da4573d600060003e3d6000fd5b6102a060203d808211610db75781610db9565b805b905090508152805160200180610140828460045afa9050505060006101405114610e5557610160516101405181816020036008021c905090501561194457610e55565b63081579a56101a0526024356101c052610100516101e05260643561020052610120516102205260206101a060846101bc600060e0515af1610e43573d600060003e3d6000fd5b601f3d1115611944576101a051610180525b610180516101a05260206101a0f35b63ac24f7718118610e79573361010052610e94565b634329c8cc81186116a05760c4358060a01c61194457610100525b6004358060a01c6119445760e05263ddca3f43610140526020610140600461015c731337bedc9d22ecbe766df105c9623922a27963ec5afa610edb573d600060003e3d6000fd5b601f3d1115611944576101405160038082028215828483041417156119445790509050600880820490509050610120526101208051610120516402540be40080820282158284830414171561194457905090506402540be40080820490509050818183011061194457808201905090508152506323b872dd610184526004336101a452306101c45260a4356101e45260600161018052610180506020610240610180516101a0600060e0515af1610f97573d600060003e3d6000fd5b61022060203d808211610faa5781610fac565b805b905090508152805160200180610140828460045afa9050505060006101405114610feb57610160516101405181816020036008021c9050905015611944575b60c0366101803761024060006003818352015b6020600161024051818183011061194457808201905090500260240135610260526000610260511461104a57610260516101a06102405160038110156119445760200201526001610180525b8151600101808352811415610ffe57505060243561020052610180511561112757633883e119610240526101a051610260526101c051610280526101e0516102a05260006102c0526020610240608461025c731337bedc9d22ecbe766df105c9623922a27963ec5afa6110c2573d600060003e3d6000fd5b601f3d11156119445761024051610220526102208051610220516101205180820282158284830414171561194457905090506402540be40080820490509050600181818301106119445780820190509050818183011061194457808201905090508152505b63e3103273610260526102005161028052610220516102a05260a4356102c0526020610260606461027c600060e0515af1611167573d600060003e3d6000fd5b601f3d111561194457610260516102405263a9059cbb610264526004336102845260a4356102405180821061194457808203905090506102a4526040016102605261026050602061030061026051610280600060e0515af16111ce573d600060003e3d6000fd5b6102e060203d8082116111e157816111e3565b805b905090508152805160200180610140828460045afa905050506000610140511461122257610160516101405181816020036008021c9050905015611944575b610180511561156d57639fdaea0c610260526101a051610280526101c0516102a0526101e0516102c052610220516102e052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000608461027c6000731337bedc9d22ecbe766df105c9623922a27963ec5af16112a0573d600060003e3d6000fd5b731337bedc9d22ecbe766df105c9623922a27963ec610260526370a082316102a052306102c05260206102a060246102bc610260515afa6112e6573d600060003e3d6000fd5b601f3d1115611944576102a05161028052600061028051111561140f5760006102605160a052608052604060802060e05160a0526080526040608020546113a95763095ea7b36102a05260e0516102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e052610260513b15611944576000600060446102bc6000610260515af1611386573d600060003e3d6000fd5b600160006102605160a052608052604060802060e05160a0526080526040608020555b6102408051630c3e4b546102a05260006102c052610280516102e052600061030052336103205260206102a060846102bc600060e0515af16113f0573d600060003e3d6000fd5b601f3d1115611944576102a05180821061194457808203905090508152505b73da10009cbd5d07dd0cecc66161fc93d7c9000da16102a052737f5c764cbc14f9669b88837ca1490cca17c316076102c0527394b008aa00579c1307b0ef2c499ad98a8ce58e586102e05261030060006003818352015b63a9059cbb61036452600461010051610384526370a082316103205230610340526020610320602461033c6102a06103005160038110156119445760200201515afa6114b7573d600060003e3d6000fd5b601f3d111561194457610320516103a452604001610360526103605060206104006103605161038060006102a06103005160038110156119445760200201515af1611507573d600060003e3d6000fd5b6103e060203d80821161151a578161151c565b805b905090508152805160200180610140828460045afa905050506000610140511461155b57610160516101405181816020036008021c9050905015611944575b81516001018083528114156114665750505b600060243511156116915763c66106576102805260006102a0526020610280602461029c60e0515afa6115a5573d600060003e3d6000fd5b601f3d111561194457610280518060a01c611944576102605263a9059cbb6102c4526004610100516102e4526370a0823161028052306102a0526020610280602461029c610260515afa6115fe573d600060003e3d6000fd5b601f3d11156119445761028051610304526040016102c0526102c05060206103606102c0516102e06000610260515af161163d573d600060003e3d6000fd5b61034060203d8082116116505781611652565b805b905090508152805160200180610140828460045afa905050506000610140511461169157610160516101405181816020036008021c9050905015611944575b61024051610260526020610260f35b6341b028f381186117ee576004358060a01c6119445760e0526044358060801d81607f1d1861194457610100526001610100511261179b5763cc2b27d761014052602435610160526001610180526020610140604461015c60e0515afa61170c573d600060003e3d6000fd5b601f3d111561194457610140516101205263cc2b27d76101405261012051610160526101005160018082038060801d81607f1d186119445790509050610180526020610140604461015c731337bedc9d22ecbe766df105c9623922a27963ec5afa61177c573d600060003e3d6000fd5b601f3d111561194457610140516101a05260206101a06117ec566117ec565b63cc2b27d7610120526024356101405261010051610160526020610120604461013c60e0515afa6117d1573d600060003e3d6000fd5b601f3d111561194457610120516101805260206101806117ec565bf35b63861cdef0811861193c576004358060a01c6119445760e05260a4358060011c611944576101005260a03661012037602435610120526101c060006003818352015b60206101c05160018181830110611944578082019050905002602401356101606101c05160038110156119445760200201528151600101808352811415611830575050633883e1196101e052610160516102005261018051610220526101a05161024052610100516102605260206101e060846101fc731337bedc9d22ecbe766df105c9623922a27963ec5afa6118cc573d600060003e3d6000fd5b601f3d1115611944576101e0516101c0526101c0516101405263ed8e84f36101e05261012051610200526101405161022052610100516102405260206101e060646101fc60e0515afa611924573d600060003e3d6000fd5b601f3d1115611944576101e051610260526020610260f35b505b60006000fd5b600080fd5b6100ea611a33036100ea6000396100ea611a33036000f35b600080fd

Deployed Bytecode

0x600436101561000d5761193e565b60046000601c37600051346119445763384e03db811861003157336101005261004c565b63d0b951e881186105b75760c4358060a01c61194457610100525b6004358060a01c6119445760e05260c0366101203773da10009cbd5d07dd0cecc66161fc93d7c9000da16101e052737f5c764cbc14f9669b88837ca1490cca17c31607610200527394b008aa00579c1307b0ef2c499ad98a8ce58e586102205260006024351461027f5763c6610657610260526000610280526020610260602461027c60e0515afa6100e3573d600060003e3d6000fd5b601f3d111561194457610260518060a01c611944576102405260006102405160a052608052604060802060e05160a0526080526040608020546101a25763095ea7b36102605260e051610280527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102a052610240513b156119445760006000604461027c6000610240515af161017f573d600060003e3d6000fd5b600160006102405160a052608052604060802060e05160a0526080526040608020555b6323b872dd6102a4526004336102c452306102e452602435610304526060016102a0526102a05060206103606102a0516102c06000610240515af16101ec573d600060003e3d6000fd5b61034060203d8082116101ff5781610201565b805b905090508152805160200180610260828460045afa905050506000610260511461024057610280516102605181816020036008021c9050905015611944575b6370a082316102a052306102c05260206102a060246102bc610240515afa61026d573d600060003e3d6000fd5b601f3d1115611944576102a051610120525b61024060016003818352015b602061024051026024013561026052610260516102a7576103cd565b60016101c0526102405160018082106119445780820390509050610280526101e06102805160038110156119445760200201516102a0526323b872dd610304526004336103245230610344526102605161036452606001610300526103005060206103c06103005161032060006102a0515af1610329573d600060003e3d6000fd5b6103a060203d80821161033c578161033e565b805b9050905081528051602001806102c0828460045afa9050505060006102c0511461037d576102e0516102c05181816020036008021c9050905015611944575b6370a082316103005230610320526020610300602461031c6102a0515afa6103aa573d600060003e3d6000fd5b601f3d111561194457610300516101606102805160038110156119445760200201525b815160010180835281141561028b5750506101c0511561055757731337bedc9d22ecbe766df105c9623922a27963ec61024052634515cef3610260526101605161028052610180516102a0526101a0516102c05260006102e052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000608461027c6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610473573d600060003e3d6000fd5b6370a082316102605230610280526020610260602461027c610240515afa6104a0573d600060003e3d6000fd5b601f3d111561194457610260516101405260006102405160a052608052604060802060e05160a0526080526040608020546105575763095ea7b36102605260e051610280527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102a052610240513b156119445760006000604461027c6000610240515af1610534573d600060003e3d6000fd5b600160006102405160a052608052604060802060e05160a0526080526040608020555b630c3e4b54610240526101205161026052610140516102805260a4356102a052610100516102c0526020610240608461025c600060e0515af161059f573d600060003e3d6000fd5b601f3d111561194457610240516102e05260206102e0f35b63ad5cc91881186105cc5733610100526105e7565b63cbc399e58118610ad15760c4358060a01c61194457610100525b6004358060a01c6119445760e0526323b872dd6101645260043361018452306101a4526024356101c4526060016101605261016050602061022061016051610180600060e0515af161063e573d600060003e3d6000fd5b61020060203d8082116106515781610653565b805b905090508152805160200180610120828460045afa905050506000610120511461069257610140516101205181816020036008021c9050905015611944575b6101203661016037635b36389c610280526024356102a0526044356102c05260006102e05260e0513b156119445760006000606461029c600060e0515af16106df573d600060003e3d6000fd5b604036610280376102c060006002818352015b63c6610657610300526102c051610320526020610300602461031c60e0515afa610721573d600060003e3d6000fd5b601f3d111561194457610300518060a01c611944576102e0526102e0516102806102c05160028110156119445760200201526370a082316103005230610320526020610300602461031c6102e0515afa610780573d600060003e3d6000fd5b601f3d111561194457610300516102406102c051600281101561194457602002015281516001018083528114156106f25750506102c060006003818352015b602060016102c0518181830110611944578082019050905002604401356101606102c051600381101561194457602002015281516001018083528114156107bf57505063ecb586a56102c052610260516102e052610160516103005261018051610320526101a05161034052731337bedc9d22ecbe766df105c9623922a27963ec3b15611944576000600060846102dc6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610877573d600060003e3d6000fd5b63a9059cbb6102c4526004610100516102e45261024051610304526040016102c0526102c05060206103606102c0516102e06000610280515af16108c0573d600060003e3d6000fd5b61034060203d8082116108d357816108d5565b805b905090508152805160200180610120828460045afa905050506000610120511461091457610140516101205181816020036008021c9050905015611944575b610240516101c05273da10009cbd5d07dd0cecc66161fc93d7c9000da16102c052737f5c764cbc14f9669b88837ca1490cca17c316076102e0527394b008aa00579c1307b0ef2c499ad98a8ce58e586103005261032060016003818352015b6102c061032051600180821061194457808203905090506003811015611944576020020151610340526370a082316103605230610380526020610360602461037c610340515afa6109c9573d600060003e3d6000fd5b601f3d111561194457610360516101c061032051600481101561194457602002015263a9059cbb61036452600461010051610384526101c06103205160048110156119445760200201516103a45260400161036052610360506020610400610360516103806000610340515af1610a45573d600060003e3d6000fd5b6103e060203d808211610a585781610a5a565b805b905090508152805160200180610120828460045afa9050505060006101205114610a9957610140516101205181816020036008021c9050905015611944575b81516001018083528114156109735750506101c051610320526101e05161034052610200516103605261022051610380526080610320f35b6329ed28628118610ae6573361012052610b01565b631e700cbb8118610e64576084358060a01c61194457610120525b6004358060a01c6119445760e0526044358060801d81607f1d1861194457610100526323b872dd610184526004336101a452306101c4526024356101e45260600161018052610180506020610240610180516101a0600060e0515af1610b6c573d600060003e3d6000fd5b61022060203d808211610b7f5781610b81565b805b905090508152805160200180610140828460045afa9050505060006101405114610bc057610160516101405181816020036008021c9050905015611944575b6000610180526101005115610dfc5773da10009cbd5d07dd0cecc66161fc93d7c9000da16101a052737f5c764cbc14f9669b88837ca1490cca17c316076101c0527394b008aa00579c1307b0ef2c499ad98a8ce58e586101e0526101a06101005160018082038060801d81607f1d18611944579050905060038110156119445760200201516102005263081579a56102205260243561024052600161026052600061028052306102a0526020610220608461023c600060e0515af1610c8a573d600060003e3d6000fd5b601f3d1115611944576102205161018052631a4d01d26102205261018051610240526101005160018082038060801d81607f1d1861194457905090506102605260643561028052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000606461023c6000731337bedc9d22ecbe766df105c9623922a27963ec5af1610d1d573d600060003e3d6000fd5b6370a082316102205230610240526020610220602461023c610200515afa610d4a573d600060003e3d6000fd5b601f3d111561194457610220516101805263a9059cbb61022452600461012051610244526101805161026452604001610220526102205060206102c0610220516102406000610200515af1610da4573d600060003e3d6000fd5b6102a060203d808211610db75781610db9565b805b905090508152805160200180610140828460045afa9050505060006101405114610e5557610160516101405181816020036008021c905090501561194457610e55565b63081579a56101a0526024356101c052610100516101e05260643561020052610120516102205260206101a060846101bc600060e0515af1610e43573d600060003e3d6000fd5b601f3d1115611944576101a051610180525b610180516101a05260206101a0f35b63ac24f7718118610e79573361010052610e94565b634329c8cc81186116a05760c4358060a01c61194457610100525b6004358060a01c6119445760e05263ddca3f43610140526020610140600461015c731337bedc9d22ecbe766df105c9623922a27963ec5afa610edb573d600060003e3d6000fd5b601f3d1115611944576101405160038082028215828483041417156119445790509050600880820490509050610120526101208051610120516402540be40080820282158284830414171561194457905090506402540be40080820490509050818183011061194457808201905090508152506323b872dd610184526004336101a452306101c45260a4356101e45260600161018052610180506020610240610180516101a0600060e0515af1610f97573d600060003e3d6000fd5b61022060203d808211610faa5781610fac565b805b905090508152805160200180610140828460045afa9050505060006101405114610feb57610160516101405181816020036008021c9050905015611944575b60c0366101803761024060006003818352015b6020600161024051818183011061194457808201905090500260240135610260526000610260511461104a57610260516101a06102405160038110156119445760200201526001610180525b8151600101808352811415610ffe57505060243561020052610180511561112757633883e119610240526101a051610260526101c051610280526101e0516102a05260006102c0526020610240608461025c731337bedc9d22ecbe766df105c9623922a27963ec5afa6110c2573d600060003e3d6000fd5b601f3d11156119445761024051610220526102208051610220516101205180820282158284830414171561194457905090506402540be40080820490509050600181818301106119445780820190509050818183011061194457808201905090508152505b63e3103273610260526102005161028052610220516102a05260a4356102c0526020610260606461027c600060e0515af1611167573d600060003e3d6000fd5b601f3d111561194457610260516102405263a9059cbb610264526004336102845260a4356102405180821061194457808203905090506102a4526040016102605261026050602061030061026051610280600060e0515af16111ce573d600060003e3d6000fd5b6102e060203d8082116111e157816111e3565b805b905090508152805160200180610140828460045afa905050506000610140511461122257610160516101405181816020036008021c9050905015611944575b610180511561156d57639fdaea0c610260526101a051610280526101c0516102a0526101e0516102c052610220516102e052731337bedc9d22ecbe766df105c9623922a27963ec3b156119445760006000608461027c6000731337bedc9d22ecbe766df105c9623922a27963ec5af16112a0573d600060003e3d6000fd5b731337bedc9d22ecbe766df105c9623922a27963ec610260526370a082316102a052306102c05260206102a060246102bc610260515afa6112e6573d600060003e3d6000fd5b601f3d1115611944576102a05161028052600061028051111561140f5760006102605160a052608052604060802060e05160a0526080526040608020546113a95763095ea7b36102a05260e0516102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e052610260513b15611944576000600060446102bc6000610260515af1611386573d600060003e3d6000fd5b600160006102605160a052608052604060802060e05160a0526080526040608020555b6102408051630c3e4b546102a05260006102c052610280516102e052600061030052336103205260206102a060846102bc600060e0515af16113f0573d600060003e3d6000fd5b601f3d1115611944576102a05180821061194457808203905090508152505b73da10009cbd5d07dd0cecc66161fc93d7c9000da16102a052737f5c764cbc14f9669b88837ca1490cca17c316076102c0527394b008aa00579c1307b0ef2c499ad98a8ce58e586102e05261030060006003818352015b63a9059cbb61036452600461010051610384526370a082316103205230610340526020610320602461033c6102a06103005160038110156119445760200201515afa6114b7573d600060003e3d6000fd5b601f3d111561194457610320516103a452604001610360526103605060206104006103605161038060006102a06103005160038110156119445760200201515af1611507573d600060003e3d6000fd5b6103e060203d80821161151a578161151c565b805b905090508152805160200180610140828460045afa905050506000610140511461155b57610160516101405181816020036008021c9050905015611944575b81516001018083528114156114665750505b600060243511156116915763c66106576102805260006102a0526020610280602461029c60e0515afa6115a5573d600060003e3d6000fd5b601f3d111561194457610280518060a01c611944576102605263a9059cbb6102c4526004610100516102e4526370a0823161028052306102a0526020610280602461029c610260515afa6115fe573d600060003e3d6000fd5b601f3d11156119445761028051610304526040016102c0526102c05060206103606102c0516102e06000610260515af161163d573d600060003e3d6000fd5b61034060203d8082116116505781611652565b805b905090508152805160200180610140828460045afa905050506000610140511461169157610160516101405181816020036008021c9050905015611944575b61024051610260526020610260f35b6341b028f381186117ee576004358060a01c6119445760e0526044358060801d81607f1d1861194457610100526001610100511261179b5763cc2b27d761014052602435610160526001610180526020610140604461015c60e0515afa61170c573d600060003e3d6000fd5b601f3d111561194457610140516101205263cc2b27d76101405261012051610160526101005160018082038060801d81607f1d186119445790509050610180526020610140604461015c731337bedc9d22ecbe766df105c9623922a27963ec5afa61177c573d600060003e3d6000fd5b601f3d111561194457610140516101a05260206101a06117ec566117ec565b63cc2b27d7610120526024356101405261010051610160526020610120604461013c60e0515afa6117d1573d600060003e3d6000fd5b601f3d111561194457610120516101805260206101806117ec565bf35b63861cdef0811861193c576004358060a01c6119445760e05260a4358060011c611944576101005260a03661012037602435610120526101c060006003818352015b60206101c05160018181830110611944578082019050905002602401356101606101c05160038110156119445760200201528151600101808352811415611830575050633883e1196101e052610160516102005261018051610220526101a05161024052610100516102605260206101e060846101fc731337bedc9d22ecbe766df105c9623922a27963ec5afa6118cc573d600060003e3d6000fd5b601f3d1115611944576101e0516101c0526101c0516101405263ed8e84f36101e05261012051610200526101405161022052610100516102405260206101e060646101fc60e0515afa611924573d600060003e3d6000fd5b601f3d1115611944576101e051610260526020610260f35b505b60006000fd5b600080fd

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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.