MintedERC20
Sonic ERC-20 Token0x50c42deacd8fc9773493ed674b675be577f2634b
Proxy implementation: 0x9605cc161d148f665b6d4796131f8f6814abf386
Solidity v0.8.27+commit.40a35a09
Fungible token following the ERC-20 standard.
🤖
Query this contract from your AI
Reference:
0x50c42deacd8fc9773493ed674b675be577f2634b
Sample prompt:
"Tell me the current state of sonic/0x50c42deacd8fc9773493ed674b675be577f2634b"
No AI wired up yet? →
mcp.smarts.md
Sonic is a docs-only chain on Smarts: source code and ABI are indexed, but live on-chain data (state, recent events, admin profile) is not currently available. AI agents can still query get_contract_info and get_contract_source via MCP.
Overview
Read Functions
12
Write Functions
13
Events
7
Read Functions
UPGRADE_INTERFACE_VERSION()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
allowance(owner: address, spender: address)
view
dev: See {IERC20-allowance}.
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | |
| spender | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
balanceOf(account: address)
view
dev: See {IERC20-balanceOf}.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
decimals()
view
dev: Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint8 |
minter()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
name()
view
dev: Returns the name of the token.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
owner()
view
dev: Returns the address of the current owner.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
pendingOwner()
view
dev: Returns the address of the pending owner.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
proxiableUUID()
view
dev: Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
rescuer()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
symbol()
view
dev: Returns the symbol of the token, usually a shorter version of the name.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
totalSupply()
view
dev: See {IERC20-totalSupply}.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Write Functions
acceptOwnership()
nonpayable
dev: The new owner accepts the ownership transfer.
approve(spender: address, value: uint256)
nonpayable
dev: See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.
Parameters
| Name | Type | Description |
|---|---|---|
| spender | address | |
| value | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
burn(value: uint256)
nonpayable
dev: Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.
Parameters
| Name | Type | Description |
|---|---|---|
| value | uint256 |
burnFrom(account: address, value: uint256)
nonpayable
dev: Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address | |
| value | uint256 |
initialize(_owner: address, _minter: address, _tokenName: string, _tokenSymbol: string, _decimals: uint8)
nonpayable
dev: Initialize contract after the deployment.
Parameters
| Name | Type | Description |
|---|---|---|
| _owner | address | |
| _minter | address | |
| _tokenName | string | |
| _tokenSymbol | string | |
| _decimals | uint8 |
mint(account: address, amount: uint256)
nonpayable
Create an amount of tokens and assigns them to the account. Callable by the token minter only.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address | |
| amount | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
renounceOwnership()
nonpayable
dev: Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.
rescueERC20(token: address, to: address, amount: uint256)
nonpayable
Rescue ERC20 tokens locked up in this contract.
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | ERC20 token contract address |
| to | address | Recipient address |
| amount | uint256 | Amount to withdraw |
transfer(to: address, value: uint256)
nonpayable
dev: See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.
Parameters
| Name | Type | Description |
|---|---|---|
| to | address | |
| value | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
transferFrom(from: address, to: address, value: uint256)
nonpayable
dev: See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.
Parameters
| Name | Type | Description |
|---|---|---|
| from | address | |
| to | address | |
| value | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
transferOwnership(newOwner: address)
nonpayable
dev: Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.
Parameters
| Name | Type | Description |
|---|---|---|
| newOwner | address |
updateRescuer(newRescuer: address)
nonpayable
Update the rescuer - the address allowed to recover ERC20 tokens locked up in this contract.
Parameters
| Name | Type | Description |
|---|---|---|
| newRescuer | address | The address of the new rescuer. Zero to disable the rescue functionality. |
upgradeToAndCall(newImplementation: address, data: bytes)
payable
dev: Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.
Parameters
| Name | Type | Description |
|---|---|---|
| newImplementation | address | |
| data | bytes |
Events
Approval(owner: address, spender: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| owner | address | ✓ | |
| spender | address | ✓ | |
| value | uint256 |
Initialized(version: uint64)
| Name | Type | Indexed | Description |
|---|---|---|---|
| version | uint64 |
OwnershipTransferStarted(previousOwner: address, newOwner: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| previousOwner | address | ✓ | |
| newOwner | address | ✓ |
OwnershipTransferred(previousOwner: address, newOwner: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| previousOwner | address | ✓ | |
| newOwner | address | ✓ |
RescuerChanged(newRescuer: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| newRescuer | address | ✓ |
Transfer(from: address, to: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| from | address | ✓ | |
| to | address | ✓ | |
| value | uint256 |
Upgraded(implementation: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| implementation | address | ✓ |