S Price: $0.055321 (-8.16%)
Gas: 55 Gwei

Contract

0xF830b9E88f994BbB069aC884d40fA2E09d050BB8

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Commit_transfer_...15785212024-12-25 16:52:46401 days ago1735145566IN
Curve: X-Dao crvUSD Minter
0 S0.000046271
Set_minter15785192024-12-25 16:52:44401 days ago1735145564IN
Curve: X-Dao crvUSD Minter
0 S0.000055111.185

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
408956082025-07-30 15:21:43185 days ago1753888903
0xF830b9E8...09d050BB8
0 S
408956082025-07-30 15:21:43185 days ago1753888903
0xF830b9E8...09d050BB8
0 S
16438842024-12-26 10:44:37401 days ago1735209877
0xF830b9E8...09d050BB8
0 S
16376282024-12-26 9:15:46401 days ago1735204546
0xF830b9E8...09d050BB8
0 S
16376282024-12-26 9:15:46401 days ago1735204546
0xF830b9E8...09d050BB8
0 S
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Minter Proxy

Compiler Version
vyper:0.3.10

Optimization Enabled:
N/A

Other Settings:
default evmVersion, MIT license

Contract Source Code (Vyper language format)

# @version 0.3.10
"""
@title Minter Proxy
@dev Middleware to allow multiple minters for a token.
"""

interface MERC20:
    def mint(_to: address, _value: uint256): nonpayable


event TransferOwnership:
    owner: address


TOKEN: public(immutable(address))


is_minter: public(HashMap[address, bool])

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


@external
def __init__(token: address):
    TOKEN = token

    self.owner = msg.sender


@external
def mint(_to: address, _value: uint256):
    assert self.is_minter[msg.sender]
    
    MERC20(TOKEN).mint(_to, _value)


@external
def set_minter(_minter: address, _is_approved: bool):
    assert msg.sender == self.owner

    self.is_minter[_minter] = _is_approved


@external
def commit_transfer_ownership(_future_owner: address):
    """
    @notice Transfer ownership to `_future_owner`
    @param _future_owner The account to commit as the future owner
    """
    assert msg.sender == self.owner  # dev: only owner

    self.future_owner = _future_owner


@external
def accept_transfer_ownership():
    """
    @notice Accept the transfer of ownership
    @dev Only the committed future owner can call this function
    """
    assert msg.sender == self.future_owner  # dev: only future owner

    self.owner = msg.sender
    log TransferOwnership(msg.sender)

Contract Security Audit

Contract ABI

API
[{"name":"TransferOwnership","inputs":[{"name":"owner","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"token","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_minter","inputs":[{"name":"_minter","type":"address"},{"name":"_is_approved","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"TOKEN","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"is_minter","inputs":[{"name":"arg0","type":"address"}],"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"}]}]

61020a51503461003a57602061025d5f395f518060a01c61003a5760405260405161020a523360015561020a61003e6100003961022a610000f35b5f80fd5f3560e01c60026007820660011b6101fc01601e395f51565b6382bfefc8811861003657346101f857602061020a60403960206040f35b638da5cb5b81186101f457346101f85760015460405260206040f36101f4565b6392c94f658118610090576024361034176101f8576004358060a01c6101f8576040525f6040516020525f5260405f205460605260206060f35b631ec0cdc181186101f457346101f85760025460405260206040f36101f4565b6340c10f198118610122576044361034176101f8576004358060a01c6101f8576040525f336020525f5260405f2054156101f857602061020a5f395f516340c10f1960605260405160805260243560a052803b156101f8575f60606044607c5f855af161011f573d5f5f3e3d5ffd5b50005b63e5ea47b881186101f457346101f85760025433186101f857336001557fcfaaa26691e16e66e73290fc725eee1a6b4e0e693a1640484937aac25ffb55a43360405260206040a1006101f4565b637c3bec3c81186101f4576044361034176101f8576004358060a01c6101f8576040526024358060011c6101f85760605260015433186101f8576060515f6040516020525f5260405f2055006101f4565b636b441a4081186101f4576024361034176101f8576004358060a01c6101f85760405260015433186101f857604051600255005b5f5ffd5b5f80fd016f01f4001800b001f401c000568419020a810e1820a16576797065728300030a00150000000000000000000000005191946500e75f0a74476f146df7d386e52961d9

Deployed Bytecode

0x5f3560e01c60026007820660011b6101fc01601e395f51565b6382bfefc8811861003657346101f857602061020a60403960206040f35b638da5cb5b81186101f457346101f85760015460405260206040f36101f4565b6392c94f658118610090576024361034176101f8576004358060a01c6101f8576040525f6040516020525f5260405f205460605260206060f35b631ec0cdc181186101f457346101f85760025460405260206040f36101f4565b6340c10f198118610122576044361034176101f8576004358060a01c6101f8576040525f336020525f5260405f2054156101f857602061020a5f395f516340c10f1960605260405160805260243560a052803b156101f8575f60606044607c5f855af161011f573d5f5f3e3d5ffd5b50005b63e5ea47b881186101f457346101f85760025433186101f857336001557fcfaaa26691e16e66e73290fc725eee1a6b4e0e693a1640484937aac25ffb55a43360405260206040a1006101f4565b637c3bec3c81186101f4576044361034176101f8576004358060a01c6101f8576040526024358060011c6101f85760605260015433186101f8576060515f6040516020525f5260405f2055006101f4565b636b441a4081186101f4576024361034176101f8576004358060a01c6101f85760405260015433186101f857604051600255005b5f5ffd5b5f80fd016f01f4001800b001f401c000560000000000000000000000005191946500e75f0a74476f146df7d386e52961d9

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

0000000000000000000000005191946500e75f0a74476f146df7d386e52961d9

-----Decoded View---------------
Arg [0] : token (address): 0x5191946500e75f0A74476F146dF7d386e52961d9

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005191946500e75f0a74476f146df7d386e52961d9


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