ETH Price: $1,970.86 (-2.07%)
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x92ebf19b0ab669872f3e4993b1350c4cb64b0ae75f27cf326b862807003665cd Remove_liquidity(pending)2026-03-01 13:30:4112 hrs ago1772371841IN
Curve: 3Pool Deposit Zap
0 ETH(Pending)(Pending)
0xaee9060f36c43763bf533dc1fd9264eb6720c8618b1bea7e69a9d0f255bf2c51 Add_liquidity(pending)2026-03-01 1:34:1723 hrs ago1772328857IN
Curve: 3Pool Deposit Zap
0 ETH(Pending)(Pending)
Add_liquidity245642412026-03-01 17:59:237 hrs ago1772387963IN
Curve: 3Pool Deposit Zap
0 ETH0.000061520.1827885
Add_liquidity245639112026-03-01 16:53:238 hrs ago1772384003IN
Curve: 3Pool Deposit Zap
0 ETH0.000069030.20733536
Remove_liquidity...245621412026-03-01 10:57:4714 hrs ago1772362667IN
Curve: 3Pool Deposit Zap
0 ETH0.00000630.03467456
Remove_liquidity...245557222026-02-28 13:26:2336 hrs ago1772285183IN
Curve: 3Pool Deposit Zap
0 ETH0.00003850.12950579
Add_liquidity245450982026-02-27 1:52:232 days ago1772157143IN
Curve: 3Pool Deposit Zap
0 ETH0.000391451.04533822
Add_liquidity245444702026-02-26 23:46:233 days ago1772149583IN
Curve: 3Pool Deposit Zap
0 ETH0.000014480.04349617
Add_liquidity245428512026-02-26 18:21:593 days ago1772130119IN
Curve: 3Pool Deposit Zap
0 ETH0.00006610.19935329
Add_liquidity245406082026-02-26 10:51:113 days ago1772103071IN
Curve: 3Pool Deposit Zap
0 ETH0.000020570.06179947
Remove_liquidity...245386212026-02-26 4:12:473 days ago1772079167IN
Curve: 3Pool Deposit Zap
0 ETH0.000109720.37082442
Add_liquidity245381752026-02-26 2:43:113 days ago1772073791IN
Curve: 3Pool Deposit Zap
0 ETH0.00035051.04134977
Add_liquidity245269502026-02-24 13:06:235 days ago1771938383IN
Curve: 3Pool Deposit Zap
0 ETH0.000062310.16771129
Add_liquidity245255342026-02-24 8:22:235 days ago1771921343IN
Curve: 3Pool Deposit Zap
0 ETH0.000017210.05170005
Add_liquidity245240042026-02-24 3:15:115 days ago1771902911IN
Curve: 3Pool Deposit Zap
0 ETH0.000349851.03942946
Remove_liquidity...245185112026-02-23 8:51:596 days ago1771836719IN
Curve: 3Pool Deposit Zap
0 ETH0.00001370.04383807
Add_liquidity245159232026-02-23 0:12:477 days ago1771805567IN
Curve: 3Pool Deposit Zap
0 ETH0.000010780.03239639
Remove_liquidity...245130912026-02-22 14:45:117 days ago1771771511IN
Curve: 3Pool Deposit Zap
0 ETH0.000024980.07953321
Add_liquidity245117402026-02-22 10:14:117 days ago1771755251IN
Curve: 3Pool Deposit Zap
0 ETH0.000011620.03492311
Add_liquidity245097062026-02-22 3:25:597 days ago1771730759IN
Curve: 3Pool Deposit Zap
0 ETH0.00001210.03634715
Remove_liquidity...245090632026-02-22 1:16:238 days ago1771722983IN
Curve: 3Pool Deposit Zap
0 ETH0.000035650.11958991
Remove_liquidity...245075472026-02-21 20:11:358 days ago1771704695IN
Curve: 3Pool Deposit Zap
0 ETH0.000022940.12285581
Remove_liquidity...245074652026-02-21 19:54:598 days ago1771703699IN
Curve: 3Pool Deposit Zap
0 ETH0.000022240.13112652
Remove_liquidity...245071612026-02-21 18:53:358 days ago1771700015IN
Curve: 3Pool Deposit Zap
0 ETH0.000012080.03856831
Remove_liquidity...245067342026-02-21 17:27:598 days ago1771694879IN
Curve: 3Pool Deposit Zap
0 ETH0.000028370.13235384
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer245660552026-03-02 0:02:231 hr ago1772409743
Curve: 3Pool Deposit Zap
0 ETH
Balance Of245660552026-03-02 0:02:231 hr ago1772409743
Curve: 3Pool Deposit Zap
0 ETH
Remove_liquidity...245660552026-03-02 0:02:231 hr ago1772409743
Curve: 3Pool Deposit Zap
0 ETH
Remove_liquidity...245660552026-03-02 0:02:231 hr ago1772409743
Curve: 3Pool Deposit Zap
0 ETH
Transfer From245660552026-03-02 0:02:231 hr ago1772409743
Curve: 3Pool Deposit Zap
0 ETH
Remove_liquidity...245660552026-03-02 0:02:231 hr ago1772409743
Curve: 3Pool Deposit Zap
0 ETH
Add_liquidity245642412026-03-01 17:59:237 hrs ago1772387963
Curve: 3Pool Deposit Zap
0 ETH
Balance Of245642412026-03-01 17:59:237 hrs ago1772387963
Curve: 3Pool Deposit Zap
0 ETH
Add_liquidity245642412026-03-01 17:59:237 hrs ago1772387963
Curve: 3Pool Deposit Zap
0 ETH
Transfer From245642412026-03-01 17:59:237 hrs ago1772387963
Curve: 3Pool Deposit Zap
0 ETH
Transfer245640122026-03-01 17:13:358 hrs ago1772385215
Curve: 3Pool Deposit Zap
0 ETH
Balance Of245640122026-03-01 17:13:358 hrs ago1772385215
Curve: 3Pool Deposit Zap
0 ETH
Remove_liquidity...245640122026-03-01 17:13:358 hrs ago1772385215
Curve: 3Pool Deposit Zap
0 ETH
Remove_liquidity...245640122026-03-01 17:13:358 hrs ago1772385215
Curve: 3Pool Deposit Zap
0 ETH
Transfer From245640122026-03-01 17:13:358 hrs ago1772385215
Curve: 3Pool Deposit Zap
0 ETH
Remove_liquidity...245640122026-03-01 17:13:358 hrs ago1772385215
Curve: 3Pool Deposit Zap
0 ETH
Add_liquidity245639112026-03-01 16:53:238 hrs ago1772384003
Curve: 3Pool Deposit Zap
0 ETH
Balance Of245639112026-03-01 16:53:238 hrs ago1772384003
Curve: 3Pool Deposit Zap
0 ETH
Add_liquidity245639112026-03-01 16:53:238 hrs ago1772384003
Curve: 3Pool Deposit Zap
0 ETH
Transfer From245639112026-03-01 16:53:238 hrs ago1772384003
Curve: 3Pool Deposit Zap
0 ETH
Remove_liquidity...245621412026-03-01 10:57:4714 hrs ago1772362667
Curve: 3Pool Deposit Zap
0 ETH
Transfer From245621412026-03-01 10:57:4714 hrs ago1772362667
Curve: 3Pool Deposit Zap
0 ETH
Transfer245557222026-02-28 13:26:2336 hrs ago1772285183
Curve: 3Pool Deposit Zap
0 ETH
Balance Of245557222026-02-28 13:26:2336 hrs ago1772285183
Curve: 3Pool Deposit Zap
0 ETH
Remove_liquidity...245557222026-02-28 13:26:2336 hrs ago1772285183
Curve: 3Pool Deposit Zap
0 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.2.8

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

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

interface ERC20:
    def transfer(_receiver: address, _amount: uint256): nonpayable
    def transferFrom(_sender: address, _receiver: address, _amount: uint256): nonpayable
    def approve(_spender: address, _amount: uint256): nonpayable
    def decimals() -> uint256: view
    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]) -> 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


N_COINS: constant(int128) = 2
MAX_COIN: constant(int128) = N_COINS-1
BASE_N_COINS: constant(int128) = 3
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

BASE_POOL: constant(address) = 0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7
BASE_LP_TOKEN: constant(address) = 0x6c3F90f043a72FA612cbac8115EE7e52BDe6E490
BASE_COINS: constant(address[3]) = [
    0x6B175474E89094C44Da98b954EedeAC495271d0F,  # DAI
    0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,  # USDC
    0xdAC17F958D2ee523a2206206994597C13D831ec7,  # USDT
]

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


@external
def __init__():
    """
    @notice Contract constructor
    """
    base_coins: address[3] = BASE_COINS
    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[3] = 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
        ERC20(coin).transferFrom(msg.sender, self, _deposit_amounts[0])
        meta_amounts[0] = _deposit_amounts[0]

    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]

        ERC20(coin).transferFrom(msg.sender, self, amount)
        # Handle potential Tether fees
        if i == N_ALL_COINS - 1:
            base_amounts[base_idx] = ERC20(coin).balanceOf(self)
        else:
            base_amounts[base_idx] = amount

    # 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
    """
    ERC20(_pool).transferFrom(msg.sender, self, _burn_amount)

    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] = CurveMeta(_pool).remove_liquidity(
        _burn_amount,
        [_min_amounts[0], convert(0, uint256)]
    )

    # 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[1], min_amounts_base)

    # Transfer all coins out
    coin: address = CurveMeta(_pool).coins(0)
    ERC20(coin).transfer(_receiver, meta_received[0])
    amounts[0] = meta_received[0]

    base_coins: address[BASE_N_COINS] = BASE_COINS
    for i in range(1, N_ALL_COINS):
        coin = base_coins[i-1]
        amounts[i] = ERC20(coin).balanceOf(self)
        ERC20(coin).transfer(_receiver, amounts[i])

    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
    """
    ERC20(_pool).transferFrom(msg.sender, self, _burn_amount)

    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)
        ERC20(coin).transfer(_receiver, coin_amount)

    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
    ERC20(_pool).transferFrom(msg.sender, self, _max_burn_amount)

    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)
    ERC20(_pool).transfer(msg.sender, _max_burn_amount - burn_amount)

    # 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):
            ERC20(base_coins[i]).transfer(_receiver, amounts_base[i])

    # transfer withdrawn metapool tokens to caller
    if _amounts[0] > 0:
        coin: address = CurveMeta(_pool).coins(0)
        ERC20(coin).transfer(_receiver, _amounts[0])

    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
[{"outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"name":"add_liquidity","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_pool"},{"type":"uint256[4]","name":"_deposit_amounts"},{"type":"uint256","name":"_min_mint_amount"}],"stateMutability":"nonpayable","type":"function"},{"name":"add_liquidity","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_pool"},{"type":"uint256[4]","name":"_deposit_amounts"},{"type":"uint256","name":"_min_mint_amount"},{"type":"address","name":"_receiver"}],"stateMutability":"nonpayable","type":"function"},{"name":"remove_liquidity","outputs":[{"type":"uint256[4]","name":""}],"inputs":[{"type":"address","name":"_pool"},{"type":"uint256","name":"_burn_amount"},{"type":"uint256[4]","name":"_min_amounts"}],"stateMutability":"nonpayable","type":"function"},{"name":"remove_liquidity","outputs":[{"type":"uint256[4]","name":""}],"inputs":[{"type":"address","name":"_pool"},{"type":"uint256","name":"_burn_amount"},{"type":"uint256[4]","name":"_min_amounts"},{"type":"address","name":"_receiver"}],"stateMutability":"nonpayable","type":"function"},{"name":"remove_liquidity_one_coin","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_pool"},{"type":"uint256","name":"_burn_amount"},{"type":"int128","name":"i"},{"type":"uint256","name":"_min_amount"}],"stateMutability":"nonpayable","type":"function"},{"name":"remove_liquidity_one_coin","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_pool"},{"type":"uint256","name":"_burn_amount"},{"type":"int128","name":"i"},{"type":"uint256","name":"_min_amount"},{"type":"address","name":"_receiver"}],"stateMutability":"nonpayable","type":"function"},{"name":"remove_liquidity_imbalance","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_pool"},{"type":"uint256[4]","name":"_amounts"},{"type":"uint256","name":"_max_burn_amount"}],"stateMutability":"nonpayable","type":"function"},{"name":"remove_liquidity_imbalance","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_pool"},{"type":"uint256[4]","name":"_amounts"},{"type":"uint256","name":"_max_burn_amount"},{"type":"address","name":"_receiver"}],"stateMutability":"nonpayable","type":"function"},{"name":"calc_withdraw_one_coin","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_pool"},{"type":"uint256","name":"_token_amount"},{"type":"int128","name":"i"}],"stateMutability":"view","type":"function","gas":1650},{"name":"calc_token_amount","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_pool"},{"type":"uint256[4]","name":"_amounts"},{"type":"bool","name":"_is_deposit"}],"stateMutability":"view","type":"function","gas":2717}]

736b175474e89094c44da98b954eedeac495271d0f6101405273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486101605273dac17f958d2ee523a2206206994597c13d831ec7610180526101c060006003818352015b60206101c0510261014001516101a0526101a0513b61007457600080fd5b60006000604463095ea7b36101e05273bebc44782c7db0a1a60cb6fe97d0b483032ff1c7610200527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610220526101fc60006101a0515af16100d557600080fd5b5b8151600101808352811415610056575b50506116ef56341561000a57600080fd5b6004361015610018576115fc565b600035601c5263384e03db600051141561003657336101405261006c565b63d0b951e860005114156100645760c43560a01c1561005457600080fd5b602060c46101403760005061006c565b600015610533575b60043560a01c1561007c57600080fd5b60c03661016037736b175474e89094c44da98b954eedeac495271d0f6102205273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486102405273dac17f958d2ee523a2206206994597c13d831ec76102605260006024351815610208576020610320602463c66106576102a05260006102c0526102bc6004355afa61010057600080fd5b601f3d1161010d57600080fd5b600050610320516102805260006102805160e05260c052604060c02060043560e05260c052604060c0205415156101be57610280513b61014c57600080fd5b60006000604463095ea7b36102a0526004356102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e0526102bc6000610280515af161019b57600080fd5b600160006102805160e05260c052604060c02060043560e05260c052604060c020555b610280513b6101cc57600080fd5b6000600060646323b872dd6102a052336102c052306102e052602435610300526102bc6000610280515af161020057600080fd5b602435610160525b61028060016003818352015b6024610280516004811061022757600080fd5b60200201356102a0526102a051151561023f57610347565b6001610200526102805160018082101561025857600080fd5b808203905090506102c0526102206102c0516003811061027757600080fd5b60200201516102e0526102e0513b61028e57600080fd5b6000600060646323b872dd61030052336103205230610340526102a0516103605261031c60006102e0515af16102c357600080fd5b600361028051141561032857602061038060246370a0823161030052306103205261031c6102e0515afa6102f657600080fd5b601f3d1161030357600080fd5b600050610380516101a06102c0516003811061031e57600080fd5b6020020152610346565b6102a0516101a06102c0516003811061034057600080fd5b60200201525b5b8151600101808352811415610214575b505061020051156104d257736c3f90f043a72fa612cbac8115ee7e52bde6e4906102805273bebc44782c7db0a1a60cb6fe97d0b483032ff1c73b61039a57600080fd5b600060006084634515cef36102a0526101a0516102c0526101c0516102e0526101e051610300526000610320526102bc600073bebc44782c7db0a1a60cb6fe97d0b483032ff1c75af16103ec57600080fd5b602061032060246370a082316102a052306102c0526102bc610280515afa61041357600080fd5b601f3d1161042057600080fd5b600050610320516101805260006102805160e05260c052604060c02060043560e05260c052604060c0205415156104d157610280513b61045f57600080fd5b60006000604463095ea7b36102a0526004356102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e0526102bc6000610280515af16104ae57600080fd5b600160006102805160e05260c052604060c02060043560e05260c052604060c020555b5b60206103606084630c3e4b5461028052610160516102a052610180516102c05260a4356102e052610140516103005261029c60006004355af161051457600080fd5b601f3d1161052157600080fd5b6000506103605160005260206000f350005b63ad5cc918600051141561054b573361014052610581565b63cbc399e560005114156105795760c43560a01c1561056957600080fd5b602060c461014037600050610581565b600015610900575b60043560a01c1561059157600080fd5b6004353b61059e57600080fd5b6000600060646323b872dd610160523361018052306101a0526024356101c05261017c60006004355af16105d157600080fd5b60e0366101603760406103406064635b36389c610280526024356102a0526044356102c05260006102e05261029c60006004355af161060f57600080fd5b603f3d1161061c57600080fd5b6000506103408051610240528060200151610260525061028060006003818352015b60446001610280518082018080600081121561065657195b607f1c1561066357600080fd5b9050905090506004811061067657600080fd5b6020020135610160610280516003811061068f57600080fd5b60200201525b815160010180835281141561063e575b505073bebc44782c7db0a1a60cb6fe97d0b483032ff1c73b6106c657600080fd5b60006000608463ecb586a561028052610260516102a052610160516102c052610180516102e0526101a0516103005261029c600073bebc44782c7db0a1a60cb6fe97d0b483032ff1c75af161071a57600080fd5b6020610320602463c66106576102a05260006102c0526102bc6004355afa61074157600080fd5b601f3d1161074e57600080fd5b6000506103205161028052610280513b61076757600080fd5b60006000604463a9059cbb6102a052610140516102c052610240516102e0526102bc6000610280515af161079a57600080fd5b610240516101c052736b175474e89094c44da98b954eedeac495271d0f6102a05273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486102c05273dac17f958d2ee523a2206206994597c13d831ec76102e05261030060016003818352015b6102a06103005160018082038080600081121561081257195b607f1c1561081f57600080fd5b9050905090506003811061083257600080fd5b60200201516102805260206103a060246370a0823161032052306103405261033c610280515afa61086257600080fd5b601f3d1161086f57600080fd5b6000506103a0516101c0610300516004811061088a57600080fd5b6020020152610280513b61089d57600080fd5b60006000604463a9059cbb6103205261014051610340526101c061030051600481106108c857600080fd5b60200201516103605261033c6000610280515af16108e557600080fd5b5b81516001018083528114156107f9575b505060806101c0f3005b6329ed2862600051141561091857336101405261094e565b631e700cbb60005114156109465760843560a01c1561093657600080fd5b602060846101403760005061094e565b600015610c27575b60043560a01c1561095e57600080fd5b6044358080600081121561096e57195b607f1c1561097b57600080fd5b9050506004353b61098b57600080fd5b6000600060646323b872dd610160523361018052306101a0526024356101c05261017c60006004355af16109be57600080fd5b6000610160526044351515610a2a576020610260608463081579a5610180526024356101a0526044356101c0526064356101e052610140516102005261019c60006004355af1610a0d57600080fd5b601f3d11610a1a57600080fd5b6000506102605161016052610c18565b736b175474e89094c44da98b954eedeac495271d0f6101805273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486101a05273dac17f958d2ee523a2206206994597c13d831ec76101c052610180604435600180820380806000811215610a8d57195b607f1c15610a9a57600080fd5b90509050905060038110610aad57600080fd5b60200201516101e05260206102e0608463081579a56102005260243561022052600161024052600061026052306102805261021c60006004355af1610af157600080fd5b601f3d11610afe57600080fd5b6000506102e0516101605273bebc44782c7db0a1a60cb6fe97d0b483032ff1c73b610b2857600080fd5b600060006064631a4d01d2610200526101605161022052604435600180820380806000811215610b5457195b607f1c15610b6157600080fd5b905090509050610240526064356102605261021c600073bebc44782c7db0a1a60cb6fe97d0b483032ff1c75af1610b9757600080fd5b602061028060246370a0823161020052306102205261021c6101e0515afa610bbe57600080fd5b601f3d11610bcb57600080fd5b60005061028051610160526101e0513b610be457600080fd5b60006000604463a9059cbb610200526101405161022052610160516102405261021c60006101e0515af1610c1757600080fd5b5b6101605160005260206000f350005b63ac24f7716000511415610c3f573361014052610c75565b634329c8cc6000511415610c6d5760c43560a01c15610c5d57600080fd5b602060c461014037600050610c75565b60001561131a575b60043560a01c15610c8557600080fd5b60206101e0600463ddca3f436101805261019c73bebc44782c7db0a1a60cb6fe97d0b483032ff1c75afa610cb857600080fd5b601f3d11610cc557600080fd5b6000506101e05160038082028215828483041417610ce257600080fd5b80905090509050600880820490509050610160526101608051610160516402540be4008082028215828483041417610d1957600080fd5b809050905090506402540be40080820490509050818183011015610d3c57600080fd5b808201905090508152506004353b610d5357600080fd5b6000600060646323b872dd61018052336101a052306101c05260a4356101e05261019c60006004355af1610d8657600080fd5b60c0366101803761024060006003818352015b602460016102405180820180806000811215610db157195b607f1c15610dbe57600080fd5b90509050905060048110610dd157600080fd5b6020020135610260526000610260511815610e0a57610260516101a06102405160038110610dfe57600080fd5b60200201526001610180525b5b8151600101808352811415610d99575b5050602435610200526101805115610efd5760206103206084633883e119610240526101a051610260526101c051610280526101e0516102a05260006102c05261025c73bebc44782c7db0a1a60cb6fe97d0b483032ff1c75afa610e7e57600080fd5b601f3d11610e8b57600080fd5b6000506103205161022052610220805161022051610160518082028215828483041417610eb757600080fd5b809050905090506402540be400808204905090506001818183011015610edc57600080fd5b80820190509050818183011015610ef257600080fd5b808201905090508152505b6020610320606463e3103273610260526102005161028052610220516102a05260a4356102c05261027c60006004355af1610f3757600080fd5b601f3d11610f4457600080fd5b60005061032051610240526004353b610f5c57600080fd5b60006000604463a9059cbb61026052336102805260a4356102405180821015610f8457600080fd5b808203905090506102a05261027c60006004355af1610fa257600080fd5b61018051156112805773bebc44782c7db0a1a60cb6fe97d0b483032ff1c73b610fca57600080fd5b600060006084639fdaea0c610260526101a051610280526101c0516102a0526101e0516102c052610220516102e05261027c600073bebc44782c7db0a1a60cb6fe97d0b483032ff1c75af161101e57600080fd5b736c3f90f043a72fa612cbac8115ee7e52bde6e49061026052602061032060246370a082316102a052306102c0526102bc610260515afa61105e57600080fd5b601f3d1161106b57600080fd5b600050610320516102805260006102805111156111955760006102605160e05260c052604060c02060043560e05260c052604060c02054151561112857610260513b6110b657600080fd5b60006000604463095ea7b36102a0526004356102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e0526102bc6000610260515af161110557600080fd5b600160006102605160e05260c052604060c02060043560e05260c052604060c020555b610240805160206103806084630c3e4b546102a05260006102c052610280516102e05260006103005233610320526102bc60006004355af161116957600080fd5b601f3d1161117657600080fd5b600050610380518082101561118a57600080fd5b808203905090508152505b736b175474e89094c44da98b954eedeac495271d0f6102a05273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486102c05273dac17f958d2ee523a2206206994597c13d831ec76102e05261030060006003818352015b6102a0610300516003811061120057600080fd5b60200201513b61120f57600080fd5b60006000604463a9059cbb6103205261014051610340526101a0610300516003811061123a57600080fd5b60200201516103605261033c60006102a0610300516003811061125c57600080fd5b60200201515af161126c57600080fd5b5b81516001018083528114156111ec575b50505b6000602435111561130b576020610300602463c66106576102805260006102a05261029c6004355afa6112b257600080fd5b601f3d116112bf57600080fd5b6000506103005161026052610260513b6112d857600080fd5b60006000604463a9059cbb61028052610140516102a0526024356102c05261029c6000610260515af161130a57600080fd5b5b6102405160005260206000f350005b6341b028f360005114156114815760043560a01c1561133857600080fd5b6044358080600081121561134857195b607f1c1561135557600080fd5b905050600160443512156113b45760206101e0604463cc2b27d761014052602435610160526044356101805261015c6004355afa61139257600080fd5b601f3d1161139f57600080fd5b6000506101e05160005260206000f35061147f565b6020610200604463cc2b27d7610160526024356101805260016101a05261017c6004355afa6113e257600080fd5b601f3d116113ef57600080fd5b60005061020051610140526020610200604463cc2b27d761016052610140516101805260443560018082038080600081121561142757195b607f1c1561143457600080fd5b9050905090506101a05261017c73bebc44782c7db0a1a60cb6fe97d0b483032ff1c75afa61146157600080fd5b601f3d1161146e57600080fd5b6000506102005160005260206000f3505b005b63861cdef060005114156115fb5760043560a01c1561149f57600080fd5b60a43560011c156114af57600080fd5b60a03661014037602435610140526101e060006003818352015b60246101e0516001808201808060008112156114e157195b607f1c156114ee57600080fd5b9050905090506004811061150157600080fd5b60200201356101806101e0516003811061151a57600080fd5b60200201525b81516001018083528114156114c9575b505060206102e06084633883e1196102005261018051610220526101a051610240526101c0516102605260a4356102805261021c73bebc44782c7db0a1a60cb6fe97d0b483032ff1c75afa61158457600080fd5b601f3d1161159157600080fd5b6000506102e0516101e0526101e0516101605260206102c0606463ed8e84f3610200526101405161022052610160516102405260a4356102605261021c6004355afa6115dc57600080fd5b601f3d116115e957600080fd5b6000506102c05160005260206000f350005b5b60006000fd5b6100ed6116ef036100ed6000396100ed6116ef036000f3

Deployed Bytecode

0x341561000a57600080fd5b6004361015610018576115fc565b600035601c5263384e03db600051141561003657336101405261006c565b63d0b951e860005114156100645760c43560a01c1561005457600080fd5b602060c46101403760005061006c565b600015610533575b60043560a01c1561007c57600080fd5b60c03661016037736b175474e89094c44da98b954eedeac495271d0f6102205273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486102405273dac17f958d2ee523a2206206994597c13d831ec76102605260006024351815610208576020610320602463c66106576102a05260006102c0526102bc6004355afa61010057600080fd5b601f3d1161010d57600080fd5b600050610320516102805260006102805160e05260c052604060c02060043560e05260c052604060c0205415156101be57610280513b61014c57600080fd5b60006000604463095ea7b36102a0526004356102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e0526102bc6000610280515af161019b57600080fd5b600160006102805160e05260c052604060c02060043560e05260c052604060c020555b610280513b6101cc57600080fd5b6000600060646323b872dd6102a052336102c052306102e052602435610300526102bc6000610280515af161020057600080fd5b602435610160525b61028060016003818352015b6024610280516004811061022757600080fd5b60200201356102a0526102a051151561023f57610347565b6001610200526102805160018082101561025857600080fd5b808203905090506102c0526102206102c0516003811061027757600080fd5b60200201516102e0526102e0513b61028e57600080fd5b6000600060646323b872dd61030052336103205230610340526102a0516103605261031c60006102e0515af16102c357600080fd5b600361028051141561032857602061038060246370a0823161030052306103205261031c6102e0515afa6102f657600080fd5b601f3d1161030357600080fd5b600050610380516101a06102c0516003811061031e57600080fd5b6020020152610346565b6102a0516101a06102c0516003811061034057600080fd5b60200201525b5b8151600101808352811415610214575b505061020051156104d257736c3f90f043a72fa612cbac8115ee7e52bde6e4906102805273bebc44782c7db0a1a60cb6fe97d0b483032ff1c73b61039a57600080fd5b600060006084634515cef36102a0526101a0516102c0526101c0516102e0526101e051610300526000610320526102bc600073bebc44782c7db0a1a60cb6fe97d0b483032ff1c75af16103ec57600080fd5b602061032060246370a082316102a052306102c0526102bc610280515afa61041357600080fd5b601f3d1161042057600080fd5b600050610320516101805260006102805160e05260c052604060c02060043560e05260c052604060c0205415156104d157610280513b61045f57600080fd5b60006000604463095ea7b36102a0526004356102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e0526102bc6000610280515af16104ae57600080fd5b600160006102805160e05260c052604060c02060043560e05260c052604060c020555b5b60206103606084630c3e4b5461028052610160516102a052610180516102c05260a4356102e052610140516103005261029c60006004355af161051457600080fd5b601f3d1161052157600080fd5b6000506103605160005260206000f350005b63ad5cc918600051141561054b573361014052610581565b63cbc399e560005114156105795760c43560a01c1561056957600080fd5b602060c461014037600050610581565b600015610900575b60043560a01c1561059157600080fd5b6004353b61059e57600080fd5b6000600060646323b872dd610160523361018052306101a0526024356101c05261017c60006004355af16105d157600080fd5b60e0366101603760406103406064635b36389c610280526024356102a0526044356102c05260006102e05261029c60006004355af161060f57600080fd5b603f3d1161061c57600080fd5b6000506103408051610240528060200151610260525061028060006003818352015b60446001610280518082018080600081121561065657195b607f1c1561066357600080fd5b9050905090506004811061067657600080fd5b6020020135610160610280516003811061068f57600080fd5b60200201525b815160010180835281141561063e575b505073bebc44782c7db0a1a60cb6fe97d0b483032ff1c73b6106c657600080fd5b60006000608463ecb586a561028052610260516102a052610160516102c052610180516102e0526101a0516103005261029c600073bebc44782c7db0a1a60cb6fe97d0b483032ff1c75af161071a57600080fd5b6020610320602463c66106576102a05260006102c0526102bc6004355afa61074157600080fd5b601f3d1161074e57600080fd5b6000506103205161028052610280513b61076757600080fd5b60006000604463a9059cbb6102a052610140516102c052610240516102e0526102bc6000610280515af161079a57600080fd5b610240516101c052736b175474e89094c44da98b954eedeac495271d0f6102a05273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486102c05273dac17f958d2ee523a2206206994597c13d831ec76102e05261030060016003818352015b6102a06103005160018082038080600081121561081257195b607f1c1561081f57600080fd5b9050905090506003811061083257600080fd5b60200201516102805260206103a060246370a0823161032052306103405261033c610280515afa61086257600080fd5b601f3d1161086f57600080fd5b6000506103a0516101c0610300516004811061088a57600080fd5b6020020152610280513b61089d57600080fd5b60006000604463a9059cbb6103205261014051610340526101c061030051600481106108c857600080fd5b60200201516103605261033c6000610280515af16108e557600080fd5b5b81516001018083528114156107f9575b505060806101c0f3005b6329ed2862600051141561091857336101405261094e565b631e700cbb60005114156109465760843560a01c1561093657600080fd5b602060846101403760005061094e565b600015610c27575b60043560a01c1561095e57600080fd5b6044358080600081121561096e57195b607f1c1561097b57600080fd5b9050506004353b61098b57600080fd5b6000600060646323b872dd610160523361018052306101a0526024356101c05261017c60006004355af16109be57600080fd5b6000610160526044351515610a2a576020610260608463081579a5610180526024356101a0526044356101c0526064356101e052610140516102005261019c60006004355af1610a0d57600080fd5b601f3d11610a1a57600080fd5b6000506102605161016052610c18565b736b175474e89094c44da98b954eedeac495271d0f6101805273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486101a05273dac17f958d2ee523a2206206994597c13d831ec76101c052610180604435600180820380806000811215610a8d57195b607f1c15610a9a57600080fd5b90509050905060038110610aad57600080fd5b60200201516101e05260206102e0608463081579a56102005260243561022052600161024052600061026052306102805261021c60006004355af1610af157600080fd5b601f3d11610afe57600080fd5b6000506102e0516101605273bebc44782c7db0a1a60cb6fe97d0b483032ff1c73b610b2857600080fd5b600060006064631a4d01d2610200526101605161022052604435600180820380806000811215610b5457195b607f1c15610b6157600080fd5b905090509050610240526064356102605261021c600073bebc44782c7db0a1a60cb6fe97d0b483032ff1c75af1610b9757600080fd5b602061028060246370a0823161020052306102205261021c6101e0515afa610bbe57600080fd5b601f3d11610bcb57600080fd5b60005061028051610160526101e0513b610be457600080fd5b60006000604463a9059cbb610200526101405161022052610160516102405261021c60006101e0515af1610c1757600080fd5b5b6101605160005260206000f350005b63ac24f7716000511415610c3f573361014052610c75565b634329c8cc6000511415610c6d5760c43560a01c15610c5d57600080fd5b602060c461014037600050610c75565b60001561131a575b60043560a01c15610c8557600080fd5b60206101e0600463ddca3f436101805261019c73bebc44782c7db0a1a60cb6fe97d0b483032ff1c75afa610cb857600080fd5b601f3d11610cc557600080fd5b6000506101e05160038082028215828483041417610ce257600080fd5b80905090509050600880820490509050610160526101608051610160516402540be4008082028215828483041417610d1957600080fd5b809050905090506402540be40080820490509050818183011015610d3c57600080fd5b808201905090508152506004353b610d5357600080fd5b6000600060646323b872dd61018052336101a052306101c05260a4356101e05261019c60006004355af1610d8657600080fd5b60c0366101803761024060006003818352015b602460016102405180820180806000811215610db157195b607f1c15610dbe57600080fd5b90509050905060048110610dd157600080fd5b6020020135610260526000610260511815610e0a57610260516101a06102405160038110610dfe57600080fd5b60200201526001610180525b5b8151600101808352811415610d99575b5050602435610200526101805115610efd5760206103206084633883e119610240526101a051610260526101c051610280526101e0516102a05260006102c05261025c73bebc44782c7db0a1a60cb6fe97d0b483032ff1c75afa610e7e57600080fd5b601f3d11610e8b57600080fd5b6000506103205161022052610220805161022051610160518082028215828483041417610eb757600080fd5b809050905090506402540be400808204905090506001818183011015610edc57600080fd5b80820190509050818183011015610ef257600080fd5b808201905090508152505b6020610320606463e3103273610260526102005161028052610220516102a05260a4356102c05261027c60006004355af1610f3757600080fd5b601f3d11610f4457600080fd5b60005061032051610240526004353b610f5c57600080fd5b60006000604463a9059cbb61026052336102805260a4356102405180821015610f8457600080fd5b808203905090506102a05261027c60006004355af1610fa257600080fd5b61018051156112805773bebc44782c7db0a1a60cb6fe97d0b483032ff1c73b610fca57600080fd5b600060006084639fdaea0c610260526101a051610280526101c0516102a0526101e0516102c052610220516102e05261027c600073bebc44782c7db0a1a60cb6fe97d0b483032ff1c75af161101e57600080fd5b736c3f90f043a72fa612cbac8115ee7e52bde6e49061026052602061032060246370a082316102a052306102c0526102bc610260515afa61105e57600080fd5b601f3d1161106b57600080fd5b600050610320516102805260006102805111156111955760006102605160e05260c052604060c02060043560e05260c052604060c02054151561112857610260513b6110b657600080fd5b60006000604463095ea7b36102a0526004356102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e0526102bc6000610260515af161110557600080fd5b600160006102605160e05260c052604060c02060043560e05260c052604060c020555b610240805160206103806084630c3e4b546102a05260006102c052610280516102e05260006103005233610320526102bc60006004355af161116957600080fd5b601f3d1161117657600080fd5b600050610380518082101561118a57600080fd5b808203905090508152505b736b175474e89094c44da98b954eedeac495271d0f6102a05273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486102c05273dac17f958d2ee523a2206206994597c13d831ec76102e05261030060006003818352015b6102a0610300516003811061120057600080fd5b60200201513b61120f57600080fd5b60006000604463a9059cbb6103205261014051610340526101a0610300516003811061123a57600080fd5b60200201516103605261033c60006102a0610300516003811061125c57600080fd5b60200201515af161126c57600080fd5b5b81516001018083528114156111ec575b50505b6000602435111561130b576020610300602463c66106576102805260006102a05261029c6004355afa6112b257600080fd5b601f3d116112bf57600080fd5b6000506103005161026052610260513b6112d857600080fd5b60006000604463a9059cbb61028052610140516102a0526024356102c05261029c6000610260515af161130a57600080fd5b5b6102405160005260206000f350005b6341b028f360005114156114815760043560a01c1561133857600080fd5b6044358080600081121561134857195b607f1c1561135557600080fd5b905050600160443512156113b45760206101e0604463cc2b27d761014052602435610160526044356101805261015c6004355afa61139257600080fd5b601f3d1161139f57600080fd5b6000506101e05160005260206000f35061147f565b6020610200604463cc2b27d7610160526024356101805260016101a05261017c6004355afa6113e257600080fd5b601f3d116113ef57600080fd5b60005061020051610140526020610200604463cc2b27d761016052610140516101805260443560018082038080600081121561142757195b607f1c1561143457600080fd5b9050905090506101a05261017c73bebc44782c7db0a1a60cb6fe97d0b483032ff1c75afa61146157600080fd5b601f3d1161146e57600080fd5b6000506102005160005260206000f3505b005b63861cdef060005114156115fb5760043560a01c1561149f57600080fd5b60a43560011c156114af57600080fd5b60a03661014037602435610140526101e060006003818352015b60246101e0516001808201808060008112156114e157195b607f1c156114ee57600080fd5b9050905090506004811061150157600080fd5b60200201356101806101e0516003811061151a57600080fd5b60200201525b81516001018083528114156114c9575b505060206102e06084633883e1196102005261018051610220526101a051610240526101c0516102605260a4356102805261021c73bebc44782c7db0a1a60cb6fe97d0b483032ff1c75afa61158457600080fd5b601f3d1161159157600080fd5b6000506102e0516101e0526101e0516101605260206102c0606463ed8e84f3610200526101405161022052610160516102405260a4356102605261021c6004355afa6115dc57600080fd5b601f3d116115e957600080fd5b6000506102c05160005260206000f350005b5b60006000fd

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.