S Price: $0.530376 (-0.94%)

Contract

0x3c0a405E914337139992625D5100Ea141a9C4d11

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To

There are no matching entries

4 Token Transfers found.

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vault

Compiler Version
vyper:0.3.10

Optimization Enabled:
N/A

Other Settings:
default evmVersion, MIT license

Contract Source Code (Vyper language format)

# pragma version 0.3.10
"""
@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"}]}]

3461005b5760206102735f395f518060a01c61005b576040526040515f557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a161020061005f61000039610200610000f35b5f80fd5f3560e01c60026006820660011b6101f401601e395f51565b638da5cb5b81186101e957346101f0575f5460405260206040f36101e9565b631ec0cdc181186101e957346101f05760015460405260206040f36101e9565b63beabacc881186101e9576064361034176101f0576004358060a01c6101f0576040526024358060a01c6101f0576060525f5433186101f05773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051186100c3575f5f5f5f6044356060515ff1156101f05761012a565b60405163a9059cbb60805260605160a05260443560c052602060806044609c5f855af16100f2573d5f5f3e3d5ffd5b3d61010857803b156101f057600160e05261011f565b60203d106101f0576080518060011c6101f05760e0525b60e0905051156101f0575b006101e9565b63501579f8811861018f576024361034176101f0576004358060a01c6101f0576040525f5433186101f0576040516001557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e960405160605260206060a1005b633d6da5d881186101e957346101f0575f5433186101f0576001546040526040515f557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a1006101e9566101e9565b5b366101f057005b5f80fd01e801e8013000180057003784190200810c00a16576797065728300030a00140000000000000000000000006c9578402a3ace046a12839f45f84aa5448e9c30

Deployed Bytecode

0x5f3560e01c60026006820660011b6101f401601e395f51565b638da5cb5b81186101e957346101f0575f5460405260206040f36101e9565b631ec0cdc181186101e957346101f05760015460405260206040f36101e9565b63beabacc881186101e9576064361034176101f0576004358060a01c6101f0576040526024358060a01c6101f0576060525f5433186101f05773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051186100c3575f5f5f5f6044356060515ff1156101f05761012a565b60405163a9059cbb60805260605160a05260443560c052602060806044609c5f855af16100f2573d5f5f3e3d5ffd5b3d61010857803b156101f057600160e05261011f565b60203d106101f0576080518060011c6101f05760e0525b60e0905051156101f0575b006101e9565b63501579f8811861018f576024361034176101f0576004358060a01c6101f0576040525f5433186101f0576040516001557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e960405160605260206060a1005b633d6da5d881186101e957346101f0575f5433186101f0576001546040526040515f557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a1006101e9566101e9565b5b366101f057005b5f80fd01e801e80130001800570037

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

0000000000000000000000006c9578402a3ace046a12839f45f84aa5448e9c30

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c9578402a3ace046a12839f45f84aa5448e9c30


Block Transaction 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

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.