Contract 0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x357956a6fd43585b961bf3ea377f48e474439c3cb73168aedc6e34d650b07220Remove_liquidity...50771142022-01-26 13:03:535 hrs 13 mins ago0xc95a25f690e99fa5053604b1ad58b6d909af8e6d IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000618445757 ETH
0xa94d2b004372e3862f3f8a70c8d908a47758956f988cea96d668081ed740291cRemove_liquidity...50732502022-01-26 11:33:586 hrs 43 mins ago0x40534e513df8277870b81e97b5107b3f39de4f15 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000618462034 ETH
0xf19a92e5bda460b309dceac71c398b60cf20ffc6a81447a31fc3eca709e44512Add_liquidity50729362022-01-26 11:28:266 hrs 49 mins ago0x40534e513df8277870b81e97b5107b3f39de4f15 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000684285687 ETH
0xf2c3fcb31568bd4c9658630d07673c3741b19247fb4497534250f61a1f3c03c7Remove_liquidity...50506892022-01-26 3:00:2415 hrs 17 mins ago0x0e78ec0bd41ec84a8f85d9daaacc4c2f8d05b781 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000757629496 ETH
0xce2bdfd9406011c875e75129893de93f78b1d0c7c6e103a2e2d0c3363e9c7b5bExchange_underly...50456282022-01-26 0:02:5818 hrs 14 mins ago0xe89020c59d3d2091e5841ae774dd111a800e3416 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000706057855 ETH
0xf42b53096d356a923a98b2a9df79bb1b012e436ca804cc1d69135055d96b97d0Remove_liquidity...50443872022-01-25 23:17:4319 hrs ago0x40534e513df8277870b81e97b5107b3f39de4f15 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000740217633 ETH
0x28cbe81a11aa5877cde7bf5a3eb45aec4ea0faef55c4473f60de315eb1b4ec2cRemove_liquidity...50438602022-01-25 23:02:4019 hrs 15 mins ago0x02e877ccef3b6b93233b622b75db803dc093d531 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000698176234 ETH
0xf89c33dc4d38b70291eaa89afe29f3fa18e06ebbec88d5066ddb6e9aa67e8e94Remove_liquidity...50395242022-01-25 20:18:1321 hrs 59 mins ago0xba0893e681ae172839bb19b91ec59b1dde4059e3 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000724696783 ETH
0x2f8b407ecd1e4c6bb4bc396705295cc27784869e1ca2c7e9fdc45ba5af6db330Remove_liquidity...50372862022-01-25 18:58:3823 hrs 19 mins ago0x4ba5553e964df6658776975aa9760c372c6aa285 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000704608943 ETH
0x7583ff478afaf76b625722aa064e7c8cedbebd118efdbc9bc2a74b3a9eb57d16Remove_liquidity...50359752022-01-25 18:15:331 day 2 mins ago0xbee5644e80983d2524f04cb1ad206496b0ab5629 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000674401037 ETH
0x835293e3e5cc1468907ed2e17ee5b499d8fe9100c51a0150f835a9e3d63632d2Remove_liquidity...50263312022-01-25 14:28:301 day 3 hrs ago0x412b03841a759db0a5bb9d24cfbedbc52944187c IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000646090033 ETH
0x97c0709abb69bb8687a412667fa970691e3e0ea6e83ac1730fd8fb6a65a9ba79Remove_liquidity...50166892022-01-25 10:44:581 day 7 hrs ago0xc4be10236f7b77cdff6125785404fe9183aeefc0 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000655377828 ETH
0x785596a312b6d62aa3e2865ecacfd27a9579ca6c1a126a7ee96a998053f458ebAdd_liquidity50161342022-01-25 10:25:131 day 7 hrs ago0xc4be10236f7b77cdff6125785404fe9183aeefc0 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000683412829 ETH
0xe69d89285d067b98f53c18553dc17a94219377cf9e84bf228d3d73921a847354Add_liquidity49866992022-01-24 19:39:041 day 22 hrs ago0xbee5644e80983d2524f04cb1ad206496b0ab5629 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000741826323 ETH
0xc76c01c996869f891b49f24b957333dc2c2a402b1f19771d46b7186ac6b28e29Remove_liquidity...49862322022-01-24 19:27:301 day 22 hrs ago0x9b50db886b07a2882c801d1710e8ad2f4e901a65 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000718338742 ETH
0x79b6815b0929dbc4da2922889284fea0373f015cb838011ad94400e8f47fedc6Remove_liquidity...49832222022-01-24 18:18:481 day 23 hrs ago0x2402ebd5bcd63431ab0c39ce5414e29460b2c56a IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000634210197 ETH
0x5ac0c07550af1463a9adc6a80f15eb35e8e5756fe1d7e4977a19e8f53e1db4f1Exchange_underly...49374322022-01-23 17:34:533 days 42 mins ago0xa417bd32b4405a9db92298b94dc019b64dd8aa35 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000751906835 ETH
0x21a0fdee3c1604ba196ead8430e70b9645e9e92b05a8adf42ce74291a40af718Remove_liquidity...49347392022-01-23 15:16:183 days 3 hrs ago0x0b5d351c06ce648190744e445ed8341588ad98f6 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000743983589 ETH
0x391f170cbe8ae81009fc9cd761a749ceae743c30659ff452860dd9387d489275Exchange_underly...49266402022-01-23 7:56:333 days 10 hrs ago0x9ee731ec2074efea7724542511cf298e49ad4f1b IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000744901624 ETH
0xfd33d5031f64d12fc598dcad975464d6c9b2716b3a77b52d15e61825c7f42ad9Exchange_underly...49265962022-01-23 7:55:433 days 10 hrs ago0x9ee731ec2074efea7724542511cf298e49ad4f1b IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000769411158 ETH
0xeaa4ddb0094fab6884ee8d512d2e03f95c6f3c8b42d8c2b246feda1489444342Remove_liquidity49262612022-01-23 7:39:313 days 10 hrs ago0x9ee731ec2074efea7724542511cf298e49ad4f1b IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000934742864 ETH
0x955861df7d7973b1289772400044095bd7ce1f96f5cdeab2e63cacc8da964b38Remove_liquidity...49220982022-01-23 3:18:453 days 14 hrs ago0x7bb7e752ce21a46c85586f48e18175027c0ff889 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000840410867 ETH
0x02bb46343443149a5ff945f9abdd15534082590092222d8a2b4be3e9beadc53dRemove_liquidity...49090282022-01-22 17:37:234 days 40 mins ago0x6e868846b2182235c16fd122fcd44739e55a58e4 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000871171929 ETH
0x691a09e4e4dda7c9571bfc7c64891d782155596215d48aeed60f600cd9c67954Remove_liquidity...49079112022-01-22 16:52:254 days 1 hr ago0xf2a14cec0076875ebc880634f0cda1ca7af9d709 IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000796536348 ETH
0x74f8dc6b1f5dc607e316450665ed9877ca369c5f6cc51fea260c9a834bc7d3aeRemove_liquidity...49069242022-01-22 16:18:444 days 1 hr ago0xc7777c1a0cf7e22c51b44f7ced65cf2a6b06dc5c IN  0x25e2e8d104bc1a70492e2be32da7c1f8367f9d2c0 ETH0.000801187681 ETH
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.0

Optimization Enabled:
N/A

Other Settings:
, None license

Contract Source Code (Vyper language format)

# @version 0.3.0
# EUR/3crv pool where 3crv is _second_, not first

from vyper.interfaces import ERC20

interface CurveCryptoSwap:
    def token() -> address: view
    def coins(i: uint256) -> address: view
    def get_dy(i: uint256, j: uint256, dx: uint256) -> uint256: view
    def calc_token_amount(amounts: uint256[N_COINS]) -> uint256: view
    def calc_withdraw_one_coin(token_amount: uint256, i: uint256) -> uint256: view
    def add_liquidity(amounts: uint256[N_COINS], min_mint_amount: uint256) -> uint256: nonpayable
    def exchange(i: uint256, j: uint256, dx: uint256, min_dy: uint256) -> uint256: nonpayable
    def remove_liquidity(amount: uint256, min_amounts: uint256[N_COINS]): nonpayable
    def remove_liquidity_one_coin(token_amount: uint256, i: uint256, min_amount: uint256) -> uint256: nonpayable
    def price_oracle() -> uint256: view
    def price_scale() -> uint256: view

interface StableSwap:
    def coins(i: uint256) -> address: view
    def get_dy(i: int128, j: int128, dx: uint256) -> uint256: view
    def calc_token_amount(amounts: uint256[N_STABLECOINS], is_deposit: bool) -> uint256: view
    def calc_withdraw_one_coin(token_amount: uint256, i: int128) -> uint256: view
    def add_liquidity(amounts: uint256[N_STABLECOINS], min_mint_amount: uint256): nonpayable
    def remove_liquidity_one_coin(token_amount: uint256, i: int128, min_amount: uint256): nonpayable
    def remove_liquidity(amount: uint256, min_amounts: uint256[N_STABLECOINS]): nonpayable
    def get_virtual_price() -> uint256: view


N_COINS: constant(int128) = 2
N_STABLECOINS: constant(int128) = 2
N_UL_COINS: constant(int128) = N_COINS + N_STABLECOINS - 1

# All the following properties can be replaced with constants for gas efficiency

coins: public(address[N_COINS])
underlying_coins: public(address[N_UL_COINS])

pool: public(address)
base_pool: public(address)
token: public(address)


@external
def __init__(_pool: address, _base_pool: address):
    self.pool = _pool
    self.base_pool = _base_pool
    self.token = CurveCryptoSwap(_pool).token()

    for i in range(N_STABLECOINS):
        coin: address = StableSwap(_base_pool).coins(i)
        self.underlying_coins[i + (N_COINS-1)] = coin
        # approve transfer of underlying coin to base pool
        response: Bytes[32] = raw_call(
            coin,
            concat(
                method_id("approve(address,uint256)"),
                convert(_base_pool, bytes32),
                convert(MAX_UINT256, bytes32)
            ),
            max_outsize=32
        )
        if len(response) != 0:
            assert convert(response, bool)

    for i in range(N_COINS):
        coin: address = CurveCryptoSwap(_pool).coins(i)
        self.coins[i] = coin
        if i < N_COINS - 1:
            self.underlying_coins[i] = coin
        # approve transfer of coin to main pool
        response: Bytes[32] = raw_call(
            coin,
            concat(
                method_id("approve(address,uint256)"),
                convert(_pool, bytes32),
                convert(MAX_UINT256, bytes32)
            ),
            max_outsize=32
        )
        if len(response) != 0:
            assert convert(response, bool)


@external
@view
def price_oracle() -> uint256:
    usd_eur: uint256 = CurveCryptoSwap(self.pool).price_oracle()
    vprice: uint256 = StableSwap(self.base_pool).get_virtual_price()
    return vprice * 10**18 / usd_eur


@external
@view
def price_scale() -> uint256:
    usd_eur: uint256 = CurveCryptoSwap(self.pool).price_scale()
    vprice: uint256 = StableSwap(self.base_pool).get_virtual_price()
    return vprice * 10**18 / usd_eur


@external
def add_liquidity(_amounts: uint256[N_UL_COINS], _min_mint_amount: uint256, _receiver: address = msg.sender):
    base_deposit_amounts: uint256[N_STABLECOINS] = empty(uint256[N_STABLECOINS])
    deposit_amounts: uint256[N_COINS] = empty(uint256[N_COINS])
    is_base_deposit: bool = False

    # transfer base pool coins from caller and deposit to get LP tokens
    for i in range(N_UL_COINS - N_STABLECOINS, N_UL_COINS):
        amount: uint256 = _amounts[i]
        if amount != 0:
            coin: address = self.underlying_coins[i]
            # transfer underlying coin from msg.sender to self
            _response: Bytes[32] = raw_call(
                coin,
                concat(
                    method_id("transferFrom(address,address,uint256)"),
                    convert(msg.sender, bytes32),
                    convert(self, bytes32),
                    convert(amount, bytes32)
                ),
                max_outsize=32
            )
            if len(_response) != 0:
                assert convert(_response, bool)
            base_deposit_amounts[i - (N_COINS - 1)] = ERC20(coin).balanceOf(self)
            is_base_deposit = True

    if is_base_deposit:
        StableSwap(self.base_pool).add_liquidity(base_deposit_amounts, 0)
        deposit_amounts[N_COINS - 1] = ERC20(self.coins[N_COINS-1]).balanceOf(self)

    # transfer remaining underlying coins
    for i in range(N_COINS - 1):
        amount: uint256 = _amounts[i]
        if amount != 0:
            coin: address = self.underlying_coins[i]
            # transfer underlying coin from msg.sender to self
            _response: Bytes[32] = raw_call(
                coin,
                concat(
                    method_id("transferFrom(address,address,uint256)"),
                    convert(msg.sender, bytes32),
                    convert(self, bytes32),
                    convert(amount, bytes32)
                ),
                max_outsize=32
            )
            if len(_response) != 0:
                assert convert(_response, bool)

            deposit_amounts[i] = amount

    amount: uint256 = CurveCryptoSwap(self.pool).add_liquidity(deposit_amounts, _min_mint_amount)
    ERC20(self.token).transfer(_receiver, amount)


@external
def exchange_underlying(i: uint256, j: uint256, _dx: uint256, _min_dy: uint256, _receiver: address = msg.sender) -> uint256:
    assert i != j  # dev: coins must be different

    # transfer `i` from caller into the zap
    response: Bytes[32] = raw_call(
        self.underlying_coins[i],
        concat(
            method_id("transferFrom(address,address,uint256)"),
            convert(msg.sender, bytes32),
            convert(self, bytes32),
            convert(_dx, bytes32)
        ),
        max_outsize=32
    )
    if len(response) != 0:
        assert convert(response, bool)

    dx: uint256 = _dx
    outer_i: uint256 = min(i, N_COINS - 1)
    outer_j: uint256 = min(j, N_COINS - 1)

    if i >= N_COINS - 1:
        # if `i` is in the base pool, deposit to get LP tokens
        base_deposit_amounts: uint256[N_STABLECOINS] = empty(uint256[N_STABLECOINS])
        base_deposit_amounts[i - (N_COINS - 1)] = dx
        StableSwap(self.base_pool).add_liquidity(base_deposit_amounts, 0)
        dx = ERC20(self.coins[N_COINS-1]).balanceOf(self)

    # perform the exchange
    amount: uint256 = dx
    if outer_i != outer_j:
        amount = CurveCryptoSwap(self.pool).exchange(outer_i, outer_j, dx, 0)

    if outer_j == N_COINS - 1:
        # if `j` is in the base pool, withdraw the desired underlying asset and transfer to caller
        StableSwap(self.base_pool).remove_liquidity_one_coin(amount, convert(j - (N_COINS - 1), int128), _min_dy)
        amount = ERC20(self.underlying_coins[j]).balanceOf(self)
    else:
        # withdraw `j` underlying from lending pool and transfer to caller
        assert amount >= _min_dy

    response = raw_call(
        self.underlying_coins[j],
        concat(
            method_id("transfer(address,uint256)"),
            convert(_receiver, bytes32),
            convert(amount, bytes32)
        ),
        max_outsize=32
    )
    if len(response) != 0:
        assert convert(response, bool)

    return amount


@external
def remove_liquidity(_amount: uint256, _min_amounts: uint256[N_UL_COINS], _receiver: address = msg.sender):
    # transfer LP token from caller and remove liquidity
    ERC20(self.token).transferFrom(msg.sender, self, _amount)
    min_amounts: uint256[N_COINS] = [_min_amounts[0], 0]
    CurveCryptoSwap(self.pool).remove_liquidity(_amount, min_amounts)

    # withdraw from base pool and transfer underlying assets to receiver
    value: uint256 = ERC20(self.coins[1]).balanceOf(self)
    base_min_amounts: uint256[N_STABLECOINS] = [_min_amounts[1], _min_amounts[2]]
    StableSwap(self.base_pool).remove_liquidity(value, base_min_amounts)
    for i in range(N_UL_COINS):
        value = ERC20(self.underlying_coins[i]).balanceOf(self)
        response: Bytes[32] = raw_call(
            self.underlying_coins[i],
            concat(
                method_id("transfer(address,uint256)"),
                convert(_receiver, bytes32),
                convert(value, bytes32)
            ),
            max_outsize=32
        )
        if len(response) != 0:
            assert convert(response, bool)


@external
def remove_liquidity_one_coin(_token_amount: uint256, i: uint256, _min_amount: uint256, _receiver: address = msg.sender):
    ERC20(self.token).transferFrom(msg.sender, self, _token_amount)
    outer_i: uint256 = min(i, N_COINS - 1)
    value: uint256 = CurveCryptoSwap(self.pool).remove_liquidity_one_coin(_token_amount, outer_i, 0)

    if outer_i == N_COINS - 1:
        StableSwap(self.base_pool).remove_liquidity_one_coin(value, convert(i - (N_COINS - 1), int128), _min_amount)
        value = ERC20(self.underlying_coins[i]).balanceOf(self)
    else:
        assert value >= _min_amount
    response: Bytes[32] = raw_call(
        self.underlying_coins[i],
        concat(
            method_id("transfer(address,uint256)"),
            convert(_receiver, bytes32),
            convert(value, bytes32)
        ),
        max_outsize=32
    )
    if len(response) != 0:
        assert convert(response, bool)


@view
@external
def get_dy_underlying(i: uint256, j: uint256, _dx: uint256) -> uint256:
    if min(i, j) >= N_COINS - 1:
        return StableSwap(self.base_pool).get_dy(convert(i - (N_COINS-1), int128), convert(j - (N_COINS-1), int128), _dx)

    dx: uint256 = _dx
    outer_i: uint256 = min(i, N_COINS - 1)
    outer_j: uint256 = min(j, N_COINS - 1)

    if outer_i == N_COINS-1:
        amounts: uint256[N_STABLECOINS] = empty(uint256[N_STABLECOINS])
        amounts[i - (N_COINS-1)] = dx
        dx = StableSwap(self.base_pool).calc_token_amount(amounts, True)

    dy: uint256 = CurveCryptoSwap(self.pool).get_dy(outer_i, outer_j, dx)
    if outer_j == N_COINS-1:
        return StableSwap(self.base_pool).calc_withdraw_one_coin(dy, convert(j - (N_COINS-1), int128))
    else:
        return dy


@view
@external
def calc_token_amount(_amounts: uint256[N_UL_COINS]) -> uint256:
    base_amounts: uint256[N_STABLECOINS] = [_amounts[1], _amounts[2]]
    base_lp: uint256 = 0
    if _amounts[1] + _amounts[2] > 0:
        base_lp = StableSwap(self.base_pool).calc_token_amount(base_amounts, True)
    amounts: uint256[N_COINS] = [_amounts[0], base_lp]
    return CurveCryptoSwap(self.pool).calc_token_amount(amounts)


@view
@external
def calc_withdraw_one_coin(token_amount: uint256, i: uint256) -> uint256:
    if i < N_COINS-1:
        return CurveCryptoSwap(self.pool).calc_withdraw_one_coin(token_amount, i)

    base_amount: uint256 = CurveCryptoSwap(self.pool).calc_withdraw_one_coin(token_amount, N_COINS-1)
    return StableSwap(self.base_pool).calc_withdraw_one_coin(base_amount, convert(i - (N_COINS-1), int128))

Contract ABI

[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_pool","type":"address"},{"name":"_base_pool","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"price_oracle","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":9644},{"stateMutability":"view","type":"function","name":"price_scale","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":9674},{"stateMutability":"nonpayable","type":"function","name":"add_liquidity","inputs":[{"name":"_amounts","type":"uint256[3]"},{"name":"_min_mint_amount","type":"uint256"}],"outputs":[],"gas":50520},{"stateMutability":"nonpayable","type":"function","name":"add_liquidity","inputs":[{"name":"_amounts","type":"uint256[3]"},{"name":"_min_mint_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[],"gas":50520},{"stateMutability":"nonpayable","type":"function","name":"exchange_underlying","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"_dx","type":"uint256"},{"name":"_min_dy","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":57522},{"stateMutability":"nonpayable","type":"function","name":"exchange_underlying","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"_dx","type":"uint256"},{"name":"_min_dy","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":57522},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity","inputs":[{"name":"_amount","type":"uint256"},{"name":"_min_amounts","type":"uint256[3]"}],"outputs":[],"gas":77724},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity","inputs":[{"name":"_amount","type":"uint256"},{"name":"_min_amounts","type":"uint256[3]"},{"name":"_receiver","type":"address"}],"outputs":[],"gas":77724},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_one_coin","inputs":[{"name":"_token_amount","type":"uint256"},{"name":"i","type":"uint256"},{"name":"_min_amount","type":"uint256"}],"outputs":[],"gas":35711},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity_one_coin","inputs":[{"name":"_token_amount","type":"uint256"},{"name":"i","type":"uint256"},{"name":"_min_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[],"gas":35711},{"stateMutability":"view","type":"function","name":"get_dy_underlying","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"_dx","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":20256},{"stateMutability":"view","type":"function","name":"calc_token_amount","inputs":[{"name":"_amounts","type":"uint256[3]"}],"outputs":[{"name":"","type":"uint256"}],"gas":10164},{"stateMutability":"view","type":"function","name":"calc_withdraw_one_coin","inputs":[{"name":"token_amount","type":"uint256"},{"name":"i","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":14685},{"stateMutability":"view","type":"function","name":"coins","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":2835},{"stateMutability":"view","type":"function","name":"underlying_coins","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":2871},{"stateMutability":"view","type":"function","name":"pool","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2856},{"stateMutability":"view","type":"function","name":"base_pool","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2886},{"stateMutability":"view","type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2916}]

6f7fffffffffffffffffffffffffffffff60405260206119a060c03960c0518060a01c61199b5780905061014052602060206119a00160c03960c0518060a01c61199b5780905061016052610140516005556101605160065563fc0c546a610180526020610180600461019c610140515afa1561199b57601f3d111561199b57610180518060a01c61199b5780905060075561018060006002818352015b63c66106576101c052610180516101e05260206101c060246101dc610160515afa1561199b57601f3d111561199b576101c0518060a01c61199b578090506101a0526101a0516001610180516001818183011061199b5780820190509050600381101561199b57026002015560006004610200527f095ea7b3000000000000000000000000000000000000000000000000000000006102205261020060048060208461024001018260208501600060045af1505080518201915050610160516020826102400101526020810190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602082610240010152602081019050806102405261024090508051602001806102c08284600060045af11561199b57505060206103606102c0516102e060006101a0515af11561199b5760203d808211156101e757806101e9565b815b90509050610340526103408051602001806101c08284600060045af11561199b57505060006101c051181561024b576101c0806020015160008251806020901361199b578091901261199b57806020036101000a82049050905090501561199b575b815160010180835281141561009d57505061018060006002818352015b63c66106576101c052610180516101e05260206101c060246101dc610140515afa1561199b57601f3d111561199b576101c0518060a01c61199b578090506101a0526101a051600161018051600281101561199b57025560016101805110156102e4576101a051600161018051600381101561199b5702600201555b60006004610200527f095ea7b3000000000000000000000000000000000000000000000000000000006102205261020060048060208461024001018260208501600060045af1505080518201915050610140516020826102400101526020810190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602082610240010152602081019050806102405261024090508051602001806102c08284600060045af11561199b57505060206103606102c0516102e060006101a0515af11561199b5760203d808211156103c257806103c4565b815b90509050610340526103408051602001806101c08284600060045af11561199b57505060006101c0511815610426576101c0806020015160008251806020901361199b578091901261199b57806020036101000a82049050905090501561199b575b815160010180835281141561026857505061198356600436101561000d5761153c565b60046000601c376f7fffffffffffffffffffffffffffffff60405260005134611542576386fc88d38114156100d8576386fc88d3610160526020610160600461017c6005545afa1561154257601f3d111561154257610160516101405263bb7b8b80610180526020610180600461019c6006545afa1561154257601f3d111561154257610180516101605261016051670de0b6b3a764000080820282158284830414171561154257809050905090506101405180801561154257820490509050610180526020610180f35b63b9e8c9fd8114156101805763b9e8c9fd610160526020610160600461017c6005545afa1561154257601f3d111561154257610160516101405263bb7b8b80610180526020610180600461019c6006545afa1561154257601f3d111561154257610180516101605261016051670de0b6b3a764000080820282158284830414171561154257809050905090506101405180801561154257820490509050610180526020610180f35b634515cef38114156101965733610140526101b5565b6375b96abc811415610635576084358060a01c61154257809050610140525b60a0366101603761020060016002818352015b602061020051026004013561022052600061022051181561038957600161020051600381101561154257026002015461024052600060046102a0527f23b872dd000000000000000000000000000000000000000000000000000000006102c0526102a06004806020846102e001018260208501600060045af1505080518201915050336020826102e0010152602081019050306020826102e0010152602081019050610220516020826102e0010152602081019050806102e0526102e090508051602001806103808284600060045af1156115425750506020610440610380516103a06000610240515af1156115425760203d808211156102c957806102cb565b815b90509050610420526104208051602001806102608284600060045af115611542575050600061026051181561032d576102608060200151600082518060209013611542578091901261154257806020036101000a820490509050905015611542575b6370a082316102a052306102c05260206102a060246102bc610240515afa1561154257601f3d1115611542576102a0516101606102005160018082106115425780820390509050600281101561154257602002015260016101e0525b81516001018083528114156101c85750506101e0511561041457630b4c7e4d61020052610160516102205261018051610240526000610260526006543b156115425760006000606461021c60006006545af115611542576370a082316102005230610220526020610200602461021c6001545afa1561154257601f3d111561154257610200516101c0525b61020060006001818352015b602061020051026004013561022052600061022051181561059f57600161020051600381101561154257026002015461024052600060046102a0527f23b872dd000000000000000000000000000000000000000000000000000000006102c0526102a06004806020846102e001018260208501600060045af1505080518201915050336020826102e0010152602081019050306020826102e0010152602081019050610220516020826102e0010152602081019050806102e0526102e090508051602001806103808284600060045af1156115425750506020610440610380516103a06000610240515af1156115425760203d808211156105215780610523565b815b90509050610420526104208051602001806102608284600060045af1156115425750506000610260511815610585576102608060200151600082518060209013611542578091901261154257806020036101000a820490509050905015611542575b610220516101a06102005160028110156115425760200201525b8151600101808352811415610420575050630b4c7e4d610220526101a051610240526101c05161026052606435610280526020610220606461023c60006005545af11561154257601f3d111561154257610220516102005263a9059cbb61022052610140516102405261020051610260526020610220604461023c60006007545af11561154257601f3d11156115425761022050005b6365b2489b81141561064b57336101405261066a565b63e2ad025a811415610b00576084358060a01c61154257809050610140525b602435600435181561154257600060046101a0527f23b872dd000000000000000000000000000000000000000000000000000000006101c0526101a06004806020846101e001018260208501600060045af1505080518201915050336020826101e0010152602081019050306020826101e00101526020810190506044356020826101e0010152602081019050806101e0526101e090508051602001806102808284600060045af1156115425750506020610340610280516102a06000600160043560038110156115425702600201545af1156115425760203d808211156107525780610754565b815b90509050610320526103208051602001806101608284600060045af11561154257505060006101605118156107b6576101608060200151600082518060209013611542578091901261154257806020036101000a820490509050905015611542575b6044356101a0526004356001808211156107d057806107d2565b815b905090506101c0526024356001808211156107ed57806107ef565b815b905090506101e0526001600435106108a157604036610200376101a051610200600435600180821061154257808203905090506002811015611542576020020152630b4c7e4d610240526102005161026052610220516102805260006102a0526006543b156115425760006000606461025c60006006545af115611542576370a082316102405230610260526020610240602461025c6001545afa1561154257601f3d111561154257610240516101a0525b6101a051610200526101e0516101c051181561090657635b41b908610220526101c051610240526101e051610260526101a0516102805260006102a0526020610220608461023c60006005545af11561154257601f3d11156115425761022051610200525b60016101e05114156109b057631a4d01d26102205261020051610240526024356001808210611542578082039050905060405181116115425761026052606435610280526006543b156115425760006000606461023c60006006545af115611542576370a082316102205230610240526020610220602461023c600160243560038110156115425702600201545afa1561154257601f3d11156115425761022051610200526109bd565b6064356102005110611542575b60006004610220527fa9059cbb000000000000000000000000000000000000000000000000000000006102405261022060048060208461026001018260208501600060045af15050805182019150506101405160208261026001015260208101905061020051602082610260010152602081019050806102605261026090508051602001806102e08284600060045af11561154257505060206103806102e0516103006000600160243560038110156115425702600201545af1156115425760203d80821115610a8d5780610a8f565b815b90509050610360526103608051602001806101608284600060045af1156115425750506000610160511815610af1576101608060200151600082518060209013611542578091901261154257806020036101000a820490509050905015611542575b61020051610220526020610220f35b63ecb586a5811415610b16573361014052610b35565b632da5dc21811415610dd5576084358060a01c61154257809050610140525b6323b872dd610160523361018052306101a0526004356101c0526020610160606461017c60006007545af11561154257601f3d1115611542576101605060243561016052600061018052635b36389c6101a0526004356101c052610160516101e05261018051610200526005543b15611542576000600060646101bc60006005545af115611542576370a082316101c052306101e05260206101c060246101dc6001545afa1561154257601f3d1115611542576101c0516101a0526044356101c0526064356101e052635b36389c610200526101a051610220526101c051610240526101e051610260526006543b156115425760006000606461021c60006006545af1156115425761020060006003818352015b6370a082316102205230610240526020610220602461023c60016102005160038110156115425702600201545afa1561154257601f3d111561154257610220516101a05260006004610260527fa9059cbb00000000000000000000000000000000000000000000000000000000610280526102606004806020846102a001018260208501600060045af1505080518201915050610140516020826102a00101526020810190506101a0516020826102a0010152602081019050806102a0526102a090508051602001806103208284600060045af11561154257505060206103c061032051610340600060016102005160038110156115425702600201545af1156115425760203d80821115610d5e5780610d60565b815b905090506103a0526103a08051602001806102208284600060045af1156115425750506000610220511815610dc2576102208060200151600082518060209013611542578091901261154257806020036101000a820490509050905015611542575b8151600101808352811415610c49575050005b63f1dc3cc9811415610deb573361014052610e0a565b630fbcee6e811415611096576064358060a01c61154257809050610140525b6323b872dd610160523361018052306101a0526004356101c0526020610160606461017c60006007545af11561154257601f3d11156115425761016050602435600180821115610e5a5780610e5c565b815b905090506101605263f1dc3cc96101a0526004356101c052610160516101e05260006102005260206101a060646101bc60006005545af11561154257601f3d1115611542576101a051610180526001610160511415610f5357631a4d01d26101a052610180516101c052602435600180821061154257808203905090506040518111611542576101e052604435610200526006543b15611542576000600060646101bc60006006545af115611542576370a082316101a052306101c05260206101a060246101bc600160243560038110156115425702600201545afa1561154257601f3d1115611542576101a05161018052610f60565b6044356101805110611542575b600060046101e0527fa9059cbb00000000000000000000000000000000000000000000000000000000610200526101e060048060208461022001018260208501600060045af15050805182019150506101405160208261022001015260208101905061018051602082610220010152602081019050806102205261022090508051602001806102a08284600060045af11561154257505060206103406102a0516102c06000600160243560038110156115425702600201545af1156115425760203d808211156110305780611032565b815b90509050610320526103208051602001806101a08284600060045af11561154257505060006101a0511815611094576101a08060200151600082518060209013611542578091901261154257806020036101000a820490509050905015611542575b005b6385f11d1e8114156112ce576001600435602435808211156110b857806110ba565b815b905090501061114257635e0d443f61014052600435600180821061154257808203905090506040518111611542576101605260243560018082106115425780820390509050604051811161154257610180526044356101a0526020610140606461015c6006545afa1561154257601f3d111561154257610140516101c05260206101c06112cc565b6044356101405260043560018082111561115c578061115e565b815b9050905061016052602435600180821115611179578061117b565b815b90509050610180526001610160511415611203576040366101a037610140516101a060043560018082106115425780820390509050600281101561154257602002015263ed8e84f36101e0526101a051610200526101c0516102205260016102405260206101e060646101fc6006545afa1561154257601f3d1115611542576101e051610140525b63556d6e9f6101c052610160516101e0526101805161020052610140516102205260206101c060646101dc6005545afa1561154257601f3d1115611542576101c0516101a05260016101805114156112b95763cc2b27d76101c0526101a0516101e052602435600180821061154257808203905090506040518111611542576102005260206101c060446101dc6006545afa1561154257601f3d1115611542576101c0516102205260206102206112cc566112cb565b6101a0516101c05260206101c06112cc565b5bf35b635b6f1b5a8114156113a557602435610140526044356101605260006101805260006024356044358181830110611542578082019050905011156113515763ed8e84f36101a052610140516101c052610160516101e05260016102005260206101a060646101bc6006545afa1561154257601f3d1115611542576101a051610180525b6004356101a052610180516101c052638d8ea7276101e0526101a051610200526101c0516102205260206101e060446101fc6005545afa1561154257601f3d1115611542576101e051610240526020610240f35b634fb08c5e81141561149b576001602435101561140257634fb08c5e6101405260043561016052602435610180526020610140604461015c6005545afa1561154257601f3d111561154257610140516101a05260206101a0611499565b634fb08c5e610160526004356101805260016101a0526020610160604461017c6005545afa1561154257601f3d111561154257610160516101405263cc2b27d7610160526101405161018052602435600180821061154257808203905090506040518111611542576101a0526020610160604461017c6006545afa1561154257601f3d111561154257610160516101c05260206101c05bf35b63c66106578114156114c25760016004356002811015611542570254610140526020610140f35b63b9947eb08114156114ec5760016004356003811015611542570260020154610140526020610140f35b6316f0115b81141561150657600554610140526020610140f35b635d6362bb81141561152057600654610140526020610140f35b63fc0c546a81141561153a57600754610140526020610140f35b505b60006000fd5b600080fd5b61043c6119830361043c60003961043c611983036000f35b600080fd000000000000000000000000a827a652ead76c6b0b3d19dba05452e06e25c27e0000000000000000000000007f90122bf0700f9e7e1f688fe926940e8839f353

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

000000000000000000000000a827a652ead76c6b0b3d19dba05452e06e25c27e0000000000000000000000007f90122bf0700f9e7e1f688fe926940e8839f353

-----Decoded View---------------
Arg [0] : _pool (address): 0xa827a652ead76c6b0b3d19dba05452e06e25c27e
Arg [1] : _base_pool (address): 0x7f90122bf0700f9e7e1f688fe926940e8839f353

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a827a652ead76c6b0b3d19dba05452e06e25c27e
Arg [1] : 0000000000000000000000007f90122bf0700f9e7e1f688fe926940e8839f353


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