Contract 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 3

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe8149e895273d9dd509eba7ffd1ae0e641eaabdf7fdac42a903624561876f17cAdd_liquidity196750122022-08-08 3:26:151 hr 16 mins ago0x2c4287b79b15ae63fbaacd85a0302f6f172182fa IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000067354444 ETH
0x12a030998b8e854db7b0444a8c6b7ab25fe410e14717ab11cd339cbde159d09fAdd_liquidity196687052022-08-08 1:40:313 hrs 2 mins ago0x960a04f4edb850f0b2ba4970115112aa75b3863e IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000066399751 ETH
0xe9a0df06c6194b14de27bd442bd8e8ac10eb04bc2f7231e20592164d9bdd1e9cRemove_liquidity...196648572022-08-08 0:26:064 hrs 16 mins ago0x0f101ccdd4673316933339c8fba5fc3b262cf4cb IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000064120399 ETH
0x3f39b466156baf53ad93b016670c3547fa8ca6561b005cbbff6efac5c21f57faAdd_liquidity196610732022-08-07 23:03:505 hrs 39 mins ago0x1c379a16ee5a125e3a69bd90b35cace30c7fd9fc IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000074848421 ETH
0xfe68157652384183d0553232391e97b018272a74d7527020565df939083c6167Remove_liquidity...196572712022-08-07 21:38:347 hrs 4 mins ago0xf18210b928bc3cd75966329429131a7fd6d1b667 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000063967589 ETH
0x751c300cce8a515743dc326e2ef04fb7597d2d5dba2148cf57a759d625f35e68Remove_liquidity...196567662022-08-07 21:28:587 hrs 14 mins ago0xf45df30726b20975f02b5453c759da2f00984e9f IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000069180701 ETH
0xd9ee7f1b524594b90c28b9d380080d92766e145bf46edbd70c1fdc297053f83fAdd_liquidity196564682022-08-07 21:24:447 hrs 18 mins ago0x7daa2518dc4782775318a4a1336f7e59259706fa IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000073427041 ETH
0xe5ff73ea456b694dd4d717ca0fc54fc8eaf04db1469d099a8366a73079525923Remove_liquidity...196553942022-08-07 21:03:277 hrs 39 mins ago0x18ac37d6390219792d2ac50b4ce8213a09d42fed IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000065303674 ETH
0x8254b8adbe43563f01f49f07cc6aa6993094ad848cd8dcfc69b6157445761ac0Add_liquidity196502372022-08-07 19:04:089 hrs 38 mins ago0xa2e3a702fae187129ee76a43b7a2485f1e6854ad IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.00007029527 ETH
0xa5546ebff941f665adedb3736959ee19fefdfe16bbb735b27eb5622636ba911eAdd_liquidity196495392022-08-07 18:49:419 hrs 53 mins ago0x68aad5d4c4dc1bd077cf424d1739ef33d0328090 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000067004014 ETH
0x265acd642762115029b0c3b7d05b81b1cfa2704ba04509b6042f00e0419b0bb9Remove_liquidity...196493292022-08-07 18:45:519 hrs 57 mins ago0xd239cb8a45e5d10bb2bad4b7d061d751adfb99de IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000061387329 ETH
0x0e1bf49e4095c773eb7d5df681d7f9b9bdd44c1988add77f10afc026a02b2df8Add_liquidity196478962022-08-07 18:13:5210 hrs 29 mins ago0x5bcbaba9704f625bdb7eb1d8a3c305737916e6ff IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000066317207 ETH
0x04ec052af476504c2e16d29ec70c57bb0e7fd53378386e67704b621356ca6845Remove_liquidity...196478522022-08-07 18:13:5210 hrs 29 mins ago0x68aad5d4c4dc1bd077cf424d1739ef33d0328090 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000066444632 ETH
0x8a8063b844bb537581f6e817954763f1c1a9a2880d4099603ee721ea3dea7b50Add_liquidity196443362022-08-07 17:02:3411 hrs 40 mins ago0x9f51bbb886d1340c52b4d077527762e64603f95e IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.00007110355 ETH
0x3f08da036e469197d5ad6b734c268f96573eb62e249f7a921ab8b616f171a958Add_liquidity196441972022-08-07 16:59:3211 hrs 43 mins ago0x2b74a06748d1c6032cf80249d69b2a05ef1eb516 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000071101679 ETH
0x59fb8f8f4c251bb87f4f68d9cb09695fcf019cff4cc63583ea496ce2ad26adacRemove_liquidity196440182022-08-07 16:56:4911 hrs 46 mins ago0x532ac54759f45514f5303f3093f294fde9f22c7a IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.00006340628 ETH
0x4027303725d8189f1b5a34d49384957b42d35fb8c7c8ee962c95ed587827fe27Remove_liquidity...196426062022-08-07 16:34:1212 hrs 8 mins ago0x7c16f5513c458cfa2c6d2d55d269d32edc370a40 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000052041548 ETH
0xd4144d0dd8f86ec07ee059d0e130fd2ccd885dd0cff1b77a9cd5db744b4bf7a4Add_liquidity196414852022-08-07 16:16:3212 hrs 26 mins ago0x5350f8f1d7cd800ec96d790e63e0f38b0ccdbc02 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000056269762 ETH
0x8ac0b15bcdf6de4b3dcb8b27f0f037802e71134113040613df4e9a9c19dceb87Add_liquidity196410302022-08-07 16:09:5912 hrs 33 mins ago0xfe86e169775846cf2b630af737fc57a861a13e64 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000056697848 ETH
0xf94d70a370f452167373ecc5db5779a3554b3a858eaba7982d535d70787d9e3aAdd_liquidity196406042022-08-07 16:02:0512 hrs 40 mins ago0x3f5fc40d7c5a6f9e1ed13af4274c8d14e49e32b2 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000053046521 ETH
0x067a448c2e36244e1a3bc4c3fab1ff4b1add1ca5da4e573cd8012f9ab74699d3Add_liquidity196400752022-08-07 15:53:3412 hrs 49 mins ago0xa6e3475e2d4a9937b61be131407598ed188b54f3 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.0000520198 ETH
0xbf8fe23649d8d4359f2ac37462761ab5d06b63a423f00905cfefb67d532eac81Add_liquidity196387642022-08-07 15:35:3713 hrs 7 mins ago0x5d488cc1e19d19debcfaa17bec2d525616e06a82 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000052053975 ETH
0x25a0ba527d5e106588fbc7bdd44690cd9ff0c8999af22eee90f106e49c642020Add_liquidity196380732022-08-07 15:24:0613 hrs 18 mins ago0x5d488cc1e19d19debcfaa17bec2d525616e06a82 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000053269486 ETH
0x369c19d2189ac7109a73207e95b5026225b0e935d6ec0939b95554c0979d63a8Add_liquidity196302492022-08-07 13:43:2514 hrs 59 mins ago0xfa58b257bec80af07576be4ffd92229fb4e8a825 IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000047583883 ETH
0x8f183ba79df874f3c248b180824e98ec13cfd59f241e239fd212cb52d6546c7dAdd_liquidity196298492022-08-07 13:38:4915 hrs 4 mins ago0x34d967257dbe2b09598f40b7cc290e0b40ee6e6c IN  0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870 ETH0.000047738526 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xe8149e895273d9dd509eba7ffd1ae0e641eaabdf7fdac42a903624561876f17c196750122022-08-08 3:26:151 hr 16 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870x30df229cefa463e991e29d42db0bae2e122b2ac70 ETH
0xe8149e895273d9dd509eba7ffd1ae0e641eaabdf7fdac42a903624561876f17c196750122022-08-08 3:26:151 hr 16 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0x7f90122bf0700f9e7e1f688fe926940e8839f3530 ETH
0xe8149e895273d9dd509eba7ffd1ae0e641eaabdf7fdac42a903624561876f17c196750122022-08-08 3:26:151 hr 16 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0x7f90122bf0700f9e7e1f688fe926940e8839f3530 ETH
0xe8149e895273d9dd509eba7ffd1ae0e641eaabdf7fdac42a903624561876f17c196750122022-08-08 3:26:151 hr 16 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0xe8149e895273d9dd509eba7ffd1ae0e641eaabdf7fdac42a903624561876f17c196750122022-08-08 3:26:151 hr 16 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0x12a030998b8e854db7b0444a8c6b7ab25fe410e14717ab11cd339cbde159d09f196687052022-08-08 1:40:313 hrs 2 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870x30df229cefa463e991e29d42db0bae2e122b2ac70 ETH
0x12a030998b8e854db7b0444a8c6b7ab25fe410e14717ab11cd339cbde159d09f196687052022-08-08 1:40:313 hrs 2 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0x7f90122bf0700f9e7e1f688fe926940e8839f3530 ETH
0x12a030998b8e854db7b0444a8c6b7ab25fe410e14717ab11cd339cbde159d09f196687052022-08-08 1:40:313 hrs 2 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0x7f90122bf0700f9e7e1f688fe926940e8839f3530 ETH
0x12a030998b8e854db7b0444a8c6b7ab25fe410e14717ab11cd339cbde159d09f196687052022-08-08 1:40:313 hrs 2 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0x12a030998b8e854db7b0444a8c6b7ab25fe410e14717ab11cd339cbde159d09f196687052022-08-08 1:40:313 hrs 2 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0xe9a0df06c6194b14de27bd442bd8e8ac10eb04bc2f7231e20592164d9bdd1e9c196648572022-08-08 0:26:064 hrs 16 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0xe9a0df06c6194b14de27bd442bd8e8ac10eb04bc2f7231e20592164d9bdd1e9c196648572022-08-08 0:26:064 hrs 16 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0xe9a0df06c6194b14de27bd442bd8e8ac10eb04bc2f7231e20592164d9bdd1e9c196648572022-08-08 0:26:064 hrs 16 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0x7f90122bf0700f9e7e1f688fe926940e8839f3530 ETH
0xe9a0df06c6194b14de27bd442bd8e8ac10eb04bc2f7231e20592164d9bdd1e9c196648572022-08-08 0:26:064 hrs 16 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870x30df229cefa463e991e29d42db0bae2e122b2ac70 ETH
0xe9a0df06c6194b14de27bd442bd8e8ac10eb04bc2f7231e20592164d9bdd1e9c196648572022-08-08 0:26:064 hrs 16 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870x30df229cefa463e991e29d42db0bae2e122b2ac70 ETH
0x3f39b466156baf53ad93b016670c3547fa8ca6561b005cbbff6efac5c21f57fa196610732022-08-07 23:03:505 hrs 39 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870x30df229cefa463e991e29d42db0bae2e122b2ac70 ETH
0x3f39b466156baf53ad93b016670c3547fa8ca6561b005cbbff6efac5c21f57fa196610732022-08-07 23:03:505 hrs 39 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0x7f90122bf0700f9e7e1f688fe926940e8839f3530 ETH
0x3f39b466156baf53ad93b016670c3547fa8ca6561b005cbbff6efac5c21f57fa196610732022-08-07 23:03:505 hrs 39 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0x7f90122bf0700f9e7e1f688fe926940e8839f3530 ETH
0x3f39b466156baf53ad93b016670c3547fa8ca6561b005cbbff6efac5c21f57fa196610732022-08-07 23:03:505 hrs 39 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0x3f39b466156baf53ad93b016670c3547fa8ca6561b005cbbff6efac5c21f57fa196610732022-08-07 23:03:505 hrs 39 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0xfe68157652384183d0553232391e97b018272a74d7527020565df939083c6167196572712022-08-07 21:38:347 hrs 4 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb90 ETH
0xfe68157652384183d0553232391e97b018272a74d7527020565df939083c6167196572712022-08-07 21:38:347 hrs 4 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb90 ETH
0xfe68157652384183d0553232391e97b018272a74d7527020565df939083c6167196572712022-08-07 21:38:347 hrs 4 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba30287 0x7f90122bf0700f9e7e1f688fe926940e8839f3530 ETH
0xfe68157652384183d0553232391e97b018272a74d7527020565df939083c6167196572712022-08-07 21:38:347 hrs 4 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870x30df229cefa463e991e29d42db0bae2e122b2ac70 ETH
0xfe68157652384183d0553232391e97b018272a74d7527020565df939083c6167196572712022-08-07 21:38:347 hrs 4 mins ago 0x7544fe3d184b6b55d6b36c3fca1157ee0ba302870x30df229cefa463e991e29d42db0bae2e122b2ac70 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.2.16

Optimization Enabled:
N/A

Other Settings:
, None license

Contract Source Code (Vyper language format)

# @version 0.2.16
"""
@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_N_COINS: constant(int128) = 2
BASE_POOL: constant(address) = 0x7f90122BF0700F9E7e1F688fe926940E8839F353
BASE_LP_TOKEN: constant(address) = 0x7f90122BF0700F9E7e1F688fe926940E8839F353
BASE_COINS: constant(address[BASE_N_COINS]) =[
    0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8,
    0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9,
]

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 ABI

[{"stateMutability":"nonpayable","type":"constructor","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"add_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_deposit_amounts","type":"uint256[3]"},{"name":"_min_mint_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"add_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_deposit_amounts","type":"uint256[3]"},{"name":"_min_mint_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_burn_amount","type":"uint256"},{"name":"_min_amounts","type":"uint256[3]"}],"outputs":[{"name":"","type":"uint256[3]"}]},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_burn_amount","type":"uint256"},{"name":"_min_amounts","type":"uint256[3]"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256[3]"}]},{"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"}]},{"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"}]},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_imbalance","inputs":[{"name":"_pool","type":"address"},{"name":"_amounts","type":"uint256[3]"},{"name":"_max_burn_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_imbalance","inputs":[{"name":"_pool","type":"address"},{"name":"_amounts","type":"uint256[3]"},{"name":"_max_burn_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"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":5753},{"stateMutability":"view","type":"function","name":"calc_token_amount","inputs":[{"name":"_pool","type":"address"},{"name":"_amounts","type":"uint256[3]"},{"name":"_is_deposit","type":"bool"}],"outputs":[{"name":"","type":"uint256"}],"gas":6289}]

73ff970a61a04b1ca14834a43f5de4533ebddb5cc86101805273fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96101a05261016060006002818352015b60206101605102610180015161014052610140513b15611baf5760006000604463095ea7b36101c052737f90122bf0700f9e7e1f688fe926940e8839f3536101e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610200526101dc6000610140515af115611baf575b815160010180835281141561003d575b5050611b9756600436101561000d57611ac0565b600035601c5260005134611ac65763a318517981141561003157336101405261005c565b63e07a10368114156100575760a43560a01c611ac657602060a46101403760005061005c565b6105f3565b60043560a01c611ac65760a0366101603773ff970a61a04b1ca14834a43f5de4533ebddb5cc86102005273fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9610220526000602435181561029b5760206102e0602463c66106576102605260006102805261027c6004355afa15611ac657601f3d1115611ac6576000506102e0516102405260006102405160e05260c052604060c02060043560e05260c052604060c0205461017d57610240513b15611ac65760006000604463095ea7b361026052600435610280527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102a05261027c6000610240515af115611ac657600160006102405160e05260c052604060c02060043560e05260c052604060c020555b6323b872dd6102c45260046102e4808080338152505060208101905080803081525050602081019050808060243581525050606090509050016102c0526102c08051602001806103608284600060045af115611ac65750506020610420610360516103806000610240515af115611ac65760203d808211156101ff5780610201565b815b90509050610400526104008051602001806102608284600060045af115611ac65750506000610260511815610263576102608060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b602061034060246370a082316102c052306102e0526102dc610240515afa15611ac657601f3d1115611ac65760005061034051610160525b61024060016002818352015b6024610240516003811015611ac657602002013561026052610260516102cc57610433565b60016101e052610240516001808210611ac6578082039050905061028052610200610280516002811015611ac65760200201516102a0526323b872dd6103245260046103448080803381525050602081019050808030815250506020810190508080610260518152505060609050905001610320526103208051602001806103c08284600060045af115611ac657505060206104806103c0516103e060006102a0515af115611ac65760203d808211156103865780610388565b815b90509050610460526104608051602001806102c08284600060045af115611ac657505060006102c05118156103ea576102c08060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b60206103a060246370a0823161032052306103405261033c6102a0515afa15611ac657601f3d1115611ac6576000506103a0516101a0610280516002811015611ac65760200201525b81516001018083528114156102a7575b50506101e0511561059c57737f90122bf0700f9e7e1f688fe926940e8839f35361024052737f90122bf0700f9e7e1f688fe926940e8839f3533b15611ac657600060006064630b4c7e4d610260526101a051610280526101c0516102a05260006102c05261027c6000737f90122bf0700f9e7e1f688fe926940e8839f3535af115611ac65760206102e060246370a0823161026052306102805261027c610240515afa15611ac657601f3d1115611ac6576000506102e0516101805260006102405160e05260c052604060c02060043560e05260c052604060c0205461059b57610240513b15611ac65760006000604463095ea7b361026052600435610280527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102a05261027c6000610240515af115611ac657600160006102405160e05260c052604060c02060043560e05260c052604060c020555b5b60206103206084630c3e4b5461024052610160516102605261018051610280526084356102a052610140516102c05261025c60006004355af115611ac657601f3d1115611ac6576000506103205160005260206000f35b638fa892a6811415610609573361014052610634565b6311d4b6aa81141561062f5760a43560a01c611ac657602060a461014037600050610634565b610b86565b60043560a01c611ac6576323b872dd6101c45260046101e4808080338152505060208101905080803081525050602081019050808060243581525050606090509050016101c0526101c08051602001806102608284600060045af115611ac657505060206103206102605161028060006004355af115611ac65760203d808211156106bf57806106c1565b815b90509050610300526103008051602001806101608284600060045af115611ac65750506000610160511815610723576101608060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b60e0366101c0376004353b15611ac657600060006064635b36389c6102c0526024356102e05260006102a052604435610300526102a051610320526102dc60006004355af115611ac6576040366102a0376102e060006002818352015b60206103a0602463c6610657610320526102e0516103405261033c6004355afa15611ac657601f3d1115611ac6576000506103a05161030052610300516102a06102e0516002811015611ac657602002015260206103a060246370a0823161032052306103405261033c610300515afa15611ac657601f3d1115611ac6576000506103a0516102606102e0516002811015611ac65760200201525b8151600101808352811415610780575b50506102e060006002818352015b604460016102e0518181830110611ac657808201905090506003811015611ac65760200201356101c06102e0516002811015611ac65760200201525b8151600101808352811415610839575b5050737f90122bf0700f9e7e1f688fe926940e8839f3533b15611ac657600060006064635b36389c6102e05261028051610300526101c051610320526101e051610340526102fc6000737f90122bf0700f9e7e1f688fe926940e8839f3535af115611ac65763a9059cbb6102e4526004610304808080610140518152505060208101905080806102605181525050604090509050016102e0526102e08051602001806103608284600060045af115611ac657505060206104006103605161038060006102a0515af115611ac65760203d808211156109635780610965565b815b905090506103e0526103e08051602001806101608284600060045af115611ac657505060006101605118156109c7576101608060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b610260516102005273ff970a61a04b1ca14834a43f5de4533ebddb5cc86102e05273fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96103005261032060016002818352015b6102e0610320516001808210611ac657808203905090506002811015611ac65760200201516103405260206103e060246370a0823161036052306103805261037c610340515afa15611ac657601f3d1115611ac6576000506103e051610200610320516003811015611ac657602002015263a9059cbb61036452600461038480808061014051815250506020810190508080610200610320516003811015611ac65760200201518152505060409050905001610360526103608051602001806103e08284600060045af115611ac657505060206104806103e0516104006000610340515af115611ac65760203d80821115610b085780610b0a565b815b90509050610460526104608051602001806101608284600060045af115611ac65750506000610160511815610b6c576101608060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b5b8151600101808352811415610a0d575b50506060610200f35b6329ed2862811415610b9c573361014052610bc7565b631e700cbb811415610bc25760843560a01c611ac6576020608461014037600050610bc7565b610f6c565b60043560a01c611ac65760443580607f1d8160801d1415611ac657809050506323b872dd6101c45260046101e4808080338152505060208101905080803081525050602081019050808060243581525050606090509050016101c0526101c08051602001806102608284600060045af115611ac657505060206103206102605161028060006004355af115611ac65760203d80821115610c675780610c69565b815b90509050610300526103008051602001806101608284600060045af115611ac65750506000610160511815610ccb576101608060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b60006101c052604435610d205760206102c0608463081579a56101e052606060246102003761014051610260526101fc60006004355af115611ac657601f3d1115611ac6576000506102c0516101c052610f5f565b73ff970a61a04b1ca14834a43f5de4533ebddb5cc86101e05273fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9610200526101e0604435600180820380607f1d8160801d1415611ac657809050905090506002811015611ac6576020020151610220526020610320608463081579a5610240526024356102605260016102805260006102a052306102c05261025c60006004355af115611ac657601f3d1115611ac657600050610320516101c052737f90122bf0700f9e7e1f688fe926940e8839f3533b15611ac657600060006064631a4d01d2610240526101c05161026052604435600180820380607f1d8160801d1415611ac65780905090509050610280526064356102a05261025c6000737f90122bf0700f9e7e1f688fe926940e8839f3535af115611ac65760206102c060246370a0823161024052306102605261025c610220515afa15611ac657601f3d1115611ac6576000506102c0516101c05263a9059cbb610244526004610264808080610140518152505060208101905080806101c0518152505060409050905001610240526102408051602001806102c08284600060045af115611ac657505060206103606102c0516102e06000610220515af115611ac65760203d80821115610efa5780610efc565b815b90509050610340526103408051602001806101608284600060045af115611ac65750506000610160511815610f5e576101608060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b5b6101c05160005260206000f35b6343d532a7811415610f82573361014052610fad565b636755b454811415610fa85760a43560a01c611ac657602060a461014037600050610fad565b61185e565b60043560a01c611ac65760206101e0600463ddca3f436101805261019c737f90122bf0700f9e7e1f688fe926940e8839f3535afa15611ac657601f3d1115611ac6576000506101e0516002808202821582848304141715611ac65780905090509050600480820490509050610160526101608051610160516402540be400808202821582848304141715611ac657809050905090506402540be400808204905090508181830110611ac657808201905090508152506323b872dd6101e4526004610204808080338152505060208101905080803081525050602081019050808060843581525050606090509050016101e0526101e08051602001806102808284600060045af115611ac65750506020610340610280516102a060006004355af115611ac65760203d808211156110e357806110e5565b815b90509050610320526103208051602001806101808284600060045af115611ac65750506000610180511815611147576101808060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b60a0366101e03761028060006002818352015b60246001610280518181830110611ac657808201905090506003811015611ac65760200201356102a05260006102a05118156111b0576102a051610200610280516002811015611ac657602002015260016101e0525b5b815160010180835281141561115a575b5050602435610240526101e05115611283576020610340606463ed8e84f361028052610200516102a052610220516102c05260006102e05261029c737f90122bf0700f9e7e1f688fe926940e8839f3535afa15611ac657601f3d1115611ac657600050610340516102605261026080516102605161016051808202821582848304141715611ac657809050905090506402540be4008082049050905060018181830110611ac657808201905090508181830110611ac657808201905090508152505b6020610360606463e31032736102a052610240516102c052610260516102e052608435610300526102bc60006004355af115611ac657601f3d1115611ac657600050610360516102805263a9059cbb6102a45260046102c48080803381525050602081019050808060843561028051808210611ac6578082039050905081525050604090509050016102a0526102a08051602001806103208284600060045af115611ac657505060206103c06103205161034060006004355af115611ac65760203d808211156113535780611355565b815b905090506103a0526103a08051602001806101808284600060045af115611ac657505060006101805118156113b7576101808060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b6101e0511561170257737f90122bf0700f9e7e1f688fe926940e8839f3533b15611ac65760006000606463e31032736102a052610200516102c052610220516102e05261026051610300526102bc6000737f90122bf0700f9e7e1f688fe926940e8839f3535af115611ac657737f90122bf0700f9e7e1f688fe926940e8839f3536102a052602061036060246370a082316102e05230610300526102fc6102a0515afa15611ac657601f3d1115611ac657600050610360516102c05260006102c05111156115825760006102a05160e05260c052604060c02060043560e05260c052604060c0205461151b576102a0513b15611ac65760006000604463095ea7b36102e052600435610300527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610320526102fc60006102a0515af115611ac657600160006102a05160e05260c052604060c02060043560e05260c052604060c020555b610280805160206103e06084630c3e4b546103005260006102e0526102e051610320526102c05161034052600061036052336103805261031c60006004355af115611ac657601f3d1115611ac6576000506103e051808210611ac657808203905090508152505b73ff970a61a04b1ca14834a43f5de4533ebddb5cc86102e05273fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96103005261032060006002818352015b63a9059cbb6103e45260046104048080806101405181525050602081019050808060206103c060246370a0823161034052306103605261035c6102e0610320516002811015611ac65760200201515afa15611ac657601f3d1115611ac6576000506103c05181525050604090509050016103e0526103e08051602001806104608284600060045af115611ac657505060206105006104605161048060006102e0610320516002811015611ac65760200201515af115611ac65760203d8082111561168a578061168c565b815b905090506104e0526104e08051602001806101808284600060045af115611ac657505060006101805118156116ee576101808060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b5b81516001018083528114156115c0575b50505b60006024351115611851576020610340602463c66106576102c05260006102e0526102dc6004355afa15611ac657601f3d1115611ac657600050610340516102a05263a9059cbb61036452600461038480808061014051815250506020810190508080602061034060246370a082316102c052306102e0526102dc6102a0515afa15611ac657601f3d1115611ac657600050610340518152505060409050905001610360526103608051602001806103e08284600060045af115611ac657505060206104806103e05161040060006102a0515af115611ac65760203d808211156117ec57806117ee565b815b90509050610460526104608051602001806101808284600060045af115611ac65750506000610180511815611850576101808060200151600082518060209013611ac65780919012611ac657806020036101000a820490509050905015611ac6575b5b6102805160005260206000f35b6341b028f38114156119875760043560a01c611ac65760443580607f1d8160801d1415611ac65780905050600160443512156118d65760206101e0604463cc2b27d761014052604060246101603761015c6004355afa15611ac657601f3d1115611ac6576000506101e05160005260206000f3611985565b6020610200604463cc2b27d7610160526024356101805260016101a05261017c6004355afa15611ac657601f3d1115611ac65760005061020051610140526020610200604463cc2b27d7610160526101405161018052604435600180820380607f1d8160801d1415611ac657809050905090506101a05261017c737f90122bf0700f9e7e1f688fe926940e8839f3535afa15611ac657601f3d1115611ac6576000506102005160005260206000f35b005b6343bff3cc811415611abe5760043560a01c611ac65760843560011c611ac65760803661014037602435610140526101c060006002818352015b60246101c05160018181830110611ac657808201905090506003811015611ac65760200201356101806101c0516002811015611ac65760200201525b81516001018083528114156119c1575b505060206102a0606463ed8e84f36101e05261018051610200526101a05161022052608435610240526101fc737f90122bf0700f9e7e1f688fe926940e8839f3535afa15611ac657601f3d1115611ac6576000506102a0516101c0526101c0516101605260206102a0606463ed8e84f36101e05261014051610200526101605161022052608435610240526101fc6004355afa15611ac657601f3d1115611ac6576000506102a05160005260206000f35b505b60006000fd5b600080fd5b6100cc611b97036100cc6000396100cc611b97036000f35b600080fd

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.