TetherTokenV2

Sonic ERC-20 Token

0x6047828dc181963ba44974801ff68e538da5eaf9

Proxy implementation: 0xc80268ce098296e0e75d925d0d485e7bb4252fad

Solidity v0.8.4+commit.c7e474f2

Fungible token following the ERC-20 standard.

🤖
Query this contract from your AI
Reference: 0x6047828dc181963ba44974801ff68e538da5eaf9
Sample prompt: "Tell me the current state of sonic/0x6047828dc181963ba44974801ff68e538da5eaf9"
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
15
Write Functions
22
Events
10

Read Functions

CANCEL_AUTHORIZATION_TYPEHASH() view

Returns

Name Type Description
bytes32
DOMAIN_SEPARATOR() view

Returns

Name Type Description
bytes32
RECEIVE_WITH_AUTHORIZATION_TYPEHASH() view

Returns

Name Type Description
bytes32
TRANSFER_WITH_AUTHORIZATION_TYPEHASH() view

Returns

Name Type Description
bytes32
allowance(owner: address, spender: address) view
dev: See {IERC20-allowance}.

Parameters

Name Type Description
owner address
spender address

Returns

Name Type Description
uint256
authorizationState(authorizer: address, nonce: bytes32) view

Returns the state of an authorization

dev: Nonces are randomly generated 32-byte data unique to the authorizer's address

Parameters

Name Type Description
authorizer address Authorizer's address
nonce bytes32 Nonce of the authorization

Returns

Name Type Description
bool True if the nonce is used
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 value {ERC20} uses, unless this function is 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
isBlocked(address) view

Parameters

Name Type Description
address

Returns

Name Type Description
bool
isTrusted(address) view

Parameters

Name Type Description
address

Returns

Name Type Description
bool
name() view
dev: Returns the name of the token.

Returns

Name Type Description
string
nonces(owner: address) view
dev: See {IERC20Permit-nonces}.

Parameters

Name Type Description
owner address

Returns

Name Type Description
uint256
owner() view
dev: Returns the address of the current owner.

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

addToBlockedList(_user: address) nonpayable

Parameters

Name Type Description
_user address
approve(spender: address, amount: uint256) nonpayable
dev: See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.

Parameters

Name Type Description
spender address
amount uint256

Returns

Name Type Description
bool
cancelAuthorization(authorizer: address, nonce: bytes32, v: uint8, r: bytes32, s: bytes32) nonpayable

Attempt to cancel an authorization

Parameters

Name Type Description
authorizer address Authorizer's address
nonce bytes32 Nonce of the authorization
v uint8 v of the signature
r bytes32 r of the signature
s bytes32 s of the signature
cancelAuthorization(authorizer: address, nonce: bytes32, signature: bytes) nonpayable

Attempt to cancel an authorization

Parameters

Name Type Description
authorizer address Authorizer's address
nonce bytes32 Nonce of the authorization
signature bytes
decreaseAllowance(spender: address, subtractedValue: uint256) nonpayable
dev: Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.

Parameters

Name Type Description
spender address
subtractedValue uint256

Returns

Name Type Description
bool
destroyBlockedFunds(_blockedUser: address) nonpayable

Parameters

Name Type Description
_blockedUser address
increaseAllowance(spender: address, addedValue: uint256) nonpayable
dev: Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.

Parameters

Name Type Description
spender address
addedValue uint256

Returns

Name Type Description
bool
initialize(_name: string, _symbol: string, _decimals: uint8) nonpayable

Parameters

Name Type Description
_name string
_symbol string
_decimals uint8
mint(_destination: address, _amount: uint256) nonpayable

Parameters

Name Type Description
_destination address
_amount uint256
multiTransfer(_recipients: address[], _values: uint256[]) nonpayable

Parameters

Name Type Description
_recipients address[]
_values uint256[]
permit(owner_: address, spender: address, value: uint256, deadline: uint256, signature: bytes) nonpayable
dev: See {IERC20Permit-permit}.

Parameters

Name Type Description
owner_ address
spender address
value uint256
deadline uint256
signature bytes
permit(owner_: address, spender: address, value: uint256, deadline: uint256, v: uint8, r: bytes32, s: bytes32) nonpayable
dev: See {IERC20Permit-permit}.

Parameters

Name Type Description
owner_ address
spender address
value uint256
deadline uint256
v uint8
r bytes32
s bytes32
receiveWithAuthorization(from: address, to: address, value: uint256, validAfter: uint256, validBefore: uint256, nonce: bytes32, signature: bytes) nonpayable

Receive a transfer with a signed authorization from the payer

dev: This has an additional check to ensure that the payee's address matches the caller of this function to prevent front-running attacks.

Parameters

Name Type Description
from address Payer's address (Authorizer)
to address Payee's address
value uint256 Amount to be transferred
validAfter uint256 The time after which this is valid (unix time)
validBefore uint256 The time before which this is valid (unix time)
nonce bytes32 Unique nonce
signature bytes
receiveWithAuthorization(from: address, to: address, value: uint256, validAfter: uint256, validBefore: uint256, nonce: bytes32, v: uint8, r: bytes32, s: bytes32) nonpayable

Receive a transfer with a signed authorization from the payer

dev: This has an additional check to ensure that the payee's address matches the caller of this function to prevent front-running attacks.

Parameters

Name Type Description
from address Payer's address (Authorizer)
to address Payee's address
value uint256 Amount to be transferred
validAfter uint256 The time after which this is valid (unix time)
validBefore uint256 The time before which this is valid (unix time)
nonce bytes32 Unique nonce
v uint8 v of the signature
r bytes32 r of the signature
s bytes32 s of the signature
redeem(_amount: uint256) nonpayable

Parameters

Name Type Description
_amount uint256
removeFromBlockedList(_user: address) nonpayable

Parameters

Name Type Description
_user address
renounceOwnership() nonpayable
dev: Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.
transfer(recipient: address, amount: uint256) nonpayable
dev: See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.

Parameters

Name Type Description
recipient address
amount uint256

Returns

Name Type Description
bool
transferFrom(_sender: address, _recipient: address, _amount: uint256) nonpayable
dev: See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.

Parameters

Name Type Description
_sender address
_recipient address
_amount uint256

Returns

Name Type Description
bool
transferOwnership(newOwner: address) nonpayable
dev: Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.

Parameters

Name Type Description
newOwner address
transferWithAuthorization(from: address, to: address, value: uint256, validAfter: uint256, validBefore: uint256, nonce: bytes32, signature: bytes) nonpayable

Execute a transfer with a signed authorization

Parameters

Name Type Description
from address Payer's address (Authorizer)
to address Payee's address
value uint256 Amount to be transferred
validAfter uint256 The time after which this is valid (unix time)
validBefore uint256 The time before which this is valid (unix time)
nonce bytes32 Unique nonce
signature bytes
transferWithAuthorization(from: address, to: address, value: uint256, validAfter: uint256, validBefore: uint256, nonce: bytes32, v: uint8, r: bytes32, s: bytes32) nonpayable

Execute a transfer with a signed authorization

Parameters

Name Type Description
from address Payer's address (Authorizer)
to address Payee's address
value uint256 Amount to be transferred
validAfter uint256 The time after which this is valid (unix time)
validBefore uint256 The time before which this is valid (unix time)
nonce bytes32 Unique nonce
v uint8 v of the signature
r bytes32 r of the signature
s bytes32 s of the signature

Events

Approval(owner: address, spender: address, value: uint256)
Name Type Indexed Description
owner address
spender address
value uint256
AuthorizationCanceled(authorizer: address, nonce: bytes32)
Name Type Indexed Description
authorizer address
nonce bytes32
AuthorizationUsed(authorizer: address, nonce: bytes32)
Name Type Indexed Description
authorizer address
nonce bytes32
BlockPlaced(_user: address)
Name Type Indexed Description
_user address
BlockReleased(_user: address)
Name Type Indexed Description
_user address
DestroyedBlockedFunds(_blockedUser: address, _balance: uint256)
Name Type Indexed Description
_blockedUser address
_balance uint256
Mint(_destination: address, _amount: uint256)
Name Type Indexed Description
_destination address
_amount uint256
OwnershipTransferred(previousOwner: address, newOwner: address)
Name Type Indexed Description
previousOwner address
newOwner address
Redeem(_amount: uint256)
Name Type Indexed Description
_amount uint256
Transfer(from: address, to: address, value: uint256)
Name Type Indexed Description
from address
to address
value uint256