UNPKG

@alpsfinance/core

Version:

This is the official Alps Finance smart contract repository.

972 lines 42.1 kB
{ "contractName": "IERC20Permit", "abi": [ { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[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.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current 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.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` 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: - `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].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n /**\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n * given ``owner``'s signed approval.\n *\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n * ordering also apply here.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `deadline` must be a timestamp in the future.\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n * over the EIP712-formatted function arguments.\n * - the signature must use ``owner``'s current nonce (see {nonces}).\n *\n * For more information on the signature format, see the\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n * section].\n */\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n /**\n * @dev Returns the current nonce for `owner`. This value must be\n * included whenever a signature is generated for {permit}.\n *\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\n * prevents a signature from being used multiple times.\n */\n function nonces(address owner) external view returns (uint256);\n\n /**\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n */\n // solhint-disable-next-line func-name-mixedcase\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n", "sourcePath": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "ast": { "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "exportedSymbols": { "IERC20Permit": [ 3795 ] }, "id": 3796, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 3761, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "114:23:19" }, { "abstract": false, "baseContracts": [], "canonicalName": "IERC20Permit", "contractDependencies": [], "contractKind": "interface", "documentation": { "id": 3762, "nodeType": "StructuredDocumentation", "src": "139:480:19", "text": " @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all." }, "fullyImplemented": false, "id": 3795, "linearizedBaseContracts": [ 3795 ], "name": "IERC20Permit", "nameLocation": "630:12:19", "nodeType": "ContractDefinition", "nodes": [ { "documentation": { "id": 3763, "nodeType": "StructuredDocumentation", "src": "649:792:19", "text": " @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]." }, "functionSelector": "d505accf", "id": 3780, "implemented": false, "kind": "function", "modifiers": [], "name": "permit", "nameLocation": "1455:6:19", "nodeType": "FunctionDefinition", "parameters": { "id": 3778, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3765, "mutability": "mutable", "name": "owner", "nameLocation": "1479:5:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1471:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3764, "name": "address", "nodeType": "ElementaryTypeName", "src": "1471:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 3767, "mutability": "mutable", "name": "spender", "nameLocation": "1502:7:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1494:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3766, "name": "address", "nodeType": "ElementaryTypeName", "src": "1494:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 3769, "mutability": "mutable", "name": "value", "nameLocation": "1527:5:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1519:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3768, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1519:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3771, "mutability": "mutable", "name": "deadline", "nameLocation": "1550:8:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1542:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3770, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1542:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3773, "mutability": "mutable", "name": "v", "nameLocation": "1574:1:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1568:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 3772, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "1568:5:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "visibility": "internal" }, { "constant": false, "id": 3775, "mutability": "mutable", "name": "r", "nameLocation": "1593:1:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1585:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3774, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1585:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 3777, "mutability": "mutable", "name": "s", "nameLocation": "1612:1:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1604:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3776, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1604:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "1461:158:19" }, "returnParameters": { "id": 3779, "nodeType": "ParameterList", "parameters": [], "src": "1628:0:19" }, "scope": 3795, "src": "1446:183:19", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 3781, "nodeType": "StructuredDocumentation", "src": "1635:294:19", "text": " @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times." }, "functionSelector": "7ecebe00", "id": 3788, "implemented": false, "kind": "function", "modifiers": [], "name": "nonces", "nameLocation": "1943:6:19", "nodeType": "FunctionDefinition", "parameters": { "id": 3784, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3783, "mutability": "mutable", "name": "owner", "nameLocation": "1958:5:19", "nodeType": "VariableDeclaration", "scope": 3788, "src": "1950:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3782, "name": "address", "nodeType": "ElementaryTypeName", "src": "1950:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "1949:15:19" }, "returnParameters": { "id": 3787, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3786, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3788, "src": "1988:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3785, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1988:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1987:9:19" }, "scope": 3795, "src": "1934:63:19", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { "id": 3789, "nodeType": "StructuredDocumentation", "src": "2003:128:19", "text": " @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}." }, "functionSelector": "3644e515", "id": 3794, "implemented": false, "kind": "function", "modifiers": [], "name": "DOMAIN_SEPARATOR", "nameLocation": "2198:16:19", "nodeType": "FunctionDefinition", "parameters": { "id": 3790, "nodeType": "ParameterList", "parameters": [], "src": "2214:2:19" }, "returnParameters": { "id": 3793, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3792, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3794, "src": "2240:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3791, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2240:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "2239:9:19" }, "scope": 3795, "src": "2189:60:19", "stateMutability": "view", "virtual": false, "visibility": "external" } ], "scope": 3796, "src": "620:1631:19", "usedErrors": [] } ], "src": "114:2138:19" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "exportedSymbols": { "IERC20Permit": [ 3795 ] }, "id": 3796, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 3761, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "114:23:19" }, { "abstract": false, "baseContracts": [], "canonicalName": "IERC20Permit", "contractDependencies": [], "contractKind": "interface", "documentation": { "id": 3762, "nodeType": "StructuredDocumentation", "src": "139:480:19", "text": " @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all." }, "fullyImplemented": false, "id": 3795, "linearizedBaseContracts": [ 3795 ], "name": "IERC20Permit", "nameLocation": "630:12:19", "nodeType": "ContractDefinition", "nodes": [ { "documentation": { "id": 3763, "nodeType": "StructuredDocumentation", "src": "649:792:19", "text": " @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]." }, "functionSelector": "d505accf", "id": 3780, "implemented": false, "kind": "function", "modifiers": [], "name": "permit", "nameLocation": "1455:6:19", "nodeType": "FunctionDefinition", "parameters": { "id": 3778, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3765, "mutability": "mutable", "name": "owner", "nameLocation": "1479:5:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1471:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3764, "name": "address", "nodeType": "ElementaryTypeName", "src": "1471:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 3767, "mutability": "mutable", "name": "spender", "nameLocation": "1502:7:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1494:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3766, "name": "address", "nodeType": "ElementaryTypeName", "src": "1494:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 3769, "mutability": "mutable", "name": "value", "nameLocation": "1527:5:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1519:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3768, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1519:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3771, "mutability": "mutable", "name": "deadline", "nameLocation": "1550:8:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1542:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3770, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1542:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3773, "mutability": "mutable", "name": "v", "nameLocation": "1574:1:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1568:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 3772, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "1568:5:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "visibility": "internal" }, { "constant": false, "id": 3775, "mutability": "mutable", "name": "r", "nameLocation": "1593:1:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1585:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3774, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1585:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 3777, "mutability": "mutable", "name": "s", "nameLocation": "1612:1:19", "nodeType": "VariableDeclaration", "scope": 3780, "src": "1604:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3776, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1604:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "1461:158:19" }, "returnParameters": { "id": 3779, "nodeType": "ParameterList", "parameters": [], "src": "1628:0:19" }, "scope": 3795, "src": "1446:183:19", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 3781, "nodeType": "StructuredDocumentation", "src": "1635:294:19", "text": " @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times." }, "functionSelector": "7ecebe00", "id": 3788, "implemented": false, "kind": "function", "modifiers": [], "name": "nonces", "nameLocation": "1943:6:19", "nodeType": "FunctionDefinition", "parameters": { "id": 3784, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3783, "mutability": "mutable", "name": "owner", "nameLocation": "1958:5:19", "nodeType": "VariableDeclaration", "scope": 3788, "src": "1950:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3782, "name": "address", "nodeType": "ElementaryTypeName", "src": "1950:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "1949:15:19" }, "returnParameters": { "id": 3787, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3786, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3788, "src": "1988:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3785, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1988:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1987:9:19" }, "scope": 3795, "src": "1934:63:19", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { "id": 3789, "nodeType": "StructuredDocumentation", "src": "2003:128:19", "text": " @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}." }, "functionSelector": "3644e515", "id": 3794, "implemented": false, "kind": "function", "modifiers": [], "name": "DOMAIN_SEPARATOR", "nameLocation": "2198:16:19", "nodeType": "FunctionDefinition", "parameters": { "id": 3790, "nodeType": "ParameterList", "parameters": [], "src": "2214:2:19" }, "returnParameters": { "id": 3793, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3792, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3794, "src": "2240:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3791, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2240:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "2239:9:19" }, "scope": 3795, "src": "2189:60:19", "stateMutability": "view", "virtual": false, "visibility": "external" } ], "scope": 3796, "src": "620:1631:19", "usedErrors": [] } ], "src": "114:2138:19" }, "compiler": { "name": "solc", "version": "0.8.11+commit.d7f03943.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.4.4", "updatedAt": "2022-03-06T23:47:11.033Z", "devdoc": { "details": "Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[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.", "kind": "dev", "methods": { "DOMAIN_SEPARATOR()": { "details": "Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}." }, "nonces(address)": { "details": "Returns the current 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." }, "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": { "details": "Sets `value` 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: - `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]." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }