ETH Price: $2,074.92 (-1.85%)

Contract

0x5De4EF4879F4fe3bBADF2227D2aC5d0E2D76C895
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Remove_liquidity245489922026-02-27 14:53:596 days ago1772204039IN
0x5De4EF48...E2D76C895
0 ETH0.00017980.54823589
Remove_liquidity245468622026-02-27 7:46:356 days ago1772178395IN
0x5De4EF48...E2D76C895
0 ETH0.000011440.03617364
Add_liquidity245289752026-02-24 19:52:599 days ago1771962779IN
0x5De4EF48...E2D76C895
0 ETH0.000879642.05157169
Remove_liquidity...245126012026-02-22 13:06:4711 days ago1771765607IN
0x5De4EF48...E2D76C895
0 ETH0.000043840.13213682
Remove_liquidity...244991352026-02-20 16:03:4713 days ago1771603427IN
0x5De4EF48...E2D76C895
0 ETH0.00040881.24209662
Add_liquidity244922662026-02-19 17:03:5914 days ago1771520639IN
0x5De4EF48...E2D76C895
0 ETH0.000048590.11455489
Remove_liquidity...244730322026-02-17 0:41:2317 days ago1771288883IN
0x5De4EF48...E2D76C895
0 ETH0.000011360.03261167
Remove_liquidity...244729642026-02-17 0:27:4717 days ago1771288067IN
0x5De4EF48...E2D76C895
0 ETH0.00001320.03495555
Remove_liquidity...244729472026-02-17 0:24:2317 days ago1771287863IN
0x5De4EF48...E2D76C895
0 ETH0.000012620.02983305
Add_liquidity244639162026-02-15 18:12:1118 days ago1771179131IN
0x5De4EF48...E2D76C895
0 ETH0.000024870.0582498
Exchange244067432026-02-07 18:29:5926 days ago1770488999IN
0x5De4EF48...E2D76C895
0 ETH0.000093950.1890579
Exchange244066682026-02-07 18:14:5926 days ago1770488099IN
0x5De4EF48...E2D76C895
0 ETH0.000086250.18028891
Add_liquidity243183362026-01-26 10:13:5938 days ago1769422439IN
0x5De4EF48...E2D76C895
0 ETH0.000019910.04609756
Add_liquidity243181912026-01-26 9:44:5938 days ago1769420699IN
0x5De4EF48...E2D76C895
0 ETH0.000021790.0496575
Add_liquidity242694782026-01-19 14:40:2345 days ago1768833623IN
0x5De4EF48...E2D76C895
0 ETH0.00005080.09498468
Add_liquidity242623582026-01-18 14:52:2346 days ago1768747943IN
0x5De4EF48...E2D76C895
0 ETH0.000014450.03059209
Remove_liquidity...242384512026-01-15 6:54:4749 days ago1768460087IN
0x5De4EF48...E2D76C895
0 ETH0.000070790.15871778
Add_liquidity242313432026-01-14 7:06:5950 days ago1768374419IN
0x5De4EF48...E2D76C895
0 ETH0.000551171.04503895
Remove_liquidity242306182026-01-14 4:40:3550 days ago1768365635IN
0x5De4EF48...E2D76C895
0 ETH0.000015530.0494357
Add_liquidity242245342026-01-13 8:14:1151 days ago1768292051IN
0x5De4EF48...E2D76C895
0 ETH0.000054830.12529459
Add_liquidity241962942026-01-09 9:41:4755 days ago1767951707IN
0x5De4EF48...E2D76C895
0 ETH0.000066170.12549082
Add_liquidity241887382026-01-08 8:22:3556 days ago1767860555IN
0x5De4EF48...E2D76C895
0 ETH0.000025330.04803555
Remove_liquidity241887062026-01-08 8:16:1156 days ago1767860171IN
0x5De4EF48...E2D76C895
0 ETH0.000016780.05117412
Remove_liquidity...241801662026-01-07 3:38:1157 days ago1767757091IN
0x5De4EF48...E2D76C895
0 ETH0.000386751.0296559
Add_liquidity241798462026-01-07 2:33:5957 days ago1767753239IN
0x5De4EF48...E2D76C895
0 ETH0.000011040.03750536
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
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.3.4

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

# @version 0.3.4
"""
@title Zap for Curve Factory
@license MIT
@author Curve.Fi
@notice Zap for fraxbp metapools created via crypto factory
"""


interface ERC20:  # Custom ERC20 which works for Curve LP Tokens
    def transfer(_receiver: address, _amount: uint256): nonpayable
    def transferFrom(_sender: address, _receiver: address, _amount: uint256): nonpayable
    def approve(_spender: address, _amount: uint256): nonpayable
    def balanceOf(_owner: address) -> uint256: view


interface wETH:
    def deposit(): payable
    def withdraw(_amount: uint256): nonpayable


# CurveCryptoSwap2ETH from Crypto Factory
interface CurveMeta:
    def coins(i: uint256) -> address: view
    def token() -> address: view
    def lp_price() -> uint256: view
    def price_scale() -> uint256: view
    def price_oracle() -> uint256: view
    def virtual_price() -> uint256: 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 exchange(i: uint256, j: uint256, dx: uint256, min_dy: uint256, use_eth: bool = False, receiver: address = msg.sender) -> uint256: payable
    def add_liquidity(amounts: uint256[N_COINS], min_mint_amount: uint256, use_eth: bool = False, receiver: address = msg.sender) -> uint256: payable
    def remove_liquidity(_amount: uint256, min_amounts: uint256[2], use_eth: bool = False, receiver: address = msg.sender): nonpayable
    def remove_liquidity_one_coin(token_amount: uint256, i: uint256, min_amount: uint256, use_eth: bool = False, receiver: address = msg.sender) -> uint256: nonpayable


# FraxBP
interface CurveBase:
    def coins(i: uint256) -> address: view
    def lp_token() -> address: view
    def get_dy(i: int128, j: int128, dx: uint256) -> uint256: view
    def calc_token_amount(amounts: uint256[BASE_N_COINS], is_deposit: bool) -> uint256: view
    def calc_withdraw_one_coin(token_amount: uint256, i: int128) -> uint256: view
    def exchange(i: int128, j: int128, dx: uint256, min_dy: uint256): nonpayable
    def add_liquidity(amounts: uint256[BASE_N_COINS], 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[BASE_N_COINS]): nonpayable
    def get_virtual_price() -> uint256: view


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

WETH: immutable(wETH)

BASE_POOL: immutable(CurveBase)
BASE_LP_TOKEN: immutable(address)
BASE_COINS: immutable(address[BASE_N_COINS])
# coin -> pool -> is approved to transfer?
is_approved: HashMap[address, HashMap[address, bool]]


@external
def __init__(_base_pool: address, _weth: address):
    """
    @notice Contract constructor
    """
    BASE_POOL = CurveBase(_base_pool)
    BASE_LP_TOKEN = BASE_POOL.lp_token()
    base_coins: address[BASE_N_COINS] = empty(address[BASE_N_COINS])
    for i in range(BASE_N_COINS):
        base_coins[i] = BASE_POOL.coins(i)
    BASE_COINS = base_coins
    WETH = wETH(_weth)

    for coin in base_coins:
        ERC20(coin).approve(_base_pool, max_value(uint256))
        self.is_approved[coin][_base_pool] = True


@payable
@external
def __default__():
    assert msg.sender.is_contract  # dev: receive only from pools and WETH


@pure
@external
def base_pool() -> address:
    return BASE_POOL.address


@pure
@external
def base_token() -> address:
    return BASE_LP_TOKEN


@external
@view
def price_oracle(_pool: address) -> uint256:
    usd_tkn: uint256 = CurveMeta(_pool).price_oracle()
    vprice: uint256 = BASE_POOL.get_virtual_price()
    return vprice * 10**18 / usd_tkn


@external
@view
def price_scale(_pool: address) -> uint256:
    usd_tkn: uint256 = CurveMeta(_pool).price_scale()
    vprice: uint256 = BASE_POOL.get_virtual_price()
    return vprice * 10**18 / usd_tkn


@external
@view
def lp_price(_pool: address) -> uint256:
    p: uint256 = CurveMeta(_pool).lp_price()  # price in tkn
    usd_tkn: uint256 = CurveMeta(_pool).price_oracle()
    vprice: uint256 = BASE_POOL.get_virtual_price()
    return p * vprice / usd_tkn


@internal
def _receive(_coin: address, _amount: uint256, _from: address,
             _eth_value: uint256, _use_eth: bool, _wrap_eth: bool=False) -> uint256:
    """
    Transfer coin to zap
    @param _coin Address of the coin
    @param _amount Amount of coin
    @param _from Sender of the coin
    @param _eth_value Eth value sent
    @param _use_eth Use raw ETH
    @param _wrap_eth Wrap raw ETH
    @return Received ETH amount
    """
    if _use_eth and _coin == WETH.address:
        assert _eth_value == _amount  # dev: incorrect ETH amount
        if _wrap_eth:
            WETH.deposit(value=_amount)
        else:
            return _amount
    else:
        response: Bytes[32] = raw_call(
            _coin,
            _abi_encode(
                _from,
                self,
                _amount,
                method_id=method_id("transferFrom(address,address,uint256)"),
            ),
            max_outsize=32,
        )
        if len(response) != 0:
            assert convert(response, bool)  # dev: failed transfer
    return 0


@internal
def _send(_coin: address, _to: address, _use_eth: bool, _withdraw_eth: bool=False) -> uint256:
    """
    Send coin from zap
    @dev Sends all available amount
    @param _coin Address of the coin
    @param _to Sender of the coin
    @param _use_eth Use raw ETH
    @param _withdraw_eth Withdraw raw ETH from wETH
    @return Amount of coin sent
    """
    amount: uint256 = 0
    if _use_eth and _coin == WETH.address:
        if _withdraw_eth:
            amount = ERC20(_coin).balanceOf(self)
            WETH.withdraw(amount)
        amount = self.balance
        raw_call(_to, b"", value=amount)
    else:
        amount = ERC20(_coin).balanceOf(self)
        response: Bytes[32] = raw_call(
            _coin,
            _abi_encode(_to, amount, method_id=method_id("transfer(address,uint256)")),
            max_outsize=32,
        )
        if len(response) != 0:
            assert convert(response, bool)  # dev: failed transfer
    return amount


@payable
@external
def exchange(_pool: address, i: uint256, j: uint256, _dx: uint256, _min_dy: uint256,
             _use_eth: bool = False, _receiver: address = msg.sender) -> uint256:
    """
    @notice Exchange using wETH by default
    @dev Index values can be found via the `coins` public getter method
    @param _pool Address of the pool for the exchange
    @param i Index value for the coin to send
    @param j Index value of the coin to receive
    @param _dx Amount of `i` being exchanged
    @param _min_dy Minimum amount of `j` to receive
    @param _use_eth Use raw ETH
    @param _receiver Address that will receive `j`
    @return Actual amount of `j` received
    """
    assert i != j  # dev: indexes are similar
    if not _use_eth:
        assert msg.value == 0  # dev: nonzero ETH amount

    base_coins: address[BASE_N_COINS] = BASE_COINS
    if i < MAX_COIN:  # Swap to LP token and remove from base
        # Receive and swap to LP Token
        coin: address = CurveMeta(_pool).coins(i)
        eth_amount: uint256 = self._receive(coin, _dx, msg.sender, msg.value, _use_eth)
        if not self.is_approved[coin][_pool]:
            ERC20(coin).approve(_pool, max_value(uint256))
            self.is_approved[coin][_pool] = True
        lp_amount: uint256 = CurveMeta(_pool).exchange(i, MAX_COIN, _dx, 0, _use_eth, value=eth_amount)

        # Remove and send to _receiver
        BASE_POOL.remove_liquidity_one_coin(lp_amount, convert(j - MAX_COIN, int128), _min_dy)

        coin = base_coins[j - MAX_COIN]
        return self._send(coin, _receiver, _use_eth, True)

    # Receive coin i
    base_i: int128 = convert(i - MAX_COIN, int128)
    self._receive(base_coins[base_i], _dx, msg.sender, msg.value, _use_eth, True)

    # Add in base and exchange LP token
    if j < MAX_COIN:
        amounts: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS])
        amounts[base_i] = _dx

        BASE_POOL.add_liquidity(amounts, 0)

        if not self.is_approved[BASE_LP_TOKEN][_pool]:
            ERC20(BASE_LP_TOKEN).approve(_pool, max_value(uint256))
            self.is_approved[BASE_LP_TOKEN][_pool] = True

        lp_amount: uint256 = ERC20(BASE_LP_TOKEN).balanceOf(self)
        return CurveMeta(_pool).exchange(MAX_COIN, j, lp_amount, _min_dy, _use_eth, _receiver)

    base_j: int128 = convert(j - MAX_COIN, int128)

    BASE_POOL.exchange(base_i, base_j, _dx, _min_dy)

    coin: address = base_coins[base_j]
    return self._send(coin, _receiver, _use_eth, True)


@view
@external
def get_dy(_pool: address, i: uint256, j: uint256, _dx: uint256) -> uint256:
    """
    @notice Calculate the amount received in exchange
    @dev Index values can be found via the `coins` public getter method
    @param _pool Address of the pool for the exchange
    @param i Index value for the coin to send
    @param j Index value of the coin to receive
    @param _dx Amount of `i` being exchanged
    @return Expected amount of `j` to receive
    """
    assert i != j  # dev: indexes are similar

    if i < MAX_COIN:  # Swap to LP token and remove from base
        lp_amount: uint256 = CurveMeta(_pool).get_dy(i, MAX_COIN, _dx)

        return BASE_POOL.calc_withdraw_one_coin(lp_amount, convert(j - MAX_COIN, int128))

    # Add in base and exchange LP token
    if j < MAX_COIN:
        amounts: uint256[BASE_N_COINS] = empty(uint256[BASE_N_COINS])
        amounts[i - MAX_COIN] = _dx
        lp_amount: uint256 = BASE_POOL.calc_token_amount(amounts, True)

        return CurveMeta(_pool).get_dy(MAX_COIN, j, lp_amount)

    # Exchange in base
    return BASE_POOL.get_dy(convert(i - MAX_COIN, int128), convert(j - MAX_COIN, int128), _dx)


@payable
@external
def add_liquidity(
    _pool: address,
    _deposit_amounts: uint256[N_ALL_COINS],
    _min_mint_amount: uint256,
    _use_eth: bool = False,
    _receiver: address = msg.sender,
) -> uint256:
    """
    @notice Deposit tokens to base and meta pools
    @param _pool Address of the metapool 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 _use_eth Use raw ETH
    @param _receiver Address that receives the LP tokens
    @return Amount of LP tokens received by depositing
    """
    if not _use_eth:
        assert msg.value == 0  # dev: nonzero ETH amount
    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
    eth_amount: uint256 = 0

    if _deposit_amounts[0] != 0:
        coin: address = CurveMeta(_pool).coins(0)
        eth_amount = self._receive(coin, _deposit_amounts[0], msg.sender, msg.value, _use_eth)
        if not self.is_approved[coin][_pool]:
            ERC20(coin).approve(_pool, max_value(uint256))
            self.is_approved[coin][_pool] = True
        meta_amounts[0] = _deposit_amounts[0]

    for i in range(MAX_COIN, N_ALL_COINS):
        amount: uint256 = _deposit_amounts[i]
        if amount == 0:
            continue
        deposit_base = True

        base_idx: uint256 = i - MAX_COIN

        coin: address = base_coins[base_idx]
        self._receive(coin, amount, msg.sender, msg.value, _use_eth, True)
        base_amounts[base_idx] = amount

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

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


@view
@external
def calc_token_amount(_pool: address, _amounts: uint256[N_ALL_COINS]) -> uint256:
    """
    @notice Calculate addition 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
    @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])
    deposit_base: bool = False

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

    if deposit_base:
        base_tokens: uint256 = BASE_POOL.calc_token_amount(base_amounts, True)
        meta_amounts[MAX_COIN] = base_tokens

    return CurveMeta(_pool).calc_token_amount(meta_amounts)


@external
def remove_liquidity(
    _pool: address,
    _burn_amount: uint256,
    _min_amounts: uint256[N_ALL_COINS],
    _use_eth: bool = False,
    _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 withdraw from
    @param _burn_amount Quantity of LP tokens to burn in the withdrawal
    @param _min_amounts Minimum amounts of underlying coins to receive
    @param _use_eth Use raw ETH
    @param _receiver Address that receives the LP tokens
    @return List of amounts of underlying coins that were withdrawn
    """
    lp_token: address = CurveMeta(_pool).token()
    ERC20(lp_token).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
    CurveMeta(_pool).remove_liquidity(
        _burn_amount,
        [_min_amounts[0], 0],
        _use_eth,
    )
    lp_amount: uint256 = ERC20(BASE_LP_TOKEN).balanceOf(self)

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

    # Transfer all coins out
    coin: address = CurveMeta(_pool).coins(0)
    amounts[0] = self._send(coin, _receiver, _use_eth)

    base_coins: address[BASE_N_COINS] = BASE_COINS
    for i in range(MAX_COIN, N_ALL_COINS):
        coin = base_coins[i - MAX_COIN]
        amounts[i] = self._send(coin, _receiver, _use_eth, True)

    return amounts


@external
def remove_liquidity_one_coin(
    _pool: address,
    _burn_amount: uint256,
    i: uint256,
    _min_amount: uint256,
    _use_eth: bool = False,
    _receiver: address=msg.sender
) -> uint256:
    """
    @notice Withdraw and unwrap a single coin from the pool
    @param _pool Address of the pool to withdraw from
    @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 _use_eth Use raw ETH
    @param _receiver Address that receives the LP tokens
    @return Amount of underlying coin received
    """
    lp_token: address = CurveMeta(_pool).token()
    ERC20(lp_token).transferFrom(msg.sender, self, _burn_amount)

    if i < MAX_COIN:
        return CurveMeta(_pool).remove_liquidity_one_coin(_burn_amount, i, _min_amount, _use_eth, _receiver)

    # Withdraw a base pool coin
    coin_amount: uint256 = CurveMeta(_pool).remove_liquidity_one_coin(_burn_amount, MAX_COIN, 0)

    BASE_POOL.remove_liquidity_one_coin(coin_amount, convert(i - MAX_COIN, int128), _min_amount)

    coin: address = BASE_COINS[i - MAX_COIN]
    return self._send(coin, _receiver, _use_eth, True)


@view
@external
def calc_withdraw_one_coin(_pool: address, _token_amount: uint256, i: uint256) -> uint256:
    """
    @notice Calculate the amount received when withdrawing and unwrapping a single coin
    @param _pool Address of the pool to withdraw from
    @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)

    _base_tokens: uint256 = CurveMeta(_pool).calc_withdraw_one_coin(_token_amount, MAX_COIN)
    return BASE_POOL.calc_withdraw_one_coin(_base_tokens, convert(i - MAX_COIN, int128))

Contract Security Audit

Contract ABI

API
[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_base_pool","type":"address"},{"name":"_weth","type":"address"}],"outputs":[]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"pure","type":"function","name":"base_pool","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"pure","type":"function","name":"base_token","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"price_oracle","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"price_scale","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"lp_price","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"payable","type":"function","name":"exchange","inputs":[{"name":"_pool","type":"address"},{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"_dx","type":"uint256"},{"name":"_min_dy","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"payable","type":"function","name":"exchange","inputs":[{"name":"_pool","type":"address"},{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"_dx","type":"uint256"},{"name":"_min_dy","type":"uint256"},{"name":"_use_eth","type":"bool"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"payable","type":"function","name":"exchange","inputs":[{"name":"_pool","type":"address"},{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"_dx","type":"uint256"},{"name":"_min_dy","type":"uint256"},{"name":"_use_eth","type":"bool"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dy","inputs":[{"name":"_pool","type":"address"},{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"_dx","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"payable","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":"payable","type":"function","name":"add_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_deposit_amounts","type":"uint256[3]"},{"name":"_min_mint_amount","type":"uint256"},{"name":"_use_eth","type":"bool"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"payable","type":"function","name":"add_liquidity","inputs":[{"name":"_pool","type":"address"},{"name":"_deposit_amounts","type":"uint256[3]"},{"name":"_min_mint_amount","type":"uint256"},{"name":"_use_eth","type":"bool"},{"name":"_receiver","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"calc_token_amount","inputs":[{"name":"_pool","type":"address"},{"name":"_amounts","type":"uint256[3]"}],"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":"_use_eth","type":"bool"}],"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":"_use_eth","type":"bool"},{"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":"uint256"},{"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":"uint256"},{"name":"_min_amount","type":"uint256"},{"name":"_use_eth","type":"bool"}],"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":"uint256"},{"name":"_min_amount","type":"uint256"},{"name":"_use_eth","type":"bool"},{"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":"uint256"}],"outputs":[{"name":"","type":"uint256"}]}]

6020611cd06000396000518060a01c611ccb576040526020611cf06000396000518060a01c611ccb5760605234611ccb57604051611b3352611b33516382c63066608052602060806004609c845afa61005d573d600060003e3d6000fd5b60203d10611ccb576080518060a01c611ccb5760c05260c0905051611b535260403660803760006002905b8060c052611b335163c661065760e05260c05161010052602060e0602460fc845afa6100b9573d600060003e3d6000fd5b60203d10611ccb5760e0518060a01c611ccb576101205261012090505160c05160018111611ccb5760051b60800152600101818118610088575050608051611b735260a051611b9352606051611b135260006002905b8060051b6080015160c05260c05163095ea7b360e052604051610100527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61012052803b15611ccb57600060e0604460fc6000855af1610174573d600060003e3d6000fd5b506001600060c051602052600052604060002080604051602052600052604060002090505560010181811861010f575050611b136101b761000039611bb3610000f36003361161000c5761183c565b60003560e01c6364a1455881186100355760a43618611b03576000610240523361026052610093565b632bf78c6181186100615760c43618611b035760a4358060011c611b0357610240523361026052610093565b63b837cc6981186106295760e43618611b035760a4358060011c611b03576102405260c4358060a01c611b0357610260525b6004358060a01c611b0357610220526044356024351815611b0357610240516100bc5734611b03575b6020611b73600039600051610280526020611b936000396000516102a05260243561032f576102205163c66106576102e0526024356103005260206102e060246102fc845afa610111573d600060003e3d6000fd5b60203d10611b03576102e0518060a01c611b0357610320526103209050516102c0526102c051604052606435606052336080523460a0526102405160c052600060e05261015f610300611845565b610300516102e05260006102c051602052600052604060002080610220516020526000526040600020905054610216576102c05163095ea7b36103005261022051610320527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61034052803b15611b03576000610300604461031c6000855af16101ee573d600060003e3d6000fd5b50600160006102c0516020526000526040600020806102205160205260005260406000209050555b6102205163394747c561032052602435610340526001610360526064356103805260006103a052610240516103c052602061032060a461033c6102e051855af1610265573d600060003e3d6000fd5b60203d10611b0357610320905051610300526020611b33600039600051631a4d01d261032052610300516103405260443560018103818111611b0357905080607f1c611b03576103605260843561038052803b15611b03576000610320606461033c6000855af16102db573d600060003e3d6000fd5b5060443560018103818111611b0357905060018111611b035760051b61028001516102c05260206102c0516040526102605160605261024051608052600160a052610327610320611960565b610320610627565b60243560018103818111611b0357905080607f1c611b03576102c0526102c05160018111611b035760051b6102800151604052606435606052336080523460a0526102405160c052600160e0526103876102e0611845565b6102e050604435610576576040366102e0376064356102c05160018111611b035760051b6102e001526020611b33600039600051630b4c7e4d610320526102e051610340526103005161036052600061038052803b15611b03576000610320606461033c6000855af16103ff573d600060003e3d6000fd5b5060006020611b536000396000516020526000526040600020806102205160205260005260406000209050546104c4576020611b5360003960005163095ea7b36103205261022051610340527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61036052803b15611b03576000610320604461033c6000855af1610495573d600060003e3d6000fd5b50600160006020611b536000396000516020526000526040600020806102205160205260005260406000209050555b6020611b536000396000516370a082316103405230610360526020610340602461035c845afa6104f9573d600060003e3d6000fd5b60203d10611b03576103409050516103205260206102205163ce7d65036103405260016103605260443561038052610320516103a0526084356103c052610240516103e0526102605161040052602061034060c461035c6000855af1610564573d600060003e3d6000fd5b60203d10611b03576103409050610627565b60443560018103818111611b0357905080607f1c611b03576102e0526020611b33600039600051633df02124610300526102c051610320526102e051610340526040606461036037803b15611b03576000610300608461031c6000855af16105e3573d600060003e3d6000fd5b506102e05160018111611b035760051b6102800151610300526020610300516040526102605160605261024051608052600160a052610623610320611960565b6103205bf35b63a3185179811861064c5760a43618611b035760006102405233610260526106aa565b632ddd67cf81186106785760c43618611b035760a4358060011c611b03576102405233610260526106aa565b635507c9c48118610ab95760e43618611b035760a4358060011c611b03576102405260c4358060a01c611b0357610260525b6004358060a01c611b035761022052610240516106c75734611b03575b60a036610280376020611b73600039600051610320526020611b936000396000516103405260006103605260243515610836576102205163c66106576103a05260006103c05260206103a060246103bc845afa610729573d600060003e3d6000fd5b60203d10611b03576103a0518060a01c611b03576103e0526103e09050516103805261038051604052602435606052336080523460a0526102405160c052600060e0526107776103a0611845565b6103a0516103605260006103805160205260005260406000208061022051602052600052604060002090505461082e576103805163095ea7b36103a052610220516103c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103e052803b15611b035760006103a060446103bc6000855af1610806573d600060003e3d6000fd5b5060016000610380516020526000526040600020806102205160205260005260406000209050555b602435610280525b600160028101905b80610380526103805160028111611b035760051b602401356103a0526103a051610867576108e4565b6001610300526103805160018103818111611b035790506103c0526103c05160018111611b035760051b61032001516103e0526103e0516040526103a051606052336080523460a0526102405160c052600160e0526108c7610400611845565b610400506103a0516103c05160018111611b035760051b6102c001525b60010181811861083e5750506103005115610a54576020611b33600039600051630b4c7e4d610380526102c0516103a0526102e0516103c05260006103e052803b15611b03576000610380606461039c6000855af1610948573d600060003e3d6000fd5b506020611b536000396000516370a0823161038052306103a0526020610380602461039c845afa61097e573d600060003e3d6000fd5b60203d10611b03576103809050516102a05260006020611b53600039600051602052600052604060002080610220516020526000526040600020905054610a54576020611b5360003960005163095ea7b361038052610220516103a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103c052803b15611b03576000610380604461039c6000855af1610a25573d600060003e3d6000fd5b50600160006020611b536000396000516020526000526040600020806102205160205260005260406000209050555b602061022051637328333b61038052610280516103a0526102a0516103c0526084356103e05261024051610400526102605161042052602061038060a461039c61036051855af1610aaa573d600060003e3d6000fd5b60203d10611b03576103809050f35b635d6362bb8118610ae55760043618611b035734611b03576020611b3360003960005160405260206040f35b6375ce738e8118610b115760043618611b035734611b03576020611b5360003960005160405260206040f35b63d55d1dd98118610be35760243618611b03576004358060a01c611b035760405234611b03576040516386fc88d3608052602060806004609c845afa610b5c573d600060003e3d6000fd5b60203d10611b035760809050516060526020611b3360003960005163bb7b8b8060a052602060a0600460bc845afa610b99573d600060003e3d6000fd5b60203d10611b035760a0905051608052608051670de0b6b3a7640000810281670de0b6b3a7640000820418611b035790506060518015611b03578082049050905060a052602060a0f35b638bc3103e8118610cb55760243618611b03576004358060a01c611b035760405234611b035760405163b9e8c9fd608052602060806004609c845afa610c2e573d600060003e3d6000fd5b60203d10611b035760809050516060526020611b3360003960005163bb7b8b8060a052602060a0600460bc845afa610c6b573d600060003e3d6000fd5b60203d10611b035760a0905051608052608051670de0b6b3a7640000810281670de0b6b3a7640000820418611b035790506060518015611b03578082049050905060a052602060a0f35b6353b8e11f8118610db55760243618611b03576004358060a01c611b035760405234611b03576040516354f0f7d5608052602060806004609c845afa610d00573d600060003e3d6000fd5b60203d10611b035760809050516060526040516386fc88d360a052602060a0600460bc845afa610d35573d600060003e3d6000fd5b60203d10611b035760a09050516080526020611b3360003960005163bb7b8b8060c052602060c0600460dc845afa610d72573d600060003e3d6000fd5b60203d10611b035760c090505160a05260605160a051808202811583838304141715611b0357905090506080518015611b03578082049050905060c052602060c0f35b63e9737ee28118610fd95760843618611b03576004358060a01c611b035760405234611b03576044356024351815611b0357602435610e955760405163556d6e9f60805260243560a052600160c05260643560e052602060806064609c845afa610e24573d600060003e3d6000fd5b60203d10611b0357608090505160605260206020611b3360003960005163cc2b27d760805260605160a05260443560018103818111611b0357905080607f1c611b035760c052602060806044609c845afa610e84573d600060003e3d6000fd5b60203d10611b035760809050610fd7565b604435610f5f5760403660603760643560243560018103818111611b0357905060018111611b035760051b606001526020611b3360003960005163ed8e84f360c05260605160e05260805161010052600161012052602060c0606460dc845afa610f04573d600060003e3d6000fd5b60203d10611b035760c090505160a052602060405163556d6e9f60c052600160e0526044356101005260a05161012052602060c0606460dc845afa610f4e573d600060003e3d6000fd5b60203d10611b035760c09050610fd7565b60206020611b33600039600051635e0d443f60605260243560018103818111611b0357905080607f1c611b035760805260443560018103818111611b0357905080607f1c611b035760a05260643560c052602060606064607c845afa610fca573d600060003e3d6000fd5b60203d10611b0357606090505bf35b636aeeb74f81186111205760843618611b03576004358060a01c611b035760405234611b035760a03660603760243560605260006002905b80610100526101005160018101818110611b0357905060028111611b035760051b602401356101005160018111611b035760051b60a001526101005160018111611b035760051b60a001511561106757600160e0525b60010181811861101157505060e051156110d9576020611b3360003960005163ed8e84f36101205260a0516101405260c051610160526001610180526020610120606461013c845afa6110bf573d600060003e3d6000fd5b60203d10611b035761012090505161010052610100516080525b6020604051638d8ea7276101005260605161012052608051610140526020610100604461011c845afa611111573d600060003e3d6000fd5b60203d10611b03576101009050f35b638fa892a681186111435760a43618611b035760006102005233610220526111a1565b63aa40c940811861116f5760c43618611b035760a4358060011c611b03576102005233610220526111a1565b634963f77d811861149d5760e43618611b035760a4358060011c611b03576102005260c4358060a01c611b0357610220525b6004358060a01c611b03576101e05234611b03576101e05163fc0c546a610260526020610260600461027c845afa6111de573d600060003e3d6000fd5b60203d10611b0357610260518060a01c611b03576102a0526102a090505161024052610240516323b872dd610260523361028052306102a0526024356102c052803b15611b03576000610260606461027c6000855af1611243573d600060003e3d6000fd5b5060a036610260376101e05163269b55816103005260243561032052604435610340526000610360526102005161038052803b15611b03576000610300608461031c6000855af1611299573d600060003e3d6000fd5b506020611b536000396000516370a082316103205230610340526020610320602461033c845afa6112cf573d600060003e3d6000fd5b60203d10611b03576103209050516103005260006002905b8061032052610320518060010160018110611b0357905060028111611b035760051b604401356103205160018111611b035760051b61026001526001018181186112e75750506020611b33600039600051635b36389c61032052610300516103405261026051610360526102805161038052803b15611b03576000610320606461033c6000855af161137e573d600060003e3d6000fd5b506101e05163c6610657610340526000610360526020610340602461035c845afa6113ae573d600060003e3d6000fd5b60203d10611b0357610340518060a01c611b03576103805261038090505161032052610320516040526102205160605261020051608052600060a0526113f5610340611960565b610340516102a0526020611b73600039600051610340526020611b9360003960005161036052600160028101905b80610380526103805160018103818111611b0357905060018111611b035760051b610340015161032052610320516040526102205160605261020051608052600160a0526114726103a0611960565b6103a0516103805160028111611b035760051b6102a0015260010181811861142357505060606102a0f35b63c5bdcd0981186114c05760843618611b0357600061020052336102205261151e565b63d694352581186114ec5760a43618611b03576084358060011c611b035761020052336102205261151e565b630664b693811861172f5760c43618611b03576084358060011c611b03576102005260a4358060a01c611b0357610220525b6004358060a01c611b03576101e05234611b03576101e05163fc0c546a610260526020610260600461027c845afa61155b573d600060003e3d6000fd5b60203d10611b0357610260518060a01c611b03576102a0526102a090505161024052610240516323b872dd610260523361028052306102a0526024356102c052803b15611b03576000610260606461027c6000855af16115c0573d600060003e3d6000fd5b5060443561161f5760206101e0516307329bcd610260526060602461028037610200516102e0526102205161030052602061026060a461027c6000855af161160d573d600060003e3d6000fd5b60203d10611b0357610260905061172d565b6101e05163f1dc3cc9610280526024356102a05260016102c05260006102e0526020610280606461029c6000855af161165d573d600060003e3d6000fd5b60203d10611b0357610280905051610260526020611b33600039600051631a4d01d261028052610260516102a05260443560018103818111611b0357905080607f1c611b03576102c0526064356102e052803b15611b03576000610280606461029c6000855af16116d3573d600060003e3d6000fd5b50602060443560018103818111611b0357905060018111611b035760051b606001611b1301600039600051610280526020610280516040526102205160605261020051608052600160a0526117296102a0611960565b6102a05bf35b639aed0eea811861183a5760643618611b03576004358060a01c611b035760405234611b035760443561179b576020604051634fb08c5e60605260406024608037602060606044607c845afa61178a573d600060003e3d6000fd5b60203d10611b035760609050611838565b604051634fb08c5e60805260243560a052600160c052602060806044609c845afa6117cb573d600060003e3d6000fd5b60203d10611b0357608090505160605260206020611b3360003960005163cc2b27d760805260605160a05260443560018103818111611b0357905080607f1c611b035760c052602060806044609c845afa61182b573d600060003e3d6000fd5b60203d10611b0357608090505bf35b505b333b15611b0357005b60c051611853576000611864565b6020611b1360003960005160405118155b6118fb576323b872dd6101445260046080516101645230610184526060516101a452606001610140526101405060206102006101405161016060006040515af16118b3573d600060003e3d6000fd5b3d602081183d60201002186101e0526101e08051806101005260208201805161012052505050610100511561195857610120516101005160200360031b1c15611b0357611958565b60605160a05118611b035760e05161191c5760605181525061195e56611958565b6020611b1360003960005163d0e30db061010052803b15611b03576000610100600461011c606051855af1611956573d600060003e3d6000fd5b505b60008152505b565b600060c052608051611973576000611984565b6020611b1360003960005160405118155b611a4d576040516370a0823160e0523061010052602060e0602460fc845afa6119b2573d600060003e3d6000fd5b60203d10611b035760e090505160c05263a9059cbb6101245260046060516101445260c05161016452604001610120526101205060206101c06101205161014060006040515af1611a08573d600060003e3d6000fd5b3d602081183d60201002186101a0526101a080518060e0526020820180516101005250505060e05115611afb576101005160e05160200360031b1c15611b0357611afb565b60a05115611ace576040516370a0823160e0523061010052602060e0602460fc845afa611a7f573d600060003e3d6000fd5b60203d10611b035760e090505160c0526020611b13600039600051632e1a7d4d60e05260c05161010052803b15611b0357600060e0602460fc6000855af1611acc573d600060003e3d6000fd5b505b4760c052600060e05260e0506000600060e05161010060c0516060515af1611afb573d600060003e3d6000fd5b60c051815250565b600080fda165767970657283000304005b600080fd000000000000000000000000dcef968d416a41cdac0ed8702fac8128a64241a2000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x6003361161000c5761183c565b60003560e01c6364a1455881186100355760a43618611b03576000610240523361026052610093565b632bf78c6181186100615760c43618611b035760a4358060011c611b0357610240523361026052610093565b63b837cc6981186106295760e43618611b035760a4358060011c611b03576102405260c4358060a01c611b0357610260525b6004358060a01c611b0357610220526044356024351815611b0357610240516100bc5734611b03575b6020611b73600039600051610280526020611b936000396000516102a05260243561032f576102205163c66106576102e0526024356103005260206102e060246102fc845afa610111573d600060003e3d6000fd5b60203d10611b03576102e0518060a01c611b0357610320526103209050516102c0526102c051604052606435606052336080523460a0526102405160c052600060e05261015f610300611845565b610300516102e05260006102c051602052600052604060002080610220516020526000526040600020905054610216576102c05163095ea7b36103005261022051610320527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61034052803b15611b03576000610300604461031c6000855af16101ee573d600060003e3d6000fd5b50600160006102c0516020526000526040600020806102205160205260005260406000209050555b6102205163394747c561032052602435610340526001610360526064356103805260006103a052610240516103c052602061032060a461033c6102e051855af1610265573d600060003e3d6000fd5b60203d10611b0357610320905051610300526020611b33600039600051631a4d01d261032052610300516103405260443560018103818111611b0357905080607f1c611b03576103605260843561038052803b15611b03576000610320606461033c6000855af16102db573d600060003e3d6000fd5b5060443560018103818111611b0357905060018111611b035760051b61028001516102c05260206102c0516040526102605160605261024051608052600160a052610327610320611960565b610320610627565b60243560018103818111611b0357905080607f1c611b03576102c0526102c05160018111611b035760051b6102800151604052606435606052336080523460a0526102405160c052600160e0526103876102e0611845565b6102e050604435610576576040366102e0376064356102c05160018111611b035760051b6102e001526020611b33600039600051630b4c7e4d610320526102e051610340526103005161036052600061038052803b15611b03576000610320606461033c6000855af16103ff573d600060003e3d6000fd5b5060006020611b536000396000516020526000526040600020806102205160205260005260406000209050546104c4576020611b5360003960005163095ea7b36103205261022051610340527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61036052803b15611b03576000610320604461033c6000855af1610495573d600060003e3d6000fd5b50600160006020611b536000396000516020526000526040600020806102205160205260005260406000209050555b6020611b536000396000516370a082316103405230610360526020610340602461035c845afa6104f9573d600060003e3d6000fd5b60203d10611b03576103409050516103205260206102205163ce7d65036103405260016103605260443561038052610320516103a0526084356103c052610240516103e0526102605161040052602061034060c461035c6000855af1610564573d600060003e3d6000fd5b60203d10611b03576103409050610627565b60443560018103818111611b0357905080607f1c611b03576102e0526020611b33600039600051633df02124610300526102c051610320526102e051610340526040606461036037803b15611b03576000610300608461031c6000855af16105e3573d600060003e3d6000fd5b506102e05160018111611b035760051b6102800151610300526020610300516040526102605160605261024051608052600160a052610623610320611960565b6103205bf35b63a3185179811861064c5760a43618611b035760006102405233610260526106aa565b632ddd67cf81186106785760c43618611b035760a4358060011c611b03576102405233610260526106aa565b635507c9c48118610ab95760e43618611b035760a4358060011c611b03576102405260c4358060a01c611b0357610260525b6004358060a01c611b035761022052610240516106c75734611b03575b60a036610280376020611b73600039600051610320526020611b936000396000516103405260006103605260243515610836576102205163c66106576103a05260006103c05260206103a060246103bc845afa610729573d600060003e3d6000fd5b60203d10611b03576103a0518060a01c611b03576103e0526103e09050516103805261038051604052602435606052336080523460a0526102405160c052600060e0526107776103a0611845565b6103a0516103605260006103805160205260005260406000208061022051602052600052604060002090505461082e576103805163095ea7b36103a052610220516103c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103e052803b15611b035760006103a060446103bc6000855af1610806573d600060003e3d6000fd5b5060016000610380516020526000526040600020806102205160205260005260406000209050555b602435610280525b600160028101905b80610380526103805160028111611b035760051b602401356103a0526103a051610867576108e4565b6001610300526103805160018103818111611b035790506103c0526103c05160018111611b035760051b61032001516103e0526103e0516040526103a051606052336080523460a0526102405160c052600160e0526108c7610400611845565b610400506103a0516103c05160018111611b035760051b6102c001525b60010181811861083e5750506103005115610a54576020611b33600039600051630b4c7e4d610380526102c0516103a0526102e0516103c05260006103e052803b15611b03576000610380606461039c6000855af1610948573d600060003e3d6000fd5b506020611b536000396000516370a0823161038052306103a0526020610380602461039c845afa61097e573d600060003e3d6000fd5b60203d10611b03576103809050516102a05260006020611b53600039600051602052600052604060002080610220516020526000526040600020905054610a54576020611b5360003960005163095ea7b361038052610220516103a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103c052803b15611b03576000610380604461039c6000855af1610a25573d600060003e3d6000fd5b50600160006020611b536000396000516020526000526040600020806102205160205260005260406000209050555b602061022051637328333b61038052610280516103a0526102a0516103c0526084356103e05261024051610400526102605161042052602061038060a461039c61036051855af1610aaa573d600060003e3d6000fd5b60203d10611b03576103809050f35b635d6362bb8118610ae55760043618611b035734611b03576020611b3360003960005160405260206040f35b6375ce738e8118610b115760043618611b035734611b03576020611b5360003960005160405260206040f35b63d55d1dd98118610be35760243618611b03576004358060a01c611b035760405234611b03576040516386fc88d3608052602060806004609c845afa610b5c573d600060003e3d6000fd5b60203d10611b035760809050516060526020611b3360003960005163bb7b8b8060a052602060a0600460bc845afa610b99573d600060003e3d6000fd5b60203d10611b035760a0905051608052608051670de0b6b3a7640000810281670de0b6b3a7640000820418611b035790506060518015611b03578082049050905060a052602060a0f35b638bc3103e8118610cb55760243618611b03576004358060a01c611b035760405234611b035760405163b9e8c9fd608052602060806004609c845afa610c2e573d600060003e3d6000fd5b60203d10611b035760809050516060526020611b3360003960005163bb7b8b8060a052602060a0600460bc845afa610c6b573d600060003e3d6000fd5b60203d10611b035760a0905051608052608051670de0b6b3a7640000810281670de0b6b3a7640000820418611b035790506060518015611b03578082049050905060a052602060a0f35b6353b8e11f8118610db55760243618611b03576004358060a01c611b035760405234611b03576040516354f0f7d5608052602060806004609c845afa610d00573d600060003e3d6000fd5b60203d10611b035760809050516060526040516386fc88d360a052602060a0600460bc845afa610d35573d600060003e3d6000fd5b60203d10611b035760a09050516080526020611b3360003960005163bb7b8b8060c052602060c0600460dc845afa610d72573d600060003e3d6000fd5b60203d10611b035760c090505160a05260605160a051808202811583838304141715611b0357905090506080518015611b03578082049050905060c052602060c0f35b63e9737ee28118610fd95760843618611b03576004358060a01c611b035760405234611b03576044356024351815611b0357602435610e955760405163556d6e9f60805260243560a052600160c05260643560e052602060806064609c845afa610e24573d600060003e3d6000fd5b60203d10611b0357608090505160605260206020611b3360003960005163cc2b27d760805260605160a05260443560018103818111611b0357905080607f1c611b035760c052602060806044609c845afa610e84573d600060003e3d6000fd5b60203d10611b035760809050610fd7565b604435610f5f5760403660603760643560243560018103818111611b0357905060018111611b035760051b606001526020611b3360003960005163ed8e84f360c05260605160e05260805161010052600161012052602060c0606460dc845afa610f04573d600060003e3d6000fd5b60203d10611b035760c090505160a052602060405163556d6e9f60c052600160e0526044356101005260a05161012052602060c0606460dc845afa610f4e573d600060003e3d6000fd5b60203d10611b035760c09050610fd7565b60206020611b33600039600051635e0d443f60605260243560018103818111611b0357905080607f1c611b035760805260443560018103818111611b0357905080607f1c611b035760a05260643560c052602060606064607c845afa610fca573d600060003e3d6000fd5b60203d10611b0357606090505bf35b636aeeb74f81186111205760843618611b03576004358060a01c611b035760405234611b035760a03660603760243560605260006002905b80610100526101005160018101818110611b0357905060028111611b035760051b602401356101005160018111611b035760051b60a001526101005160018111611b035760051b60a001511561106757600160e0525b60010181811861101157505060e051156110d9576020611b3360003960005163ed8e84f36101205260a0516101405260c051610160526001610180526020610120606461013c845afa6110bf573d600060003e3d6000fd5b60203d10611b035761012090505161010052610100516080525b6020604051638d8ea7276101005260605161012052608051610140526020610100604461011c845afa611111573d600060003e3d6000fd5b60203d10611b03576101009050f35b638fa892a681186111435760a43618611b035760006102005233610220526111a1565b63aa40c940811861116f5760c43618611b035760a4358060011c611b03576102005233610220526111a1565b634963f77d811861149d5760e43618611b035760a4358060011c611b03576102005260c4358060a01c611b0357610220525b6004358060a01c611b03576101e05234611b03576101e05163fc0c546a610260526020610260600461027c845afa6111de573d600060003e3d6000fd5b60203d10611b0357610260518060a01c611b03576102a0526102a090505161024052610240516323b872dd610260523361028052306102a0526024356102c052803b15611b03576000610260606461027c6000855af1611243573d600060003e3d6000fd5b5060a036610260376101e05163269b55816103005260243561032052604435610340526000610360526102005161038052803b15611b03576000610300608461031c6000855af1611299573d600060003e3d6000fd5b506020611b536000396000516370a082316103205230610340526020610320602461033c845afa6112cf573d600060003e3d6000fd5b60203d10611b03576103209050516103005260006002905b8061032052610320518060010160018110611b0357905060028111611b035760051b604401356103205160018111611b035760051b61026001526001018181186112e75750506020611b33600039600051635b36389c61032052610300516103405261026051610360526102805161038052803b15611b03576000610320606461033c6000855af161137e573d600060003e3d6000fd5b506101e05163c6610657610340526000610360526020610340602461035c845afa6113ae573d600060003e3d6000fd5b60203d10611b0357610340518060a01c611b03576103805261038090505161032052610320516040526102205160605261020051608052600060a0526113f5610340611960565b610340516102a0526020611b73600039600051610340526020611b9360003960005161036052600160028101905b80610380526103805160018103818111611b0357905060018111611b035760051b610340015161032052610320516040526102205160605261020051608052600160a0526114726103a0611960565b6103a0516103805160028111611b035760051b6102a0015260010181811861142357505060606102a0f35b63c5bdcd0981186114c05760843618611b0357600061020052336102205261151e565b63d694352581186114ec5760a43618611b03576084358060011c611b035761020052336102205261151e565b630664b693811861172f5760c43618611b03576084358060011c611b03576102005260a4358060a01c611b0357610220525b6004358060a01c611b03576101e05234611b03576101e05163fc0c546a610260526020610260600461027c845afa61155b573d600060003e3d6000fd5b60203d10611b0357610260518060a01c611b03576102a0526102a090505161024052610240516323b872dd610260523361028052306102a0526024356102c052803b15611b03576000610260606461027c6000855af16115c0573d600060003e3d6000fd5b5060443561161f5760206101e0516307329bcd610260526060602461028037610200516102e0526102205161030052602061026060a461027c6000855af161160d573d600060003e3d6000fd5b60203d10611b0357610260905061172d565b6101e05163f1dc3cc9610280526024356102a05260016102c05260006102e0526020610280606461029c6000855af161165d573d600060003e3d6000fd5b60203d10611b0357610280905051610260526020611b33600039600051631a4d01d261028052610260516102a05260443560018103818111611b0357905080607f1c611b03576102c0526064356102e052803b15611b03576000610280606461029c6000855af16116d3573d600060003e3d6000fd5b50602060443560018103818111611b0357905060018111611b035760051b606001611b1301600039600051610280526020610280516040526102205160605261020051608052600160a0526117296102a0611960565b6102a05bf35b639aed0eea811861183a5760643618611b03576004358060a01c611b035760405234611b035760443561179b576020604051634fb08c5e60605260406024608037602060606044607c845afa61178a573d600060003e3d6000fd5b60203d10611b035760609050611838565b604051634fb08c5e60805260243560a052600160c052602060806044609c845afa6117cb573d600060003e3d6000fd5b60203d10611b0357608090505160605260206020611b3360003960005163cc2b27d760805260605160a05260443560018103818111611b0357905080607f1c611b035760c052602060806044609c845afa61182b573d600060003e3d6000fd5b60203d10611b0357608090505bf35b505b333b15611b0357005b60c051611853576000611864565b6020611b1360003960005160405118155b6118fb576323b872dd6101445260046080516101645230610184526060516101a452606001610140526101405060206102006101405161016060006040515af16118b3573d600060003e3d6000fd5b3d602081183d60201002186101e0526101e08051806101005260208201805161012052505050610100511561195857610120516101005160200360031b1c15611b0357611958565b60605160a05118611b035760e05161191c5760605181525061195e56611958565b6020611b1360003960005163d0e30db061010052803b15611b03576000610100600461011c606051855af1611956573d600060003e3d6000fd5b505b60008152505b565b600060c052608051611973576000611984565b6020611b1360003960005160405118155b611a4d576040516370a0823160e0523061010052602060e0602460fc845afa6119b2573d600060003e3d6000fd5b60203d10611b035760e090505160c05263a9059cbb6101245260046060516101445260c05161016452604001610120526101205060206101c06101205161014060006040515af1611a08573d600060003e3d6000fd5b3d602081183d60201002186101a0526101a080518060e0526020820180516101005250505060e05115611afb576101005160e05160200360031b1c15611b0357611afb565b60a05115611ace576040516370a0823160e0523061010052602060e0602460fc845afa611a7f573d600060003e3d6000fd5b60203d10611b035760e090505160c0526020611b13600039600051632e1a7d4d60e05260c05161010052803b15611b0357600060e0602460fc6000855af1611acc573d600060003e3d6000fd5b505b4760c052600060e05260e0506000600060e05161010060c0516060515af1611afb573d600060003e3d6000fd5b60c051815250565b600080fda165767970657283000304000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dcef968d416a41cdac0ed8702fac8128a64241a20000000000000000000000003175df0976dfa876431c2e9ee6bc45b65d3473cc000000000000000000000000853d955acef822db058eb8505911ed77f175b99e000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48

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

000000000000000000000000dcef968d416a41cdac0ed8702fac8128a64241a2000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

-----Decoded View---------------
Arg [0] : _base_pool (address): 0xDcEF968d416a41Cdac0ED8702fAC8128A64241A2
Arg [1] : _weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000dcef968d416a41cdac0ed8702fac8128a64241a2
Arg [1] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2


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.