Overview
S Balance
0 S
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Minter Proxy
Compiler Version
vyper:0.3.10
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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]}]
Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.