becrypto/build/contracts/IERC20Permit.json
2023-11-29 11:02:04 +08:00

972 lines
41 KiB
JSON

{
"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.10+commit.fc410830\"},\"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/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]}},\"version\":1}",
"bytecode": "0x",
"deployedBytecode": "0x",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "",
"deployedSourceMap": "",
"source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/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/IERC20Permit.sol",
"ast": {
"absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
"exportedSymbols": {
"IERC20Permit": [
4195
]
},
"id": 4196,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4161,
"literals": [
"solidity",
"^",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "123:23:19"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "IERC20Permit",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 4162,
"nodeType": "StructuredDocumentation",
"src": "148: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": 4195,
"linearizedBaseContracts": [
4195
],
"name": "IERC20Permit",
"nameLocation": "639:12:19",
"nodeType": "ContractDefinition",
"nodes": [
{
"documentation": {
"id": 4163,
"nodeType": "StructuredDocumentation",
"src": "658: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": 4180,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "permit",
"nameLocation": "1464:6:19",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4178,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4165,
"mutability": "mutable",
"name": "owner",
"nameLocation": "1488:5:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1480:13:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4164,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1480:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4167,
"mutability": "mutable",
"name": "spender",
"nameLocation": "1511:7:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1503:15:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4166,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1503:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4169,
"mutability": "mutable",
"name": "value",
"nameLocation": "1536:5:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1528:13:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4168,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1528:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4171,
"mutability": "mutable",
"name": "deadline",
"nameLocation": "1559:8:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1551:16:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4170,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1551:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4173,
"mutability": "mutable",
"name": "v",
"nameLocation": "1583:1:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1577:7:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 4172,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "1577:5:19",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4175,
"mutability": "mutable",
"name": "r",
"nameLocation": "1602:1:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1594:9:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4174,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1594:7:19",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4177,
"mutability": "mutable",
"name": "s",
"nameLocation": "1621:1:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1613:9:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4176,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1613:7:19",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "1470:158:19"
},
"returnParameters": {
"id": 4179,
"nodeType": "ParameterList",
"parameters": [],
"src": "1637:0:19"
},
"scope": 4195,
"src": "1455:183:19",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 4181,
"nodeType": "StructuredDocumentation",
"src": "1644: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": 4188,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "nonces",
"nameLocation": "1952:6:19",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4184,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4183,
"mutability": "mutable",
"name": "owner",
"nameLocation": "1967:5:19",
"nodeType": "VariableDeclaration",
"scope": 4188,
"src": "1959:13:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4182,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1959:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1958:15:19"
},
"returnParameters": {
"id": 4187,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4186,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4188,
"src": "1997:7:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4185,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1997:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1996:9:19"
},
"scope": 4195,
"src": "1943:63:19",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 4189,
"nodeType": "StructuredDocumentation",
"src": "2012:128:19",
"text": " @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."
},
"functionSelector": "3644e515",
"id": 4194,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "DOMAIN_SEPARATOR",
"nameLocation": "2207:16:19",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4190,
"nodeType": "ParameterList",
"parameters": [],
"src": "2223:2:19"
},
"returnParameters": {
"id": 4193,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4192,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4194,
"src": "2249:7:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4191,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2249:7:19",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "2248:9:19"
},
"scope": 4195,
"src": "2198:60:19",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"scope": 4196,
"src": "629:1631:19",
"usedErrors": []
}
],
"src": "123:2138:19"
},
"legacyAST": {
"absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
"exportedSymbols": {
"IERC20Permit": [
4195
]
},
"id": 4196,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4161,
"literals": [
"solidity",
"^",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "123:23:19"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "IERC20Permit",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 4162,
"nodeType": "StructuredDocumentation",
"src": "148: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": 4195,
"linearizedBaseContracts": [
4195
],
"name": "IERC20Permit",
"nameLocation": "639:12:19",
"nodeType": "ContractDefinition",
"nodes": [
{
"documentation": {
"id": 4163,
"nodeType": "StructuredDocumentation",
"src": "658: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": 4180,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "permit",
"nameLocation": "1464:6:19",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4178,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4165,
"mutability": "mutable",
"name": "owner",
"nameLocation": "1488:5:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1480:13:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4164,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1480:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4167,
"mutability": "mutable",
"name": "spender",
"nameLocation": "1511:7:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1503:15:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4166,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1503:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4169,
"mutability": "mutable",
"name": "value",
"nameLocation": "1536:5:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1528:13:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4168,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1528:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4171,
"mutability": "mutable",
"name": "deadline",
"nameLocation": "1559:8:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1551:16:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4170,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1551:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4173,
"mutability": "mutable",
"name": "v",
"nameLocation": "1583:1:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1577:7:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 4172,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "1577:5:19",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4175,
"mutability": "mutable",
"name": "r",
"nameLocation": "1602:1:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1594:9:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4174,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1594:7:19",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4177,
"mutability": "mutable",
"name": "s",
"nameLocation": "1621:1:19",
"nodeType": "VariableDeclaration",
"scope": 4180,
"src": "1613:9:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4176,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1613:7:19",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "1470:158:19"
},
"returnParameters": {
"id": 4179,
"nodeType": "ParameterList",
"parameters": [],
"src": "1637:0:19"
},
"scope": 4195,
"src": "1455:183:19",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 4181,
"nodeType": "StructuredDocumentation",
"src": "1644: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": 4188,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "nonces",
"nameLocation": "1952:6:19",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4184,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4183,
"mutability": "mutable",
"name": "owner",
"nameLocation": "1967:5:19",
"nodeType": "VariableDeclaration",
"scope": 4188,
"src": "1959:13:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4182,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1959:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1958:15:19"
},
"returnParameters": {
"id": 4187,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4186,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4188,
"src": "1997:7:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4185,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1997:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1996:9:19"
},
"scope": 4195,
"src": "1943:63:19",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 4189,
"nodeType": "StructuredDocumentation",
"src": "2012:128:19",
"text": " @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."
},
"functionSelector": "3644e515",
"id": 4194,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "DOMAIN_SEPARATOR",
"nameLocation": "2207:16:19",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4190,
"nodeType": "ParameterList",
"parameters": [],
"src": "2223:2:19"
},
"returnParameters": {
"id": 4193,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4192,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4194,
"src": "2249:7:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4191,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2249:7:19",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "2248:9:19"
},
"scope": 4195,
"src": "2198:60:19",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"scope": 4196,
"src": "629:1631:19",
"usedErrors": []
}
],
"src": "123:2138:19"
},
"compiler": {
"name": "solc",
"version": "0.8.10+commit.fc410830.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.4.4",
"updatedAt": "2023-11-28T07:46:30.958Z",
"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
}
}