ETH Price: $3,743.45 (-3.09%)

Contract

0xE5De15A9C9bBedb4F5EC13B131E61245f2983A69

Overview

ETH Balance

0 ETH

ETH Value

$0.00
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1073862252023-07-26 11:33:47503 days ago1690371227
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
1070849192023-07-19 12:10:15510 days ago1689768615
Curve.fi: StableBurner
0 ETH
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.7

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

# @version 0.3.7
"""
@title Stable Burner
@notice Deposits coins into 3pool
"""

from vyper.interfaces import ERC20

interface StableSwap:
    def add_liquidity(_amounts: uint256[N_COINS], _min_mint_amount: uint256, _receiver: address): nonpayable
    def coins(_i: uint256) -> address: view


receiver: address
is_killed: public(bool)

owner: public(address)
future_owner: public(address)

N_COINS: constant(uint256) = 3
POOL: immutable(address)
COINS: immutable(address[N_COINS])


@external
def __init__(_pool: address, _receiver: address, _owner: address):
    """
    @notice Contract constructor
    @param _pool Address of the pool to deposit into
    @param _receiver Address that converted tokens are transferred to.
                     Should be set to the `ChildBurner` deployment.
    @param _owner Owner address. Can kill the contract and recover tokens.
    """
    self.receiver = _receiver
    self.owner = _owner

    POOL = _pool

    coins: address[N_COINS] = empty(address[N_COINS])
    for i in range(N_COINS):
        coins[i] = StableSwap(_pool).coins(i)
    COINS = coins

    for coin in coins:
        ERC20(coin).approve(_pool, max_value(uint256))


@external
def burn(_coin: address) -> bool:
    """
    @notice Convert `_coin` by depositing it in the pool
    @param _coin Address of the coin being converted
    @return bool success
    """
    assert not self.is_killed  # dev: is killed
    assert _coin in COINS

    # transfer coins from caller
    amount: uint256 = ERC20(_coin).balanceOf(msg.sender)
    if amount != 0:
        ERC20(_coin).transferFrom(msg.sender, self, amount)

    # deposit only once
    if _coin != COINS[N_COINS - 1]:
        return True

    amounts: uint256[N_COINS] = empty(uint256[N_COINS])
    for i in range(N_COINS):
        amounts[i] = ERC20(COINS[i]).balanceOf(self)
    StableSwap(POOL).add_liquidity(amounts, 0, self.receiver)

    return True


@external
def recover_balance(_coin: address) -> bool:
    """
    @notice Recover ERC20 tokens from this contract
    @param _coin Token address
    @return bool success
    """
    assert msg.sender == self.owner  # dev: only owner

    amount: uint256 = ERC20(_coin).balanceOf(self)
    response: Bytes[32] = raw_call(
        _coin,
        _abi_encode(msg.sender, amount, method_id=method_id("transfer(address,uint256)")),
        max_outsize=32,
    )
    if len(response) != 0:
        assert convert(response, bool)

    return True


@external
def set_receiver(_receiver: address):
    assert msg.sender == self.owner
    self.receiver = _receiver


@external
def set_killed(_is_killed: bool) -> bool:
    """
    @notice Set killed status for this contract
    @dev When killed, the `burn` function cannot be called
    @param _is_killed Killed status
    @return bool success
    """
    assert msg.sender == self.owner  # dev: only owner
    self.is_killed = _is_killed

    return True


@external
def commit_transfer_ownership(_future_owner: address) -> bool:
    """
    @notice Commit a transfer of ownership
    @dev Must be accepted by the new owner via `accept_transfer_ownership`
    @param _future_owner New owner address
    @return bool success
    """
    assert msg.sender == self.owner  # dev: only owner
    self.future_owner = _future_owner

    return True


@external
def accept_transfer_ownership() -> bool:
    """
    @notice Accept a transfer of ownership
    @return bool success
    """
    assert msg.sender == self.future_owner  # dev: only owner
    self.owner = msg.sender

    return True

Contract Security Audit

Contract ABI

[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_pool","type":"address"},{"name":"_receiver","type":"address"},{"name":"_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"recover_balance","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"set_receiver","inputs":[{"name":"_receiver","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_killed","inputs":[{"name":"_is_killed","type":"bool"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"is_killed","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}]}]

60206105ee6000396000518060a01c6105e957604052602061060e6000396000518060a01c6105e957606052602061062e6000396000518060a01c6105e957608052346105e9576060516000556080516002556040516104585260603660a03760006003905b806101005260405163c66106576101205261010051610140526020610120602461013c845afa61009a573d600060003e3d6000fd5b60203d106105e957610120518060a01c6105e9576101605261016090505161010051600281116105e95760051b60a0015260010181811861006557505060a0516104785260c0516104985260e0516104b85260006003905b8060051b60a00151610100526101005163095ea7b361012052604051610140527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610160526020610120604461013c6000855af1610155573d600060003e3d6000fd5b60203d106105e957610120518060011c6105e9576101805261018050506001018181186100f2575050610458610190610000396104d8610000f36003361161000c57610440565b60003560e01c34610446576389afcb4481186102235760243610610446576004358060a01c6104465760405260015461044657604051600060605260006003905b60208160051b60200161045801600039600051831861007057600160605261007b565b60010181811861004d575b5050606051905015610446576040516370a082316080523360a052602060806024609c845afa6100b0573d600060003e3d6000fd5b60203d106104465760809050516060526060511561011a576040516323b872dd6080523360a0523060c05260605160e052602060806064609c6000855af16100fd573d600060003e3d6000fd5b60203d10610446576080518060011c610446576101005261010050505b60206104b86000396000516040511461013b57600160805260206080610221565b60603660803760006003905b8060e052602060e051600281116104465760051b602001610458016000396000516370a082316101005230610120526020610100602461011c845afa610192573d600060003e3d6000fd5b60203d106104465761010090505160e051600281116104465760051b6080015260010181811861014757505060206104586000396000516375b96abc60e0526080516101005260a0516101205260c0516101405260006101605260005461018052803b1561044657600060e060a460fc6000855af1610216573d600060003e3d6000fd5b50600160e052602060e05bf35b63db2f5f79811861030e5760243610610446576004358060a01c610446576040526002543318610446576040516370a082316080523060a052602060806024609c845afa610276573d600060003e3d6000fd5b60203d1061044657608090505160605263a9059cbb60c45260043360e4526060516101045260400160c05260c050602061016060c05160e060006040515af16102c4573d600060003e3d6000fd5b3d602081183d60201002186101405261014080518060805260208201805160a052505050608051156103035760a05160805160200360031b1c15610446575b600160c052602060c0f35b63d1dd6f5681186103405760243610610446576004358060a01c61044657604052600254331861044657604051600055005b6390b22997811861037b5760243610610446576004358060011c61044657604052600254331861044657604051600155600160605260206060f35b636b441a4081186103b65760243610610446576004358060a01c61044657604052600254331861044657604051600355600160605260206060f35b63e5ea47b881186103e157600436106104465760035433186104465733600255600160405260206040f35b639c868ac0811861040057600436106104465760015460405260206040f35b638da5cb5b811861041f57600436106104465760025460405260206040f35b631ec0cdc1811861043e57600436106104465760035460405260206040f35b505b60006000fd5b600080fda165767970657283000307000b005b600080fd0000000000000000000000001337bedc9d22ecbe766df105c9623922a27963ec000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b

Deployed Bytecode

0x6003361161000c57610440565b60003560e01c34610446576389afcb4481186102235760243610610446576004358060a01c6104465760405260015461044657604051600060605260006003905b60208160051b60200161045801600039600051831861007057600160605261007b565b60010181811861004d575b5050606051905015610446576040516370a082316080523360a052602060806024609c845afa6100b0573d600060003e3d6000fd5b60203d106104465760809050516060526060511561011a576040516323b872dd6080523360a0523060c05260605160e052602060806064609c6000855af16100fd573d600060003e3d6000fd5b60203d10610446576080518060011c610446576101005261010050505b60206104b86000396000516040511461013b57600160805260206080610221565b60603660803760006003905b8060e052602060e051600281116104465760051b602001610458016000396000516370a082316101005230610120526020610100602461011c845afa610192573d600060003e3d6000fd5b60203d106104465761010090505160e051600281116104465760051b6080015260010181811861014757505060206104586000396000516375b96abc60e0526080516101005260a0516101205260c0516101405260006101605260005461018052803b1561044657600060e060a460fc6000855af1610216573d600060003e3d6000fd5b50600160e052602060e05bf35b63db2f5f79811861030e5760243610610446576004358060a01c610446576040526002543318610446576040516370a082316080523060a052602060806024609c845afa610276573d600060003e3d6000fd5b60203d1061044657608090505160605263a9059cbb60c45260043360e4526060516101045260400160c05260c050602061016060c05160e060006040515af16102c4573d600060003e3d6000fd5b3d602081183d60201002186101405261014080518060805260208201805160a052505050608051156103035760a05160805160200360031b1c15610446575b600160c052602060c0f35b63d1dd6f5681186103405760243610610446576004358060a01c61044657604052600254331861044657604051600055005b6390b22997811861037b5760243610610446576004358060011c61044657604052600254331861044657604051600155600160605260206060f35b636b441a4081186103b65760243610610446576004358060a01c61044657604052600254331861044657604051600355600160605260206060f35b63e5ea47b881186103e157600436106104465760035433186104465733600255600160405260206040f35b639c868ac0811861040057600436106104465760015460405260206040f35b638da5cb5b811861041f57600436106104465760025460405260206040f35b631ec0cdc1811861043e57600436106104465760035460405260206040f35b505b60006000fd5b600080fda165767970657283000307000b0000000000000000000000001337bedc9d22ecbe766df105c9623922a27963ec000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da10000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c3160700000000000000000000000094b008aa00579c1307b0ef2c499ad98a8ce58e58

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

0000000000000000000000001337bedc9d22ecbe766df105c9623922a27963ec000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b

-----Decoded View---------------
Arg [0] : _pool (address): 0x1337BedC9D22ecbe766dF105c9623922A27963EC
Arg [1] : _receiver (address): 0xbF7E49483881C76487b0989CD7d9A8239B20CA41
Arg [2] : _owner (address): 0xB055EbbAcc8Eefc166c169e9Ce2886D0406aB49b

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000001337bedc9d22ecbe766df105c9623922a27963ec
Arg [1] : 000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41
Arg [2] : 000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.