MNT Price: $0.71 (+3.22%)

Contract

0x77A214bd4ee3650e5608339BBbE04b09f5546ECF
 

Overview

MNT Balance

Mantle Mainnet Network LogoMantle Mainnet Network LogoMantle Mainnet Network Logo0 MNT

MNT Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

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

Contract Name:
Vault

Compiler Version
vyper:0.3.7

Optimization Enabled:
N/A

Other Settings:
default evmVersion, MIT 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

API
[{"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"}]}]

0x60206102796000396000518060a01c6102745760405234610274576040516000557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a161021561005e61000039610215610000f36003361161000c576101fc565b60003560e01c63beabacc881186100f45760643610610203576004358060a01c610203576040526024358060a01c61020357606052346102035760005433186102035773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051186100875760006000600060006044356060516000f115610203576100f2565b60405163a9059cbb60805260605160a05260443560c052602060806044609c6000855af16100ba573d600060003e3d6000fd5b3d6100d057803b1561020357600160e0526100e7565b60203d10610203576080518060011c6102035760e0525b60e090505115610203575b005b63501579f881186101575760243610610203576004358060a01c6102035760405234610203576000543318610203576040516001557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e960405160605260206060a1005b633d6da5d881186101b257600436106102035734610203576000543318610203576001546040526040516000557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a1005b638da5cb5b81186101d6576004361061020357346102035760005460405260206040f35b631ec0cdc181186101fa576004361061020357346102035760015460405260206040f35b505b3661020357005b600080fda165767970657283000307000b005b600080fd000000000000000000000000fe87a6cdca1eeb90987c6a196a1c5f5c76f5f2b0

Deployed Bytecode

0x6003361161000c576101fc565b60003560e01c63beabacc881186100f45760643610610203576004358060a01c610203576040526024358060a01c61020357606052346102035760005433186102035773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee604051186100875760006000600060006044356060516000f115610203576100f2565b60405163a9059cbb60805260605160a05260443560c052602060806044609c6000855af16100ba573d600060003e3d6000fd5b3d6100d057803b1561020357600160e0526100e7565b60203d10610203576080518060011c6102035760e0525b60e090505115610203575b005b63501579f881186101575760243610610203576004358060a01c6102035760405234610203576000543318610203576040516001557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e960405160605260206060a1005b633d6da5d881186101b257600436106102035734610203576000543318610203576001546040526040516000557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a1005b638da5cb5b81186101d6576004361061020357346102035760005460405260206040f35b631ec0cdc181186101fa576004361061020357346102035760015460405260206040f35b505b3661020357005b600080fda165767970657283000307000b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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.