The Metastudio's ERC20 token
This is an ERC20 contract implementing many features: ERC165, ERC1363, ERC2771, ERC20Votes, ERC20Permit, ERC1967, ERC1822, Pausable and AccessControl.
function DEFAULT_ADMIN_ROLE() external view returns (bytes32)
Name |
Type |
Description |
_0 |
bytes32 |
undefined |
function DOMAIN_SEPARATOR() external view returns (bytes32)
See {IERC20Permit-DOMAIN_SEPARATOR}.
Name |
Type |
Description |
_0 |
bytes32 |
undefined |
function FORWARDER_ROLE() external view returns (bytes32)
Role allowed to update the trusted forwarder (meta-tx)
Role allowed to update the trusted forwarder (meta-tx)
Name |
Type |
Description |
_0 |
bytes32 |
compute the Keccak-256 hash of the FORWARDER_ROLE |
function PAUSER_ROLE() external view returns (bytes32)
Role allowed to switch contract between active/paused state
Role allowed to switch contract between active/paused state
Name |
Type |
Description |
_0 |
bytes32 |
compute the Keccak-256 hash of the PAUSER_ROLE |
function PROXY_ROLE() external view returns (bytes32)
Role allowed to update implementation behind Proxy
Role allowed to update implementation behind Proxy
Name |
Type |
Description |
_0 |
bytes32 |
compute the Keccak-256 hash of the PROXY_ROLE |
function allowance(address owner, address spender) external view returns (uint256)
See {IERC20-allowance}.
Name |
Type |
Description |
owner |
address |
undefined |
spender |
address |
undefined |
Name |
Type |
Description |
_0 |
uint256 |
undefined |
function approve(address spender, uint256 amount) external nonpayable returns (bool)
See {IERC20-approve}. NOTE: If amount
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.
Name |
Type |
Description |
spender |
address |
undefined |
amount |
uint256 |
undefined |
Name |
Type |
Description |
_0 |
bool |
undefined |
function approveAndCall(address spender, uint256 amount) external nonpayable returns (bool)
Approve spender to transfer tokens and then execute a callback on spender
.
Name |
Type |
Description |
spender |
address |
The address allowed to transfer to |
amount |
uint256 |
The amount allowed to be transferred |
Name |
Type |
Description |
_0 |
bool |
A boolean that indicates if the operation was successful. |
function approveAndCall(address spender, uint256 amount, bytes data) external nonpayable returns (bool)
Approve spender to transfer tokens and then execute a callback on spender
.
Name |
Type |
Description |
spender |
address |
The address allowed to transfer to. |
amount |
uint256 |
The amount allowed to be transferred. |
data |
bytes |
Additional data with no specified format. |
Name |
Type |
Description |
_0 |
bool |
A boolean that indicates if the operation was successful. |
function balanceOf(address account) external view returns (uint256)
See {IERC20-balanceOf}.
Name |
Type |
Description |
account |
address |
undefined |
Name |
Type |
Description |
_0 |
uint256 |
undefined |
function checkpoints(address account, uint32 pos) external view returns (struct ERC20VotesUpgradeable.Checkpoint)
Get the pos
-th checkpoint for account
.
Name |
Type |
Description |
account |
address |
undefined |
pos |
uint32 |
undefined |
Name |
Type |
Description |
_0 |
ERC20VotesUpgradeable.Checkpoint |
undefined |
function decimals() external view returns (uint8)
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}.
Name |
Type |
Description |
_0 |
uint8 |
undefined |
function decreaseAllowance(address spender, uint256 subtractedValue) external nonpayable returns (bool)
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
.
Name |
Type |
Description |
spender |
address |
undefined |
subtractedValue |
uint256 |
undefined |
Name |
Type |
Description |
_0 |
bool |
undefined |
function delegate(address delegatee) external nonpayable
Delegate votes from the sender to delegatee
.
Name |
Type |
Description |
delegatee |
address |
undefined |
function delegateBySig(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s) external nonpayable
Delegates votes from signer to delegatee
Name |
Type |
Description |
delegatee |
address |
undefined |
nonce |
uint256 |
undefined |
expiry |
uint256 |
undefined |
v |
uint8 |
undefined |
r |
bytes32 |
undefined |
s |
bytes32 |
undefined |
function delegates(address account) external view returns (address)
Get the address account
is currently delegating to.
Name |
Type |
Description |
account |
address |
undefined |
Name |
Type |
Description |
_0 |
address |
undefined |
function getChainId() external view returns (uint256)
get current block chain identifier
Name |
Type |
Description |
_0 |
uint256 |
number representing current block chain identifier |
function getPastTotalSupply(uint256 blockNumber) external view returns (uint256)
Retrieve the totalSupply
at the end of blockNumber
. Note, this value is the sum of all balances. It is but NOT the sum of all the delegated votes! Requirements: - blockNumber
must have been already mined
Name |
Type |
Description |
blockNumber |
uint256 |
undefined |
Name |
Type |
Description |
_0 |
uint256 |
undefined |
function getPastVotes(address account, uint256 blockNumber) external view returns (uint256)
Retrieve the number of votes for account
at the end of blockNumber
. Requirements: - blockNumber
must have been already mined
Name |
Type |
Description |
account |
address |
undefined |
blockNumber |
uint256 |
undefined |
Name |
Type |
Description |
_0 |
uint256 |
undefined |
function getRoleAdmin(bytes32 role) external view returns (bytes32)
Returns the admin role that controls role
. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
Name |
Type |
Description |
role |
bytes32 |
undefined |
Name |
Type |
Description |
_0 |
bytes32 |
undefined |
function getRoleMember(bytes32 role, uint256 index) external view returns (address)
Returns one of the accounts that have role
. index
must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.
Name |
Type |
Description |
role |
bytes32 |
undefined |
index |
uint256 |
undefined |
Name |
Type |
Description |
_0 |
address |
undefined |
function getRoleMemberCount(bytes32 role) external view returns (uint256)
Returns the number of accounts that have role
. Can be used together with {getRoleMember} to enumerate all bearers of a role.
Name |
Type |
Description |
role |
bytes32 |
undefined |
Name |
Type |
Description |
_0 |
uint256 |
undefined |
function getVotes(address account) external view returns (uint256)
Gets the current votes balance for account
Name |
Type |
Description |
account |
address |
undefined |
Name |
Type |
Description |
_0 |
uint256 |
undefined |
function grantRole(bytes32 role, address account) external nonpayable
Grants role
to account
. If account
had not been already granted role
, emits a {RoleGranted} event. Requirements: - the caller must have role
's admin role. May emit a {RoleGranted} event.
Name |
Type |
Description |
role |
bytes32 |
undefined |
account |
address |
undefined |
function hasRole(bytes32 role, address account) external view returns (bool)
Returns true
if account
has been granted role
.
Name |
Type |
Description |
role |
bytes32 |
undefined |
account |
address |
undefined |
Name |
Type |
Description |
_0 |
bool |
undefined |
function increaseAllowance(address spender, uint256 addedValue) external nonpayable returns (bool)
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.
Name |
Type |
Description |
spender |
address |
undefined |
addedValue |
uint256 |
undefined |
Name |
Type |
Description |
_0 |
bool |
undefined |
function initialize(address tokensOwner) external nonpayable
Contract initialization. 5_000_000_000 tokens are minted
Initialization of the contract required by the proxy pattern
replacing the constructor
Name |
Type |
Description |
tokensOwner |
address |
Admin of the contract & recipient address of the minted tokens |
function isTrustedForwarder(address forwarder) external view returns (bool)
Checks if the address is the current trusted forwarder.
ERC2771 implementation
Name |
Type |
Description |
forwarder |
address |
address to check |
Name |
Type |
Description |
_0 |
bool |
true if it's the trusted forwarder |
function name() external view returns (string)
Returns the name of the token.
Name |
Type |
Description |
_0 |
string |
undefined |
function nonces(address owner) external view returns (uint256)
See {IERC20Permit-nonces}.
Name |
Type |
Description |
owner |
address |
undefined |
Name |
Type |
Description |
_0 |
uint256 |
undefined |
function numCheckpoints(address account) external view returns (uint32)
Get number of checkpoints for account
.
Name |
Type |
Description |
account |
address |
undefined |
Name |
Type |
Description |
_0 |
uint32 |
undefined |
function pause() external nonpayable
Pause is an emergency stop mechanism that stops transfer-related actions
Only owner can pause
function paused() external view returns (bool)
Returns true if the contract is paused, and false otherwise.
Name |
Type |
Description |
_0 |
bool |
undefined |
function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external nonpayable
See {IERC20Permit-permit}.
Name |
Type |
Description |
owner |
address |
undefined |
spender |
address |
undefined |
value |
uint256 |
undefined |
deadline |
uint256 |
undefined |
v |
uint8 |
undefined |
r |
bytes32 |
undefined |
s |
bytes32 |
undefined |
function proxiableUUID() external view returns (bytes32)
Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate that the this implementation remains valid after 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.
Name |
Type |
Description |
_0 |
bytes32 |
undefined |
function renounceRole(bytes32 role, address account) external nonpayable
Revokes role
from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked role
, emits a {RoleRevoked} event. Requirements: - the caller must be account
. May emit a {RoleRevoked} event.
Name |
Type |
Description |
role |
bytes32 |
undefined |
account |
address |
undefined |
function revokeRole(bytes32 role, address account) external nonpayable
Revokes role
from account
. If account
had been granted role
, emits a {RoleRevoked} event. Requirements: - the caller must have role
's admin role. May emit a {RoleRevoked} event.
Name |
Type |
Description |
role |
bytes32 |
undefined |
account |
address |
undefined |
function setTrustedForwarder(address forwarder) external nonpayable
Allows FORWARDER_ROLE granted account to change the trusted forwarder
should be declared here because we need to protect calls with onlyRole(FORWARDER_ROLE)
Name |
Type |
Description |
forwarder |
address |
New trusted forwarder's address |
function supportsInterface(bytes4 interfaceId) external pure returns (bool)
Supported interface ask machine.
ERC165 implementation
Name |
Type |
Description |
interfaceId |
bytes4 |
interface's id |
Name |
Type |
Description |
_0 |
bool |
true if the specified interface is implemented by the contract |
function symbol() external view returns (string)
Returns the symbol of the token, usually a shorter version of the name.
Name |
Type |
Description |
_0 |
string |
undefined |
function totalSupply() external view returns (uint256)
See {IERC20-totalSupply}.
Name |
Type |
Description |
_0 |
uint256 |
undefined |
function transfer(address to, uint256 amount) external nonpayable returns (bool)
See {IERC20-transfer}. Requirements: - to
cannot be the zero address. - the caller must have a balance of at least amount
.
Name |
Type |
Description |
to |
address |
undefined |
amount |
uint256 |
undefined |
Name |
Type |
Description |
_0 |
bool |
undefined |
function transferAndCall(address to, uint256 amount) external nonpayable returns (bool)
Transfer tokens to a specified address and then execute a callback on to
.
Name |
Type |
Description |
to |
address |
The address to transfer to. |
amount |
uint256 |
The amount to be transferred. |
Name |
Type |
Description |
_0 |
bool |
A boolean that indicates if the operation was successful. |
function transferAndCall(address to, uint256 amount, bytes data) external nonpayable returns (bool)
Transfer tokens to a specified address and then execute a callback on to
.
Name |
Type |
Description |
to |
address |
The address to transfer to |
amount |
uint256 |
The amount to be transferred |
data |
bytes |
Additional data with no specified format |
Name |
Type |
Description |
_0 |
bool |
A boolean that indicates if the operation was successful. |
function transferFrom(address from, address to, uint256 amount) external nonpayable returns (bool)
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}. 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 amount
. - the caller must have allowance for from
's tokens of at least amount
.
Name |
Type |
Description |
from |
address |
undefined |
to |
address |
undefined |
amount |
uint256 |
undefined |
Name |
Type |
Description |
_0 |
bool |
undefined |
function transferFromAndCall(address from, address to, uint256 amount, bytes data) external nonpayable returns (bool)
Transfer tokens from one address to another and then execute a callback on to
.
Name |
Type |
Description |
from |
address |
The address which you want to send tokens from |
to |
address |
The address which you want to transfer to |
amount |
uint256 |
The amount of tokens to be transferred |
data |
bytes |
Additional data with no specified format |
Name |
Type |
Description |
_0 |
bool |
A boolean that indicates if the operation was successful. |
function transferFromAndCall(address from, address to, uint256 amount) external nonpayable returns (bool)
Transfer tokens from one address to another and then execute a callback on to
.
Name |
Type |
Description |
from |
address |
The address which you want to send tokens from |
to |
address |
The address which you want to transfer to |
amount |
uint256 |
The amount of tokens to be transferred |
Name |
Type |
Description |
_0 |
bool |
A boolean that indicates if the operation was successful. |
function unpause() external nonpayable
Unpause the contract.
Only owner can unpause
function upgradeTo(address newImplementation) external nonpayable
Upgrade the implementation of the proxy to newImplementation
. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.
Name |
Type |
Description |
newImplementation |
address |
undefined |
function upgradeToAndCall(address newImplementation, bytes data) external payable
Upgrade the implementation of the proxy to newImplementation
, and subsequently execute the function call encoded in data
. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.
Name |
Type |
Description |
newImplementation |
address |
undefined |
data |
bytes |
undefined |
event AdminChanged(address previousAdmin, address newAdmin)
Name |
Type |
Description |
previousAdmin |
address |
undefined |
newAdmin |
address |
undefined |
event Approval(address indexed owner, address indexed spender, uint256 value)
Name |
Type |
Description |
owner indexed |
address |
undefined |
spender indexed |
address |
undefined |
value |
uint256 |
undefined |
event BeaconUpgraded(address indexed beacon)
Name |
Type |
Description |
beacon indexed |
address |
undefined |
event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate)
Name |
Type |
Description |
delegator indexed |
address |
undefined |
fromDelegate indexed |
address |
undefined |
toDelegate indexed |
address |
undefined |
event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance)
Name |
Type |
Description |
delegate indexed |
address |
undefined |
previousBalance |
uint256 |
undefined |
newBalance |
uint256 |
undefined |
event Initialized(uint8 version)
Name |
Type |
Description |
version |
uint8 |
undefined |
event Paused(address account)
Name |
Type |
Description |
account |
address |
undefined |
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
Name |
Type |
Description |
role indexed |
bytes32 |
undefined |
previousAdminRole indexed |
bytes32 |
undefined |
newAdminRole indexed |
bytes32 |
undefined |
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
Name |
Type |
Description |
role indexed |
bytes32 |
undefined |
account indexed |
address |
undefined |
sender indexed |
address |
undefined |
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Name |
Type |
Description |
role indexed |
bytes32 |
undefined |
account indexed |
address |
undefined |
sender indexed |
address |
undefined |
event Transfer(address indexed from, address indexed to, uint256 value)
Name |
Type |
Description |
from indexed |
address |
undefined |
to indexed |
address |
undefined |
value |
uint256 |
undefined |
event TrustedForwarderChanged(address indexed oldTF, address indexed newTF)
Emitted when the trusted forwarder has been successfully changed
Name |
Type |
Description |
oldTF indexed |
address |
undefined |
newTF indexed |
address |
undefined |
event Unpaused(address account)
Name |
Type |
Description |
account |
address |
undefined |
event Upgraded(address indexed implementation)
Name |
Type |
Description |
implementation indexed |
address |
undefined |