ETH Price: $3,244.51 (+2.89%)
Gas: 5 Gwei

Contract

0xb6c057591E073249F2D9D88Ba59a46CFC9B59EdB
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Remove_liquidity...198974382024-05-18 14:30:4768 days ago1716042647IN
Curve.fi: BUSD Deposit
0 ETH0.003392293.60188237
Remove_liquidity...197448972024-04-27 6:30:2390 days ago1714199423IN
Curve.fi: BUSD Deposit
0 ETH0.004963825.19241621
Remove_liquidity...195206382024-03-26 19:20:23121 days ago1711480823IN
Curve.fi: BUSD Deposit
0 ETH0.0430980544.3151695
Remove_liquidity186781192023-11-29 15:20:11239 days ago1701271211IN
Curve.fi: BUSD Deposit
0 ETH0.0535231860.64798496
Remove_liquidity...186012002023-11-18 20:48:59250 days ago1700340539IN
Curve.fi: BUSD Deposit
0 ETH0.014290815.40872765
Remove_liquidity...184456912023-10-28 2:22:11272 days ago1698459731IN
Curve.fi: BUSD Deposit
0 ETH0.009120349.92009945
Remove_liquidity...183241352023-10-11 2:09:35289 days ago1696990175IN
Curve.fi: BUSD Deposit
0 ETH0.006498736.94896275
Remove_liquidity...180598892023-09-04 1:38:59326 days ago1693791539IN
Curve.fi: BUSD Deposit
0 ETH0.0093977710.12889095
Remove_liquidity...178435972023-08-04 19:07:11356 days ago1691176031IN
Curve.fi: BUSD Deposit
0 ETH0.0181418818.97108833
Remove_liquidity177915242023-07-28 12:21:59364 days ago1690546919IN
Curve.fi: BUSD Deposit
0 ETH0.0312581635.7175714
Remove_liquidity177914742023-07-28 12:11:35364 days ago1690546295IN
Curve.fi: BUSD Deposit
0 ETH0.0305357833.3119361
Remove_liquidity...174496012023-06-10 11:53:47412 days ago1686398027IN
Curve.fi: BUSD Deposit
0 ETH0.0177779519.0838192
Add_liquidity174245072023-06-06 22:57:59415 days ago1686092279IN
Curve.fi: BUSD Deposit
0 ETH0.0150412719.089372
Add_liquidity174175592023-06-05 23:27:59416 days ago1686007679IN
Curve.fi: BUSD Deposit
0 ETH0.0165221618.70292422
Remove_liquidity...173910052023-06-02 5:32:11420 days ago1685683931IN
Curve.fi: BUSD Deposit
0 ETH0.0221779723.83649418
Remove_liquidity...173817982023-05-31 22:25:35421 days ago1685571935IN
Curve.fi: BUSD Deposit
0 ETH0.0275118528.59883452
Remove_liquidity173534802023-05-27 22:51:59425 days ago1685227919IN
Curve.fi: BUSD Deposit
0 ETH0.0203762723.28222543
Remove_liquidity...173197442023-05-23 5:03:11430 days ago1684818191IN
Curve.fi: BUSD Deposit
0 ETH0.0333505935
Remove_liquidity...173187692023-05-23 1:45:35430 days ago1684806335IN
Curve.fi: BUSD Deposit
0 ETH0.0339074635.78499499
Remove_liquidity...173184952023-05-23 0:48:59430 days ago1684802939IN
Curve.fi: BUSD Deposit
0 ETH0.0289376430.87129786
Add_liquidity172981762023-05-20 4:11:11433 days ago1684555871IN
Curve.fi: BUSD Deposit
0 ETH0.0235525731.04828681
Remove_liquidity...172824702023-05-17 23:03:47435 days ago1684364627IN
Curve.fi: BUSD Deposit
0 ETH0.0496502651.47062426
Add_liquidity172434852023-05-12 10:17:23441 days ago1683886643IN
Curve.fi: BUSD Deposit
0 ETH0.057425653.18052626
Add_liquidity172347752023-05-11 4:35:35442 days ago1683779735IN
Curve.fi: BUSD Deposit
0 ETH0.0547628472.19135992
Remove_liquidity...171641362023-05-01 6:15:23452 days ago1682921723IN
Curve.fi: BUSD Deposit
0 ETH0.0454035547.09462892
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xbBC81d23...48873a5d3
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Vyper_contract

Compiler Version
vyper:0.1.0b17

Optimization Enabled:
N/A

Other Settings:
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 yERC20:
    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 name() -> string[64]: constant
    def symbol() -> string[32]: constant
    def decimals() -> uint256: constant
    def balanceOf(arg0: address) -> uint256: constant
    def deposit(depositAmount: uint256): modifying
    def withdraw(withdrawTokens: uint256): modifying
    def getPricePerFullShare() -> 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]
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):
    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
            ERC20(self.underlying_coins[i]).approve(self.coins[i], uamount)
            yERC20(self.coins[i]).deposit(uamount)
            amounts[i] = yERC20(self.coins[i]).balanceOf(self)
            ERC20(self.coins[i]).approve(self.curve, amounts[i])

    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):
    tethered: bool[N_COINS] = TETHERED

    for i in range(N_COINS):
        if (one < 0) or (i == one):
            _coin: address = self.coins[i]
            _balance: uint256 = yERC20(_coin).balanceOf(self)
            if _balance == 0:  # Do nothing for 0 coins
                continue
            yERC20(_coin).withdraw(_balance)

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

            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
    """
    tethered: bool[N_COINS] = TETHERED
    _token: address = self.token

    amounts: uint256[N_COINS] = uamounts
    for i in range(N_COINS):
        if amounts[i] > 0:
            rate: uint256 = yERC20(self.coins[i]).getPricePerFullShare()
            amounts[i] = amounts[i] * LENDING_PRECISION / rate

    # 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
    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)
        xp[j] = xp[j] * rates[j] / LENDING_PRECISION
        S += xp[j]

    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

    for j in range(N_COINS):
        rates[j] = yERC20(self.coins[j]).getPricePerFullShare()

    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
    """
    rates: uint256[N_COINS] = ZEROS
    _token: address = self.token

    for j in range(N_COINS):
        rates[j] = yERC20(self.coins[j]).getPricePerFullShare()

    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":164560},{"name":"remove_liquidity","outputs":[],"inputs":[{"type":"uint256","name":"_amount"},{"type":"uint256[4]","name":"min_uamounts"}],"constant":false,"payable":false,"type":"function","gas":99521},{"name":"remove_liquidity_imbalance","outputs":[],"inputs":[{"type":"uint256[4]","name":"uamounts"},{"type":"uint256","name":"max_burn_amount"}],"constant":false,"payable":false,"type":"function","gas":120148},{"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":3881601},{"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}]

Deployed Bytecode

0x600436101561000d576128e6565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05263029b2f3460005114156106945762ffffff54156100be57600080fd5b600162ffffff5534156100d057600080fd5b61014060008152600081602001526001816040015260008160600152506101c0600081526000816020015260008160400152600081606001525061024060006004818352015b6004610240516004811061012957600080fd5b602002013561026052600061026051111561056357610140610240516004811061015257600080fd5b6020020151156101fe57610240516004811061016d57600080fd5b600160c052602060c02001543b61018357600080fd5b610240516004811061019457600080fd5b600160c052602060c020015430186101ab57600080fd5b6000600060646323b872dd610360523361038052306103a052610260516103c05261037c600061024051600481106101e257600080fd5b600160c052602060c02001545af16101f957600080fd5b6102ad565b610240516004811061020f57600080fd5b600160c052602060c02001543b61022557600080fd5b610240516004811061023657600080fd5b600160c052602060c0200154301861024d57600080fd5b602061034060646323b872dd61028052336102a052306102c052610260516102e05261029c6000610240516004811061028557600080fd5b600160c052602060c02001545af161029c57600080fd5b600050610340516102ac57600080fd5b5b61024051600481106102be57600080fd5b600160c052602060c02001543b6102d457600080fd5b61024051600481106102e557600080fd5b600160c052602060c020015430186102fc57600080fd5b60206104c0604463095ea7b361042052610240516004811061031d57600080fd5b600060c052602060c020015461044052610260516104605261043c6000610240516004811061034b57600080fd5b600160c052602060c02001545af161036257600080fd5b6000506104c050610240516004811061037a57600080fd5b600060c052602060c02001543b61039057600080fd5b61024051600481106103a157600080fd5b600060c052602060c020015430186103b857600080fd5b60006000602463b6b55f256104e05261026051610500526104fc600061024051600481106103e557600080fd5b600060c052602060c02001545af16103fc57600080fd5b610240516004811061040d57600080fd5b600060c052602060c02001543b61042357600080fd5b610240516004811061043457600080fd5b600060c052602060c0200154301861044b57600080fd5b60206105e060246370a0823161056052306105805261057c610240516004811061047457600080fd5b600060c052602060c02001545afa61048b57600080fd5b6000506105e0516101c061024051600481106104a657600080fd5b602002015261024051600481106104bc57600080fd5b600060c052602060c02001543b6104d257600080fd5b61024051600481106104e357600080fd5b600060c052602060c020015430186104fa57600080fd5b60206106a0604463095ea7b361060052600254610620526101c0610240516004811061052557600080fd5b60200201516106405261061c6000610240516004811061054457600080fd5b600060c052602060c02001545af161055b57600080fd5b6000506106a0505b5b8151600101808352811415610116575b50506002543b61058357600080fd5b600254301861059157600080fd5b6000600060a463029b2f346106c0526106e06101c0805182528060200151826020015280604001518260400152806060015182606001525050608435610760526106dc60006002545af16105e457600080fd5b6003543b6105f157600080fd5b60035430186105ff57600080fd5b602061086060246370a082316107e05230610800526107fc6003545afa61062557600080fd5b600050610860516107c0526003543b61063d57600080fd5b600354301861064b57600080fd5b6020610920604463a9059cbb61088052336108a0526107c0516108c05261089c60006003545af161067b57600080fd5b6000506109205161068b57600080fd5b600062ffffff55005b600015610985575b610200526101405261016052610180526101a0526101c0526101e05261022060008152600081602001526001816040015260008160600152506102a060006004818352015b6101e0516102a0511460006101e05112171561096c576102a0516004811061070857600080fd5b600060c052602060c02001546102c0526102c0513b61072657600080fd5b6102c051301861073557600080fd5b602061038060246370a0823161030052306103205261031c6102c0515afa61075c57600080fd5b600050610380516102e0526102e05115156107765761096d565b6102c0513b61078457600080fd5b6102c051301861079357600080fd5b600060006024632e1a7d4d6103a0526102e0516103c0526103bc60006102c0515af16107be57600080fd5b6102a051600481106107cf57600080fd5b600160c052602060c020015461042052610420513b6107ed57600080fd5b6104205130186107fc57600080fd5b60206104e060246370a0823161046052306104805261047c610420515afa61082357600080fd5b6000506104e051610440526308c379a061050052602061052052601a610540527f4e6f7420656e6f75676820636f696e732077697468647261776e00000000000061056052610540506101606102a0516004811061088057600080fd5b602002015161044051101561089657608461051cfd5b6102206102a051600481106108aa57600080fd5b60200201511561090957610420513b6108c257600080fd5b6104205130186108d157600080fd5b60006000604463a9059cbb610660526101405161068052610440516106a05261067c6000610420515af161090457600080fd5b61096b565b610420513b61091757600080fd5b61042051301861092657600080fd5b6020610640604463a9059cbb6105a052610140516105c052610440516105e0526105bc6000610420515af161095a57600080fd5b6000506106405161096a57600080fd5b5b5b5b81516001018083528114156106e1575b505061020051565b637d49d8756000511415610b7c5762ffffff54156109a257600080fd5b600162ffffff5534156109b457600080fd5b61014060008152600081602001526000816040015260008160600152506003543b6109de57600080fd5b60035430186109ec57600080fd5b602061028060646323b872dd6101c052336101e0523061020052600435610220526101dc60006003545af1610a2057600080fd5b60005061028051610a3057600080fd5b6002543b610a3d57600080fd5b6002543018610a4b57600080fd5b6000600060a4637d49d8756102a0526004356102c0526102e06101408051825280602001518260200152806040015182604001528060600151826060015250506102bc60006002545af1610a9e57600080fd5b6101406103a0525b6103a0515160206103a051016103a0526103a06103a0511015610ac857610aa6565b63eb9ec6916103c052336103e05261040060248035825280602001358260200152806040013582604001528060600135826060015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6104805261048051610460516104405161042051610400516103e0516006580161069c565b6103806103a0525b6103a0515260206103a051036103a0526101406103a051101515610b7057610b4d565b600050600062ffffff55005b6318a7bd766000511415610fed5762ffffff5415610b9957600080fd5b600162ffffff553415610bab57600080fd5b61014060008152600081602001526001816040015260008160600152506003546101c0526101e0600480358252806020013582602001528060400135826040015280606001358260600152505061026060006004818352015b60006101e06102605160048110610c1a57600080fd5b60200201511115610d26576102605160048110610c3657600080fd5b600060c052602060c02001543b610c4c57600080fd5b6102605160048110610c5d57600080fd5b600060c052602060c02001543018610c7457600080fd5b602061030060046377c7b8fc6102a0526102bc6102605160048110610c9857600080fd5b600060c052602060c02001545afa610caf57600080fd5b60005061030051610280526101e06102605160048110610cce57600080fd5b6020020151670de0b6b3a76400008082028215828483041417610cf057600080fd5b80905090509050610280518080610d0657600080fd5b8204905090506101e06102605160048110610d2057600080fd5b60200201525b5b8151600101808352811415610c04575b50506101c0513b610d4757600080fd5b6101c0513018610d5657600080fd5b60206103c060246370a0823161034052336103605261035c6101c0515afa610d7d57600080fd5b6000506103c05161032052608435610320511115610d9d57608435610320525b6101c0513b610dab57600080fd5b6101c0513018610dba57600080fd5b60206104a060646323b872dd6103e0523361040052306104205261032051610440526103fc60006101c0515af1610df057600080fd5b6000506104a051610e0057600080fd5b6002543b610e0d57600080fd5b6002543018610e1b57600080fd5b6000600060a46318a7bd766104c0526104e06101e0805182528060200151826020015280604001518260400152806060015182606001525050608435610560526104dc60006002545af1610e6e57600080fd5b6101c0513b610e7c57600080fd5b6101c0513018610e8b57600080fd5b602061064060246370a082316105c052306105e0526105dc6101c0515afa610eb257600080fd5b60005061064051610320526101c0513b610ecb57600080fd5b6101c0513018610eda57600080fd5b6020610700604463a9059cbb610660523361068052610320516106a05261067c60006101c0515af1610f0b57600080fd5b60005061070051610f1b57600080fd5b610140610720525b61072051516020610720510161072052610720610720511015610f4557610f23565b63eb9ec69161074052336107605261078060008152600081602001526000816040015260008160600152507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61080052610800516107e0516107c0516107a05161078051610760516006580161069c565b610700610720525b6107205152602061072051036107205261014061072051101515610fe157610fbe565b600050600062ffffff55005b60001561111e575b610240526101405261016052610180526101a0526101c0526101e05261020052610220526102606101408051825280602001518260200152806040015182604001528060600151826060015250506102e060006004818352015b6102606102e0516004811061106357600080fd5b60200201516101c06102e0516004811061107c57600080fd5b6020020151808202821582848304141761109557600080fd5b80905090509050670de0b6b3a764000080806110b057600080fd5b8204905090506102606102e051600481106110ca57600080fd5b60200201525b815160010180835281141561104f575b50506080610300525b6000610300511115156110fb57611117565b60206103005103610260015160206103005103610300526110e9565b6102405156005b600015611428575b6101e0526101405261016052610180526101a0526101c05260006102005261024060006004818352015b6020610240510261016001516102205261020080516102205181818301101561117857600080fd5b808201905090508152505b8151600101808352811415611150575b50506102005115156111ae5760006000526000516101e05156505b600061028052610200516102a05261014051600480820282158284830414176111d657600080fd5b809050905090506102c0526102e0600060ff818352015b6102a0516103005261034060006004818352015b60206103405102610160015161032052610300516102a051808202821582848304141761122d57600080fd5b80905090509050610320516004808202821582848304141761124e57600080fd5b80905090509050600181818301101561126657600080fd5b80820190509050808061127857600080fd5b820490509050610300525b8151600101808352811415611201575b50506102a051610280526102c0516102005180820282158284830414176112b957600080fd5b8090509050905061030051600480820282158284830414176112da57600080fd5b809050905090508181830110156112f057600080fd5b808201905090506102a051808202821582848304141761130f57600080fd5b809050905090506102c05160018082101561132957600080fd5b808203905090506102a051808202821582848304141761134857600080fd5b80905090509050600561030051808202821582848304141761136957600080fd5b8090509050905081818301101561137f57600080fd5b80820190509050808061139157600080fd5b8204905090506102a052610280516102a05111156113d85760016102a05161028051808210156113c057600080fd5b808203905090501115156113d357611414565b611403565b6001610280516102a051808210156113ef57600080fd5b8082039050905011151561140257611414565b5b5b81516001018083528114156111ed575b50506102a0516000526000516101e0515650005b600015611755575b610220526101405261016052610180526101a0526101c0526101e052610200526004610160511260006101605112151661146957600080fd5b6102005161024052600061026052610140516004808202821582848304141761149157600080fd5b809050905090506102805260006102a0526102c060006004818352015b610160516102c05118156114de576101806102c051600481106114d057600080fd5b60200201516102a0526114e3565b61155f565b61026080516102a0518181830110156114fb57600080fd5b808201905090508152506102405161020051808202821582848304141761152157600080fd5b809050905090506102a0516004808202821582848304141761154257600080fd5b80905090509050808061155457600080fd5b820490509050610240525b81516001018083528114156114ae575b50506102405161020051808202821582848304141761158d57600080fd5b8090509050905061028051600480820282158284830414176115ae57600080fd5b8090509050905080806115c057600080fd5b8204905090506102405261026051610200516102805180806115e157600080fd5b8204905090508181830110156115f657600080fd5b808201905090506102e0526000610300526102005161032052610340600060ff818352015b61032051610300526103205161032051808202821582848304141761163f57600080fd5b809050905090506102405181818301101561165957600080fd5b80820190509050600261032051808202821582848304141761167a57600080fd5b809050905090506102e05181818301101561169457600080fd5b8082019050905061020051808210156116ac57600080fd5b8082039050905080806116be57600080fd5b82049050905061032052610300516103205111156117055760016103205161030051808210156116ed57600080fd5b8082039050905011151561170057611741565b611730565b600161030051610320518082101561171c57600080fd5b8082039050905011151561172f57611741565b5b5b815160010180835281141561161b575b505061032051600052600051610220515650005b600015611f0b575b610200526101405261016052610180526101a0526101c0526101e05260025461022052610220513b61178e57600080fd5b61022051301861179d57600080fd5b60206102c0600463f446c1d06102605261027c610220515afa6117bf57600080fd5b6000506102c05161024052610220513b6117d857600080fd5b6102205130186117e757600080fd5b6020610360600463ddca3f436103005261031c610220515afa61180957600080fd5b600050610360516004808202821582848304141761182657600080fd5b80905090509050600c808061183a57600080fd5b8204905090506102e0526102e080516102e051639502f900808202821582848304141761186657600080fd5b809050905090506402540be400808061187e57600080fd5b82049050905081818301101561189357600080fd5b808201905090508152506103806001815264e8d4a51000816020015264e8d4a51000816040015260018160600152506003543b6118cf57600080fd5b60035430186118dd57600080fd5b602061048060046318160ddd6104205261043c6003545afa6118fe57600080fd5b60005061048051610400526104a06001815264e8d4a51000816020015264e8d4a510008160400152600181606001525060006105205261054060006004818352015b6104a0610540516004811061195457600080fd5b602002018051610220513b61196857600080fd5b61022051301861197757600080fd5b60206105e0602463065a80d861056052610540516105805261057c610220515afa6119a157600080fd5b6000506105e05180820282158284830414176119bc57600080fd5b809050905090508152506104a061054051600481106119da57600080fd5b602002015161018061054051600481106119f357600080fd5b60200201518082028215828483041417611a0c57600080fd5b80905090509050670de0b6b3a76400008080611a2757600080fd5b8204905090506104a06105405160048110611a4157600080fd5b602002015261052080516104a06105405160048110611a5f57600080fd5b6020020151818183011015611a7357600080fd5b808201905090508152505b8151600101808352811415611940575b5050610140610620525b61062051516020610620510161062052610620610620511015611aba57611a98565b637b7241516106405261024051610660526106806104a08051825280602001518260200152806040015182604001528060600151826060015250506106e0516106c0516106a051610680516106605160065801611126565b61074052610600610620525b6106205152602061062051036106205261014061062051101515611b4157611b1e565b61074051610600526106005161014051610600518082028215828483041417611b6957600080fd5b80905090509050610400518080611b7f57600080fd5b82049050905080821015611b9257600080fd5b80820390509050610760526107806104a080518252806020015182602001528060400151826040015280606001518260600152505061080060006004818352015b6000610820526104a06108005160048110611bed57600080fd5b6020020151610760518082028215828483041417611c0a57600080fd5b80905090509050610600518080611c2057600080fd5b820490509050610840526104a06108005160048110611c3e57600080fd5b60200201516108605261016051610800511415611cc257610860805161052051610600516107605180821015611c7357600080fd5b808203905090508082028215828483041417611c8e57600080fd5b80905090509050610600518080611ca457600080fd5b82049050905080821015611cb757600080fd5b808203905090508152505b6108605161084051101515611d10576108208051610840516108605180821015611ceb57600080fd5b80820390509050818183011015611d0157600080fd5b80820190509050815250611d4b565b6108208051610860516108405180821015611d2a57600080fd5b80820390509050818183011015611d4057600080fd5b808201905090508152505b6107806108005160048110611d5f57600080fd5b6020020180516102e051610820518082028215828483041417611d8157600080fd5b809050905090506402540be4008080611d9957600080fd5b82049050905080821015611dac57600080fd5b808203905090508152505b8151600101808352811415611bd3575b50506107806101605160048110611ddd57600080fd5b60200201516101406108a0525b6108a0515160206108a051016108a0526108a06108a0511015611e0c57611dea565b638643731f6108c052610240516108e0526101605161090052610920610780805182528060200151826020015280604001518260400152806060015182606001525050610760516109a0526109a05161098051610960516109405161092051610900516108e05160065801611430565b610a00526108806108a0525b6108a0515260206108a051036108a0526101406108a051101515611eab57611e88565b610a005180821015611ebc57600080fd5b8082039050905061088052610880516103806101605160048110611edf57600080fd5b60200201518080611eef57600080fd5b8204905090506108805261088051600052600051610200515650005b63cc2b27d760005114156120c4573415611f2457600080fd5b60605160243580604051901315611f3a57600080fd5b8091901215611f4857600080fd5b5061014060008152600081602001526000816040015260008160600152506101c060006004818352015b6101c05160048110611f8357600080fd5b600060c052602060c02001543b611f9957600080fd5b6101c05160048110611faa57600080fd5b600060c052602060c02001543018611fc157600080fd5b602061024060046377c7b8fc6101e0526101fc6101c05160048110611fe557600080fd5b600060c052602060c02001545afa611ffc57600080fd5b600050610240516101406101c0516004811061201757600080fd5b60200201525b8151600101808352811415611f72575b50506101405161016051610180516101a05163800c1cbc610280526004356102a0526024356102c0526102e06101408051825280602001518260200152806040015182604001528060600151826060015250506103405161032051610300516102e0516102c0516102a0516006580161175d565b6103a0526101a0526101805261016052610140526103a05160005260206000f350005b631a4d01d260005114156120dd57600061014052612113565b63517a55a3600051141561210b57606435600281106120fb57600080fd5b6020606461014037600050612113565b600015612690575b62ffffff541561212257600080fd5b600162ffffff55341561213457600080fd5b6060516024358060405190131561214a57600080fd5b809190121561215857600080fd5b5061016060008152600081602001526000816040015260008160600152506003546101e05261020060006004818352015b610200516004811061219a57600080fd5b600060c052602060c02001543b6121b057600080fd5b61020051600481106121c157600080fd5b600060c052602060c020015430186121d857600080fd5b602061028060046377c7b8fc6102205261023c61020051600481106121fc57600080fd5b600060c052602060c02001545afa61221357600080fd5b60005061028051610160610200516004811061222e57600080fd5b60200201525b8151600101808352811415612189575b50506101406102c0525b6102c0515160206102c051016102c0526102c06102c05110156122705761224e565b63800c1cbc6102e05260043561030052602435610320526103406101608051825280602001518260200152806040015182604001528060600151826060015250506103a05161038051610360516103405161032051610300516006580161175d565b610400526102a06102c0525b6102c0515260206102c051036102c0526101406102c051101515612301576122de565b610400516102a0526308c379a0610420526020610440526018610460527f4e6f7420656e6f75676820636f696e732072656d6f766564000000000000000061048052610460506044356102a051101561235b57608461043cfd5b6003543b61236857600080fd5b600354301861237657600080fd5b602061058060646323b872dd6104c052336104e0523061050052600435610520526104dc60006003545af16123aa57600080fd5b600050610580516123ba57600080fd5b6105a060008152600081602001526000816040015260008160600152506102a051670de0b6b3a764000080820282158284830414176123f857600080fd5b809050905090506101606024356004811061241257600080fd5b6020020151808061242257600080fd5b8204905090506105a06024356004811061243b57600080fd5b60200201526101e0513b61244e57600080fd5b6101e051301861245d57600080fd5b60206106c060246370a0823161064052306106605261065c6101e0515afa61248457600080fd5b6000506106c051610620526002543b61249c57600080fd5b60025430186124aa57600080fd5b6000600060a46318a7bd766106e0526107006105a0805182528060200151826020015280604001518260400152806060015182606001525050600435610780526106fc60006002545af16124fd57600080fd5b6101406107e0525b6107e0515160206107e051016107e0526107e06107e051101561252757612505565b63eb9ec69161080052336108205261084060008152600081602001526000816040015260008160600152506024356108c0526108c0516108a051610880516108605161084051610820516006580161069c565b6107c06107e0525b6107e0515260206107e051036107e0526101406107e0511015156125a557612582565b600050610140511515612687576101e0513b6125c057600080fd5b6101e05130186125cf57600080fd5b60206109c060246370a0823161094052306109605261095c6101e0515afa6125f657600080fd5b6000506109c0516109205261062051610920511115612686576101e0513b61261d57600080fd5b6101e051301861262c57600080fd5b6020610a80604463a9059cbb6109e05233610a005261092051610620518082101561265657600080fd5b80820390509050610a20526109fc60006101e0515af161267557600080fd5b600050610a805161268557600080fd5b5b5b600062ffffff55005b636c956a5460005114156127cd5762ffffff54156126ad57600080fd5b600162ffffff5534156126bf57600080fd5b6002543b6126cc57600080fd5b60025430186126da57600080fd5b60206101c06004638da5cb5b6101605261017c6002545afa6126fb57600080fd5b6000506101c0516101405261014051331461271557600080fd5b6003546101e0526101e0513b61272a57600080fd5b6101e051301861273957600080fd5b6020610340604463a9059cbb6102a052610140516102c0526101e0513b61275f57600080fd5b6101e051301861276e57600080fd5b602061028060246370a0823161020052306102205261021c6101e0515afa61279557600080fd5b600050610280516102e0526102bc60006101e0515af16127b457600080fd5b600050610340516127c457600080fd5b600062ffffff55005b6323746eb860005114156128325734156127e657600080fd5b606051600435806040519013156127fc57600080fd5b809190121561280a57600080fd5b506004356004811061281b57600080fd5b600060c052602060c020015460005260206000f350005b63b739953e600051141561289757341561284b57600080fd5b6060516004358060405190131561286157600080fd5b809190121561286f57600080fd5b506004356004811061288057600080fd5b600160c052602060c020015460005260206000f350005b637165485d60005114156128be5734156128b057600080fd5b60025460005260206000f350005b63fc0c546a60005114156128e55734156128d757600080fd5b60035460005260206000f350005b5b60006000fd

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 BUSD 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.