diff --git a/build/contracts/AccessControlEnumerable.json b/build/contracts/AccessControlEnumerable.json new file mode 100644 index 0000000..2f8f3a8 --- /dev/null +++ b/build/contracts/AccessControlEnumerable.json @@ -0,0 +1,3273 @@ +{ + "contractName": "AccessControlEnumerable", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {AccessControl} that allows enumerating the members of each role.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":\"AccessControlEnumerable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9f4357008a8f7d8c8bf5d48902e789637538d8c016be5766610901b4bba81514\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20bf19b2b851f58a4c24543de80ae70b3e08621f9230eb335dc75e2d4f43f5df\",\"dweb:/ipfs/QmSYuH1AhvJkPK8hNvoPqtExBcgTB42pPRHgTHkS5c5zYW\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControlEnumerable.sol\";\nimport \"./AccessControl.sol\";\nimport \"../utils/structs/EnumerableSet.sol\";\n\n/**\n * @dev Extension of {AccessControl} that allows enumerating the members of each role.\n */\nabstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl {\n using EnumerableSet for EnumerableSet.AddressSet;\n\n mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers;\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns one of the accounts that have `role`. `index` must be a\n * value between 0 and {getRoleMemberCount}, non-inclusive.\n *\n * Role bearers are not sorted in any particular way, and their ordering may\n * change at any point.\n *\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n * you perform all queries on the same block. See the following\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n * for more information.\n */\n function getRoleMember(bytes32 role, uint256 index) public view virtual override returns (address) {\n return _roleMembers[role].at(index);\n }\n\n /**\n * @dev Returns the number of accounts that have `role`. Can be used\n * together with {getRoleMember} to enumerate all bearers of a role.\n */\n function getRoleMemberCount(bytes32 role) public view virtual override returns (uint256) {\n return _roleMembers[role].length();\n }\n\n /**\n * @dev Overload {_grantRole} to track enumerable memberships\n */\n function _grantRole(bytes32 role, address account) internal virtual override {\n super._grantRole(role, account);\n _roleMembers[role].add(account);\n }\n\n /**\n * @dev Overload {_revokeRole} to track enumerable memberships\n */\n function _revokeRole(bytes32 role, address account) internal virtual override {\n super._revokeRole(role, account);\n _roleMembers[role].remove(account);\n }\n}\n", + "sourcePath": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", + "ast": { + "absolutePath": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", + "exportedSymbols": { + "AccessControl": [ + 315 + ], + "AccessControlEnumerable": [ + 440 + ], + "Context": [ + 6470 + ], + "ERC165": [ + 7163 + ], + "EnumerableSet": [ + 9071 + ], + "IAccessControl": [ + 513 + ], + "IAccessControlEnumerable": [ + 538 + ], + "IERC165": [ + 7175 + ], + "Math": [ + 8041 + ], + "SignedMath": [ + 8458 + ], + "Strings": [ + 6773 + ] + }, + "id": 441, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 317, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:23:1" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControlEnumerable.sol", + "file": "./IAccessControlEnumerable.sol", + "id": 318, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 441, + "sourceUnit": 539, + "src": "143:40:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "file": "./AccessControl.sol", + "id": 319, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 441, + "sourceUnit": 316, + "src": "184:29:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "file": "../utils/structs/EnumerableSet.sol", + "id": 320, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 441, + "sourceUnit": 9072, + "src": "214:44:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 322, + "name": "IAccessControlEnumerable", + "nodeType": "IdentifierPath", + "referencedDeclaration": 538, + "src": "400:24:1" + }, + "id": 323, + "nodeType": "InheritanceSpecifier", + "src": "400:24:1" + }, + { + "baseName": { + "id": 324, + "name": "AccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 315, + "src": "426:13:1" + }, + "id": 325, + "nodeType": "InheritanceSpecifier", + "src": "426:13:1" + } + ], + "canonicalName": "AccessControlEnumerable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 321, + "nodeType": "StructuredDocumentation", + "src": "260:94:1", + "text": " @dev Extension of {AccessControl} that allows enumerating the members of each role." + }, + "fullyImplemented": true, + "id": 440, + "linearizedBaseContracts": [ + 440, + 315, + 7163, + 7175, + 538, + 513, + 6470 + ], + "name": "AccessControlEnumerable", + "nameLocation": "373:23:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 329, + "libraryName": { + "id": 326, + "name": "EnumerableSet", + "nodeType": "IdentifierPath", + "referencedDeclaration": 9071, + "src": "452:13:1" + }, + "nodeType": "UsingForDirective", + "src": "446:49:1", + "typeName": { + "id": 328, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 327, + "name": "EnumerableSet.AddressSet", + "nodeType": "IdentifierPath", + "referencedDeclaration": 8784, + "src": "470:24:1" + }, + "referencedDeclaration": 8784, + "src": "470:24:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + } + }, + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "_roleMembers", + "nameLocation": "554:12:1", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "501:65:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet)" + }, + "typeName": { + "id": 333, + "keyType": { + "id": 330, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "509:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "501:44:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet)" + }, + "valueType": { + "id": 332, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 331, + "name": "EnumerableSet.AddressSet", + "nodeType": "IdentifierPath", + "referencedDeclaration": 8784, + "src": "520:24:1" + }, + "referencedDeclaration": 8784, + "src": "520:24:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + } + }, + "visibility": "private" + }, + { + "baseFunctions": [ + 60 + ], + "body": { + "id": 355, + "nodeType": "Block", + "src": "725:121:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 343, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "742:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 345, + "name": "IAccessControlEnumerable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 538, + "src": "762:24:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAccessControlEnumerable_$538_$", + "typeString": "type(contract IAccessControlEnumerable)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IAccessControlEnumerable_$538_$", + "typeString": "type(contract IAccessControlEnumerable)" + } + ], + "id": 344, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "757:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "757:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControlEnumerable_$538", + "typeString": "type(contract IAccessControlEnumerable)" + } + }, + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "757:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "742:57:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 351, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "827:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 349, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "803:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlEnumerable_$440_$", + "typeString": "type(contract super AccessControlEnumerable)" + } + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 60, + "src": "803:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "803:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "742:97:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 342, + "id": 354, + "nodeType": "Return", + "src": "735:104:1" + } + ] + }, + "documentation": { + "id": 335, + "nodeType": "StructuredDocumentation", + "src": "573:56:1", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 356, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "643:17:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 339, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "701:8:1" + }, + "parameters": { + "id": 338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "668:11:1", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "661:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 336, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "661:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "660:20:1" + }, + "returnParameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "719:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 340, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "719:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "718:6:1" + }, + "scope": 440, + "src": "634:212:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 529 + ], + "body": { + "id": 374, + "nodeType": "Block", + "src": "1530:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 371, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 361, + "src": "1569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 367, + "name": "_roleMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 334, + "src": "1547:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)" + } + }, + "id": 369, + "indexExpression": { + "id": 368, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "1560:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1547:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 370, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 8907, + "src": "1547:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$8784_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$8784_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" + } + }, + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1547:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 366, + "id": 373, + "nodeType": "Return", + "src": "1540:35:1" + } + ] + }, + "documentation": { + "id": 357, + "nodeType": "StructuredDocumentation", + "src": "852:574:1", + "text": " @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information." + }, + "functionSelector": "9010d07c", + "id": 375, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleMember", + "nameLocation": "1440:13:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 363, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1503:8:1" + }, + "parameters": { + "id": 362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 359, + "mutability": "mutable", + "name": "role", + "nameLocation": "1462:4:1", + "nodeType": "VariableDeclaration", + "scope": 375, + "src": "1454:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 358, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1454:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 361, + "mutability": "mutable", + "name": "index", + "nameLocation": "1476:5:1", + "nodeType": "VariableDeclaration", + "scope": 375, + "src": "1468:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 360, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1468:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1453:29:1" + }, + "returnParameters": { + "id": 366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 365, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 375, + "src": "1521:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1521:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1520:9:1" + }, + "scope": 440, + "src": "1431:151:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 537 + ], + "body": { + "id": 390, + "nodeType": "Block", + "src": "1839:51:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 384, + "name": "_roleMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 334, + "src": "1856:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)" + } + }, + "id": 386, + "indexExpression": { + "id": 385, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 378, + "src": "1869:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1856:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 387, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 8880, + "src": "1856:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$8784_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$8784_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1856:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 383, + "id": 389, + "nodeType": "Return", + "src": "1849:34:1" + } + ] + }, + "documentation": { + "id": 376, + "nodeType": "StructuredDocumentation", + "src": "1588:157:1", + "text": " @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role." + }, + "functionSelector": "ca15c873", + "id": 391, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleMemberCount", + "nameLocation": "1759:18:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 380, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1812:8:1" + }, + "parameters": { + "id": 379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 378, + "mutability": "mutable", + "name": "role", + "nameLocation": "1786:4:1", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1778:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 377, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1777:14:1" + }, + "returnParameters": { + "id": 383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 382, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1830:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1829:9:1" + }, + "scope": 440, + "src": "1750:140:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 283 + ], + "body": { + "id": 414, + "nodeType": "Block", + "src": "2055:89:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 403, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2082:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 404, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "2088:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 400, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "2065:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlEnumerable_$440_$", + "typeString": "type(contract super AccessControlEnumerable)" + } + }, + "id": 402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_grantRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 283, + "src": "2065:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2065:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 406, + "nodeType": "ExpressionStatement", + "src": "2065:31:1" + }, + { + "expression": { + "arguments": [ + { + "id": 411, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "2129:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "baseExpression": { + "id": 407, + "name": "_roleMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 334, + "src": "2106:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)" + } + }, + "id": 409, + "indexExpression": { + "id": 408, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2119:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2106:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 410, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 8811, + "src": "2106:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$8784_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$8784_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2106:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 413, + "nodeType": "ExpressionStatement", + "src": "2106:31:1" + } + ] + }, + "documentation": { + "id": 392, + "nodeType": "StructuredDocumentation", + "src": "1896:77:1", + "text": " @dev Overload {_grantRole} to track enumerable memberships" + }, + "id": 415, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_grantRole", + "nameLocation": "1987:10:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 398, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2046:8:1" + }, + "parameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 394, + "mutability": "mutable", + "name": "role", + "nameLocation": "2006:4:1", + "nodeType": "VariableDeclaration", + "scope": 415, + "src": "1998:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 396, + "mutability": "mutable", + "name": "account", + "nameLocation": "2020:7:1", + "nodeType": "VariableDeclaration", + "scope": 415, + "src": "2012:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2012:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1997:31:1" + }, + "returnParameters": { + "id": 399, + "nodeType": "ParameterList", + "parameters": [], + "src": "2055:0:1" + }, + "scope": 440, + "src": "1978:166:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 314 + ], + "body": { + "id": 438, + "nodeType": "Block", + "src": "2311:93:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 427, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "2339:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 428, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "2345:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 424, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "2321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlEnumerable_$440_$", + "typeString": "type(contract super AccessControlEnumerable)" + } + }, + "id": 426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 314, + "src": "2321:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2321:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 430, + "nodeType": "ExpressionStatement", + "src": "2321:32:1" + }, + { + "expression": { + "arguments": [ + { + "id": 435, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "2389:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "baseExpression": { + "id": 431, + "name": "_roleMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 334, + "src": "2363:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)" + } + }, + "id": 433, + "indexExpression": { + "id": 432, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "2376:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2363:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 434, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 8838, + "src": "2363:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$8784_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$8784_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2363:34:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 437, + "nodeType": "ExpressionStatement", + "src": "2363:34:1" + } + ] + }, + "documentation": { + "id": 416, + "nodeType": "StructuredDocumentation", + "src": "2150:78:1", + "text": " @dev Overload {_revokeRole} to track enumerable memberships" + }, + "id": 439, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeRole", + "nameLocation": "2242:11:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 422, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2302:8:1" + }, + "parameters": { + "id": 421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 418, + "mutability": "mutable", + "name": "role", + "nameLocation": "2262:4:1", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "2254:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 417, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 420, + "mutability": "mutable", + "name": "account", + "nameLocation": "2276:7:1", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "2268:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2268:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2253:31:1" + }, + "returnParameters": { + "id": 423, + "nodeType": "ParameterList", + "parameters": [], + "src": "2311:0:1" + }, + "scope": 440, + "src": "2233:171:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 441, + "src": "355:2051:1", + "usedErrors": [] + } + ], + "src": "118:2289:1" + }, + "legacyAST": { + "absolutePath": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", + "exportedSymbols": { + "AccessControl": [ + 315 + ], + "AccessControlEnumerable": [ + 440 + ], + "Context": [ + 6470 + ], + "ERC165": [ + 7163 + ], + "EnumerableSet": [ + 9071 + ], + "IAccessControl": [ + 513 + ], + "IAccessControlEnumerable": [ + 538 + ], + "IERC165": [ + 7175 + ], + "Math": [ + 8041 + ], + "SignedMath": [ + 8458 + ], + "Strings": [ + 6773 + ] + }, + "id": 441, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 317, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:23:1" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControlEnumerable.sol", + "file": "./IAccessControlEnumerable.sol", + "id": 318, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 441, + "sourceUnit": 539, + "src": "143:40:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "file": "./AccessControl.sol", + "id": 319, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 441, + "sourceUnit": 316, + "src": "184:29:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "file": "../utils/structs/EnumerableSet.sol", + "id": 320, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 441, + "sourceUnit": 9072, + "src": "214:44:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 322, + "name": "IAccessControlEnumerable", + "nodeType": "IdentifierPath", + "referencedDeclaration": 538, + "src": "400:24:1" + }, + "id": 323, + "nodeType": "InheritanceSpecifier", + "src": "400:24:1" + }, + { + "baseName": { + "id": 324, + "name": "AccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 315, + "src": "426:13:1" + }, + "id": 325, + "nodeType": "InheritanceSpecifier", + "src": "426:13:1" + } + ], + "canonicalName": "AccessControlEnumerable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 321, + "nodeType": "StructuredDocumentation", + "src": "260:94:1", + "text": " @dev Extension of {AccessControl} that allows enumerating the members of each role." + }, + "fullyImplemented": true, + "id": 440, + "linearizedBaseContracts": [ + 440, + 315, + 7163, + 7175, + 538, + 513, + 6470 + ], + "name": "AccessControlEnumerable", + "nameLocation": "373:23:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 329, + "libraryName": { + "id": 326, + "name": "EnumerableSet", + "nodeType": "IdentifierPath", + "referencedDeclaration": 9071, + "src": "452:13:1" + }, + "nodeType": "UsingForDirective", + "src": "446:49:1", + "typeName": { + "id": 328, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 327, + "name": "EnumerableSet.AddressSet", + "nodeType": "IdentifierPath", + "referencedDeclaration": 8784, + "src": "470:24:1" + }, + "referencedDeclaration": 8784, + "src": "470:24:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + } + }, + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "_roleMembers", + "nameLocation": "554:12:1", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "501:65:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet)" + }, + "typeName": { + "id": 333, + "keyType": { + "id": 330, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "509:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "501:44:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet)" + }, + "valueType": { + "id": 332, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 331, + "name": "EnumerableSet.AddressSet", + "nodeType": "IdentifierPath", + "referencedDeclaration": 8784, + "src": "520:24:1" + }, + "referencedDeclaration": 8784, + "src": "520:24:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + } + }, + "visibility": "private" + }, + { + "baseFunctions": [ + 60 + ], + "body": { + "id": 355, + "nodeType": "Block", + "src": "725:121:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 343, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "742:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 345, + "name": "IAccessControlEnumerable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 538, + "src": "762:24:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAccessControlEnumerable_$538_$", + "typeString": "type(contract IAccessControlEnumerable)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IAccessControlEnumerable_$538_$", + "typeString": "type(contract IAccessControlEnumerable)" + } + ], + "id": 344, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "757:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "757:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControlEnumerable_$538", + "typeString": "type(contract IAccessControlEnumerable)" + } + }, + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "757:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "742:57:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 351, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "827:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 349, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "803:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlEnumerable_$440_$", + "typeString": "type(contract super AccessControlEnumerable)" + } + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 60, + "src": "803:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "803:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "742:97:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 342, + "id": 354, + "nodeType": "Return", + "src": "735:104:1" + } + ] + }, + "documentation": { + "id": 335, + "nodeType": "StructuredDocumentation", + "src": "573:56:1", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 356, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "643:17:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 339, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "701:8:1" + }, + "parameters": { + "id": 338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "668:11:1", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "661:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 336, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "661:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "660:20:1" + }, + "returnParameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "719:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 340, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "719:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "718:6:1" + }, + "scope": 440, + "src": "634:212:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 529 + ], + "body": { + "id": 374, + "nodeType": "Block", + "src": "1530:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 371, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 361, + "src": "1569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 367, + "name": "_roleMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 334, + "src": "1547:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)" + } + }, + "id": 369, + "indexExpression": { + "id": 368, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "1560:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1547:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 370, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 8907, + "src": "1547:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$8784_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$8784_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" + } + }, + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1547:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 366, + "id": 373, + "nodeType": "Return", + "src": "1540:35:1" + } + ] + }, + "documentation": { + "id": 357, + "nodeType": "StructuredDocumentation", + "src": "852:574:1", + "text": " @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information." + }, + "functionSelector": "9010d07c", + "id": 375, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleMember", + "nameLocation": "1440:13:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 363, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1503:8:1" + }, + "parameters": { + "id": 362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 359, + "mutability": "mutable", + "name": "role", + "nameLocation": "1462:4:1", + "nodeType": "VariableDeclaration", + "scope": 375, + "src": "1454:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 358, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1454:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 361, + "mutability": "mutable", + "name": "index", + "nameLocation": "1476:5:1", + "nodeType": "VariableDeclaration", + "scope": 375, + "src": "1468:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 360, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1468:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1453:29:1" + }, + "returnParameters": { + "id": 366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 365, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 375, + "src": "1521:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1521:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1520:9:1" + }, + "scope": 440, + "src": "1431:151:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 537 + ], + "body": { + "id": 390, + "nodeType": "Block", + "src": "1839:51:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 384, + "name": "_roleMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 334, + "src": "1856:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)" + } + }, + "id": 386, + "indexExpression": { + "id": 385, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 378, + "src": "1869:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1856:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 387, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 8880, + "src": "1856:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$8784_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$8784_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1856:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 383, + "id": 389, + "nodeType": "Return", + "src": "1849:34:1" + } + ] + }, + "documentation": { + "id": 376, + "nodeType": "StructuredDocumentation", + "src": "1588:157:1", + "text": " @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role." + }, + "functionSelector": "ca15c873", + "id": 391, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleMemberCount", + "nameLocation": "1759:18:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 380, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1812:8:1" + }, + "parameters": { + "id": 379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 378, + "mutability": "mutable", + "name": "role", + "nameLocation": "1786:4:1", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1778:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 377, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1777:14:1" + }, + "returnParameters": { + "id": 383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 382, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1830:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1829:9:1" + }, + "scope": 440, + "src": "1750:140:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 283 + ], + "body": { + "id": 414, + "nodeType": "Block", + "src": "2055:89:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 403, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2082:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 404, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "2088:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 400, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "2065:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlEnumerable_$440_$", + "typeString": "type(contract super AccessControlEnumerable)" + } + }, + "id": 402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_grantRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 283, + "src": "2065:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2065:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 406, + "nodeType": "ExpressionStatement", + "src": "2065:31:1" + }, + { + "expression": { + "arguments": [ + { + "id": 411, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "2129:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "baseExpression": { + "id": 407, + "name": "_roleMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 334, + "src": "2106:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)" + } + }, + "id": 409, + "indexExpression": { + "id": 408, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2119:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2106:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 410, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 8811, + "src": "2106:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$8784_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$8784_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2106:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 413, + "nodeType": "ExpressionStatement", + "src": "2106:31:1" + } + ] + }, + "documentation": { + "id": 392, + "nodeType": "StructuredDocumentation", + "src": "1896:77:1", + "text": " @dev Overload {_grantRole} to track enumerable memberships" + }, + "id": 415, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_grantRole", + "nameLocation": "1987:10:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 398, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2046:8:1" + }, + "parameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 394, + "mutability": "mutable", + "name": "role", + "nameLocation": "2006:4:1", + "nodeType": "VariableDeclaration", + "scope": 415, + "src": "1998:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 396, + "mutability": "mutable", + "name": "account", + "nameLocation": "2020:7:1", + "nodeType": "VariableDeclaration", + "scope": 415, + "src": "2012:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2012:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1997:31:1" + }, + "returnParameters": { + "id": 399, + "nodeType": "ParameterList", + "parameters": [], + "src": "2055:0:1" + }, + "scope": 440, + "src": "1978:166:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 314 + ], + "body": { + "id": 438, + "nodeType": "Block", + "src": "2311:93:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 427, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "2339:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 428, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "2345:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 424, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "2321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlEnumerable_$440_$", + "typeString": "type(contract super AccessControlEnumerable)" + } + }, + "id": 426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 314, + "src": "2321:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2321:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 430, + "nodeType": "ExpressionStatement", + "src": "2321:32:1" + }, + { + "expression": { + "arguments": [ + { + "id": 435, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "2389:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "baseExpression": { + "id": 431, + "name": "_roleMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 334, + "src": "2363:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8784_storage_$", + "typeString": "mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)" + } + }, + "id": 433, + "indexExpression": { + "id": 432, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "2376:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2363:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$8784_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 434, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 8838, + "src": "2363:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$8784_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$8784_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2363:34:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 437, + "nodeType": "ExpressionStatement", + "src": "2363:34:1" + } + ] + }, + "documentation": { + "id": 416, + "nodeType": "StructuredDocumentation", + "src": "2150:78:1", + "text": " @dev Overload {_revokeRole} to track enumerable memberships" + }, + "id": 439, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeRole", + "nameLocation": "2242:11:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 422, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2302:8:1" + }, + "parameters": { + "id": 421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 418, + "mutability": "mutable", + "name": "role", + "nameLocation": "2262:4:1", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "2254:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 417, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 420, + "mutability": "mutable", + "name": "account", + "nameLocation": "2276:7:1", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "2268:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2268:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2253:31:1" + }, + "returnParameters": { + "id": 423, + "nodeType": "ParameterList", + "parameters": [], + "src": "2311:0:1" + }, + "scope": 440, + "src": "2233:171:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 441, + "src": "355:2051:1", + "usedErrors": [] + } + ], + "src": "118:2289:1" + }, + "compiler": { + "name": "solc", + "version": "0.8.10+commit.fc410830.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.4", + "updatedAt": "2023-11-28T07:46:30.889Z", + "devdoc": { + "details": "Extension of {AccessControl} that allows enumerating the members of each role.", + "kind": "dev", + "methods": { + "getRoleAdmin(bytes32)": { + "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." + }, + "getRoleMember(bytes32,uint256)": { + "details": "Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information." + }, + "getRoleMemberCount(bytes32)": { + "details": "Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role." + }, + "grantRole(bytes32,address)": { + "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event." + }, + "hasRole(bytes32,address)": { + "details": "Returns `true` if `account` has been granted `role`." + }, + "renounceRole(bytes32,address)": { + "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event." + }, + "revokeRole(bytes32,address)": { + "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/Base64.json b/build/contracts/Base64.json new file mode 100644 index 0000000..2b6512d --- /dev/null +++ b/build/contracts/Base64.json @@ -0,0 +1,3167 @@ +{ + "contractName": "Base64", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides a set of functions to operate with Base64 strings. _Available since v4.5._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_TABLE\":{\"details\":\"Base64 Encoding/Decoding Table\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Base64.sol\":\"Base64\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Base64.sol\":{\"keccak256\":\"0x5f3461639fe20794cfb4db4a6d8477388a15b2e70a018043084b7c4bedfa8136\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77e5309e2cc4cdc3395214edb0ff43ff5a5f7373f5a425383e540f6fab530f96\",\"dweb:/ipfs/QmTV8DZ9knJDa3b5NPBFQqjvTzodyZVjRUg5mx5A99JPLJ\"]}},\"version\":1}", + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220495a4fe1e26fe2e9215b227bf73de186872510eb6ff1f20ce8de92b03ebe1a4464736f6c634300080a0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220495a4fe1e26fe2e9215b227bf73de186872510eb6ff1f20ce8de92b03ebe1a4464736f6c634300080a0033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "231:3302:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "231:3302:29:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Base64.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides a set of functions to operate with Base64 strings.\n *\n * _Available since v4.5._\n */\nlibrary Base64 {\n /**\n * @dev Base64 Encoding/Decoding Table\n */\n string internal constant _TABLE = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n /**\n * @dev Converts a `bytes` to its Bytes64 `string` representation.\n */\n function encode(bytes memory data) internal pure returns (string memory) {\n /**\n * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\n * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\n */\n if (data.length == 0) return \"\";\n\n // Loads the table into memory\n string memory table = _TABLE;\n\n // Encoding takes 3 bytes chunks of binary data from `bytes` data parameter\n // and split into 4 numbers of 6 bits.\n // The final Base64 length should be `bytes` data length multiplied by 4/3 rounded up\n // - `data.length + 2` -> Round up\n // - `/ 3` -> Number of 3-bytes chunks\n // - `4 *` -> 4 characters for each chunk\n string memory result = new string(4 * ((data.length + 2) / 3));\n\n /// @solidity memory-safe-assembly\n assembly {\n // Prepare the lookup table (skip the first \"length\" byte)\n let tablePtr := add(table, 1)\n\n // Prepare result pointer, jump over length\n let resultPtr := add(result, 32)\n\n // Run over the input, 3 bytes at a time\n for {\n let dataPtr := data\n let endPtr := add(data, mload(data))\n } lt(dataPtr, endPtr) {\n\n } {\n // Advance 3 bytes\n dataPtr := add(dataPtr, 3)\n let input := mload(dataPtr)\n\n // To write each character, shift the 3 bytes (18 bits) chunk\n // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\n // and apply logical AND with 0x3F which is the number of\n // the previous character in the ASCII table prior to the Base64 Table\n // The result is then added to the table to get the character to write,\n // and finally write it in the result pointer but with a left shift\n // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits\n\n mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\n resultPtr := add(resultPtr, 1) // Advance\n\n mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\n resultPtr := add(resultPtr, 1) // Advance\n\n mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\n resultPtr := add(resultPtr, 1) // Advance\n\n mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\n resultPtr := add(resultPtr, 1) // Advance\n }\n\n // When data `bytes` is not exactly 3 bytes long\n // it is padded with `=` characters at the end\n switch mod(mload(data), 3)\n case 1 {\n mstore8(sub(resultPtr, 1), 0x3d)\n mstore8(sub(resultPtr, 2), 0x3d)\n }\n case 2 {\n mstore8(sub(resultPtr, 1), 0x3d)\n }\n }\n\n return result;\n }\n}\n", + "sourcePath": "@openzeppelin/contracts/utils/Base64.sol", + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Base64.sol", + "exportedSymbols": { + "Base64": [ + 6448 + ] + }, + "id": 6449, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6403, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "100:23:29" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Base64", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6404, + "nodeType": "StructuredDocumentation", + "src": "125:105:29", + "text": " @dev Provides a set of functions to operate with Base64 strings.\n _Available since v4.5._" + }, + "fullyImplemented": true, + "id": 6448, + "linearizedBaseContracts": [ + 6448 + ], + "name": "Base64", + "nameLocation": "239:6:29", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 6405, + "nodeType": "StructuredDocumentation", + "src": "252:54:29", + "text": " @dev Base64 Encoding/Decoding Table" + }, + "id": 6408, + "mutability": "constant", + "name": "_TABLE", + "nameLocation": "336:6:29", + "nodeType": "VariableDeclaration", + "scope": 6448, + "src": "311:100:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6406, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "311:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f", + "id": 6407, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "345:66:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_84d8a590de33e00cbdc16e1f28c3506f5ec15c599fab9a6a4bcd575cc2f110ce", + "typeString": "literal_string \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"" + }, + "value": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" + }, + "visibility": "internal" + }, + { + "body": { + "id": 6446, + "nodeType": "Block", + "src": "578:2953:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6416, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "795:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "795:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "810:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "795:16:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": " Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\n https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol", + "id": 6422, + "nodeType": "IfStatement", + "src": "791:31:29", + "trueBody": { + "expression": { + "hexValue": "", + "id": 6420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "820:2:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "functionReturnParameters": 6415, + "id": 6421, + "nodeType": "Return", + "src": "813:9:29" + } + }, + { + "assignments": [ + 6424 + ], + "declarations": [ + { + "constant": false, + "id": 6424, + "mutability": "mutable", + "name": "table", + "nameLocation": "886:5:29", + "nodeType": "VariableDeclaration", + "scope": 6446, + "src": "872:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "872:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 6426, + "initialValue": { + "id": 6425, + "name": "_TABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "894:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "872:28:29" + }, + { + "assignments": [ + 6428 + ], + "declarations": [ + { + "constant": false, + "id": 6428, + "mutability": "mutable", + "name": "result", + "nameLocation": "1317:6:29", + "nodeType": "VariableDeclaration", + "scope": 6446, + "src": "1303:20:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6427, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1303:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 6442, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "34", + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1337:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6432, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "1343:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1343:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 6434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1357:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "1343:15:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6436, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1342:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "33", + "id": 6437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1362:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1342:21:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6439, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1341:23:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1337:27:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1326:10:29", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 6429, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1330:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1326:39:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1303:62:29" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "1428:2073:29", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1513:29:29", + "value": { + "arguments": [ + { + "name": "table", + "nodeType": "YulIdentifier", + "src": "1533:5:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1540:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1529:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "1529:13:29" + }, + "variables": [ + { + "name": "tablePtr", + "nodeType": "YulTypedName", + "src": "1517:8:29", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1612:32:29", + "value": { + "arguments": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1633:6:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1641:2:29", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1629:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "1629:15:29" + }, + "variables": [ + { + "name": "resultPtr", + "nodeType": "YulTypedName", + "src": "1616:9:29", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1857:1257:29", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1910:26:29", + "value": { + "arguments": [ + { + "name": "dataPtr", + "nodeType": "YulIdentifier", + "src": "1925:7:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1934:1:29", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1921:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "1921:15:29" + }, + "variableNames": [ + { + "name": "dataPtr", + "nodeType": "YulIdentifier", + "src": "1910:7:29" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1953:27:29", + "value": { + "arguments": [ + { + "name": "dataPtr", + "nodeType": "YulIdentifier", + "src": "1972:7:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1966:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "1966:14:29" + }, + "variables": [ + { + "name": "input", + "nodeType": "YulTypedName", + "src": "1957:5:29", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2564:9:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nodeType": "YulIdentifier", + "src": "2585:8:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2603:2:29", + "type": "", + "value": "18" + }, + { + "name": "input", + "nodeType": "YulIdentifier", + "src": "2607:5:29" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "2599:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2599:14:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:4:29", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2595:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2595:25:29" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2581:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2581:40:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2575:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "2575:47:29" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "2556:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "2556:67:29" + }, + "nodeType": "YulExpressionStatement", + "src": "2556:67:29" + }, + { + "nodeType": "YulAssignment", + "src": "2640:30:29", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2657:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2668:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2653:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2653:17:29" + }, + "variableNames": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2640:9:29" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2707:9:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nodeType": "YulIdentifier", + "src": "2728:8:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2746:2:29", + "type": "", + "value": "12" + }, + { + "name": "input", + "nodeType": "YulIdentifier", + "src": "2750:5:29" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "2742:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2742:14:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2758:4:29", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2738:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2738:25:29" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2724:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2724:40:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2718:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "2718:47:29" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "2699:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "2699:67:29" + }, + "nodeType": "YulExpressionStatement", + "src": "2699:67:29" + }, + { + "nodeType": "YulAssignment", + "src": "2783:30:29", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2800:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2811:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2796:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2796:17:29" + }, + "variableNames": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2783:9:29" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2850:9:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nodeType": "YulIdentifier", + "src": "2871:8:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2889:1:29", + "type": "", + "value": "6" + }, + { + "name": "input", + "nodeType": "YulIdentifier", + "src": "2892:5:29" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "2885:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2885:13:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2900:4:29", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2881:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2881:24:29" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2867:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2867:39:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2861:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "2861:46:29" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "2842:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "2842:66:29" + }, + "nodeType": "YulExpressionStatement", + "src": "2842:66:29" + }, + { + "nodeType": "YulAssignment", + "src": "2925:30:29", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2942:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2953:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2938:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2938:17:29" + }, + "variableNames": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2925:9:29" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2992:9:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nodeType": "YulIdentifier", + "src": "3013:8:29" + }, + { + "arguments": [ + { + "name": "input", + "nodeType": "YulIdentifier", + "src": "3027:5:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3034:4:29", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3023:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3023:16:29" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3009:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3009:31:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3003:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "3003:38:29" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "2984:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "2984:58:29" + }, + "nodeType": "YulExpressionStatement", + "src": "2984:58:29" + }, + { + "nodeType": "YulAssignment", + "src": "3059:30:29", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "3076:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3087:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3072:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3072:17:29" + }, + "variableNames": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "3059:9:29" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "dataPtr", + "nodeType": "YulIdentifier", + "src": "1823:7:29" + }, + { + "name": "endPtr", + "nodeType": "YulIdentifier", + "src": "1832:6:29" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1820:2:29" + }, + "nodeType": "YulFunctionCall", + "src": "1820:19:29" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1840:16:29", + "statements": [] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1715:104:29", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1733:19:29", + "value": { + "name": "data", + "nodeType": "YulIdentifier", + "src": "1748:4:29" + }, + "variables": [ + { + "name": "dataPtr", + "nodeType": "YulTypedName", + "src": "1737:7:29", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1769:36:29", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "1787:4:29" + }, + { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "1799:4:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1793:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "1793:11:29" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1783:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "1783:22:29" + }, + "variables": [ + { + "name": "endPtr", + "nodeType": "YulTypedName", + "src": "1773:6:29", + "type": "" + } + ] + } + ] + }, + "src": "1711:1403:29" + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3294:113:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "3324:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3335:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3320:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3320:17:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3339:4:29", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "3312:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "3312:32:29" + }, + "nodeType": "YulExpressionStatement", + "src": "3312:32:29" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "3373:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3384:1:29", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3369:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3369:17:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3388:4:29", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "3361:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "3361:32:29" + }, + "nodeType": "YulExpressionStatement", + "src": "3361:32:29" + } + ] + }, + "nodeType": "YulCase", + "src": "3287:120:29", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3292:1:29", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3427:64:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "3457:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3468:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3453:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3453:17:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3472:4:29", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "3445:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "3445:32:29" + }, + "nodeType": "YulExpressionStatement", + "src": "3445:32:29" + } + ] + }, + "nodeType": "YulCase", + "src": "3420:71:29", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3425:1:29", + "type": "", + "value": "2" + } + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3265:4:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3259:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "3259:11:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3272:1:29", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "mod", + "nodeType": "YulIdentifier", + "src": "3255:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3255:19:29" + }, + "nodeType": "YulSwitch", + "src": "3248:243:29" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 6411, + "isOffset": false, + "isSlot": false, + "src": "1748:4:29", + "valueSize": 1 + }, + { + "declaration": 6411, + "isOffset": false, + "isSlot": false, + "src": "1787:4:29", + "valueSize": 1 + }, + { + "declaration": 6411, + "isOffset": false, + "isSlot": false, + "src": "1799:4:29", + "valueSize": 1 + }, + { + "declaration": 6411, + "isOffset": false, + "isSlot": false, + "src": "3265:4:29", + "valueSize": 1 + }, + { + "declaration": 6428, + "isOffset": false, + "isSlot": false, + "src": "1633:6:29", + "valueSize": 1 + }, + { + "declaration": 6424, + "isOffset": false, + "isSlot": false, + "src": "1533:5:29", + "valueSize": 1 + } + ], + "id": 6443, + "nodeType": "InlineAssembly", + "src": "1419:2082:29" + }, + { + "expression": { + "id": 6444, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6428, + "src": "3518:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 6415, + "id": 6445, + "nodeType": "Return", + "src": "3511:13:29" + } + ] + }, + "documentation": { + "id": 6409, + "nodeType": "StructuredDocumentation", + "src": "418:82:29", + "text": " @dev Converts a `bytes` to its Bytes64 `string` representation." + }, + "id": 6447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nameLocation": "514:6:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6412, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "data", + "nameLocation": "534:4:29", + "nodeType": "VariableDeclaration", + "scope": 6447, + "src": "521:17:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6410, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "521:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "520:19:29" + }, + "returnParameters": { + "id": 6415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6414, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6447, + "src": "563:13:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6413, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "563:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "562:15:29" + }, + "scope": 6448, + "src": "505:3026:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6449, + "src": "231:3302:29", + "usedErrors": [] + } + ], + "src": "100:3434:29" + }, + "legacyAST": { + "absolutePath": "@openzeppelin/contracts/utils/Base64.sol", + "exportedSymbols": { + "Base64": [ + 6448 + ] + }, + "id": 6449, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6403, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "100:23:29" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Base64", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6404, + "nodeType": "StructuredDocumentation", + "src": "125:105:29", + "text": " @dev Provides a set of functions to operate with Base64 strings.\n _Available since v4.5._" + }, + "fullyImplemented": true, + "id": 6448, + "linearizedBaseContracts": [ + 6448 + ], + "name": "Base64", + "nameLocation": "239:6:29", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 6405, + "nodeType": "StructuredDocumentation", + "src": "252:54:29", + "text": " @dev Base64 Encoding/Decoding Table" + }, + "id": 6408, + "mutability": "constant", + "name": "_TABLE", + "nameLocation": "336:6:29", + "nodeType": "VariableDeclaration", + "scope": 6448, + "src": "311:100:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6406, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "311:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f", + "id": 6407, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "345:66:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_84d8a590de33e00cbdc16e1f28c3506f5ec15c599fab9a6a4bcd575cc2f110ce", + "typeString": "literal_string \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"" + }, + "value": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" + }, + "visibility": "internal" + }, + { + "body": { + "id": 6446, + "nodeType": "Block", + "src": "578:2953:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6416, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "795:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "795:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "810:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "795:16:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": " Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\n https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol", + "id": 6422, + "nodeType": "IfStatement", + "src": "791:31:29", + "trueBody": { + "expression": { + "hexValue": "", + "id": 6420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "820:2:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "functionReturnParameters": 6415, + "id": 6421, + "nodeType": "Return", + "src": "813:9:29" + } + }, + { + "assignments": [ + 6424 + ], + "declarations": [ + { + "constant": false, + "id": 6424, + "mutability": "mutable", + "name": "table", + "nameLocation": "886:5:29", + "nodeType": "VariableDeclaration", + "scope": 6446, + "src": "872:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "872:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 6426, + "initialValue": { + "id": 6425, + "name": "_TABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "894:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "872:28:29" + }, + { + "assignments": [ + 6428 + ], + "declarations": [ + { + "constant": false, + "id": 6428, + "mutability": "mutable", + "name": "result", + "nameLocation": "1317:6:29", + "nodeType": "VariableDeclaration", + "scope": 6446, + "src": "1303:20:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6427, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1303:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 6442, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "34", + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1337:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6432, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "1343:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1343:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 6434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1357:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "1343:15:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6436, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1342:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "33", + "id": 6437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1362:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1342:21:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6439, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1341:23:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1337:27:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1326:10:29", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 6429, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1330:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1326:39:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1303:62:29" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "1428:2073:29", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1513:29:29", + "value": { + "arguments": [ + { + "name": "table", + "nodeType": "YulIdentifier", + "src": "1533:5:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1540:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1529:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "1529:13:29" + }, + "variables": [ + { + "name": "tablePtr", + "nodeType": "YulTypedName", + "src": "1517:8:29", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1612:32:29", + "value": { + "arguments": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1633:6:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1641:2:29", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1629:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "1629:15:29" + }, + "variables": [ + { + "name": "resultPtr", + "nodeType": "YulTypedName", + "src": "1616:9:29", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1857:1257:29", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1910:26:29", + "value": { + "arguments": [ + { + "name": "dataPtr", + "nodeType": "YulIdentifier", + "src": "1925:7:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1934:1:29", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1921:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "1921:15:29" + }, + "variableNames": [ + { + "name": "dataPtr", + "nodeType": "YulIdentifier", + "src": "1910:7:29" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1953:27:29", + "value": { + "arguments": [ + { + "name": "dataPtr", + "nodeType": "YulIdentifier", + "src": "1972:7:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1966:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "1966:14:29" + }, + "variables": [ + { + "name": "input", + "nodeType": "YulTypedName", + "src": "1957:5:29", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2564:9:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nodeType": "YulIdentifier", + "src": "2585:8:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2603:2:29", + "type": "", + "value": "18" + }, + { + "name": "input", + "nodeType": "YulIdentifier", + "src": "2607:5:29" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "2599:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2599:14:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:4:29", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2595:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2595:25:29" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2581:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2581:40:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2575:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "2575:47:29" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "2556:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "2556:67:29" + }, + "nodeType": "YulExpressionStatement", + "src": "2556:67:29" + }, + { + "nodeType": "YulAssignment", + "src": "2640:30:29", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2657:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2668:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2653:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2653:17:29" + }, + "variableNames": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2640:9:29" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2707:9:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nodeType": "YulIdentifier", + "src": "2728:8:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2746:2:29", + "type": "", + "value": "12" + }, + { + "name": "input", + "nodeType": "YulIdentifier", + "src": "2750:5:29" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "2742:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2742:14:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2758:4:29", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2738:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2738:25:29" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2724:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2724:40:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2718:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "2718:47:29" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "2699:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "2699:67:29" + }, + "nodeType": "YulExpressionStatement", + "src": "2699:67:29" + }, + { + "nodeType": "YulAssignment", + "src": "2783:30:29", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2800:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2811:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2796:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2796:17:29" + }, + "variableNames": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2783:9:29" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2850:9:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nodeType": "YulIdentifier", + "src": "2871:8:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2889:1:29", + "type": "", + "value": "6" + }, + { + "name": "input", + "nodeType": "YulIdentifier", + "src": "2892:5:29" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "2885:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2885:13:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2900:4:29", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2881:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2881:24:29" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2867:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2867:39:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2861:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "2861:46:29" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "2842:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "2842:66:29" + }, + "nodeType": "YulExpressionStatement", + "src": "2842:66:29" + }, + { + "nodeType": "YulAssignment", + "src": "2925:30:29", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2942:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2953:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2938:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "2938:17:29" + }, + "variableNames": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2925:9:29" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "2992:9:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nodeType": "YulIdentifier", + "src": "3013:8:29" + }, + { + "arguments": [ + { + "name": "input", + "nodeType": "YulIdentifier", + "src": "3027:5:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3034:4:29", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3023:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3023:16:29" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3009:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3009:31:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3003:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "3003:38:29" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "2984:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "2984:58:29" + }, + "nodeType": "YulExpressionStatement", + "src": "2984:58:29" + }, + { + "nodeType": "YulAssignment", + "src": "3059:30:29", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "3076:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3087:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3072:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3072:17:29" + }, + "variableNames": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "3059:9:29" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "dataPtr", + "nodeType": "YulIdentifier", + "src": "1823:7:29" + }, + { + "name": "endPtr", + "nodeType": "YulIdentifier", + "src": "1832:6:29" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1820:2:29" + }, + "nodeType": "YulFunctionCall", + "src": "1820:19:29" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1840:16:29", + "statements": [] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1715:104:29", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1733:19:29", + "value": { + "name": "data", + "nodeType": "YulIdentifier", + "src": "1748:4:29" + }, + "variables": [ + { + "name": "dataPtr", + "nodeType": "YulTypedName", + "src": "1737:7:29", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1769:36:29", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "1787:4:29" + }, + { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "1799:4:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1793:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "1793:11:29" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1783:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "1783:22:29" + }, + "variables": [ + { + "name": "endPtr", + "nodeType": "YulTypedName", + "src": "1773:6:29", + "type": "" + } + ] + } + ] + }, + "src": "1711:1403:29" + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3294:113:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "3324:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3335:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3320:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3320:17:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3339:4:29", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "3312:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "3312:32:29" + }, + "nodeType": "YulExpressionStatement", + "src": "3312:32:29" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "3373:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3384:1:29", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3369:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3369:17:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3388:4:29", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "3361:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "3361:32:29" + }, + "nodeType": "YulExpressionStatement", + "src": "3361:32:29" + } + ] + }, + "nodeType": "YulCase", + "src": "3287:120:29", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3292:1:29", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3427:64:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nodeType": "YulIdentifier", + "src": "3457:9:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3468:1:29", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3453:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3453:17:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3472:4:29", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "3445:7:29" + }, + "nodeType": "YulFunctionCall", + "src": "3445:32:29" + }, + "nodeType": "YulExpressionStatement", + "src": "3445:32:29" + } + ] + }, + "nodeType": "YulCase", + "src": "3420:71:29", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3425:1:29", + "type": "", + "value": "2" + } + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3265:4:29" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3259:5:29" + }, + "nodeType": "YulFunctionCall", + "src": "3259:11:29" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3272:1:29", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "mod", + "nodeType": "YulIdentifier", + "src": "3255:3:29" + }, + "nodeType": "YulFunctionCall", + "src": "3255:19:29" + }, + "nodeType": "YulSwitch", + "src": "3248:243:29" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 6411, + "isOffset": false, + "isSlot": false, + "src": "1748:4:29", + "valueSize": 1 + }, + { + "declaration": 6411, + "isOffset": false, + "isSlot": false, + "src": "1787:4:29", + "valueSize": 1 + }, + { + "declaration": 6411, + "isOffset": false, + "isSlot": false, + "src": "1799:4:29", + "valueSize": 1 + }, + { + "declaration": 6411, + "isOffset": false, + "isSlot": false, + "src": "3265:4:29", + "valueSize": 1 + }, + { + "declaration": 6428, + "isOffset": false, + "isSlot": false, + "src": "1633:6:29", + "valueSize": 1 + }, + { + "declaration": 6424, + "isOffset": false, + "isSlot": false, + "src": "1533:5:29", + "valueSize": 1 + } + ], + "id": 6443, + "nodeType": "InlineAssembly", + "src": "1419:2082:29" + }, + { + "expression": { + "id": 6444, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6428, + "src": "3518:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 6415, + "id": 6445, + "nodeType": "Return", + "src": "3511:13:29" + } + ] + }, + "documentation": { + "id": 6409, + "nodeType": "StructuredDocumentation", + "src": "418:82:29", + "text": " @dev Converts a `bytes` to its Bytes64 `string` representation." + }, + "id": 6447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nameLocation": "514:6:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6412, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "data", + "nameLocation": "534:4:29", + "nodeType": "VariableDeclaration", + "scope": 6447, + "src": "521:17:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6410, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "521:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "520:19:29" + }, + "returnParameters": { + "id": 6415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6414, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6447, + "src": "563:13:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6413, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "563:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "562:15:29" + }, + "scope": 6448, + "src": "505:3026:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6449, + "src": "231:3302:29", + "usedErrors": [] + } + ], + "src": "100:3434:29" + }, + "compiler": { + "name": "solc", + "version": "0.8.10+commit.fc410830.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.4", + "updatedAt": "2023-11-28T07:46:31.001Z", + "devdoc": { + "details": "Provides a set of functions to operate with Base64 strings. _Available since v4.5._", + "kind": "dev", + "methods": {}, + "stateVariables": { + "_TABLE": { + "details": "Base64 Encoding/Decoding Table" + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/Counters.json b/build/contracts/Counters.json new file mode 100644 index 0000000..3b0778b --- /dev/null +++ b/build/contracts/Counters.json @@ -0,0 +1,1688 @@ +{ + "contractName": "Counters", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}", + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c37a22096dfabcd60bf04148ba116a5b8e68a87d89f97e1d8f0e19469871ce064736f6c634300080a0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c37a22096dfabcd60bf04148ba116a5b8e68a87d89f97e1d8f0e19469871ce064736f6c634300080a0033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "424:971:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "424:971:31:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n */\nlibrary Counters {\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n unchecked {\n counter._value += 1;\n }\n }\n\n function decrement(Counter storage counter) internal {\n uint256 value = counter._value;\n require(value > 0, \"Counter: decrement overflow\");\n unchecked {\n counter._value = value - 1;\n }\n }\n\n function reset(Counter storage counter) internal {\n counter._value = 0;\n }\n}\n", + "sourcePath": "@openzeppelin/contracts/utils/Counters.sol", + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Counters.sol", + "exportedSymbols": { + "Counters": [ + 6544 + ] + }, + "id": 6545, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6472, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "87:23:31" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Counters", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6473, + "nodeType": "StructuredDocumentation", + "src": "112:311:31", + "text": " @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`" + }, + "fullyImplemented": true, + "id": 6544, + "linearizedBaseContracts": [ + 6544 + ], + "name": "Counters", + "nameLocation": "432:8:31", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Counters.Counter", + "id": 6476, + "members": [ + { + "constant": false, + "id": 6475, + "mutability": "mutable", + "name": "_value", + "nameLocation": "794:6:31", + "nodeType": "VariableDeclaration", + "scope": 6476, + "src": "786:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "786:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Counter", + "nameLocation": "454:7:31", + "nodeType": "StructDefinition", + "scope": 6544, + "src": "447:374:31", + "visibility": "public" + }, + { + "body": { + "id": 6487, + "nodeType": "Block", + "src": "901:38:31", + "statements": [ + { + "expression": { + "expression": { + "id": 6484, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6479, + "src": "918:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 6485, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6475, + "src": "918:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6483, + "id": 6486, + "nodeType": "Return", + "src": "911:21:31" + } + ] + }, + "id": 6488, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "current", + "nameLocation": "836:7:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6480, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6479, + "mutability": "mutable", + "name": "counter", + "nameLocation": "860:7:31", + "nodeType": "VariableDeclaration", + "scope": 6488, + "src": "844:23:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 6478, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6477, + "name": "Counter", + "nodeType": "IdentifierPath", + "referencedDeclaration": 6476, + "src": "844:7:31" + }, + "referencedDeclaration": 6476, + "src": "844:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "843:25:31" + }, + "returnParameters": { + "id": 6483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6482, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6488, + "src": "892:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "892:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "891:9:31" + }, + "scope": 6544, + "src": "827:112:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6501, + "nodeType": "Block", + "src": "998:70:31", + "statements": [ + { + "id": 6500, + "nodeType": "UncheckedBlock", + "src": "1008:54:31", + "statements": [ + { + "expression": { + "id": 6498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6494, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "1032:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 6496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6475, + "src": "1032:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 6497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1050:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1032:19:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6499, + "nodeType": "ExpressionStatement", + "src": "1032:19:31" + } + ] + } + ] + }, + "id": 6502, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increment", + "nameLocation": "954:9:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "counter", + "nameLocation": "980:7:31", + "nodeType": "VariableDeclaration", + "scope": 6502, + "src": "964:23:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 6490, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6489, + "name": "Counter", + "nodeType": "IdentifierPath", + "referencedDeclaration": 6476, + "src": "964:7:31" + }, + "referencedDeclaration": 6476, + "src": "964:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "963:25:31" + }, + "returnParameters": { + "id": 6493, + "nodeType": "ParameterList", + "parameters": [], + "src": "998:0:31" + }, + "scope": 6544, + "src": "945:123:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6529, + "nodeType": "Block", + "src": "1127:176:31", + "statements": [ + { + "assignments": [ + 6509 + ], + "declarations": [ + { + "constant": false, + "id": 6509, + "mutability": "mutable", + "name": "value", + "nameLocation": "1145:5:31", + "nodeType": "VariableDeclaration", + "scope": 6529, + "src": "1137:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1137:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6512, + "initialValue": { + "expression": { + "id": 6510, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6505, + "src": "1153:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 6511, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6475, + "src": "1153:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1137:30:31" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6514, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6509, + "src": "1185:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 6515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1193:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1185:9:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436f756e7465723a2064656372656d656e74206f766572666c6f77", + "id": 6517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1196:29:31", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f", + "typeString": "literal_string \"Counter: decrement overflow\"" + }, + "value": "Counter: decrement overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f", + "typeString": "literal_string \"Counter: decrement overflow\"" + } + ], + "id": 6513, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1177:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1177:49:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6519, + "nodeType": "ExpressionStatement", + "src": "1177:49:31" + }, + { + "id": 6528, + "nodeType": "UncheckedBlock", + "src": "1236:61:31", + "statements": [ + { + "expression": { + "id": 6526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6520, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6505, + "src": "1260:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 6522, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6475, + "src": "1260:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6523, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6509, + "src": "1277:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1285:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1277:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1260:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6527, + "nodeType": "ExpressionStatement", + "src": "1260:26:31" + } + ] + } + ] + }, + "id": 6530, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decrement", + "nameLocation": "1083:9:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6506, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6505, + "mutability": "mutable", + "name": "counter", + "nameLocation": "1109:7:31", + "nodeType": "VariableDeclaration", + "scope": 6530, + "src": "1093:23:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 6504, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6503, + "name": "Counter", + "nodeType": "IdentifierPath", + "referencedDeclaration": 6476, + "src": "1093:7:31" + }, + "referencedDeclaration": 6476, + "src": "1093:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1092:25:31" + }, + "returnParameters": { + "id": 6507, + "nodeType": "ParameterList", + "parameters": [], + "src": "1127:0:31" + }, + "scope": 6544, + "src": "1074:229:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6542, + "nodeType": "Block", + "src": "1358:35:31", + "statements": [ + { + "expression": { + "id": 6540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6536, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6533, + "src": "1368:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 6538, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6475, + "src": "1368:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1385:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1368:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "nodeType": "ExpressionStatement", + "src": "1368:18:31" + } + ] + }, + "id": 6543, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "reset", + "nameLocation": "1318:5:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6533, + "mutability": "mutable", + "name": "counter", + "nameLocation": "1340:7:31", + "nodeType": "VariableDeclaration", + "scope": 6543, + "src": "1324:23:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 6532, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6531, + "name": "Counter", + "nodeType": "IdentifierPath", + "referencedDeclaration": 6476, + "src": "1324:7:31" + }, + "referencedDeclaration": 6476, + "src": "1324:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1323:25:31" + }, + "returnParameters": { + "id": 6535, + "nodeType": "ParameterList", + "parameters": [], + "src": "1358:0:31" + }, + "scope": 6544, + "src": "1309:84:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6545, + "src": "424:971:31", + "usedErrors": [] + } + ], + "src": "87:1309:31" + }, + "legacyAST": { + "absolutePath": "@openzeppelin/contracts/utils/Counters.sol", + "exportedSymbols": { + "Counters": [ + 6544 + ] + }, + "id": 6545, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6472, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "87:23:31" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Counters", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6473, + "nodeType": "StructuredDocumentation", + "src": "112:311:31", + "text": " @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`" + }, + "fullyImplemented": true, + "id": 6544, + "linearizedBaseContracts": [ + 6544 + ], + "name": "Counters", + "nameLocation": "432:8:31", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Counters.Counter", + "id": 6476, + "members": [ + { + "constant": false, + "id": 6475, + "mutability": "mutable", + "name": "_value", + "nameLocation": "794:6:31", + "nodeType": "VariableDeclaration", + "scope": 6476, + "src": "786:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "786:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Counter", + "nameLocation": "454:7:31", + "nodeType": "StructDefinition", + "scope": 6544, + "src": "447:374:31", + "visibility": "public" + }, + { + "body": { + "id": 6487, + "nodeType": "Block", + "src": "901:38:31", + "statements": [ + { + "expression": { + "expression": { + "id": 6484, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6479, + "src": "918:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 6485, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6475, + "src": "918:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6483, + "id": 6486, + "nodeType": "Return", + "src": "911:21:31" + } + ] + }, + "id": 6488, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "current", + "nameLocation": "836:7:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6480, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6479, + "mutability": "mutable", + "name": "counter", + "nameLocation": "860:7:31", + "nodeType": "VariableDeclaration", + "scope": 6488, + "src": "844:23:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 6478, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6477, + "name": "Counter", + "nodeType": "IdentifierPath", + "referencedDeclaration": 6476, + "src": "844:7:31" + }, + "referencedDeclaration": 6476, + "src": "844:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "843:25:31" + }, + "returnParameters": { + "id": 6483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6482, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6488, + "src": "892:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "892:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "891:9:31" + }, + "scope": 6544, + "src": "827:112:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6501, + "nodeType": "Block", + "src": "998:70:31", + "statements": [ + { + "id": 6500, + "nodeType": "UncheckedBlock", + "src": "1008:54:31", + "statements": [ + { + "expression": { + "id": 6498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6494, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "1032:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 6496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6475, + "src": "1032:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 6497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1050:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1032:19:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6499, + "nodeType": "ExpressionStatement", + "src": "1032:19:31" + } + ] + } + ] + }, + "id": 6502, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increment", + "nameLocation": "954:9:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "counter", + "nameLocation": "980:7:31", + "nodeType": "VariableDeclaration", + "scope": 6502, + "src": "964:23:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 6490, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6489, + "name": "Counter", + "nodeType": "IdentifierPath", + "referencedDeclaration": 6476, + "src": "964:7:31" + }, + "referencedDeclaration": 6476, + "src": "964:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "963:25:31" + }, + "returnParameters": { + "id": 6493, + "nodeType": "ParameterList", + "parameters": [], + "src": "998:0:31" + }, + "scope": 6544, + "src": "945:123:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6529, + "nodeType": "Block", + "src": "1127:176:31", + "statements": [ + { + "assignments": [ + 6509 + ], + "declarations": [ + { + "constant": false, + "id": 6509, + "mutability": "mutable", + "name": "value", + "nameLocation": "1145:5:31", + "nodeType": "VariableDeclaration", + "scope": 6529, + "src": "1137:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1137:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6512, + "initialValue": { + "expression": { + "id": 6510, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6505, + "src": "1153:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 6511, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6475, + "src": "1153:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1137:30:31" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6514, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6509, + "src": "1185:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 6515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1193:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1185:9:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436f756e7465723a2064656372656d656e74206f766572666c6f77", + "id": 6517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1196:29:31", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f", + "typeString": "literal_string \"Counter: decrement overflow\"" + }, + "value": "Counter: decrement overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f", + "typeString": "literal_string \"Counter: decrement overflow\"" + } + ], + "id": 6513, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1177:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1177:49:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6519, + "nodeType": "ExpressionStatement", + "src": "1177:49:31" + }, + { + "id": 6528, + "nodeType": "UncheckedBlock", + "src": "1236:61:31", + "statements": [ + { + "expression": { + "id": 6526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6520, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6505, + "src": "1260:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 6522, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6475, + "src": "1260:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6523, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6509, + "src": "1277:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1285:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1277:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1260:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6527, + "nodeType": "ExpressionStatement", + "src": "1260:26:31" + } + ] + } + ] + }, + "id": 6530, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decrement", + "nameLocation": "1083:9:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6506, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6505, + "mutability": "mutable", + "name": "counter", + "nameLocation": "1109:7:31", + "nodeType": "VariableDeclaration", + "scope": 6530, + "src": "1093:23:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 6504, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6503, + "name": "Counter", + "nodeType": "IdentifierPath", + "referencedDeclaration": 6476, + "src": "1093:7:31" + }, + "referencedDeclaration": 6476, + "src": "1093:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1092:25:31" + }, + "returnParameters": { + "id": 6507, + "nodeType": "ParameterList", + "parameters": [], + "src": "1127:0:31" + }, + "scope": 6544, + "src": "1074:229:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6542, + "nodeType": "Block", + "src": "1358:35:31", + "statements": [ + { + "expression": { + "id": 6540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6536, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6533, + "src": "1368:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 6538, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6475, + "src": "1368:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1385:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1368:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "nodeType": "ExpressionStatement", + "src": "1368:18:31" + } + ] + }, + "id": 6543, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "reset", + "nameLocation": "1318:5:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6533, + "mutability": "mutable", + "name": "counter", + "nameLocation": "1340:7:31", + "nodeType": "VariableDeclaration", + "scope": 6543, + "src": "1324:23:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 6532, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6531, + "name": "Counter", + "nodeType": "IdentifierPath", + "referencedDeclaration": 6476, + "src": "1324:7:31" + }, + "referencedDeclaration": 6476, + "src": "1324:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$6476_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1323:25:31" + }, + "returnParameters": { + "id": 6535, + "nodeType": "ParameterList", + "parameters": [], + "src": "1358:0:31" + }, + "scope": 6544, + "src": "1309:84:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6545, + "src": "424:971:31", + "usedErrors": [] + } + ], + "src": "87:1309:31" + }, + "compiler": { + "name": "solc", + "version": "0.8.10+commit.fc410830.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.4", + "updatedAt": "2023-11-28T07:46:31.005Z", + "devdoc": { + "author": "Matt Condon (@shrugs)", + "details": "Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`", + "kind": "dev", + "methods": {}, + "title": "Counters", + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/ERC721Holder.json b/build/contracts/ERC721Holder.json new file mode 100644 index 0000000..15e3be6 --- /dev/null +++ b/build/contracts/ERC721Holder.json @@ -0,0 +1,3247 @@ +{ + "contractName": "ERC721Holder", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC721Receiver} interface. Accepts all token transfers. Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\":\"ERC721Holder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610371806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063150b7a0214610030575b600080fd5b61004a60048036038101906100459190610262565b610060565b6040516100579190610320565b60405180910390f35b600063150b7a0260e01b9050949350505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b382610088565b9050919050565b6100c3816100a8565b81146100ce57600080fd5b50565b6000813590506100e0816100ba565b92915050565b6000819050919050565b6100f9816100e6565b811461010457600080fd5b50565b600081359050610116816100f0565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61016f82610126565b810181811067ffffffffffffffff8211171561018e5761018d610137565b5b80604052505050565b60006101a1610074565b90506101ad8282610166565b919050565b600067ffffffffffffffff8211156101cd576101cc610137565b5b6101d682610126565b9050602081019050919050565b82818337600083830152505050565b6000610205610200846101b2565b610197565b90508281526020810184848401111561022157610220610121565b5b61022c8482856101e3565b509392505050565b600082601f8301126102495761024861011c565b5b81356102598482602086016101f2565b91505092915050565b6000806000806080858703121561027c5761027b61007e565b5b600061028a878288016100d1565b945050602061029b878288016100d1565b93505060406102ac87828801610107565b925050606085013567ffffffffffffffff8111156102cd576102cc610083565b5b6102d987828801610234565b91505092959194509250565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61031a816102e5565b82525050565b60006020820190506103356000830184610311565b9291505056fea264697066735822122034fab18a93299f9aefe11f427fb7b93634b0a797ce5be45c6af1ed83fbbfc03f64736f6c634300080a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063150b7a0214610030575b600080fd5b61004a60048036038101906100459190610262565b610060565b6040516100579190610320565b60405180910390f35b600063150b7a0260e01b9050949350505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b382610088565b9050919050565b6100c3816100a8565b81146100ce57600080fd5b50565b6000813590506100e0816100ba565b92915050565b6000819050919050565b6100f9816100e6565b811461010457600080fd5b50565b600081359050610116816100f0565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61016f82610126565b810181811067ffffffffffffffff8211171561018e5761018d610137565b5b80604052505050565b60006101a1610074565b90506101ad8282610166565b919050565b600067ffffffffffffffff8211156101cd576101cc610137565b5b6101d682610126565b9050602081019050919050565b82818337600083830152505050565b6000610205610200846101b2565b610197565b90508281526020810184848401111561022157610220610121565b5b61022c8482856101e3565b509392505050565b600082601f8301126102495761024861011c565b5b81356102598482602086016101f2565b91505092915050565b6000806000806080858703121561027c5761027b61007e565b5b600061028a878288016100d1565b945050602061029b878288016100d1565b93505060406102ac87828801610107565b925050606085013567ffffffffffffffff8111156102cd576102cc610083565b5b6102d987828801610234565b91505092959194509250565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61031a816102e5565b82525050565b60006020820190506103356000830184610311565b9291505056fea264697066735822122034fab18a93299f9aefe11f427fb7b93634b0a797ce5be45c6af1ed83fbbfc03f64736f6c634300080a0033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:4851:82", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:82", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:82", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:82" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:82" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:82" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:82", + "type": "" + } + ], + "src": "7:75:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:82", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:82", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:82", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:82" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:82" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:82", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:82", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:82", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:82" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:82" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:82", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:82", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:82" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:82" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:82", + "type": "" + } + ], + "src": "334:126:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:82", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:82" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:82" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:82" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:82" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:82", + "type": "" + } + ], + "src": "466:96:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:82", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:82", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:82", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:82", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:82" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:82" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:82" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:82" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:82" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:82" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:82" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:82" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:82" + }, + "nodeType": "YulIf", + "src": "621:63:82" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:82", + "type": "" + } + ], + "src": "568:122:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:82", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:82" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:82" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:82" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:82" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:82" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:82" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:82" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:82" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:82", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:82", + "type": "" + } + ], + "src": "696:139:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "886:32:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "896:16:82", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "907:5:82" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "896:7:82" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "868:5:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "878:7:82", + "type": "" + } + ], + "src": "841:77:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "967:79:82", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1024:16:82", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1033:1:82", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:1:82", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1026:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "1026:12:82" + }, + "nodeType": "YulExpressionStatement", + "src": "1026:12:82" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "990:5:82" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1015:5:82" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "997:17:82" + }, + "nodeType": "YulFunctionCall", + "src": "997:24:82" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "987:2:82" + }, + "nodeType": "YulFunctionCall", + "src": "987:35:82" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "980:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "980:43:82" + }, + "nodeType": "YulIf", + "src": "977:63:82" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "960:5:82", + "type": "" + } + ], + "src": "924:122:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:87:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1114:29:82", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:82" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1123:12:82" + }, + "nodeType": "YulFunctionCall", + "src": "1123:20:82" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1114:5:82" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1179:5:82" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1152:26:82" + }, + "nodeType": "YulFunctionCall", + "src": "1152:33:82" + }, + "nodeType": "YulExpressionStatement", + "src": "1152:33:82" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1082:6:82", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1090:3:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1098:5:82", + "type": "" + } + ], + "src": "1052:139:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1286:28:82", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1303:1:82", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1306:1:82", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1296:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "1296:12:82" + }, + "nodeType": "YulExpressionStatement", + "src": "1296:12:82" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "1197:117:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1409:28:82", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1426:1:82", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1429:1:82", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1419:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "1419:12:82" + }, + "nodeType": "YulExpressionStatement", + "src": "1419:12:82" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "1320:117:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1491:54:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1501:38:82", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1519:5:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1526:2:82", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1515:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "1515:14:82" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1535:2:82", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1531:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "1531:7:82" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1511:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "1511:28:82" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1501:6:82" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1474:5:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1484:6:82", + "type": "" + } + ], + "src": "1443:102:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1579:152:82", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1596:1:82", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1599:77:82", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1589:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "1589:88:82" + }, + "nodeType": "YulExpressionStatement", + "src": "1589:88:82" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1693:1:82", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1696:4:82", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1686:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "1686:15:82" + }, + "nodeType": "YulExpressionStatement", + "src": "1686:15:82" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1717:1:82", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1720:4:82", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1710:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "1710:15:82" + }, + "nodeType": "YulExpressionStatement", + "src": "1710:15:82" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "1551:180:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1780:238:82", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1790:58:82", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1812:6:82" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1842:4:82" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1820:21:82" + }, + "nodeType": "YulFunctionCall", + "src": "1820:27:82" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1808:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "1808:40:82" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "1794:10:82", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1959:22:82", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1961:16:82" + }, + "nodeType": "YulFunctionCall", + "src": "1961:18:82" + }, + "nodeType": "YulExpressionStatement", + "src": "1961:18:82" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1902:10:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1914:18:82", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1899:2:82" + }, + "nodeType": "YulFunctionCall", + "src": "1899:34:82" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1938:10:82" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1950:6:82" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1935:2:82" + }, + "nodeType": "YulFunctionCall", + "src": "1935:22:82" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1896:2:82" + }, + "nodeType": "YulFunctionCall", + "src": "1896:62:82" + }, + "nodeType": "YulIf", + "src": "1893:88:82" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1997:2:82", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "2001:10:82" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1990:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "1990:22:82" + }, + "nodeType": "YulExpressionStatement", + "src": "1990:22:82" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1766:6:82", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1774:4:82", + "type": "" + } + ], + "src": "1737:281:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2065:88:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2075:30:82", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "2085:18:82" + }, + "nodeType": "YulFunctionCall", + "src": "2085:20:82" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2075:6:82" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2134:6:82" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2142:4:82" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "2114:19:82" + }, + "nodeType": "YulFunctionCall", + "src": "2114:33:82" + }, + "nodeType": "YulExpressionStatement", + "src": "2114:33:82" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "2049:4:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "2058:6:82", + "type": "" + } + ], + "src": "2024:129:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2225:241:82", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2330:22:82", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "2332:16:82" + }, + "nodeType": "YulFunctionCall", + "src": "2332:18:82" + }, + "nodeType": "YulExpressionStatement", + "src": "2332:18:82" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2302:6:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2310:18:82", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2299:2:82" + }, + "nodeType": "YulFunctionCall", + "src": "2299:30:82" + }, + "nodeType": "YulIf", + "src": "2296:56:82" + }, + { + "nodeType": "YulAssignment", + "src": "2362:37:82", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2392:6:82" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2370:21:82" + }, + "nodeType": "YulFunctionCall", + "src": "2370:29:82" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2362:4:82" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2436:23:82", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2448:4:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2454:4:82", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2444:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "2444:15:82" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2436:4:82" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2209:6:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "2220:4:82", + "type": "" + } + ], + "src": "2159:307:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2523:103:82", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2546:3:82" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2551:3:82" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2556:6:82" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "2533:12:82" + }, + "nodeType": "YulFunctionCall", + "src": "2533:30:82" + }, + "nodeType": "YulExpressionStatement", + "src": "2533:30:82" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2604:3:82" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2609:6:82" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2600:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "2600:16:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:82", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2593:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "2593:27:82" + }, + "nodeType": "YulExpressionStatement", + "src": "2593:27:82" + } + ] + }, + "name": "copy_calldata_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2505:3:82", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2510:3:82", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2515:6:82", + "type": "" + } + ], + "src": "2472:154:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2715:327:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2725:74:82", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2791:6:82" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2750:40:82" + }, + "nodeType": "YulFunctionCall", + "src": "2750:48:82" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "2734:15:82" + }, + "nodeType": "YulFunctionCall", + "src": "2734:65:82" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2725:5:82" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2815:5:82" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2822:6:82" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2808:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "2808:21:82" + }, + "nodeType": "YulExpressionStatement", + "src": "2808:21:82" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2838:27:82", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2853:5:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2860:4:82", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2849:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "2849:16:82" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2842:3:82", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2903:83:82", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2905:77:82" + }, + "nodeType": "YulFunctionCall", + "src": "2905:79:82" + }, + "nodeType": "YulExpressionStatement", + "src": "2905:79:82" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2884:3:82" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2889:6:82" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2880:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "2880:16:82" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2898:3:82" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2877:2:82" + }, + "nodeType": "YulFunctionCall", + "src": "2877:25:82" + }, + "nodeType": "YulIf", + "src": "2874:112:82" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3019:3:82" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "3024:3:82" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3029:6:82" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "2995:23:82" + }, + "nodeType": "YulFunctionCall", + "src": "2995:41:82" + }, + "nodeType": "YulExpressionStatement", + "src": "2995:41:82" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2688:3:82", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2693:6:82", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2701:3:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2709:5:82", + "type": "" + } + ], + "src": "2632:410:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3122:277:82", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3171:83:82", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3173:77:82" + }, + "nodeType": "YulFunctionCall", + "src": "3173:79:82" + }, + "nodeType": "YulExpressionStatement", + "src": "3173:79:82" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3150:6:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3158:4:82", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3146:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "3146:17:82" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3165:3:82" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3142:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "3142:27:82" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3135:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "3135:35:82" + }, + "nodeType": "YulIf", + "src": "3132:122:82" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3263:34:82", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3290:6:82" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3277:12:82" + }, + "nodeType": "YulFunctionCall", + "src": "3277:20:82" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3267:6:82", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3306:87:82", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3366:6:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3374:4:82", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3362:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "3362:17:82" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3381:6:82" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3389:3:82" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3315:46:82" + }, + "nodeType": "YulFunctionCall", + "src": "3315:78:82" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3306:5:82" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3100:6:82", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3108:3:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "3116:5:82", + "type": "" + } + ], + "src": "3061:338:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3531:817:82", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3578:83:82", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3580:77:82" + }, + "nodeType": "YulFunctionCall", + "src": "3580:79:82" + }, + "nodeType": "YulExpressionStatement", + "src": "3580:79:82" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3552:7:82" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3561:9:82" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3548:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "3548:23:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3573:3:82", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3544:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "3544:33:82" + }, + "nodeType": "YulIf", + "src": "3541:120:82" + }, + { + "nodeType": "YulBlock", + "src": "3671:117:82", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3686:15:82", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3700:1:82", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3690:6:82", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3715:63:82", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3750:9:82" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3761:6:82" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3746:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "3746:22:82" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3770:7:82" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3725:20:82" + }, + "nodeType": "YulFunctionCall", + "src": "3725:53:82" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3715:6:82" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3798:118:82", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3813:16:82", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3827:2:82", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3817:6:82", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3843:63:82", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3878:9:82" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3889:6:82" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3874:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "3874:22:82" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3898:7:82" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3853:20:82" + }, + "nodeType": "YulFunctionCall", + "src": "3853:53:82" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3843:6:82" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3926:118:82", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3941:16:82", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3955:2:82", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3945:6:82", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3971:63:82", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4006:9:82" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4017:6:82" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4002:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "4002:22:82" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4026:7:82" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3981:20:82" + }, + "nodeType": "YulFunctionCall", + "src": "3981:53:82" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3971:6:82" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4054:287:82", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4069:46:82", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4100:9:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4111:2:82", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4096:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "4096:18:82" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4083:12:82" + }, + "nodeType": "YulFunctionCall", + "src": "4083:32:82" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4073:6:82", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4162:83:82", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4164:77:82" + }, + "nodeType": "YulFunctionCall", + "src": "4164:79:82" + }, + "nodeType": "YulExpressionStatement", + "src": "4164:79:82" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4134:6:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4142:18:82", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4131:2:82" + }, + "nodeType": "YulFunctionCall", + "src": "4131:30:82" + }, + "nodeType": "YulIf", + "src": "4128:117:82" + }, + { + "nodeType": "YulAssignment", + "src": "4259:72:82", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4303:9:82" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4314:6:82" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4299:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "4299:22:82" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4323:7:82" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4269:29:82" + }, + "nodeType": "YulFunctionCall", + "src": "4269:62:82" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4259:6:82" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3477:9:82", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3488:7:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3500:6:82", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3508:6:82", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3516:6:82", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3524:6:82", + "type": "" + } + ], + "src": "3405:943:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4398:105:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4408:89:82", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4423:5:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4430:66:82", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4419:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "4419:78:82" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4408:7:82" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4380:5:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4390:7:82", + "type": "" + } + ], + "src": "4354:149:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4572:52:82", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4589:3:82" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4611:5:82" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "4594:16:82" + }, + "nodeType": "YulFunctionCall", + "src": "4594:23:82" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4582:6:82" + }, + "nodeType": "YulFunctionCall", + "src": "4582:36:82" + }, + "nodeType": "YulExpressionStatement", + "src": "4582:36:82" + } + ] + }, + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4560:5:82", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4567:3:82", + "type": "" + } + ], + "src": "4509:115:82" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4726:122:82", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4736:26:82", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4748:9:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4759:2:82", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4744:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "4744:18:82" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4736:4:82" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4814:6:82" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4827:9:82" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4838:1:82", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4823:3:82" + }, + "nodeType": "YulFunctionCall", + "src": "4823:17:82" + } + ], + "functionName": { + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nodeType": "YulIdentifier", + "src": "4772:41:82" + }, + "nodeType": "YulFunctionCall", + "src": "4772:69:82" + }, + "nodeType": "YulExpressionStatement", + "src": "4772:69:82" + } + ] + }, + "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4698:9:82", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4710:6:82", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4721:4:82", + "type": "" + } + ], + "src": "4630:218:82" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 82, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "414:353:27:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "414:353:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;603:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;703:6;728:30;;;721:37;;603:162;;;;;;:::o;7:75:82:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:102;1484:6;1535:2;1531:7;1526:2;1519:5;1515:14;1511:28;1501:38;;1443:102;;;:::o;1551:180::-;1599:77;1596:1;1589:88;1696:4;1693:1;1686:15;1720:4;1717:1;1710:15;1737:281;1820:27;1842:4;1820:27;:::i;:::-;1812:6;1808:40;1950:6;1938:10;1935:22;1914:18;1902:10;1899:34;1896:62;1893:88;;;1961:18;;:::i;:::-;1893:88;2001:10;1997:2;1990:22;1780:238;1737:281;;:::o;2024:129::-;2058:6;2085:20;;:::i;:::-;2075:30;;2114:33;2142:4;2134:6;2114:33;:::i;:::-;2024:129;;;:::o;2159:307::-;2220:4;2310:18;2302:6;2299:30;2296:56;;;2332:18;;:::i;:::-;2296:56;2370:29;2392:6;2370:29;:::i;:::-;2362:37;;2454:4;2448;2444:15;2436:23;;2159:307;;;:::o;2472:154::-;2556:6;2551:3;2546;2533:30;2618:1;2609:6;2604:3;2600:16;2593:27;2472:154;;;:::o;2632:410::-;2709:5;2734:65;2750:48;2791:6;2750:48;:::i;:::-;2734:65;:::i;:::-;2725:74;;2822:6;2815:5;2808:21;2860:4;2853:5;2849:16;2898:3;2889:6;2884:3;2880:16;2877:25;2874:112;;;2905:79;;:::i;:::-;2874:112;2995:41;3029:6;3024:3;3019;2995:41;:::i;:::-;2715:327;2632:410;;;;;:::o;3061:338::-;3116:5;3165:3;3158:4;3150:6;3146:17;3142:27;3132:122;;3173:79;;:::i;:::-;3132:122;3290:6;3277:20;3315:78;3389:3;3381:6;3374:4;3366:6;3362:17;3315:78;:::i;:::-;3306:87;;3122:277;3061:338;;;;:::o;3405:943::-;3500:6;3508;3516;3524;3573:3;3561:9;3552:7;3548:23;3544:33;3541:120;;;3580:79;;:::i;:::-;3541:120;3700:1;3725:53;3770:7;3761:6;3750:9;3746:22;3725:53;:::i;:::-;3715:63;;3671:117;3827:2;3853:53;3898:7;3889:6;3878:9;3874:22;3853:53;:::i;:::-;3843:63;;3798:118;3955:2;3981:53;4026:7;4017:6;4006:9;4002:22;3981:53;:::i;:::-;3971:63;;3926:118;4111:2;4100:9;4096:18;4083:32;4142:18;4134:6;4131:30;4128:117;;;4164:79;;:::i;:::-;4128:117;4269:62;4323:7;4314:6;4303:9;4299:22;4269:62;:::i;:::-;4259:72;;4054:287;3405:943;;;;;;;:::o;4354:149::-;4390:7;4430:66;4423:5;4419:78;4408:89;;4354:149;;;:::o;4509:115::-;4594:23;4611:5;4594:23;:::i;:::-;4589:3;4582:36;4509:115;;:::o;4630:218::-;4721:4;4759:2;4748:9;4744:18;4736:26;;4772:69;4838:1;4827:9;4823:17;4814:6;4772:69;:::i;:::-;4630:218;;;;:::o", + "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/utils/ERC721Holder.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721Receiver.sol\";\n\n/**\n * @dev Implementation of the {IERC721Receiver} interface.\n *\n * Accepts all token transfers.\n * Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}.\n */\ncontract ERC721Holder is IERC721Receiver {\n /**\n * @dev See {IERC721Receiver-onERC721Received}.\n *\n * Always returns `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(address, address, uint256, bytes memory) public virtual override returns (bytes4) {\n return this.onERC721Received.selector;\n }\n}\n", + "sourcePath": "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol", + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol", + "exportedSymbols": { + "ERC721Holder": [ + 6071 + ], + "IERC721Receiver": [ + 5632 + ] + }, + "id": 6072, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6046, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "119:23:27" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "file": "../IERC721Receiver.sol", + "id": 6047, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6072, + "sourceUnit": 5633, + "src": "144:32:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 6049, + "name": "IERC721Receiver", + "nodeType": "IdentifierPath", + "referencedDeclaration": 5632, + "src": "439:15:27" + }, + "id": 6050, + "nodeType": "InheritanceSpecifier", + "src": "439:15:27" + } + ], + "canonicalName": "ERC721Holder", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 6048, + "nodeType": "StructuredDocumentation", + "src": "178:235:27", + "text": " @dev Implementation of the {IERC721Receiver} interface.\n Accepts all token transfers.\n Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}." + }, + "fullyImplemented": true, + "id": 6071, + "linearizedBaseContracts": [ + 6071, + 5632 + ], + "name": "ERC721Holder", + "nameLocation": "423:12:27", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 5631 + ], + "body": { + "id": 6069, + "nodeType": "Block", + "src": "711:54:27", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 6065, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "728:4:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Holder_$6071", + "typeString": "contract ERC721Holder" + } + }, + "id": 6066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 6070, + "src": "728:21:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "728:30:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "functionReturnParameters": 6064, + "id": 6068, + "nodeType": "Return", + "src": "721:37:27" + } + ] + }, + "documentation": { + "id": 6051, + "nodeType": "StructuredDocumentation", + "src": "461:137:27", + "text": " @dev See {IERC721Receiver-onERC721Received}.\n Always returns `IERC721Receiver.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 6070, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nameLocation": "612:16:27", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 6061, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "685:8:27" + }, + "parameters": { + "id": 6060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6053, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "629:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "629:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6055, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "638:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6054, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "638:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6057, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "647:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6056, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "647:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "656:12:27", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6058, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "656:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "628:41:27" + }, + "returnParameters": { + "id": 6064, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6063, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "703:6:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 6062, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "703:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "702:8:27" + }, + "scope": 6071, + "src": "603:162:27", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 6072, + "src": "414:353:27", + "usedErrors": [] + } + ], + "src": "119:649:27" + }, + "legacyAST": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol", + "exportedSymbols": { + "ERC721Holder": [ + 6071 + ], + "IERC721Receiver": [ + 5632 + ] + }, + "id": 6072, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6046, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "119:23:27" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "file": "../IERC721Receiver.sol", + "id": 6047, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6072, + "sourceUnit": 5633, + "src": "144:32:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 6049, + "name": "IERC721Receiver", + "nodeType": "IdentifierPath", + "referencedDeclaration": 5632, + "src": "439:15:27" + }, + "id": 6050, + "nodeType": "InheritanceSpecifier", + "src": "439:15:27" + } + ], + "canonicalName": "ERC721Holder", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 6048, + "nodeType": "StructuredDocumentation", + "src": "178:235:27", + "text": " @dev Implementation of the {IERC721Receiver} interface.\n Accepts all token transfers.\n Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}." + }, + "fullyImplemented": true, + "id": 6071, + "linearizedBaseContracts": [ + 6071, + 5632 + ], + "name": "ERC721Holder", + "nameLocation": "423:12:27", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 5631 + ], + "body": { + "id": 6069, + "nodeType": "Block", + "src": "711:54:27", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 6065, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "728:4:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Holder_$6071", + "typeString": "contract ERC721Holder" + } + }, + "id": 6066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 6070, + "src": "728:21:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "728:30:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "functionReturnParameters": 6064, + "id": 6068, + "nodeType": "Return", + "src": "721:37:27" + } + ] + }, + "documentation": { + "id": 6051, + "nodeType": "StructuredDocumentation", + "src": "461:137:27", + "text": " @dev See {IERC721Receiver-onERC721Received}.\n Always returns `IERC721Receiver.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 6070, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nameLocation": "612:16:27", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 6061, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "685:8:27" + }, + "parameters": { + "id": 6060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6053, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "629:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "629:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6055, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "638:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6054, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "638:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6057, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "647:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6056, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "647:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "656:12:27", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6058, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "656:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "628:41:27" + }, + "returnParameters": { + "id": 6064, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6063, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "703:6:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 6062, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "703:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "702:8:27" + }, + "scope": 6071, + "src": "603:162:27", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 6072, + "src": "414:353:27", + "usedErrors": [] + } + ], + "src": "119:649:27" + }, + "compiler": { + "name": "solc", + "version": "0.8.10+commit.fc410830.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.4", + "updatedAt": "2023-11-28T07:46:30.995Z", + "devdoc": { + "details": "Implementation of the {IERC721Receiver} interface. Accepts all token transfers. Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}.", + "kind": "dev", + "methods": { + "onERC721Received(address,address,uint256,bytes)": { + "details": "See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/IAccessControlEnumerable.json b/build/contracts/IAccessControlEnumerable.json new file mode 100644 index 0000000..dff9158 --- /dev/null +++ b/build/contracts/IAccessControlEnumerable.json @@ -0,0 +1,842 @@ +{ + "contractName": "IAccessControlEnumerable", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControlEnumerable declared to support ERC165 detection.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":\"IAccessControlEnumerable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\n\n/**\n * @dev External interface of AccessControlEnumerable declared to support ERC165 detection.\n */\ninterface IAccessControlEnumerable is IAccessControl {\n /**\n * @dev Returns one of the accounts that have `role`. `index` must be a\n * value between 0 and {getRoleMemberCount}, non-inclusive.\n *\n * Role bearers are not sorted in any particular way, and their ordering may\n * change at any point.\n *\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n * you perform all queries on the same block. See the following\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n * for more information.\n */\n function getRoleMember(bytes32 role, uint256 index) external view returns (address);\n\n /**\n * @dev Returns the number of accounts that have `role`. Can be used\n * together with {getRoleMember} to enumerate all bearers of a role.\n */\n function getRoleMemberCount(bytes32 role) external view returns (uint256);\n}\n", + "sourcePath": "@openzeppelin/contracts/access/IAccessControlEnumerable.sol", + "ast": { + "absolutePath": "@openzeppelin/contracts/access/IAccessControlEnumerable.sol", + "exportedSymbols": { + "IAccessControl": [ + 513 + ], + "IAccessControlEnumerable": [ + 538 + ] + }, + "id": 539, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 515, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "104:23:3" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "file": "./IAccessControl.sol", + "id": 516, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 539, + "sourceUnit": 514, + "src": "129:30:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 518, + "name": "IAccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 513, + "src": "299:14:3" + }, + "id": 519, + "nodeType": "InheritanceSpecifier", + "src": "299:14:3" + } + ], + "canonicalName": "IAccessControlEnumerable", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 517, + "nodeType": "StructuredDocumentation", + "src": "161:99:3", + "text": " @dev External interface of AccessControlEnumerable declared to support ERC165 detection." + }, + "fullyImplemented": false, + "id": 538, + "linearizedBaseContracts": [ + 538, + 513 + ], + "name": "IAccessControlEnumerable", + "nameLocation": "271:24:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 520, + "nodeType": "StructuredDocumentation", + "src": "320:574:3", + "text": " @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information." + }, + "functionSelector": "9010d07c", + "id": 529, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRoleMember", + "nameLocation": "908:13:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 522, + "mutability": "mutable", + "name": "role", + "nameLocation": "930:4:3", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "922:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 521, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "922:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 524, + "mutability": "mutable", + "name": "index", + "nameLocation": "944:5:3", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "936:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "936:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "921:29:3" + }, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "974:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "974:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "973:9:3" + }, + "scope": 538, + "src": "899:84:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 530, + "nodeType": "StructuredDocumentation", + "src": "989:157:3", + "text": " @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role." + }, + "functionSelector": "ca15c873", + "id": 537, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRoleMemberCount", + "nameLocation": "1160:18:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 532, + "mutability": "mutable", + "name": "role", + "nameLocation": "1187:4:3", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "1179:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 531, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1179:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1178:14:3" + }, + "returnParameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "1216:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1216:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1215:9:3" + }, + "scope": 538, + "src": "1151:74:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 539, + "src": "261:966:3", + "usedErrors": [] + } + ], + "src": "104:1124:3" + }, + "legacyAST": { + "absolutePath": "@openzeppelin/contracts/access/IAccessControlEnumerable.sol", + "exportedSymbols": { + "IAccessControl": [ + 513 + ], + "IAccessControlEnumerable": [ + 538 + ] + }, + "id": 539, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 515, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "104:23:3" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "file": "./IAccessControl.sol", + "id": 516, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 539, + "sourceUnit": 514, + "src": "129:30:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 518, + "name": "IAccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 513, + "src": "299:14:3" + }, + "id": 519, + "nodeType": "InheritanceSpecifier", + "src": "299:14:3" + } + ], + "canonicalName": "IAccessControlEnumerable", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 517, + "nodeType": "StructuredDocumentation", + "src": "161:99:3", + "text": " @dev External interface of AccessControlEnumerable declared to support ERC165 detection." + }, + "fullyImplemented": false, + "id": 538, + "linearizedBaseContracts": [ + 538, + 513 + ], + "name": "IAccessControlEnumerable", + "nameLocation": "271:24:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 520, + "nodeType": "StructuredDocumentation", + "src": "320:574:3", + "text": " @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information." + }, + "functionSelector": "9010d07c", + "id": 529, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRoleMember", + "nameLocation": "908:13:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 522, + "mutability": "mutable", + "name": "role", + "nameLocation": "930:4:3", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "922:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 521, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "922:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 524, + "mutability": "mutable", + "name": "index", + "nameLocation": "944:5:3", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "936:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "936:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "921:29:3" + }, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "974:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "974:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "973:9:3" + }, + "scope": 538, + "src": "899:84:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 530, + "nodeType": "StructuredDocumentation", + "src": "989:157:3", + "text": " @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role." + }, + "functionSelector": "ca15c873", + "id": 537, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRoleMemberCount", + "nameLocation": "1160:18:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 532, + "mutability": "mutable", + "name": "role", + "nameLocation": "1187:4:3", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "1179:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 531, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1179:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1178:14:3" + }, + "returnParameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "1216:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1216:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1215:9:3" + }, + "scope": 538, + "src": "1151:74:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 539, + "src": "261:966:3", + "usedErrors": [] + } + ], + "src": "104:1124:3" + }, + "compiler": { + "name": "solc", + "version": "0.8.10+commit.fc410830.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.4", + "updatedAt": "2023-11-28T07:46:30.891Z", + "devdoc": { + "details": "External interface of AccessControlEnumerable declared to support ERC165 detection.", + "kind": "dev", + "methods": { + "getRoleAdmin(bytes32)": { + "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}." + }, + "getRoleMember(bytes32,uint256)": { + "details": "Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information." + }, + "getRoleMemberCount(bytes32)": { + "details": "Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role." + }, + "grantRole(bytes32,address)": { + "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role." + }, + "hasRole(bytes32,address)": { + "details": "Returns `true` if `account` has been granted `role`." + }, + "renounceRole(bytes32,address)": { + "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`." + }, + "revokeRole(bytes32,address)": { + "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/IERC20Permit.json b/build/contracts/IERC20Permit.json new file mode 100644 index 0000000..af68e15 --- /dev/null +++ b/build/contracts/IERC20Permit.json @@ -0,0 +1,972 @@ +{ + "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 + } +} \ No newline at end of file diff --git a/build/contracts/SignedMath.json b/build/contracts/SignedMath.json new file mode 100644 index 0000000..eac0b2d --- /dev/null +++ b/build/contracts/SignedMath.json @@ -0,0 +1,2672 @@ +{ + "contractName": "SignedMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}", + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ecc55b2e1208d2c71df0f53ec7abb56ed1f8f1f97da9d4c4938f6523450c090764736f6c634300080a0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ecc55b2e1208d2c71df0f53ec7abb56ed1f8f1f97da9d4c4938f6523450c090764736f6c634300080a0033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "215:1047:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "215:1047:38:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n", + "sourcePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "exportedSymbols": { + "SignedMath": [ + 8458 + ] + }, + "id": 8459, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8355, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "109:23:38" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignedMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 8356, + "nodeType": "StructuredDocumentation", + "src": "134:80:38", + "text": " @dev Standard signed math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 8458, + "linearizedBaseContracts": [ + 8458 + ], + "name": "SignedMath", + "nameLocation": "223:10:38", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 8373, + "nodeType": "Block", + "src": "375:37:38", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8366, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "392:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 8367, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8361, + "src": "396:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "392:5:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 8370, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8361, + "src": "404:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 8371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "392:13:38", + "trueExpression": { + "id": 8369, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "400:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 8365, + "id": 8372, + "nodeType": "Return", + "src": "385:20:38" + } + ] + }, + "documentation": { + "id": 8357, + "nodeType": "StructuredDocumentation", + "src": "240:66:38", + "text": " @dev Returns the largest of two signed numbers." + }, + "id": 8374, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "320:3:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8359, + "mutability": "mutable", + "name": "a", + "nameLocation": "331:1:38", + "nodeType": "VariableDeclaration", + "scope": 8374, + "src": "324:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8358, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "324:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8361, + "mutability": "mutable", + "name": "b", + "nameLocation": "341:1:38", + "nodeType": "VariableDeclaration", + "scope": 8374, + "src": "334:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8360, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "334:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "323:20:38" + }, + "returnParameters": { + "id": 8365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8364, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8374, + "src": "367:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8363, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "367:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "366:8:38" + }, + "scope": 8458, + "src": "311:101:38", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8391, + "nodeType": "Block", + "src": "554:37:38", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8384, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8377, + "src": "571:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 8385, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8379, + "src": "575:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "571:5:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 8388, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8379, + "src": "583:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 8389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "571:13:38", + "trueExpression": { + "id": 8387, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8377, + "src": "579:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 8383, + "id": 8390, + "nodeType": "Return", + "src": "564:20:38" + } + ] + }, + "documentation": { + "id": 8375, + "nodeType": "StructuredDocumentation", + "src": "418:67:38", + "text": " @dev Returns the smallest of two signed numbers." + }, + "id": 8392, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "499:3:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8377, + "mutability": "mutable", + "name": "a", + "nameLocation": "510:1:38", + "nodeType": "VariableDeclaration", + "scope": 8392, + "src": "503:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8376, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "503:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8379, + "mutability": "mutable", + "name": "b", + "nameLocation": "520:1:38", + "nodeType": "VariableDeclaration", + "scope": 8392, + "src": "513:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8378, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "513:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "502:20:38" + }, + "returnParameters": { + "id": 8383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8382, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8392, + "src": "546:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8381, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "546:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "545:8:38" + }, + "scope": 8458, + "src": "490:101:38", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8435, + "nodeType": "Block", + "src": "796:162:38", + "statements": [ + { + "assignments": [ + 8403 + ], + "declarations": [ + { + "constant": false, + "id": 8403, + "mutability": "mutable", + "name": "x", + "nameLocation": "865:1:38", + "nodeType": "VariableDeclaration", + "scope": 8435, + "src": "858:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8402, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "858:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 8416, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8404, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8395, + "src": "870:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 8405, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8397, + "src": "874:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "870:5:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8407, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "869:7:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8408, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8395, + "src": "881:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 8409, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8397, + "src": "885:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "881:5:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8411, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "880:7:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 8412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "891:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "880:12:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8414, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "879:14:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "869:24:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "858:35:38" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8417, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "910:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8422, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "930:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "922:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8420, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "922:7:38", + "typeDescriptions": {} + } + }, + "id": 8423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "922:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 8424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "936:3:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "922:17:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "915:6:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 8418, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "915:6:38", + "typeDescriptions": {} + } + }, + "id": 8426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "915:25:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8427, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8395, + "src": "944:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 8428, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8397, + "src": "948:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "944:5:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8430, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "943:7:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "915:35:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8432, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "914:37:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "910:41:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 8401, + "id": 8434, + "nodeType": "Return", + "src": "903:48:38" + } + ] + }, + "documentation": { + "id": 8393, + "nodeType": "StructuredDocumentation", + "src": "597:126:38", + "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." + }, + "id": 8436, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "737:7:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8395, + "mutability": "mutable", + "name": "a", + "nameLocation": "752:1:38", + "nodeType": "VariableDeclaration", + "scope": 8436, + "src": "745:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8394, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "745:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8397, + "mutability": "mutable", + "name": "b", + "nameLocation": "762:1:38", + "nodeType": "VariableDeclaration", + "scope": 8436, + "src": "755:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8396, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "755:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "744:20:38" + }, + "returnParameters": { + "id": 8401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8400, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8436, + "src": "788:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8399, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "788:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "787:8:38" + }, + "scope": 8458, + "src": "728:230:38", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8456, + "nodeType": "Block", + "src": "1102:158:38", + "statements": [ + { + "id": 8455, + "nodeType": "UncheckedBlock", + "src": "1112:142:38", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8446, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8439, + "src": "1227:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30", + "id": 8447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1232:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1227:6:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 8451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1240:2:38", + "subExpression": { + "id": 8450, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8439, + "src": "1241:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 8452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1227:15:38", + "trueExpression": { + "id": 8449, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8439, + "src": "1236:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1219:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8444, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1219:7:38", + "typeDescriptions": {} + } + }, + "id": 8453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1219:24:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8443, + "id": 8454, + "nodeType": "Return", + "src": "1212:31:38" + } + ] + } + ] + }, + "documentation": { + "id": 8437, + "nodeType": "StructuredDocumentation", + "src": "964:78:38", + "text": " @dev Returns the absolute unsigned value of a signed value." + }, + "id": 8457, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "abs", + "nameLocation": "1056:3:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8439, + "mutability": "mutable", + "name": "n", + "nameLocation": "1067:1:38", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "1060:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8438, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1060:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1059:10:38" + }, + "returnParameters": { + "id": 8443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8442, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "1093:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1093:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1092:9:38" + }, + "scope": 8458, + "src": "1047:213:38", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 8459, + "src": "215:1047:38", + "usedErrors": [] + } + ], + "src": "109:1154:38" + }, + "legacyAST": { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "exportedSymbols": { + "SignedMath": [ + 8458 + ] + }, + "id": 8459, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8355, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "109:23:38" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignedMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 8356, + "nodeType": "StructuredDocumentation", + "src": "134:80:38", + "text": " @dev Standard signed math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 8458, + "linearizedBaseContracts": [ + 8458 + ], + "name": "SignedMath", + "nameLocation": "223:10:38", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 8373, + "nodeType": "Block", + "src": "375:37:38", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8366, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "392:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 8367, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8361, + "src": "396:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "392:5:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 8370, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8361, + "src": "404:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 8371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "392:13:38", + "trueExpression": { + "id": 8369, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "400:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 8365, + "id": 8372, + "nodeType": "Return", + "src": "385:20:38" + } + ] + }, + "documentation": { + "id": 8357, + "nodeType": "StructuredDocumentation", + "src": "240:66:38", + "text": " @dev Returns the largest of two signed numbers." + }, + "id": 8374, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "320:3:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8359, + "mutability": "mutable", + "name": "a", + "nameLocation": "331:1:38", + "nodeType": "VariableDeclaration", + "scope": 8374, + "src": "324:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8358, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "324:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8361, + "mutability": "mutable", + "name": "b", + "nameLocation": "341:1:38", + "nodeType": "VariableDeclaration", + "scope": 8374, + "src": "334:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8360, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "334:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "323:20:38" + }, + "returnParameters": { + "id": 8365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8364, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8374, + "src": "367:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8363, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "367:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "366:8:38" + }, + "scope": 8458, + "src": "311:101:38", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8391, + "nodeType": "Block", + "src": "554:37:38", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8384, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8377, + "src": "571:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 8385, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8379, + "src": "575:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "571:5:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 8388, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8379, + "src": "583:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 8389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "571:13:38", + "trueExpression": { + "id": 8387, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8377, + "src": "579:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 8383, + "id": 8390, + "nodeType": "Return", + "src": "564:20:38" + } + ] + }, + "documentation": { + "id": 8375, + "nodeType": "StructuredDocumentation", + "src": "418:67:38", + "text": " @dev Returns the smallest of two signed numbers." + }, + "id": 8392, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "499:3:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8377, + "mutability": "mutable", + "name": "a", + "nameLocation": "510:1:38", + "nodeType": "VariableDeclaration", + "scope": 8392, + "src": "503:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8376, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "503:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8379, + "mutability": "mutable", + "name": "b", + "nameLocation": "520:1:38", + "nodeType": "VariableDeclaration", + "scope": 8392, + "src": "513:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8378, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "513:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "502:20:38" + }, + "returnParameters": { + "id": 8383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8382, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8392, + "src": "546:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8381, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "546:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "545:8:38" + }, + "scope": 8458, + "src": "490:101:38", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8435, + "nodeType": "Block", + "src": "796:162:38", + "statements": [ + { + "assignments": [ + 8403 + ], + "declarations": [ + { + "constant": false, + "id": 8403, + "mutability": "mutable", + "name": "x", + "nameLocation": "865:1:38", + "nodeType": "VariableDeclaration", + "scope": 8435, + "src": "858:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8402, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "858:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 8416, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8404, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8395, + "src": "870:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 8405, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8397, + "src": "874:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "870:5:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8407, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "869:7:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8408, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8395, + "src": "881:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 8409, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8397, + "src": "885:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "881:5:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8411, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "880:7:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 8412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "891:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "880:12:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8414, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "879:14:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "869:24:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "858:35:38" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8417, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "910:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8422, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "930:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "922:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8420, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "922:7:38", + "typeDescriptions": {} + } + }, + "id": 8423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "922:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 8424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "936:3:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "922:17:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "915:6:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 8418, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "915:6:38", + "typeDescriptions": {} + } + }, + "id": 8426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "915:25:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8427, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8395, + "src": "944:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 8428, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8397, + "src": "948:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "944:5:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8430, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "943:7:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "915:35:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8432, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "914:37:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "910:41:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 8401, + "id": 8434, + "nodeType": "Return", + "src": "903:48:38" + } + ] + }, + "documentation": { + "id": 8393, + "nodeType": "StructuredDocumentation", + "src": "597:126:38", + "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." + }, + "id": 8436, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "737:7:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8395, + "mutability": "mutable", + "name": "a", + "nameLocation": "752:1:38", + "nodeType": "VariableDeclaration", + "scope": 8436, + "src": "745:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8394, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "745:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8397, + "mutability": "mutable", + "name": "b", + "nameLocation": "762:1:38", + "nodeType": "VariableDeclaration", + "scope": 8436, + "src": "755:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8396, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "755:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "744:20:38" + }, + "returnParameters": { + "id": 8401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8400, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8436, + "src": "788:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8399, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "788:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "787:8:38" + }, + "scope": 8458, + "src": "728:230:38", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8456, + "nodeType": "Block", + "src": "1102:158:38", + "statements": [ + { + "id": 8455, + "nodeType": "UncheckedBlock", + "src": "1112:142:38", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8446, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8439, + "src": "1227:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30", + "id": 8447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1232:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1227:6:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 8451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1240:2:38", + "subExpression": { + "id": 8450, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8439, + "src": "1241:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 8452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1227:15:38", + "trueExpression": { + "id": 8449, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8439, + "src": "1236:1:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1219:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8444, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1219:7:38", + "typeDescriptions": {} + } + }, + "id": 8453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1219:24:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8443, + "id": 8454, + "nodeType": "Return", + "src": "1212:31:38" + } + ] + } + ] + }, + "documentation": { + "id": 8437, + "nodeType": "StructuredDocumentation", + "src": "964:78:38", + "text": " @dev Returns the absolute unsigned value of a signed value." + }, + "id": 8457, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "abs", + "nameLocation": "1056:3:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8439, + "mutability": "mutable", + "name": "n", + "nameLocation": "1067:1:38", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "1060:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8438, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1060:6:38", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1059:10:38" + }, + "returnParameters": { + "id": 8443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8442, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "1093:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1093:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1092:9:38" + }, + "scope": 8458, + "src": "1047:213:38", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 8459, + "src": "215:1047:38", + "usedErrors": [] + } + ], + "src": "109:1154:38" + }, + "compiler": { + "name": "solc", + "version": "0.8.10+commit.fc410830.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.4", + "updatedAt": "2023-11-28T07:46:31.031Z", + "devdoc": { + "details": "Standard signed math utilities missing in the Solidity language.", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/out/development_dev.json b/out/development_dev.json index 2da4ab8..0ca49fd 100644 --- a/out/development_dev.json +++ b/out/development_dev.json @@ -3,126 +3,126 @@ "name": "BEBadge", "type": "erc721", "json": "assets/contracts/BEBadge.json", - "address": "0x464c94ea90fc7D0D08Bb956cffB9AcfE3AAA5313" + "address": "0xCfEB869F69431e42cdB54A4F4f105C19C080A601" }, { "name": "BEMultiSigWallet", "type": "logic", "json": "assets/contracts/BEMultiSigWallet.json", - "address": "0x53b94F9474c01678040BA7da4bc54DCD8c0Ed0BA" + "address": "0xC89Ce4735882C9F0f0FE26686c53074E09B0D550" }, { "name": "NftDistributor", "type": "logic", "json": "assets/contracts/NftDistributor.json", - "address": "0xFd8643CeE37DaE121Ca0E84FD2Ceeb49E828B493" + "address": "0xe982E462b094850F12AF94d21D470e21bE9D0E9C" }, { "name": "CEC", "type": "erc20", "json": "assets/contracts/FT.json", - "address": "0x5C3670E0Ac747b03CD0e3B3165b2fd69e6fB790A" + "address": "0x67B5656d60a809915323Bf2C40A8bEF15A152e3e" }, { "name": "CEG", "type": "erc20", "json": "assets/contracts/FT.json", - "address": "0x51E8aB3c2885860c34d38922c5a9b54215B8CC9b" + "address": "0x2612Af3A521c2df9EAF28422Ca335b04AdF3ac66" }, { "name": "BEUSDC", "type": "erc20", "json": "assets/contracts/FT.json", - "address": "0x0a8c20aadDDDF50AFD1d431342Aaf28E4e757884" + "address": "0xA57B8a5584442B467b4689F1144D269d096A3daF" }, { "name": "BEUSDT", "type": "erc20", "json": "assets/contracts/FT.json", - "address": "0x1DbdE3fbc981A0B5E02778286aE623e864e09dCD" + "address": "0x26b4AFb60d6C903165150C6F0AA14F8016bE4aec" }, { "name": "HERO", "type": "erc721", "json": "assets/contracts/NFT.json", - "address": "0xe67a1e001a30eF1e0EDE04637F1Aceb3F2080604" + "address": "0xDb56f2e9369E0D7bD191099125a3f6C370F8ed15" }, { "name": "PLANET", "type": "erc721", "json": "assets/contracts/NFT.json", - "address": "0x4c8cF69bfd3361Dcf1795354afB32Ec4a26212F8" + "address": "0xA94B7f0465E98609391C623d0560C5720a3f2D33" }, { "name": "TestHERO", "type": "erc721", "json": "assets/contracts/NFT.json", - "address": "0x3c3d89322de3aC6D5BCBD10801BbB2C68f5AC5f1" + "address": "0x6eD79Aa1c71FD7BdBC515EfdA3Bd4e26394435cC" }, { "name": "UserMinterFactory", "type": "logic", "json": "assets/contracts/UserMinterFactory.json", - "address": "0x102EB6c9895955Ce780508f1e9ee7Ac2bdd1CE57" + "address": "0xFC628dd79137395F3C9744e33b1c5DE554D94882" }, { "name": "BENftMarket", "type": "logic", "json": "assets/contracts/BENftMarket.json", - "address": "0x0937F524C8A7d3D6Af3023875CF6c7f293F3B994" + "address": "0x21a59654176f2689d12E828B77a783072CD26680" }, { "name": "BENftMall", "type": "logic", "json": "assets/contracts/BENftMall.json", - "address": "0x1932400a9A132D20c3961E2848DE4bA3Ce8Ff30B" + "address": "0xD86C8F0327494034F60e25074420BcCF560D5610" }, { "name": "BETokenMall", "type": "logic", "json": "assets/contracts/BETokenMall.json", - "address": "0x79e0ba0C34ED4cc6a493ebCdf11A84491Cb6f5ea" + "address": "0x4bf749ec68270027C5910220CEAB30Cc284c7BA2" }, { "name": "GameItemMarket", "type": "logic", "json": "assets/contracts/GameItemMarket.json", - "address": "0xc080828C1A20E7cb0D20AD5191314e64286989E5" + "address": "0x86072CbFF48dA3C1F01824a6761A03F105BCC697" }, { "name": "GameItemMall", "type": "logic", "json": "assets/contracts/GameItemMall.json", - "address": "0x3B2d33aC0B76462c8Eb58548ed7db68BC826F15E" + "address": "0xFF6049B87215476aBf744eaA3a476cBAd46fB1cA" }, { "name": "Gacha", "type": "erc721", "json": "assets/contracts/BEBadge.json", - "address": "0xe00b745b5e71337507d43a8584320c4192CA7994" + "address": "0x2D8BE6BF0baA74e0A907016679CaE9190e80dD0A" }, { "name": "ClaimGachaFactory", "type": "logic", "json": "assets/contracts/ClaimBoxFactory.json", - "address": "0x3e5399049a779489000583dD0d14576D0472Fe94" + "address": "0x970e8f18ebfEa0B08810f33a5A40438b9530FBCF" }, { "name": "JSONMetadata", "type": "logic", "json": "assets/contracts/JSONMetadata.json", - "address": "0x0d31fD995E1540CE90Fd98462Cf3284b1693Ad8C" + "address": "0x5b9b42d6e4B2e4Bf8d42Eba32D46918e10899B66" }, { "name": "ERC721Staking", "type": "logic", "json": "assets/contracts/ERC721Staking.json", - "address": "0x59a13b07fE44Aa7221Fd6C55A3E8df26d4E37a65" + "address": "0xB9bdBAEc07751F6d54d19A6B9995708873F3DE18" }, { "name": "EvolveProxy", "type": "logic", "json": "assets/contracts/EvolveProxy.json", - "address": "0xC4bC1f775dB36c07b0bC506cbB83fCe12E182053" + "address": "0x988B6CFBf3332FF98FFBdED665b1F53a61f92612" } ] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 0ae2dcf..e52ad42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ }, "devDependencies": { "@openzeppelin/test-helpers": "^0.5.15", - "@truffle/hdwallet-provider": "^2.0.0", + "@truffle/hdwallet-provider": "^1.7.0", "chai": "^4.3.4", "prettier": "^2.7.1", "prettier-plugin-solidity": "^1.0.0-beta.24", @@ -115,48 +115,50 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", "dev": true, + "peer": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.3.tgz", - "integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz", - "integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", "dev": true, "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.0", - "@babel/helper-compilation-targets": "^7.22.1", - "@babel/helper-module-transforms": "^7.22.1", - "@babel/helpers": "^7.22.0", - "@babel/parser": "^7.22.0", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -166,6 +168,13 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "peer": true + }, "node_modules/@babel/core/node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -180,9 +189,9 @@ } }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "peer": true, "bin": { @@ -190,12 +199,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz", - "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", + "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", "dev": true, + "peer": true, "dependencies": { - "@babel/types": "^7.22.3", + "@babel/types": "^7.23.4", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -206,9 +216,10 @@ }, "node_modules/@babel/generator/node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmmirror.com/jsesc/download/jsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -217,22 +228,19 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz", - "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.0", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { @@ -245,192 +253,185 @@ } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz", - "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, + "peer": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "peer": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "dependencies": { - "@babel/types": "^7.21.4" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz", - "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "peer": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "peer": true, "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, + "peer": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz", - "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", + "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", "dev": true, "peer": true, "dependencies": { - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.3" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, + "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -438,10 +439,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz", - "integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", + "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", "dev": true, + "peer": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -450,17 +452,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.16.7.tgz", - "integrity": "sha512-2FoHiSAWkdq4L06uaDN3rS43i6x28desUVxq+zAFuE6kbWYQeiLPJI5IC7Sg9xKYVcrBKSQkVUfH6aeQYbl9QA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz", + "integrity": "sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.4.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -470,9 +472,9 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -491,33 +493,35 @@ } }, "node_modules/@babel/template": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz", - "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, + "peer": true, "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/parser": "^7.21.9", - "@babel/types": "^7.21.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.4.tgz", - "integrity": "sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", + "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", "dev": true, + "peer": true, "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.3", - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.22.4", - "@babel/types": "^7.22.4", + "@babel/code-frame": "^7.23.4", + "@babel/generator": "^7.23.4", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.4", + "@babel/types": "^7.23.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -527,21 +531,22 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmmirror.com/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1635390852153&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "peer": true, "engines": { "node": ">=4" } }, "node_modules/@babel/types": { - "version": "7.22.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.4.tgz", - "integrity": "sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", + "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -550,8 +555,8 @@ }, "node_modules/@babel/types/node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { "node": ">=4" @@ -1309,6 +1314,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "peer": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1319,10 +1325,11 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, + "peer": true, "engines": { "node": ">=6.0.0" } @@ -1332,6 +1339,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "peer": true, "engines": { "node": ">=6.0.0" } @@ -1340,24 +1348,20 @@ "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, + "peer": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, "node_modules/@ledgerhq/devices": { "version": "5.51.1", "resolved": "https://registry.npmmirror.com/@ledgerhq/devices/download/@ledgerhq/devices-5.51.1.tgz", @@ -1410,12 +1414,6 @@ "dev": true, "optional": true }, - "node_modules/@metamask/safe-event-emitter": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/@metamask/safe-event-emitter/download/@metamask/safe-event-emitter-2.0.0.tgz", - "integrity": "sha1-r1d7R3xoP60XxhmnggjO3gb5YFw=", - "dev": true - }, "node_modules/@multiformats/base-x": { "version": "4.0.1", "resolved": "https://registry.npmmirror.com/@multiformats/base-x/download/@multiformats/base-x-4.0.1.tgz", @@ -2574,19 +2572,19 @@ } }, "node_modules/@truffle/hdwallet-provider": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/@truffle/hdwallet-provider/download/@truffle/hdwallet-provider-2.0.0.tgz", - "integrity": "sha512-jquMJCMeHYhvPyZiIhLSWGzGkGK7Xswbw9kcti3USPIMP/AhVNVPe8E0fPurBLUb/Wvl6VW/6Z514JsmzC/IQA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.7.0.tgz", + "integrity": "sha512-nT7BPJJ2jPCLJc5uZdVtRnRMny5he5d3kO9Hi80ZSqe5xlnK905grBptM/+CwOfbeqHKQirI1btwm6r3wIBM8A==", "dev": true, "dependencies": { "@ethereumjs/common": "^2.4.0", "@ethereumjs/tx": "^3.3.0", + "@trufflesuite/web3-provider-engine": "15.0.14", "eth-sig-util": "^3.0.1", "ethereum-cryptography": "^0.1.3", "ethereum-protocol": "^1.0.1", "ethereumjs-util": "^6.1.0", - "ethereumjs-wallet": "^1.0.1", - "web3-provider-engine": "16.0.3" + "ethereumjs-wallet": "^1.0.1" } }, "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-util": { @@ -2961,6 +2959,231 @@ "node": ">=4" } }, + "node_modules/@trufflesuite/eth-json-rpc-filters": { + "version": "4.1.2-1", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", + "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", + "dev": true, + "dependencies": { + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", + "await-semaphore": "^0.1.3", + "eth-query": "^2.1.2", + "json-rpc-engine": "^5.1.3", + "lodash.flatmap": "^4.5.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-infura": { + "version": "4.0.3-0", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz", + "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==", + "dev": true, + "dependencies": { + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "cross-fetch": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "json-rpc-engine": "^5.1.3" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/eth-json-rpc-errors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", + "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", + "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors", + "dev": true, + "dependencies": { + "fast-safe-stringify": "^2.0.6" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-middleware": { + "version": "4.4.2-1", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", + "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", + "dev": true, + "dependencies": { + "@trufflesuite/eth-sig-util": "^1.4.2", + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "eth-query": "^2.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.7", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.6.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^5.1.3", + "json-stable-stringify": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/eth-json-rpc-errors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", + "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", + "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors", + "dev": true, + "dependencies": { + "fast-safe-stringify": "^2.0.6" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@trufflesuite/eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", + "dev": true, + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1" + } + }, + "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/@trufflesuite/web3-provider-engine": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.14.tgz", + "integrity": "sha512-6/LoWvNMxYf0oaYzJldK2a9AdnkAdIeJhHW4nuUBAeO29eK9xezEaEYQ0ph1QRTaICxGxvn+1Azp4u8bQ8NEZw==", + "dev": true, + "dependencies": { + "@ethereumjs/tx": "^3.3.0", + "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", + "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "@trufflesuite/eth-sig-util": "^1.4.2", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-errors": "^2.0.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + } + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/ws": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, "node_modules/@types/accepts": { "version": "1.3.5", "resolved": "https://registry.npmmirror.com/@types/accepts/download/@types/accepts-1.3.5.tgz", @@ -4167,8 +4390,8 @@ }, "node_modules/async-eventemitter": { "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/async-eventemitter/download/async-eventemitter-0.2.4.tgz", - "integrity": "sha1-9efIyn0+Rqq57ECikrr2hqC6+so=", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", "dev": true, "dependencies": { "async": "^2.4.0" @@ -4180,15 +4403,6 @@ "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", "dev": true }, - "node_modules/async-mutex": { - "version": "0.2.6", - "resolved": "https://registry.npmmirror.com/async-mutex/download/async-mutex-0.2.6.tgz", - "integrity": "sha1-DXo965eLwrmE1ZCKIDjhri5U/0A=", - "dev": true, - "dependencies": { - "tslib": "^2.0.0" - } - }, "node_modules/async-retry": { "version": "1.3.3", "resolved": "https://registry.npmmirror.com/async-retry/download/async-retry-1.3.3.tgz", @@ -4247,6 +4461,12 @@ "node": ">= 0.4" } }, + "node_modules/await-semaphore": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz", + "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==", + "dev": true + }, "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmmirror.com/aws-sign2/download/aws-sign2-0.7.0.tgz", @@ -4380,51 +4600,51 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.4.0.tgz", - "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.18.0" + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-regenerator%2Fdownload%2Fbabel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0" + "@babel/helper-define-polyfill-provider": "^0.4.3" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-runtime": { @@ -4499,8 +4719,8 @@ }, "node_modules/backoff": { "version": "2.5.0", - "resolved": "https://registry.npmmirror.com/backoff/download/backoff-2.5.0.tgz", - "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", "dev": true, "dependencies": { "precond": "0.2" @@ -5058,9 +5278,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz", - "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -5077,10 +5297,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001489", - "electron-to-chromium": "^1.4.411", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -5111,8 +5331,8 @@ }, "node_modules/btoa": { "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/btoa/download/btoa-1.2.1.tgz", - "integrity": "sha1-AamQn4ssk/a/aAuiYTHrMPf6PXM=", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", "dev": true, "bin": { "btoa": "bin/btoa.js" @@ -5315,9 +5535,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001494", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001494.tgz", - "integrity": "sha512-sY2B5Qyl46ZzfYDegrl8GBCzdawSLT4ThM9b9F+aDYUrAG2zCOyMbd2Tq34mS1g4ZKBfjRlzOohQMxx28x6wJg==", + "version": "1.0.30001565", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz", + "integrity": "sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==", "dev": true, "funding": [ { @@ -5444,8 +5664,8 @@ }, "node_modules/checkpoint-store": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/checkpoint-store/download/checkpoint-store-1.1.0.tgz", - "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", "dev": true, "dependencies": { "functional-red-black-tree": "^1.0.1" @@ -6025,6 +6245,7 @@ "resolved": "https://registry.npmmirror.com/convert-source-map/download/convert-source-map-1.8.0.tgz", "integrity": "sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k=", "dev": true, + "optional": true, "dependencies": { "safe-buffer": "~5.1.1" } @@ -6033,7 +6254,8 @@ "version": "5.1.2", "resolved": "https://registry.npmmirror.com/safe-buffer/download/safe-buffer-5.1.2.tgz", "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true + "dev": true, + "optional": true }, "node_modules/cookie": { "version": "0.4.1", @@ -6075,22 +6297,16 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.20.2", - "resolved": "https://registry.npmmirror.com/core-js-compat/download/core-js-compat-3.20.2.tgz", - "integrity": "sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg==", + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz", + "integrity": "sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==", "dev": true, "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", - "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "browserslist": "^4.22.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-pure": { @@ -6175,22 +6391,33 @@ } }, "node_modules/cross-fetch": { - "version": "2.2.5", - "resolved": "https://registry.npmmirror.com/cross-fetch/download/cross-fetch-2.2.5.tgz", - "integrity": "sha1-r69XKfO2x42JySlhFcnxQlQaVwU=", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", + "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", "dev": true, "dependencies": { - "node-fetch": "2.6.1", - "whatwg-fetch": "2.0.4" + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" } }, "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmmirror.com/node-fetch/download/node-fetch-2.6.1.tgz", - "integrity": "sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/cross-spawn": { @@ -6968,9 +7195,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.419", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.419.tgz", - "integrity": "sha512-jdie3RiEgygvDTyS2sgjq71B36q2cDSBfPlwzUyuOrfYTNoYWyBxxjGJV/HAu3A2hB0Y+HesvCVkVAFoCKwCSw==", + "version": "1.4.595", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.595.tgz", + "integrity": "sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ==", "dev": true }, "node_modules/elliptic": { @@ -7027,7 +7254,6 @@ "resolved": "https://registry.npmmirror.com/encoding/download/encoding-0.1.13.tgz", "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", "dev": true, - "optional": true, "dependencies": { "iconv-lite": "^0.6.2" } @@ -7070,7 +7296,6 @@ "resolved": "https://registry.npmmirror.com/iconv-lite/download/iconv-lite-0.6.3.tgz", "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", "dev": true, - "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -7484,8 +7709,8 @@ }, "node_modules/eth-block-tracker": { "version": "4.4.3", - "resolved": "https://registry.npmmirror.com/eth-block-tracker/download/eth-block-tracker-4.4.3.tgz", - "integrity": "sha1-dmoKDrSlLIZ6KDKOmuITU4Es9iY=", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", "dev": true, "dependencies": { "@babel/plugin-transform-runtime": "^7.5.5", @@ -7498,8 +7723,8 @@ }, "node_modules/eth-block-tracker/node_modules/pify": { "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, "engines": { "node": ">=4" @@ -7515,148 +7740,14 @@ "js-sha3": "^0.5.7" } }, - "node_modules/eth-json-rpc-filters": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/eth-json-rpc-filters/download/eth-json-rpc-filters-4.2.2.tgz", - "integrity": "sha1-6zXh3+k1es6KiQjn2u6Ass1goQ0=", + "node_modules/eth-json-rpc-errors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz", + "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==", + "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors", "dev": true, "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "async-mutex": "^0.2.6", - "eth-json-rpc-middleware": "^6.0.0", - "eth-query": "^2.1.2", - "json-rpc-engine": "^6.1.0", - "pify": "^5.0.0" - } - }, - "node_modules/eth-json-rpc-filters/node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/pify/download/pify-5.0.0.tgz", - "integrity": "sha1-H17KP16H6+wozG1UoOSq8ArMEn8=", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eth-json-rpc-infura": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/eth-json-rpc-infura/download/eth-json-rpc-infura-5.1.0.tgz", - "integrity": "sha1-5tp9xHQCzmTFTnAYFw2JQzxOj7Y=", - "dev": true, - "dependencies": { - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "json-rpc-engine": "^5.3.0", - "node-fetch": "^2.6.0" - } - }, - "node_modules/eth-json-rpc-infura/node_modules/json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/json-rpc-engine/download/json-rpc-engine-5.4.0.tgz", - "integrity": "sha1-dXWGCdhJ4duh4JAhrkc/OrYxYeU=", - "dev": true, - "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/eth-json-rpc-middleware": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/eth-json-rpc-middleware/download/eth-json-rpc-middleware-6.0.0.tgz", - "integrity": "sha1-T+FpKLNCMaJTeFbwil67w9DDEXU=", - "dev": true, - "dependencies": { - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-query": "^2.1.2", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-util": "^5.1.2", - "json-rpc-engine": "^5.3.0", - "json-stable-stringify": "^1.0.1", - "node-fetch": "^2.6.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/eth-json-rpc-middleware/node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/eth-json-rpc-middleware/node_modules/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/eth-sig-util/download/eth-sig-util-1.4.2.tgz", - "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", - "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", - "dev": true, - "dependencies": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.1" - } - }, - "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", - "integrity": "sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-6.2.1.tgz", - "integrity": "sha1-/LTk3Vzqy50jBUJqsaXNk+MWO2k=", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/json-rpc-engine/download/json-rpc-engine-5.4.0.tgz", - "integrity": "sha1-dXWGCdhJ4duh4JAhrkc/OrYxYeU=", - "dev": true, - "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/eth-json-rpc-middleware/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" + "fast-safe-stringify": "^2.0.6" } }, "node_modules/eth-lib": { @@ -7675,8 +7766,8 @@ }, "node_modules/eth-query": { "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/eth-query/download/eth-query-2.1.2.tgz", - "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", "dev": true, "dependencies": { "json-rpc-random-id": "^1.0.0", @@ -7685,8 +7776,8 @@ }, "node_modules/eth-rpc-errors": { "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/eth-rpc-errors/download/eth-rpc-errors-3.0.0.tgz", - "integrity": "sha1-17ImU8cNv53v1O9JD9CP5wYIyhA=", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", + "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", "dev": true, "dependencies": { "fast-safe-stringify": "^2.0.6" @@ -7743,8 +7834,8 @@ }, "node_modules/ethereum-common": { "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/ethereum-common/download/ethereum-common-0.2.0.tgz", - "integrity": "sha1-E7+WYTHM4e6t5iobQ0JJu0yxIMo=", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", "dev": true }, "node_modules/ethereum-cryptography": { @@ -7825,8 +7916,8 @@ }, "node_modules/ethereumjs-account": { "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/ethereumjs-account/download/ethereumjs-account-2.0.5.tgz", - "integrity": "sha1-7q/GLeVEywew7kSxD1csnEngCoQ=", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", "dev": true, "dependencies": { "ethereumjs-util": "^5.0.0", @@ -7836,8 +7927,8 @@ }, "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "dependencies": { "bn.js": "^4.11.0", @@ -7851,8 +7942,8 @@ }, "node_modules/ethereumjs-block": { "version": "1.7.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-block/download/ethereumjs-block-1.7.1.tgz", - "integrity": "sha1-eLiObMVt4pprSITudTebaGAzPD8=", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", "dev": true, "dependencies": { @@ -7865,8 +7956,8 @@ }, "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "dependencies": { "bn.js": "^4.11.0", @@ -7880,8 +7971,8 @@ }, "node_modules/ethereumjs-common": { "version": "1.5.2", - "resolved": "https://registry.npmmirror.com/ethereumjs-common/download/ethereumjs-common-1.5.2.tgz", - "integrity": "sha1-IGXb6SFOhQ8ulVqA5lDLaZkGaXk=", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", "deprecated": "New package name format for new versions: @ethereumjs/common. Please update.", "dev": true }, @@ -7900,8 +7991,8 @@ }, "node_modules/ethereumjs-tx": { "version": "1.3.7", - "resolved": "https://registry.npmmirror.com/ethereumjs-tx/download/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha1-iDI6LYdbEFSbg0fgn0hitUbz2Jo=", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", "dev": true, "dependencies": { @@ -7911,14 +8002,14 @@ }, "node_modules/ethereumjs-tx/node_modules/ethereum-common": { "version": "0.0.18", - "resolved": "https://registry.npmmirror.com/ethereum-common/download/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==", "dev": true }, "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "dependencies": { "bn.js": "^4.11.0", @@ -7963,8 +8054,8 @@ }, "node_modules/ethereumjs-vm": { "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/ethereumjs-vm/download/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha1-diQ+2N4DG0CHk6wzkH+zQH/kAMY=", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", "dev": true, "dependencies": { @@ -7983,8 +8074,8 @@ }, "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { "version": "2.2.2", - "resolved": "https://registry.npmmirror.com/ethereumjs-block/download/ethereumjs-block-2.2.2.tgz", - "integrity": "sha1-x2VL5+It9In9ogYTns1j4unASWU=", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", "dev": true, "dependencies": { @@ -7997,8 +8088,8 @@ }, "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "dependencies": { "bn.js": "^4.11.0", @@ -8012,8 +8103,8 @@ }, "node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ethereumjs-tx/download/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha1-Xf52iL8Xe0XJoj+Gz5EE1H6jX+0=", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", "dev": true, "dependencies": { @@ -8023,8 +8114,8 @@ }, "node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-6.2.1.tgz", - "integrity": "sha1-/LTk3Vzqy50jBUJqsaXNk+MWO2k=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", "dev": true, "dependencies": { "@types/bn.js": "^4.11.3", @@ -8383,8 +8474,8 @@ }, "node_modules/fake-merkle-patricia-tree": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/fake-merkle-patricia-tree/download/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", "dev": true, "dependencies": { "checkpoint-store": "^1.1.0" @@ -8443,8 +8534,8 @@ }, "node_modules/fast-safe-stringify": { "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/fast-safe-stringify/download/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha1-xAaoO25w2eNc47MKgRQd8wrrqIQ=", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, "node_modules/fast-sha256": { @@ -8472,6 +8563,25 @@ "tough-cookie": "^2.3.1" } }, + "node_modules/fetch-ponyfill": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", + "integrity": "sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==", + "dev": true, + "dependencies": { + "node-fetch": "~1.7.1" + } + }, + "node_modules/fetch-ponyfill/node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", @@ -12218,8 +12328,8 @@ }, "node_modules/is-fn": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/is-fn/download/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -12885,31 +12995,19 @@ } }, "node_modules/json-rpc-engine": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/json-rpc-engine/download/json-rpc-engine-6.1.0.tgz", - "integrity": "sha1-v1/30Cnhwb8gy2wOnzSNzYvlo5M=", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", "dev": true, "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "eth-rpc-errors": "^4.0.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/json-rpc-engine/node_modules/eth-rpc-errors": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/eth-rpc-errors/download/eth-rpc-errors-4.0.3.tgz", - "integrity": "sha1-bdthkKS/Ngr9qCeQu32dXnJPQjo=", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.0.6" + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, "node_modules/json-rpc-random-id": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/json-rpc-random-id/download/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==", "dev": true }, "node_modules/json-schema": { @@ -13360,8 +13458,8 @@ }, "node_modules/level-ws": { "version": "0.0.0", - "resolved": "https://registry.npmmirror.com/level-ws/download/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", "dev": true, "dependencies": { "readable-stream": "~1.0.15", @@ -13370,20 +13468,20 @@ }, "node_modules/level-ws/node_modules/isarray": { "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/isarray/download/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "node_modules/level-ws/node_modules/object-keys": { "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/object-keys/download/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", "dev": true }, "node_modules/level-ws/node_modules/readable-stream": { "version": "1.0.34", - "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -13394,14 +13492,14 @@ }, "node_modules/level-ws/node_modules/string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmmirror.com/string_decoder/download/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, "node_modules/level-ws/node_modules/xtend": { "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/xtend/download/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", "dev": true, "dependencies": { "object-keys": "~0.4.0" @@ -13668,8 +13766,8 @@ }, "node_modules/lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/lodash.debounce/download/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "node_modules/lodash.escaperegexp": { @@ -13678,6 +13776,12 @@ "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", "dev": true }, + "node_modules/lodash.flatmap": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", + "integrity": "sha512-/OcpcAGWlrZyoHGeHh3cAoa6nGdX6QYtmzNP84Jqol6UEQQ2gIaU3H+0eICcjcKGl0/XF8LWOujNn9lffsnaOg==", + "dev": true + }, "node_modules/lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmmirror.com/lodash.flatten/download/lodash.flatten-4.4.0.tgz", @@ -14132,8 +14236,8 @@ }, "node_modules/merkle-patricia-tree": { "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/merkle-patricia-tree/download/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha1-mCyhtaD94A7tL2ru0fkVKGC4IIo=", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", "dev": true, "dependencies": { "async": "^1.4.2", @@ -14148,8 +14252,8 @@ }, "node_modules/merkle-patricia-tree/node_modules/abstract-leveldown": { "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/abstract-leveldown/download/abstract-leveldown-2.6.3.tgz", - "integrity": "sha1-HF6Mal75Za6MNd+zqHcMR2uCxLg=", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", "dev": true, "dependencies": { "xtend": "~4.0.0" @@ -14157,14 +14261,14 @@ }, "node_modules/merkle-patricia-tree/node_modules/async": { "version": "1.5.2", - "resolved": "https://registry.npmmirror.com/async/download/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", "dev": true }, "node_modules/merkle-patricia-tree/node_modules/deferred-leveldown": { "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/deferred-leveldown/download/deferred-leveldown-1.2.2.tgz", - "integrity": "sha1-Os0uC3XRZpkkvApLZChRExFz4es=", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", "dev": true, "dependencies": { "abstract-leveldown": "~2.6.0" @@ -14172,8 +14276,8 @@ }, "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "dependencies": { "bn.js": "^4.11.0", @@ -14185,22 +14289,16 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/merkle-patricia-tree/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/isarray/download/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, "node_modules/merkle-patricia-tree/node_modules/level-codec": { "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/level-codec/download/level-codec-7.0.1.tgz", - "integrity": "sha1-NB8i+QfODxZ2PyS93WgeOVoPuKc=", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", "dev": true }, "node_modules/merkle-patricia-tree/node_modules/level-errors": { "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/level-errors/download/level-errors-1.0.5.tgz", - "integrity": "sha1-g9v7EvC4olFr3JoxxIdgOOInuFk=", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", "dev": true, "dependencies": { "errno": "~0.1.1" @@ -14208,8 +14306,8 @@ }, "node_modules/merkle-patricia-tree/node_modules/level-iterator-stream": { "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/level-iterator-stream/download/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", "dev": true, "dependencies": { "inherits": "^2.0.1", @@ -14218,10 +14316,16 @@ "xtend": "^4.0.0" } }, + "node_modules/merkle-patricia-tree/node_modules/level-iterator-stream/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, "node_modules/merkle-patricia-tree/node_modules/level-iterator-stream/node_modules/readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -14230,9 +14334,15 @@ "string_decoder": "~0.10.x" } }, + "node_modules/merkle-patricia-tree/node_modules/level-iterator-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, "node_modules/merkle-patricia-tree/node_modules/levelup": { "version": "1.3.9", - "resolved": "https://registry.npmmirror.com/levelup/download/levelup-1.3.9.tgz", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", "dev": true, "dependencies": { @@ -14247,14 +14357,14 @@ }, "node_modules/merkle-patricia-tree/node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "node_modules/merkle-patricia-tree/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -14266,41 +14376,29 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/merkle-patricia-tree/node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/merkle-patricia-tree/node_modules/readable-stream/node_modules/safe-buffer": { + "node_modules/merkle-patricia-tree/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/merkle-patricia-tree/node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/merkle-patricia-tree/node_modules/semver": { "version": "5.4.1", - "resolved": "https://registry.npmmirror.com/semver/download/semver-5.4.1.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-5.4.1.tgz", - "integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4=", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/merkle-patricia-tree/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmmirror.com/string_decoder/download/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } }, "node_modules/methods": { "version": "1.1.2", @@ -15590,6 +15688,7 @@ "resolved": "https://registry.npmmirror.com/node-fetch/download/node-fetch-2.6.6.tgz", "integrity": "sha1-F1GnwBg06OFpd1hzLp77burfr4k=", "dev": true, + "optional": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -15776,9 +15875,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "node_modules/nofilter": { @@ -17573,8 +17672,8 @@ }, "node_modules/precond": { "version": "0.2.3", - "resolved": "https://registry.npmmirror.com/precond/download/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", "dev": true, "engines": { "node": ">= 0.6" @@ -17751,8 +17850,8 @@ }, "node_modules/promise-to-callback": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/promise-to-callback/download/promise-to-callback-1.0.0.tgz", - "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", + "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", + "integrity": "sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==", "dev": true, "dependencies": { "is-fn": "^1.0.0", @@ -18658,8 +18757,8 @@ }, "node_modules/rustbn.js": { "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/rustbn.js/download/rustbn.js-0.2.0.tgz", - "integrity": "sha1-gILLiG5wcVX9HLbyO9WRq41V0Mo=", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", "dev": true }, "node_modules/rxjs": { @@ -18690,8 +18789,8 @@ }, "node_modules/safe-event-emitter": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/safe-event-emitter/download/safe-event-emitter-1.0.1.tgz", - "integrity": "sha1-W2ku8iMp7Y9p/c5gflDKc09vIK8=", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", "deprecated": "Renamed to @metamask/safe-event-emitter", "dev": true, "dependencies": { @@ -18779,8 +18878,8 @@ }, "node_modules/semaphore": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/semaphore/download/semaphore-1.1.0.tgz", - "integrity": "sha1-qq2LhrIP6OmzKxbcLuaCqM0mqKo=", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", "dev": true, "engines": { "node": ">=0.8.0" @@ -18904,8 +19003,8 @@ }, "node_modules/set-immediate-shim": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -20639,7 +20738,8 @@ "version": "2.3.1", "resolved": "https://registry.npmmirror.com/tslib/download/tslib-2.3.1.tgz", "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=", - "dev": true + "dev": true, + "optional": true }, "node_modules/tty-browserify": { "version": "0.0.0", @@ -21056,9 +21156,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -22353,151 +22453,6 @@ "node": ">=8.0.0" } }, - "node_modules/web3-provider-engine": { - "version": "16.0.3", - "resolved": "https://registry.npmmirror.com/web3-provider-engine/download/web3-provider-engine-16.0.3.tgz", - "integrity": "sha1-j/k+3zqNovcNf4XFEWAowGoNnwc=", - "dev": true, - "dependencies": { - "@ethereumjs/tx": "^3.3.0", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-filters": "^4.2.1", - "eth-json-rpc-infura": "^5.1.0", - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/web3-provider-engine/node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/web3-provider-engine/node_modules/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/eth-sig-util/download/eth-sig-util-1.4.2.tgz", - "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", - "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", - "dev": true, - "dependencies": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.1" - } - }, - "node_modules/web3-provider-engine/node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", - "integrity": "sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/web3-provider-engine/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-6.2.1.tgz", - "integrity": "sha1-/LTk3Vzqy50jBUJqsaXNk+MWO2k=", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/web3-provider-engine/node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", - "dev": true - }, - "node_modules/web3-provider-engine/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/web3-provider-engine/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "node_modules/web3-provider-engine/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/web3-provider-engine/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "node_modules/web3-provider-engine/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmmirror.com/ws/download/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, "node_modules/web3-providers-http": { "version": "1.5.3", "resolved": "https://registry.npmmirror.com/web3-providers-http/download/web3-providers-http-1.5.3.tgz", @@ -22896,8 +22851,8 @@ }, "node_modules/whatwg-fetch": { "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/whatwg-fetch/download/whatwg-fetch-2.0.4.tgz", - "integrity": "sha1-3eal3zFfnTmZGqF2IYU9cguFVm8=", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", "dev": true }, "node_modules/whatwg-url": { @@ -23519,44 +23474,53 @@ } }, "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", "dev": true, + "peer": true, "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" } }, "@babel/compat-data": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.3.tgz", - "integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", "dev": true }, "@babel/core": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz", - "integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", "dev": true, "peer": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.0", - "@babel/helper-compilation-targets": "^7.22.1", - "@babel/helper-module-transforms": "^7.22.1", - "@babel/helpers": "^7.22.0", - "@babel/parser": "^7.22.0", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "peer": true + }, "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -23565,21 +23529,22 @@ "peer": true }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "peer": true } } }, "@babel/generator": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz", - "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", + "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", "dev": true, + "peer": true, "requires": { - "@babel/types": "^7.22.3", + "@babel/types": "^7.23.4", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -23587,23 +23552,24 @@ "dependencies": { "jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmmirror.com/jsesc/download/jsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", - "dev": true + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "peer": true } } }, "@babel/helper-compilation-targets": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz", - "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, "requires": { - "@babel/compat-data": "^7.22.0", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "dependencies": { "lru-cache": { @@ -23616,178 +23582,170 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } + "resolve": "^1.14.2" } }, "@babel/helper-environment-visitor": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz", - "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==", - "dev": true + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "peer": true }, "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, + "peer": true, "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "peer": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "requires": { - "@babel/types": "^7.21.4" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-transforms": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz", - "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "peer": true, "requires": { - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true }, "@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "peer": true, "requires": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true - }, - "@babel/helpers": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz", - "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "peer": true, "requires": { - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.3" + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true + }, + "@babel/helpers": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", + "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", + "dev": true, + "peer": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" } }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, + "peer": true, "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.22.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz", - "integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==", - "dev": true + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", + "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", + "dev": true, + "peer": true }, "@babel/plugin-transform-runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.16.7.tgz", - "integrity": "sha512-2FoHiSAWkdq4L06uaDN3rS43i6x28desUVxq+zAFuE6kbWYQeiLPJI5IC7Sg9xKYVcrBKSQkVUfH6aeQYbl9QA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz", + "integrity": "sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.4.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -23802,57 +23760,60 @@ } }, "@babel/template": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz", - "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, + "peer": true, "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/parser": "^7.21.9", - "@babel/types": "^7.21.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, "@babel/traverse": { - "version": "7.22.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.4.tgz", - "integrity": "sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", + "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", "dev": true, + "peer": true, "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.3", - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.22.4", - "@babel/types": "^7.22.4", + "@babel/code-frame": "^7.23.4", + "@babel/generator": "^7.23.4", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.4", + "@babel/types": "^7.23.4", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { "globals": { "version": "11.12.0", - "resolved": "https://registry.npmmirror.com/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1635390852153&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "peer": true } } }, "@babel/types": { - "version": "7.22.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.4.tgz", - "integrity": "sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", + "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "dependencies": { "to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true } } @@ -24588,6 +24549,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "peer": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -24595,39 +24557,35 @@ } }, "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "peer": true }, "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true + "dev": true, + "peer": true }, "@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "peer": true }, "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, + "peer": true, "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - } + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@ledgerhq/devices": { @@ -24682,12 +24640,6 @@ "dev": true, "optional": true }, - "@metamask/safe-event-emitter": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/@metamask/safe-event-emitter/download/@metamask/safe-event-emitter-2.0.0.tgz", - "integrity": "sha1-r1d7R3xoP60XxhmnggjO3gb5YFw=", - "dev": true - }, "@multiformats/base-x": { "version": "4.0.1", "resolved": "https://registry.npmmirror.com/@multiformats/base-x/download/@multiformats/base-x-4.0.1.tgz", @@ -25790,19 +25742,19 @@ } }, "@truffle/hdwallet-provider": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/@truffle/hdwallet-provider/download/@truffle/hdwallet-provider-2.0.0.tgz", - "integrity": "sha512-jquMJCMeHYhvPyZiIhLSWGzGkGK7Xswbw9kcti3USPIMP/AhVNVPe8E0fPurBLUb/Wvl6VW/6Z514JsmzC/IQA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.7.0.tgz", + "integrity": "sha512-nT7BPJJ2jPCLJc5uZdVtRnRMny5he5d3kO9Hi80ZSqe5xlnK905grBptM/+CwOfbeqHKQirI1btwm6r3wIBM8A==", "dev": true, "requires": { "@ethereumjs/common": "^2.4.0", "@ethereumjs/tx": "^3.3.0", + "@trufflesuite/web3-provider-engine": "15.0.14", "eth-sig-util": "^3.0.1", "ethereum-cryptography": "^0.1.3", "ethereum-protocol": "^1.0.1", "ethereumjs-util": "^6.1.0", - "ethereumjs-wallet": "^1.0.1", - "web3-provider-engine": "16.0.3" + "ethereumjs-wallet": "^1.0.1" }, "dependencies": { "ethereumjs-util": { @@ -26135,6 +26087,228 @@ } } }, + "@trufflesuite/eth-json-rpc-filters": { + "version": "4.1.2-1", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", + "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", + "dev": true, + "requires": { + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", + "await-semaphore": "^0.1.3", + "eth-query": "^2.1.2", + "json-rpc-engine": "^5.1.3", + "lodash.flatmap": "^4.5.0", + "safe-event-emitter": "^1.0.1" + } + }, + "@trufflesuite/eth-json-rpc-infura": { + "version": "4.0.3-0", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz", + "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==", + "dev": true, + "requires": { + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "cross-fetch": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "json-rpc-engine": "^5.1.3" + }, + "dependencies": { + "eth-json-rpc-errors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", + "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.6" + } + } + } + }, + "@trufflesuite/eth-json-rpc-middleware": { + "version": "4.4.2-1", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", + "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", + "dev": true, + "requires": { + "@trufflesuite/eth-sig-util": "^1.4.2", + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "eth-query": "^2.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.7", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.6.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^5.1.3", + "json-stable-stringify": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true + }, + "eth-json-rpc-errors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", + "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.6" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "@trufflesuite/eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", + "dev": true, + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "@trufflesuite/web3-provider-engine": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.14.tgz", + "integrity": "sha512-6/LoWvNMxYf0oaYzJldK2a9AdnkAdIeJhHW4nuUBAeO29eK9xezEaEYQ0ph1QRTaICxGxvn+1Azp4u8bQ8NEZw==", + "dev": true, + "requires": { + "@ethereumjs/tx": "^3.3.0", + "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", + "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "@trufflesuite/eth-sig-util": "^1.4.2", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-errors": "^2.0.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "ws": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "@types/accepts": { "version": "1.3.5", "resolved": "https://registry.npmmirror.com/@types/accepts/download/@types/accepts-1.3.5.tgz", @@ -27183,8 +27357,8 @@ }, "async-eventemitter": { "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/async-eventemitter/download/async-eventemitter-0.2.4.tgz", - "integrity": "sha1-9efIyn0+Rqq57ECikrr2hqC6+so=", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", "dev": true, "requires": { "async": "^2.4.0" @@ -27196,15 +27370,6 @@ "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", "dev": true }, - "async-mutex": { - "version": "0.2.6", - "resolved": "https://registry.npmmirror.com/async-mutex/download/async-mutex-0.2.6.tgz", - "integrity": "sha1-DXo965eLwrmE1ZCKIDjhri5U/0A=", - "dev": true, - "requires": { - "tslib": "^2.0.0" - } - }, "async-retry": { "version": "1.3.3", "resolved": "https://registry.npmmirror.com/async-retry/download/async-retry-1.3.3.tgz", @@ -27248,6 +27413,12 @@ "integrity": "sha1-kvlWFlAQadB9EO2y/DfT4cZRI7c=", "dev": true }, + "await-semaphore": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz", + "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==", + "dev": true + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmmirror.com/aws-sign2/download/aws-sign2-0.7.0.tgz", @@ -27363,41 +27534,41 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "babel-plugin-polyfill-corejs3": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.4.0.tgz", - "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.18.0" + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-regenerator%2Fdownload%2Fbabel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0" + "@babel/helper-define-polyfill-provider": "^0.4.3" } }, "babel-runtime": { @@ -27473,8 +27644,8 @@ }, "backoff": { "version": "2.5.0", - "resolved": "https://registry.npmmirror.com/backoff/download/backoff-2.5.0.tgz", - "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", "dev": true, "requires": { "precond": "0.2" @@ -27991,15 +28162,15 @@ } }, "browserslist": { - "version": "4.21.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz", - "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001489", - "electron-to-chromium": "^1.4.411", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" } }, "bs58": { @@ -28024,8 +28195,8 @@ }, "btoa": { "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/btoa/download/btoa-1.2.1.tgz", - "integrity": "sha1-AamQn4ssk/a/aAuiYTHrMPf6PXM=", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", "dev": true }, "btoa-lite": { @@ -28198,9 +28369,9 @@ "optional": true }, "caniuse-lite": { - "version": "1.0.30001494", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001494.tgz", - "integrity": "sha512-sY2B5Qyl46ZzfYDegrl8GBCzdawSLT4ThM9b9F+aDYUrAG2zCOyMbd2Tq34mS1g4ZKBfjRlzOohQMxx28x6wJg==", + "version": "1.0.30001565", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz", + "integrity": "sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==", "dev": true }, "caseless": { @@ -28295,8 +28466,8 @@ }, "checkpoint-store": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/checkpoint-store/download/checkpoint-store-1.1.0.tgz", - "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", "dev": true, "requires": { "functional-red-black-tree": "^1.0.1" @@ -28801,6 +28972,7 @@ "resolved": "https://registry.npmmirror.com/convert-source-map/download/convert-source-map-1.8.0.tgz", "integrity": "sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k=", "dev": true, + "optional": true, "requires": { "safe-buffer": "~5.1.1" }, @@ -28809,7 +28981,8 @@ "version": "5.1.2", "resolved": "https://registry.npmmirror.com/safe-buffer/download/safe-buffer-5.1.2.tgz", "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true + "dev": true, + "optional": true } } }, @@ -28845,21 +29018,12 @@ "dev": true }, "core-js-compat": { - "version": "3.20.2", - "resolved": "https://registry.npmmirror.com/core-js-compat/download/core-js-compat-3.20.2.tgz", - "integrity": "sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg==", + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz", + "integrity": "sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==", "dev": true, "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", - "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", - "dev": true - } + "browserslist": "^4.22.1" } }, "core-js-pure": { @@ -28933,20 +29097,23 @@ } }, "cross-fetch": { - "version": "2.2.5", - "resolved": "https://registry.npmmirror.com/cross-fetch/download/cross-fetch-2.2.5.tgz", - "integrity": "sha1-r69XKfO2x42JySlhFcnxQlQaVwU=", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", + "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", "dev": true, "requires": { - "node-fetch": "2.6.1", - "whatwg-fetch": "2.0.4" + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" }, "dependencies": { "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmmirror.com/node-fetch/download/node-fetch-2.6.1.tgz", - "integrity": "sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=", - "dev": true + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } } } }, @@ -29633,9 +29800,9 @@ } }, "electron-to-chromium": { - "version": "1.4.419", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.419.tgz", - "integrity": "sha512-jdie3RiEgygvDTyS2sgjq71B36q2cDSBfPlwzUyuOrfYTNoYWyBxxjGJV/HAu3A2hB0Y+HesvCVkVAFoCKwCSw==", + "version": "1.4.595", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.595.tgz", + "integrity": "sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ==", "dev": true }, "elliptic": { @@ -29683,7 +29850,6 @@ "resolved": "https://registry.npmmirror.com/encoding/download/encoding-0.1.13.tgz", "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", "dev": true, - "optional": true, "requires": { "iconv-lite": "^0.6.2" }, @@ -29693,7 +29859,6 @@ "resolved": "https://registry.npmmirror.com/iconv-lite/download/iconv-lite-0.6.3.tgz", "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", "dev": true, - "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } @@ -30082,8 +30247,8 @@ }, "eth-block-tracker": { "version": "4.4.3", - "resolved": "https://registry.npmmirror.com/eth-block-tracker/download/eth-block-tracker-4.4.3.tgz", - "integrity": "sha1-dmoKDrSlLIZ6KDKOmuITU4Es9iY=", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", "dev": true, "requires": { "@babel/plugin-transform-runtime": "^7.5.5", @@ -30096,8 +30261,8 @@ "dependencies": { "pify": { "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true } } @@ -30112,145 +30277,13 @@ "js-sha3": "^0.5.7" } }, - "eth-json-rpc-filters": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/eth-json-rpc-filters/download/eth-json-rpc-filters-4.2.2.tgz", - "integrity": "sha1-6zXh3+k1es6KiQjn2u6Ass1goQ0=", + "eth-json-rpc-errors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz", + "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==", "dev": true, "requires": { - "@metamask/safe-event-emitter": "^2.0.0", - "async-mutex": "^0.2.6", - "eth-json-rpc-middleware": "^6.0.0", - "eth-query": "^2.1.2", - "json-rpc-engine": "^6.1.0", - "pify": "^5.0.0" - }, - "dependencies": { - "pify": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/pify/download/pify-5.0.0.tgz", - "integrity": "sha1-H17KP16H6+wozG1UoOSq8ArMEn8=", - "dev": true - } - } - }, - "eth-json-rpc-infura": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/eth-json-rpc-infura/download/eth-json-rpc-infura-5.1.0.tgz", - "integrity": "sha1-5tp9xHQCzmTFTnAYFw2JQzxOj7Y=", - "dev": true, - "requires": { - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "json-rpc-engine": "^5.3.0", - "node-fetch": "^2.6.0" - }, - "dependencies": { - "json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/json-rpc-engine/download/json-rpc-engine-5.4.0.tgz", - "integrity": "sha1-dXWGCdhJ4duh4JAhrkc/OrYxYeU=", - "dev": true, - "requires": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - } - } - }, - "eth-json-rpc-middleware": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/eth-json-rpc-middleware/download/eth-json-rpc-middleware-6.0.0.tgz", - "integrity": "sha1-T+FpKLNCMaJTeFbwil67w9DDEXU=", - "dev": true, - "requires": { - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-query": "^2.1.2", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-util": "^5.1.2", - "json-rpc-engine": "^5.3.0", - "json-stable-stringify": "^1.0.1", - "node-fetch": "^2.6.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/eth-sig-util/download/eth-sig-util-1.4.2.tgz", - "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", - "dev": true, - "requires": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.1" - } - }, - "ethereumjs-abi": { - "version": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", - "integrity": "sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w==", - "dev": true, - "from": "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git", - "requires": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-6.2.1.tgz", - "integrity": "sha1-/LTk3Vzqy50jBUJqsaXNk+MWO2k=", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } - } - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/json-rpc-engine/download/json-rpc-engine-5.4.0.tgz", - "integrity": "sha1-dXWGCdhJ4duh4JAhrkc/OrYxYeU=", - "dev": true, - "requires": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } + "fast-safe-stringify": "^2.0.6" } }, "eth-lib": { @@ -30269,8 +30302,8 @@ }, "eth-query": { "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/eth-query/download/eth-query-2.1.2.tgz", - "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", "dev": true, "requires": { "json-rpc-random-id": "^1.0.0", @@ -30279,8 +30312,8 @@ }, "eth-rpc-errors": { "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/eth-rpc-errors/download/eth-rpc-errors-3.0.0.tgz", - "integrity": "sha1-17ImU8cNv53v1O9JD9CP5wYIyhA=", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", + "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", "dev": true, "requires": { "fast-safe-stringify": "^2.0.6" @@ -30340,8 +30373,8 @@ }, "ethereum-common": { "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/ethereum-common/download/ethereum-common-0.2.0.tgz", - "integrity": "sha1-E7+WYTHM4e6t5iobQ0JJu0yxIMo=", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", "dev": true }, "ethereum-cryptography": { @@ -30426,8 +30459,8 @@ }, "ethereumjs-account": { "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/ethereumjs-account/download/ethereumjs-account-2.0.5.tgz", - "integrity": "sha1-7q/GLeVEywew7kSxD1csnEngCoQ=", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", "dev": true, "requires": { "ethereumjs-util": "^5.0.0", @@ -30437,8 +30470,8 @@ "dependencies": { "ethereumjs-util": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "requires": { "bn.js": "^4.11.0", @@ -30454,8 +30487,8 @@ }, "ethereumjs-block": { "version": "1.7.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-block/download/ethereumjs-block-1.7.1.tgz", - "integrity": "sha1-eLiObMVt4pprSITudTebaGAzPD8=", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", "dev": true, "requires": { "async": "^2.0.1", @@ -30467,8 +30500,8 @@ "dependencies": { "ethereumjs-util": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "requires": { "bn.js": "^4.11.0", @@ -30484,8 +30517,8 @@ }, "ethereumjs-common": { "version": "1.5.2", - "resolved": "https://registry.npmmirror.com/ethereumjs-common/download/ethereumjs-common-1.5.2.tgz", - "integrity": "sha1-IGXb6SFOhQ8ulVqA5lDLaZkGaXk=", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", "dev": true }, "ethereumjs-testrpc": { @@ -30499,8 +30532,8 @@ }, "ethereumjs-tx": { "version": "1.3.7", - "resolved": "https://registry.npmmirror.com/ethereumjs-tx/download/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha1-iDI6LYdbEFSbg0fgn0hitUbz2Jo=", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", "dev": true, "requires": { "ethereum-common": "^0.0.18", @@ -30509,14 +30542,14 @@ "dependencies": { "ethereum-common": { "version": "0.0.18", - "resolved": "https://registry.npmmirror.com/ethereum-common/download/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==", "dev": true }, "ethereumjs-util": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "requires": { "bn.js": "^4.11.0", @@ -30562,8 +30595,8 @@ }, "ethereumjs-vm": { "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/ethereumjs-vm/download/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha1-diQ+2N4DG0CHk6wzkH+zQH/kAMY=", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", "dev": true, "requires": { "async": "^2.1.2", @@ -30581,8 +30614,8 @@ "dependencies": { "ethereumjs-block": { "version": "2.2.2", - "resolved": "https://registry.npmmirror.com/ethereumjs-block/download/ethereumjs-block-2.2.2.tgz", - "integrity": "sha1-x2VL5+It9In9ogYTns1j4unASWU=", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", "dev": true, "requires": { "async": "^2.0.1", @@ -30594,8 +30627,8 @@ "dependencies": { "ethereumjs-util": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "requires": { "bn.js": "^4.11.0", @@ -30611,8 +30644,8 @@ }, "ethereumjs-tx": { "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ethereumjs-tx/download/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha1-Xf52iL8Xe0XJoj+Gz5EE1H6jX+0=", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", "dev": true, "requires": { "ethereumjs-common": "^1.5.0", @@ -30621,8 +30654,8 @@ }, "ethereumjs-util": { "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-6.2.1.tgz", - "integrity": "sha1-/LTk3Vzqy50jBUJqsaXNk+MWO2k=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", "dev": true, "requires": { "@types/bn.js": "^4.11.3", @@ -30946,8 +30979,8 @@ }, "fake-merkle-patricia-tree": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/fake-merkle-patricia-tree/download/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", "dev": true, "requires": { "checkpoint-store": "^1.1.0" @@ -31003,8 +31036,8 @@ }, "fast-safe-stringify": { "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/fast-safe-stringify/download/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha1-xAaoO25w2eNc47MKgRQd8wrrqIQ=", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, "fast-sha256": { @@ -31032,6 +31065,27 @@ "tough-cookie": "^2.3.1" } }, + "fetch-ponyfill": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", + "integrity": "sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==", + "dev": true, + "requires": { + "node-fetch": "~1.7.1" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } + } + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", @@ -34107,8 +34161,8 @@ }, "is-fn": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/is-fn/download/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==", "dev": true }, "is-fullwidth-code-point": { @@ -34678,30 +34732,19 @@ } }, "json-rpc-engine": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/json-rpc-engine/download/json-rpc-engine-6.1.0.tgz", - "integrity": "sha1-v1/30Cnhwb8gy2wOnzSNzYvlo5M=", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", "dev": true, "requires": { - "@metamask/safe-event-emitter": "^2.0.0", - "eth-rpc-errors": "^4.0.2" - }, - "dependencies": { - "eth-rpc-errors": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/eth-rpc-errors/download/eth-rpc-errors-4.0.3.tgz", - "integrity": "sha1-bdthkKS/Ngr9qCeQu32dXnJPQjo=", - "dev": true, - "requires": { - "fast-safe-stringify": "^2.0.6" - } - } + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, "json-rpc-random-id": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/json-rpc-random-id/download/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==", "dev": true }, "json-schema": { @@ -35100,8 +35143,8 @@ }, "level-ws": { "version": "0.0.0", - "resolved": "https://registry.npmmirror.com/level-ws/download/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", "dev": true, "requires": { "readable-stream": "~1.0.15", @@ -35110,20 +35153,20 @@ "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/isarray/download/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "object-keys": { "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/object-keys/download/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", "dev": true }, "readable-stream": { "version": "1.0.34", - "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -35134,14 +35177,14 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmmirror.com/string_decoder/download/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, "xtend": { "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/xtend/download/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", "dev": true, "requires": { "object-keys": "~0.4.0" @@ -35373,8 +35416,8 @@ }, "lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/lodash.debounce/download/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "lodash.escaperegexp": { @@ -35383,6 +35426,12 @@ "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", "dev": true }, + "lodash.flatmap": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", + "integrity": "sha512-/OcpcAGWlrZyoHGeHh3cAoa6nGdX6QYtmzNP84Jqol6UEQQ2gIaU3H+0eICcjcKGl0/XF8LWOujNn9lffsnaOg==", + "dev": true + }, "lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmmirror.com/lodash.flatten/download/lodash.flatten-4.4.0.tgz", @@ -35802,8 +35851,8 @@ }, "merkle-patricia-tree": { "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/merkle-patricia-tree/download/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha1-mCyhtaD94A7tL2ru0fkVKGC4IIo=", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", "dev": true, "requires": { "async": "^1.4.2", @@ -35818,8 +35867,8 @@ "dependencies": { "abstract-leveldown": { "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/abstract-leveldown/download/abstract-leveldown-2.6.3.tgz", - "integrity": "sha1-HF6Mal75Za6MNd+zqHcMR2uCxLg=", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", "dev": true, "requires": { "xtend": "~4.0.0" @@ -35827,14 +35876,14 @@ }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmmirror.com/async/download/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", "dev": true }, "deferred-leveldown": { "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/deferred-leveldown/download/deferred-leveldown-1.2.2.tgz", - "integrity": "sha1-Os0uC3XRZpkkvApLZChRExFz4es=", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", "dev": true, "requires": { "abstract-leveldown": "~2.6.0" @@ -35842,8 +35891,8 @@ }, "ethereumjs-util": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "requires": { "bn.js": "^4.11.0", @@ -35855,22 +35904,16 @@ "safe-buffer": "^5.1.1" } }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/isarray/download/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, "level-codec": { "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/level-codec/download/level-codec-7.0.1.tgz", - "integrity": "sha1-NB8i+QfODxZ2PyS93WgeOVoPuKc=", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", "dev": true }, "level-errors": { "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/level-errors/download/level-errors-1.0.5.tgz", - "integrity": "sha1-g9v7EvC4olFr3JoxxIdgOOInuFk=", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", "dev": true, "requires": { "errno": "~0.1.1" @@ -35878,8 +35921,8 @@ }, "level-iterator-stream": { "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/level-iterator-stream/download/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -35888,10 +35931,16 @@ "xtend": "^4.0.0" }, "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -35899,12 +35948,18 @@ "isarray": "0.0.1", "string_decoder": "~0.10.x" } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true } } }, "levelup": { "version": "1.3.9", - "resolved": "https://registry.npmmirror.com/levelup/download/levelup-1.3.9.tgz", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", "dev": true, "requires": { @@ -35919,14 +35974,14 @@ }, "process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -35936,42 +35991,28 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "semver": { "version": "5.4.1", - "resolved": "https://registry.npmmirror.com/semver/download/semver-5.4.1.tgz?cache=0&sync_timestamp=1632475048843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsemver%2Fdownload%2Fsemver-5.4.1.tgz", - "integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4=", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true }, "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmmirror.com/string_decoder/download/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } } } }, @@ -37056,6 +37097,7 @@ "resolved": "https://registry.npmmirror.com/node-fetch/download/node-fetch-2.6.6.tgz", "integrity": "sha1-F1GnwBg06OFpd1hzLp77burfr4k=", "dev": true, + "optional": true, "requires": { "whatwg-url": "^5.0.0" } @@ -37226,9 +37268,9 @@ } }, "node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "nofilter": { @@ -38834,8 +38876,8 @@ }, "precond": { "version": "0.2.3", - "resolved": "https://registry.npmmirror.com/precond/download/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", "dev": true }, "prelude-ls": { @@ -38962,8 +39004,8 @@ }, "promise-to-callback": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/promise-to-callback/download/promise-to-callback-1.0.0.tgz", - "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", + "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", + "integrity": "sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==", "dev": true, "requires": { "is-fn": "^1.0.0", @@ -39740,8 +39782,8 @@ }, "rustbn.js": { "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/rustbn.js/download/rustbn.js-0.2.0.tgz", - "integrity": "sha1-gILLiG5wcVX9HLbyO9WRq41V0Mo=", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", "dev": true }, "rxjs": { @@ -39771,8 +39813,8 @@ }, "safe-event-emitter": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/safe-event-emitter/download/safe-event-emitter-1.0.1.tgz", - "integrity": "sha1-W2ku8iMp7Y9p/c5gflDKc09vIK8=", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", "dev": true, "requires": { "events": "^3.0.0" @@ -39855,8 +39897,8 @@ }, "semaphore": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/semaphore/download/semaphore-1.1.0.tgz", - "integrity": "sha1-qq2LhrIP6OmzKxbcLuaCqM0mqKo=", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", "dev": true }, "semver": { @@ -39966,8 +40008,8 @@ }, "set-immediate-shim": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", "dev": true }, "set-value": { @@ -41457,7 +41499,8 @@ "version": "2.3.1", "resolved": "https://registry.npmmirror.com/tslib/download/tslib-2.3.1.tgz", "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=", - "dev": true + "dev": true, + "optional": true }, "tty-browserify": { "version": "0.0.0", @@ -41808,9 +41851,9 @@ "optional": true }, "update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -42890,151 +42933,6 @@ "web3-utils": "1.5.3" } }, - "web3-provider-engine": { - "version": "16.0.3", - "resolved": "https://registry.npmmirror.com/web3-provider-engine/download/web3-provider-engine-16.0.3.tgz", - "integrity": "sha1-j/k+3zqNovcNf4XFEWAowGoNnwc=", - "dev": true, - "requires": { - "@ethereumjs/tx": "^3.3.0", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-filters": "^4.2.1", - "eth-json-rpc-infura": "^5.1.0", - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/eth-sig-util/download/eth-sig-util-1.4.2.tgz", - "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", - "dev": true, - "requires": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.1" - } - }, - "ethereumjs-abi": { - "version": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", - "integrity": "sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w==", - "dev": true, - "from": "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git", - "requires": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-6.2.1.tgz", - "integrity": "sha1-/LTk3Vzqy50jBUJqsaXNk+MWO2k=", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } - } - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/ethereumjs-util/download/ethereumjs-util-5.2.1.tgz", - "integrity": "sha1-qDPw5fyn5bNhOE3HYwGnIfU3v2U=", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - } - } - }, - "ws": { - "version": "5.2.3", - "resolved": "https://registry.npmmirror.com/ws/download/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, "web3-providers-http": { "version": "1.5.3", "resolved": "https://registry.npmmirror.com/web3-providers-http/download/web3-providers-http-1.5.3.tgz", @@ -43363,8 +43261,8 @@ }, "whatwg-fetch": { "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/whatwg-fetch/download/whatwg-fetch-2.0.4.tgz", - "integrity": "sha1-3eal3zFfnTmZGqF2IYU9cguFVm8=", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", "dev": true }, "whatwg-url": { diff --git a/package.json b/package.json index 804f8c7..bc7e181 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "license": "ISC", "devDependencies": { "@openzeppelin/test-helpers": "^0.5.15", - "@truffle/hdwallet-provider": "^2.0.0", + "@truffle/hdwallet-provider": "^1.7.0", "chai": "^4.3.4", "prettier": "^2.7.1", "prettier-plugin-solidity": "^1.0.0-beta.24", diff --git a/truffle-config.js b/truffle-config.js index 64d8bb0..3a5fb96 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -268,7 +268,7 @@ module.exports = { }, development: { host: "127.0.0.1", // Localhost (default: none) - port: 9545, // Standard Ethereum port (default: none) + port: 8545, // Standard Ethereum port (default: none) network_id: "*", // Any network (default: none) }, },