USUAL*
Last updated
Was this helpful?
Last updated
Was this helpful?
This section provides an overview of the UsualS smart contract. The UsualS contract is designed to manage the USUALS ERC20 token, implementing essential functionalities for minting, burning, and transferring tokens, along with additional layers of control and security. The contract integrates role-based access control through a registry system, ensuring that only authorized entities can perform sensitive operations such as pausing the contract or blacklisting addresses
ERC20PausableUpgradeable: Extends ERC20 to support pausability
ERC20PermitUpgradeable: Extends ERC20 to support gasless transactions through signed approvals.
Standard OpenZeppelin Implementation.
Standard OpenZeppelin Implementation.
Minting: Tokens can be minted to an address, subject to role checks.
Burning: Tokens can be burned from an address, also subject to role checks.
Transfers: Tokens can be sent or receive. Will revert if blacklisted.
pause(): Pauses all token transfer operations; callable only by the PAUSING_CONTRACTS_ROLE.
unpause(): Resumes all token transfer operations; also callable only by the DEFAULT_ADMIN_ROLE.
transfer(address to, uint256 amount): Transfers tokens to a non-blacklisted address.
transferFrom(address sender, address to, uint256 amount): Transfers tokens from one non-blacklisted address to another.
burn(uint256 amount) and burnFrom(address account, uint256 amount): Burns tokens from an address, requiring the USUALS_BURN role.
blacklist(address account) and unBlacklist(address account): Those functions allows the admin to blacklist or remove from blacklist malicious users from using this token. Only callable by the BLACKLIST_ROLE.
stakeAll() : Sends the total supply of USUALS to the staking contract. Only callable by the USUALSP
contract.
isBlacklisted(): Returns true if the account is blacklisted.
CONTRACT_REGISTRY_ACCESS: Registry access contract address.
DEFAULT_ADMIN_ROLE: Default admin role.
PAUSING_CONTRACTS_ROLE: Role required to pause the contract.
BLACKLIST_ROLE: Role required to blacklist an address.
USUALS_BURN: Role required to burn tokens.
Pausability: Ensures that token transfers can be halted in case of emergency.
Role-Based Access Control: Restricts sensitive actions to addresses with appropriate roles.
Blacklist Enforcement: Ensures that unauthorized addresses can't participate in the token economy.