ETH Price: $2,720.82 (+0.58%)

Contract

0xFCBa3E75865d2d561BE8D220616520c171F12851
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Remove_liquidity...218424852025-02-14 5:01:233 days ago1739509283IN
Curve.fi: sUSD v2 Deposit
0 ETH0.000544511.24649376
Remove_liquidity...218223832025-02-11 9:27:355 days ago1739266055IN
Curve.fi: sUSD v2 Deposit
0 ETH0.000556591.27156535
Remove_liquidity...218037132025-02-08 18:54:358 days ago1739040875IN
Curve.fi: sUSD v2 Deposit
0 ETH0.00048661.07843079
Remove_liquidity...217946872025-02-07 12:39:479 days ago1738931987IN
Curve.fi: sUSD v2 Deposit
0 ETH0.000643681.31507556
Remove_liquidity...217920422025-02-07 3:47:2310 days ago1738900043IN
Curve.fi: sUSD v2 Deposit
0 ETH0.000544931.2127696
Remove_liquidity...217913142025-02-07 1:21:4710 days ago1738891307IN
Curve.fi: sUSD v2 Deposit
0 ETH0.000492551.08014036
Remove_liquidity...217547702025-02-01 22:51:4715 days ago1738450307IN
Curve.fi: sUSD v2 Deposit
0 ETH0.001148912.64086586
Remove_liquidity...217510042025-02-01 10:14:3515 days ago1738404875IN
Curve.fi: sUSD v2 Deposit
0 ETH0.001378523.16077068
Remove_liquidity...217249912025-01-28 19:03:5919 days ago1738091039IN
Curve.fi: sUSD v2 Deposit
0 ETH0.00276986.1394442
Remove_liquidity...216544102025-01-18 22:38:3529 days ago1737239915IN
Curve.fi: sUSD v2 Deposit
0 ETH0.004151759.48444423
Remove_liquidity...216229942025-01-14 13:22:2333 days ago1736860943IN
Curve.fi: sUSD v2 Deposit
0 ETH0.003916368.66459079
Remove_liquidity...216076602025-01-12 9:57:5935 days ago1736675879IN
Curve.fi: sUSD v2 Deposit
0 ETH0.001054032.42351985
Remove_liquidity...216072912025-01-12 8:43:3536 days ago1736671415IN
Curve.fi: sUSD v2 Deposit
0 ETH0.000873551.93627936
Remove_liquidity...216011872025-01-11 12:17:3536 days ago1736597855IN
Curve.fi: sUSD v2 Deposit
0 ETH0.001252862.56248798
Remove_liquidity...215778022025-01-08 5:56:1140 days ago1736315771IN
Curve.fi: sUSD v2 Deposit
0 ETH0.001698863.88116002
Remove_liquidity...215687922025-01-06 23:45:3541 days ago1736207135IN
Curve.fi: sUSD v2 Deposit
0 ETH0.003807228.51308344
Remove_liquidity...215177582024-12-30 20:43:5948 days ago1735591439IN
Curve.fi: sUSD v2 Deposit
0 ETH0.002975686.54255104
Remove_liquidity...215124412024-12-30 2:54:3549 days ago1735527275IN
Curve.fi: sUSD v2 Deposit
0 ETH0.001364723.01915351
Remove_liquidity...214970972024-12-27 23:31:5951 days ago1735342319IN
Curve.fi: sUSD v2 Deposit
0 ETH0.001680763.56226736
Remove_liquidity...214969952024-12-27 23:11:2351 days ago1735341083IN
Curve.fi: sUSD v2 Deposit
0 ETH0.001803093.98895894
Remove_liquidity...214968702024-12-27 22:45:5951 days ago1735339559IN
Curve.fi: sUSD v2 Deposit
0 ETH0.00185734.24311876
Remove_liquidity...214894992024-12-26 22:03:2352 days ago1735250603IN
Curve.fi: sUSD v2 Deposit
0 ETH0.002403495.30351262
Remove_liquidity...214044302024-12-15 0:46:4764 days ago1734223607IN
Curve.fi: sUSD v2 Deposit
0 ETH0.003009496.73565848
Remove_liquidity...212910052024-11-29 4:35:2380 days ago1732854923IN
Curve.fi: sUSD v2 Deposit
0 ETH0.002131954.9065315
Remove_liquidity...212593962024-11-24 18:28:4784 days ago1732472927IN
Curve.fi: sUSD v2 Deposit
0 ETH0.003811278.3677469
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.1.0b17

Optimization Enabled:
N/A

Other Settings:
default 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) = 4
TETHERED: constant(bool[N_COINS]) = [False, False, True, False]
USE_LENDING: constant(bool[N_COINS]) = [False, False, False, False]
ZERO256: constant(uint256) = 0  # This hack is really bad XXX
ZEROS: constant(uint256[N_COINS]) = [ZERO256, ZERO256, 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), convert(1000000000000, uint256), convert(1, 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

[{"outputs":[],"inputs":[{"type":"address[4]","name":"_coins"},{"type":"address[4]","name":"_underlying_coins"},{"type":"address","name":"_curve"},{"type":"address","name":"_token"}],"constant":false,"payable":false,"type":"constructor"},{"name":"add_liquidity","outputs":[],"inputs":[{"type":"uint256[4]","name":"uamounts"},{"type":"uint256","name":"min_mint_amount"}],"constant":false,"payable":false,"type":"function","gas":166032},{"name":"remove_liquidity","outputs":[],"inputs":[{"type":"uint256","name":"_amount"},{"type":"uint256[4]","name":"min_uamounts"}],"constant":false,"payable":false,"type":"function","gas":101481},{"name":"remove_liquidity_imbalance","outputs":[],"inputs":[{"type":"uint256[4]","name":"uamounts"},{"type":"uint256","name":"max_burn_amount"}],"constant":false,"payable":false,"type":"function","gas":125088},{"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":3881771},{"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}]

740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052610140612e776101403934156100a257600080fd5b6020612e7760c03960c05160205181106100bb57600080fd5b5060206020612e770160c03960c05160205181106100d857600080fd5b5060206040612e770160c03960c05160205181106100f557600080fd5b5060206060612e770160c03960c051602051811061011257600080fd5b5060206080612e770160c03960c051602051811061012f57600080fd5b50602060a0612e770160c03960c051602051811061014c57600080fd5b50602060c0612e770160c03960c051602051811061016957600080fd5b50602060e0612e770160c03960c051602051811061018657600080fd5b506020610100612e770160c03960c05160205181106101a457600080fd5b506020610120612e770160c03960c05160205181106101c257600080fd5b50600060c052602060c020610140805182558060200151600183015580604001516002830155806060015160038301555050600160c052602060c0206101c08051825580602001516001830155806040015160028301558060600151600383015550506102405160025561026051600355612e5f56600436101561000d57612c21565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05263029b2f3460005114156107f85762ffffff54156100be57600080fd5b600162ffffff5534156100d057600080fd5b61014060008152600081602001526000816040015260008160600152506101c0600081526000816020015260018160400152600081606001525061024060008152600081602001526000816040015260008160600152506102c060006004818352015b60046102c0516004811061014657600080fd5b60200201356102e05260006102e05111156106c7576101c06102c0516004811061016f57600080fd5b60200201511561021b576102c0516004811061018a57600080fd5b600160c052602060c02001543b6101a057600080fd5b6102c051600481106101b157600080fd5b600160c052602060c020015430186101c857600080fd5b6000600060646323b872dd6103e052336104005230610420526102e051610440526103fc60006102c051600481106101ff57600080fd5b600160c052602060c02001545af161021657600080fd5b6102ca565b6102c0516004811061022c57600080fd5b600160c052602060c02001543b61024257600080fd5b6102c0516004811061025357600080fd5b600160c052602060c0200154301861026a57600080fd5b60206103c060646323b872dd61030052336103205230610340526102e0516103605261031c60006102c051600481106102a257600080fd5b600160c052602060c02001545af16102b957600080fd5b6000506103c0516102c957600080fd5b5b6101406102c051600481106102de57600080fd5b602002015115610606576102c051600481106102f957600080fd5b600160c052602060c02001543b61030f57600080fd5b6102c0516004811061032057600080fd5b600160c052602060c0200154301861033757600080fd5b6020610600604463095ea7b3610560526102c0516004811061035857600080fd5b600060c052602060c0200154610580526102e0516105a05261057c60006102c0516004811061038657600080fd5b600160c052602060c02001545af161039d57600080fd5b600050610600506102c051600481106103b557600080fd5b600060c052602060c02001543b6103cb57600080fd5b6102c051600481106103dc57600080fd5b600060c052602060c020015430186103f357600080fd5b60206106c0602463a0712d68610640526102e0516106605261065c60006102c0516004811061042157600080fd5b600060c052602060c02001545af161043857600080fd5b6000506106c05161062052600061062051111561049b576308c379a06106e0526020610700526013610720527f436f756c64206e6f74206d696e7420636f696e000000000000000000000000006107405261072050600061049a5760846106fcfd5b5b6102c051600481106104ac57600080fd5b600060c052602060c02001543b6104c257600080fd5b6102c051600481106104d357600080fd5b600060c052602060c020015430186104ea57600080fd5b602061080060246370a0823161078052306107a05261079c6102c0516004811061051357600080fd5b600060c052602060c02001545afa61052a57600080fd5b600050610800516102406102c0516004811061054557600080fd5b60200201526102c0516004811061055b57600080fd5b600060c052602060c02001543b61057157600080fd5b6102c0516004811061058257600080fd5b600060c052602060c0200154301861059957600080fd5b60206108c0604463095ea7b361082052600254610840526102406102c051600481106105c457600080fd5b60200201516108605261083c60006102c051600481106105e357600080fd5b600060c052602060c02001545af16105fa57600080fd5b6000506108c0506106c6565b6102e0516102406102c0516004811061061e57600080fd5b60200201526102c0516004811061063457600080fd5b600160c052602060c02001543b61064a57600080fd5b6102c0516004811061065b57600080fd5b600160c052602060c0200154301861067257600080fd5b6020610540604463095ea7b36104a0526002546104c0526102e0516104e0526104bc60006102c051600481106106a757600080fd5b600160c052602060c02001545af16106be57600080fd5b600050610540505b5b5b8151600101808352811415610133575b50506002543b6106e757600080fd5b60025430186106f557600080fd5b6000600060a463029b2f346108e052610900610240805182528060200151826020015280604001518260400152806060015182606001525050608435610980526108fc60006002545af161074857600080fd5b6003543b61075557600080fd5b600354301861076357600080fd5b6020610a8060246370a08231610a005230610a2052610a1c6003545afa61078957600080fd5b600050610a80516109e0526003543b6107a157600080fd5b60035430186107af57600080fd5b6020610b40604463a9059cbb610aa05233610ac0526109e051610ae052610abc60006003545af16107df57600080fd5b600050610b40516107ef57600080fd5b600062ffffff55005b600015610b97575b610200526101405261016052610180526101a0526101c0526101e05261022060008152600081602001526000816040015260008160600152506102a0600081526000816020015260018160400152600081606001525061032060006004818352015b6101e051610320511460006101e051121715610b7e57610220610320516004811061088c57600080fd5b6020020151156109c25761032051600481106108a757600080fd5b600060c052602060c020015461034052610340513b6108c557600080fd5b6103405130186108d457600080fd5b602061040060246370a0823161038052306103a05261039c610340515afa6108fb57600080fd5b600050610400516103605261036051151561091557610b7f565b610340513b61092357600080fd5b61034051301861093257600080fd5b60206104c0602463db006a7561044052610360516104605261045c6000610340515af161095e57600080fd5b6000506104c0516104205260006104205111156109c1576308c379a06104e0526020610500526015610520527f436f756c64206e6f742072656465656d20636f696e0000000000000000000000610540526105205060006109c05760846104fcfd5b5b5b61032051600481106109d357600080fd5b600160c052602060c020015461058052610580513b6109f157600080fd5b610580513018610a0057600080fd5b602061064060246370a082316105c052306105e0526105dc610580515afa610a2757600080fd5b600050610640516105a0526308c379a061066052602061068052601a6106a0527f4e6f7420656e6f75676820636f696e732077697468647261776e0000000000006106c0526106a0506101606103205160048110610a8457600080fd5b60200201516105a0511015610a9a57608461067cfd5b60006105a051101515610b7d576102a06103205160048110610abb57600080fd5b602002015115610b1a57610580513b610ad357600080fd5b610580513018610ae257600080fd5b60006000604463a9059cbb6107c052610140516107e0526105a051610800526107dc6000610580515af1610b1557600080fd5b610b7c565b610580513b610b2857600080fd5b610580513018610b3757600080fd5b60206107a0604463a9059cbb6107005261014051610720526105a0516107405261071c6000610580515af1610b6b57600080fd5b6000506107a051610b7b57600080fd5b5b5b5b5b8151600101808352811415610862575b505061020051565b637d49d8756000511415610d8e5762ffffff5415610bb457600080fd5b600162ffffff553415610bc657600080fd5b61014060008152600081602001526000816040015260008160600152506003543b610bf057600080fd5b6003543018610bfe57600080fd5b602061028060646323b872dd6101c052336101e0523061020052600435610220526101dc60006003545af1610c3257600080fd5b60005061028051610c4257600080fd5b6002543b610c4f57600080fd5b6002543018610c5d57600080fd5b6000600060a4637d49d8756102a0526004356102c0526102e06101408051825280602001518260200152806040015182604001528060600151826060015250506102bc60006002545af1610cb057600080fd5b6101406103a0525b6103a0515160206103a051016103a0526103a06103a0511015610cda57610cb8565b63eb9ec6916103c052336103e05261040060248035825280602001358260200152806040013582604001528060600135826060015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6104805261048051610460516104405161042051610400516103e05160065801610800565b6103806103a0525b6103a0515260206103a051036103a0526101406103a051101515610d8257610d5f565b600050600062ffffff55005b6318a7bd7660005114156112385762ffffff5415610dab57600080fd5b600162ffffff553415610dbd57600080fd5b61014060008152600081602001526000816040015260008160600152506101c060008152600081602001526001816040015260008160600152506003546102405261026060048035825280602001358260200152806040013582604001528060600135826060015250506102e060006004818352015b60006102606102e05160048110610e4957600080fd5b6020020151116101406102e05160048110610e6357600080fd5b60200201511615610f71576102e05160048110610e7f57600080fd5b600060c052602060c02001543b610e9557600080fd5b6102e05160048110610ea657600080fd5b600060c052602060c02001543018610ebd57600080fd5b6020610380600463bd6d894d6103205261033c60006102e05160048110610ee357600080fd5b600060c052602060c02001545af1610efa57600080fd5b60005061038051610300526102606102e05160048110610f1957600080fd5b6020020151670de0b6b3a76400008082028215828483041417610f3b57600080fd5b80905090509050610300518080610f5157600080fd5b8204905090506102606102e05160048110610f6b57600080fd5b60200201525b5b8151600101808352811415610e33575b5050610240513b610f9257600080fd5b610240513018610fa157600080fd5b602061044060246370a082316103c052336103e0526103dc610240515afa610fc857600080fd5b600050610440516103a0526084356103a0511115610fe8576084356103a0525b610240513b610ff657600080fd5b61024051301861100557600080fd5b602061052060646323b872dd610460523361048052306104a0526103a0516104c05261047c6000610240515af161103b57600080fd5b6000506105205161104b57600080fd5b6002543b61105857600080fd5b600254301861106657600080fd5b6000600060a46318a7bd76610540526105606102608051825280602001518260200152806040015182604001528060600151826060015250506084356105e05261055c60006002545af16110b957600080fd5b610240513b6110c757600080fd5b6102405130186110d657600080fd5b60206106c060246370a0823161064052306106605261065c610240515afa6110fd57600080fd5b6000506106c0516103a052610240513b61111657600080fd5b61024051301861112557600080fd5b6020610780604463a9059cbb6106e05233610700526103a051610720526106fc6000610240515af161115657600080fd5b6000506107805161116657600080fd5b6101406107a0525b6107a0515160206107a051016107a0526107a06107a05110156111905761116e565b63eb9ec6916107c052336107e05261080060008152600081602001526000816040015260008160600152507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108805261088051610860516108405161082051610800516107e05160065801610800565b6107806107a0525b6107a0515260206107a051036107a0526101406107a05110151561122c57611209565b600050600062ffffff55005b600015611369575b610240526101405261016052610180526101a0526101c0526101e05261020052610220526102606101408051825280602001518260200152806040015182604001528060600151826060015250506102e060006004818352015b6102606102e051600481106112ae57600080fd5b60200201516101c06102e051600481106112c757600080fd5b602002015180820282158284830414176112e057600080fd5b80905090509050670de0b6b3a764000080806112fb57600080fd5b8204905090506102606102e0516004811061131557600080fd5b60200201525b815160010180835281141561129a575b50506080610300525b60006103005111151561134657611362565b6020610300510361026001516020610300510361030052611334565b6102405156005b600015611673575b6101e0526101405261016052610180526101a0526101c05260006102005261024060006004818352015b602061024051026101600151610220526102008051610220518181830110156113c357600080fd5b808201905090508152505b815160010180835281141561139b575b50506102005115156113f95760006000526000516101e05156505b600061028052610200516102a052610140516004808202821582848304141761142157600080fd5b809050905090506102c0526102e0600060ff818352015b6102a0516103005261034060006004818352015b60206103405102610160015161032052610300516102a051808202821582848304141761147857600080fd5b80905090509050610320516004808202821582848304141761149957600080fd5b8090509050905060018181830110156114b157600080fd5b8082019050905080806114c357600080fd5b820490509050610300525b815160010180835281141561144c575b50506102a051610280526102c05161020051808202821582848304141761150457600080fd5b80905090509050610300516004808202821582848304141761152557600080fd5b8090509050905081818301101561153b57600080fd5b808201905090506102a051808202821582848304141761155a57600080fd5b809050905090506102c05160018082101561157457600080fd5b808203905090506102a051808202821582848304141761159357600080fd5b8090509050905060056103005180820282158284830414176115b457600080fd5b809050905090508181830110156115ca57600080fd5b8082019050905080806115dc57600080fd5b8204905090506102a052610280516102a05111156116235760016102a051610280518082101561160b57600080fd5b8082039050905011151561161e5761165f565b61164e565b6001610280516102a0518082101561163a57600080fd5b8082039050905011151561164d5761165f565b5b5b8151600101808352811415611438575b50506102a0516000526000516101e0515650005b6000156119a0575b610220526101405261016052610180526101a0526101c0526101e05261020052600461016051126000610160511215166116b457600080fd5b610200516102405260006102605261014051600480820282158284830414176116dc57600080fd5b809050905090506102805260006102a0526102c060006004818352015b610160516102c0511815611729576101806102c0516004811061171b57600080fd5b60200201516102a05261172e565b6117aa565b61026080516102a05181818301101561174657600080fd5b808201905090508152506102405161020051808202821582848304141761176c57600080fd5b809050905090506102a0516004808202821582848304141761178d57600080fd5b80905090509050808061179f57600080fd5b820490509050610240525b81516001018083528114156116f9575b5050610240516102005180820282158284830414176117d857600080fd5b8090509050905061028051600480820282158284830414176117f957600080fd5b80905090509050808061180b57600080fd5b82049050905061024052610260516102005161028051808061182c57600080fd5b82049050905081818301101561184157600080fd5b808201905090506102e0526000610300526102005161032052610340600060ff818352015b61032051610300526103205161032051808202821582848304141761188a57600080fd5b80905090509050610240518181830110156118a457600080fd5b8082019050905060026103205180820282158284830414176118c557600080fd5b809050905090506102e0518181830110156118df57600080fd5b8082019050905061020051808210156118f757600080fd5b80820390509050808061190957600080fd5b820490509050610320526103005161032051111561195057600161032051610300518082101561193857600080fd5b8082039050905011151561194b5761198c565b61197b565b600161030051610320518082101561196757600080fd5b8082039050905011151561197a5761198c565b5b5b8151600101808352811415611866575b505061032051600052600051610220515650005b60001561215e575b610200526101405261016052610180526101a0526101c0526101e05261022060008152600081602001526000816040015260008160600152506002546102a0526102a0513b6119f657600080fd5b6102a0513018611a0557600080fd5b6020610340600463f446c1d06102e0526102fc6102a0515afa611a2757600080fd5b600050610340516102c0526102a0513b611a4057600080fd5b6102a0513018611a4f57600080fd5b60206103e0600463ddca3f436103805261039c6102a0515afa611a7157600080fd5b6000506103e05160048082028215828483041417611a8e57600080fd5b80905090509050600c8080611aa257600080fd5b82049050905061036052610360805161036051639502f9008082028215828483041417611ace57600080fd5b809050905090506402540be4008080611ae657600080fd5b820490509050818183011015611afb57600080fd5b808201905090508152506104006001815264e8d4a51000816020015264e8d4a51000816040015260018160600152506003543b611b3757600080fd5b6003543018611b4557600080fd5b602061050060046318160ddd6104a0526104bc6003545afa611b6657600080fd5b60005061050051610480526105206001815264e8d4a51000816020015264e8d4a510008160400152600181606001525060006105a0526105c060006004818352015b6105206105c05160048110611bbc57600080fd5b6020020180516102a0513b611bd057600080fd5b6102a0513018611bdf57600080fd5b6020610660602463065a80d86105e0526105c051610600526105fc6102a0515afa611c0957600080fd5b600050610660518082028215828483041417611c2457600080fd5b809050905090508152506102206105c05160048110611c4257600080fd5b602002015115611ccd576105206105c05160048110611c6057600080fd5b60200201516101806105c05160048110611c7957600080fd5b60200201518082028215828483041417611c9257600080fd5b80905090509050670de0b6b3a76400008080611cad57600080fd5b8204905090506105206105c05160048110611cc757600080fd5b60200201525b6105a080516105206105c05160048110611ce657600080fd5b6020020151818183011015611cfa57600080fd5b808201905090508152505b8151600101808352811415611ba8575b50506101406106a0525b6106a0515160206106a051016106a0526106a06106a0511015611d4157611d1f565b637b7241516106c0526102c0516106e052610700610520805182528060200151826020015280604001518260400152806060015182606001525050610760516107405161072051610700516106e05160065801611371565b6107c0526106806106a0525b6106a0515260206106a051036106a0526101406106a051101515611dc857611da5565b6107c051610680526106805161014051610680518082028215828483041417611df057600080fd5b80905090509050610480518080611e0657600080fd5b82049050905080821015611e1957600080fd5b808203905090506107e05261080061052080518252806020015182602001528060400151826040015280606001518260600152505061088060006004818352015b60006108a0526105206108805160048110611e7457600080fd5b60200201516107e0518082028215828483041417611e9157600080fd5b80905090509050610680518080611ea757600080fd5b8204905090506108c0526105206108805160048110611ec557600080fd5b60200201516108e05261016051610880511415611f49576108e080516105a051610680516107e05180821015611efa57600080fd5b808203905090508082028215828483041417611f1557600080fd5b80905090509050610680518080611f2b57600080fd5b82049050905080821015611f3e57600080fd5b808203905090508152505b6108e0516108c051101515611f7d576108c0516108e05180821015611f6d57600080fd5b808203905090506108a052611f9e565b6108e0516108c05180821015611f9257600080fd5b808203905090506108a0525b6108006108805160048110611fb257600080fd5b602002018051610360516108a0518082028215828483041417611fd457600080fd5b809050905090506402540be4008080611fec57600080fd5b82049050905080821015611fff57600080fd5b808203905090508152505b8151600101808352811415611e5a575b5050610800610160516004811061203057600080fd5b6020020151610140610920525b6109205151602061092051016109205261092061092051101561205f5761203d565b638643731f610940526102c0516109605261016051610980526109a06108008051825280602001518260200152806040015182604001528060600151826060015250506107e051610a2052610a2051610a00516109e0516109c0516109a05161098051610960516006580161167b565b610a8052610900610920525b61092051526020610920510361092052610140610920511015156120fe576120db565b610a80518082101561210f57600080fd5b808203905090506109005261090051610400610160516004811061213257600080fd5b6020020151808061214257600080fd5b8204905090506109005261090051600052600051610200515650005b63cc2b27d7600051141561239a57341561217757600080fd5b6060516024358060405190131561218d57600080fd5b809190121561219b57600080fd5b5061014060008152600081602001526000816040015260008160600152506101c0600081526000816020015260008160400152600081606001525061024060006004818352015b6101c061024051600481106121f657600080fd5b6020020151156122af57610240516004811061221157600080fd5b600060c052602060c02001543b61222757600080fd5b610240516004811061223857600080fd5b600060c052602060c0200154301861224f57600080fd5b60206102c0600463182df0f56102605261027c610240516004811061227357600080fd5b600060c052602060c02001545afa61228a57600080fd5b6000506102c05161014061024051600481106122a557600080fd5b60200201526122d2565b670de0b6b3a764000061014061024051600481106122cc57600080fd5b60200201525b5b81516001018083528114156121e2575b50506101405161016051610180516101a0516101c0516101e051610200516102205163800c1cbc6103005260043561032052602435610340526103606101408051825280602001518260200152806040015182604001528060600151826060015250506103c0516103a05161038051610360516103405161032051600658016119a8565b6104205261022052610200526101e0526101c0526101a0526101805261016052610140526104205160005260206000f350005b631a4d01d260005114156123b3576000610140526123e9565b63517a55a360005114156123e157606435600281106123d157600080fd5b60206064610140376000506123e9565b6000156129cb575b62ffffff54156123f857600080fd5b600162ffffff55341561240a57600080fd5b6060516024358060405190131561242057600080fd5b809190121561242e57600080fd5b5061016060008152600081602001526000816040015260008160600152506101e060008152600081602001526000816040015260008160600152506003546102605261028060006004818352015b610160610280516004811061249057600080fd5b60200201511561254b5761028051600481106124ab57600080fd5b600060c052602060c02001543b6124c157600080fd5b61028051600481106124d257600080fd5b600060c052602060c020015430186124e957600080fd5b6020610300600463bd6d894d6102a0526102bc6000610280516004811061250f57600080fd5b600060c052602060c02001545af161252657600080fd5b600050610300516101e0610280516004811061254157600080fd5b602002015261256e565b670de0b6b3a76400006101e0610280516004811061256857600080fd5b60200201525b5b815160010180835281141561247c575b5050610140610340525b610340515160206103405101610340526103406103405110156125ab57612589565b63800c1cbc61036052600435610380526024356103a0526103c06101e080518252806020015182602001528060400151826040015280606001518260600152505061042051610400516103e0516103c0516103a05161038051600658016119a8565b61048052610320610340525b610340515260206103405103610340526101406103405110151561263c57612619565b61048051610320526308c379a06104a05260206104c05260186104e0527f4e6f7420656e6f75676820636f696e732072656d6f7665640000000000000000610500526104e0506044356103205110156126965760846104bcfd5b6003543b6126a357600080fd5b60035430186126b157600080fd5b602061060060646323b872dd61054052336105605230610580526004356105a05261055c60006003545af16126e557600080fd5b600050610600516126f557600080fd5b610620600081526000816020015260008160400152600081606001525061032051670de0b6b3a7640000808202821582848304141761273357600080fd5b809050905090506101e06024356004811061274d57600080fd5b6020020151808061275d57600080fd5b8204905090506106206024356004811061277657600080fd5b6020020152610260513b61278957600080fd5b61026051301861279857600080fd5b602061074060246370a082316106c052306106e0526106dc610260515afa6127bf57600080fd5b600050610740516106a0526002543b6127d757600080fd5b60025430186127e557600080fd5b6000600060a46318a7bd76610760526107806106208051825280602001518260200152806040015182604001528060600151826060015250506004356108005261077c60006002545af161283857600080fd5b610140610860525b6108605151602061086051016108605261086061086051101561286257612840565b63eb9ec69161088052336108a0526108c06000815260008160200152600081604001526000816060015250602435610940526109405161092051610900516108e0516108c0516108a05160065801610800565b610840610860525b61086051526020610860510361086052610140610860511015156128e0576128bd565b6000506101405115156129c257610260513b6128fb57600080fd5b61026051301861290a57600080fd5b6020610a4060246370a082316109c052306109e0526109dc610260515afa61293157600080fd5b600050610a40516109a0526106a0516109a05111156129c157610260513b61295857600080fd5b61026051301861296757600080fd5b6020610b00604463a9059cbb610a605233610a80526109a0516106a0518082101561299157600080fd5b80820390509050610aa052610a7c6000610260515af16129b057600080fd5b600050610b00516129c057600080fd5b5b5b600062ffffff55005b636c956a546000511415612b085762ffffff54156129e857600080fd5b600162ffffff5534156129fa57600080fd5b6002543b612a0757600080fd5b6002543018612a1557600080fd5b60206101c06004638da5cb5b6101605261017c6002545afa612a3657600080fd5b6000506101c05161014052610140513314612a5057600080fd5b6003546101e0526101e0513b612a6557600080fd5b6101e0513018612a7457600080fd5b6020610340604463a9059cbb6102a052610140516102c0526101e0513b612a9a57600080fd5b6101e0513018612aa957600080fd5b602061028060246370a0823161020052306102205261021c6101e0515afa612ad057600080fd5b600050610280516102e0526102bc60006101e0515af1612aef57600080fd5b60005061034051612aff57600080fd5b600062ffffff55005b6323746eb86000511415612b6d573415612b2157600080fd5b60605160043580604051901315612b3757600080fd5b8091901215612b4557600080fd5b5060043560048110612b5657600080fd5b600060c052602060c020015460005260206000f350005b63b739953e6000511415612bd2573415612b8657600080fd5b60605160043580604051901315612b9c57600080fd5b8091901215612baa57600080fd5b5060043560048110612bbb57600080fd5b600160c052602060c020015460005260206000f350005b637165485d6000511415612bf9573415612beb57600080fd5b60025460005260206000f350005b63fc0c546a6000511415612c20573415612c1257600080fd5b60035460005260206000f350005b5b60006000fd5b610238612e5f03610238600039610238612e5f036000f30000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f510000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51000000000000000000000000a5407eae9ba41422680e2e00537571bcc53efbfd000000000000000000000000c25a3a3b969415c80451098fa907ec722572917f

Deployed Bytecode

0x600436101561000d57612c21565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05263029b2f3460005114156107f85762ffffff54156100be57600080fd5b600162ffffff5534156100d057600080fd5b61014060008152600081602001526000816040015260008160600152506101c0600081526000816020015260018160400152600081606001525061024060008152600081602001526000816040015260008160600152506102c060006004818352015b60046102c0516004811061014657600080fd5b60200201356102e05260006102e05111156106c7576101c06102c0516004811061016f57600080fd5b60200201511561021b576102c0516004811061018a57600080fd5b600160c052602060c02001543b6101a057600080fd5b6102c051600481106101b157600080fd5b600160c052602060c020015430186101c857600080fd5b6000600060646323b872dd6103e052336104005230610420526102e051610440526103fc60006102c051600481106101ff57600080fd5b600160c052602060c02001545af161021657600080fd5b6102ca565b6102c0516004811061022c57600080fd5b600160c052602060c02001543b61024257600080fd5b6102c0516004811061025357600080fd5b600160c052602060c0200154301861026a57600080fd5b60206103c060646323b872dd61030052336103205230610340526102e0516103605261031c60006102c051600481106102a257600080fd5b600160c052602060c02001545af16102b957600080fd5b6000506103c0516102c957600080fd5b5b6101406102c051600481106102de57600080fd5b602002015115610606576102c051600481106102f957600080fd5b600160c052602060c02001543b61030f57600080fd5b6102c0516004811061032057600080fd5b600160c052602060c0200154301861033757600080fd5b6020610600604463095ea7b3610560526102c0516004811061035857600080fd5b600060c052602060c0200154610580526102e0516105a05261057c60006102c0516004811061038657600080fd5b600160c052602060c02001545af161039d57600080fd5b600050610600506102c051600481106103b557600080fd5b600060c052602060c02001543b6103cb57600080fd5b6102c051600481106103dc57600080fd5b600060c052602060c020015430186103f357600080fd5b60206106c0602463a0712d68610640526102e0516106605261065c60006102c0516004811061042157600080fd5b600060c052602060c02001545af161043857600080fd5b6000506106c05161062052600061062051111561049b576308c379a06106e0526020610700526013610720527f436f756c64206e6f74206d696e7420636f696e000000000000000000000000006107405261072050600061049a5760846106fcfd5b5b6102c051600481106104ac57600080fd5b600060c052602060c02001543b6104c257600080fd5b6102c051600481106104d357600080fd5b600060c052602060c020015430186104ea57600080fd5b602061080060246370a0823161078052306107a05261079c6102c0516004811061051357600080fd5b600060c052602060c02001545afa61052a57600080fd5b600050610800516102406102c0516004811061054557600080fd5b60200201526102c0516004811061055b57600080fd5b600060c052602060c02001543b61057157600080fd5b6102c0516004811061058257600080fd5b600060c052602060c0200154301861059957600080fd5b60206108c0604463095ea7b361082052600254610840526102406102c051600481106105c457600080fd5b60200201516108605261083c60006102c051600481106105e357600080fd5b600060c052602060c02001545af16105fa57600080fd5b6000506108c0506106c6565b6102e0516102406102c0516004811061061e57600080fd5b60200201526102c0516004811061063457600080fd5b600160c052602060c02001543b61064a57600080fd5b6102c0516004811061065b57600080fd5b600160c052602060c0200154301861067257600080fd5b6020610540604463095ea7b36104a0526002546104c0526102e0516104e0526104bc60006102c051600481106106a757600080fd5b600160c052602060c02001545af16106be57600080fd5b600050610540505b5b5b8151600101808352811415610133575b50506002543b6106e757600080fd5b60025430186106f557600080fd5b6000600060a463029b2f346108e052610900610240805182528060200151826020015280604001518260400152806060015182606001525050608435610980526108fc60006002545af161074857600080fd5b6003543b61075557600080fd5b600354301861076357600080fd5b6020610a8060246370a08231610a005230610a2052610a1c6003545afa61078957600080fd5b600050610a80516109e0526003543b6107a157600080fd5b60035430186107af57600080fd5b6020610b40604463a9059cbb610aa05233610ac0526109e051610ae052610abc60006003545af16107df57600080fd5b600050610b40516107ef57600080fd5b600062ffffff55005b600015610b97575b610200526101405261016052610180526101a0526101c0526101e05261022060008152600081602001526000816040015260008160600152506102a0600081526000816020015260018160400152600081606001525061032060006004818352015b6101e051610320511460006101e051121715610b7e57610220610320516004811061088c57600080fd5b6020020151156109c25761032051600481106108a757600080fd5b600060c052602060c020015461034052610340513b6108c557600080fd5b6103405130186108d457600080fd5b602061040060246370a0823161038052306103a05261039c610340515afa6108fb57600080fd5b600050610400516103605261036051151561091557610b7f565b610340513b61092357600080fd5b61034051301861093257600080fd5b60206104c0602463db006a7561044052610360516104605261045c6000610340515af161095e57600080fd5b6000506104c0516104205260006104205111156109c1576308c379a06104e0526020610500526015610520527f436f756c64206e6f742072656465656d20636f696e0000000000000000000000610540526105205060006109c05760846104fcfd5b5b5b61032051600481106109d357600080fd5b600160c052602060c020015461058052610580513b6109f157600080fd5b610580513018610a0057600080fd5b602061064060246370a082316105c052306105e0526105dc610580515afa610a2757600080fd5b600050610640516105a0526308c379a061066052602061068052601a6106a0527f4e6f7420656e6f75676820636f696e732077697468647261776e0000000000006106c0526106a0506101606103205160048110610a8457600080fd5b60200201516105a0511015610a9a57608461067cfd5b60006105a051101515610b7d576102a06103205160048110610abb57600080fd5b602002015115610b1a57610580513b610ad357600080fd5b610580513018610ae257600080fd5b60006000604463a9059cbb6107c052610140516107e0526105a051610800526107dc6000610580515af1610b1557600080fd5b610b7c565b610580513b610b2857600080fd5b610580513018610b3757600080fd5b60206107a0604463a9059cbb6107005261014051610720526105a0516107405261071c6000610580515af1610b6b57600080fd5b6000506107a051610b7b57600080fd5b5b5b5b5b8151600101808352811415610862575b505061020051565b637d49d8756000511415610d8e5762ffffff5415610bb457600080fd5b600162ffffff553415610bc657600080fd5b61014060008152600081602001526000816040015260008160600152506003543b610bf057600080fd5b6003543018610bfe57600080fd5b602061028060646323b872dd6101c052336101e0523061020052600435610220526101dc60006003545af1610c3257600080fd5b60005061028051610c4257600080fd5b6002543b610c4f57600080fd5b6002543018610c5d57600080fd5b6000600060a4637d49d8756102a0526004356102c0526102e06101408051825280602001518260200152806040015182604001528060600151826060015250506102bc60006002545af1610cb057600080fd5b6101406103a0525b6103a0515160206103a051016103a0526103a06103a0511015610cda57610cb8565b63eb9ec6916103c052336103e05261040060248035825280602001358260200152806040013582604001528060600135826060015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6104805261048051610460516104405161042051610400516103e05160065801610800565b6103806103a0525b6103a0515260206103a051036103a0526101406103a051101515610d8257610d5f565b600050600062ffffff55005b6318a7bd7660005114156112385762ffffff5415610dab57600080fd5b600162ffffff553415610dbd57600080fd5b61014060008152600081602001526000816040015260008160600152506101c060008152600081602001526001816040015260008160600152506003546102405261026060048035825280602001358260200152806040013582604001528060600135826060015250506102e060006004818352015b60006102606102e05160048110610e4957600080fd5b6020020151116101406102e05160048110610e6357600080fd5b60200201511615610f71576102e05160048110610e7f57600080fd5b600060c052602060c02001543b610e9557600080fd5b6102e05160048110610ea657600080fd5b600060c052602060c02001543018610ebd57600080fd5b6020610380600463bd6d894d6103205261033c60006102e05160048110610ee357600080fd5b600060c052602060c02001545af1610efa57600080fd5b60005061038051610300526102606102e05160048110610f1957600080fd5b6020020151670de0b6b3a76400008082028215828483041417610f3b57600080fd5b80905090509050610300518080610f5157600080fd5b8204905090506102606102e05160048110610f6b57600080fd5b60200201525b5b8151600101808352811415610e33575b5050610240513b610f9257600080fd5b610240513018610fa157600080fd5b602061044060246370a082316103c052336103e0526103dc610240515afa610fc857600080fd5b600050610440516103a0526084356103a0511115610fe8576084356103a0525b610240513b610ff657600080fd5b61024051301861100557600080fd5b602061052060646323b872dd610460523361048052306104a0526103a0516104c05261047c6000610240515af161103b57600080fd5b6000506105205161104b57600080fd5b6002543b61105857600080fd5b600254301861106657600080fd5b6000600060a46318a7bd76610540526105606102608051825280602001518260200152806040015182604001528060600151826060015250506084356105e05261055c60006002545af16110b957600080fd5b610240513b6110c757600080fd5b6102405130186110d657600080fd5b60206106c060246370a0823161064052306106605261065c610240515afa6110fd57600080fd5b6000506106c0516103a052610240513b61111657600080fd5b61024051301861112557600080fd5b6020610780604463a9059cbb6106e05233610700526103a051610720526106fc6000610240515af161115657600080fd5b6000506107805161116657600080fd5b6101406107a0525b6107a0515160206107a051016107a0526107a06107a05110156111905761116e565b63eb9ec6916107c052336107e05261080060008152600081602001526000816040015260008160600152507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108805261088051610860516108405161082051610800516107e05160065801610800565b6107806107a0525b6107a0515260206107a051036107a0526101406107a05110151561122c57611209565b600050600062ffffff55005b600015611369575b610240526101405261016052610180526101a0526101c0526101e05261020052610220526102606101408051825280602001518260200152806040015182604001528060600151826060015250506102e060006004818352015b6102606102e051600481106112ae57600080fd5b60200201516101c06102e051600481106112c757600080fd5b602002015180820282158284830414176112e057600080fd5b80905090509050670de0b6b3a764000080806112fb57600080fd5b8204905090506102606102e0516004811061131557600080fd5b60200201525b815160010180835281141561129a575b50506080610300525b60006103005111151561134657611362565b6020610300510361026001516020610300510361030052611334565b6102405156005b600015611673575b6101e0526101405261016052610180526101a0526101c05260006102005261024060006004818352015b602061024051026101600151610220526102008051610220518181830110156113c357600080fd5b808201905090508152505b815160010180835281141561139b575b50506102005115156113f95760006000526000516101e05156505b600061028052610200516102a052610140516004808202821582848304141761142157600080fd5b809050905090506102c0526102e0600060ff818352015b6102a0516103005261034060006004818352015b60206103405102610160015161032052610300516102a051808202821582848304141761147857600080fd5b80905090509050610320516004808202821582848304141761149957600080fd5b8090509050905060018181830110156114b157600080fd5b8082019050905080806114c357600080fd5b820490509050610300525b815160010180835281141561144c575b50506102a051610280526102c05161020051808202821582848304141761150457600080fd5b80905090509050610300516004808202821582848304141761152557600080fd5b8090509050905081818301101561153b57600080fd5b808201905090506102a051808202821582848304141761155a57600080fd5b809050905090506102c05160018082101561157457600080fd5b808203905090506102a051808202821582848304141761159357600080fd5b8090509050905060056103005180820282158284830414176115b457600080fd5b809050905090508181830110156115ca57600080fd5b8082019050905080806115dc57600080fd5b8204905090506102a052610280516102a05111156116235760016102a051610280518082101561160b57600080fd5b8082039050905011151561161e5761165f565b61164e565b6001610280516102a0518082101561163a57600080fd5b8082039050905011151561164d5761165f565b5b5b8151600101808352811415611438575b50506102a0516000526000516101e0515650005b6000156119a0575b610220526101405261016052610180526101a0526101c0526101e05261020052600461016051126000610160511215166116b457600080fd5b610200516102405260006102605261014051600480820282158284830414176116dc57600080fd5b809050905090506102805260006102a0526102c060006004818352015b610160516102c0511815611729576101806102c0516004811061171b57600080fd5b60200201516102a05261172e565b6117aa565b61026080516102a05181818301101561174657600080fd5b808201905090508152506102405161020051808202821582848304141761176c57600080fd5b809050905090506102a0516004808202821582848304141761178d57600080fd5b80905090509050808061179f57600080fd5b820490509050610240525b81516001018083528114156116f9575b5050610240516102005180820282158284830414176117d857600080fd5b8090509050905061028051600480820282158284830414176117f957600080fd5b80905090509050808061180b57600080fd5b82049050905061024052610260516102005161028051808061182c57600080fd5b82049050905081818301101561184157600080fd5b808201905090506102e0526000610300526102005161032052610340600060ff818352015b61032051610300526103205161032051808202821582848304141761188a57600080fd5b80905090509050610240518181830110156118a457600080fd5b8082019050905060026103205180820282158284830414176118c557600080fd5b809050905090506102e0518181830110156118df57600080fd5b8082019050905061020051808210156118f757600080fd5b80820390509050808061190957600080fd5b820490509050610320526103005161032051111561195057600161032051610300518082101561193857600080fd5b8082039050905011151561194b5761198c565b61197b565b600161030051610320518082101561196757600080fd5b8082039050905011151561197a5761198c565b5b5b8151600101808352811415611866575b505061032051600052600051610220515650005b60001561215e575b610200526101405261016052610180526101a0526101c0526101e05261022060008152600081602001526000816040015260008160600152506002546102a0526102a0513b6119f657600080fd5b6102a0513018611a0557600080fd5b6020610340600463f446c1d06102e0526102fc6102a0515afa611a2757600080fd5b600050610340516102c0526102a0513b611a4057600080fd5b6102a0513018611a4f57600080fd5b60206103e0600463ddca3f436103805261039c6102a0515afa611a7157600080fd5b6000506103e05160048082028215828483041417611a8e57600080fd5b80905090509050600c8080611aa257600080fd5b82049050905061036052610360805161036051639502f9008082028215828483041417611ace57600080fd5b809050905090506402540be4008080611ae657600080fd5b820490509050818183011015611afb57600080fd5b808201905090508152506104006001815264e8d4a51000816020015264e8d4a51000816040015260018160600152506003543b611b3757600080fd5b6003543018611b4557600080fd5b602061050060046318160ddd6104a0526104bc6003545afa611b6657600080fd5b60005061050051610480526105206001815264e8d4a51000816020015264e8d4a510008160400152600181606001525060006105a0526105c060006004818352015b6105206105c05160048110611bbc57600080fd5b6020020180516102a0513b611bd057600080fd5b6102a0513018611bdf57600080fd5b6020610660602463065a80d86105e0526105c051610600526105fc6102a0515afa611c0957600080fd5b600050610660518082028215828483041417611c2457600080fd5b809050905090508152506102206105c05160048110611c4257600080fd5b602002015115611ccd576105206105c05160048110611c6057600080fd5b60200201516101806105c05160048110611c7957600080fd5b60200201518082028215828483041417611c9257600080fd5b80905090509050670de0b6b3a76400008080611cad57600080fd5b8204905090506105206105c05160048110611cc757600080fd5b60200201525b6105a080516105206105c05160048110611ce657600080fd5b6020020151818183011015611cfa57600080fd5b808201905090508152505b8151600101808352811415611ba8575b50506101406106a0525b6106a0515160206106a051016106a0526106a06106a0511015611d4157611d1f565b637b7241516106c0526102c0516106e052610700610520805182528060200151826020015280604001518260400152806060015182606001525050610760516107405161072051610700516106e05160065801611371565b6107c0526106806106a0525b6106a0515260206106a051036106a0526101406106a051101515611dc857611da5565b6107c051610680526106805161014051610680518082028215828483041417611df057600080fd5b80905090509050610480518080611e0657600080fd5b82049050905080821015611e1957600080fd5b808203905090506107e05261080061052080518252806020015182602001528060400151826040015280606001518260600152505061088060006004818352015b60006108a0526105206108805160048110611e7457600080fd5b60200201516107e0518082028215828483041417611e9157600080fd5b80905090509050610680518080611ea757600080fd5b8204905090506108c0526105206108805160048110611ec557600080fd5b60200201516108e05261016051610880511415611f49576108e080516105a051610680516107e05180821015611efa57600080fd5b808203905090508082028215828483041417611f1557600080fd5b80905090509050610680518080611f2b57600080fd5b82049050905080821015611f3e57600080fd5b808203905090508152505b6108e0516108c051101515611f7d576108c0516108e05180821015611f6d57600080fd5b808203905090506108a052611f9e565b6108e0516108c05180821015611f9257600080fd5b808203905090506108a0525b6108006108805160048110611fb257600080fd5b602002018051610360516108a0518082028215828483041417611fd457600080fd5b809050905090506402540be4008080611fec57600080fd5b82049050905080821015611fff57600080fd5b808203905090508152505b8151600101808352811415611e5a575b5050610800610160516004811061203057600080fd5b6020020151610140610920525b6109205151602061092051016109205261092061092051101561205f5761203d565b638643731f610940526102c0516109605261016051610980526109a06108008051825280602001518260200152806040015182604001528060600151826060015250506107e051610a2052610a2051610a00516109e0516109c0516109a05161098051610960516006580161167b565b610a8052610900610920525b61092051526020610920510361092052610140610920511015156120fe576120db565b610a80518082101561210f57600080fd5b808203905090506109005261090051610400610160516004811061213257600080fd5b6020020151808061214257600080fd5b8204905090506109005261090051600052600051610200515650005b63cc2b27d7600051141561239a57341561217757600080fd5b6060516024358060405190131561218d57600080fd5b809190121561219b57600080fd5b5061014060008152600081602001526000816040015260008160600152506101c0600081526000816020015260008160400152600081606001525061024060006004818352015b6101c061024051600481106121f657600080fd5b6020020151156122af57610240516004811061221157600080fd5b600060c052602060c02001543b61222757600080fd5b610240516004811061223857600080fd5b600060c052602060c0200154301861224f57600080fd5b60206102c0600463182df0f56102605261027c610240516004811061227357600080fd5b600060c052602060c02001545afa61228a57600080fd5b6000506102c05161014061024051600481106122a557600080fd5b60200201526122d2565b670de0b6b3a764000061014061024051600481106122cc57600080fd5b60200201525b5b81516001018083528114156121e2575b50506101405161016051610180516101a0516101c0516101e051610200516102205163800c1cbc6103005260043561032052602435610340526103606101408051825280602001518260200152806040015182604001528060600151826060015250506103c0516103a05161038051610360516103405161032051600658016119a8565b6104205261022052610200526101e0526101c0526101a0526101805261016052610140526104205160005260206000f350005b631a4d01d260005114156123b3576000610140526123e9565b63517a55a360005114156123e157606435600281106123d157600080fd5b60206064610140376000506123e9565b6000156129cb575b62ffffff54156123f857600080fd5b600162ffffff55341561240a57600080fd5b6060516024358060405190131561242057600080fd5b809190121561242e57600080fd5b5061016060008152600081602001526000816040015260008160600152506101e060008152600081602001526000816040015260008160600152506003546102605261028060006004818352015b610160610280516004811061249057600080fd5b60200201511561254b5761028051600481106124ab57600080fd5b600060c052602060c02001543b6124c157600080fd5b61028051600481106124d257600080fd5b600060c052602060c020015430186124e957600080fd5b6020610300600463bd6d894d6102a0526102bc6000610280516004811061250f57600080fd5b600060c052602060c02001545af161252657600080fd5b600050610300516101e0610280516004811061254157600080fd5b602002015261256e565b670de0b6b3a76400006101e0610280516004811061256857600080fd5b60200201525b5b815160010180835281141561247c575b5050610140610340525b610340515160206103405101610340526103406103405110156125ab57612589565b63800c1cbc61036052600435610380526024356103a0526103c06101e080518252806020015182602001528060400151826040015280606001518260600152505061042051610400516103e0516103c0516103a05161038051600658016119a8565b61048052610320610340525b610340515260206103405103610340526101406103405110151561263c57612619565b61048051610320526308c379a06104a05260206104c05260186104e0527f4e6f7420656e6f75676820636f696e732072656d6f7665640000000000000000610500526104e0506044356103205110156126965760846104bcfd5b6003543b6126a357600080fd5b60035430186126b157600080fd5b602061060060646323b872dd61054052336105605230610580526004356105a05261055c60006003545af16126e557600080fd5b600050610600516126f557600080fd5b610620600081526000816020015260008160400152600081606001525061032051670de0b6b3a7640000808202821582848304141761273357600080fd5b809050905090506101e06024356004811061274d57600080fd5b6020020151808061275d57600080fd5b8204905090506106206024356004811061277657600080fd5b6020020152610260513b61278957600080fd5b61026051301861279857600080fd5b602061074060246370a082316106c052306106e0526106dc610260515afa6127bf57600080fd5b600050610740516106a0526002543b6127d757600080fd5b60025430186127e557600080fd5b6000600060a46318a7bd76610760526107806106208051825280602001518260200152806040015182604001528060600151826060015250506004356108005261077c60006002545af161283857600080fd5b610140610860525b6108605151602061086051016108605261086061086051101561286257612840565b63eb9ec69161088052336108a0526108c06000815260008160200152600081604001526000816060015250602435610940526109405161092051610900516108e0516108c0516108a05160065801610800565b610840610860525b61086051526020610860510361086052610140610860511015156128e0576128bd565b6000506101405115156129c257610260513b6128fb57600080fd5b61026051301861290a57600080fd5b6020610a4060246370a082316109c052306109e0526109dc610260515afa61293157600080fd5b600050610a40516109a0526106a0516109a05111156129c157610260513b61295857600080fd5b61026051301861296757600080fd5b6020610b00604463a9059cbb610a605233610a80526109a0516106a0518082101561299157600080fd5b80820390509050610aa052610a7c6000610260515af16129b057600080fd5b600050610b00516129c057600080fd5b5b5b600062ffffff55005b636c956a546000511415612b085762ffffff54156129e857600080fd5b600162ffffff5534156129fa57600080fd5b6002543b612a0757600080fd5b6002543018612a1557600080fd5b60206101c06004638da5cb5b6101605261017c6002545afa612a3657600080fd5b6000506101c05161014052610140513314612a5057600080fd5b6003546101e0526101e0513b612a6557600080fd5b6101e0513018612a7457600080fd5b6020610340604463a9059cbb6102a052610140516102c0526101e0513b612a9a57600080fd5b6101e0513018612aa957600080fd5b602061028060246370a0823161020052306102205261021c6101e0515afa612ad057600080fd5b600050610280516102e0526102bc60006101e0515af1612aef57600080fd5b60005061034051612aff57600080fd5b600062ffffff55005b6323746eb86000511415612b6d573415612b2157600080fd5b60605160043580604051901315612b3757600080fd5b8091901215612b4557600080fd5b5060043560048110612b5657600080fd5b600060c052602060c020015460005260206000f350005b63b739953e6000511415612bd2573415612b8657600080fd5b60605160043580604051901315612b9c57600080fd5b8091901215612baa57600080fd5b5060043560048110612bbb57600080fd5b600160c052602060c020015460005260206000f350005b637165485d6000511415612bf9573415612beb57600080fd5b60025460005260206000f350005b63fc0c546a6000511415612c20573415612c1257600080fd5b60035460005260206000f350005b5b60006000fd

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

0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f510000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51000000000000000000000000a5407eae9ba41422680e2e00537571bcc53efbfd000000000000000000000000c25a3a3b969415c80451098fa907ec722572917f

-----Decoded View---------------
Arg [0] : _coins (address[4]): 0x6B175474E89094C44Da98b954EedeAC495271d0F,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0xdAC17F958D2ee523a2206206994597C13D831ec7,0x57Ab1ec28D129707052df4dF418D58a2D46d5f51
Arg [1] : _underlying_coins (address[4]): 0x6B175474E89094C44Da98b954EedeAC495271d0F,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0xdAC17F958D2ee523a2206206994597C13D831ec7,0x57Ab1ec28D129707052df4dF418D58a2D46d5f51
Arg [2] : _curve (address): 0xA5407eAE9Ba41422680e2e00537571bcC53efBfD
Arg [3] : _token (address): 0xC25a3A3b969415c80451098fa907EC722572917F

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [1] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [2] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [3] : 00000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51
Arg [4] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [5] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [6] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [7] : 00000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51
Arg [8] : 000000000000000000000000a5407eae9ba41422680e2e00537571bcc53efbfd
Arg [9] : 000000000000000000000000c25a3a3b969415c80451098fa907ec722572917f


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Curve.fi's sUSD v2 deposit address.

Validator Index Block Amount
View All Withdrawals

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