Skip to content

Latest commit

 

History

History
238 lines (198 loc) · 6.79 KB

IERC2612.md

File metadata and controls

238 lines (198 loc) · 6.79 KB

IERC2612.sol

View Source: contracts/Dependencies/IERC2612.sol

↘ Derived Contracts: IZUSDToken

IERC2612

Interface of the ERC2612 standard as defined in the EIP. Adds the {permit} method, which can be used to change one's {IERC20-allowance} without having to send a transaction, by signing a message. This allows users to spend tokens without having to hold Ether. See https://eips.ethereum.org/EIPS/eip-2612.

Code adapted from OpenZeppelin/openzeppelin-contracts#2237

Functions


permit

Sets amount as the allowance of spender over owner's tokens, given owner's signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements:

  • owner cannot be the zero address.
  • spender cannot be the zero address.
  • deadline must be a timestamp in the future.
  • v, r and s must be a valid secp256k1 signature from owner over the EIP712-formatted function arguments.
  • the signature must use owner's current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].
function permit(address owner, address spender, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external nonpayable

Arguments

Name Type Description
owner address
spender address
amount uint256
deadline uint256
v uint8
r bytes32
s bytes32
Source Code
function permit(address owner, address spender, uint256 amount, 
                    uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;

nonces

Returns the current ERC2612 nonce for owner. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases owner's nonce by one. This prevents a signature from being used multiple times. owner can limit the time a Permit is valid for by setting deadline to a value in the near future. The deadline argument can be set to uint(-1) to create Permits that effectively never expire.

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

Arguments

Name Type Description
owner address
Source Code
function nonces(address owner) external view returns (uint256);

version

function version() external view
returns(string)
Source Code
function version() external view returns (string memory);

permitTypeHash

function permitTypeHash() external view
returns(bytes32)
Source Code
function permitTypeHash() external view returns (bytes32);

domainSeparator

function domainSeparator() external view
returns(bytes32)
Source Code
function domainSeparator() external view returns (bytes32);

Contracts