ETH Price: $2,179.31 (+2.17%)

Contract

0xeB21209ae4C2c9FF2a86ACA31E123764A3B6Bc06
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Remove_liquidity246769942026-03-17 11:43:238 days ago1773747803IN
Curve: Compound Deposit
0 ETH0.00004970.11053043
Remove_liquidity...241183612025-12-29 12:39:4786 days ago1767011987IN
Curve: Compound Deposit
0 ETH0.000089990.17116317
Remove_liquidity...239004462025-11-28 23:28:35116 days ago1764372515IN
Curve: Compound Deposit
0 ETH0.000020180.03832072
Remove_liquidity...238639352025-11-23 20:20:59121 days ago1763929259IN
Curve: Compound Deposit
0 ETH0.000055880.10747487
Remove_liquidity...237138262025-11-02 19:47:59142 days ago1762112879IN
Curve: Compound Deposit
0 ETH0.000049280.09462103
Remove_liquidity...236983652025-10-31 15:54:59144 days ago1761926099IN
Curve: Compound Deposit
0 ETH0.000314750.59030542
Remove_liquidity...236860322025-10-29 22:28:35146 days ago1761776915IN
Curve: Compound Deposit
0 ETH0.000112320.21564797
Remove_liquidity...236549052025-10-25 13:55:23151 days ago1761400523IN
Curve: Compound Deposit
0 ETH0.000051640.09599208
Remove_liquidity...234168652025-09-22 6:45:11184 days ago1758523511IN
Curve: Compound Deposit
0 ETH0.000768861.47612021
Remove_liquidity...231054902025-08-09 19:07:47227 days ago1754766467IN
Curve: Compound Deposit
0 ETH0.000923881.67577589
Remove_liquidity230859242025-08-07 1:32:59230 days ago1754530379IN
Curve: Compound Deposit
0 ETH0.001489583.27802592
Remove_liquidity...230621292025-08-03 17:48:23233 days ago1754243303IN
Curve: Compound Deposit
0 ETH0.00015860.29215396
Remove_liquidity...230507412025-08-02 3:37:47235 days ago1754105867IN
Curve: Compound Deposit
0 ETH0.000229040.40901736
Remove_liquidity230169402025-07-28 10:06:23240 days ago1753697183IN
Curve: Compound Deposit
0 ETH0.000158480.31985927
Add_liquidity230036472025-07-26 13:33:47242 days ago1753536827IN
Curve: Compound Deposit
0 ETH0.000239090.37427579
Add_liquidity229563812025-07-19 22:59:11248 days ago1752965951IN
Curve: Compound Deposit
0 ETH0.000315540.61185857
Add_liquidity228904802025-07-10 18:10:11257 days ago1752171011IN
Curve: Compound Deposit
0 ETH0.0065813412.76136852
Add_liquidity227329542025-06-18 17:47:59279 days ago1750268879IN
Curve: Compound Deposit
0 ETH0.001131062.26351442
Remove_liquidity225586542025-05-25 8:29:47304 days ago1748161787IN
Curve: Compound Deposit
0 ETH0.000161340.35877714
Remove_liquidity...225216672025-05-20 4:09:35309 days ago1747714175IN
Curve: Compound Deposit
0 ETH0.000385090.71508925
Remove_liquidity...224072372025-05-04 1:50:11325 days ago1746323411IN
Curve: Compound Deposit
0 ETH0.000453860.85035661
Remove_liquidity223940592025-05-02 5:30:23327 days ago1746163823IN
Curve: Compound Deposit
0 ETH0.000417120.90014233
Remove_liquidity...221306052025-03-26 10:53:23364 days ago1742986403IN
Curve: Compound Deposit
0 ETH0.000538531
Add_liquidity220891302025-03-20 15:59:59369 days ago1742486399IN
Curve: Compound Deposit
0 ETH0.000981181.54376409
Remove_liquidity...220158192025-03-10 10:16:59380 days ago1741601819IN
Curve: Compound Deposit
0 ETH0.000492810.91008748
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.1.0b17

Optimization Enabled:
N/A

Other Settings:
petersburg EvmVersion, None license

Contract Source Code (Vyper language format)

# A "zap" to deposit/withdraw Curve contract without too many transactions
# (c) Curve.Fi, 2020
from vyper.interfaces import ERC20

# External Contracts
contract cERC20:
    def totalSupply() -> uint256: constant
    def allowance(_owner: address, _spender: address) -> uint256: constant
    def transfer(_to: address, _value: uint256) -> bool: modifying
    def transferFrom(_from: address, _to: address, _value: uint256) -> bool: modifying
    def approve(_spender: address, _value: uint256) -> bool: modifying
    def burn(_value: uint256): modifying
    def burnFrom(_to: address, _value: uint256): modifying
    def name() -> string[64]: constant
    def symbol() -> string[32]: constant
    def decimals() -> uint256: constant
    def balanceOf(arg0: address) -> uint256: constant
    def mint(mintAmount: uint256) -> uint256: modifying
    def redeem(redeemTokens: uint256) -> uint256: modifying
    def redeemUnderlying(redeemAmount: uint256) -> uint256: modifying
    def exchangeRateStored() -> uint256: constant
    def exchangeRateCurrent() -> uint256: modifying
    def supplyRatePerBlock() -> uint256: constant
    def accrualBlockNumber() -> uint256: constant




# Tether transfer-only ABI
contract USDT:
    def transfer(_to: address, _value: uint256): modifying
    def transferFrom(_from: address, _to: address, _value: uint256): modifying


contract Curve:
    def add_liquidity(amounts: uint256[N_COINS], min_mint_amount: uint256): modifying
    def remove_liquidity(_amount: uint256, min_amounts: uint256[N_COINS]): modifying
    def remove_liquidity_imbalance(amounts: uint256[N_COINS], max_burn_amount: uint256): modifying
    def balances(i: int128) -> uint256: constant
    def A() -> uint256: constant
    def fee() -> uint256: constant
    def owner() -> address: constant


N_COINS: constant(int128) = 2
TETHERED: constant(bool[N_COINS]) = [False, False]
USE_LENDING: constant(bool[N_COINS]) = [True, True]
ZERO256: constant(uint256) = 0  # This hack is really bad XXX
ZEROS: constant(uint256[N_COINS]) = [ZERO256, ZERO256]  # <- change
LENDING_PRECISION: constant(uint256) = 10 ** 18
PRECISION: constant(uint256) = 10 ** 18
PRECISION_MUL: constant(uint256[N_COINS]) = [convert(1, uint256), convert(1000000000000, uint256)]
FEE_DENOMINATOR: constant(uint256) = 10 ** 10
FEE_IMPRECISION: constant(uint256) = 25 * 10 ** 8  # % of the fee

coins: public(address[N_COINS])
underlying_coins: public(address[N_COINS])
curve: public(address)
token: public(address)


@public
def __init__(_coins: address[N_COINS], _underlying_coins: address[N_COINS],
             _curve: address, _token: address):
    self.coins = _coins
    self.underlying_coins = _underlying_coins
    self.curve = _curve
    self.token = _token


@public
@nonreentrant('lock')
def add_liquidity(uamounts: uint256[N_COINS], min_mint_amount: uint256):
    use_lending: bool[N_COINS] = USE_LENDING
    tethered: bool[N_COINS] = TETHERED
    amounts: uint256[N_COINS] = ZEROS

    for i in range(N_COINS):
        uamount: uint256 = uamounts[i]

        if uamount > 0:
            # Transfer the underlying coin from owner
            if tethered[i]:
                USDT(self.underlying_coins[i]).transferFrom(
                    msg.sender, self, uamount)
            else:
                assert_modifiable(ERC20(self.underlying_coins[i])\
                    .transferFrom(msg.sender, self, uamount))

            # Mint if needed
            if use_lending[i]:
                ERC20(self.underlying_coins[i]).approve(self.coins[i], uamount)
                ok: uint256 = cERC20(self.coins[i]).mint(uamount)
                if ok > 0:
                    raise "Could not mint coin"
                amounts[i] = cERC20(self.coins[i]).balanceOf(self)
                ERC20(self.coins[i]).approve(self.curve, amounts[i])
            else:
                amounts[i] = uamount
                ERC20(self.underlying_coins[i]).approve(self.curve, uamount)

    Curve(self.curve).add_liquidity(amounts, min_mint_amount)

    tokens: uint256 = ERC20(self.token).balanceOf(self)
    assert_modifiable(ERC20(self.token).transfer(msg.sender, tokens))


@private
def _send_all(_addr: address, min_uamounts: uint256[N_COINS], one: int128):
    use_lending: bool[N_COINS] = USE_LENDING
    tethered: bool[N_COINS] = TETHERED

    for i in range(N_COINS):
        if (one < 0) or (i == one):
            if use_lending[i]:
                _coin: address = self.coins[i]
                _balance: uint256 = cERC20(_coin).balanceOf(self)
                if _balance == 0:  # Do nothing if there are 0 coins
                    continue
                ok: uint256 = cERC20(_coin).redeem(_balance)
                if ok > 0:
                    raise "Could not redeem coin"

            _ucoin: address = self.underlying_coins[i]
            _uamount: uint256 = ERC20(_ucoin).balanceOf(self)
            assert _uamount >= min_uamounts[i], "Not enough coins withdrawn"

            # Send only if we have something to send
            if _uamount >= 0:
                if tethered[i]:
                    USDT(_ucoin).transfer(_addr, _uamount)
                else:
                    assert_modifiable(ERC20(_ucoin).transfer(_addr, _uamount))


@public
@nonreentrant('lock')
def remove_liquidity(_amount: uint256, min_uamounts: uint256[N_COINS]):
    zeros: uint256[N_COINS] = ZEROS

    assert_modifiable(ERC20(self.token).transferFrom(msg.sender, self, _amount))
    Curve(self.curve).remove_liquidity(_amount, zeros)

    self._send_all(msg.sender, min_uamounts, -1)


@public
@nonreentrant('lock')
def remove_liquidity_imbalance(uamounts: uint256[N_COINS], max_burn_amount: uint256):
    """
    Get max_burn_amount in, remove requested liquidity and transfer back what is left
    """
    use_lending: bool[N_COINS] = USE_LENDING
    tethered: bool[N_COINS] = TETHERED
    _token: address = self.token

    amounts: uint256[N_COINS] = uamounts
    for i in range(N_COINS):
        if use_lending[i] and amounts[i] > 0:
            rate: uint256 = cERC20(self.coins[i]).exchangeRateCurrent()
            amounts[i] = amounts[i] * LENDING_PRECISION / rate
        # if not use_lending - all good already

    # Transfrer max tokens in
    _tokens: uint256 = ERC20(_token).balanceOf(msg.sender)
    if _tokens > max_burn_amount:
        _tokens = max_burn_amount
    assert_modifiable(ERC20(_token).transferFrom(msg.sender, self, _tokens))

    Curve(self.curve).remove_liquidity_imbalance(amounts, max_burn_amount)

    # Transfer unused tokens back
    _tokens = ERC20(_token).balanceOf(self)
    assert_modifiable(ERC20(_token).transfer(msg.sender, _tokens))

    # Unwrap and transfer all the coins we've got
    self._send_all(msg.sender, ZEROS, -1)


@private
@constant
def _xp_mem(rates: uint256[N_COINS], _balances: uint256[N_COINS]) -> uint256[N_COINS]:
    result: uint256[N_COINS] = rates
    for i in range(N_COINS):
        result[i] = result[i] * _balances[i] / PRECISION
    return result


@private
@constant
def get_D(A: uint256, xp: uint256[N_COINS]) -> uint256:
    S: uint256 = 0
    for _x in xp:
        S += _x
    if S == 0:
        return 0

    Dprev: uint256 = 0
    D: uint256 = S
    Ann: uint256 = A * N_COINS
    for _i in range(255):
        D_P: uint256 = D
        for _x in xp:
            D_P = D_P * D / (_x * N_COINS + 1)  # +1 is to prevent /0
        Dprev = D
        D = (Ann * S + D_P * N_COINS) * D / ((Ann - 1) * D + (N_COINS + 1) * D_P)
        # Equality with the precision of 1
        if D > Dprev:
            if D - Dprev <= 1:
                break
        else:
            if Dprev - D <= 1:
                break
    return D


@private
@constant
def get_y(A: uint256, i: int128, _xp: uint256[N_COINS], D: uint256) -> uint256:
    """
    Calculate x[i] if one reduces D from being calculated for _xp to D

    Done by solving quadratic equation iteratively.
    x_1**2 + x1 * (sum' - (A*n**n - 1) * D / (A * n**n)) = D ** (n + 1) / (n ** (2 * n) * prod' * A)
    x_1**2 + b*x_1 = c

    x_1 = (x_1**2 + c) / (2*x_1 + b)
    """
    # x in the input is converted to the same price/precision

    assert (i >= 0) and (i < N_COINS)

    c: uint256 = D
    S_: uint256 = 0
    Ann: uint256 = A * N_COINS

    _x: uint256 = 0
    for _i in range(N_COINS):
        if _i != i:
            _x = _xp[_i]
        else:
            continue
        S_ += _x
        c = c * D / (_x * N_COINS)
    c = c * D / (Ann * N_COINS)
    b: uint256 = S_ + D / Ann
    y_prev: uint256 = 0
    y: uint256 = D
    for _i in range(255):
        y_prev = y
        y = (y*y + c) / (2 * y + b - D)
        # Equality with the precision of 1
        if y > y_prev:
            if y - y_prev <= 1:
                break
        else:
            if y_prev - y <= 1:
                break
    return y


@private
@constant
def _calc_withdraw_one_coin(_token_amount: uint256, i: int128, rates: uint256[N_COINS]) -> uint256:
    # First, need to calculate
    # * Get current D
    # * Solve Eqn against y_i for D - _token_amount
    use_lending: bool[N_COINS] = USE_LENDING
    # tethered: bool[N_COINS] = TETHERED
    crv: address = self.curve
    A: uint256 = Curve(crv).A()
    fee: uint256 = Curve(crv).fee() * N_COINS / (4 * (N_COINS - 1))
    fee += fee * FEE_IMPRECISION / FEE_DENOMINATOR  # Overcharge to account for imprecision
    precisions: uint256[N_COINS] = PRECISION_MUL
    total_supply: uint256 = ERC20(self.token).totalSupply()

    xp: uint256[N_COINS] = PRECISION_MUL
    S: uint256 = 0
    for j in range(N_COINS):
        xp[j] *= Curve(crv).balances(j)
        if use_lending[j]:
            # Use stored rate b/c we have imprecision anyway
            xp[j] = xp[j] * rates[j] / LENDING_PRECISION
        S += xp[j]
        # if not use_lending - all good already

    D0: uint256 = self.get_D(A, xp)
    D1: uint256 = D0 - _token_amount * D0 / total_supply
    xp_reduced: uint256[N_COINS] = xp

    # xp = xp - fee * | xp * D1 / D0 - (xp - S * dD / D0 * (0, ... 1, ..0))|
    for j in range(N_COINS):
        dx_expected: uint256 = 0
        b_ideal: uint256 = xp[j] * D1 / D0
        b_expected: uint256 = xp[j]
        if j == i:
            b_expected -= S * (D0 - D1) / D0
        if b_ideal >= b_expected:
            dx_expected = (b_ideal - b_expected)
        else:
            dx_expected = (b_expected - b_ideal)
        xp_reduced[j] -= fee * dx_expected / FEE_DENOMINATOR

    dy: uint256 = xp_reduced[i] - self.get_y(A, i, xp_reduced, D1)
    dy = dy / precisions[i]

    return dy


@public
@constant
def calc_withdraw_one_coin(_token_amount: uint256, i: int128) -> uint256:
    rates: uint256[N_COINS] = ZEROS
    use_lending: bool[N_COINS] = USE_LENDING

    for j in range(N_COINS):
        if use_lending[j]:
            rates[j] = cERC20(self.coins[j]).exchangeRateStored()
        else:
            rates[j] = 10 ** 18

    return self._calc_withdraw_one_coin(_token_amount, i, rates)


@public
@nonreentrant('lock')
def remove_liquidity_one_coin(_token_amount: uint256, i: int128, min_uamount: uint256, donate_dust: bool = False):
    """
    Remove _amount of liquidity all in a form of coin i
    """
    use_lending: bool[N_COINS] = USE_LENDING
    rates: uint256[N_COINS] = ZEROS
    _token: address = self.token

    for j in range(N_COINS):
        if use_lending[j]:
            rates[j] = cERC20(self.coins[j]).exchangeRateCurrent()
        else:
            rates[j] = LENDING_PRECISION

    dy: uint256 = self._calc_withdraw_one_coin(_token_amount, i, rates)
    assert dy >= min_uamount, "Not enough coins removed"

    assert_modifiable(
        ERC20(self.token).transferFrom(msg.sender, self, _token_amount))

    amounts: uint256[N_COINS] = ZEROS
    amounts[i] = dy * LENDING_PRECISION / rates[i]
    token_amount_before: uint256 = ERC20(_token).balanceOf(self)
    Curve(self.curve).remove_liquidity_imbalance(amounts, _token_amount)

    # Unwrap and transfer all the coins we've got
    self._send_all(msg.sender, ZEROS, i)

    if not donate_dust:
        # Transfer unused tokens back
        token_amount_after: uint256 = ERC20(_token).balanceOf(self)
        if token_amount_after > token_amount_before:
            assert_modifiable(ERC20(_token).transfer(
                msg.sender, token_amount_after - token_amount_before)
            )


@public
@nonreentrant('lock')
def withdraw_donated_dust():
    owner: address = Curve(self.curve).owner()
    assert msg.sender == owner

    _token: address = self.token
    assert_modifiable(
        ERC20(_token).transfer(owner, ERC20(_token).balanceOf(self)))

Contract Security Audit

Contract ABI

API
[{"outputs":[],"inputs":[{"type":"address[2]","name":"_coins"},{"type":"address[2]","name":"_underlying_coins"},{"type":"address","name":"_curve"},{"type":"address","name":"_token"}],"constant":false,"payable":false,"type":"constructor"},{"name":"add_liquidity","outputs":[],"inputs":[{"type":"uint256[2]","name":"uamounts"},{"type":"uint256","name":"min_mint_amount"}],"constant":false,"payable":false,"type":"function","gas":117283},{"name":"remove_liquidity","outputs":[],"inputs":[{"type":"uint256","name":"_amount"},{"type":"uint256[2]","name":"min_uamounts"}],"constant":false,"payable":false,"type":"function","gas":83606},{"name":"remove_liquidity_imbalance","outputs":[],"inputs":[{"type":"uint256[2]","name":"uamounts"},{"type":"uint256","name":"max_burn_amount"}],"constant":false,"payable":false,"type":"function","gas":96829},{"name":"calc_withdraw_one_coin","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"_token_amount"},{"type":"int128","name":"i"}],"constant":true,"payable":false,"type":"function","gas":2945630},{"name":"remove_liquidity_one_coin","outputs":[],"inputs":[{"type":"uint256","name":"_token_amount"},{"type":"int128","name":"i"},{"type":"uint256","name":"min_uamount"}],"constant":false,"payable":false,"type":"function"},{"name":"remove_liquidity_one_coin","outputs":[],"inputs":[{"type":"uint256","name":"_token_amount"},{"type":"int128","name":"i"},{"type":"uint256","name":"min_uamount"},{"type":"bool","name":"donate_dust"}],"constant":false,"payable":false,"type":"function"},{"name":"withdraw_donated_dust","outputs":[],"inputs":[],"constant":false,"payable":false,"type":"function","gas":63973},{"name":"coins","outputs":[{"type":"address","name":""}],"inputs":[{"type":"int128","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1680},{"name":"underlying_coins","outputs":[{"type":"address","name":""}],"inputs":[{"type":"int128","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1710},{"name":"curve","outputs":[{"type":"address","name":""}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1541},{"name":"token","outputs":[{"type":"address","name":""}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1571}]

740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05260c0612b5c6101403934156100a157600080fd5b6020612b5c60c03960c05160205181106100ba57600080fd5b5060206020612b5c0160c03960c05160205181106100d757600080fd5b5060206040612b5c0160c03960c05160205181106100f457600080fd5b5060206060612b5c0160c03960c051602051811061011157600080fd5b5060206080612b5c0160c03960c051602051811061012e57600080fd5b50602060a0612b5c0160c03960c051602051811061014b57600080fd5b50600060c052602060c02061014080518255806020015160018301555050600160c052602060c020610180805182558060200151600183015550506101c0516002556101e051600355612b4456600436101561000d576129a5565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052630b4c7e4d60005114156107ba5762ffffff54156100be57600080fd5b600162ffffff5534156100d057600080fd5b6101406001815260018160200152506101806000815260008160200152506101c060008152600081602001525061020060006002818352015b6004610200516002811061011c57600080fd5b602002013561022052600061022051111561069d57610180610200516002811061014557600080fd5b6020020151156101f157610200516002811061016057600080fd5b600160c052602060c02001543b61017657600080fd5b610200516002811061018757600080fd5b600160c052602060c0200154301861019e57600080fd5b6000600060646323b872dd6103205233610340523061036052610220516103805261033c600061020051600281106101d557600080fd5b600160c052602060c02001545af16101ec57600080fd5b6102a0565b610200516002811061020257600080fd5b600160c052602060c02001543b61021857600080fd5b610200516002811061022957600080fd5b600160c052602060c0200154301861024057600080fd5b602061030060646323b872dd6102405233610260523061028052610220516102a05261025c6000610200516002811061027857600080fd5b600160c052602060c02001545af161028f57600080fd5b6000506103005161029f57600080fd5b5b61014061020051600281106102b457600080fd5b6020020151156105dc5761020051600281106102cf57600080fd5b600160c052602060c02001543b6102e557600080fd5b61020051600281106102f657600080fd5b600160c052602060c0200154301861030d57600080fd5b6020610540604463095ea7b36104a052610200516002811061032e57600080fd5b600060c052602060c02001546104c052610220516104e0526104bc6000610200516002811061035c57600080fd5b600160c052602060c02001545af161037357600080fd5b60005061054050610200516002811061038b57600080fd5b600060c052602060c02001543b6103a157600080fd5b61020051600281106103b257600080fd5b600060c052602060c020015430186103c957600080fd5b6020610600602463a0712d6861058052610220516105a05261059c600061020051600281106103f757600080fd5b600060c052602060c02001545af161040e57600080fd5b60005061060051610560526000610560511115610471576308c379a0610620526020610640526013610660527f436f756c64206e6f74206d696e7420636f696e000000000000000000000000006106805261066050600061047057608461063cfd5b5b610200516002811061048257600080fd5b600060c052602060c02001543b61049857600080fd5b61020051600281106104a957600080fd5b600060c052602060c020015430186104c057600080fd5b602061074060246370a082316106c052306106e0526106dc61020051600281106104e957600080fd5b600060c052602060c02001545afa61050057600080fd5b600050610740516101c0610200516002811061051b57600080fd5b6020020152610200516002811061053157600080fd5b600060c052602060c02001543b61054757600080fd5b610200516002811061055857600080fd5b600060c052602060c0200154301861056f57600080fd5b6020610800604463095ea7b361076052600254610780526101c0610200516002811061059a57600080fd5b60200201516107a05261077c600061020051600281106105b957600080fd5b600060c052602060c02001545af16105d057600080fd5b6000506108005061069c565b610220516101c061020051600281106105f457600080fd5b6020020152610200516002811061060a57600080fd5b600160c052602060c02001543b61062057600080fd5b610200516002811061063157600080fd5b600160c052602060c0200154301861064857600080fd5b6020610480604463095ea7b36103e0526002546104005261022051610420526103fc6000610200516002811061067d57600080fd5b600160c052602060c02001545af161069457600080fd5b600050610480505b5b5b8151600101808352811415610109575b50506002543b6106bd57600080fd5b60025430186106cb57600080fd5b600060006064630b4c7e4d610820526108406101c0805182528060200151826020015250506044356108805261083c60006002545af161070a57600080fd5b6003543b61071757600080fd5b600354301861072557600080fd5b602061098060246370a0823161090052306109205261091c6003545afa61074b57600080fd5b600050610980516108e0526003543b61076357600080fd5b600354301861077157600080fd5b6020610a40604463a9059cbb6109a052336109c0526108e0516109e0526109bc60006003545af16107a157600080fd5b600050610a40516107b157600080fd5b600062ffffff55005b600015610b35575b6101c0526101405261016052610180526101a0526101e060018152600181602001525061022060008152600081602001525061026060006002818352015b6101a051610260511460006101a051121715610b1c576101e0610260516002811061082a57600080fd5b60200201511561096057610260516002811061084557600080fd5b600060c052602060c020015461028052610280513b61086357600080fd5b61028051301861087257600080fd5b602061034060246370a082316102c052306102e0526102dc610280515afa61089957600080fd5b600050610340516102a0526102a05115156108b357610b1d565b610280513b6108c157600080fd5b6102805130186108d057600080fd5b6020610400602463db006a75610380526102a0516103a05261039c6000610280515af16108fc57600080fd5b6000506104005161036052600061036051111561095f576308c379a0610420526020610440526015610460527f436f756c64206e6f742072656465656d20636f696e00000000000000000000006104805261046050600061095e57608461043cfd5b5b5b610260516002811061097157600080fd5b600160c052602060c02001546104c0526104c0513b61098f57600080fd5b6104c051301861099e57600080fd5b602061058060246370a0823161050052306105205261051c6104c0515afa6109c557600080fd5b600050610580516104e0526308c379a06105a05260206105c052601a6105e0527f4e6f7420656e6f75676820636f696e732077697468647261776e000000000000610600526105e0506101606102605160028110610a2257600080fd5b60200201516104e0511015610a385760846105bcfd5b60006104e051101515610b1b576102206102605160028110610a5957600080fd5b602002015115610ab8576104c0513b610a7157600080fd5b6104c0513018610a8057600080fd5b60006000604463a9059cbb6107005261014051610720526104e0516107405261071c60006104c0515af1610ab357600080fd5b610b1a565b6104c0513b610ac657600080fd5b6104c0513018610ad557600080fd5b60206106e0604463a9059cbb6106405261014051610660526104e0516106805261065c60006104c0515af1610b0957600080fd5b6000506106e051610b1957600080fd5b5b5b5b5b8151600101808352811415610800575b50506101c051565b635b36389c6000511415610cee5762ffffff5415610b5257600080fd5b600162ffffff553415610b6457600080fd5b6101406000815260008160200152506003543b610b8057600080fd5b6003543018610b8e57600080fd5b602061024060646323b872dd61018052336101a052306101c0526004356101e05261019c60006003545af1610bc257600080fd5b60005061024051610bd257600080fd5b6002543b610bdf57600080fd5b6002543018610bed57600080fd5b600060006064635b36389c61026052600435610280526102a06101408051825280602001518260200152505061027c60006002545af1610c2c57600080fd5b610140610320525b61032051516020610320510161032052610320610320511015610c5657610c34565b638ac5af926103405233610360526103806024803582528060200135826020015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103c0526103c0516103a0516103805161036051600658016107c2565b610300610320525b6103205152602061032051036103205261014061032051101515610ce257610cbf565b600050600062ffffff55005b63e3103273600051141561113e5762ffffff5415610d0b57600080fd5b600162ffffff553415610d1d57600080fd5b6101406001815260018160200152506101806000815260008160200152506003546101c0526101e060048035825280602001358260200152505061022060006002818352015b60006101e06102205160028110610d7957600080fd5b6020020151116101406102205160028110610d9357600080fd5b60200201511615610ea1576102205160028110610daf57600080fd5b600060c052602060c02001543b610dc557600080fd5b6102205160028110610dd657600080fd5b600060c052602060c02001543018610ded57600080fd5b60206102c0600463bd6d894d6102605261027c60006102205160028110610e1357600080fd5b600060c052602060c02001545af1610e2a57600080fd5b6000506102c051610240526101e06102205160028110610e4957600080fd5b6020020151670de0b6b3a76400008082028215828483041417610e6b57600080fd5b80905090509050610240518080610e8157600080fd5b8204905090506101e06102205160028110610e9b57600080fd5b60200201525b5b8151600101808352811415610d63575b50506101c0513b610ec257600080fd5b6101c0513018610ed157600080fd5b602061038060246370a0823161030052336103205261031c6101c0515afa610ef857600080fd5b600050610380516102e0526044356102e0511115610f18576044356102e0525b6101c0513b610f2657600080fd5b6101c0513018610f3557600080fd5b602061046060646323b872dd6103a052336103c052306103e0526102e051610400526103bc60006101c0515af1610f6b57600080fd5b60005061046051610f7b57600080fd5b6002543b610f8857600080fd5b6002543018610f9657600080fd5b60006000606463e3103273610480526104a06101e0805182528060200151826020015250506044356104e05261049c60006002545af1610fd557600080fd5b6101c0513b610fe357600080fd5b6101c0513018610ff257600080fd5b60206105c060246370a0823161054052306105605261055c6101c0515afa61101957600080fd5b6000506105c0516102e0526101c0513b61103257600080fd5b6101c051301861104157600080fd5b6020610680604463a9059cbb6105e05233610600526102e051610620526105fc60006101c0515af161107257600080fd5b6000506106805161108257600080fd5b6101406106a0525b6106a0515160206106a051016106a0526106a06106a05110156110ac5761108a565b638ac5af926106c052336106e0526107006000815260008160200152507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610740526107405161072051610700516106e051600658016107c2565b6106806106a0525b6106a0515260206106a051036106a0526101406106a0511015156111325761110f565b600050600062ffffff55005b60001561124b575b6101c0526101405261016052610180526101a0526101e06101408051825280602001518260200152505061022060006002818352015b6101e0610220516002811061119057600080fd5b602002015161018061022051600281106111a957600080fd5b602002015180820282158284830414176111c257600080fd5b80905090509050670de0b6b3a764000080806111dd57600080fd5b8204905090506101e061022051600281106111f757600080fd5b60200201525b815160010180835281141561117c575b50506040610240525b60006102405111151561122857611244565b602061024051036101e001516020610240510361024052611216565b6101c05156005b60001561154d575b6101a05261014052610160526101805260006101c05261020060006002818352015b6020610200510261016001516101e0526101c080516101e05181818301101561129d57600080fd5b808201905090508152505b8151600101808352811415611275575b50506101c05115156112d35760006000526000516101a05156505b6000610240526101c0516102605261014051600280820282158284830414176112fb57600080fd5b80905090509050610280526102a0600060ff818352015b610260516102c05261030060006002818352015b6020610300510261016001516102e0526102c05161026051808202821582848304141761135257600080fd5b809050905090506102e0516002808202821582848304141761137357600080fd5b80905090509050600181818301101561138b57600080fd5b80820190509050808061139d57600080fd5b8204905090506102c0525b8151600101808352811415611326575b50506102605161024052610280516101c05180820282158284830414176113de57600080fd5b809050905090506102c051600280820282158284830414176113ff57600080fd5b8090509050905081818301101561141557600080fd5b8082019050905061026051808202821582848304141761143457600080fd5b809050905090506102805160018082101561144e57600080fd5b8082039050905061026051808202821582848304141761146d57600080fd5b8090509050905060036102c051808202821582848304141761148e57600080fd5b809050905090508181830110156114a457600080fd5b8082019050905080806114b657600080fd5b82049050905061026052610240516102605111156114fd5760016102605161024051808210156114e557600080fd5b808203905090501115156114f857611539565b611528565b600161024051610260518082101561151457600080fd5b8082039050905011151561152757611539565b5b5b8151600101808352811415611312575b5050610260516000526000516101a0515650005b600015611872575b6101e0526101405261016052610180526101a0526101c0526002610160511260006101605112151661158657600080fd5b6101c0516102005260006102205261014051600280820282158284830414176115ae57600080fd5b809050905090506102405260006102605261028060006002818352015b610160516102805118156115fb5761018061028051600281106115ed57600080fd5b602002015161026052611600565b61167c565b61022080516102605181818301101561161857600080fd5b80820190509050815250610200516101c051808202821582848304141761163e57600080fd5b80905090509050610260516002808202821582848304141761165f57600080fd5b80905090509050808061167157600080fd5b820490509050610200525b81516001018083528114156115cb575b5050610200516101c05180820282158284830414176116aa57600080fd5b8090509050905061024051600280820282158284830414176116cb57600080fd5b8090509050905080806116dd57600080fd5b82049050905061020052610220516101c0516102405180806116fe57600080fd5b82049050905081818301101561171357600080fd5b808201905090506102a05260006102c0526101c0516102e052610300600060ff818352015b6102e0516102c0526102e0516102e051808202821582848304141761175c57600080fd5b809050905090506102005181818301101561177657600080fd5b8082019050905060026102e051808202821582848304141761179757600080fd5b809050905090506102a0518181830110156117b157600080fd5b808201905090506101c051808210156117c957600080fd5b8082039050905080806117db57600080fd5b8204905090506102e0526102c0516102e05111156118225760016102e0516102c0518082101561180a57600080fd5b8082039050905011151561181d5761185e565b61184d565b60016102c0516102e0518082101561183957600080fd5b8082039050905011151561184c5761185e565b5b5b8151600101808352811415611738575b50506102e0516000526000516101e0515650005b600015611faa575b6101c0526101405261016052610180526101a0526101e060018152600181602001525060025461022052610220513b6118b257600080fd5b6102205130186118c157600080fd5b60206102c0600463f446c1d06102605261027c610220515afa6118e357600080fd5b6000506102c05161024052610220513b6118fc57600080fd5b61022051301861190b57600080fd5b6020610360600463ddca3f436103005261031c610220515afa61192d57600080fd5b600050610360516002808202821582848304141761194a57600080fd5b809050905090506004808061195e57600080fd5b8204905090506102e0526102e080516102e051639502f900808202821582848304141761198a57600080fd5b809050905090506402540be40080806119a257600080fd5b8204905090508181830110156119b757600080fd5b808201905090508152506103806001815264e8d4a510008160200152506003543b6119e157600080fd5b60035430186119ef57600080fd5b602061044060046318160ddd6103e0526103fc6003545afa611a1057600080fd5b600050610440516103c0526104606001815264e8d4a5100081602001525060006104a0526104c060006002818352015b6104606104c05160028110611a5457600080fd5b602002018051610220513b611a6857600080fd5b610220513018611a7757600080fd5b6020610560602463065a80d86104e0526104c051610500526104fc610220515afa611aa157600080fd5b600050610560518082028215828483041417611abc57600080fd5b809050905090508152506101e06104c05160028110611ada57600080fd5b602002015115611b65576104606104c05160028110611af857600080fd5b60200201516101806104c05160028110611b1157600080fd5b60200201518082028215828483041417611b2a57600080fd5b80905090509050670de0b6b3a76400008080611b4557600080fd5b8204905090506104606104c05160028110611b5f57600080fd5b60200201525b6104a080516104606104c05160028110611b7e57600080fd5b6020020151818183011015611b9257600080fd5b808201905090508152505b8151600101808352811415611a40575b50506101406105a0525b6105a0515160206105a051016105a0526105a06105a0511015611bd957611bb7565b633aea5be46105c052610240516105e0526106006104608051825280602001518260200152505061062051610600516105e05160065801611253565b610680526105806105a0525b6105a0515260206105a051036105a0526101406105a051101515611c4457611c21565b61068051610580526105805161014051610580518082028215828483041417611c6c57600080fd5b809050905090506103c0518080611c8257600080fd5b82049050905080821015611c9557600080fd5b808203905090506106a0526106c06104608051825280602001518260200152505061070060006002818352015b6000610720526104606107005160028110611cdc57600080fd5b60200201516106a0518082028215828483041417611cf957600080fd5b80905090509050610580518080611d0f57600080fd5b820490509050610740526104606107005160028110611d2d57600080fd5b60200201516107605261016051610700511415611db15761076080516104a051610580516106a05180821015611d6257600080fd5b808203905090508082028215828483041417611d7d57600080fd5b80905090509050610580518080611d9357600080fd5b82049050905080821015611da657600080fd5b808203905090508152505b6107605161074051101515611de557610740516107605180821015611dd557600080fd5b8082039050905061072052611e06565b610760516107405180821015611dfa57600080fd5b80820390509050610720525b6106c06107005160028110611e1a57600080fd5b6020020180516102e051610720518082028215828483041417611e3c57600080fd5b809050905090506402540be4008080611e5457600080fd5b82049050905080821015611e6757600080fd5b808203905090508152505b8151600101808352811415611cc2575b50506106c06101605160028110611e9857600080fd5b60200201516101406107a0525b6107a0515160206107a051016107a0526107a06107a0511015611ec757611ea5565b6304e91cf76107c052610240516107e05261016051610800526108206106c0805182528060200151826020015250506106a05161086052610860516108405161082051610800516107e05160065801611555565b6108c0526107806107a0525b6107a0515260206107a051036107a0526101406107a051101515611f4a57611f27565b6108c05180821015611f5b57600080fd5b8082039050905061078052610780516103806101605160028110611f7e57600080fd5b60200201518080611f8e57600080fd5b82049050905061078052610780516000526000516101c0515650005b63cc2b27d7600051141561218e573415611fc357600080fd5b60605160243580604051901315611fd957600080fd5b8091901215611fe757600080fd5b506101406000815260008160200152506101806001815260018160200152506101c060006002818352015b6101806101c0516002811061202657600080fd5b6020020151156120df576101c0516002811061204157600080fd5b600060c052602060c02001543b61205757600080fd5b6101c0516002811061206857600080fd5b600060c052602060c0200154301861207f57600080fd5b6020610240600463182df0f56101e0526101fc6101c051600281106120a357600080fd5b600060c052602060c02001545afa6120ba57600080fd5b600050610240516101406101c051600281106120d557600080fd5b6020020152612102565b670de0b6b3a76400006101406101c051600281106120fc57600080fd5b60200201525b5b8151600101808352811415612012575b50506101405161016051610180516101a051638594ca16610280526004356102a0526024356102c0526102e061014080518252806020015182602001525050610300516102e0516102c0516102a0516006580161187a565b610360526101a0526101805261016052610140526103605160005260206000f350005b631a4d01d260005114156121a7576000610140526121dd565b63517a55a360005114156121d557606435600281106121c557600080fd5b60206064610140376000506121dd565b60001561274f575b62ffffff54156121ec57600080fd5b600162ffffff5534156121fe57600080fd5b6060516024358060405190131561221457600080fd5b809190121561222257600080fd5b506101606001815260018160200152506101a06000815260008160200152506003546101e05261020060006002818352015b610160610200516002811061226857600080fd5b60200201511561232357610200516002811061228357600080fd5b600060c052602060c02001543b61229957600080fd5b61020051600281106122aa57600080fd5b600060c052602060c020015430186122c157600080fd5b6020610280600463bd6d894d6102205261023c600061020051600281106122e757600080fd5b600060c052602060c02001545af16122fe57600080fd5b600050610280516101a0610200516002811061231957600080fd5b6020020152612346565b670de0b6b3a76400006101a0610200516002811061234057600080fd5b60200201525b5b8151600101808352811415612254575b50506101406102c0525b6102c0515160206102c051016102c0526102c06102c051101561238357612361565b638594ca166102e05260043561030052602435610320526103406101a080518252806020015182602001525050610360516103405161032051610300516006580161187a565b6103c0526102a06102c0525b6102c0515260206102c051036102c0526101406102c0511015156123f8576123d5565b6103c0516102a0526308c379a06103e0526020610400526018610420527f4e6f7420656e6f75676820636f696e732072656d6f766564000000000000000061044052610420506044356102a05110156124525760846103fcfd5b6003543b61245f57600080fd5b600354301861246d57600080fd5b602061054060646323b872dd61048052336104a052306104c0526004356104e05261049c60006003545af16124a157600080fd5b600050610540516124b157600080fd5b6105606000815260008160200152506102a051670de0b6b3a764000080820282158284830414176124e157600080fd5b809050905090506101a0602435600281106124fb57600080fd5b6020020151808061250b57600080fd5b8204905090506105606024356002811061252457600080fd5b60200201526101e0513b61253757600080fd5b6101e051301861254657600080fd5b602061064060246370a082316105c052306105e0526105dc6101e0515afa61256d57600080fd5b600050610640516105a0526002543b61258557600080fd5b600254301861259357600080fd5b60006000606463e310327361066052610680610560805182528060200151826020015250506004356106c05261067c60006002545af16125d257600080fd5b610140610720525b610720515160206107205101610720526107206107205110156125fc576125da565b638ac5af926107405233610760526107806000815260008160200152506024356107c0526107c0516107a0516107805161076051600658016107c2565b610700610720525b610720515260206107205103610720526101406107205110151561266457612641565b600050610140511515612746576101e0513b61267f57600080fd5b6101e051301861268e57600080fd5b60206108c060246370a0823161084052306108605261085c6101e0515afa6126b557600080fd5b6000506108c051610820526105a051610820511115612745576101e0513b6126dc57600080fd5b6101e05130186126eb57600080fd5b6020610980604463a9059cbb6108e0523361090052610820516105a0518082101561271557600080fd5b80820390509050610920526108fc60006101e0515af161273457600080fd5b6000506109805161274457600080fd5b5b5b600062ffffff55005b636c956a54600051141561288c5762ffffff541561276c57600080fd5b600162ffffff55341561277e57600080fd5b6002543b61278b57600080fd5b600254301861279957600080fd5b60206101c06004638da5cb5b6101605261017c6002545afa6127ba57600080fd5b6000506101c051610140526101405133146127d457600080fd5b6003546101e0526101e0513b6127e957600080fd5b6101e05130186127f857600080fd5b6020610340604463a9059cbb6102a052610140516102c0526101e0513b61281e57600080fd5b6101e051301861282d57600080fd5b602061028060246370a0823161020052306102205261021c6101e0515afa61285457600080fd5b600050610280516102e0526102bc60006101e0515af161287357600080fd5b6000506103405161288357600080fd5b600062ffffff55005b6323746eb860005114156128f15734156128a557600080fd5b606051600435806040519013156128bb57600080fd5b80919012156128c957600080fd5b50600435600281106128da57600080fd5b600060c052602060c020015460005260206000f350005b63b739953e600051141561295657341561290a57600080fd5b6060516004358060405190131561292057600080fd5b809190121561292e57600080fd5b506004356002811061293f57600080fd5b600160c052602060c020015460005260206000f350005b637165485d600051141561297d57341561296f57600080fd5b60025460005260206000f350005b63fc0c546a60005114156129a457341561299657600080fd5b60035460005260206000f350005b5b60006000fd5b610199612b4403610199600039610199612b44036000f30000000000000000000000005d3a536e4d6dbd6114cc1ead35777bab948e364300000000000000000000000039aa39c021dfbae8fac545936693ac917d5e75630000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000a2b47e3d5c44877cca798226b7b8118f9bfb7a56000000000000000000000000845838df265dcd2c412a1dc9e959c7d08537f8a2

Deployed Bytecode

0x600436101561000d576129a5565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052630b4c7e4d60005114156107ba5762ffffff54156100be57600080fd5b600162ffffff5534156100d057600080fd5b6101406001815260018160200152506101806000815260008160200152506101c060008152600081602001525061020060006002818352015b6004610200516002811061011c57600080fd5b602002013561022052600061022051111561069d57610180610200516002811061014557600080fd5b6020020151156101f157610200516002811061016057600080fd5b600160c052602060c02001543b61017657600080fd5b610200516002811061018757600080fd5b600160c052602060c0200154301861019e57600080fd5b6000600060646323b872dd6103205233610340523061036052610220516103805261033c600061020051600281106101d557600080fd5b600160c052602060c02001545af16101ec57600080fd5b6102a0565b610200516002811061020257600080fd5b600160c052602060c02001543b61021857600080fd5b610200516002811061022957600080fd5b600160c052602060c0200154301861024057600080fd5b602061030060646323b872dd6102405233610260523061028052610220516102a05261025c6000610200516002811061027857600080fd5b600160c052602060c02001545af161028f57600080fd5b6000506103005161029f57600080fd5b5b61014061020051600281106102b457600080fd5b6020020151156105dc5761020051600281106102cf57600080fd5b600160c052602060c02001543b6102e557600080fd5b61020051600281106102f657600080fd5b600160c052602060c0200154301861030d57600080fd5b6020610540604463095ea7b36104a052610200516002811061032e57600080fd5b600060c052602060c02001546104c052610220516104e0526104bc6000610200516002811061035c57600080fd5b600160c052602060c02001545af161037357600080fd5b60005061054050610200516002811061038b57600080fd5b600060c052602060c02001543b6103a157600080fd5b61020051600281106103b257600080fd5b600060c052602060c020015430186103c957600080fd5b6020610600602463a0712d6861058052610220516105a05261059c600061020051600281106103f757600080fd5b600060c052602060c02001545af161040e57600080fd5b60005061060051610560526000610560511115610471576308c379a0610620526020610640526013610660527f436f756c64206e6f74206d696e7420636f696e000000000000000000000000006106805261066050600061047057608461063cfd5b5b610200516002811061048257600080fd5b600060c052602060c02001543b61049857600080fd5b61020051600281106104a957600080fd5b600060c052602060c020015430186104c057600080fd5b602061074060246370a082316106c052306106e0526106dc61020051600281106104e957600080fd5b600060c052602060c02001545afa61050057600080fd5b600050610740516101c0610200516002811061051b57600080fd5b6020020152610200516002811061053157600080fd5b600060c052602060c02001543b61054757600080fd5b610200516002811061055857600080fd5b600060c052602060c0200154301861056f57600080fd5b6020610800604463095ea7b361076052600254610780526101c0610200516002811061059a57600080fd5b60200201516107a05261077c600061020051600281106105b957600080fd5b600060c052602060c02001545af16105d057600080fd5b6000506108005061069c565b610220516101c061020051600281106105f457600080fd5b6020020152610200516002811061060a57600080fd5b600160c052602060c02001543b61062057600080fd5b610200516002811061063157600080fd5b600160c052602060c0200154301861064857600080fd5b6020610480604463095ea7b36103e0526002546104005261022051610420526103fc6000610200516002811061067d57600080fd5b600160c052602060c02001545af161069457600080fd5b600050610480505b5b5b8151600101808352811415610109575b50506002543b6106bd57600080fd5b60025430186106cb57600080fd5b600060006064630b4c7e4d610820526108406101c0805182528060200151826020015250506044356108805261083c60006002545af161070a57600080fd5b6003543b61071757600080fd5b600354301861072557600080fd5b602061098060246370a0823161090052306109205261091c6003545afa61074b57600080fd5b600050610980516108e0526003543b61076357600080fd5b600354301861077157600080fd5b6020610a40604463a9059cbb6109a052336109c0526108e0516109e0526109bc60006003545af16107a157600080fd5b600050610a40516107b157600080fd5b600062ffffff55005b600015610b35575b6101c0526101405261016052610180526101a0526101e060018152600181602001525061022060008152600081602001525061026060006002818352015b6101a051610260511460006101a051121715610b1c576101e0610260516002811061082a57600080fd5b60200201511561096057610260516002811061084557600080fd5b600060c052602060c020015461028052610280513b61086357600080fd5b61028051301861087257600080fd5b602061034060246370a082316102c052306102e0526102dc610280515afa61089957600080fd5b600050610340516102a0526102a05115156108b357610b1d565b610280513b6108c157600080fd5b6102805130186108d057600080fd5b6020610400602463db006a75610380526102a0516103a05261039c6000610280515af16108fc57600080fd5b6000506104005161036052600061036051111561095f576308c379a0610420526020610440526015610460527f436f756c64206e6f742072656465656d20636f696e00000000000000000000006104805261046050600061095e57608461043cfd5b5b5b610260516002811061097157600080fd5b600160c052602060c02001546104c0526104c0513b61098f57600080fd5b6104c051301861099e57600080fd5b602061058060246370a0823161050052306105205261051c6104c0515afa6109c557600080fd5b600050610580516104e0526308c379a06105a05260206105c052601a6105e0527f4e6f7420656e6f75676820636f696e732077697468647261776e000000000000610600526105e0506101606102605160028110610a2257600080fd5b60200201516104e0511015610a385760846105bcfd5b60006104e051101515610b1b576102206102605160028110610a5957600080fd5b602002015115610ab8576104c0513b610a7157600080fd5b6104c0513018610a8057600080fd5b60006000604463a9059cbb6107005261014051610720526104e0516107405261071c60006104c0515af1610ab357600080fd5b610b1a565b6104c0513b610ac657600080fd5b6104c0513018610ad557600080fd5b60206106e0604463a9059cbb6106405261014051610660526104e0516106805261065c60006104c0515af1610b0957600080fd5b6000506106e051610b1957600080fd5b5b5b5b5b8151600101808352811415610800575b50506101c051565b635b36389c6000511415610cee5762ffffff5415610b5257600080fd5b600162ffffff553415610b6457600080fd5b6101406000815260008160200152506003543b610b8057600080fd5b6003543018610b8e57600080fd5b602061024060646323b872dd61018052336101a052306101c0526004356101e05261019c60006003545af1610bc257600080fd5b60005061024051610bd257600080fd5b6002543b610bdf57600080fd5b6002543018610bed57600080fd5b600060006064635b36389c61026052600435610280526102a06101408051825280602001518260200152505061027c60006002545af1610c2c57600080fd5b610140610320525b61032051516020610320510161032052610320610320511015610c5657610c34565b638ac5af926103405233610360526103806024803582528060200135826020015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103c0526103c0516103a0516103805161036051600658016107c2565b610300610320525b6103205152602061032051036103205261014061032051101515610ce257610cbf565b600050600062ffffff55005b63e3103273600051141561113e5762ffffff5415610d0b57600080fd5b600162ffffff553415610d1d57600080fd5b6101406001815260018160200152506101806000815260008160200152506003546101c0526101e060048035825280602001358260200152505061022060006002818352015b60006101e06102205160028110610d7957600080fd5b6020020151116101406102205160028110610d9357600080fd5b60200201511615610ea1576102205160028110610daf57600080fd5b600060c052602060c02001543b610dc557600080fd5b6102205160028110610dd657600080fd5b600060c052602060c02001543018610ded57600080fd5b60206102c0600463bd6d894d6102605261027c60006102205160028110610e1357600080fd5b600060c052602060c02001545af1610e2a57600080fd5b6000506102c051610240526101e06102205160028110610e4957600080fd5b6020020151670de0b6b3a76400008082028215828483041417610e6b57600080fd5b80905090509050610240518080610e8157600080fd5b8204905090506101e06102205160028110610e9b57600080fd5b60200201525b5b8151600101808352811415610d63575b50506101c0513b610ec257600080fd5b6101c0513018610ed157600080fd5b602061038060246370a0823161030052336103205261031c6101c0515afa610ef857600080fd5b600050610380516102e0526044356102e0511115610f18576044356102e0525b6101c0513b610f2657600080fd5b6101c0513018610f3557600080fd5b602061046060646323b872dd6103a052336103c052306103e0526102e051610400526103bc60006101c0515af1610f6b57600080fd5b60005061046051610f7b57600080fd5b6002543b610f8857600080fd5b6002543018610f9657600080fd5b60006000606463e3103273610480526104a06101e0805182528060200151826020015250506044356104e05261049c60006002545af1610fd557600080fd5b6101c0513b610fe357600080fd5b6101c0513018610ff257600080fd5b60206105c060246370a0823161054052306105605261055c6101c0515afa61101957600080fd5b6000506105c0516102e0526101c0513b61103257600080fd5b6101c051301861104157600080fd5b6020610680604463a9059cbb6105e05233610600526102e051610620526105fc60006101c0515af161107257600080fd5b6000506106805161108257600080fd5b6101406106a0525b6106a0515160206106a051016106a0526106a06106a05110156110ac5761108a565b638ac5af926106c052336106e0526107006000815260008160200152507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610740526107405161072051610700516106e051600658016107c2565b6106806106a0525b6106a0515260206106a051036106a0526101406106a0511015156111325761110f565b600050600062ffffff55005b60001561124b575b6101c0526101405261016052610180526101a0526101e06101408051825280602001518260200152505061022060006002818352015b6101e0610220516002811061119057600080fd5b602002015161018061022051600281106111a957600080fd5b602002015180820282158284830414176111c257600080fd5b80905090509050670de0b6b3a764000080806111dd57600080fd5b8204905090506101e061022051600281106111f757600080fd5b60200201525b815160010180835281141561117c575b50506040610240525b60006102405111151561122857611244565b602061024051036101e001516020610240510361024052611216565b6101c05156005b60001561154d575b6101a05261014052610160526101805260006101c05261020060006002818352015b6020610200510261016001516101e0526101c080516101e05181818301101561129d57600080fd5b808201905090508152505b8151600101808352811415611275575b50506101c05115156112d35760006000526000516101a05156505b6000610240526101c0516102605261014051600280820282158284830414176112fb57600080fd5b80905090509050610280526102a0600060ff818352015b610260516102c05261030060006002818352015b6020610300510261016001516102e0526102c05161026051808202821582848304141761135257600080fd5b809050905090506102e0516002808202821582848304141761137357600080fd5b80905090509050600181818301101561138b57600080fd5b80820190509050808061139d57600080fd5b8204905090506102c0525b8151600101808352811415611326575b50506102605161024052610280516101c05180820282158284830414176113de57600080fd5b809050905090506102c051600280820282158284830414176113ff57600080fd5b8090509050905081818301101561141557600080fd5b8082019050905061026051808202821582848304141761143457600080fd5b809050905090506102805160018082101561144e57600080fd5b8082039050905061026051808202821582848304141761146d57600080fd5b8090509050905060036102c051808202821582848304141761148e57600080fd5b809050905090508181830110156114a457600080fd5b8082019050905080806114b657600080fd5b82049050905061026052610240516102605111156114fd5760016102605161024051808210156114e557600080fd5b808203905090501115156114f857611539565b611528565b600161024051610260518082101561151457600080fd5b8082039050905011151561152757611539565b5b5b8151600101808352811415611312575b5050610260516000526000516101a0515650005b600015611872575b6101e0526101405261016052610180526101a0526101c0526002610160511260006101605112151661158657600080fd5b6101c0516102005260006102205261014051600280820282158284830414176115ae57600080fd5b809050905090506102405260006102605261028060006002818352015b610160516102805118156115fb5761018061028051600281106115ed57600080fd5b602002015161026052611600565b61167c565b61022080516102605181818301101561161857600080fd5b80820190509050815250610200516101c051808202821582848304141761163e57600080fd5b80905090509050610260516002808202821582848304141761165f57600080fd5b80905090509050808061167157600080fd5b820490509050610200525b81516001018083528114156115cb575b5050610200516101c05180820282158284830414176116aa57600080fd5b8090509050905061024051600280820282158284830414176116cb57600080fd5b8090509050905080806116dd57600080fd5b82049050905061020052610220516101c0516102405180806116fe57600080fd5b82049050905081818301101561171357600080fd5b808201905090506102a05260006102c0526101c0516102e052610300600060ff818352015b6102e0516102c0526102e0516102e051808202821582848304141761175c57600080fd5b809050905090506102005181818301101561177657600080fd5b8082019050905060026102e051808202821582848304141761179757600080fd5b809050905090506102a0518181830110156117b157600080fd5b808201905090506101c051808210156117c957600080fd5b8082039050905080806117db57600080fd5b8204905090506102e0526102c0516102e05111156118225760016102e0516102c0518082101561180a57600080fd5b8082039050905011151561181d5761185e565b61184d565b60016102c0516102e0518082101561183957600080fd5b8082039050905011151561184c5761185e565b5b5b8151600101808352811415611738575b50506102e0516000526000516101e0515650005b600015611faa575b6101c0526101405261016052610180526101a0526101e060018152600181602001525060025461022052610220513b6118b257600080fd5b6102205130186118c157600080fd5b60206102c0600463f446c1d06102605261027c610220515afa6118e357600080fd5b6000506102c05161024052610220513b6118fc57600080fd5b61022051301861190b57600080fd5b6020610360600463ddca3f436103005261031c610220515afa61192d57600080fd5b600050610360516002808202821582848304141761194a57600080fd5b809050905090506004808061195e57600080fd5b8204905090506102e0526102e080516102e051639502f900808202821582848304141761198a57600080fd5b809050905090506402540be40080806119a257600080fd5b8204905090508181830110156119b757600080fd5b808201905090508152506103806001815264e8d4a510008160200152506003543b6119e157600080fd5b60035430186119ef57600080fd5b602061044060046318160ddd6103e0526103fc6003545afa611a1057600080fd5b600050610440516103c0526104606001815264e8d4a5100081602001525060006104a0526104c060006002818352015b6104606104c05160028110611a5457600080fd5b602002018051610220513b611a6857600080fd5b610220513018611a7757600080fd5b6020610560602463065a80d86104e0526104c051610500526104fc610220515afa611aa157600080fd5b600050610560518082028215828483041417611abc57600080fd5b809050905090508152506101e06104c05160028110611ada57600080fd5b602002015115611b65576104606104c05160028110611af857600080fd5b60200201516101806104c05160028110611b1157600080fd5b60200201518082028215828483041417611b2a57600080fd5b80905090509050670de0b6b3a76400008080611b4557600080fd5b8204905090506104606104c05160028110611b5f57600080fd5b60200201525b6104a080516104606104c05160028110611b7e57600080fd5b6020020151818183011015611b9257600080fd5b808201905090508152505b8151600101808352811415611a40575b50506101406105a0525b6105a0515160206105a051016105a0526105a06105a0511015611bd957611bb7565b633aea5be46105c052610240516105e0526106006104608051825280602001518260200152505061062051610600516105e05160065801611253565b610680526105806105a0525b6105a0515260206105a051036105a0526101406105a051101515611c4457611c21565b61068051610580526105805161014051610580518082028215828483041417611c6c57600080fd5b809050905090506103c0518080611c8257600080fd5b82049050905080821015611c9557600080fd5b808203905090506106a0526106c06104608051825280602001518260200152505061070060006002818352015b6000610720526104606107005160028110611cdc57600080fd5b60200201516106a0518082028215828483041417611cf957600080fd5b80905090509050610580518080611d0f57600080fd5b820490509050610740526104606107005160028110611d2d57600080fd5b60200201516107605261016051610700511415611db15761076080516104a051610580516106a05180821015611d6257600080fd5b808203905090508082028215828483041417611d7d57600080fd5b80905090509050610580518080611d9357600080fd5b82049050905080821015611da657600080fd5b808203905090508152505b6107605161074051101515611de557610740516107605180821015611dd557600080fd5b8082039050905061072052611e06565b610760516107405180821015611dfa57600080fd5b80820390509050610720525b6106c06107005160028110611e1a57600080fd5b6020020180516102e051610720518082028215828483041417611e3c57600080fd5b809050905090506402540be4008080611e5457600080fd5b82049050905080821015611e6757600080fd5b808203905090508152505b8151600101808352811415611cc2575b50506106c06101605160028110611e9857600080fd5b60200201516101406107a0525b6107a0515160206107a051016107a0526107a06107a0511015611ec757611ea5565b6304e91cf76107c052610240516107e05261016051610800526108206106c0805182528060200151826020015250506106a05161086052610860516108405161082051610800516107e05160065801611555565b6108c0526107806107a0525b6107a0515260206107a051036107a0526101406107a051101515611f4a57611f27565b6108c05180821015611f5b57600080fd5b8082039050905061078052610780516103806101605160028110611f7e57600080fd5b60200201518080611f8e57600080fd5b82049050905061078052610780516000526000516101c0515650005b63cc2b27d7600051141561218e573415611fc357600080fd5b60605160243580604051901315611fd957600080fd5b8091901215611fe757600080fd5b506101406000815260008160200152506101806001815260018160200152506101c060006002818352015b6101806101c0516002811061202657600080fd5b6020020151156120df576101c0516002811061204157600080fd5b600060c052602060c02001543b61205757600080fd5b6101c0516002811061206857600080fd5b600060c052602060c0200154301861207f57600080fd5b6020610240600463182df0f56101e0526101fc6101c051600281106120a357600080fd5b600060c052602060c02001545afa6120ba57600080fd5b600050610240516101406101c051600281106120d557600080fd5b6020020152612102565b670de0b6b3a76400006101406101c051600281106120fc57600080fd5b60200201525b5b8151600101808352811415612012575b50506101405161016051610180516101a051638594ca16610280526004356102a0526024356102c0526102e061014080518252806020015182602001525050610300516102e0516102c0516102a0516006580161187a565b610360526101a0526101805261016052610140526103605160005260206000f350005b631a4d01d260005114156121a7576000610140526121dd565b63517a55a360005114156121d557606435600281106121c557600080fd5b60206064610140376000506121dd565b60001561274f575b62ffffff54156121ec57600080fd5b600162ffffff5534156121fe57600080fd5b6060516024358060405190131561221457600080fd5b809190121561222257600080fd5b506101606001815260018160200152506101a06000815260008160200152506003546101e05261020060006002818352015b610160610200516002811061226857600080fd5b60200201511561232357610200516002811061228357600080fd5b600060c052602060c02001543b61229957600080fd5b61020051600281106122aa57600080fd5b600060c052602060c020015430186122c157600080fd5b6020610280600463bd6d894d6102205261023c600061020051600281106122e757600080fd5b600060c052602060c02001545af16122fe57600080fd5b600050610280516101a0610200516002811061231957600080fd5b6020020152612346565b670de0b6b3a76400006101a0610200516002811061234057600080fd5b60200201525b5b8151600101808352811415612254575b50506101406102c0525b6102c0515160206102c051016102c0526102c06102c051101561238357612361565b638594ca166102e05260043561030052602435610320526103406101a080518252806020015182602001525050610360516103405161032051610300516006580161187a565b6103c0526102a06102c0525b6102c0515260206102c051036102c0526101406102c0511015156123f8576123d5565b6103c0516102a0526308c379a06103e0526020610400526018610420527f4e6f7420656e6f75676820636f696e732072656d6f766564000000000000000061044052610420506044356102a05110156124525760846103fcfd5b6003543b61245f57600080fd5b600354301861246d57600080fd5b602061054060646323b872dd61048052336104a052306104c0526004356104e05261049c60006003545af16124a157600080fd5b600050610540516124b157600080fd5b6105606000815260008160200152506102a051670de0b6b3a764000080820282158284830414176124e157600080fd5b809050905090506101a0602435600281106124fb57600080fd5b6020020151808061250b57600080fd5b8204905090506105606024356002811061252457600080fd5b60200201526101e0513b61253757600080fd5b6101e051301861254657600080fd5b602061064060246370a082316105c052306105e0526105dc6101e0515afa61256d57600080fd5b600050610640516105a0526002543b61258557600080fd5b600254301861259357600080fd5b60006000606463e310327361066052610680610560805182528060200151826020015250506004356106c05261067c60006002545af16125d257600080fd5b610140610720525b610720515160206107205101610720526107206107205110156125fc576125da565b638ac5af926107405233610760526107806000815260008160200152506024356107c0526107c0516107a0516107805161076051600658016107c2565b610700610720525b610720515260206107205103610720526101406107205110151561266457612641565b600050610140511515612746576101e0513b61267f57600080fd5b6101e051301861268e57600080fd5b60206108c060246370a0823161084052306108605261085c6101e0515afa6126b557600080fd5b6000506108c051610820526105a051610820511115612745576101e0513b6126dc57600080fd5b6101e05130186126eb57600080fd5b6020610980604463a9059cbb6108e0523361090052610820516105a0518082101561271557600080fd5b80820390509050610920526108fc60006101e0515af161273457600080fd5b6000506109805161274457600080fd5b5b5b600062ffffff55005b636c956a54600051141561288c5762ffffff541561276c57600080fd5b600162ffffff55341561277e57600080fd5b6002543b61278b57600080fd5b600254301861279957600080fd5b60206101c06004638da5cb5b6101605261017c6002545afa6127ba57600080fd5b6000506101c051610140526101405133146127d457600080fd5b6003546101e0526101e0513b6127e957600080fd5b6101e05130186127f857600080fd5b6020610340604463a9059cbb6102a052610140516102c0526101e0513b61281e57600080fd5b6101e051301861282d57600080fd5b602061028060246370a0823161020052306102205261021c6101e0515afa61285457600080fd5b600050610280516102e0526102bc60006101e0515af161287357600080fd5b6000506103405161288357600080fd5b600062ffffff55005b6323746eb860005114156128f15734156128a557600080fd5b606051600435806040519013156128bb57600080fd5b80919012156128c957600080fd5b50600435600281106128da57600080fd5b600060c052602060c020015460005260206000f350005b63b739953e600051141561295657341561290a57600080fd5b6060516004358060405190131561292057600080fd5b809190121561292e57600080fd5b506004356002811061293f57600080fd5b600160c052602060c020015460005260206000f350005b637165485d600051141561297d57341561296f57600080fd5b60025460005260206000f350005b63fc0c546a60005114156129a457341561299657600080fd5b60035460005260206000f350005b5b60006000fd

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

0000000000000000000000005d3a536e4d6dbd6114cc1ead35777bab948e364300000000000000000000000039aa39c021dfbae8fac545936693ac917d5e75630000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000a2b47e3d5c44877cca798226b7b8118f9bfb7a56000000000000000000000000845838df265dcd2c412a1dc9e959c7d08537f8a2

-----Decoded View---------------
Arg [0] : _coins (address[2]): 0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643,0x39AA39c021dfbaE8faC545936693aC917d5E7563
Arg [1] : _underlying_coins (address[2]): 0x6B175474E89094C44Da98b954EedeAC495271d0F,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Arg [2] : _curve (address): 0xA2B47E3D5c44877cca798226B7B8118F9BFb7A56
Arg [3] : _token (address): 0x845838DF265Dcd2c412A1Dc9e959c7d08537f8a2

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000005d3a536e4d6dbd6114cc1ead35777bab948e3643
Arg [1] : 00000000000000000000000039aa39c021dfbae8fac545936693ac917d5e7563
Arg [2] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [3] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [4] : 000000000000000000000000a2b47e3d5c44877cca798226b7b8118f9bfb7a56
Arg [5] : 000000000000000000000000845838df265dcd2c412a1dc9e959c7d08537f8a2


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

OVERVIEW

Curve.fi's Compound deposit address.

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.