Skip to main content

IERC20Full Interface

The IERC20Full interface aggregates standard ERC20 functionality with additional extensions for metadata and permit operations. It combines OpenZeppelin's IERC20, IERC20Metadata, IERC20Errors, and IERC20Permit interfaces.

Interface Inheritance

interface IERC20Full is IERC20, IERC20Metadata, IERC20Errors, IERC20Permit

Standard ERC20 Functions

Inherits all standard ERC20 functions from OpenZeppelin's implementation:

function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address from, address to, uint256 amount) external returns (bool);

Metadata Functions

Includes token metadata functions:

function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);

Permit Functions

Implements EIP-2612 permit functionality:

function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;

function nonces(address owner) external view returns (uint256);
function DOMAIN_SEPARATOR() external view returns (bytes32);

Custom Errors

ERC2612ExpiredSignature

error ERC2612ExpiredSignature(uint256 deadline);

Thrown when attempting to use a permit after its deadline.

Parameters

NameTypeDescription
deadlineuint256The timestamp when the permit expired

ERC2612InvalidSigner

error ERC2612InvalidSigner(address signer, address owner);

Thrown when the recovered signer doesn't match the token owner.

Parameters

NameTypeDescription
signeraddressThe address recovered from the signature
owneraddressThe expected owner address

Standard ERC20 Errors

Inherits standard OpenZeppelin ERC20 errors:

error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
error ERC20InvalidSender(address sender);
error ERC20InvalidReceiver(address receiver);
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);