ETH Price: $3,698.51 (-4.25%)

Contract

0xD166EEdf272B860E991d331B71041799379185D5
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

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

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

# @version 0.3.7
"""
@title Vault
@author CurveFi
@notice Holds the chain native asset and ERC20s
"""
from vyper.interfaces import ERC20


event CommitOwnership:
    future_owner: address

event ApplyOwnership:
    owner: address


NATIVE: constant(address) = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE


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


@external
def __init__(_owner: address):
    self.owner = _owner

    log ApplyOwnership(_owner)


@external
def transfer(_token: address, _to: address, _value: uint256):
    """
    @notice Transfer an asset
    @param _token The token to transfer, or NATIVE if transferring the chain native asset
    @param _to The destination of the asset
    @param _value The amount of the asset to transfer
    """
    assert msg.sender == self.owner

    if _token == NATIVE:
        send(_to, _value)
    else:
        assert ERC20(_token).transfer(_to, _value, default_return_value=True)


@external
def commit_future_owner(_future_owner: address):
    assert msg.sender == self.owner

    self.future_owner = _future_owner
    log CommitOwnership(_future_owner)


@external
def apply_future_owner():
    assert msg.sender == self.owner

    future_owner: address = self.future_owner
    self.owner = future_owner

    log ApplyOwnership(future_owner)


@payable
@external
def __default__():
    assert len(msg.data) == 0

Contract Security Audit

Contract ABI

[{"name":"CommitOwnership","inputs":[{"name":"future_owner","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyOwnership","inputs":[{"name":"owner","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"transfer","inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_future_owner","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"apply_future_owner","inputs":[],"outputs":[]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}]}]

60206102796000396000518060a01c6102745760405234610274576040516000557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a161021561005e61000039610215610000f36003361161000c576101fc565b60003560e01c63beabacc881186100f45760643610610203576004358060a01c610203576040526024358060a01c61020357606052346102035760005433186102035773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051186100875760006000600060006044356060516000f115610203576100f2565b60405163a9059cbb60805260605160a05260443560c052602060806044609c6000855af16100ba573d600060003e3d6000fd5b3d6100d057803b1561020357600160e0526100e7565b60203d10610203576080518060011c6102035760e0525b60e090505115610203575b005b63501579f881186101575760243610610203576004358060a01c6102035760405234610203576000543318610203576040516001557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e960405160605260206060a1005b633d6da5d881186101b257600436106102035734610203576000543318610203576001546040526040516000557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a1005b638da5cb5b81186101d6576004361061020357346102035760005460405260206040f35b631ec0cdc181186101fa576004361061020357346102035760015460405260206040f35b505b3661020357005b600080fda165767970657283000307000b005b600080fd00000000000000000000000028c4a1fa47eee9226f8de7d6af0a41c62ca98267

Deployed Bytecode

0x6003361161000c576101fc565b60003560e01c63beabacc881186100f45760643610610203576004358060a01c610203576040526024358060a01c61020357606052346102035760005433186102035773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051186100875760006000600060006044356060516000f115610203576100f2565b60405163a9059cbb60805260605160a05260443560c052602060806044609c6000855af16100ba573d600060003e3d6000fd5b3d6100d057803b1561020357600160e0526100e7565b60203d10610203576080518060011c6102035760e0525b60e090505115610203575b005b63501579f881186101575760243610610203576004358060a01c6102035760405234610203576000543318610203576040516001557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e960405160605260206060a1005b633d6da5d881186101b257600436106102035734610203576000543318610203576001546040526040516000557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a1005b638da5cb5b81186101d6576004361061020357346102035760005460405260206040f35b631ec0cdc181186101fa576004361061020357346102035760015460405260206040f35b505b3661020357005b600080fda165767970657283000307000b

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

00000000000000000000000028c4a1fa47eee9226f8de7d6af0a41c62ca98267

-----Decoded View---------------
Arg [0] : _owner (address): 0x28c4A1Fa47EEE9226F8dE7D6AF0a41C62Ca98267

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000028c4a1fa47eee9226f8de7d6af0a41c62ca98267


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.