POL Price: $0.642238 (-8.77%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Remove_liquidity...652286082024-12-08 10:35:2630 hrs ago1733654126IN
Curve: EURTUSD Zap
0 POL0.0237083233.00000003
Exchange_underly...648063362024-11-27 20:37:1611 days ago1732739836IN
Curve: EURTUSD Zap
0 POL0.0253125432.60018561
Remove_liquidity639972202024-11-07 14:21:0032 days ago1730989260IN
Curve: EURTUSD Zap
0 POL0.0510180758.65852453
Remove_liquidity...634525622024-10-25 1:04:5545 days ago1729818295IN
Curve: EURTUSD Zap
0 POL0.0215486231.51001207
Exchange_underly...629891942024-10-13 13:47:1657 days ago1728827236IN
Curve: EURTUSD Zap
0 POL0.0216508530.00000002
Remove_liquidity...627970972024-10-08 20:01:3061 days ago1728417690IN
Curve: EURTUSD Zap
0 POL0.0279602842.00000007
Remove_liquidity...627498572024-10-07 15:59:5963 days ago1728316799IN
Curve: EURTUSD Zap
0 POL0.0268012739.1170986
Remove_liquidity...623085352024-09-26 18:28:0773 days ago1727375287IN
Curve: EURTUSD Zap
0 POL0.0182796631.40000003
Remove_liquidity618125382024-09-14 11:22:1386 days ago1726312933IN
Curve: EURTUSD Zap
0 POL0.0662908177.75519762
Remove_liquidity616924712024-09-11 11:32:3189 days ago1726054351IN
Curve: EURTUSD Zap
0 POL0.0246899328.38999997
Remove_liquidity...602459132024-08-06 2:59:09125 days ago1722913149IN
Curve: EURTUSD Zap
0 POL0.0225217631.44838532
Remove_liquidity...592734442024-07-12 14:34:56150 days ago1720794896IN
Curve: EURTUSD Zap
0 POL0.0713512798.59655514
Exchange_underly...588802582024-07-02 19:45:01159 days ago1719949501IN
Curve: EURTUSD Zap
0 POL0.023075330.00003072
Exchange_underly...583215162024-06-18 19:09:03173 days ago1718737743IN
Curve: EURTUSD Zap
0 POL0.0213390930.00000006
Remove_liquidity...581498802024-06-14 12:11:08178 days ago1718367068IN
Curve: EURTUSD Zap
0 POL0.0214876830.00042847
Exchange_underly...578837372024-06-07 18:40:08184 days ago1717785608IN
Curve: EURTUSD Zap
0 POL0.13992552181.89863588
Exchange_underly...577312012024-06-03 19:37:39188 days ago1717443459IN
Curve: EURTUSD Zap
0 POL0.0226893330.00000003
Exchange_underly...574601622024-05-27 18:34:36195 days ago1716834876IN
Curve: EURTUSD Zap
0 POL0.0227268230.00042784
Remove_liquidity...565690462024-05-04 13:28:49219 days ago1714829329IN
Curve: EURTUSD Zap
0 POL0.022449333.69476311
Remove_liquidity...562045432024-04-24 15:44:38229 days ago1713973478IN
Curve: EURTUSD Zap
0 POL0.13770004197
Remove_liquidity...561765812024-04-23 21:50:47229 days ago1713909047IN
Curve: EURTUSD Zap
0 POL0.0332312246
Add_liquidity561734942024-04-23 19:46:32229 days ago1713901592IN
Curve: EURTUSD Zap
0 POL0.0394502151.83874117
Remove_liquidity...559237802024-04-17 9:56:25236 days ago1713347785IN
Curve: EURTUSD Zap
0 POL0.23715777328
Exchange_underly...559224282024-04-17 9:03:43236 days ago1713344623IN
Curve: EURTUSD Zap
0 POL0.26141156332.94474398
Remove_liquidity559222222024-04-17 8:55:53236 days ago1713344153IN
Curve: EURTUSD Zap
0 POL0.19308856235.98929006
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.0

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

# @version 0.3.0
# EUR/a3crv pool where 3crv is _second_, not first
# Hardcoded addresses are for Polygon

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 underlying_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, use_underlying: bool) -> uint256: nonpayable
    def remove_liquidity_one_coin(token_amount: uint256, i: int128, min_amount: uint256, use_underlying: bool) -> uint256: nonpayable
    def remove_liquidity(amount: uint256, min_amounts: uint256[N_STABLECOINS], use_underlying: bool) -> uint256[N_STABLECOINS]: nonpayable
    def exchange_underlying(i: int128, j: int128, dx: uint256, min_dy: uint256) -> uint256: nonpayable
    def get_virtual_price() -> uint256: view


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

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).underlying_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, True)
        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, True)
        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, True)
        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], _min_amounts[3]]
    StableSwap(self.base_pool).remove_liquidity(value, base_min_amounts, True)
    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, True)
        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], _amounts[3]]
    base_lp: uint256 = 0
    if _amounts[1] + _amounts[2] + _amounts[3] > 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 Security Audit

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[4]"},{"name":"_min_mint_amount","type":"uint256"}],"outputs":[],"gas":60595},{"stateMutability":"nonpayable","type":"function","name":"add_liquidity","inputs":[{"name":"_amounts","type":"uint256[4]"},{"name":"_min_mint_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[],"gas":60595},{"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":48175},{"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":48175},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity","inputs":[{"name":"_amount","type":"uint256"},{"name":"_min_amounts","type":"uint256[4]"}],"outputs":[],"gas":89516},{"stateMutability":"nonpayable","type":"function","name":"remove_liquidity","inputs":[{"name":"_amount","type":"uint256"},{"name":"_min_amounts","type":"uint256[4]"},{"name":"_receiver","type":"address"}],"outputs":[],"gas":89516},{"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":31030},{"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":31030},{"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":20277},{"stateMutability":"view","type":"function","name":"calc_token_amount","inputs":[{"name":"_amounts","type":"uint256[4]"}],"outputs":[{"name":"","type":"uint256"}],"gas":10397},{"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}]

6f7fffffffffffffffffffffffffffffff6040526020611a2060c03960c0518060a01c611a1b578090506101405260206020611a200160c03960c0518060a01c611a1b5780905061016052610140516006556101605160075563fc0c546a610180526020610180600461019c610140515afa15611a1b57601f3d1115611a1b57610180518060a01c611a1b5780905060085561018060006003818352015b63b9947eb06101c052610180516101e05260206101c060246101dc610160515afa15611a1b57601f3d1115611a1b576101c0518060a01c611a1b578090506101a0526101a05160016101805160018181830110611a1b57808201905090506004811015611a1b57026002015560006004610200527f095ea7b3000000000000000000000000000000000000000000000000000000006102205261020060048060208461024001018260208501600060045af1505080518201915050610160516020826102400101526020810190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602082610240010152602081019050806102405261024090508051602001806102c08284600060045af115611a1b57505060206103606102c0516102e060006101a0515af115611a1b5760203d808211156101e757806101e9565b815b90509050610340526103408051602001806101c08284600060045af115611a1b57505060006101c051181561024b576101c08060200151600082518060209013611a1b5780919012611a1b57806020036101000a820490509050905015611a1b575b815160010180835281141561009d57505061018060006002818352015b63c66106576101c052610180516101e05260206101c060246101dc610140515afa15611a1b57601f3d1115611a1b576101c0518060a01c611a1b578090506101a0526101a0516001610180516002811015611a1b57025560016101805110156102e4576101a0516001610180516004811015611a1b5702600201555b60006004610200527f095ea7b3000000000000000000000000000000000000000000000000000000006102205261020060048060208461024001018260208501600060045af1505080518201915050610140516020826102400101526020810190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602082610240010152602081019050806102405261024090508051602001806102c08284600060045af115611a1b57505060206103606102c0516102e060006101a0515af115611a1b5760203d808211156103c257806103c4565b815b90509050610340526103408051602001806101c08284600060045af115611a1b57505060006101c0511815610426576101c08060200151600082518060209013611a1b5780919012611a1b57806020036101000a820490509050905015611a1b575b8151600101808352811415610268575050611a0356600436101561000d576115bc565b60046000601c376f7fffffffffffffffffffffffffffffff604052600051346115c2576386fc88d38114156100d8576386fc88d3610160526020610160600461017c6006545afa156115c257601f3d11156115c257610160516101405263bb7b8b80610180526020610180600461019c6007545afa156115c257601f3d11156115c257610180516101605261016051670de0b6b3a76400008082028215828483041417156115c25780905090509050610140518080156115c257820490509050610180526020610180f35b63b9e8c9fd8114156101805763b9e8c9fd610160526020610160600461017c6006545afa156115c257601f3d11156115c257610160516101405263bb7b8b80610180526020610180600461019c6007545afa156115c257601f3d11156115c257610180516101605261016051670de0b6b3a76400008082028215828483041417156115c25780905090509050610140518080156115c257820490509050610180526020610180f35b63029b2f348114156101965733610140526101b5565b63cb4950648114156106485760a4358060a01c6115c257809050610140525b60c0366101603761022060016003818352015b60206102205102600401356102405260006102405118156103895760016102205160048110156115c257026002015461026052600060046102c0527f23b872dd000000000000000000000000000000000000000000000000000000006102e0526102c060048060208461030001018260208501600060045af1505080518201915050336020826103000101526020810190503060208261030001015260208101905061024051602082610300010152602081019050806103005261030090508051602001806103a08284600060045af1156115c257505060206104606103a0516103c06000610260515af1156115c25760203d808211156102c957806102cb565b815b90509050610440526104408051602001806102808284600060045af1156115c2575050600061028051181561032d5761028080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b6370a082316102c052306102e05260206102c060246102dc610260515afa156115c257601f3d11156115c2576102c0516101606102205160018082106115c2578082039050905060038110156115c25760200201526001610200525b81516001018083528114156101c8575050610200511561042757632b6e993a61022052610160516102405261018051610260526101a0516102805260006102a05260016102c052602061022060a461023c60006007545af1156115c257601f3d11156115c257610220506370a082316102205230610240526020610220602461023c6001545afa156115c257601f3d11156115c257610220516101e0525b61022060006001818352015b60206102205102600401356102405260006102405118156105b25760016102205160048110156115c257026002015461026052600060046102c0527f23b872dd000000000000000000000000000000000000000000000000000000006102e0526102c060048060208461030001018260208501600060045af1505080518201915050336020826103000101526020810190503060208261030001015260208101905061024051602082610300010152602081019050806103005261030090508051602001806103a08284600060045af1156115c257505060206104606103a0516103c06000610260515af1156115c25760203d808211156105345780610536565b815b90509050610440526104408051602001806102808284600060045af1156115c257505060006102805118156105985761028080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b610240516101c06102205160028110156115c25760200201525b8151600101808352811415610433575050630b4c7e4d610240526101c051610260526101e051610280526084356102a0526020610240606461025c60006006545af1156115c257601f3d11156115c257610240516102205263a9059cbb61024052610140516102605261022051610280526020610240604461025c60006008545af1156115c257601f3d11156115c25761024050005b6365b2489b81141561065e57336101405261067d565b63e2ad025a811415610b31576084358060a01c6115c257809050610140525b60243560043518156115c257600060046101a0527f23b872dd000000000000000000000000000000000000000000000000000000006101c0526101a06004806020846101e001018260208501600060045af1505080518201915050336020826101e0010152602081019050306020826101e00101526020810190506044356020826101e0010152602081019050806101e0526101e090508051602001806102808284600060045af1156115c25750506020610340610280516102a06000600160043560048110156115c25702600201545af1156115c25760203d808211156107655780610767565b815b90509050610320526103208051602001806101608284600060045af1156115c257505060006101605118156107c95761016080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b6044356101a0526004356001808211156107e357806107e5565b815b905090506101c0526024356001808211156108005780610802565b815b905090506101e0526001600435106108c757606036610200376101a05161020060043560018082106115c2578082039050905060038110156115c2576020020152632b6e993a610260526102005161028052610220516102a052610240516102c05260006102e052600161030052602061026060a461027c60006007545af1156115c257601f3d11156115c257610260506370a082316102605230610280526020610260602461027c6001545afa156115c257601f3d11156115c257610260516101a0525b6101a051610200526101e0516101c051181561092c57635b41b908610220526101c051610240526101e051610260526101a0516102805260006102a0526020610220608461023c60006006545af1156115c257601f3d11156115c25761022051610200525b60016101e05114156109e15763517a55a361022052610200516102405260243560018082106115c2578082039050905060405181116115c257610260526064356102805260016102a0526020610220608461023c60006007545af1156115c257601f3d11156115c257610220506370a082316102205230610240526020610220602461023c600160243560048110156115c25702600201545afa156115c257601f3d11156115c25761022051610200526109ee565b60643561020051106115c2575b60006004610220527fa9059cbb000000000000000000000000000000000000000000000000000000006102405261022060048060208461026001018260208501600060045af15050805182019150506101405160208261026001015260208101905061020051602082610260010152602081019050806102605261026090508051602001806102e08284600060045af1156115c257505060206103806102e0516103006000600160243560048110156115c25702600201545af1156115c25760203d80821115610abe5780610ac0565b815b90509050610360526103608051602001806101608284600060045af1156115c25750506000610160511815610b225761016080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b61020051610220526020610220f35b637d49d875811415610b47573361014052610b66565b63b2fdb76f811415610e205760a4358060a01c6115c257809050610140525b6323b872dd610160523361018052306101a0526004356101c0526020610160606461017c60006008545af1156115c257601f3d11156115c2576101605060243561016052600061018052635b36389c6101a0526004356101c052610160516101e05261018051610200526006543b156115c2576000600060646101bc60006006545af1156115c2576370a082316101c052306101e05260206101c060246101dc6001545afa156115c257601f3d11156115c2576101c0516101a0526044356101c0526064356101e0526084356102005263fce64736610220526101a051610240526101c051610260526101e05161028052610200516102a05260016102c052606061022060a461023c60006007545af1156115c257605f3d11156115c2576102205061022060006004818352015b6370a082316102405230610260526020610240602461025c60016102205160048110156115c25702600201545afa156115c257601f3d11156115c257610240516101a05260006004610280527fa9059cbb000000000000000000000000000000000000000000000000000000006102a0526102806004806020846102c001018260208501600060045af1505080518201915050610140516020826102c00101526020810190506101a0516020826102c0010152602081019050806102c0526102c090508051602001806103408284600060045af1156115c257505060206103e061034051610360600060016102205160048110156115c25702600201545af1156115c25760203d80821115610da95780610dab565b815b905090506103c0526103c08051602001806102408284600060045af1156115c25750506000610240511815610e0d5761024080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b8151600101808352811415610c94575050005b63f1dc3cc9811415610e36573361014052610e55565b630fbcee6e8114156110ec576064358060a01c6115c257809050610140525b6323b872dd610160523361018052306101a0526004356101c0526020610160606461017c60006008545af1156115c257601f3d11156115c25761016050602435600180821115610ea55780610ea7565b815b905090506101605263f1dc3cc96101a0526004356101c052610160516101e05260006102005260206101a060646101bc60006006545af1156115c257601f3d11156115c2576101a051610180526001610160511415610fa95763517a55a36101a052610180516101c05260243560018082106115c2578082039050905060405181116115c2576101e0526044356102005260016102205260206101a060846101bc60006007545af1156115c257601f3d11156115c2576101a0506370a082316101a052306101c05260206101a060246101bc600160243560048110156115c25702600201545afa156115c257601f3d11156115c2576101a05161018052610fb6565b60443561018051106115c2575b600060046101e0527fa9059cbb00000000000000000000000000000000000000000000000000000000610200526101e060048060208461022001018260208501600060045af15050805182019150506101405160208261022001015260208101905061018051602082610220010152602081019050806102205261022090508051602001806102a08284600060045af1156115c257505060206103406102a0516102c06000600160243560048110156115c25702600201545af1156115c25760203d808211156110865780611088565b815b90509050610320526103208051602001806101a08284600060045af1156115c257505060006101a05118156110ea576101a080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b005b6385f11d1e81141561132c5760016004356024358082111561110e5780611110565b815b905090501061119857635e0d443f6101405260043560018082106115c2578082039050905060405181116115c2576101605260243560018082106115c2578082039050905060405181116115c257610180526044356101a0526020610140606461015c6007545afa156115c257601f3d11156115c257610140516101c05260206101c061132a565b604435610140526004356001808211156111b257806111b4565b815b90509050610160526024356001808211156111cf57806111d1565b815b90509050610180526001610160511415611261576060366101a037610140516101a060043560018082106115c2578082039050905060038110156115c2576020020152633883e119610200526101a051610220526101c051610240526101e051610260526001610280526020610200608461021c6007545afa156115c257601f3d11156115c25761020051610140525b63556d6e9f6101c052610160516101e0526101805161020052610140516102205260206101c060646101dc6006545afa156115c257601f3d11156115c2576101c0516101a05260016101805114156113175763cc2b27d76101c0526101a0516101e05260243560018082106115c2578082039050905060405181116115c2576102005260206101c060446101dc6007545afa156115c257601f3d11156115c2576101c05161022052602061022061132a56611329565b6101a0516101c05260206101c061132a565b5bf35b631a8051858114156114255760243561014052604435610160526064356101805260006101a052600060243560443581818301106115c2578082019050905060643581818301106115c2578082019050905011156113d157633883e1196101c052610140516101e0526101605161020052610180516102205260016102405260206101c060846101dc6007545afa156115c257601f3d11156115c2576101c0516101a0525b6004356101c0526101a0516101e052638d8ea727610200526101c051610220526101e051610240526020610200604461021c6006545afa156115c257601f3d11156115c25761020051610260526020610260f35b634fb08c5e81141561151b576001602435101561148257634fb08c5e6101405260043561016052602435610180526020610140604461015c6006545afa156115c257601f3d11156115c257610140516101a05260206101a0611519565b634fb08c5e610160526004356101805260016101a0526020610160604461017c6006545afa156115c257601f3d11156115c257610160516101405263cc2b27d761016052610140516101805260243560018082106115c2578082039050905060405181116115c2576101a0526020610160604461017c6007545afa156115c257601f3d11156115c257610160516101c05260206101c05bf35b63c661065781141561154257600160043560028110156115c2570254610140526020610140f35b63b9947eb081141561156c57600160043560048110156115c2570260020154610140526020610140f35b6316f0115b81141561158657600654610140526020610140f35b635d6362bb8114156115a057600754610140526020610140f35b63fc0c546a8114156115ba57600854610140526020610140f35b505b60006000fd5b600080fd5b61043c611a030361043c60003961043c611a03036000f35b600080fd000000000000000000000000b446bf7b8d6d4276d0c75ec0e3ee8dd7fe15783a000000000000000000000000445fe580ef8d70ff569ab36e80c647af338db351

Deployed Bytecode

0x600436101561000d576115bc565b60046000601c376f7fffffffffffffffffffffffffffffff604052600051346115c2576386fc88d38114156100d8576386fc88d3610160526020610160600461017c6006545afa156115c257601f3d11156115c257610160516101405263bb7b8b80610180526020610180600461019c6007545afa156115c257601f3d11156115c257610180516101605261016051670de0b6b3a76400008082028215828483041417156115c25780905090509050610140518080156115c257820490509050610180526020610180f35b63b9e8c9fd8114156101805763b9e8c9fd610160526020610160600461017c6006545afa156115c257601f3d11156115c257610160516101405263bb7b8b80610180526020610180600461019c6007545afa156115c257601f3d11156115c257610180516101605261016051670de0b6b3a76400008082028215828483041417156115c25780905090509050610140518080156115c257820490509050610180526020610180f35b63029b2f348114156101965733610140526101b5565b63cb4950648114156106485760a4358060a01c6115c257809050610140525b60c0366101603761022060016003818352015b60206102205102600401356102405260006102405118156103895760016102205160048110156115c257026002015461026052600060046102c0527f23b872dd000000000000000000000000000000000000000000000000000000006102e0526102c060048060208461030001018260208501600060045af1505080518201915050336020826103000101526020810190503060208261030001015260208101905061024051602082610300010152602081019050806103005261030090508051602001806103a08284600060045af1156115c257505060206104606103a0516103c06000610260515af1156115c25760203d808211156102c957806102cb565b815b90509050610440526104408051602001806102808284600060045af1156115c2575050600061028051181561032d5761028080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b6370a082316102c052306102e05260206102c060246102dc610260515afa156115c257601f3d11156115c2576102c0516101606102205160018082106115c2578082039050905060038110156115c25760200201526001610200525b81516001018083528114156101c8575050610200511561042757632b6e993a61022052610160516102405261018051610260526101a0516102805260006102a05260016102c052602061022060a461023c60006007545af1156115c257601f3d11156115c257610220506370a082316102205230610240526020610220602461023c6001545afa156115c257601f3d11156115c257610220516101e0525b61022060006001818352015b60206102205102600401356102405260006102405118156105b25760016102205160048110156115c257026002015461026052600060046102c0527f23b872dd000000000000000000000000000000000000000000000000000000006102e0526102c060048060208461030001018260208501600060045af1505080518201915050336020826103000101526020810190503060208261030001015260208101905061024051602082610300010152602081019050806103005261030090508051602001806103a08284600060045af1156115c257505060206104606103a0516103c06000610260515af1156115c25760203d808211156105345780610536565b815b90509050610440526104408051602001806102808284600060045af1156115c257505060006102805118156105985761028080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b610240516101c06102205160028110156115c25760200201525b8151600101808352811415610433575050630b4c7e4d610240526101c051610260526101e051610280526084356102a0526020610240606461025c60006006545af1156115c257601f3d11156115c257610240516102205263a9059cbb61024052610140516102605261022051610280526020610240604461025c60006008545af1156115c257601f3d11156115c25761024050005b6365b2489b81141561065e57336101405261067d565b63e2ad025a811415610b31576084358060a01c6115c257809050610140525b60243560043518156115c257600060046101a0527f23b872dd000000000000000000000000000000000000000000000000000000006101c0526101a06004806020846101e001018260208501600060045af1505080518201915050336020826101e0010152602081019050306020826101e00101526020810190506044356020826101e0010152602081019050806101e0526101e090508051602001806102808284600060045af1156115c25750506020610340610280516102a06000600160043560048110156115c25702600201545af1156115c25760203d808211156107655780610767565b815b90509050610320526103208051602001806101608284600060045af1156115c257505060006101605118156107c95761016080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b6044356101a0526004356001808211156107e357806107e5565b815b905090506101c0526024356001808211156108005780610802565b815b905090506101e0526001600435106108c757606036610200376101a05161020060043560018082106115c2578082039050905060038110156115c2576020020152632b6e993a610260526102005161028052610220516102a052610240516102c05260006102e052600161030052602061026060a461027c60006007545af1156115c257601f3d11156115c257610260506370a082316102605230610280526020610260602461027c6001545afa156115c257601f3d11156115c257610260516101a0525b6101a051610200526101e0516101c051181561092c57635b41b908610220526101c051610240526101e051610260526101a0516102805260006102a0526020610220608461023c60006006545af1156115c257601f3d11156115c25761022051610200525b60016101e05114156109e15763517a55a361022052610200516102405260243560018082106115c2578082039050905060405181116115c257610260526064356102805260016102a0526020610220608461023c60006007545af1156115c257601f3d11156115c257610220506370a082316102205230610240526020610220602461023c600160243560048110156115c25702600201545afa156115c257601f3d11156115c25761022051610200526109ee565b60643561020051106115c2575b60006004610220527fa9059cbb000000000000000000000000000000000000000000000000000000006102405261022060048060208461026001018260208501600060045af15050805182019150506101405160208261026001015260208101905061020051602082610260010152602081019050806102605261026090508051602001806102e08284600060045af1156115c257505060206103806102e0516103006000600160243560048110156115c25702600201545af1156115c25760203d80821115610abe5780610ac0565b815b90509050610360526103608051602001806101608284600060045af1156115c25750506000610160511815610b225761016080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b61020051610220526020610220f35b637d49d875811415610b47573361014052610b66565b63b2fdb76f811415610e205760a4358060a01c6115c257809050610140525b6323b872dd610160523361018052306101a0526004356101c0526020610160606461017c60006008545af1156115c257601f3d11156115c2576101605060243561016052600061018052635b36389c6101a0526004356101c052610160516101e05261018051610200526006543b156115c2576000600060646101bc60006006545af1156115c2576370a082316101c052306101e05260206101c060246101dc6001545afa156115c257601f3d11156115c2576101c0516101a0526044356101c0526064356101e0526084356102005263fce64736610220526101a051610240526101c051610260526101e05161028052610200516102a05260016102c052606061022060a461023c60006007545af1156115c257605f3d11156115c2576102205061022060006004818352015b6370a082316102405230610260526020610240602461025c60016102205160048110156115c25702600201545afa156115c257601f3d11156115c257610240516101a05260006004610280527fa9059cbb000000000000000000000000000000000000000000000000000000006102a0526102806004806020846102c001018260208501600060045af1505080518201915050610140516020826102c00101526020810190506101a0516020826102c0010152602081019050806102c0526102c090508051602001806103408284600060045af1156115c257505060206103e061034051610360600060016102205160048110156115c25702600201545af1156115c25760203d80821115610da95780610dab565b815b905090506103c0526103c08051602001806102408284600060045af1156115c25750506000610240511815610e0d5761024080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b8151600101808352811415610c94575050005b63f1dc3cc9811415610e36573361014052610e55565b630fbcee6e8114156110ec576064358060a01c6115c257809050610140525b6323b872dd610160523361018052306101a0526004356101c0526020610160606461017c60006008545af1156115c257601f3d11156115c25761016050602435600180821115610ea55780610ea7565b815b905090506101605263f1dc3cc96101a0526004356101c052610160516101e05260006102005260206101a060646101bc60006006545af1156115c257601f3d11156115c2576101a051610180526001610160511415610fa95763517a55a36101a052610180516101c05260243560018082106115c2578082039050905060405181116115c2576101e0526044356102005260016102205260206101a060846101bc60006007545af1156115c257601f3d11156115c2576101a0506370a082316101a052306101c05260206101a060246101bc600160243560048110156115c25702600201545afa156115c257601f3d11156115c2576101a05161018052610fb6565b60443561018051106115c2575b600060046101e0527fa9059cbb00000000000000000000000000000000000000000000000000000000610200526101e060048060208461022001018260208501600060045af15050805182019150506101405160208261022001015260208101905061018051602082610220010152602081019050806102205261022090508051602001806102a08284600060045af1156115c257505060206103406102a0516102c06000600160243560048110156115c25702600201545af1156115c25760203d808211156110865780611088565b815b90509050610320526103208051602001806101a08284600060045af1156115c257505060006101a05118156110ea576101a080602001516000825180602090136115c257809190126115c257806020036101000a8204905090509050156115c2575b005b6385f11d1e81141561132c5760016004356024358082111561110e5780611110565b815b905090501061119857635e0d443f6101405260043560018082106115c2578082039050905060405181116115c2576101605260243560018082106115c2578082039050905060405181116115c257610180526044356101a0526020610140606461015c6007545afa156115c257601f3d11156115c257610140516101c05260206101c061132a565b604435610140526004356001808211156111b257806111b4565b815b90509050610160526024356001808211156111cf57806111d1565b815b90509050610180526001610160511415611261576060366101a037610140516101a060043560018082106115c2578082039050905060038110156115c2576020020152633883e119610200526101a051610220526101c051610240526101e051610260526001610280526020610200608461021c6007545afa156115c257601f3d11156115c25761020051610140525b63556d6e9f6101c052610160516101e0526101805161020052610140516102205260206101c060646101dc6006545afa156115c257601f3d11156115c2576101c0516101a05260016101805114156113175763cc2b27d76101c0526101a0516101e05260243560018082106115c2578082039050905060405181116115c2576102005260206101c060446101dc6007545afa156115c257601f3d11156115c2576101c05161022052602061022061132a56611329565b6101a0516101c05260206101c061132a565b5bf35b631a8051858114156114255760243561014052604435610160526064356101805260006101a052600060243560443581818301106115c2578082019050905060643581818301106115c2578082019050905011156113d157633883e1196101c052610140516101e0526101605161020052610180516102205260016102405260206101c060846101dc6007545afa156115c257601f3d11156115c2576101c0516101a0525b6004356101c0526101a0516101e052638d8ea727610200526101c051610220526101e051610240526020610200604461021c6006545afa156115c257601f3d11156115c25761020051610260526020610260f35b634fb08c5e81141561151b576001602435101561148257634fb08c5e6101405260043561016052602435610180526020610140604461015c6006545afa156115c257601f3d11156115c257610140516101a05260206101a0611519565b634fb08c5e610160526004356101805260016101a0526020610160604461017c6006545afa156115c257601f3d11156115c257610160516101405263cc2b27d761016052610140516101805260243560018082106115c2578082039050905060405181116115c2576101a0526020610160604461017c6007545afa156115c257601f3d11156115c257610160516101c05260206101c05bf35b63c661065781141561154257600160043560028110156115c2570254610140526020610140f35b63b9947eb081141561156c57600160043560048110156115c2570260020154610140526020610140f35b6316f0115b81141561158657600654610140526020610140f35b635d6362bb8114156115a057600754610140526020610140f35b63fc0c546a8114156115ba57600854610140526020610140f35b505b60006000fd5b600080fd

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

000000000000000000000000b446bf7b8d6d4276d0c75ec0e3ee8dd7fe15783a000000000000000000000000445fe580ef8d70ff569ab36e80c647af338db351

-----Decoded View---------------
Arg [0] : _pool (address): 0xB446BF7b8D6D4276d0c75eC0e3ee8dD7Fe15783A
Arg [1] : _base_pool (address): 0x445FE580eF8d70FF569aB36e80c647af338db351

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b446bf7b8d6d4276d0c75ec0e3ee8dd7fe15783a
Arg [1] : 000000000000000000000000445fe580ef8d70ff569ab36e80c647af338db351


Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.