Skip to main content

ERC20Permit

Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. Available since v3.4.

Methods

DOMAIN_SEPARATOR

function DOMAIN_SEPARATOR() external view returns (bytes32)

See {IERC20Permit-DOMAIN_SEPARATOR}.

Returns

NameTypeDescription
_0bytes32undefined

allowance

function allowance(address owner, address spender) external view returns (uint256)

See {IERC20-allowance}.

Parameters

NameTypeDescription
owneraddressundefined
spenderaddressundefined

Returns

NameTypeDescription
_0uint256undefined

approve

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.

Parameters

NameTypeDescription
spenderaddressundefined
amountuint256undefined

Returns

NameTypeDescription
_0boolundefined

balanceOf

function balanceOf(address account) external view returns (uint256)

See {IERC20-balanceOf}.

Parameters

NameTypeDescription
accountaddressundefined

Returns

NameTypeDescription
_0uint256undefined

decimals

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}.

Returns

NameTypeDescription
_0uint8undefined

decreaseAllowance

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.

Parameters

NameTypeDescription
spenderaddressundefined
subtractedValueuint256undefined

Returns

NameTypeDescription
_0boolundefined

increaseAllowance

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.

Parameters

NameTypeDescription
spenderaddressundefined
addedValueuint256undefined

Returns

NameTypeDescription
_0boolundefined

name

function name() external view returns (string)

Returns the name of the token.

Returns

NameTypeDescription
_0stringundefined

nonces

function nonces(address owner) external view returns (uint256)

See {IERC20Permit-nonces}.

Parameters

NameTypeDescription
owneraddressundefined

Returns

NameTypeDescription
_0uint256undefined

permit

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

See {IERC20Permit-permit}.

Parameters

NameTypeDescription
owneraddressundefined
spenderaddressundefined
valueuint256undefined
deadlineuint256undefined
vuint8undefined
rbytes32undefined
sbytes32undefined

symbol

function symbol() external view returns (string)

Returns the symbol of the token, usually a shorter version of the name.

Returns

NameTypeDescription
_0stringundefined

totalSupply

function totalSupply() external view returns (uint256)

See {IERC20-totalSupply}.

Returns

NameTypeDescription
_0uint256undefined

transfer

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.

Parameters

NameTypeDescription
toaddressundefined
amountuint256undefined

Returns

NameTypeDescription
_0boolundefined

transferFrom

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.

Parameters

NameTypeDescription
fromaddressundefined
toaddressundefined
amountuint256undefined

Returns

NameTypeDescription
_0boolundefined

Events

Approval

event Approval(address indexed owner, address indexed spender, uint256 value)

Parameters

NameTypeDescription
owner indexedaddressundefined
spender indexedaddressundefined
valueuint256undefined

Transfer

event Transfer(address indexed from, address indexed to, uint256 value)

Parameters

NameTypeDescription
from indexedaddressundefined
to indexedaddressundefined
valueuint256undefined