diff --git a/.gitignore b/.gitignore index 71c3282..25fa2e7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ .DS_Store contracts/.DS_Store + +/node_modules +/build/contracts \ No newline at end of file diff --git a/README.md b/README.md index 00535b2..7320929 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,16 @@ Here are the major, core functions: - As an options trader, you will use partner platforms which will have the same core with various additional features. +### Test + +- Tests are written in test.js in test folder +- in optionsmarket.sol, comment out line 17 and uncomment line 18 where we have daiTokenAddress; +- un-comment the setDaiAddress function on line 68 +- run truffle develop to run an instance of a local blockchain with generated accounts +- "truffle migrate --reset" or "deploy" to deploy contracts +- there are 2 test tokens created for the purpose of testing +- still within truffle develop, run "test" to run test script + ### What's Next - Adding the ability to tokenize option positions, so they can be bought and sold before expiration. This starts by making simple transfers and transferFrom functions which include the optionID as a parameter. From there, another project or this one can tokenize positions. diff --git a/build/contracts/Address.json b/build/contracts/Address.json new file mode 100644 index 0000000..1bb9d91 --- /dev/null +++ b/build/contracts/Address.json @@ -0,0 +1,7934 @@ +{ + "contractName": "Address", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x3b4820cac4f127869f6eb496c1d74fa6ac86ed24071e0f94742e6aef20e7252c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23e1c7303c30a2ef9c9b3f861cda15c78e4c9697b4a7988f2bf7b21c392a02fb\",\"dweb:/ipfs/QmWQJh5MsXJZjSTzAs9n5gtrqWYgXwkBa6xfwD5KKGQgSC\"]}},\"version\":1}", + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ea59cf7dda1e14ff0136f4b0b561d5f760ffc7b8fb05e03117af0f3a73ff614864736f6c63430008000033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ea59cf7dda1e14ff0136f4b0b561d5f760ffc7b8fb05e03117af0f3a73ff614864736f6c63430008000033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "126:7518:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "126:7518:5:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n assembly {\n size := extcodesize(account)\n }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) private pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n", + "sourcePath": "@openzeppelin/contracts/utils/Address.sol", + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "exportedSymbols": { + "Address": [ + 1867 + ] + }, + "id": 1868, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1573, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:5" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1574, + "nodeType": "StructuredDocumentation", + "src": "58:67:5", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1867, + "linearizedBaseContracts": [ + 1867 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1590, + "nodeType": "Block", + "src": "784:311:5", + "statements": [ + { + "assignments": [ + 1583 + ], + "declarations": [ + { + "constant": false, + "id": 1583, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "981:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "981:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1584, + "nodeType": "VariableDeclarationStatement", + "src": "981:12:5" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "1012:52:5", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1026:28:5", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "1046:7:5" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "1034:11:5" + }, + "nodeType": "YulFunctionCall", + "src": "1034:20:5" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1026:4:5" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1577, + "isOffset": false, + "isSlot": false, + "src": "1046:7:5", + "valueSize": 1 + }, + { + "declaration": 1583, + "isOffset": false, + "isSlot": false, + "src": "1026:4:5", + "valueSize": 1 + } + ], + "id": 1585, + "nodeType": "InlineAssembly", + "src": "1003:61:5" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1586, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "1080:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1087:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1080:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1581, + "id": 1589, + "nodeType": "Return", + "src": "1073:15:5" + } + ] + }, + "documentation": { + "id": 1575, + "nodeType": "StructuredDocumentation", + "src": "148:565:5", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1591, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1577, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1591, + "src": "738:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "738:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "737:17:5" + }, + "returnParameters": { + "id": 1581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1580, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1591, + "src": "778:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1579, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "778:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "777:6:5" + }, + "scope": 1867, + "src": "718:377:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1624, + "nodeType": "Block", + "src": "2083:241:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1602, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2109:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1867", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1867", + "typeString": "library Address" + } + ], + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2101:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2101:7:5", + "typeDescriptions": {} + } + }, + "id": 1603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2101:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2101:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1605, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1596, + "src": "2126:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2101:31:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2134:31:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1599, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2093:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2093:73:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1609, + "nodeType": "ExpressionStatement", + "src": "2093:73:5" + }, + { + "assignments": [ + 1611, + null + ], + "declarations": [ + { + "constant": false, + "id": 1611, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1624, + "src": "2178:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1610, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2178:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1618, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2226:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1612, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1594, + "src": "2196:9:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "2196:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1614, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1596, + "src": "2218:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2196:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2196:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2177:52:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1620, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1611, + "src": "2247:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2256:60:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1619, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2239:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2239:78:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1623, + "nodeType": "ExpressionStatement", + "src": "2239:78:5" + } + ] + }, + "documentation": { + "id": 1592, + "nodeType": "StructuredDocumentation", + "src": "1101:906:5", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1625, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1594, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1625, + "src": "2031:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1593, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2031:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1596, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1625, + "src": "2058:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1595, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2058:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2030:43:5" + }, + "returnParameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [], + "src": "2083:0:5" + }, + "scope": 1867, + "src": "2012:312:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1641, + "nodeType": "Block", + "src": "3155:84:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1636, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1628, + "src": "3185:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1637, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1630, + "src": "3193:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3199:32:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1635, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1642, + 1662 + ], + "referencedDeclaration": 1662, + "src": "3172:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3172:60:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1634, + "id": 1640, + "nodeType": "Return", + "src": "3165:67:5" + } + ] + }, + "documentation": { + "id": 1626, + "nodeType": "StructuredDocumentation", + "src": "2330:731:5", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1642, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1642, + "src": "3088:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3088:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1630, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1642, + "src": "3104:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1629, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3104:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3087:35:5" + }, + "returnParameters": { + "id": 1634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1633, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1642, + "src": "3141:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1632, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3141:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3140:14:5" + }, + "scope": 1867, + "src": "3066:173:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1661, + "nodeType": "Block", + "src": "3608:76:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1655, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1645, + "src": "3647:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1656, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1647, + "src": "3655:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3661:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1658, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1649, + "src": "3664:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1654, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1682, + 1732 + ], + "referencedDeclaration": 1732, + "src": "3625:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3625:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1653, + "id": 1660, + "nodeType": "Return", + "src": "3618:59:5" + } + ] + }, + "documentation": { + "id": 1643, + "nodeType": "StructuredDocumentation", + "src": "3245:211:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1662, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1662, + "src": "3492:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3492:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1647, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1662, + "src": "3516:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1646, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3516:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1649, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1662, + "src": "3543:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3543:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3482:93:5" + }, + "returnParameters": { + "id": 1653, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1652, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1662, + "src": "3594:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1651, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3594:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3593:14:5" + }, + "scope": 1867, + "src": "3461:223:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1681, + "nodeType": "Block", + "src": "4189:111:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1675, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1665, + "src": "4228:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1676, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "4236:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1677, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "4242:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4249:43:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1674, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1682, + 1732 + ], + "referencedDeclaration": 1732, + "src": "4206:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4206:87:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1673, + "id": 1680, + "nodeType": "Return", + "src": "4199:94:5" + } + ] + }, + "documentation": { + "id": 1663, + "nodeType": "StructuredDocumentation", + "src": "3690:351:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1682, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1665, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1682, + "src": "4086:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4086:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1682, + "src": "4110:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1666, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4110:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1669, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1682, + "src": "4137:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4137:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4076:80:5" + }, + "returnParameters": { + "id": 1673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1672, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1682, + "src": "4175:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1671, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4175:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4174:14:5" + }, + "scope": 1867, + "src": "4046:254:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1731, + "nodeType": "Block", + "src": "4727:321:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1699, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4753:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1867", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1867", + "typeString": "library Address" + } + ], + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4745:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1697, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4745:7:5", + "typeDescriptions": {} + } + }, + "id": 1700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4745:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "4745:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1702, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "4770:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4745:30:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4777:40:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1696, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4737:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4737:81:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1706, + "nodeType": "ExpressionStatement", + "src": "4737:81:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1709, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "4847:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1708, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1591, + "src": "4836:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4836:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4856:31:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1707, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4828:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4828:60:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1713, + "nodeType": "ExpressionStatement", + "src": "4828:60:5" + }, + { + "assignments": [ + 1715, + 1717 + ], + "declarations": [ + { + "constant": false, + "id": 1715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "4900:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4900:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1717, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "4914:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4914:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1724, + "initialValue": { + "arguments": [ + { + "id": 1722, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "4967:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1718, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "4941:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "4941:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1720, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "4960:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "4941:25:5", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4941:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4899:73:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1726, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1715, + "src": "5007:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1727, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1717, + "src": "5016:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1728, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "5028:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1725, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "4989:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4989:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1695, + "id": 1730, + "nodeType": "Return", + "src": "4982:59:5" + } + ] + }, + "documentation": { + "id": 1683, + "nodeType": "StructuredDocumentation", + "src": "4306:237:5", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1732, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "4588:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4588:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "4612:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1686, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4612:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1689, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "4639:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4639:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1691, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "4662:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1690, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4662:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4578:116:5" + }, + "returnParameters": { + "id": 1695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1694, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "4713:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1693, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4713:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4712:14:5" + }, + "scope": 1867, + "src": "4548:500:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1748, + "nodeType": "Block", + "src": "5325:97:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1743, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "5361:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1744, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "5369:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5375:39:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1742, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1749, + 1784 + ], + "referencedDeclaration": 1784, + "src": "5342:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5342:73:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1741, + "id": 1747, + "nodeType": "Return", + "src": "5335:80:5" + } + ] + }, + "documentation": { + "id": 1733, + "nodeType": "StructuredDocumentation", + "src": "5054:166:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1749, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1735, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1749, + "src": "5253:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5253:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1737, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1749, + "src": "5269:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1736, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5269:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5252:35:5" + }, + "returnParameters": { + "id": 1741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1740, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1749, + "src": "5311:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1739, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5311:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5310:14:5" + }, + "scope": 1867, + "src": "5225:197:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1783, + "nodeType": "Block", + "src": "5764:229:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1763, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "5793:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1762, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1591, + "src": "5782:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5782:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5802:38:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1761, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "5774:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5774:67:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1767, + "nodeType": "ExpressionStatement", + "src": "5774:67:5" + }, + { + "assignments": [ + 1769, + 1771 + ], + "declarations": [ + { + "constant": false, + "id": 1769, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "5853:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1768, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5853:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1771, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "5867:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1770, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5867:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1776, + "initialValue": { + "arguments": [ + { + "id": 1774, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1754, + "src": "5912:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1772, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "5894:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "5894:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5894:23:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5852:65:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1778, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "5952:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1779, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1771, + "src": "5961:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1780, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "5973:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1777, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "5934:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5934:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1760, + "id": 1782, + "nodeType": "Return", + "src": "5927:59:5" + } + ] + }, + "documentation": { + "id": 1750, + "nodeType": "StructuredDocumentation", + "src": "5428:173:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1752, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1784, + "src": "5643:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5643:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1754, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1784, + "src": "5667:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1753, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5667:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1756, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1784, + "src": "5694:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1755, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5694:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5633:93:5" + }, + "returnParameters": { + "id": 1760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1759, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1784, + "src": "5750:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1758, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5750:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5749:14:5" + }, + "scope": 1867, + "src": "5606:387:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1800, + "nodeType": "Block", + "src": "6269:101:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1795, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "6307:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1796, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1789, + "src": "6315:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6321:41:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1794, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1801, + 1836 + ], + "referencedDeclaration": 1836, + "src": "6286:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6286:77:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1793, + "id": 1799, + "nodeType": "Return", + "src": "6279:84:5" + } + ] + }, + "documentation": { + "id": 1785, + "nodeType": "StructuredDocumentation", + "src": "5999:168:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1801, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1787, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1801, + "src": "6202:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1786, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6202:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1801, + "src": "6218:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1788, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6218:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6201:35:5" + }, + "returnParameters": { + "id": 1793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1792, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1801, + "src": "6255:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1791, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6255:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6254:14:5" + }, + "scope": 1867, + "src": "6172:198:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1835, + "nodeType": "Block", + "src": "6711:233:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1815, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1804, + "src": "6740:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1814, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1591, + "src": "6729:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6729:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6749:40:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1813, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6721:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6721:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1819, + "nodeType": "ExpressionStatement", + "src": "6721:69:5" + }, + { + "assignments": [ + 1821, + 1823 + ], + "declarations": [ + { + "constant": false, + "id": 1821, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1835, + "src": "6802:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1820, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6802:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1823, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1835, + "src": "6816:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1822, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6816:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1828, + "initialValue": { + "arguments": [ + { + "id": 1826, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1806, + "src": "6863:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1824, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1804, + "src": "6843:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "6843:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6843:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6801:67:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1830, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "6903:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1831, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "6912:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1832, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1808, + "src": "6924:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1829, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "6885:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6885:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1812, + "id": 1834, + "nodeType": "Return", + "src": "6878:59:5" + } + ] + }, + "documentation": { + "id": 1802, + "nodeType": "StructuredDocumentation", + "src": "6376:175:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1836, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1804, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1836, + "src": "6595:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6595:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1806, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1836, + "src": "6619:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1805, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6619:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1808, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1836, + "src": "6646:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1807, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6646:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6585:93:5" + }, + "returnParameters": { + "id": 1812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1811, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1836, + "src": "6697:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1810, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6697:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6696:14:5" + }, + "scope": 1867, + "src": "6556:388:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "7110:532:5", + "statements": [ + { + "condition": { + "id": 1847, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1838, + "src": "7124:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1863, + "nodeType": "Block", + "src": "7181:455:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1851, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1840, + "src": "7265:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7265:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7285:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7265:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1861, + "nodeType": "Block", + "src": "7573:53:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1858, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1842, + "src": "7598:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1857, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "7591:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7591:20:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1860, + "nodeType": "ExpressionStatement", + "src": "7591:20:5" + } + ] + }, + "id": 1862, + "nodeType": "IfStatement", + "src": "7261:365:5", + "trueBody": { + "id": 1856, + "nodeType": "Block", + "src": "7288:279:5", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "7408:145:5", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7430:40:5", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "7459:10:5" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7453:5:5" + }, + "nodeType": "YulFunctionCall", + "src": "7453:17:5" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "7434:15:5", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7502:2:5", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "7506:10:5" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7498:3:5" + }, + "nodeType": "YulFunctionCall", + "src": "7498:19:5" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "7519:15:5" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7491:6:5" + }, + "nodeType": "YulFunctionCall", + "src": "7491:44:5" + }, + "nodeType": "YulExpressionStatement", + "src": "7491:44:5" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1840, + "isOffset": false, + "isSlot": false, + "src": "7459:10:5", + "valueSize": 1 + }, + { + "declaration": 1840, + "isOffset": false, + "isSlot": false, + "src": "7506:10:5", + "valueSize": 1 + } + ], + "id": 1855, + "nodeType": "InlineAssembly", + "src": "7399:154:5" + } + ] + } + } + ] + }, + "id": 1864, + "nodeType": "IfStatement", + "src": "7120:516:5", + "trueBody": { + "id": 1850, + "nodeType": "Block", + "src": "7133:42:5", + "statements": [ + { + "expression": { + "id": 1848, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1840, + "src": "7154:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1846, + "id": 1849, + "nodeType": "Return", + "src": "7147:17:5" + } + ] + } + } + ] + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1838, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "6986:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1837, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6986:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1840, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "7008:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1839, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7008:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1842, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "7041:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1841, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7041:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6976:97:5" + }, + "returnParameters": { + "id": 1846, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1845, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "7096:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1844, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7096:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7095:14:5" + }, + "scope": 1867, + "src": "6950:692:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1868, + "src": "126:7518:5" + } + ], + "src": "33:7612:5" + }, + "legacyAST": { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "exportedSymbols": { + "Address": [ + 1867 + ] + }, + "id": 1868, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1573, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:5" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1574, + "nodeType": "StructuredDocumentation", + "src": "58:67:5", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1867, + "linearizedBaseContracts": [ + 1867 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1590, + "nodeType": "Block", + "src": "784:311:5", + "statements": [ + { + "assignments": [ + 1583 + ], + "declarations": [ + { + "constant": false, + "id": 1583, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "981:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "981:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1584, + "nodeType": "VariableDeclarationStatement", + "src": "981:12:5" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "1012:52:5", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1026:28:5", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "1046:7:5" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "1034:11:5" + }, + "nodeType": "YulFunctionCall", + "src": "1034:20:5" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1026:4:5" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1577, + "isOffset": false, + "isSlot": false, + "src": "1046:7:5", + "valueSize": 1 + }, + { + "declaration": 1583, + "isOffset": false, + "isSlot": false, + "src": "1026:4:5", + "valueSize": 1 + } + ], + "id": 1585, + "nodeType": "InlineAssembly", + "src": "1003:61:5" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1586, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "1080:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1087:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1080:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1581, + "id": 1589, + "nodeType": "Return", + "src": "1073:15:5" + } + ] + }, + "documentation": { + "id": 1575, + "nodeType": "StructuredDocumentation", + "src": "148:565:5", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1591, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1577, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1591, + "src": "738:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "738:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "737:17:5" + }, + "returnParameters": { + "id": 1581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1580, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1591, + "src": "778:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1579, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "778:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "777:6:5" + }, + "scope": 1867, + "src": "718:377:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1624, + "nodeType": "Block", + "src": "2083:241:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1602, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2109:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1867", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1867", + "typeString": "library Address" + } + ], + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2101:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2101:7:5", + "typeDescriptions": {} + } + }, + "id": 1603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2101:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2101:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1605, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1596, + "src": "2126:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2101:31:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2134:31:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1599, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2093:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2093:73:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1609, + "nodeType": "ExpressionStatement", + "src": "2093:73:5" + }, + { + "assignments": [ + 1611, + null + ], + "declarations": [ + { + "constant": false, + "id": 1611, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1624, + "src": "2178:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1610, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2178:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1618, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2226:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1612, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1594, + "src": "2196:9:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "2196:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1614, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1596, + "src": "2218:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2196:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2196:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2177:52:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1620, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1611, + "src": "2247:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2256:60:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1619, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2239:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2239:78:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1623, + "nodeType": "ExpressionStatement", + "src": "2239:78:5" + } + ] + }, + "documentation": { + "id": 1592, + "nodeType": "StructuredDocumentation", + "src": "1101:906:5", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1625, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1594, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1625, + "src": "2031:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1593, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2031:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1596, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1625, + "src": "2058:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1595, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2058:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2030:43:5" + }, + "returnParameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [], + "src": "2083:0:5" + }, + "scope": 1867, + "src": "2012:312:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1641, + "nodeType": "Block", + "src": "3155:84:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1636, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1628, + "src": "3185:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1637, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1630, + "src": "3193:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3199:32:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1635, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1642, + 1662 + ], + "referencedDeclaration": 1662, + "src": "3172:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3172:60:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1634, + "id": 1640, + "nodeType": "Return", + "src": "3165:67:5" + } + ] + }, + "documentation": { + "id": 1626, + "nodeType": "StructuredDocumentation", + "src": "2330:731:5", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1642, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1642, + "src": "3088:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3088:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1630, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1642, + "src": "3104:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1629, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3104:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3087:35:5" + }, + "returnParameters": { + "id": 1634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1633, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1642, + "src": "3141:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1632, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3141:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3140:14:5" + }, + "scope": 1867, + "src": "3066:173:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1661, + "nodeType": "Block", + "src": "3608:76:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1655, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1645, + "src": "3647:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1656, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1647, + "src": "3655:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3661:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1658, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1649, + "src": "3664:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1654, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1682, + 1732 + ], + "referencedDeclaration": 1732, + "src": "3625:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3625:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1653, + "id": 1660, + "nodeType": "Return", + "src": "3618:59:5" + } + ] + }, + "documentation": { + "id": 1643, + "nodeType": "StructuredDocumentation", + "src": "3245:211:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1662, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1662, + "src": "3492:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3492:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1647, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1662, + "src": "3516:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1646, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3516:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1649, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1662, + "src": "3543:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3543:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3482:93:5" + }, + "returnParameters": { + "id": 1653, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1652, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1662, + "src": "3594:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1651, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3594:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3593:14:5" + }, + "scope": 1867, + "src": "3461:223:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1681, + "nodeType": "Block", + "src": "4189:111:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1675, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1665, + "src": "4228:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1676, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "4236:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1677, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "4242:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4249:43:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1674, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1682, + 1732 + ], + "referencedDeclaration": 1732, + "src": "4206:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4206:87:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1673, + "id": 1680, + "nodeType": "Return", + "src": "4199:94:5" + } + ] + }, + "documentation": { + "id": 1663, + "nodeType": "StructuredDocumentation", + "src": "3690:351:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1682, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1665, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1682, + "src": "4086:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4086:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1682, + "src": "4110:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1666, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4110:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1669, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1682, + "src": "4137:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4137:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4076:80:5" + }, + "returnParameters": { + "id": 1673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1672, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1682, + "src": "4175:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1671, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4175:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4174:14:5" + }, + "scope": 1867, + "src": "4046:254:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1731, + "nodeType": "Block", + "src": "4727:321:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1699, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4753:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1867", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1867", + "typeString": "library Address" + } + ], + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4745:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1697, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4745:7:5", + "typeDescriptions": {} + } + }, + "id": 1700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4745:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "4745:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1702, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "4770:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4745:30:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4777:40:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1696, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4737:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4737:81:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1706, + "nodeType": "ExpressionStatement", + "src": "4737:81:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1709, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "4847:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1708, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1591, + "src": "4836:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4836:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4856:31:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1707, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4828:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4828:60:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1713, + "nodeType": "ExpressionStatement", + "src": "4828:60:5" + }, + { + "assignments": [ + 1715, + 1717 + ], + "declarations": [ + { + "constant": false, + "id": 1715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "4900:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4900:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1717, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "4914:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4914:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1724, + "initialValue": { + "arguments": [ + { + "id": 1722, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "4967:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1718, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "4941:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "4941:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1720, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "4960:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "4941:25:5", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4941:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4899:73:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1726, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1715, + "src": "5007:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1727, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1717, + "src": "5016:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1728, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "5028:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1725, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "4989:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4989:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1695, + "id": 1730, + "nodeType": "Return", + "src": "4982:59:5" + } + ] + }, + "documentation": { + "id": 1683, + "nodeType": "StructuredDocumentation", + "src": "4306:237:5", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1732, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "4588:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4588:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "4612:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1686, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4612:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1689, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "4639:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4639:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1691, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "4662:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1690, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4662:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4578:116:5" + }, + "returnParameters": { + "id": 1695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1694, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "4713:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1693, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4713:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4712:14:5" + }, + "scope": 1867, + "src": "4548:500:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1748, + "nodeType": "Block", + "src": "5325:97:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1743, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "5361:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1744, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "5369:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5375:39:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1742, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1749, + 1784 + ], + "referencedDeclaration": 1784, + "src": "5342:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5342:73:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1741, + "id": 1747, + "nodeType": "Return", + "src": "5335:80:5" + } + ] + }, + "documentation": { + "id": 1733, + "nodeType": "StructuredDocumentation", + "src": "5054:166:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1749, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1735, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1749, + "src": "5253:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5253:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1737, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1749, + "src": "5269:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1736, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5269:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5252:35:5" + }, + "returnParameters": { + "id": 1741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1740, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1749, + "src": "5311:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1739, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5311:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5310:14:5" + }, + "scope": 1867, + "src": "5225:197:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1783, + "nodeType": "Block", + "src": "5764:229:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1763, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "5793:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1762, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1591, + "src": "5782:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5782:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5802:38:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1761, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "5774:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5774:67:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1767, + "nodeType": "ExpressionStatement", + "src": "5774:67:5" + }, + { + "assignments": [ + 1769, + 1771 + ], + "declarations": [ + { + "constant": false, + "id": 1769, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "5853:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1768, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5853:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1771, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "5867:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1770, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5867:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1776, + "initialValue": { + "arguments": [ + { + "id": 1774, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1754, + "src": "5912:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1772, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "5894:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "5894:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5894:23:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5852:65:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1778, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "5952:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1779, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1771, + "src": "5961:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1780, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "5973:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1777, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "5934:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5934:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1760, + "id": 1782, + "nodeType": "Return", + "src": "5927:59:5" + } + ] + }, + "documentation": { + "id": 1750, + "nodeType": "StructuredDocumentation", + "src": "5428:173:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1752, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1784, + "src": "5643:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5643:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1754, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1784, + "src": "5667:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1753, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5667:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1756, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1784, + "src": "5694:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1755, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5694:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5633:93:5" + }, + "returnParameters": { + "id": 1760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1759, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1784, + "src": "5750:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1758, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5750:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5749:14:5" + }, + "scope": 1867, + "src": "5606:387:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1800, + "nodeType": "Block", + "src": "6269:101:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1795, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "6307:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1796, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1789, + "src": "6315:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6321:41:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1794, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1801, + 1836 + ], + "referencedDeclaration": 1836, + "src": "6286:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6286:77:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1793, + "id": 1799, + "nodeType": "Return", + "src": "6279:84:5" + } + ] + }, + "documentation": { + "id": 1785, + "nodeType": "StructuredDocumentation", + "src": "5999:168:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1801, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1787, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1801, + "src": "6202:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1786, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6202:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1801, + "src": "6218:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1788, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6218:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6201:35:5" + }, + "returnParameters": { + "id": 1793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1792, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1801, + "src": "6255:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1791, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6255:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6254:14:5" + }, + "scope": 1867, + "src": "6172:198:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1835, + "nodeType": "Block", + "src": "6711:233:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1815, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1804, + "src": "6740:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1814, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1591, + "src": "6729:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6729:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6749:40:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1813, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6721:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6721:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1819, + "nodeType": "ExpressionStatement", + "src": "6721:69:5" + }, + { + "assignments": [ + 1821, + 1823 + ], + "declarations": [ + { + "constant": false, + "id": 1821, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1835, + "src": "6802:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1820, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6802:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1823, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1835, + "src": "6816:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1822, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6816:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1828, + "initialValue": { + "arguments": [ + { + "id": 1826, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1806, + "src": "6863:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1824, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1804, + "src": "6843:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "6843:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6843:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6801:67:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1830, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "6903:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1831, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "6912:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1832, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1808, + "src": "6924:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1829, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "6885:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6885:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1812, + "id": 1834, + "nodeType": "Return", + "src": "6878:59:5" + } + ] + }, + "documentation": { + "id": 1802, + "nodeType": "StructuredDocumentation", + "src": "6376:175:5", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1836, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1804, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1836, + "src": "6595:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6595:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1806, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1836, + "src": "6619:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1805, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6619:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1808, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1836, + "src": "6646:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1807, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6646:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6585:93:5" + }, + "returnParameters": { + "id": 1812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1811, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1836, + "src": "6697:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1810, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6697:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6696:14:5" + }, + "scope": 1867, + "src": "6556:388:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "7110:532:5", + "statements": [ + { + "condition": { + "id": 1847, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1838, + "src": "7124:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1863, + "nodeType": "Block", + "src": "7181:455:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1851, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1840, + "src": "7265:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7265:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7285:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7265:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1861, + "nodeType": "Block", + "src": "7573:53:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1858, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1842, + "src": "7598:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1857, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "7591:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7591:20:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1860, + "nodeType": "ExpressionStatement", + "src": "7591:20:5" + } + ] + }, + "id": 1862, + "nodeType": "IfStatement", + "src": "7261:365:5", + "trueBody": { + "id": 1856, + "nodeType": "Block", + "src": "7288:279:5", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "7408:145:5", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7430:40:5", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "7459:10:5" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7453:5:5" + }, + "nodeType": "YulFunctionCall", + "src": "7453:17:5" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "7434:15:5", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7502:2:5", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "7506:10:5" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7498:3:5" + }, + "nodeType": "YulFunctionCall", + "src": "7498:19:5" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "7519:15:5" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7491:6:5" + }, + "nodeType": "YulFunctionCall", + "src": "7491:44:5" + }, + "nodeType": "YulExpressionStatement", + "src": "7491:44:5" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1840, + "isOffset": false, + "isSlot": false, + "src": "7459:10:5", + "valueSize": 1 + }, + { + "declaration": 1840, + "isOffset": false, + "isSlot": false, + "src": "7506:10:5", + "valueSize": 1 + } + ], + "id": 1855, + "nodeType": "InlineAssembly", + "src": "7399:154:5" + } + ] + } + } + ] + }, + "id": 1864, + "nodeType": "IfStatement", + "src": "7120:516:5", + "trueBody": { + "id": 1850, + "nodeType": "Block", + "src": "7133:42:5", + "statements": [ + { + "expression": { + "id": 1848, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1840, + "src": "7154:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1846, + "id": 1849, + "nodeType": "Return", + "src": "7147:17:5" + } + ] + } + } + ] + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1838, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "6986:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1837, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6986:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1840, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "7008:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1839, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7008:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1842, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "7041:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1841, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7041:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6976:97:5" + }, + "returnParameters": { + "id": 1846, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1845, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "7096:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1844, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7096:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7095:14:5" + }, + "scope": 1867, + "src": "6950:692:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1868, + "src": "126:7518:5" + } + ], + "src": "33:7612:5" + }, + "compiler": { + "name": "solc", + "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.1", + "updatedAt": "2021-07-23T13:44:59.387Z", + "devdoc": { + "details": "Collection of functions related to the address type", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/Core.json b/build/contracts/Core.json new file mode 100644 index 0000000..82d1b89 --- /dev/null +++ b/build/contracts/Core.json @@ -0,0 +1,48856 @@ +{ + "contractName": "Core", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "optionId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "excersizeCost", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "OptionExcersize", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountSelling", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "orderId", + "type": "uint256" + } + ], + "name": "OptionOffer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "OptionPurchase", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback", + "payable": true + }, + { + "inputs": [], + "name": "daiTokenAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "lastOrderId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "lastPurchaseId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "optionOffers", + "outputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountUnderlyingToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "offeredTimestamp", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isStillValid", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "optionPurchases", + "outputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountUnderlyingToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "offerId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchasedTimestamp", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "exercized", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "orderbook", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "positions", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "tokenActivated", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_daiAddress", + "type": "address" + } + ], + "name": "setDaiAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "excersizeOption", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "purchaseIds", + "type": "uint256[]" + } + ], + "name": "excersizeOptions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountUnderlyingToken", + "type": "uint256" + } + ], + "name": "sellOption", + "outputs": [ + { + "internalType": "uint256", + "name": "orderIdentifier", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "offerId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + } + ], + "name": "buyOptionByID", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + } + ], + "name": "buyOptionByExactPremiumAndExpiry", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "offerId", + "type": "uint256" + } + ], + "name": "cancelOptionOffer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + } + ], + "name": "isOptionBuyable", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "designee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "designee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "approval", + "outputs": [ + { + "internalType": "uint256", + "name": "approvalAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"purchaseId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"optionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"excersizeCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"OptionExcersize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCallOption\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"strikePrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountSelling\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"}],\"name\":\"OptionOffer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCallOption\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"strikePrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountPurchasing\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"purchaseId\",\"type\":\"uint256\"}],\"name\":\"OptionPurchase\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"purchaseId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"designee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"purchaseId\",\"type\":\"uint256\"}],\"name\":\"approval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"approvalAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"designee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchaseId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isCallOption\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"strikePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountPurchasing\",\"type\":\"uint256\"}],\"name\":\"buyOptionByExactPremiumAndExpiry\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offerId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountPurchasing\",\"type\":\"uint256\"}],\"name\":\"buyOptionByID\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offerId\",\"type\":\"uint256\"}],\"name\":\"cancelOptionOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daiTokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"purchaseId\",\"type\":\"uint256\"}],\"name\":\"excersizeOption\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purchaseIds\",\"type\":\"uint256[]\"}],\"name\":\"excersizeOptions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isCallOption\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"strikePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountPurchasing\",\"type\":\"uint256\"}],\"name\":\"isOptionBuyable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastPurchaseId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"optionOffers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isCallOption\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"strikePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountUnderlyingToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"offeredTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isStillValid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"optionPurchases\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isCallOption\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"strikePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountUnderlyingToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"offerId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchasedTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exercized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"orderbook\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isCallOption\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"strikePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountUnderlyingToken\",\"type\":\"uint256\"}],\"name\":\"sellOption\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderIdentifier\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_daiAddress\",\"type\":\"address\"}],\"name\":\"setDaiAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenActivated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchaseId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchaseId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/optionsmarket.sol\":\"Core\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/optionsmarket.sol\":{\"keccak256\":\"0x609a7c5a542ebdf87e18ae5286616652d4510cc86e21bf6673496354ded75685\",\"urls\":[\"bzz-raw://59ad5b4632930cca1513c1d3f070ec89f43aef7e89947908b817d5fe0ecd7490\",\"dweb:/ipfs/QmZ6vtiapCg8PDsyRjpE8x3mJxBh4haJbmF3j3WmKFQjaV\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x842ccf9a6cd33e17b7acef8372ca42090755217b358fe0c44c98e951ea549d3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6cc5f36034a77d105263ae6d8cc18b16260b4a0f6cdb1a26f21ba3670fdd06dd\",\"dweb:/ipfs/QmdJrJ2LoG546BkfyZPta96BNmaVBfqZoh8kq7PqHuQyPk\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x02348b2e4b9f3200c7e3907c5c2661643a6d8520e9f79939fbb9b4005a54894d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d41d627f4ef9c6006df8c2d01227d3cf4a6c3359b5704c629d88933272eecadd\",\"dweb:/ipfs/QmYDo7MvMsvuDxuJZ9RC9zFganS3Tm8RYzSmBP5qSmJfuY\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x3b4820cac4f127869f6eb496c1d74fa6ac86ed24071e0f94742e6aef20e7252c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23e1c7303c30a2ef9c9b3f861cda15c78e4c9697b4a7988f2bf7b21c392a02fb\",\"dweb:/ipfs/QmWQJh5MsXJZjSTzAs9n5gtrqWYgXwkBa6xfwD5KKGQgSC\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x8666f020bd8fc9dc14f07e2ebc52b5f236ab4cdde7c77679b08cb2f94730043b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://163776cbf565c722232393aa2d62cbe8a2ffb5805986abf4906c00e1e07450a6\",\"dweb:/ipfs/QmPZoN9T3cb6o8bGhjBPZcz7im8T8DWhpr3tjLwhJJHx9N\"]}},\"version\":1}", + "bytecode": "0x6080604052600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600755600060085534801561007d57600080fd5b506001600081905550614269806100956000396000f3fe6080604052600436106101225760003560e01c806361fa86e6116100a0578063a669359011610064578063a669359014610480578063e289ae81146104a9578063e57fcc20146104e6578063f789271c14610523578063fe99049a1461056057610123565b806361fa86e6146103615780637d4c82ca1461038c57806384d62178146103c957806386468c4214610406578063871f179f1461044357610123565b80632eaee35e116100e75780632eaee35e146102545780632f3f7d7f1461027f578063426a8493146102bc5780635662ecc7146102f95780635c52a5f21461032457610123565b8062b4fa3e14610125578063095bcdb61461016a5780630afc785414610193578063188783d6146101d057806323cfbf1a1461021757610123565b5b005b34801561013157600080fd5b5061014c60048036038101906101479190613340565b610589565b60405161016199989796959493929190613c0a565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c9190613287565b610631565b005b34801561019f57600080fd5b506101ba60048036038101906101b59190613340565b610642565b6040516101c79190613cf7565b60405180910390f35b3480156101dc57600080fd5b506101f760048036038101906101f29190613340565b610aba565b60405161020e9b9a99989796959493929190613ae1565b60405180910390f35b34801561022357600080fd5b5061023e60048036038101906102399190613340565b610b8e565b60405161024b9190613cf7565b60405180910390f35b34801561026057600080fd5b5061026961101b565b6040516102769190613a39565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190612f5c565b611041565b6040516102b39190613cf7565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190613287565b611061565b6040516102f09190613cf7565b60405180910390f35b34801561030557600080fd5b5061030e61124f565b60405161031b9190613f32565b60405180910390f35b34801561033057600080fd5b5061034b600480360381019061034691906131d5565b611255565b6040516103589190613f32565b60405180910390f35b34801561036d57600080fd5b506103766112dd565b6040516103839190613f32565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190612f85565b6112e3565b6040516103c09190613cf7565b60405180910390f35b3480156103d557600080fd5b506103f060048036038101906103eb9190613037565b61191e565b6040516103fd9190613f32565b60405180910390f35b34801561041257600080fd5b5061042d600480360381019061042891906132d6565b61196a565b60405161043a9190613cf7565b60405180910390f35b34801561044f57600080fd5b5061046a60048036038101906104659190613287565b6119e2565b6040516104779190613cf7565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190612f5c565b611f98565b005b3480156104b557600080fd5b506104d060048036038101906104cb91906130ae565b611fdc565b6040516104dd9190613f32565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190613137565b612035565b60405161051a9190613f32565b60405180910390f35b34801561052f57600080fd5b5061054a60048036038101906105459190613137565b6125eb565b6040516105579190613cf7565b60405180910390f35b34801561056c57600080fd5b5061058760048036038101906105829190613224565b6126d1565b005b600a6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16908060020154908060030154908060040154908060050154908060060154908060070160009054906101000a900460ff16905089565b61063d33848484612797565b505050565b60003373ffffffffffffffffffffffffffffffffffffffff16600a600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90613e72565b60405180910390fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600086815260200190815260200160002060010160149054906101000a900460ff161515151581526020019081526020016000206000600a60008681526020019081526020016000206002015481526020019081526020016000206000600a60008681526020019081526020016000206003015481526020019081526020016000206000600a60008681526020019081526020016000206004015481526020019081526020016000205490506000600a600085815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016108c7929190613cce565b602060405180830381600087803b1580156108e157600080fd5b505af11580156108f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109199190613317565b506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600089815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600089815260200190815260200160002060010160149054906101000a900460ff161515151581526020019081526020016000206000600a60008981526020019081526020016000206002015481526020019081526020016000206000600a60008981526020019081526020016000206003015481526020019081526020016000206000600a6000898152602001908152602001600020600401548152602001908152602001600020819055506000600a600087815260200190815260200160002060070160006101000a81548160ff02191690831515021790555060019350505050919050565b60096020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060030154908060040154908060050154908060060154908060070154908060080154908060090160009054906101000a900460ff1690508b565b60008015156009600084815260200190815260200160002060090160009054906101000a900460ff16151514610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090613d32565b60405180910390fd5b4260096000848152602001908152602001600020600501541015610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4990613e92565b60405180910390fd5b600060096000848152602001908152602001600020604051806101600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900460ff161515151581526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481526020016009820160009054906101000a900460ff161515151581525050905060008160400151905060008190506000610e1484608001518560e00151612e1b90919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd85600001518660200151846040518463ffffffff1660e01b8152600401610e7d93929190613c97565b602060405180830381600087803b158015610e9757600080fd5b505af1158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf9190613317565b610f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0590613ef2565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85600001518660e001516040518363ffffffff1660e01b8152600401610f51929190613cce565b602060405180830381600087803b158015610f6b57600080fd5b505af1158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa39190613317565b5060016009600088815260200190815260200160002060090160006101000a81548160ff0219169083151502179055507f5fd7d80018e9d1078709eb14daa12c7d0956c931e763e0ed2889aae7452672eb86824260405161100693929190613f76565b60405180910390a16001945050505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b60003373ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fe90613e12565b60405180910390fd5b8260096000848152602001908152602001600020600601541015611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790613e32565b60405180910390fd5b82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a78585604051611240929190613f4d565b60405180910390a39392505050565b60075481565b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509392505050565b60085481565b6000806112f5898989898989896125eb565b905080611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90613db2565b60405180910390fd5b80611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90613ed2565b60405180910390fd5b6000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008915151515815260200190815260200160002060008881526020019081526020016000206000878152602001908152602001600020600086815260200190815260200160002054905080841115611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613f12565b60405180910390fd5b60006114988588612e1b90919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd338d846040518463ffffffff1660e01b81526004016114f993929190613c97565b602060405180830381600087803b15801561151357600080fd5b505af1158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190613317565b61158a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158190613eb2565b60405180910390fd5b61166185600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002054612e3190919063ffffffff16565b600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a815260200190815260200160002060008981526020019081526020016000206000888152602001908152602001600020819055506117ef85600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b8152602001908152602001600020600089815260200190815260200160002054612e4790919063ffffffff16565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a81526020019081526020016000206000888152602001908152602001600020819055506118bc6001600854612e4790919063ffffffff16565b6008819055507fa424d29bf47b9249da68537a7ce50b17b8c471cff46be0dbfef01f474b2b75608c8c8c8c8c8c8c8c60085460405161190399989796959493929190613a54565b60405180910390a16001935050505098975050505050505050565b6005602052846000526040600020602052836000526040600020602052826000526040600020602052816000526040600020602052806000526040600020600094509450505050505481565b600080600090505b82518110156119d8576119c48382815181106119b7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610b8e565b5080806119d090614147565b915050611972565b5060019050919050565b600060011515600a600085815260200190815260200160002060070160009054906101000a900460ff16151514611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4590613d52565b60405180910390fd5b6000600a6000858152602001908152602001600020604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff16151515158152505090506000611bae826000015183602001518460400151856060015186608001518760a001518a6125eb565b905080611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be790613db2565b60405180910390fd5b8160c00151841115611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e90613df2565b60405180910390fd5b6000611c50858460800151612e1b90919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd338560000151846040518463ffffffff1660e01b8152600401611cb593929190613c97565b602060405180830381600087803b158015611ccf57600080fd5b505af1158015611ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d079190613317565b611d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3d90613eb2565b60405180910390fd5b611e358560046000866000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040015115151515815260200190815260200160002060008660600151815260200190815260200160002060008660800151815260200190815260200160002060008660a00151815260200190815260200160002054612e3190919063ffffffff16565b50611f0c85600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040015115151515815260200190815260200160002060008660600151815260200190815260200160002060008660a00151815260200190815260200160002054612e4790919063ffffffff16565b50611f236001600854612e4790919063ffffffff16565b6008819055507fa424d29bf47b9249da68537a7ce50b17b8c471cff46be0dbfef01f474b2b756087846000015185602001518660400151876060015188608001518960a001518c600854604051611f8299989796959493929190613a54565b60405180910390a1600193505050509392505050565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460205285600052604060002060205284600052604060002060205283600052604060002060205282600052604060002060205281600052604060002060205280600052604060002060009550955050505050505481565b60008087905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016120769190613a39565b60206040518083038186803b15801561208e57600080fd5b505afa1580156120a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c69190613369565b90508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b815260040161210593929190613c97565b602060405180830381600087803b15801561211f57600080fd5b505af1158015612133573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121579190613317565b5060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016121939190613a39565b60206040518083038186803b1580156121ab57600080fd5b505afa1580156121bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e39190613369565b90506121f88583612e4790919063ffffffff16565b81101561223a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223190613d72565b60405180910390fd5b6000600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002060008881526020019081526020016000205414156123d55784600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a81526020019081526020016000206000898152602001908152602001600020600088815260200190815260200160002081905550612575565b6124ac85600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002054612e4790919063ffffffff16565b600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a815260200190815260200160002060008981526020019081526020016000206000888152602001908152602001600020819055505b61258b6001600754612e4790919063ffffffff16565b6007819055507fe717931682f00f8755881436a6596ebc03672fbdb9cc19fb8188f2a4b94a5c9a8b8b8b8b8b8b8b6007546040516125d0989796959493929190613b8c565b60405180910390a16007549350505050979650505050505050565b600081600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008815151515815260200190815260200160002060008781526020019081526020016000206000868152602001908152602001600020600085815260200190815260200160002054106126c157600190506126c6565b600090505b979650505050505050565b60006126de858584611255565b905060008114612723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271a90613dd2565b60405180910390fd5b82811015612766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275d90613e52565b60405180910390fd5b61277285858585612797565b61278f846127898584612e3190919063ffffffff16565b84611061565b505050505050565b8373ffffffffffffffffffffffffffffffffffffffff166009600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461283b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283290613e12565b60405180910390fd5b8160096000838152602001908152602001600020600601541015612894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288b90613d92565b60405180910390fd5b600060096000838152602001908152602001600020604051806101600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900460ff161515151581526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481526020016009820160009054906101000a900460ff161515151581525050905080610140015115612a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6890613d12565b60405180910390fd5b612b4783600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846060015115151515815260200190815260200160002060008460800151815260200190815260200160002060008460c00151815260200190815260200160002054612e3190919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836060015115151515815260200190815260200160002060008360800151815260200190815260200160002060008360c00151815260200190815260200160002081905550612ce483600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846060015115151515815260200190815260200160002060008460800151815260200190815260200160002060008460c00151815260200190815260200160002054612e4790919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836060015115151515815260200190815260200160002060008360800151815260200190815260200160002060008360c001518152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc817d75deaa278e988c41cf549ef38fe195ab65e0e64cd67ba47f0d185690d58858542604051612e0c93929190613f76565b60405180910390a35050505050565b60008183612e299190614071565b905092915050565b60008183612e3f91906140cb565b905092915050565b60008183612e55919061401b565b905092915050565b6000612e70612e6b84613fde565b613fad565b90508083825260208201905082856020860282011115612e8f57600080fd5b60005b85811015612ebf5781612ea58882612f32565b845260208401935060208301925050600181019050612e92565b5050509392505050565b600081359050612ed8816141ee565b92915050565b600082601f830112612eef57600080fd5b8135612eff848260208601612e5d565b91505092915050565b600081359050612f1781614205565b92915050565b600081519050612f2c81614205565b92915050565b600081359050612f418161421c565b92915050565b600081519050612f568161421c565b92915050565b600060208284031215612f6e57600080fd5b6000612f7c84828501612ec9565b91505092915050565b600080600080600080600080610100898b031215612fa257600080fd5b6000612fb08b828c01612ec9565b9850506020612fc18b828c01612ec9565b9750506040612fd28b828c01612ec9565b9650506060612fe38b828c01612f08565b9550506080612ff48b828c01612f32565b94505060a06130058b828c01612f32565b93505060c06130168b828c01612f32565b92505060e06130278b828c01612f32565b9150509295985092959890939650565b600080600080600060a0868803121561304f57600080fd5b600061305d88828901612ec9565b955050602061306e88828901612ec9565b945050604061307f88828901612f08565b935050606061309088828901612f32565b92505060806130a188828901612f32565b9150509295509295909350565b60008060008060008060c087890312156130c757600080fd5b60006130d589828a01612ec9565b96505060206130e689828a01612ec9565b95505060406130f789828a01612f08565b945050606061310889828a01612f32565b935050608061311989828a01612f32565b92505060a061312a89828a01612f32565b9150509295509295509295565b600080600080600080600060e0888a03121561315257600080fd5b60006131608a828b01612ec9565b97505060206131718a828b01612ec9565b96505060406131828a828b01612f08565b95505060606131938a828b01612f32565b94505060806131a48a828b01612f32565b93505060a06131b58a828b01612f32565b92505060c06131c68a828b01612f32565b91505092959891949750929550565b6000806000606084860312156131ea57600080fd5b60006131f886828701612ec9565b935050602061320986828701612ec9565b925050604061321a86828701612f32565b9150509250925092565b6000806000806080858703121561323a57600080fd5b600061324887828801612ec9565b945050602061325987828801612ec9565b935050604061326a87828801612f32565b925050606061327b87828801612f32565b91505092959194509250565b60008060006060848603121561329c57600080fd5b60006132aa86828701612ec9565b93505060206132bb86828701612f32565b92505060406132cc86828701612f32565b9150509250925092565b6000602082840312156132e857600080fd5b600082013567ffffffffffffffff81111561330257600080fd5b61330e84828501612ede565b91505092915050565b60006020828403121561332957600080fd5b600061333784828501612f1d565b91505092915050565b60006020828403121561335257600080fd5b600061336084828501612f32565b91505092915050565b60006020828403121561337b57600080fd5b600061338984828501612f47565b91505092915050565b61339b816140ff565b82525050565b6133aa81614111565b82525050565b60006133bd60238361400a565b91507f63616e6e6f74207472616e7366657220616e206578657263697a6564206f707460008301527f696f6e00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061342360278361400a565b91507f54686973206f7074696f6e2068617320616c7265616479206265656e2065786360008301527f657273697a6564000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613489601e8361400a565b91507f54686973206f7074696f6e206973206e6f206c6f6e6765722076616c696400006000830152602082019050919050565b60006134c960408361400a565b91507f436f756c64206e6f74207472616e736665722074686520616d6f756e7420667260008301527f6f6d206d73672e73656e646572207468617420776173207265717565737465646020830152604082019050919050565b600061352f601e8361400a565b91507f43616e6e6f74207472616e666572206d6f7265207468616e206f776e656400006000830152602082019050919050565b600061356f60478361400a565b91507f54686973206f7074696f6e206973206e6f742062757961626c652e20506c656160008301527f736520636865636b207468652073656c6c65722773206f6666657220696e666f60208301527f726d6174696f6e000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006135fb600c8361400a565b91507f4e6f7420617070726f76656400000000000000000000000000000000000000006000830152602082019050919050565b600061363b602c8361400a565b91507f5468657265206973206e6f7420656e6f75676820696e76656e746f727920666f60008301527f722074686973206f7264657200000000000000000000000000000000000000006020830152604082019050919050565b60006136a1601e8361400a565b91507f5468652073656e646572206d757374206f776e20746865206f7074696f6e00006000830152602082019050919050565b60006136e1601e8361400a565b91507f43616e6e6f7420617070726f7665206d6f7265207468616e206f776e656400006000830152602082019050919050565b6000613721601c8361400a565b91507f4e6f7420617070726f76656420666f72207468697320616d6f756e74000000006000830152602082019050919050565b600061376160238361400a565b91507f546865206d73672e73656e6465722068617320746f206265207468652073656c60008301527f6c657200000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137c760378361400a565b91507f54686973206f7074696f6e20686173206e6f742072656163686564206974732060008301527f657863657273697a652074696d657374616d70207965740000000000000000006020830152604082019050919050565b600061382d604d8361400a565b91507f506c6561736520656e73757265207468617420796f752068617665206170707260008301527f6f766564207468697320636f6e747261637420746f2068616e646c6520796f7560208301527f722044414920286572726f7229000000000000000000000000000000000000006040830152606082019050919050565b60006138b960608361400a565b91507f536f7272793a207468657265206973206e6f206f6e652073656c6c696e67206f60008301527f7074696f6e732074686174206d65657420796f7572207370656369666963617460208301527f696f6e732e205065726861707320747279206275794f7074696f6e42794964736040830152606082019050919050565b600061394560528361400a565b91507f4469642074686520627579657220617070726f7665207468697320636f6e747260008301527f61637420746f2068616e646c6520444149206f72206861766520616e6f75676860208301527f2044414920746f20657863657273697a653f00000000000000000000000000006040830152606082019050919050565b60006139d1602d8361400a565b91507f205468657265206973206e6f7420656e6f75676820696e76656e746f7279206660008301527f6f722074686973206f72646572000000000000000000000000000000000000006020830152604082019050919050565b613a338161413d565b82525050565b6000602082019050613a4e6000830184613392565b92915050565b600061012082019050613a6a600083018c613392565b613a77602083018b613392565b613a84604083018a613392565b613a9160608301896133a1565b613a9e6080830188613a2a565b613aab60a0830187613a2a565b613ab860c0830186613a2a565b613ac560e0830185613a2a565b613ad3610100830184613a2a565b9a9950505050505050505050565b600061016082019050613af7600083018e613392565b613b04602083018d613392565b613b11604083018c613392565b613b1e606083018b6133a1565b613b2b608083018a613a2a565b613b3860a0830189613a2a565b613b4560c0830188613a2a565b613b5260e0830187613a2a565b613b60610100830186613a2a565b613b6e610120830185613a2a565b613b7c6101408301846133a1565b9c9b505050505050505050505050565b600061010082019050613ba2600083018b613392565b613baf602083018a613392565b613bbc60408301896133a1565b613bc96060830188613a2a565b613bd66080830187613a2a565b613be360a0830186613a2a565b613bf060c0830185613a2a565b613bfd60e0830184613a2a565b9998505050505050505050565b600061012082019050613c20600083018c613392565b613c2d602083018b613392565b613c3a604083018a6133a1565b613c476060830189613a2a565b613c546080830188613a2a565b613c6160a0830187613a2a565b613c6e60c0830186613a2a565b613c7b60e0830185613a2a565b613c896101008301846133a1565b9a9950505050505050505050565b6000606082019050613cac6000830186613392565b613cb96020830185613392565b613cc66040830184613a2a565b949350505050565b6000604082019050613ce36000830185613392565b613cf06020830184613a2a565b9392505050565b6000602082019050613d0c60008301846133a1565b92915050565b60006020820190508181036000830152613d2b816133b0565b9050919050565b60006020820190508181036000830152613d4b81613416565b9050919050565b60006020820190508181036000830152613d6b8161347c565b9050919050565b60006020820190508181036000830152613d8b816134bc565b9050919050565b60006020820190508181036000830152613dab81613522565b9050919050565b60006020820190508181036000830152613dcb81613562565b9050919050565b60006020820190508181036000830152613deb816135ee565b9050919050565b60006020820190508181036000830152613e0b8161362e565b9050919050565b60006020820190508181036000830152613e2b81613694565b9050919050565b60006020820190508181036000830152613e4b816136d4565b9050919050565b60006020820190508181036000830152613e6b81613714565b9050919050565b60006020820190508181036000830152613e8b81613754565b9050919050565b60006020820190508181036000830152613eab816137ba565b9050919050565b60006020820190508181036000830152613ecb81613820565b9050919050565b60006020820190508181036000830152613eeb816138ac565b9050919050565b60006020820190508181036000830152613f0b81613938565b9050919050565b60006020820190508181036000830152613f2b816139c4565b9050919050565b6000602082019050613f476000830184613a2a565b92915050565b6000604082019050613f626000830185613a2a565b613f6f6020830184613a2a565b9392505050565b6000606082019050613f8b6000830186613a2a565b613f986020830185613a2a565b613fa56040830184613a2a565b949350505050565b6000604051905081810181811067ffffffffffffffff82111715613fd457613fd36141bf565b5b8060405250919050565b600067ffffffffffffffff821115613ff957613ff86141bf565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006140268261413d565b91506140318361413d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561406657614065614190565b5b828201905092915050565b600061407c8261413d565b91506140878361413d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140c0576140bf614190565b5b828202905092915050565b60006140d68261413d565b91506140e18361413d565b9250828210156140f4576140f3614190565b5b828203905092915050565b600061410a8261411d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006141528261413d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561418557614184614190565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6141f7816140ff565b811461420257600080fd5b50565b61420e81614111565b811461421957600080fd5b50565b6142258161413d565b811461423057600080fd5b5056fea2646970667358221220d79c789787f607ffd12b4cbe17d0ed64f35dac8de576105803f6c686d9607d5464736f6c63430008000033", + "deployedBytecode": "0x6080604052600436106101225760003560e01c806361fa86e6116100a0578063a669359011610064578063a669359014610480578063e289ae81146104a9578063e57fcc20146104e6578063f789271c14610523578063fe99049a1461056057610123565b806361fa86e6146103615780637d4c82ca1461038c57806384d62178146103c957806386468c4214610406578063871f179f1461044357610123565b80632eaee35e116100e75780632eaee35e146102545780632f3f7d7f1461027f578063426a8493146102bc5780635662ecc7146102f95780635c52a5f21461032457610123565b8062b4fa3e14610125578063095bcdb61461016a5780630afc785414610193578063188783d6146101d057806323cfbf1a1461021757610123565b5b005b34801561013157600080fd5b5061014c60048036038101906101479190613340565b610589565b60405161016199989796959493929190613c0a565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c9190613287565b610631565b005b34801561019f57600080fd5b506101ba60048036038101906101b59190613340565b610642565b6040516101c79190613cf7565b60405180910390f35b3480156101dc57600080fd5b506101f760048036038101906101f29190613340565b610aba565b60405161020e9b9a99989796959493929190613ae1565b60405180910390f35b34801561022357600080fd5b5061023e60048036038101906102399190613340565b610b8e565b60405161024b9190613cf7565b60405180910390f35b34801561026057600080fd5b5061026961101b565b6040516102769190613a39565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190612f5c565b611041565b6040516102b39190613cf7565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190613287565b611061565b6040516102f09190613cf7565b60405180910390f35b34801561030557600080fd5b5061030e61124f565b60405161031b9190613f32565b60405180910390f35b34801561033057600080fd5b5061034b600480360381019061034691906131d5565b611255565b6040516103589190613f32565b60405180910390f35b34801561036d57600080fd5b506103766112dd565b6040516103839190613f32565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190612f85565b6112e3565b6040516103c09190613cf7565b60405180910390f35b3480156103d557600080fd5b506103f060048036038101906103eb9190613037565b61191e565b6040516103fd9190613f32565b60405180910390f35b34801561041257600080fd5b5061042d600480360381019061042891906132d6565b61196a565b60405161043a9190613cf7565b60405180910390f35b34801561044f57600080fd5b5061046a60048036038101906104659190613287565b6119e2565b6040516104779190613cf7565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190612f5c565b611f98565b005b3480156104b557600080fd5b506104d060048036038101906104cb91906130ae565b611fdc565b6040516104dd9190613f32565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190613137565b612035565b60405161051a9190613f32565b60405180910390f35b34801561052f57600080fd5b5061054a60048036038101906105459190613137565b6125eb565b6040516105579190613cf7565b60405180910390f35b34801561056c57600080fd5b5061058760048036038101906105829190613224565b6126d1565b005b600a6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16908060020154908060030154908060040154908060050154908060060154908060070160009054906101000a900460ff16905089565b61063d33848484612797565b505050565b60003373ffffffffffffffffffffffffffffffffffffffff16600a600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90613e72565b60405180910390fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600086815260200190815260200160002060010160149054906101000a900460ff161515151581526020019081526020016000206000600a60008681526020019081526020016000206002015481526020019081526020016000206000600a60008681526020019081526020016000206003015481526020019081526020016000206000600a60008681526020019081526020016000206004015481526020019081526020016000205490506000600a600085815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016108c7929190613cce565b602060405180830381600087803b1580156108e157600080fd5b505af11580156108f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109199190613317565b506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600089815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600089815260200190815260200160002060010160149054906101000a900460ff161515151581526020019081526020016000206000600a60008981526020019081526020016000206002015481526020019081526020016000206000600a60008981526020019081526020016000206003015481526020019081526020016000206000600a6000898152602001908152602001600020600401548152602001908152602001600020819055506000600a600087815260200190815260200160002060070160006101000a81548160ff02191690831515021790555060019350505050919050565b60096020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060030154908060040154908060050154908060060154908060070154908060080154908060090160009054906101000a900460ff1690508b565b60008015156009600084815260200190815260200160002060090160009054906101000a900460ff16151514610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090613d32565b60405180910390fd5b4260096000848152602001908152602001600020600501541015610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4990613e92565b60405180910390fd5b600060096000848152602001908152602001600020604051806101600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900460ff161515151581526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481526020016009820160009054906101000a900460ff161515151581525050905060008160400151905060008190506000610e1484608001518560e00151612e1b90919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd85600001518660200151846040518463ffffffff1660e01b8152600401610e7d93929190613c97565b602060405180830381600087803b158015610e9757600080fd5b505af1158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf9190613317565b610f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0590613ef2565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85600001518660e001516040518363ffffffff1660e01b8152600401610f51929190613cce565b602060405180830381600087803b158015610f6b57600080fd5b505af1158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa39190613317565b5060016009600088815260200190815260200160002060090160006101000a81548160ff0219169083151502179055507f5fd7d80018e9d1078709eb14daa12c7d0956c931e763e0ed2889aae7452672eb86824260405161100693929190613f76565b60405180910390a16001945050505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b60003373ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fe90613e12565b60405180910390fd5b8260096000848152602001908152602001600020600601541015611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790613e32565b60405180910390fd5b82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a78585604051611240929190613f4d565b60405180910390a39392505050565b60075481565b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509392505050565b60085481565b6000806112f5898989898989896125eb565b905080611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90613db2565b60405180910390fd5b80611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90613ed2565b60405180910390fd5b6000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008915151515815260200190815260200160002060008881526020019081526020016000206000878152602001908152602001600020600086815260200190815260200160002054905080841115611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613f12565b60405180910390fd5b60006114988588612e1b90919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd338d846040518463ffffffff1660e01b81526004016114f993929190613c97565b602060405180830381600087803b15801561151357600080fd5b505af1158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190613317565b61158a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158190613eb2565b60405180910390fd5b61166185600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002054612e3190919063ffffffff16565b600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a815260200190815260200160002060008981526020019081526020016000206000888152602001908152602001600020819055506117ef85600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b8152602001908152602001600020600089815260200190815260200160002054612e4790919063ffffffff16565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a81526020019081526020016000206000888152602001908152602001600020819055506118bc6001600854612e4790919063ffffffff16565b6008819055507fa424d29bf47b9249da68537a7ce50b17b8c471cff46be0dbfef01f474b2b75608c8c8c8c8c8c8c8c60085460405161190399989796959493929190613a54565b60405180910390a16001935050505098975050505050505050565b6005602052846000526040600020602052836000526040600020602052826000526040600020602052816000526040600020602052806000526040600020600094509450505050505481565b600080600090505b82518110156119d8576119c48382815181106119b7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610b8e565b5080806119d090614147565b915050611972565b5060019050919050565b600060011515600a600085815260200190815260200160002060070160009054906101000a900460ff16151514611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4590613d52565b60405180910390fd5b6000600a6000858152602001908152602001600020604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff16151515158152505090506000611bae826000015183602001518460400151856060015186608001518760a001518a6125eb565b905080611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be790613db2565b60405180910390fd5b8160c00151841115611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e90613df2565b60405180910390fd5b6000611c50858460800151612e1b90919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd338560000151846040518463ffffffff1660e01b8152600401611cb593929190613c97565b602060405180830381600087803b158015611ccf57600080fd5b505af1158015611ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d079190613317565b611d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3d90613eb2565b60405180910390fd5b611e358560046000866000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040015115151515815260200190815260200160002060008660600151815260200190815260200160002060008660800151815260200190815260200160002060008660a00151815260200190815260200160002054612e3190919063ffffffff16565b50611f0c85600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040015115151515815260200190815260200160002060008660600151815260200190815260200160002060008660a00151815260200190815260200160002054612e4790919063ffffffff16565b50611f236001600854612e4790919063ffffffff16565b6008819055507fa424d29bf47b9249da68537a7ce50b17b8c471cff46be0dbfef01f474b2b756087846000015185602001518660400151876060015188608001518960a001518c600854604051611f8299989796959493929190613a54565b60405180910390a1600193505050509392505050565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460205285600052604060002060205284600052604060002060205283600052604060002060205282600052604060002060205281600052604060002060205280600052604060002060009550955050505050505481565b60008087905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016120769190613a39565b60206040518083038186803b15801561208e57600080fd5b505afa1580156120a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c69190613369565b90508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b815260040161210593929190613c97565b602060405180830381600087803b15801561211f57600080fd5b505af1158015612133573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121579190613317565b5060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016121939190613a39565b60206040518083038186803b1580156121ab57600080fd5b505afa1580156121bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e39190613369565b90506121f88583612e4790919063ffffffff16565b81101561223a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223190613d72565b60405180910390fd5b6000600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002060008881526020019081526020016000205414156123d55784600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a81526020019081526020016000206000898152602001908152602001600020600088815260200190815260200160002081905550612575565b6124ac85600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002054612e4790919063ffffffff16565b600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a815260200190815260200160002060008981526020019081526020016000206000888152602001908152602001600020819055505b61258b6001600754612e4790919063ffffffff16565b6007819055507fe717931682f00f8755881436a6596ebc03672fbdb9cc19fb8188f2a4b94a5c9a8b8b8b8b8b8b8b6007546040516125d0989796959493929190613b8c565b60405180910390a16007549350505050979650505050505050565b600081600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008815151515815260200190815260200160002060008781526020019081526020016000206000868152602001908152602001600020600085815260200190815260200160002054106126c157600190506126c6565b600090505b979650505050505050565b60006126de858584611255565b905060008114612723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271a90613dd2565b60405180910390fd5b82811015612766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275d90613e52565b60405180910390fd5b61277285858585612797565b61278f846127898584612e3190919063ffffffff16565b84611061565b505050505050565b8373ffffffffffffffffffffffffffffffffffffffff166009600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461283b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283290613e12565b60405180910390fd5b8160096000838152602001908152602001600020600601541015612894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288b90613d92565b60405180910390fd5b600060096000838152602001908152602001600020604051806101600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900460ff161515151581526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481526020016009820160009054906101000a900460ff161515151581525050905080610140015115612a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6890613d12565b60405180910390fd5b612b4783600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846060015115151515815260200190815260200160002060008460800151815260200190815260200160002060008460c00151815260200190815260200160002054612e3190919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836060015115151515815260200190815260200160002060008360800151815260200190815260200160002060008360c00151815260200190815260200160002081905550612ce483600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846060015115151515815260200190815260200160002060008460800151815260200190815260200160002060008460c00151815260200190815260200160002054612e4790919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836060015115151515815260200190815260200160002060008360800151815260200190815260200160002060008360c001518152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc817d75deaa278e988c41cf549ef38fe195ab65e0e64cd67ba47f0d185690d58858542604051612e0c93929190613f76565b60405180910390a35050505050565b60008183612e299190614071565b905092915050565b60008183612e3f91906140cb565b905092915050565b60008183612e55919061401b565b905092915050565b6000612e70612e6b84613fde565b613fad565b90508083825260208201905082856020860282011115612e8f57600080fd5b60005b85811015612ebf5781612ea58882612f32565b845260208401935060208301925050600181019050612e92565b5050509392505050565b600081359050612ed8816141ee565b92915050565b600082601f830112612eef57600080fd5b8135612eff848260208601612e5d565b91505092915050565b600081359050612f1781614205565b92915050565b600081519050612f2c81614205565b92915050565b600081359050612f418161421c565b92915050565b600081519050612f568161421c565b92915050565b600060208284031215612f6e57600080fd5b6000612f7c84828501612ec9565b91505092915050565b600080600080600080600080610100898b031215612fa257600080fd5b6000612fb08b828c01612ec9565b9850506020612fc18b828c01612ec9565b9750506040612fd28b828c01612ec9565b9650506060612fe38b828c01612f08565b9550506080612ff48b828c01612f32565b94505060a06130058b828c01612f32565b93505060c06130168b828c01612f32565b92505060e06130278b828c01612f32565b9150509295985092959890939650565b600080600080600060a0868803121561304f57600080fd5b600061305d88828901612ec9565b955050602061306e88828901612ec9565b945050604061307f88828901612f08565b935050606061309088828901612f32565b92505060806130a188828901612f32565b9150509295509295909350565b60008060008060008060c087890312156130c757600080fd5b60006130d589828a01612ec9565b96505060206130e689828a01612ec9565b95505060406130f789828a01612f08565b945050606061310889828a01612f32565b935050608061311989828a01612f32565b92505060a061312a89828a01612f32565b9150509295509295509295565b600080600080600080600060e0888a03121561315257600080fd5b60006131608a828b01612ec9565b97505060206131718a828b01612ec9565b96505060406131828a828b01612f08565b95505060606131938a828b01612f32565b94505060806131a48a828b01612f32565b93505060a06131b58a828b01612f32565b92505060c06131c68a828b01612f32565b91505092959891949750929550565b6000806000606084860312156131ea57600080fd5b60006131f886828701612ec9565b935050602061320986828701612ec9565b925050604061321a86828701612f32565b9150509250925092565b6000806000806080858703121561323a57600080fd5b600061324887828801612ec9565b945050602061325987828801612ec9565b935050604061326a87828801612f32565b925050606061327b87828801612f32565b91505092959194509250565b60008060006060848603121561329c57600080fd5b60006132aa86828701612ec9565b93505060206132bb86828701612f32565b92505060406132cc86828701612f32565b9150509250925092565b6000602082840312156132e857600080fd5b600082013567ffffffffffffffff81111561330257600080fd5b61330e84828501612ede565b91505092915050565b60006020828403121561332957600080fd5b600061333784828501612f1d565b91505092915050565b60006020828403121561335257600080fd5b600061336084828501612f32565b91505092915050565b60006020828403121561337b57600080fd5b600061338984828501612f47565b91505092915050565b61339b816140ff565b82525050565b6133aa81614111565b82525050565b60006133bd60238361400a565b91507f63616e6e6f74207472616e7366657220616e206578657263697a6564206f707460008301527f696f6e00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061342360278361400a565b91507f54686973206f7074696f6e2068617320616c7265616479206265656e2065786360008301527f657273697a6564000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613489601e8361400a565b91507f54686973206f7074696f6e206973206e6f206c6f6e6765722076616c696400006000830152602082019050919050565b60006134c960408361400a565b91507f436f756c64206e6f74207472616e736665722074686520616d6f756e7420667260008301527f6f6d206d73672e73656e646572207468617420776173207265717565737465646020830152604082019050919050565b600061352f601e8361400a565b91507f43616e6e6f74207472616e666572206d6f7265207468616e206f776e656400006000830152602082019050919050565b600061356f60478361400a565b91507f54686973206f7074696f6e206973206e6f742062757961626c652e20506c656160008301527f736520636865636b207468652073656c6c65722773206f6666657220696e666f60208301527f726d6174696f6e000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006135fb600c8361400a565b91507f4e6f7420617070726f76656400000000000000000000000000000000000000006000830152602082019050919050565b600061363b602c8361400a565b91507f5468657265206973206e6f7420656e6f75676820696e76656e746f727920666f60008301527f722074686973206f7264657200000000000000000000000000000000000000006020830152604082019050919050565b60006136a1601e8361400a565b91507f5468652073656e646572206d757374206f776e20746865206f7074696f6e00006000830152602082019050919050565b60006136e1601e8361400a565b91507f43616e6e6f7420617070726f7665206d6f7265207468616e206f776e656400006000830152602082019050919050565b6000613721601c8361400a565b91507f4e6f7420617070726f76656420666f72207468697320616d6f756e74000000006000830152602082019050919050565b600061376160238361400a565b91507f546865206d73672e73656e6465722068617320746f206265207468652073656c60008301527f6c657200000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137c760378361400a565b91507f54686973206f7074696f6e20686173206e6f742072656163686564206974732060008301527f657863657273697a652074696d657374616d70207965740000000000000000006020830152604082019050919050565b600061382d604d8361400a565b91507f506c6561736520656e73757265207468617420796f752068617665206170707260008301527f6f766564207468697320636f6e747261637420746f2068616e646c6520796f7560208301527f722044414920286572726f7229000000000000000000000000000000000000006040830152606082019050919050565b60006138b960608361400a565b91507f536f7272793a207468657265206973206e6f206f6e652073656c6c696e67206f60008301527f7074696f6e732074686174206d65657420796f7572207370656369666963617460208301527f696f6e732e205065726861707320747279206275794f7074696f6e42794964736040830152606082019050919050565b600061394560528361400a565b91507f4469642074686520627579657220617070726f7665207468697320636f6e747260008301527f61637420746f2068616e646c6520444149206f72206861766520616e6f75676860208301527f2044414920746f20657863657273697a653f00000000000000000000000000006040830152606082019050919050565b60006139d1602d8361400a565b91507f205468657265206973206e6f7420656e6f75676820696e76656e746f7279206660008301527f6f722074686973206f72646572000000000000000000000000000000000000006020830152604082019050919050565b613a338161413d565b82525050565b6000602082019050613a4e6000830184613392565b92915050565b600061012082019050613a6a600083018c613392565b613a77602083018b613392565b613a84604083018a613392565b613a9160608301896133a1565b613a9e6080830188613a2a565b613aab60a0830187613a2a565b613ab860c0830186613a2a565b613ac560e0830185613a2a565b613ad3610100830184613a2a565b9a9950505050505050505050565b600061016082019050613af7600083018e613392565b613b04602083018d613392565b613b11604083018c613392565b613b1e606083018b6133a1565b613b2b608083018a613a2a565b613b3860a0830189613a2a565b613b4560c0830188613a2a565b613b5260e0830187613a2a565b613b60610100830186613a2a565b613b6e610120830185613a2a565b613b7c6101408301846133a1565b9c9b505050505050505050505050565b600061010082019050613ba2600083018b613392565b613baf602083018a613392565b613bbc60408301896133a1565b613bc96060830188613a2a565b613bd66080830187613a2a565b613be360a0830186613a2a565b613bf060c0830185613a2a565b613bfd60e0830184613a2a565b9998505050505050505050565b600061012082019050613c20600083018c613392565b613c2d602083018b613392565b613c3a604083018a6133a1565b613c476060830189613a2a565b613c546080830188613a2a565b613c6160a0830187613a2a565b613c6e60c0830186613a2a565b613c7b60e0830185613a2a565b613c896101008301846133a1565b9a9950505050505050505050565b6000606082019050613cac6000830186613392565b613cb96020830185613392565b613cc66040830184613a2a565b949350505050565b6000604082019050613ce36000830185613392565b613cf06020830184613a2a565b9392505050565b6000602082019050613d0c60008301846133a1565b92915050565b60006020820190508181036000830152613d2b816133b0565b9050919050565b60006020820190508181036000830152613d4b81613416565b9050919050565b60006020820190508181036000830152613d6b8161347c565b9050919050565b60006020820190508181036000830152613d8b816134bc565b9050919050565b60006020820190508181036000830152613dab81613522565b9050919050565b60006020820190508181036000830152613dcb81613562565b9050919050565b60006020820190508181036000830152613deb816135ee565b9050919050565b60006020820190508181036000830152613e0b8161362e565b9050919050565b60006020820190508181036000830152613e2b81613694565b9050919050565b60006020820190508181036000830152613e4b816136d4565b9050919050565b60006020820190508181036000830152613e6b81613714565b9050919050565b60006020820190508181036000830152613e8b81613754565b9050919050565b60006020820190508181036000830152613eab816137ba565b9050919050565b60006020820190508181036000830152613ecb81613820565b9050919050565b60006020820190508181036000830152613eeb816138ac565b9050919050565b60006020820190508181036000830152613f0b81613938565b9050919050565b60006020820190508181036000830152613f2b816139c4565b9050919050565b6000602082019050613f476000830184613a2a565b92915050565b6000604082019050613f626000830185613a2a565b613f6f6020830184613a2a565b9392505050565b6000606082019050613f8b6000830186613a2a565b613f986020830185613a2a565b613fa56040830184613a2a565b949350505050565b6000604051905081810181811067ffffffffffffffff82111715613fd457613fd36141bf565b5b8060405250919050565b600067ffffffffffffffff821115613ff957613ff86141bf565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006140268261413d565b91506140318361413d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561406657614065614190565b5b828201905092915050565b600061407c8261413d565b91506140878361413d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140c0576140bf614190565b5b828202905092915050565b60006140d68261413d565b91506140e18361413d565b9250828210156140f4576140f3614190565b5b828203905092915050565b600061410a8261411d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006141528261413d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561418557614184614190565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6141f7816140ff565b811461420257600080fd5b50565b61420e81614111565b811461421957600080fd5b50565b6142258161413d565b811461423057600080fd5b5056fea2646970667358221220d79c789787f607ffd12b4cbe17d0ed64f35dac8de576105803f6c686d9607d5464736f6c63430008000033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:33144:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "126:520:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "136:89:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "217:6:6" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "160:56:6" + }, + "nodeType": "YulFunctionCall", + "src": "160:64:6" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "145:14:6" + }, + "nodeType": "YulFunctionCall", + "src": "145:80:6" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "136:5:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "234:16:6", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "245:5:6" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "238:3:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "266:5:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "273:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "259:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "259:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "259:21:6" + }, + { + "nodeType": "YulAssignment", + "src": "281:23:6", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "292:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "299:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "288:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "288:16:6" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "281:3:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "313:17:6", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "324:6:6" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "317:3:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "388:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "391:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "381:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "381:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "381:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "349:3:6" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "358:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "366:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "354:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "354:17:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "345:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "345:27:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "374:3:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "342:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "342:36:6" + }, + "nodeType": "YulIf", + "src": "339:2:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "464:176:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "478:21:6", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "496:3:6" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "482:10:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "519:3:6" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "545:10:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "557:3:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "524:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "524:37:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "512:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "512:50:6" + }, + "nodeType": "YulExpressionStatement", + "src": "512:50:6" + }, + { + "nodeType": "YulAssignment", + "src": "575:21:6", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "586:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "591:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "582:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "582:14:6" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "575:3:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "609:21:6", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "620:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "625:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "616:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "616:14:6" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "609:3:6" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "426:1:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "429:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "423:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "423:13:6" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "437:18:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "439:14:6", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "448:1:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "451:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "444:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "444:9:6" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "439:1:6" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "408:14:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "410:10:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "419:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "414:1:6", + "type": "" + } + ] + } + ] + }, + "src": "404:236:6" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "96:6:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "104:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "112:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "120:5:6", + "type": "" + } + ], + "src": "24:622:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "704:87:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "714:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "736:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "723:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "723:20:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "714:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "779:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "752:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "752:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "752:33:6" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "682:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "690:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "698:5:6", + "type": "" + } + ], + "src": "652:139:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "891:226:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "940:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "949:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "952:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "942:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "942:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "942:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "919:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "927:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "915:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "915:17:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "934:3:6" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "911:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "911:27:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "904:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "904:35:6" + }, + "nodeType": "YulIf", + "src": "901:2:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "965:34:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "992:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "979:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "979:20:6" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "969:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1008:103:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1084:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1092:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1080:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1080:17:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1099:6:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1107:3:6" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1017:62:6" + }, + "nodeType": "YulFunctionCall", + "src": "1017:94:6" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1008:5:6" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "869:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "877:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "885:5:6", + "type": "" + } + ], + "src": "814:303:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1172:84:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1182:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1204:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1191:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "1191:20:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1182:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1244:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "1220:23:6" + }, + "nodeType": "YulFunctionCall", + "src": "1220:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1220:30:6" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1150:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1158:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1166:5:6", + "type": "" + } + ], + "src": "1123:133:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1322:77:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1332:22:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1347:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1341:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1341:13:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1332:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1387:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "1363:23:6" + }, + "nodeType": "YulFunctionCall", + "src": "1363:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1363:30:6" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1300:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1308:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1316:5:6", + "type": "" + } + ], + "src": "1262:137:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1457:87:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1467:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1489:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1476:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "1476:20:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1467:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1532:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1505:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "1505:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1505:33:6" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1435:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1443:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1451:5:6", + "type": "" + } + ], + "src": "1405:139:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:80:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:22:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1638:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1632:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1632:13:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1623:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1681:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1654:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "1654:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1654:33:6" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1591:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1599:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1607:5:6", + "type": "" + } + ], + "src": "1550:143:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1765:196:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1811:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1820:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1823:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1813:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1813:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1813:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1786:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1795:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1782:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1782:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1807:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1778:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1778:32:6" + }, + "nodeType": "YulIf", + "src": "1775:2:6" + }, + { + "nodeType": "YulBlock", + "src": "1837:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1852:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1866:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1856:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1881:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1916:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1927:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1912:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1912:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1936:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1891:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "1891:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1881:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1735:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1746:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1758:6:6", + "type": "" + } + ], + "src": "1699:262:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2149:1094:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2196:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2205:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2208:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2198:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2198:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2198:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2170:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2179:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2166:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2166:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2191:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2162:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2162:33:6" + }, + "nodeType": "YulIf", + "src": "2159:2:6" + }, + { + "nodeType": "YulBlock", + "src": "2222:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2237:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2251:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2241:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2266:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2301:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2312:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2297:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2297:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2321:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2276:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2276:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2266:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2349:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2364:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2368:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2394:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2429:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2440:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2425:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2425:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2449:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2404:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2404:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2394:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2477:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2492:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2506:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2496:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2522:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2557:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2568:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2553:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2553:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2577:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2532:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2532:53:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2522:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2605:115:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2620:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2634:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2624:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2650:60:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2682:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2693:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2678:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2678:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2702:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "2660:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "2660:50:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "2650:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2730:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2745:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2759:3:6", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2749:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2776:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2811:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2822:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2807:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2807:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2831:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2786:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2786:53:6" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "2776:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2859:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2874:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2888:3:6", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2878:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2905:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2940:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2951:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2936:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2936:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2960:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2915:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2915:53:6" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "2905:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2988:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3003:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3017:3:6", + "type": "", + "value": "192" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3007:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3034:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3069:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3080:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3065:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3065:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3089:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3044:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "3044:53:6" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "3034:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3117:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3132:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3146:3:6", + "type": "", + "value": "224" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3136:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3163:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3198:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3209:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3194:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3194:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3218:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3173:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "3173:53:6" + }, + "variableNames": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "3163:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_addresst_boolt_uint256t_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2063:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2074:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2086:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2094:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2102:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "2110:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "2118:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "2126:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "2134:6:6", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "2142:6:6", + "type": "" + } + ], + "src": "1967:1276:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3380:707:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3427:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3436:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3439:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3429:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3429:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3429:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3401:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3410:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3397:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3397:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3422:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3393:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3393:33:6" + }, + "nodeType": "YulIf", + "src": "3390:2:6" + }, + { + "nodeType": "YulBlock", + "src": "3453:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3468:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3482:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3472:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3532:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3543:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3528:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3528:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3552:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3507:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "3507:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3497:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3580:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3595:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3609:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3599:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3625:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3660:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3671:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3656:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3656:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3680:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3635:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "3635:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3625:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3708:115:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3723:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3737:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3727:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3753:60:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3785:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3796:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3781:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3781:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3805:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "3763:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "3763:50:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3753:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3833:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3848:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3862:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3852:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3878:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3913:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3924:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3909:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3909:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3933:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3888:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "3888:53:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "3878:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3961:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3976:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3990:3:6", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3980:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4007:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4042:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4053:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4038:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4038:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4062:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4017:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4017:53:6" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "4007:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3318:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3329:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3341:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3349:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3357:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3365:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "3373:6:6", + "type": "" + } + ], + "src": "3249:838:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4241:836:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4288:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4300:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4290:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4290:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4290:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4262:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4271:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4258:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4258:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4283:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4254:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4254:33:6" + }, + "nodeType": "YulIf", + "src": "4251:2:6" + }, + { + "nodeType": "YulBlock", + "src": "4314:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4329:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4343:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4333:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4358:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4393:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4404:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4389:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4389:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4413:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4368:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4368:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4358:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4441:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4456:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4470:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4460:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4486:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4521:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4532:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4517:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4517:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4541:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4496:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4496:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4486:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4569:115:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4584:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4598:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4588:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4614:60:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4646:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4657:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4642:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4642:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4666:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "4624:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "4624:50:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4614:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4694:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4709:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4723:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4713:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4739:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4774:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4785:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4770:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4770:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4794:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4749:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4749:53:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4739:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4822:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4837:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4851:3:6", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4841:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4868:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4903:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4914:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4899:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4899:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4923:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4878:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4878:53:6" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "4868:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4951:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4966:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4980:3:6", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4970:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4997:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5032:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5043:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5028:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5028:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5052:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5007:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "5007:53:6" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "4997:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4171:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4182:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4194:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4202:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "4210:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "4218:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "4226:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "4234:6:6", + "type": "" + } + ], + "src": "4093:984:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5248:965:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5295:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5304:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5307:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5297:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5297:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5297:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5269:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5278:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5265:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5265:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5290:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5261:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5261:33:6" + }, + "nodeType": "YulIf", + "src": "5258:2:6" + }, + { + "nodeType": "YulBlock", + "src": "5321:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5336:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5350:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5340:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5365:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5400:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5411:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5396:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5396:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5420:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5375:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "5375:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5365:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5448:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5463:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5477:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5467:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5493:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5528:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5539:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5524:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5524:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5548:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5503:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "5503:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5493:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5576:115:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5591:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5605:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5595:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5621:60:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5653:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5664:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5649:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5649:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5673:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "5631:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "5631:50:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5621:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5701:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5716:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5730:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5720:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5746:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5781:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5792:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5777:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5777:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5801:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5756:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "5756:53:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "5746:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5829:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5844:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5858:3:6", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5848:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5875:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5910:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5921:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5906:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5906:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5930:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5885:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "5885:53:6" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "5875:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5958:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5973:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5987:3:6", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5977:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6004:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6039:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6050:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6035:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6035:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6059:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6014:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "6014:53:6" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "6004:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6087:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6102:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6116:3:6", + "type": "", + "value": "192" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6106:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6133:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6168:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6179:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6164:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6164:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6188:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6143:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "6143:53:6" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "6133:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5170:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5181:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5193:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5201:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5209:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "5217:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "5225:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "5233:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "5241:6:6", + "type": "" + } + ], + "src": "5083:1130:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6319:452:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6365:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6374:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6377:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6367:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6367:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6367:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6340:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6349:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6336:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6336:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6361:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6332:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6332:32:6" + }, + "nodeType": "YulIf", + "src": "6329:2:6" + }, + { + "nodeType": "YulBlock", + "src": "6391:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6406:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6420:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6410:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6435:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6470:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6481:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6466:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6466:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6490:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6445:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "6445:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6435:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6518:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6533:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6547:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6537:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6563:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6598:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6609:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6594:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6594:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6618:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6573:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "6573:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6563:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6646:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6661:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6675:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6665:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6691:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6726:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6737:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6722:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6722:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6746:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6701:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "6701:53:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6691:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6273:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6284:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6296:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6304:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6312:6:6", + "type": "" + } + ], + "src": "6219:552:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6894:581:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6941:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6950:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6953:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6943:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6943:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6943:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6915:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6924:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6911:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6911:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6936:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6907:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6907:33:6" + }, + "nodeType": "YulIf", + "src": "6904:2:6" + }, + { + "nodeType": "YulBlock", + "src": "6967:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6982:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6996:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6986:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7011:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7046:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7057:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7042:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7042:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7066:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7021:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7021:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7011:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7094:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7109:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7123:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7113:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7139:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7174:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7185:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7170:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7170:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7194:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7149:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7149:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7139:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7222:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7237:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7251:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7241:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7267:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7302:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7313:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7298:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7298:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7322:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7277:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7277:53:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7267:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7350:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7365:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7379:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7369:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7395:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7430:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7441:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7426:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7426:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7450:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7405:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7405:53:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "7395:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6840:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6851:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6863:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6871:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6879:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "6887:6:6", + "type": "" + } + ], + "src": "6777:698:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7581:452:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7627:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7636:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7639:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7629:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "7629:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7629:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7602:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7611:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7598:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7598:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7623:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7594:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7594:32:6" + }, + "nodeType": "YulIf", + "src": "7591:2:6" + }, + { + "nodeType": "YulBlock", + "src": "7653:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7668:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7682:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7672:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7697:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7732:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7743:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7728:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7728:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7752:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7707:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7707:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7697:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7780:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7795:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7809:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7799:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7825:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7860:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7871:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7856:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7856:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7880:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7835:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7835:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7825:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7908:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7923:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7937:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7927:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7953:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7988:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7999:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7984:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7984:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8008:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7963:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7963:53:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7953:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7535:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7546:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7558:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7566:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "7574:6:6", + "type": "" + } + ], + "src": "7481:552:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8130:314:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8176:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8185:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8188:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8178:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8178:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8178:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8151:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8160:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8147:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8147:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8172:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8143:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8143:32:6" + }, + "nodeType": "YulIf", + "src": "8140:2:6" + }, + { + "nodeType": "YulBlock", + "src": "8202:235:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8217:45:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8248:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8259:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8244:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8244:17:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8231:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "8231:31:6" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8221:6:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8309:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8318:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8321:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8311:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8311:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8311:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8281:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8289:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8278:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "8278:30:6" + }, + "nodeType": "YulIf", + "src": "8275:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "8339:88:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8399:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8410:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8395:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8395:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8419:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8349:45:6" + }, + "nodeType": "YulFunctionCall", + "src": "8349:78:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8339:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8100:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8111:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8123:6:6", + "type": "" + } + ], + "src": "8039:405:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8524:204:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8570:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8579:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8582:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8572:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8572:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8572:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8545:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8554:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8541:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8541:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8566:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8537:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8537:32:6" + }, + "nodeType": "YulIf", + "src": "8534:2:6" + }, + { + "nodeType": "YulBlock", + "src": "8596:125:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8611:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8625:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8615:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8640:71:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8683:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8694:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8679:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8679:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8703:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "8650:28:6" + }, + "nodeType": "YulFunctionCall", + "src": "8650:61:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8640:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8494:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8505:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8517:6:6", + "type": "" + } + ], + "src": "8450:278:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8800:196:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8846:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8855:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8858:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8848:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8848:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8848:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8821:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8830:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8817:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8817:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8842:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8813:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8813:32:6" + }, + "nodeType": "YulIf", + "src": "8810:2:6" + }, + { + "nodeType": "YulBlock", + "src": "8872:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8887:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8901:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8891:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8916:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8951:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8962:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8947:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8947:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8971:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "8926:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "8926:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8916:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8770:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8781:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8793:6:6", + "type": "" + } + ], + "src": "8734:262:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9079:207:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9125:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9134:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9137:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9127:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9127:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9127:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9100:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9109:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9096:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9096:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9121:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9092:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9092:32:6" + }, + "nodeType": "YulIf", + "src": "9089:2:6" + }, + { + "nodeType": "YulBlock", + "src": "9151:128:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9166:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9180:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9170:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9195:74:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9241:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9252:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9237:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9237:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9261:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "9205:31:6" + }, + "nodeType": "YulFunctionCall", + "src": "9205:64:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9195:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9049:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9060:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9072:6:6", + "type": "" + } + ], + "src": "9002:284:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9357:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9374:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9397:5:6" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "9379:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "9379:24:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9367:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9367:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9367:37:6" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9345:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9352:3:6", + "type": "" + } + ], + "src": "9292:118:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9475:50:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9492:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9512:5:6" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "9497:14:6" + }, + "nodeType": "YulFunctionCall", + "src": "9497:21:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9485:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9485:34:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9485:34:6" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9463:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9470:3:6", + "type": "" + } + ], + "src": "9416:109:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9677:221:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9687:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9753:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9758:2:6", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9694:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "9694:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9687:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9782:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9787:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9778:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9778:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "9791:34:6", + "type": "", + "value": "cannot transfer an exercized opt" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9771:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9771:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9771:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9847:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9852:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9843:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9843:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "9857:5:6", + "type": "", + "value": "ion" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9836:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9836:27:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9836:27:6" + }, + { + "nodeType": "YulAssignment", + "src": "9873:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9884:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9889:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9880:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9880:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9873:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9665:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9673:3:6", + "type": "" + } + ], + "src": "9531:367:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10050:225:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10060:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10126:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10131:2:6", + "type": "", + "value": "39" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10067:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "10067:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10060:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10155:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10160:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10151:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10151:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "10164:34:6", + "type": "", + "value": "This option has already been exc" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10144:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10144:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10144:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10220:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10225:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10216:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10216:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "10230:9:6", + "type": "", + "value": "ersized" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10209:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10209:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10209:31:6" + }, + { + "nodeType": "YulAssignment", + "src": "10250:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10261:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10266:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10257:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10257:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10250:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10038:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10046:3:6", + "type": "" + } + ], + "src": "9904:371:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10427:182:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10437:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10503:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10508:2:6", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10444:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "10444:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10437:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10532:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10537:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10528:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10528:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "10541:32:6", + "type": "", + "value": "This option is no longer valid" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10521:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10521:53:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10521:53:6" + }, + { + "nodeType": "YulAssignment", + "src": "10584:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10595:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10600:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10591:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10591:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10584:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10415:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10423:3:6", + "type": "" + } + ], + "src": "10281:328:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10761:250:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10771:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10837:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10842:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10778:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "10778:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10771:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10866:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10871:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10862:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10862:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "10875:34:6", + "type": "", + "value": "Could not transfer the amount fr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10855:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10855:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10855:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10931:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10936:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10927:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10927:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "10941:34:6", + "type": "", + "value": "om msg.sender that was requested" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10920:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10920:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10920:56:6" + }, + { + "nodeType": "YulAssignment", + "src": "10986:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10997:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11002:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10993:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10993:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10986:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10749:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10757:3:6", + "type": "" + } + ], + "src": "10615:396:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11163:182:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11173:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11239:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11244:2:6", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11180:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "11180:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11173:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11268:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11273:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11264:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11264:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "11277:32:6", + "type": "", + "value": "Cannot tranfer more than owned" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11257:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11257:53:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11257:53:6" + }, + { + "nodeType": "YulAssignment", + "src": "11320:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11331:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11336:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11327:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11327:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11320:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11151:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11159:3:6", + "type": "" + } + ], + "src": "11017:328:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11497:291:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11507:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11573:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11578:2:6", + "type": "", + "value": "71" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11514:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "11514:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11507:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11602:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11607:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11598:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11598:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "11611:34:6", + "type": "", + "value": "This option is not buyable. Plea" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11591:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11591:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11591:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11667:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11672:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11663:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11663:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "11677:34:6", + "type": "", + "value": "se check the seller's offer info" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11656:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11656:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11656:56:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11733:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11738:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11729:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11729:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "11743:9:6", + "type": "", + "value": "rmation" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11722:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11722:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11722:31:6" + }, + { + "nodeType": "YulAssignment", + "src": "11763:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11774:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11779:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11770:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11770:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11763:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11485:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11493:3:6", + "type": "" + } + ], + "src": "11351:437:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11940:164:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11950:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12016:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12021:2:6", + "type": "", + "value": "12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11957:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "11957:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11950:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12045:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12050:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12041:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12041:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "12054:14:6", + "type": "", + "value": "Not approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12034:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12034:35:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12034:35:6" + }, + { + "nodeType": "YulAssignment", + "src": "12079:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12090:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12095:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12086:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12086:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12079:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11928:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11936:3:6", + "type": "" + } + ], + "src": "11794:310:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12256:230:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12266:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12332:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12337:2:6", + "type": "", + "value": "44" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12273:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "12273:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12266:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12361:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12366:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12357:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12357:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "12370:34:6", + "type": "", + "value": "There is not enough inventory fo" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12350:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12350:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12350:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12426:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12431:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12422:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12422:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "12436:14:6", + "type": "", + "value": "r this order" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12415:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12415:36:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12415:36:6" + }, + { + "nodeType": "YulAssignment", + "src": "12461:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12472:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12477:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12468:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12468:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12461:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12244:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12252:3:6", + "type": "" + } + ], + "src": "12110:376:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12638:182:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12648:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12714:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12719:2:6", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12655:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "12655:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12648:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12743:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12748:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12739:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12739:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "12752:32:6", + "type": "", + "value": "The sender must own the option" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12732:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12732:53:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12732:53:6" + }, + { + "nodeType": "YulAssignment", + "src": "12795:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12806:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12811:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12802:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12802:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12795:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12626:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12634:3:6", + "type": "" + } + ], + "src": "12492:328:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12972:182:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12982:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13048:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13053:2:6", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12989:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "12989:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12982:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13077:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13082:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13073:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13073:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "13086:32:6", + "type": "", + "value": "Cannot approve more than owned" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13066:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13066:53:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13066:53:6" + }, + { + "nodeType": "YulAssignment", + "src": "13129:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13140:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13145:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13136:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13136:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13129:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12960:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12968:3:6", + "type": "" + } + ], + "src": "12826:328:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13306:180:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13316:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13382:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13387:2:6", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13323:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "13323:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13316:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13411:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13416:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13407:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13407:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "13420:30:6", + "type": "", + "value": "Not approved for this amount" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13400:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13400:51:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13400:51:6" + }, + { + "nodeType": "YulAssignment", + "src": "13461:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13472:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13477:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13468:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13468:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13461:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13294:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13302:3:6", + "type": "" + } + ], + "src": "13160:326:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13638:221:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13648:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13714:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13719:2:6", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13655:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "13655:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13648:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13743:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13748:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13739:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13739:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "13752:34:6", + "type": "", + "value": "The msg.sender has to be the sel" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13732:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13732:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13732:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13808:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13813:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13804:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13804:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "13818:5:6", + "type": "", + "value": "ler" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13797:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13797:27:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13797:27:6" + }, + { + "nodeType": "YulAssignment", + "src": "13834:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13845:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13850:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13841:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13841:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13834:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13626:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13634:3:6", + "type": "" + } + ], + "src": "13492:367:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14011:241:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14021:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14087:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14092:2:6", + "type": "", + "value": "55" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14028:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "14028:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14021:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14116:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14121:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14112:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14112:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14125:34:6", + "type": "", + "value": "This option has not reached its " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14105:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14105:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14105:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14181:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14186:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14177:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14177:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14191:25:6", + "type": "", + "value": "excersize timestamp yet" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14170:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14170:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14170:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "14227:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14238:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14243:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14234:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14234:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14227:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13999:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14007:3:6", + "type": "" + } + ], + "src": "13865:387:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14404:297:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14414:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14480:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14485:2:6", + "type": "", + "value": "77" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14421:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "14421:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14414:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14509:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14514:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14505:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14505:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14518:34:6", + "type": "", + "value": "Please ensure that you have appr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14498:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14498:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14498:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14574:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14579:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14570:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14570:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14584:34:6", + "type": "", + "value": "oved this contract to handle you" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14563:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14563:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14563:56:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14640:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14645:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14636:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14636:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14650:15:6", + "type": "", + "value": "r DAI (error)" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14629:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14629:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14629:37:6" + }, + { + "nodeType": "YulAssignment", + "src": "14676:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14687:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14692:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14683:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14683:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14676:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14392:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14400:3:6", + "type": "" + } + ], + "src": "14258:443:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14853:316:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14863:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14929:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14934:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14870:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "14870:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14863:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14958:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14963:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14954:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14954:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14967:34:6", + "type": "", + "value": "Sorry: there is no one selling o" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14947:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14947:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14947:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15023:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15028:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15019:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15019:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15033:34:6", + "type": "", + "value": "ptions that meet your specificat" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15012:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15012:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15012:56:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15089:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15094:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15085:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15085:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15099:34:6", + "type": "", + "value": "ions. Perhaps try buyOptionByIds" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15078:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15078:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15078:56:6" + }, + { + "nodeType": "YulAssignment", + "src": "15144:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15155:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15160:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15151:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15151:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15144:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14841:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14849:3:6", + "type": "" + } + ], + "src": "14707:462:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15321:302:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15331:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15397:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15402:2:6", + "type": "", + "value": "82" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15338:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "15338:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15331:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15426:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15431:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15422:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15422:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15435:34:6", + "type": "", + "value": "Did the buyer approve this contr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15415:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15415:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15415:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15491:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15496:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15487:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15487:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15501:34:6", + "type": "", + "value": "act to handle DAI or have anough" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15480:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15480:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15480:56:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15557:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15562:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15553:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15553:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15567:20:6", + "type": "", + "value": " DAI to excersize?" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15546:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15546:42:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15546:42:6" + }, + { + "nodeType": "YulAssignment", + "src": "15598:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15609:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15614:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15605:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15605:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15598:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15309:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15317:3:6", + "type": "" + } + ], + "src": "15175:448:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15775:231:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15785:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15851:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15856:2:6", + "type": "", + "value": "45" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15792:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "15792:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15785:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15880:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15885:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15876:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15876:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15889:34:6", + "type": "", + "value": " There is not enough inventory f" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15869:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15869:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15869:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15945:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15950:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15941:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15941:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15955:15:6", + "type": "", + "value": "or this order" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15934:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15934:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15934:37:6" + }, + { + "nodeType": "YulAssignment", + "src": "15981:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15992:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15997:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15988:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15988:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15981:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15763:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15771:3:6", + "type": "" + } + ], + "src": "15629:377:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16077:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16094:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16117:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "16099:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "16099:24:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16087:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "16087:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16087:37:6" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16065:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16072:3:6", + "type": "" + } + ], + "src": "16012:118:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16234:124:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16244:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16256:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16267:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16252:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16252:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16244:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "16324:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16337:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16348:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16333:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16333:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16280:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "16280:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16280:71:6" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16206:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "16218:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16229:4:6", + "type": "" + } + ], + "src": "16136:222:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16680:780:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16690:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16702:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16713:3:6", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16698:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16698:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16690:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "16771:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16784:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16795:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16780:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16780:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16727:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "16727:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16727:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "16852:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16865:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16876:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16861:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16861:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16808:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "16808:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16808:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "16934:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16947:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16958:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16943:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16943:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16890:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "16890:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16890:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "17010:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17023:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17034:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17019:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17019:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "16972:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "16972:66:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16972:66:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "17092:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17105:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17116:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17101:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17101:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "17048:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17048:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17048:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "17175:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17188:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17199:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17184:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17184:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "17131:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17131:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17131:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "17258:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17271:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17282:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17267:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17267:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "17214:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17214:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17214:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "17341:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17354:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17365:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17350:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17350:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "17297:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17297:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17297:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "17424:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17437:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17448:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17433:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17433:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "17380:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17380:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17380:73:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16588:9:6", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "16600:6:6", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "16608:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "16616:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "16624:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "16632:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "16640:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "16648:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "16656:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "16664:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16675:4:6", + "type": "" + } + ], + "src": "16364:1096:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17833:941:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17843:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17855:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17866:3:6", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17851:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17851:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17843:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "17924:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17937:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17948:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17933:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17933:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "17880:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17880:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17880:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "18005:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18018:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18029:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18014:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18014:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "17961:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17961:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17961:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "18087:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18100:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18111:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18096:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18096:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "18043:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18043:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18043:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "18163:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18176:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18187:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18172:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18172:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "18125:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "18125:66:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18125:66:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "18245:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18258:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18269:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18254:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18254:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18201:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18201:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18201:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "18328:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18341:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18352:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18337:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18337:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18284:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18284:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18284:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "18411:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18424:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18435:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18420:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18420:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18367:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18367:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18367:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "18494:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18507:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18518:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18503:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18503:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18450:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18450:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18450:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "18577:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18590:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18601:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18586:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18586:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18533:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18533:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18533:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value9", + "nodeType": "YulIdentifier", + "src": "18660:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18673:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18684:3:6", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18669:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18669:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18616:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18616:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18616:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value10", + "nodeType": "YulIdentifier", + "src": "18737:7:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18751:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18762:3:6", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18747:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18747:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "18699:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "18699:68:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18699:68:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17724:9:6", + "type": "" + }, + { + "name": "value10", + "nodeType": "YulTypedName", + "src": "17736:7:6", + "type": "" + }, + { + "name": "value9", + "nodeType": "YulTypedName", + "src": "17745:6:6", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "17753:6:6", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "17761:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "17769:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "17777:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "17785:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "17793:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "17801:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "17809:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "17817:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17828:4:6", + "type": "" + } + ], + "src": "17466:1308:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19068:697:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19078:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19090:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19101:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19086:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19086:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19078:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "19159:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19172:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19183:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19168:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19168:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "19115:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19115:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19115:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "19240:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19253:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19264:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19249:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19249:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "19196:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19196:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19196:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "19316:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19329:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19340:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19325:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19325:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "19278:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "19278:66:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19278:66:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "19398:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19411:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19422:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19407:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19407:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19354:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19354:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19354:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "19480:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19493:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19504:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19489:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19489:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19436:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19436:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19436:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "19563:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19576:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19587:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19572:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19572:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19519:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19519:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19519:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "19646:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19659:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19670:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19655:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19655:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19602:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19602:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19602:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "19729:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19742:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19753:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19738:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19738:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19685:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19685:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19685:73:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18984:9:6", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "18996:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "19004:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "19012:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "19020:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "19028:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "19036:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "19044:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "19052:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19063:4:6", + "type": "" + } + ], + "src": "18780:985:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20081:774:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20091:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20103:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20114:3:6", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20099:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20099:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20091:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "20172:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20185:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20196:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20181:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20181:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "20128:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20128:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20128:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "20253:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20266:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20277:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20262:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20262:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "20209:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20209:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20209:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "20329:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20342:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20353:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20338:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20338:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "20291:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "20291:66:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20291:66:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "20411:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20424:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20435:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20420:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20420:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20367:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20367:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20367:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "20493:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20506:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20517:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20502:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20502:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20449:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20449:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20449:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "20576:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20589:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20600:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20585:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20585:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20532:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20532:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20532:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "20659:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20672:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20683:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20668:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20668:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20615:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20615:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20615:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "20742:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20755:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20766:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20751:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20751:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20698:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20698:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20698:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "20819:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20832:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20843:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20828:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20828:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "20781:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "20781:67:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20781:67:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19989:9:6", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "20001:6:6", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "20009:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "20017:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "20025:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "20033:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "20041:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "20049:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "20057:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "20065:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20076:4:6", + "type": "" + } + ], + "src": "19771:1084:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21015:288:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21025:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21037:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21048:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21033:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21033:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21025:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "21105:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21118:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21129:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21114:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21114:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "21061:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "21061:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21061:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "21186:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21199:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21210:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21195:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21195:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "21142:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "21142:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21142:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "21268:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21281:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21292:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21277:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21277:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "21224:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "21224:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21224:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20971:9:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "20983:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "20991:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "20999:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21010:4:6", + "type": "" + } + ], + "src": "20861:442:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21435:206:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21445:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21457:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21468:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21453:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21453:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21445:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "21525:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21538:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21549:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21534:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21534:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "21481:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "21481:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21481:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "21606:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21619:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21630:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21615:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21615:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "21562:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "21562:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21562:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21399:9:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "21411:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "21419:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21430:4:6", + "type": "" + } + ], + "src": "21309:332:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21739:118:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21749:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21761:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21772:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21757:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21757:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21749:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "21823:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21836:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21847:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21832:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21832:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "21785:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "21785:65:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21785:65:6" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21711:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "21723:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21734:4:6", + "type": "" + } + ], + "src": "21647:210:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22034:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22044:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22056:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22067:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22052:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22052:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22044:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22091:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22102:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22087:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22087:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22110:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22116:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22106:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22106:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22080:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "22080:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "22080:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "22136:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22270:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22144:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "22144:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22136:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22014:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22029:4:6", + "type": "" + } + ], + "src": "21863:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22459:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22469:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22481:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22492:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22477:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22477:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22469:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22516:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22527:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22512:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22512:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22535:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22541:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22531:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22531:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22505:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "22505:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "22505:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "22561:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22695:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22569:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "22569:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22561:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22439:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22454:4:6", + "type": "" + } + ], + "src": "22288:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22884:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22894:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22906:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22917:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22902:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22902:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22894:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22941:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22952:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22937:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22937:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22960:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22966:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22956:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22956:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22930:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "22930:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "22930:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "22986:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23120:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22994:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "22994:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22986:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22864:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22879:4:6", + "type": "" + } + ], + "src": "22713:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23309:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23319:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23331:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23342:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23327:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23327:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23319:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23366:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23377:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23362:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23362:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23385:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23391:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23381:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23381:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23355:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "23355:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "23355:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "23411:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23545:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23419:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "23419:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23411:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23289:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23304:4:6", + "type": "" + } + ], + "src": "23138:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23734:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23744:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23756:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23767:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23752:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23752:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23744:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23791:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23802:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23787:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23787:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23810:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23816:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23806:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23806:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23780:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "23780:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "23780:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "23836:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23970:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23844:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "23844:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23836:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23714:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23729:4:6", + "type": "" + } + ], + "src": "23563:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24159:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24169:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24181:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24192:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24177:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24177:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24169:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24216:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24227:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24212:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24212:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24235:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24241:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24231:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24231:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24205:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "24205:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "24205:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "24261:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24395:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24269:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "24269:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24261:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24139:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24154:4:6", + "type": "" + } + ], + "src": "23988:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24584:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24594:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24606:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24617:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24602:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24602:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24594:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24641:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24652:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24637:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24637:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24660:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24666:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24656:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24656:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24630:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "24630:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "24630:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "24686:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24820:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24694:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "24694:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24686:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24564:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24579:4:6", + "type": "" + } + ], + "src": "24413:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25009:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25019:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25031:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25042:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25027:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25027:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25019:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25066:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25077:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25062:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25062:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25085:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25091:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25081:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25081:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25055:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "25055:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "25055:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "25111:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25245:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25119:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "25119:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25111:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24989:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25004:4:6", + "type": "" + } + ], + "src": "24838:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25434:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25444:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25456:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25467:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25452:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25452:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25444:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25491:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25502:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25487:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25487:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25510:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25516:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25506:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25506:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25480:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "25480:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "25480:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "25536:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25670:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25544:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "25544:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25536:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25414:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25429:4:6", + "type": "" + } + ], + "src": "25263:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25859:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25869:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25881:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25892:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25877:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25877:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25869:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25916:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25927:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25912:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25912:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25935:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25941:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25931:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25931:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25905:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "25905:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "25905:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "25961:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26095:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25969:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "25969:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25961:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25839:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25854:4:6", + "type": "" + } + ], + "src": "25688:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26284:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26294:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26306:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26317:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26302:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26302:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26294:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26341:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26352:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26337:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26337:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26360:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26366:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "26356:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26356:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26330:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "26330:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "26330:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "26386:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26520:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26394:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "26394:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26386:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26264:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26279:4:6", + "type": "" + } + ], + "src": "26113:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26709:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26719:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26731:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26742:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26727:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26727:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26719:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26766:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26777:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26762:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26762:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26785:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26791:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "26781:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26781:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26755:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "26755:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "26755:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "26811:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26945:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26819:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "26819:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26811:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26689:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26704:4:6", + "type": "" + } + ], + "src": "26538:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27134:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27144:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27156:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27167:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27152:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27152:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27144:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27191:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27202:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27187:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27187:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27210:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27216:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27206:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27206:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27180:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "27180:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "27180:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "27236:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27370:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27244:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "27244:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27236:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27114:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27129:4:6", + "type": "" + } + ], + "src": "26963:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27559:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27569:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27581:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27592:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27577:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27577:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27569:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27616:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27627:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27612:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27612:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27635:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27641:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27631:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27631:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27605:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "27605:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "27605:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "27661:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27795:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27669:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "27669:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27661:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27539:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27554:4:6", + "type": "" + } + ], + "src": "27388:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27984:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27994:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28006:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28017:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28002:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28002:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27994:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28041:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28052:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28037:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28037:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28060:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28066:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "28056:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28056:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28030:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "28030:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "28030:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "28086:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28220:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28094:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "28094:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28086:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27964:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27979:4:6", + "type": "" + } + ], + "src": "27813:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28409:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28419:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28431:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28442:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28427:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28427:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28419:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28466:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28477:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28462:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28462:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28485:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28491:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "28481:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28481:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28455:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "28455:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "28455:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "28511:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28645:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28519:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "28519:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28511:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28389:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28404:4:6", + "type": "" + } + ], + "src": "28238:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28834:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28844:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28856:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28867:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28852:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28852:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28844:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28891:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28902:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28887:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28887:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28910:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28916:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "28906:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28906:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28880:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "28880:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "28880:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "28936:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29070:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28944:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "28944:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28936:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28814:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28829:4:6", + "type": "" + } + ], + "src": "28663:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29186:124:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29196:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29208:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29219:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29204:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29204:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29196:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "29276:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29289:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29300:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29285:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29285:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "29232:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "29232:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "29232:71:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29158:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "29170:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29181:4:6", + "type": "" + } + ], + "src": "29088:222:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29442:206:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29452:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29464:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29475:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29460:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29460:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29452:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "29532:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29545:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29556:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29541:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29541:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "29488:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "29488:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "29488:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "29613:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29626:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29637:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29622:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29622:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "29569:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "29569:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "29569:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29406:9:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "29418:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "29426:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29437:4:6", + "type": "" + } + ], + "src": "29316:332:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29808:288:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29818:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29830:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29841:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29826:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29826:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29818:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "29898:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29911:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29922:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29907:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29907:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "29854:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "29854:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "29854:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "29979:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29992:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30003:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29988:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29988:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "29935:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "29935:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "29935:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "30061:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30074:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30085:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30070:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "30070:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "30017:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "30017:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "30017:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29764:9:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "29776:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "29784:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "29792:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29803:4:6", + "type": "" + } + ], + "src": "29654:442:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30142:243:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30152:19:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30168:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "30162:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "30162:9:6" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30152:6:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "30180:35:6", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30202:6:6" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "30210:4:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30198:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "30198:17:6" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "30184:10:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30326:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "30328:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "30328:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "30328:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "30269:10:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30281:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "30266:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "30266:34:6" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "30305:10:6" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30317:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "30302:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "30302:22:6" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "30263:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "30263:62:6" + }, + "nodeType": "YulIf", + "src": "30260:2:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30364:2:6", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "30368:10:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30357:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "30357:22:6" + }, + "nodeType": "YulExpressionStatement", + "src": "30357:22:6" + } + ] + }, + "name": "allocateMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "30126:4:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "30135:6:6", + "type": "" + } + ], + "src": "30102:283:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30473:229:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "30578:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "30580:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "30580:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "30580:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "30550:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30558:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "30547:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "30547:30:6" + }, + "nodeType": "YulIf", + "src": "30544:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "30610:25:6", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "30622:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30630:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "30618:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "30618:17:6" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "30610:4:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "30672:23:6", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "30684:4:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30690:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30680:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "30680:15:6" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "30672:4:6" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "30457:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "30468:4:6", + "type": "" + } + ], + "src": "30391:311:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30804:73:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30821:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "30826:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30814:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "30814:19:6" + }, + "nodeType": "YulExpressionStatement", + "src": "30814:19:6" + }, + { + "nodeType": "YulAssignment", + "src": "30842:29:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30861:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30866:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30857:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "30857:14:6" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "30842:11:6" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30776:3:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "30781:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "30792:11:6", + "type": "" + } + ], + "src": "30708:169:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30927:261:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30937:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "30960:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "30942:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "30942:20:6" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "30937:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "30971:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "30994:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "30976:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "30976:20:6" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "30971:1:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31134:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "31136:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "31136:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "31136:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31055:1:6" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31062:66:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31130:1:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "31058:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31058:74:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "31052:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "31052:81:6" + }, + "nodeType": "YulIf", + "src": "31049:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "31166:16:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31177:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31180:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31173:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31173:9:6" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "31166:3:6" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "30914:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "30917:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "30923:3:6", + "type": "" + } + ], + "src": "30883:305:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31242:300:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31252:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31275:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "31257:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "31257:20:6" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31252:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31286:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31309:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "31291:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "31291:20:6" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31286:1:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31484:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "31486:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "31486:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "31486:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31396:1:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "31389:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "31389:9:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "31382:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "31382:17:6" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31404:1:6" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31411:66:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31479:1:6" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "31407:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31407:74:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "31401:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "31401:81:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "31378:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31378:105:6" + }, + "nodeType": "YulIf", + "src": "31375:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "31516:20:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31531:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31534:1:6" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "31527:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31527:9:6" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "31516:7:6" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "31225:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "31228:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "31234:7:6", + "type": "" + } + ], + "src": "31194:348:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31593:146:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31603:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31626:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "31608:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "31608:20:6" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31603:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31637:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31660:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "31642:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "31642:20:6" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31637:1:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31684:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "31686:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "31686:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "31686:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31678:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31681:1:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "31675:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "31675:8:6" + }, + "nodeType": "YulIf", + "src": "31672:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "31716:17:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31728:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31731:1:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "31724:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31724:9:6" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "31716:4:6" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "31579:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "31582:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "31588:4:6", + "type": "" + } + ], + "src": "31548:191:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31790:51:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31800:35:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "31829:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "31811:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "31811:24:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "31800:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31772:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "31782:7:6", + "type": "" + } + ], + "src": "31745:96:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31889:48:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31899:32:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "31924:5:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "31917:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "31917:13:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "31910:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "31910:21:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "31899:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31871:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "31881:7:6", + "type": "" + } + ], + "src": "31847:90:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31988:81:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31998:65:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32013:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32020:42:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "32009:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "32009:54:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "31998:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31970:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "31980:7:6", + "type": "" + } + ], + "src": "31943:126:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32120:32:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32130:16:6", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32141:5:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "32130:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32102:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "32112:7:6", + "type": "" + } + ], + "src": "32075:77:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32201:190:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32211:33:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32238:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "32220:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "32220:24:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32211:5:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32334:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "32336:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "32336:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32336:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32259:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32266:66:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "32256:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "32256:77:6" + }, + "nodeType": "YulIf", + "src": "32253:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "32365:20:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32376:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32383:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32372:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "32372:13:6" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "32365:3:6" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32187:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "32197:3:6", + "type": "" + } + ], + "src": "32158:233:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32425:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32442:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32445:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32435:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32435:88:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32435:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32539:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32542:4:6", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32532:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32532:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32532:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32563:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32566:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "32556:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32556:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32556:15:6" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "32397:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32611:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32628:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32631:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32621:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32621:88:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32621:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32725:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32728:4:6", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32718:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32718:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32718:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32749:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32752:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "32742:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32742:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32742:15:6" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "32583:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32812:79:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "32869:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32878:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32881:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "32871:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32871:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32871:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32835:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32860:5:6" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "32842:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "32842:24:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "32832:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "32832:35:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "32825:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32825:43:6" + }, + "nodeType": "YulIf", + "src": "32822:2:6" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32805:5:6", + "type": "" + } + ], + "src": "32769:122:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32937:76:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "32991:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33000:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33003:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "32993:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32993:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32993:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32960:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32982:5:6" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "32967:14:6" + }, + "nodeType": "YulFunctionCall", + "src": "32967:21:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "32957:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "32957:32:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "32950:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32950:40:6" + }, + "nodeType": "YulIf", + "src": "32947:2:6" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32930:5:6", + "type": "" + } + ], + "src": "32897:116:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33062:79:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "33119:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33128:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33131:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "33121:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "33121:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "33121:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33085:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33110:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "33092:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "33092:24:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "33082:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "33082:35:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "33075:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "33075:43:6" + }, + "nodeType": "YulIf", + "src": "33072:2:6" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "33055:5:6", + "type": "" + } + ], + "src": "33019:122:6" + } + ] + }, + "contents": "{\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocateMemory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) dst := add(array, 0x20)\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := src\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\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 abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_addresst_boolt_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\n if slt(sub(dataEnd, headStart), 256) { revert(0, 0) }\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_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 224\n\n value7 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\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_bool(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\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_bool(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\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_bool(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\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 function abi_decode_tuple_t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\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 := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\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_uint256(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 function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n\n mstore(add(pos, 0), \"cannot transfer an exercized opt\")\n\n mstore(add(pos, 32), \"ion\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n\n mstore(add(pos, 0), \"This option has already been exc\")\n\n mstore(add(pos, 32), \"ersized\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n\n mstore(add(pos, 0), \"This option is no longer valid\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 64)\n\n mstore(add(pos, 0), \"Could not transfer the amount fr\")\n\n mstore(add(pos, 32), \"om msg.sender that was requested\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n\n mstore(add(pos, 0), \"Cannot tranfer more than owned\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 71)\n\n mstore(add(pos, 0), \"This option is not buyable. Plea\")\n\n mstore(add(pos, 32), \"se check the seller's offer info\")\n\n mstore(add(pos, 64), \"rmation\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n\n mstore(add(pos, 0), \"Not approved\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n\n mstore(add(pos, 0), \"There is not enough inventory fo\")\n\n mstore(add(pos, 32), \"r this order\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n\n mstore(add(pos, 0), \"The sender must own the option\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n\n mstore(add(pos, 0), \"Cannot approve more than owned\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n\n mstore(add(pos, 0), \"Not approved for this amount\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n\n mstore(add(pos, 0), \"The msg.sender has to be the sel\")\n\n mstore(add(pos, 32), \"ler\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 55)\n\n mstore(add(pos, 0), \"This option has not reached its \")\n\n mstore(add(pos, 32), \"excersize timestamp yet\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 77)\n\n mstore(add(pos, 0), \"Please ensure that you have appr\")\n\n mstore(add(pos, 32), \"oved this contract to handle you\")\n\n mstore(add(pos, 64), \"r DAI (error)\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 96)\n\n mstore(add(pos, 0), \"Sorry: there is no one selling o\")\n\n mstore(add(pos, 32), \"ptions that meet your specificat\")\n\n mstore(add(pos, 64), \"ions. Perhaps try buyOptionByIds\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 82)\n\n mstore(add(pos, 0), \"Did the buyer approve this contr\")\n\n mstore(add(pos, 32), \"act to handle DAI or have anough\")\n\n mstore(add(pos, 64), \" DAI to excersize?\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n\n mstore(add(pos, 0), \" There is not enough inventory f\")\n\n mstore(add(pos, 32), \"or this order\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 288)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bool_to_t_bool_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value8, add(headStart, 256))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart , value10, value9, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 352)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bool_to_t_bool_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value8, add(headStart, 256))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value9, add(headStart, 288))\n\n abi_encode_t_bool_to_t_bool_fromStack(value10, add(headStart, 320))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 256)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bool_to_t_bool_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart , value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 288)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bool_to_t_bool_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n abi_encode_t_bool_to_t_bool_fromStack(value8, add(headStart, 256))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 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 array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\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 validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "354:12816:0:-:0;;;908:15;;;;;;;;;;;883:41;;;;;;;;;;;;;;;;;;;;1444:1;1416:29;;1482:1;1451:32;;354:12816;;;;;;;;;;1637:1:1;1742:7;:22;;;;354:12816:0;;;;;;", + "deployedSourceMap": "354:12816:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3039:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;10708:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9323:896;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2975:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3353:977;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;842:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;462:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10939:476;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1416:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11421:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1451:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7595:1512;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1130:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4416:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6143:1345;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3098:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;991:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4759:1291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10328:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11640:462;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3039:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10708:225::-;10875:51;10885:10;10897:9;10908:6;10915:10;10875:9;:51::i;:::-;10708:225;;;:::o;9323:896::-;9382:4;9468:10;9436:42;;:12;:21;9449:7;9436:21;;;;;;;;;;;:28;;;;;;;;;;;;:42;;;9428:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;9528:32;9563:9;:21;9573:10;9563:21;;;;;;;;;;;;;;;:50;9585:12;:21;9598:7;9585:21;;;;;;;;;;;:27;;;;;;;;;;;;9563:50;;;;;;;;;;;;;;;:86;9614:12;:21;9627:7;9614:21;;;;;;;;;;;:34;;;;;;;;;;;;9563:86;;;;;;;;;;;;;;;:121;9650:12;:21;9663:7;9650:21;;;;;;;;;;;:33;;;9563:121;;;;;;;;;;;:152;9685:12;:21;9698:7;9685:21;;;;;;;;;;;:29;;;9563:152;;;;;;;;;;;:182;9716:12;:21;9729:7;9716:21;;;;;;;;;;;:28;;;9563:182;;;;;;;;;;;;9528:217;;9755:25;9784:12;:21;9797:7;9784:21;;;;;;;;;;;:27;;;;;;;;;;;;9755:56;;9821:22;9853:17;9821:50;;9881:15;:24;;;9906:10;9918:24;9881:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10137:1;9953:9;:21;9963:10;9953:21;;;;;;;;;;;;;;;:50;9975:12;:21;9988:7;9975:21;;;;;;;;;;;:27;;;;;;;;;;;;9953:50;;;;;;;;;;;;;;;:86;10004:12;:21;10017:7;10004:21;;;;;;;;;;;:34;;;;;;;;;;;;9953:86;;;;;;;;;;;;;;;:121;10040:12;:21;10053:7;10040:21;;;;;;;;;;;:33;;;9953:121;;;;;;;;;;;:152;10075:12;:21;10088:7;10075:21;;;;;;;;;;;:29;;;9953:152;;;;;;;;;;;:182;10106:12;:21;10119:7;10106:21;;;;;;;;;;;:28;;;9953:182;;;;;;;;;;;:185;;;;10185:5;10148:12;:21;10161:7;10148:21;;;;;;;;;;;:34;;;:42;;;;;;;;;;;;;;;;;;10207:4;10200:11;;;;;9323:896;;;:::o;2975:58::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3353:977::-;3414:4;3478:5;3438:45;;:15;:27;3454:10;3438:27;;;;;;;;;;;:37;;;;;;;;;;;;:45;;;3430:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;3583:15;3545;:27;3561:10;3545:27;;;;;;;;;;;:34;;;:53;;3537:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;3668:28;3699:15;:27;3715:10;3699:27;;;;;;;;;;;3668:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3736:25;3765:6;:12;;;3736:41;;3787:22;3819:17;3787:50;;3847:22;3872:52;3905:6;:18;;;3872:6;:28;;;:32;;:52;;;;:::i;:::-;3847:77;;3942:8;;;;;;;;;;;:21;;;3964:6;:12;;;3978:6;:13;;;3993:14;3942:66;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3934:161;;;;;;;;;;;;:::i;:::-;;;;;;;;;4105:15;:24;;;4130:6;:12;;;4144:6;:28;;;4105:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4222:4;4183:15;:27;4199:10;4183:27;;;;;;;;;;;:37;;;:43;;;;;;;;;;;;;;;;;;4241:60;4257:10;4269:14;4285:15;4241:60;;;;;;;;:::i;:::-;;;;;;;;4318:4;4311:11;;;;;;3353:977;;;:::o;842:30::-;;;;;;;;;;;;;:::o;462:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;10939:476::-;11028:4;11139:10;11102:47;;:15;:27;11118:10;11102:27;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;11094:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11252:6;11201:15;:27;11217:10;11201:27;;;;;;;;;;;:49;;;:57;;11193:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;11337:6;11302:11;:23;11314:10;11302:23;;;;;;;;;;;;;;;:33;11326:8;11302:33;;;;;;;;;;;;;;;:41;;;;11379:8;11358:50;;11367:10;11358:50;;;11389:6;11397:10;11358:50;;;;;;;:::i;:::-;;;;;;;;10939:476;;;;;:::o;1416:29::-;;;;:::o;11421:213::-;11506:22;11599:11;:18;11611:5;11599:18;;;;;;;;;;;;;;;:28;11618:8;11599:28;;;;;;;;;;;;;;;;11592:35;;11421:213;;;;;:::o;1451:32::-;;;;:::o;7595:1512::-;7799:4;7814:20;7837:92;7853:6;7861:5;7868:12;7882:11;7895:7;7904:6;7912:16;7837:15;:92::i;:::-;7814:115;;7947:15;7939:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;8055:15;8047:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;8181:21;8205:9;:17;8215:6;8205:17;;;;;;;;;;;;;;;:24;8223:5;8205:24;;;;;;;;;;;;;;;:38;8230:12;8205:38;;;;;;;;;;;;;;;:51;8244:11;8205:51;;;;;;;;;;;:60;8257:7;8205:60;;;;;;;;;;;:68;8266:6;8205:68;;;;;;;;;;;;8181:92;;8311:13;8291:16;:33;;8283:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;8383:17;8403:29;8415:16;8403:7;:11;;:29;;;;:::i;:::-;8383:49;;8450:8;;;;;;;;;;;:21;;;8472:10;8484:6;8492:9;8450:52;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8442:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;8663:90;8736:16;8663:9;:17;8673:6;8663:17;;;;;;;;;;;;;;;:24;8681:5;8663:24;;;;;;;;;;;;;;;:38;8688:12;8663:38;;;;;;;;;;;;;;;:51;8702:11;8663:51;;;;;;;;;;;:60;8715:7;8663:60;;;;;;;;;;;:68;8724:6;8663:68;;;;;;;;;;;;:72;;:90;;;;:::i;:::-;8594:9;:17;8604:6;8594:17;;;;;;;;;;;;;;;:24;8612:5;8594:24;;;;;;;;;;;;;;;:38;8619:12;8594:38;;;;;;;;;;;;;;;:51;8633:11;8594:51;;;;;;;;;;;:60;8646:7;8594:60;;;;;;;;;;;:68;8655:6;8594:68;;;;;;;;;;;:159;;;;8822:80;8885:16;8822:9;:16;8832:5;8822:16;;;;;;;;;;;;;;;:23;8839:5;8822:23;;;;;;;;;;;;;;;:37;8846:12;8822:37;;;;;;;;;;;;;;;:50;8860:11;8822:50;;;;;;;;;;;:58;8873:6;8822:58;;;;;;;;;;;;:62;;:80;;;;:::i;:::-;8763:9;:16;8773:5;8763:16;;;;;;;;;;;;;;;:23;8780:5;8763:23;;;;;;;;;;;;;;;:37;8787:12;8763:37;;;;;;;;;;;;;;;:50;8801:11;8763:50;;;;;;;;;;;:58;8814:6;8763:58;;;;;;;;;;;:139;;;;8929:21;8948:1;8929:14;;:18;;:21;;;;:::i;:::-;8912:14;:38;;;;8965:114;8980:5;8987:6;8995:5;9002:12;9016:11;9029:7;9038:6;9046:16;9064:14;;8965:114;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9096:4;9089:11;;;;;7595:1512;;;;;;;;;;:::o;1130:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4416:212::-;4488:4;4507:6;4516:1;4507:10;;4503:98;4521:11;:18;4519:1;:20;4503:98;;;4559:31;4575:11;4587:1;4575:14;;;;;;;;;;;;;;;;;;;;;;4559:15;:31::i;:::-;;4541:3;;;;;:::i;:::-;;;;4503:98;;;;4617:4;4610:11;;4416:212;;;:::o;6143:1345::-;6239:4;6295;6258:41;;:12;:21;6271:7;6258:21;;;;;;;;;;;:34;;;;;;;;;;;;:41;;;6250:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;6340:25;6368:12;:21;6381:7;6368:21;;;;;;;;;;;6340:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6395:20;6418:134;6434:6;:13;;;6449:6;:12;;;6463:6;:19;;;6484:6;:18;;;6504:6;:14;;;6520:6;:13;;;6535:16;6418:15;:134::i;:::-;6395:157;;6566:15;6558:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;6693:6;:28;;;6673:16;:48;;6665:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;6778:17;6798:36;6817:16;6798:6;:14;;;:18;;:36;;;;:::i;:::-;6778:56;;6850:8;;;;;;;;;;;:21;;;6872:10;6884:6;:13;;;6899:9;6850:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6842:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;6999:132;7114:16;6999:9;:24;7009:6;:13;;;6999:24;;;;;;;;;;;;;;;:38;7024:6;:12;;;6999:38;;;;;;;;;;;;;;;:59;7038:6;:19;;;6999:59;;;;;;;;;;;;;;;:79;7059:6;:18;;;6999:79;;;;;;;;;;;:95;7079:6;:14;;;6999:95;;;;;;;;;;;:110;7095:6;:13;;;6999:110;;;;;;;;;;;;:114;;:132;;;;:::i;:::-;;7139:108;7230:16;7139:9;:16;7149:5;7139:16;;;;;;;;;;;;;;;:30;7156:6;:12;;;7139:30;;;;;;;;;;;;;;;:51;7170:6;:19;;;7139:51;;;;;;;;;;;;;;;:71;7191:6;:18;;;7139:71;;;;;;;;;;;:86;7211:6;:13;;;7139:86;;;;;;;;;;;;:90;;:108;;;;:::i;:::-;;7272:21;7291:1;7272:14;;:18;;:21;;;;:::i;:::-;7255:14;:38;;;;7306:156;7321:5;7328:6;:13;;;7343:6;:12;;;7357:6;:19;;;7378:6;:18;;;7398:6;:14;;;7414:6;:13;;;7429:16;7447:14;;7306:156;;;;;;;;;;;;;;:::i;:::-;;;;;;;;7477:4;7470:11;;;;;6143:1345;;;;;:::o;3098:96::-;3176:11;3158:15;;:29;;;;;;;;;;;;;;;;;;3098:96;:::o;991:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4759:1291::-;4929:23;4963:22;4995:5;4963:38;;5011:37;5051:15;:25;;;5085:4;5051:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5011:80;;5101:15;:28;;;5130:10;5150:4;5157:21;5101:78;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5189:36;5228:15;:25;;;5262:4;5228:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5189:79;;5319:56;5353:21;5319:29;:33;;:56;;;;:::i;:::-;5286:28;:90;;5278:167;;;;;;;;;;;;:::i;:::-;;;;;;;;;5529:1;5458:9;:17;5468:6;5458:17;;;;;;;;;;;;;;;:24;5476:5;5458:24;;;;;;;;;;;;;;;:38;5483:12;5458:38;;;;;;;;;;;;;;;:51;5497:11;5458:51;;;;;;;;;;;:60;5510:7;5458:60;;;;;;;;;;;:68;5519:6;5458:68;;;;;;;;;;;;:72;5455:397;;;5616:21;5545:9;:17;5555:6;5545:17;;;;;;;;;;;;;;;:24;5563:5;5545:24;;;;;;;;;;;;;;;:38;5570:12;5545:38;;;;;;;;;;;;;;;:51;5584:11;5545:51;;;;;;;;;;;:60;5597:7;5545:60;;;;;;;;;;;:68;5606:6;5545:68;;;;;;;;;;;:92;;;;5455:397;;;5746:95;5819:21;5746:9;:17;5756:6;5746:17;;;;;;;;;;;;;;;:24;5764:5;5746:24;;;;;;;;;;;;;;;:38;5771:12;5746:38;;;;;;;;;;;;;;;:51;5785:11;5746:51;;;;;;;;;;;:60;5798:7;5746:60;;;;;;;;;;;:68;5807:6;5746:68;;;;;;;;;;;;:72;;:95;;;;:::i;:::-;5675:9;:17;5685:6;5675:17;;;;;;;;;;;;;;;:24;5693:5;5675:24;;;;;;;;;;;;;;;:38;5700:12;5675:38;;;;;;;;;;;;;;;:51;5714:11;5675:51;;;;;;;;;;;:60;5727:7;5675:60;;;;;;;;;;;:68;5736:6;5675:68;;;;;;;;;;;:166;;;;5455:397;5875:18;5891:1;5875:11;;:15;;:18;;;;:::i;:::-;5861:11;:32;;;;5908:107;5921:6;5929:5;5936:12;5950:11;5963:7;5972:6;5980:21;6003:11;;5908:107;;;;;;;;;;;;;:::i;:::-;;;;;;;;6032:11;;6025:18;;;;;4759:1291;;;;;;;;;:::o;10328:374::-;10504:4;10593:16;10522:9;:17;10532:6;10522:17;;;;;;;;;;;;;;;:24;10540:5;10522:24;;;;;;;;;;;;;;;:38;10547:12;10522:38;;;;;;;;;;;;;;;:51;10561:11;10522:51;;;;;;;;;;;:60;10574:7;10522:60;;;;;;;;;;;:68;10583:6;10522:68;;;;;;;;;;;;:87;10519:177;;10631:4;10624:11;;;;10519:177;10680:5;10673:12;;10328:374;;;;;;;;;;:::o;11640:462::-;11805:17;11825:37;11834:4;11840:9;11851:10;11825:8;:37::i;:::-;11805:57;;11893:1;11880:9;:14;11872:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11941:6;11929:9;:18;;11921:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;11989:45;11999:4;12004:9;12015:6;12023:10;11989:9;:45::i;:::-;12044:51;12052:9;12062:21;12076:6;12062:9;:13;;:21;;;;:::i;:::-;12084:10;12044:7;:51::i;:::-;;11640:462;;;;;:::o;12114:1046::-;12294:6;12257:43;;:15;:27;12273:10;12257:27;;;;;;;;;;;:33;;;;;;;;;;;;:43;;;12249:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12403:6;12352:15;:27;12368:10;12352:27;;;;;;;;;;;:49;;;:57;;12344:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;12453:29;12485:15;:27;12501:10;12485:27;;;;;;;;;;;12453:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12531:7;:17;;;12530:18;12522:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12689:103;12785:6;12689:9;:17;12699:6;12689:17;;;;;;;;;;;;;;;:32;12707:7;:13;;;12689:32;;;;;;;;;;;;;;;:54;12722:7;:20;;;12689:54;;;;;;;;;;;;;;;:75;12744:7;:19;;;12689:75;;;;;;;;;;;:91;12765:7;:14;;;12689:91;;;;;;;;;;;;:95;;:103;;;;:::i;:::-;12597:9;:17;12607:6;12597:17;;;;;;;;;;;;;;;:32;12615:7;:13;;;12597:32;;;;;;;;;;;;;;;:54;12630:7;:20;;;12597:54;;;;;;;;;;;;;;;:75;12652:7;:19;;;12597:75;;;;;;;;;;;:91;12673:7;:14;;;12597:91;;;;;;;;;;;:195;;;;12931:106;13030:6;12931:9;:20;12941:9;12931:20;;;;;;;;;;;;;;;:35;12952:7;:13;;;12931:35;;;;;;;;;;;;;;;:57;12967:7;:20;;;12931:57;;;;;;;;;;;;;;;:78;12989:7;:19;;;12931:78;;;;;;;;;;;:94;13010:7;:14;;;12931:94;;;;;;;;;;;;:98;;:106;;;;:::i;:::-;12836:9;:20;12846:9;12836:20;;;;;;;;;;;;;;;:35;12857:7;:13;;;12836:35;;;;;;;;;;;;;;;:57;12872:7;:20;;;12836:57;;;;;;;;;;;;;;;:78;12894:7;:19;;;12836:78;;;;;;;;;;;:94;12915:7;:14;;;12836:94;;;;;;;;;;;:201;;;;13106:9;13089:64;;13098:6;13089:64;;;13117:6;13125:10;13137:15;13089:64;;;;;;;;:::i;:::-;;;;;;;;12114:1046;;;;;:::o;3382:96:5:-;3440:7;3470:1;3466;:5;;;;:::i;:::-;3459:12;;3382:96;;;;:::o;3039:::-;3097:7;3127:1;3123;:5;;;;:::i;:::-;3116:12;;3039:96;;;;:::o;2672:::-;2730:7;2760:1;2756;:5;;;;:::i;:::-;2749:12;;2672:96;;;;:::o;24:622:6:-;;145:80;160:64;217:6;160:64;:::i;:::-;145:80;:::i;:::-;136:89;;245:5;273:6;266:5;259:21;299:4;292:5;288:16;281:23;;324:6;374:3;366:4;358:6;354:17;349:3;345:27;342:36;339:2;;;391:1;388;381:12;339:2;419:1;404:236;429:6;426:1;423:13;404:236;;;496:3;524:37;557:3;545:10;524:37;:::i;:::-;519:3;512:50;591:4;586:3;582:14;575:21;;625:4;620:3;616:14;609:21;;464:176;451:1;448;444:9;439:14;;404:236;;;408:14;126:520;;;;;;;:::o;652:139::-;;736:6;723:20;714:29;;752:33;779:5;752:33;:::i;:::-;704:87;;;;:::o;814:303::-;;934:3;927:4;919:6;915:17;911:27;901:2;;952:1;949;942:12;901:2;992:6;979:20;1017:94;1107:3;1099:6;1092:4;1084:6;1080:17;1017:94;:::i;:::-;1008:103;;891:226;;;;;:::o;1123:133::-;;1204:6;1191:20;1182:29;;1220:30;1244:5;1220:30;:::i;:::-;1172:84;;;;:::o;1262:137::-;;1347:6;1341:13;1332:22;;1363:30;1387:5;1363:30;:::i;:::-;1322:77;;;;:::o;1405:139::-;;1489:6;1476:20;1467:29;;1505:33;1532:5;1505:33;:::i;:::-;1457:87;;;;:::o;1550:143::-;;1638:6;1632:13;1623:22;;1654:33;1681:5;1654:33;:::i;:::-;1613:80;;;;:::o;1699:262::-;;1807:2;1795:9;1786:7;1782:23;1778:32;1775:2;;;1823:1;1820;1813:12;1775:2;1866:1;1891:53;1936:7;1927:6;1916:9;1912:22;1891:53;:::i;:::-;1881:63;;1837:117;1765:196;;;;:::o;1967:1276::-;;;;;;;;;2191:3;2179:9;2170:7;2166:23;2162:33;2159:2;;;2208:1;2205;2198:12;2159:2;2251:1;2276:53;2321:7;2312:6;2301:9;2297:22;2276:53;:::i;:::-;2266:63;;2222:117;2378:2;2404:53;2449:7;2440:6;2429:9;2425:22;2404:53;:::i;:::-;2394:63;;2349:118;2506:2;2532:53;2577:7;2568:6;2557:9;2553:22;2532:53;:::i;:::-;2522:63;;2477:118;2634:2;2660:50;2702:7;2693:6;2682:9;2678:22;2660:50;:::i;:::-;2650:60;;2605:115;2759:3;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2730:119;2888:3;2915:53;2960:7;2951:6;2940:9;2936:22;2915:53;:::i;:::-;2905:63;;2859:119;3017:3;3044:53;3089:7;3080:6;3069:9;3065:22;3044:53;:::i;:::-;3034:63;;2988:119;3146:3;3173:53;3218:7;3209:6;3198:9;3194:22;3173:53;:::i;:::-;3163:63;;3117:119;2149:1094;;;;;;;;;;;:::o;3249:838::-;;;;;;3422:3;3410:9;3401:7;3397:23;3393:33;3390:2;;;3439:1;3436;3429:12;3390:2;3482:1;3507:53;3552:7;3543:6;3532:9;3528:22;3507:53;:::i;:::-;3497:63;;3453:117;3609:2;3635:53;3680:7;3671:6;3660:9;3656:22;3635:53;:::i;:::-;3625:63;;3580:118;3737:2;3763:50;3805:7;3796:6;3785:9;3781:22;3763:50;:::i;:::-;3753:60;;3708:115;3862:2;3888:53;3933:7;3924:6;3913:9;3909:22;3888:53;:::i;:::-;3878:63;;3833:118;3990:3;4017:53;4062:7;4053:6;4042:9;4038:22;4017:53;:::i;:::-;4007:63;;3961:119;3380:707;;;;;;;;:::o;4093:984::-;;;;;;;4283:3;4271:9;4262:7;4258:23;4254:33;4251:2;;;4300:1;4297;4290:12;4251:2;4343:1;4368:53;4413:7;4404:6;4393:9;4389:22;4368:53;:::i;:::-;4358:63;;4314:117;4470:2;4496:53;4541:7;4532:6;4521:9;4517:22;4496:53;:::i;:::-;4486:63;;4441:118;4598:2;4624:50;4666:7;4657:6;4646:9;4642:22;4624:50;:::i;:::-;4614:60;;4569:115;4723:2;4749:53;4794:7;4785:6;4774:9;4770:22;4749:53;:::i;:::-;4739:63;;4694:118;4851:3;4878:53;4923:7;4914:6;4903:9;4899:22;4878:53;:::i;:::-;4868:63;;4822:119;4980:3;5007:53;5052:7;5043:6;5032:9;5028:22;5007:53;:::i;:::-;4997:63;;4951:119;4241:836;;;;;;;;:::o;5083:1130::-;;;;;;;;5290:3;5278:9;5269:7;5265:23;5261:33;5258:2;;;5307:1;5304;5297:12;5258:2;5350:1;5375:53;5420:7;5411:6;5400:9;5396:22;5375:53;:::i;:::-;5365:63;;5321:117;5477:2;5503:53;5548:7;5539:6;5528:9;5524:22;5503:53;:::i;:::-;5493:63;;5448:118;5605:2;5631:50;5673:7;5664:6;5653:9;5649:22;5631:50;:::i;:::-;5621:60;;5576:115;5730:2;5756:53;5801:7;5792:6;5781:9;5777:22;5756:53;:::i;:::-;5746:63;;5701:118;5858:3;5885:53;5930:7;5921:6;5910:9;5906:22;5885:53;:::i;:::-;5875:63;;5829:119;5987:3;6014:53;6059:7;6050:6;6039:9;6035:22;6014:53;:::i;:::-;6004:63;;5958:119;6116:3;6143:53;6188:7;6179:6;6168:9;6164:22;6143:53;:::i;:::-;6133:63;;6087:119;5248:965;;;;;;;;;;:::o;6219:552::-;;;;6361:2;6349:9;6340:7;6336:23;6332:32;6329:2;;;6377:1;6374;6367:12;6329:2;6420:1;6445:53;6490:7;6481:6;6470:9;6466:22;6445:53;:::i;:::-;6435:63;;6391:117;6547:2;6573:53;6618:7;6609:6;6598:9;6594:22;6573:53;:::i;:::-;6563:63;;6518:118;6675:2;6701:53;6746:7;6737:6;6726:9;6722:22;6701:53;:::i;:::-;6691:63;;6646:118;6319:452;;;;;:::o;6777:698::-;;;;;6936:3;6924:9;6915:7;6911:23;6907:33;6904:2;;;6953:1;6950;6943:12;6904:2;6996:1;7021:53;7066:7;7057:6;7046:9;7042:22;7021:53;:::i;:::-;7011:63;;6967:117;7123:2;7149:53;7194:7;7185:6;7174:9;7170:22;7149:53;:::i;:::-;7139:63;;7094:118;7251:2;7277:53;7322:7;7313:6;7302:9;7298:22;7277:53;:::i;:::-;7267:63;;7222:118;7379:2;7405:53;7450:7;7441:6;7430:9;7426:22;7405:53;:::i;:::-;7395:63;;7350:118;6894:581;;;;;;;:::o;7481:552::-;;;;7623:2;7611:9;7602:7;7598:23;7594:32;7591:2;;;7639:1;7636;7629:12;7591:2;7682:1;7707:53;7752:7;7743:6;7732:9;7728:22;7707:53;:::i;:::-;7697:63;;7653:117;7809:2;7835:53;7880:7;7871:6;7860:9;7856:22;7835:53;:::i;:::-;7825:63;;7780:118;7937:2;7963:53;8008:7;7999:6;7988:9;7984:22;7963:53;:::i;:::-;7953:63;;7908:118;7581:452;;;;;:::o;8039:405::-;;8172:2;8160:9;8151:7;8147:23;8143:32;8140:2;;;8188:1;8185;8178:12;8140:2;8259:1;8248:9;8244:17;8231:31;8289:18;8281:6;8278:30;8275:2;;;8321:1;8318;8311:12;8275:2;8349:78;8419:7;8410:6;8399:9;8395:22;8349:78;:::i;:::-;8339:88;;8202:235;8130:314;;;;:::o;8450:278::-;;8566:2;8554:9;8545:7;8541:23;8537:32;8534:2;;;8582:1;8579;8572:12;8534:2;8625:1;8650:61;8703:7;8694:6;8683:9;8679:22;8650:61;:::i;:::-;8640:71;;8596:125;8524:204;;;;:::o;8734:262::-;;8842:2;8830:9;8821:7;8817:23;8813:32;8810:2;;;8858:1;8855;8848:12;8810:2;8901:1;8926:53;8971:7;8962:6;8951:9;8947:22;8926:53;:::i;:::-;8916:63;;8872:117;8800:196;;;;:::o;9002:284::-;;9121:2;9109:9;9100:7;9096:23;9092:32;9089:2;;;9137:1;9134;9127:12;9089:2;9180:1;9205:64;9261:7;9252:6;9241:9;9237:22;9205:64;:::i;:::-;9195:74;;9151:128;9079:207;;;;:::o;9292:118::-;9379:24;9397:5;9379:24;:::i;:::-;9374:3;9367:37;9357:53;;:::o;9416:109::-;9497:21;9512:5;9497:21;:::i;:::-;9492:3;9485:34;9475:50;;:::o;9531:367::-;;9694:67;9758:2;9753:3;9694:67;:::i;:::-;9687:74;;9791:34;9787:1;9782:3;9778:11;9771:55;9857:5;9852:2;9847:3;9843:12;9836:27;9889:2;9884:3;9880:12;9873:19;;9677:221;;;:::o;9904:371::-;;10067:67;10131:2;10126:3;10067:67;:::i;:::-;10060:74;;10164:34;10160:1;10155:3;10151:11;10144:55;10230:9;10225:2;10220:3;10216:12;10209:31;10266:2;10261:3;10257:12;10250:19;;10050:225;;;:::o;10281:328::-;;10444:67;10508:2;10503:3;10444:67;:::i;:::-;10437:74;;10541:32;10537:1;10532:3;10528:11;10521:53;10600:2;10595:3;10591:12;10584:19;;10427:182;;;:::o;10615:396::-;;10778:67;10842:2;10837:3;10778:67;:::i;:::-;10771:74;;10875:34;10871:1;10866:3;10862:11;10855:55;10941:34;10936:2;10931:3;10927:12;10920:56;11002:2;10997:3;10993:12;10986:19;;10761:250;;;:::o;11017:328::-;;11180:67;11244:2;11239:3;11180:67;:::i;:::-;11173:74;;11277:32;11273:1;11268:3;11264:11;11257:53;11336:2;11331:3;11327:12;11320:19;;11163:182;;;:::o;11351:437::-;;11514:67;11578:2;11573:3;11514:67;:::i;:::-;11507:74;;11611:34;11607:1;11602:3;11598:11;11591:55;11677:34;11672:2;11667:3;11663:12;11656:56;11743:9;11738:2;11733:3;11729:12;11722:31;11779:2;11774:3;11770:12;11763:19;;11497:291;;;:::o;11794:310::-;;11957:67;12021:2;12016:3;11957:67;:::i;:::-;11950:74;;12054:14;12050:1;12045:3;12041:11;12034:35;12095:2;12090:3;12086:12;12079:19;;11940:164;;;:::o;12110:376::-;;12273:67;12337:2;12332:3;12273:67;:::i;:::-;12266:74;;12370:34;12366:1;12361:3;12357:11;12350:55;12436:14;12431:2;12426:3;12422:12;12415:36;12477:2;12472:3;12468:12;12461:19;;12256:230;;;:::o;12492:328::-;;12655:67;12719:2;12714:3;12655:67;:::i;:::-;12648:74;;12752:32;12748:1;12743:3;12739:11;12732:53;12811:2;12806:3;12802:12;12795:19;;12638:182;;;:::o;12826:328::-;;12989:67;13053:2;13048:3;12989:67;:::i;:::-;12982:74;;13086:32;13082:1;13077:3;13073:11;13066:53;13145:2;13140:3;13136:12;13129:19;;12972:182;;;:::o;13160:326::-;;13323:67;13387:2;13382:3;13323:67;:::i;:::-;13316:74;;13420:30;13416:1;13411:3;13407:11;13400:51;13477:2;13472:3;13468:12;13461:19;;13306:180;;;:::o;13492:367::-;;13655:67;13719:2;13714:3;13655:67;:::i;:::-;13648:74;;13752:34;13748:1;13743:3;13739:11;13732:55;13818:5;13813:2;13808:3;13804:12;13797:27;13850:2;13845:3;13841:12;13834:19;;13638:221;;;:::o;13865:387::-;;14028:67;14092:2;14087:3;14028:67;:::i;:::-;14021:74;;14125:34;14121:1;14116:3;14112:11;14105:55;14191:25;14186:2;14181:3;14177:12;14170:47;14243:2;14238:3;14234:12;14227:19;;14011:241;;;:::o;14258:443::-;;14421:67;14485:2;14480:3;14421:67;:::i;:::-;14414:74;;14518:34;14514:1;14509:3;14505:11;14498:55;14584:34;14579:2;14574:3;14570:12;14563:56;14650:15;14645:2;14640:3;14636:12;14629:37;14692:2;14687:3;14683:12;14676:19;;14404:297;;;:::o;14707:462::-;;14870:67;14934:2;14929:3;14870:67;:::i;:::-;14863:74;;14967:34;14963:1;14958:3;14954:11;14947:55;15033:34;15028:2;15023:3;15019:12;15012:56;15099:34;15094:2;15089:3;15085:12;15078:56;15160:2;15155:3;15151:12;15144:19;;14853:316;;;:::o;15175:448::-;;15338:67;15402:2;15397:3;15338:67;:::i;:::-;15331:74;;15435:34;15431:1;15426:3;15422:11;15415:55;15501:34;15496:2;15491:3;15487:12;15480:56;15567:20;15562:2;15557:3;15553:12;15546:42;15614:2;15609:3;15605:12;15598:19;;15321:302;;;:::o;15629:377::-;;15792:67;15856:2;15851:3;15792:67;:::i;:::-;15785:74;;15889:34;15885:1;15880:3;15876:11;15869:55;15955:15;15950:2;15945:3;15941:12;15934:37;15997:2;15992:3;15988:12;15981:19;;15775:231;;;:::o;16012:118::-;16099:24;16117:5;16099:24;:::i;:::-;16094:3;16087:37;16077:53;;:::o;16136:222::-;;16267:2;16256:9;16252:18;16244:26;;16280:71;16348:1;16337:9;16333:17;16324:6;16280:71;:::i;:::-;16234:124;;;;:::o;16364:1096::-;;16713:3;16702:9;16698:19;16690:27;;16727:71;16795:1;16784:9;16780:17;16771:6;16727:71;:::i;:::-;16808:72;16876:2;16865:9;16861:18;16852:6;16808:72;:::i;:::-;16890;16958:2;16947:9;16943:18;16934:6;16890:72;:::i;:::-;16972:66;17034:2;17023:9;17019:18;17010:6;16972:66;:::i;:::-;17048:73;17116:3;17105:9;17101:19;17092:6;17048:73;:::i;:::-;17131;17199:3;17188:9;17184:19;17175:6;17131:73;:::i;:::-;17214;17282:3;17271:9;17267:19;17258:6;17214:73;:::i;:::-;17297;17365:3;17354:9;17350:19;17341:6;17297:73;:::i;:::-;17380;17448:3;17437:9;17433:19;17424:6;17380:73;:::i;:::-;16680:780;;;;;;;;;;;;:::o;17466:1308::-;;17866:3;17855:9;17851:19;17843:27;;17880:71;17948:1;17937:9;17933:17;17924:6;17880:71;:::i;:::-;17961:72;18029:2;18018:9;18014:18;18005:6;17961:72;:::i;:::-;18043;18111:2;18100:9;18096:18;18087:6;18043:72;:::i;:::-;18125:66;18187:2;18176:9;18172:18;18163:6;18125:66;:::i;:::-;18201:73;18269:3;18258:9;18254:19;18245:6;18201:73;:::i;:::-;18284;18352:3;18341:9;18337:19;18328:6;18284:73;:::i;:::-;18367;18435:3;18424:9;18420:19;18411:6;18367:73;:::i;:::-;18450;18518:3;18507:9;18503:19;18494:6;18450:73;:::i;:::-;18533;18601:3;18590:9;18586:19;18577:6;18533:73;:::i;:::-;18616;18684:3;18673:9;18669:19;18660:6;18616:73;:::i;:::-;18699:68;18762:3;18751:9;18747:19;18737:7;18699:68;:::i;:::-;17833:941;;;;;;;;;;;;;;:::o;18780:985::-;;19101:3;19090:9;19086:19;19078:27;;19115:71;19183:1;19172:9;19168:17;19159:6;19115:71;:::i;:::-;19196:72;19264:2;19253:9;19249:18;19240:6;19196:72;:::i;:::-;19278:66;19340:2;19329:9;19325:18;19316:6;19278:66;:::i;:::-;19354:72;19422:2;19411:9;19407:18;19398:6;19354:72;:::i;:::-;19436:73;19504:3;19493:9;19489:19;19480:6;19436:73;:::i;:::-;19519;19587:3;19576:9;19572:19;19563:6;19519:73;:::i;:::-;19602;19670:3;19659:9;19655:19;19646:6;19602:73;:::i;:::-;19685;19753:3;19742:9;19738:19;19729:6;19685:73;:::i;:::-;19068:697;;;;;;;;;;;:::o;19771:1084::-;;20114:3;20103:9;20099:19;20091:27;;20128:71;20196:1;20185:9;20181:17;20172:6;20128:71;:::i;:::-;20209:72;20277:2;20266:9;20262:18;20253:6;20209:72;:::i;:::-;20291:66;20353:2;20342:9;20338:18;20329:6;20291:66;:::i;:::-;20367:72;20435:2;20424:9;20420:18;20411:6;20367:72;:::i;:::-;20449:73;20517:3;20506:9;20502:19;20493:6;20449:73;:::i;:::-;20532;20600:3;20589:9;20585:19;20576:6;20532:73;:::i;:::-;20615;20683:3;20672:9;20668:19;20659:6;20615:73;:::i;:::-;20698;20766:3;20755:9;20751:19;20742:6;20698:73;:::i;:::-;20781:67;20843:3;20832:9;20828:19;20819:6;20781:67;:::i;:::-;20081:774;;;;;;;;;;;;:::o;20861:442::-;;21048:2;21037:9;21033:18;21025:26;;21061:71;21129:1;21118:9;21114:17;21105:6;21061:71;:::i;:::-;21142:72;21210:2;21199:9;21195:18;21186:6;21142:72;:::i;:::-;21224;21292:2;21281:9;21277:18;21268:6;21224:72;:::i;:::-;21015:288;;;;;;:::o;21309:332::-;;21468:2;21457:9;21453:18;21445:26;;21481:71;21549:1;21538:9;21534:17;21525:6;21481:71;:::i;:::-;21562:72;21630:2;21619:9;21615:18;21606:6;21562:72;:::i;:::-;21435:206;;;;;:::o;21647:210::-;;21772:2;21761:9;21757:18;21749:26;;21785:65;21847:1;21836:9;21832:17;21823:6;21785:65;:::i;:::-;21739:118;;;;:::o;21863:419::-;;22067:2;22056:9;22052:18;22044:26;;22116:9;22110:4;22106:20;22102:1;22091:9;22087:17;22080:47;22144:131;22270:4;22144:131;:::i;:::-;22136:139;;22034:248;;;:::o;22288:419::-;;22492:2;22481:9;22477:18;22469:26;;22541:9;22535:4;22531:20;22527:1;22516:9;22512:17;22505:47;22569:131;22695:4;22569:131;:::i;:::-;22561:139;;22459:248;;;:::o;22713:419::-;;22917:2;22906:9;22902:18;22894:26;;22966:9;22960:4;22956:20;22952:1;22941:9;22937:17;22930:47;22994:131;23120:4;22994:131;:::i;:::-;22986:139;;22884:248;;;:::o;23138:419::-;;23342:2;23331:9;23327:18;23319:26;;23391:9;23385:4;23381:20;23377:1;23366:9;23362:17;23355:47;23419:131;23545:4;23419:131;:::i;:::-;23411:139;;23309:248;;;:::o;23563:419::-;;23767:2;23756:9;23752:18;23744:26;;23816:9;23810:4;23806:20;23802:1;23791:9;23787:17;23780:47;23844:131;23970:4;23844:131;:::i;:::-;23836:139;;23734:248;;;:::o;23988:419::-;;24192:2;24181:9;24177:18;24169:26;;24241:9;24235:4;24231:20;24227:1;24216:9;24212:17;24205:47;24269:131;24395:4;24269:131;:::i;:::-;24261:139;;24159:248;;;:::o;24413:419::-;;24617:2;24606:9;24602:18;24594:26;;24666:9;24660:4;24656:20;24652:1;24641:9;24637:17;24630:47;24694:131;24820:4;24694:131;:::i;:::-;24686:139;;24584:248;;;:::o;24838:419::-;;25042:2;25031:9;25027:18;25019:26;;25091:9;25085:4;25081:20;25077:1;25066:9;25062:17;25055:47;25119:131;25245:4;25119:131;:::i;:::-;25111:139;;25009:248;;;:::o;25263:419::-;;25467:2;25456:9;25452:18;25444:26;;25516:9;25510:4;25506:20;25502:1;25491:9;25487:17;25480:47;25544:131;25670:4;25544:131;:::i;:::-;25536:139;;25434:248;;;:::o;25688:419::-;;25892:2;25881:9;25877:18;25869:26;;25941:9;25935:4;25931:20;25927:1;25916:9;25912:17;25905:47;25969:131;26095:4;25969:131;:::i;:::-;25961:139;;25859:248;;;:::o;26113:419::-;;26317:2;26306:9;26302:18;26294:26;;26366:9;26360:4;26356:20;26352:1;26341:9;26337:17;26330:47;26394:131;26520:4;26394:131;:::i;:::-;26386:139;;26284:248;;;:::o;26538:419::-;;26742:2;26731:9;26727:18;26719:26;;26791:9;26785:4;26781:20;26777:1;26766:9;26762:17;26755:47;26819:131;26945:4;26819:131;:::i;:::-;26811:139;;26709:248;;;:::o;26963:419::-;;27167:2;27156:9;27152:18;27144:26;;27216:9;27210:4;27206:20;27202:1;27191:9;27187:17;27180:47;27244:131;27370:4;27244:131;:::i;:::-;27236:139;;27134:248;;;:::o;27388:419::-;;27592:2;27581:9;27577:18;27569:26;;27641:9;27635:4;27631:20;27627:1;27616:9;27612:17;27605:47;27669:131;27795:4;27669:131;:::i;:::-;27661:139;;27559:248;;;:::o;27813:419::-;;28017:2;28006:9;28002:18;27994:26;;28066:9;28060:4;28056:20;28052:1;28041:9;28037:17;28030:47;28094:131;28220:4;28094:131;:::i;:::-;28086:139;;27984:248;;;:::o;28238:419::-;;28442:2;28431:9;28427:18;28419:26;;28491:9;28485:4;28481:20;28477:1;28466:9;28462:17;28455:47;28519:131;28645:4;28519:131;:::i;:::-;28511:139;;28409:248;;;:::o;28663:419::-;;28867:2;28856:9;28852:18;28844:26;;28916:9;28910:4;28906:20;28902:1;28891:9;28887:17;28880:47;28944:131;29070:4;28944:131;:::i;:::-;28936:139;;28834:248;;;:::o;29088:222::-;;29219:2;29208:9;29204:18;29196:26;;29232:71;29300:1;29289:9;29285:17;29276:6;29232:71;:::i;:::-;29186:124;;;;:::o;29316:332::-;;29475:2;29464:9;29460:18;29452:26;;29488:71;29556:1;29545:9;29541:17;29532:6;29488:71;:::i;:::-;29569:72;29637:2;29626:9;29622:18;29613:6;29569:72;:::i;:::-;29442:206;;;;;:::o;29654:442::-;;29841:2;29830:9;29826:18;29818:26;;29854:71;29922:1;29911:9;29907:17;29898:6;29854:71;:::i;:::-;29935:72;30003:2;29992:9;29988:18;29979:6;29935:72;:::i;:::-;30017;30085:2;30074:9;30070:18;30061:6;30017:72;:::i;:::-;29808:288;;;;;;:::o;30102:283::-;;30168:2;30162:9;30152:19;;30210:4;30202:6;30198:17;30317:6;30305:10;30302:22;30281:18;30269:10;30266:34;30263:62;30260:2;;;30328:18;;:::i;:::-;30260:2;30368:10;30364:2;30357:22;30142:243;;;;:::o;30391:311::-;;30558:18;30550:6;30547:30;30544:2;;;30580:18;;:::i;:::-;30544:2;30630:4;30622:6;30618:17;30610:25;;30690:4;30684;30680:15;30672:23;;30473:229;;;:::o;30708:169::-;;30826:6;30821:3;30814:19;30866:4;30861:3;30857:14;30842:29;;30804:73;;;;:::o;30883:305::-;;30942:20;30960:1;30942:20;:::i;:::-;30937:25;;30976:20;30994:1;30976:20;:::i;:::-;30971:25;;31130:1;31062:66;31058:74;31055:1;31052:81;31049:2;;;31136:18;;:::i;:::-;31049:2;31180:1;31177;31173:9;31166:16;;30927:261;;;;:::o;31194:348::-;;31257:20;31275:1;31257:20;:::i;:::-;31252:25;;31291:20;31309:1;31291:20;:::i;:::-;31286:25;;31479:1;31411:66;31407:74;31404:1;31401:81;31396:1;31389:9;31382:17;31378:105;31375:2;;;31486:18;;:::i;:::-;31375:2;31534:1;31531;31527:9;31516:20;;31242:300;;;;:::o;31548:191::-;;31608:20;31626:1;31608:20;:::i;:::-;31603:25;;31642:20;31660:1;31642:20;:::i;:::-;31637:25;;31681:1;31678;31675:8;31672:2;;;31686:18;;:::i;:::-;31672:2;31731:1;31728;31724:9;31716:17;;31593:146;;;;:::o;31745:96::-;;31811:24;31829:5;31811:24;:::i;:::-;31800:35;;31790:51;;;:::o;31847:90::-;;31924:5;31917:13;31910:21;31899:32;;31889:48;;;:::o;31943:126::-;;32020:42;32013:5;32009:54;31998:65;;31988:81;;;:::o;32075:77::-;;32141:5;32130:16;;32120:32;;;:::o;32158:233::-;;32220:24;32238:5;32220:24;:::i;:::-;32211:33;;32266:66;32259:5;32256:77;32253:2;;;32336:18;;:::i;:::-;32253:2;32383:1;32376:5;32372:13;32365:20;;32201:190;;;:::o;32397:180::-;32445:77;32442:1;32435:88;32542:4;32539:1;32532:15;32566:4;32563:1;32556:15;32583:180;32631:77;32628:1;32621:88;32728:4;32725:1;32718:15;32752:4;32749:1;32742:15;32769:122;32842:24;32860:5;32842:24;:::i;:::-;32835:5;32832:35;32822:2;;32881:1;32878;32871:12;32822:2;32812:79;:::o;32897:116::-;32967:21;32982:5;32967:21;:::i;:::-;32960:5;32957:32;32947:2;;33003:1;33000;32993:12;32947:2;32937:76;:::o;33019:122::-;33092:24;33110:5;33092:24;:::i;:::-;33085:5;33082:35;33072:2;;33131:1;33128;33121:12;33072:2;33062:79;:::o", + "source": "pragma solidity >=0.8.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\n//Required libs\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/utils/math/SafeMath.sol\";\n\n//Options Market Contract\ncontract Core is ReentrancyGuard {\n using SafeMath for uint256;\n fallback() external payable { }\n mapping (address => bool) public tokenActivated;\n\n //currently DAI is the stablecoin of choice and the address cannot be edited by anyone to prevent users unable to complete their option trade cycles under any circumstance. If the DAI address changes, a new contract should be used by users.\n // address public daiTokenAddress = 0x6B175474E89094C44Da98b954EedeAC495271d0F;\n address public daiTokenAddress;\n \n IERC20 daiToken = IERC20(daiTokenAddress);\n\n //mappings for sellers and buyers of options (database)\n mapping(address=> mapping(address=> mapping(bool=> mapping(uint256=>mapping(uint256=> mapping(uint256=>uint256)))))) public orderbook;\n mapping(address=> mapping(address=>mapping(bool=> mapping(uint256=>mapping(uint256=>uint256))))) public positions;\n mapping(address => mapping(address => uint256)) private _allowances;\n\n //Incrementing identifiers for orders. This number will be the last offer or purchase ID\n uint256 public lastOrderId= 0;\n uint256 public lastPurchaseId =0;\n\n //All events based on major function executions (purchase, offers, exersizes and cancellations)\n event OptionPurchase(address buyer, address seller, address token, bool isCallOption, uint256 strikePrice, uint256 premium, uint256 expiry, uint256 amountPurchasing, uint256 purchaseId);\n event OptionOffer(address seller, address token, bool isCallOption, uint256 strikePrice, uint256 premium, uint256 expiry, uint256 amountSelling, uint256 orderId);\n event OptionExcersize(uint256 optionId, uint256 excersizeCost, uint256 timestamp);\n event Transfer(address indexed from, address indexed to, uint256 value, uint256 purchaseId,uint256 timestamp);\n event Approval(address indexed owner, address indexed spender, uint256 value, uint256 purchaseId);\n\n //Structures of offers and purchases\n struct optionOffer {\n address seller;\n address token;\n bool isCallOption;\n uint256 strikePrice;\n uint256 premium;\n uint256 expiry;\n uint256 amountUnderlyingToken;\n uint256 offeredTimestamp;\n bool isStillValid;\n }\n struct optionPurchase {\n address buyer;\n address seller;\n address token;\n bool isCallOption;\n uint256 strikePrice;\n uint256 premium;\n uint256 expiry;\n uint256 amountUnderlyingToken;\n uint256 offerId;\n uint256 purchasedTimestamp;\n bool exercized;\n }\n\n //publicly available data for all purchases and sale offers\n mapping (uint256 => optionPurchase) public optionPurchases;\n mapping (uint256 => optionOffer) public optionOffers;\n\n function setDaiAddress(address _daiAddress) public{\n daiTokenAddress = _daiAddress;\n }\n\n //Allows anyone to attempt to excersize an option after its excersize date. This can be done by a bot of the service provider or the user themselves\n function excersizeOption(uint256 purchaseId) public returns (bool){\n\n require(optionPurchases[purchaseId].exercized== false, \"This option has already been excersized\");\n require(optionPurchases[purchaseId].expiry >= block.timestamp, \"This option has not reached its excersize timestamp yet\");\n optionPurchase memory opData = optionPurchases[purchaseId];\n address underlyingAddress = opData.token;\n IERC20 underlyingToken = IERC20(underlyingAddress);\n uint256 amountDAIToPay = opData.amountUnderlyingToken.mul(opData.strikePrice);\n require(daiToken.transferFrom(opData.buyer, opData.seller, amountDAIToPay), \"Did the buyer approve this contract to handle DAI or have anough DAI to excersize?\");\n underlyingToken.transfer(opData.buyer, opData.amountUnderlyingToken);\n optionPurchases[purchaseId].exercized= true;\n emit OptionExcersize(purchaseId, amountDAIToPay, block.timestamp);\n return true;\n\n }\n\n //This allows for the excersizing of many options with a single transaction\n function excersizeOptions(uint256[] memory purchaseIds) public returns (bool){\n for(uint i = 0; i= (contractBalanceBeforeTransfer.add(amountUnderlyingToken)), \"Could not transfer the amount from msg.sender that was requested\");\n if(orderbook[seller][token][isCallOption][strikePrice][premium][expiry] ==0){\n orderbook[seller][token][isCallOption][strikePrice][premium][expiry] = amountUnderlyingToken;\n }\n else{\n orderbook[seller][token][isCallOption][strikePrice][premium][expiry] = orderbook[seller][token][isCallOption][strikePrice][premium][expiry].add(amountUnderlyingToken);\n }\n lastOrderId = lastOrderId.add(1);\n emit OptionOffer( seller, token, isCallOption, strikePrice, premium, expiry, amountUnderlyingToken, lastOrderId);\n return lastOrderId;\n }\n\n //This allows a user to immediately purchase an option based on the Id of an offer\n function buyOptionByID(address buyer,uint256 offerId, uint256 amountPurchasing) public returns (bool){\n \t\trequire(optionOffers[offerId].isStillValid== true, \"This option is no longer valid\");\n \t\toptionOffer memory opData = optionOffers[offerId];\n \t\tbool optionIsBuyable = isOptionBuyable(opData.seller, opData.token, opData.isCallOption, opData.strikePrice, opData.premium, opData.expiry, amountPurchasing);\n \t\trequire(optionIsBuyable, \"This option is not buyable. Please check the seller's offer information\");\n require(amountPurchasing <= opData.amountUnderlyingToken, \"There is not enough inventory for this order\");\n uint256 orderSize = opData.premium.mul(amountPurchasing);\n require(daiToken.transferFrom(msg.sender, opData.seller, orderSize), \"Please ensure that you have approved this contract to handle your DAI (error)\");\n orderbook[opData.seller][opData.token][opData.isCallOption][opData.strikePrice][opData.premium][opData.expiry].sub(amountPurchasing);\n positions[buyer][opData.token][opData.isCallOption][opData.strikePrice][opData.expiry].add(amountPurchasing);\n lastPurchaseId = lastPurchaseId.add(1);\n emit OptionPurchase(buyer, opData.seller, opData.token, opData.isCallOption, opData.strikePrice, opData.premium, opData.expiry, amountPurchasing, lastPurchaseId);\n return true;\n }\n\n //This allows a user to immediately purchase an option based on the seller and offer information\n function buyOptionByExactPremiumAndExpiry(address buyer, address seller, address token, bool isCallOption, uint256 strikePrice, uint256 premium, uint256 expiry, uint256 amountPurchasing ) public returns (bool){\n bool optionIsBuyable = isOptionBuyable(seller, token, isCallOption, strikePrice, premium, expiry, amountPurchasing);\n require(optionIsBuyable, \"This option is not buyable. Please check the seller's offer information\");\n require(optionIsBuyable, \"Sorry: there is no one selling options that meet your specifications. Perhaps try buyOptionByIds\");\n uint256 amountSelling = orderbook[seller][token][isCallOption][strikePrice][premium][expiry];\n require(amountPurchasing <= amountSelling,\" There is not enough inventory for this order\");\n uint256 orderSize = premium.mul(amountPurchasing);\n require(daiToken.transferFrom(msg.sender, seller, orderSize), \"Please ensure that you have approved this contract to handle your DAI (error)\");\n orderbook[seller][token][isCallOption][strikePrice][premium][expiry]=orderbook[seller][token][isCallOption][strikePrice][premium][expiry].sub(amountPurchasing);\n positions[buyer][token][isCallOption][strikePrice][expiry]=positions[buyer][token][isCallOption][strikePrice][expiry].add(amountPurchasing);\n lastPurchaseId = lastPurchaseId.add(1);\n emit OptionPurchase(buyer, seller, token, isCallOption, strikePrice, premium, expiry, amountPurchasing, lastPurchaseId);\n return true;\n }\n\n //This allows a seller to cancel all or the remainder of an option offer and redeem their underlying. A seller cannot redeem the tokens that are needed by a user who already has purchased part of the offer\n function cancelOptionOffer(uint256 offerId) public returns(bool){\n //msg.sender is seller\n require(optionOffers[offerId].seller == msg.sender, \"The msg.sender has to be the seller\");\n uint256 amountUnderlyingToReturn = orderbook[msg.sender][optionOffers[offerId].token][optionOffers[offerId].isCallOption][optionOffers[offerId].strikePrice][optionOffers[offerId].premium][optionOffers[offerId].expiry];\n address underlyingAddress = optionOffers[offerId].token;\n IERC20 underlyingToken = IERC20(underlyingAddress);\n underlyingToken.transfer(msg.sender, amountUnderlyingToReturn);\n orderbook[msg.sender][optionOffers[offerId].token][optionOffers[offerId].isCallOption][optionOffers[offerId].strikePrice][optionOffers[offerId].premium][optionOffers[offerId].expiry]= 0;\n optionOffers[offerId].isStillValid = false;\n return true;\n\n }\n\n //This allows a user to know if an option is purchasable based on the seller and offer information\n function isOptionBuyable(address seller, address token, bool isCallOption, uint256 strikePrice, uint256 premium, uint256 expiry, uint256 amountPurchasing) public view returns (bool){\n if(orderbook[seller][token][isCallOption][strikePrice][premium][expiry] >=amountPurchasing){\n return true;\n }\n else{\n return false;\n }\n }\n\n function transfer (address recipient, uint256 amount, uint256 purchaseId) public{//Transfer the amount of options from the msg.sender to the recipient address\n _transfer(msg.sender, recipient, amount,purchaseId);\n }\n\n function approve (address designee, uint256 amount , uint256 purchaseId ) public returns(bool){//allows the designee to spend an amount of options\n require(optionPurchases[purchaseId].buyer == msg.sender,'The sender must own the option');\n require(optionPurchases[purchaseId].amountUnderlyingToken>=amount,'Cannot approve more than owned');\n _allowances[msg.sender][designee]= amount;\n emit Approval(msg.sender, designee, amount, purchaseId);\n }\n\n function approval(address owner, address designee, uint256 purchaseId)public returns(uint256 approvalAmount){//return the amount of options the designee can spend\n return _allowances[owner][designee];\n }\n\n function transferFrom(address from , address recipient, uint256 amount,uint256 purchaseId) public {//Transfer the amount of options to the recipient address\n uint256 allownace = approval(from, recipient, purchaseId);\n require(allownace == 0 ,'Not approved');\n require(allownace>= amount,'Not approved for this amount');\n _transfer(from,recipient, amount, purchaseId);\n approve(recipient,allownace.sub(amount),purchaseId);\n }\n \n\n\n function _transfer(address sender, address recipient, uint256 amount,uint256 purchaseId) internal {//inernal transfer function\n require(optionPurchases[purchaseId].buyer == sender,'The sender must own the option');\n require(optionPurchases[purchaseId].amountUnderlyingToken>=amount,'Cannot tranfer more than owned');\n optionPurchase memory optData = optionPurchases[purchaseId];\n require(!optData.exercized,'cannot transfer an exercized option');\n positions[sender][optData.token][optData.isCallOption][optData.strikePrice][optData.expiry]=positions[sender][optData.token][optData.isCallOption][optData.strikePrice][optData.expiry].sub(amount);//adjust the position of the owner\n positions[recipient][optData.token][optData.isCallOption][optData.strikePrice][optData.expiry]=positions[recipient][optData.token][optData.isCallOption][optData.strikePrice][optData.expiry].add(amount);//adjust the position of the reciever\n emit Transfer(sender, recipient, amount, purchaseId, block.timestamp);\n }\n\n \n\n\n}\n", + "sourcePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/optionsmarket.sol", + "ast": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/optionsmarket.sol", + "exportedSymbols": { + "Address": [ + 1843 + ], + "Core": [ + 1205 + ], + "IERC20": [ + 1323 + ], + "ReentrancyGuard": [ + 1245 + ], + "SafeERC20": [ + 1547 + ], + "SafeMath": [ + 2155 + ] + }, + "id": 1206, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:31:0" + }, + { + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "32:33:0" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 1206, + "sourceUnit": 1324, + "src": "83:56:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/security/ReentrancyGuard.sol", + "file": "@openzeppelin/contracts/security/ReentrancyGuard.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 1206, + "sourceUnit": 1246, + "src": "140:62:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 1206, + "sourceUnit": 1548, + "src": "203:65:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeMath.sol", + "file": "@openzeppelin/contracts/utils/math/SafeMath.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 1206, + "sourceUnit": 2156, + "src": "269:57:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 7, + "name": "ReentrancyGuard", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1245, + "src": "372:15:0" + }, + "id": 8, + "nodeType": "InheritanceSpecifier", + "src": "372:15:0" + } + ], + "contractDependencies": [ + 1245 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1205, + "linearizedBaseContracts": [ + 1205, + 1245 + ], + "name": "Core", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 11, + "libraryName": { + "id": 9, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 2155, + "src": "400:8:0" + }, + "nodeType": "UsingForDirective", + "src": "394:27:0", + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "413:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 14, + "nodeType": "Block", + "src": "454:3:0", + "statements": [] + }, + "id": 15, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "434:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "454:0:0" + }, + "scope": 1205, + "src": "426:31:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "constant": false, + "functionSelector": "2f3f7d7f", + "id": 19, + "mutability": "mutable", + "name": "tokenActivated", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "462:47:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 18, + "keyType": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "471:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "462:25:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 17, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "482:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "2eaee35e", + "id": 21, + "mutability": "mutable", + "name": "daiTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "842:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "842:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "daiToken", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "883:41:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 23, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 22, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1323, + "src": "883:6:0" + }, + "referencedDeclaration": 1323, + "src": "883:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "value": { + "arguments": [ + { + "id": 25, + "name": "daiTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "908:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 24, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1323, + "src": "901:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$1323_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 26, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "901:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "functionSelector": "e289ae81", + "id": 41, + "mutability": "mutable", + "name": "orderbook", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "991:133:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + }, + "typeName": { + "id": 40, + "keyType": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "999:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "991:116:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + }, + "valueType": { + "id": 39, + "keyType": { + "id": 29, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1017:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1009:97:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + }, + "valueType": { + "id": 38, + "keyType": { + "id": 30, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1035:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Mapping", + "src": "1027:78:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + }, + "valueType": { + "id": 37, + "keyType": { + "id": 31, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1050:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1042:62:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + }, + "valueType": { + "id": 36, + "keyType": { + "id": 32, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1067:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1059:44:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + }, + "valueType": { + "id": 35, + "keyType": { + "id": 33, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1085:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1077:25:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 34, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1094:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + } + } + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "84d62178", + "id": 53, + "mutability": "mutable", + "name": "positions", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1130:113:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + }, + "typeName": { + "id": 52, + "keyType": { + "id": 42, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1138:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1130:96:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + }, + "valueType": { + "id": 51, + "keyType": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1156:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1148:77:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + }, + "valueType": { + "id": 50, + "keyType": { + "id": 44, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1173:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Mapping", + "src": "1165:59:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + }, + "valueType": { + "id": 49, + "keyType": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1188:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1180:43:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + }, + "valueType": { + "id": 48, + "keyType": { + "id": 46, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1205:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1197:25:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 47, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1214:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + } + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "_allowances", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1249:67:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 58, + "keyType": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1257:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1249:47:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 57, + "keyType": { + "id": 55, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1276:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1268:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1287:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5662ecc7", + "id": 62, + "mutability": "mutable", + "name": "lastOrderId", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1416:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1416:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1444:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "61fa86e6", + "id": 65, + "mutability": "mutable", + "name": "lastPurchaseId", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1451:32:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1451:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1482:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 85, + "name": "OptionPurchase", + "nodeType": "EventDefinition", + "parameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 67, + "indexed": false, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1611:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1611:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "indexed": false, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1626:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1626:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 71, + "indexed": false, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1642:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 70, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1642:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 73, + "indexed": false, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1657:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 72, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1657:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "indexed": false, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1676:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 74, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 77, + "indexed": false, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1697:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 76, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1697:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79, + "indexed": false, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1714:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 78, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1714:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "indexed": false, + "mutability": "mutable", + "name": "amountPurchasing", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1730:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 80, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1730:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 83, + "indexed": false, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1756:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 82, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1756:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1610:165:0" + }, + "src": "1590:186:0" + }, + { + "anonymous": false, + "id": 103, + "name": "OptionOffer", + "nodeType": "EventDefinition", + "parameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 87, + "indexed": false, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1799:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 86, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1799:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "indexed": false, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1815:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1815:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "indexed": false, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1830:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 90, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1830:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "indexed": false, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1849:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 92, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1849:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "indexed": false, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1870:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1870:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "indexed": false, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1887:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1887:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "indexed": false, + "mutability": "mutable", + "name": "amountSelling", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1903:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1903:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 101, + "indexed": false, + "mutability": "mutable", + "name": "orderId", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1926:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1926:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1798:144:0" + }, + "src": "1781:162:0" + }, + { + "anonymous": false, + "id": 111, + "name": "OptionExcersize", + "nodeType": "EventDefinition", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 105, + "indexed": false, + "mutability": "mutable", + "name": "optionId", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "1970:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 104, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1970:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 107, + "indexed": false, + "mutability": "mutable", + "name": "excersizeCost", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "1988:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1988:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 109, + "indexed": false, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "2011:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2011:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1969:60:0" + }, + "src": "1948:82:0" + }, + { + "anonymous": false, + "id": 123, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 113, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "2050:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2050:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 115, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "2072:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2072:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 117, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "2092:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2092:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 119, + "indexed": false, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "2107:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2107:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 121, + "indexed": false, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "2126:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2126:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2049:95:0" + }, + "src": "2035:110:0" + }, + { + "anonymous": false, + "id": 133, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 125, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "2165:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2165:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 127, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "2188:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2188:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 129, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "2213:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2213:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 131, + "indexed": false, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "2228:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2228:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2164:83:0" + }, + "src": "2150:98:0" + }, + { + "canonicalName": "Core.optionOffer", + "id": 152, + "members": [ + { + "constant": false, + "id": 135, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2323:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2323:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 137, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2347:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2347:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 139, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2370:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 138, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2370:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 141, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2397:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2397:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 143, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2426:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2426:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 145, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2451:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2451:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 147, + "mutability": "mutable", + "name": "amountUnderlyingToken", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2475:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 149, + "mutability": "mutable", + "name": "offeredTimestamp", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2514:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2514:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "isStillValid", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2548:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 150, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2548:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "optionOffer", + "nodeType": "StructDefinition", + "scope": 1205, + "src": "2294:278:0", + "visibility": "public" + }, + { + "canonicalName": "Core.optionPurchase", + "id": 175, + "members": [ + { + "constant": false, + "id": 154, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2609:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 153, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2609:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 156, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2632:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2632:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 158, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2656:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 157, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2656:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 160, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2679:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 159, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2679:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 162, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2706:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 161, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 164, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2735:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 163, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 166, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2760:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 165, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2760:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 168, + "mutability": "mutable", + "name": "amountUnderlyingToken", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2784:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2784:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 170, + "mutability": "mutable", + "name": "offerId", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2823:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2823:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 172, + "mutability": "mutable", + "name": "purchasedTimestamp", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2848:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2848:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "exercized", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2884:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2884:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "optionPurchase", + "nodeType": "StructDefinition", + "scope": 1205, + "src": "2577:328:0", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "188783d6", + "id": 180, + "mutability": "mutable", + "name": "optionPurchases", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "2975:58:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase)" + }, + "typeName": { + "id": 179, + "keyType": { + "id": 176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2984:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2975:35:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase)" + }, + "valueType": { + "id": 178, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 177, + "name": "optionPurchase", + "nodeType": "IdentifierPath", + "referencedDeclaration": 175, + "src": "2995:14:0" + }, + "referencedDeclaration": 175, + "src": "2995:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage_ptr", + "typeString": "struct Core.optionPurchase" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "00b4fa3e", + "id": 185, + "mutability": "mutable", + "name": "optionOffers", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "3039:52:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer)" + }, + "typeName": { + "id": 184, + "keyType": { + "id": 181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3048:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3039:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer)" + }, + "valueType": { + "id": 183, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 182, + "name": "optionOffer", + "nodeType": "IdentifierPath", + "referencedDeclaration": 152, + "src": "3059:11:0" + }, + "referencedDeclaration": 152, + "src": "3059:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage_ptr", + "typeString": "struct Core.optionOffer" + } + } + }, + "visibility": "public" + }, + { + "body": { + "id": 194, + "nodeType": "Block", + "src": "3148:46:0", + "statements": [ + { + "expression": { + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 190, + "name": "daiTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "3158:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 191, + "name": "_daiAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 187, + "src": "3176:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3158:29:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 193, + "nodeType": "ExpressionStatement", + "src": "3158:29:0" + } + ] + }, + "functionSelector": "a6693590", + "id": 195, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setDaiAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 187, + "mutability": "mutable", + "name": "_daiAddress", + "nodeType": "VariableDeclaration", + "scope": 195, + "src": "3121:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3121:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3120:21:0" + }, + "returnParameters": { + "id": 189, + "nodeType": "ParameterList", + "parameters": [], + "src": "3148:0:0" + }, + "scope": 1205, + "src": "3098:96:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 288, + "nodeType": "Block", + "src": "3419:911:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 203, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "3438:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 205, + "indexExpression": { + "id": 204, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "3454:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3438:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 206, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exercized", + "nodeType": "MemberAccess", + "referencedDeclaration": 174, + "src": "3438:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "66616c7365", + "id": 207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3478:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3438:45:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54686973206f7074696f6e2068617320616c7265616479206265656e20657863657273697a6564", + "id": 209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3485:41:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f", + "typeString": "literal_string \"This option has already been excersized\"" + }, + "value": "This option has already been excersized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f", + "typeString": "literal_string \"This option has already been excersized\"" + } + ], + "id": 202, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3430:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3430:97:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 211, + "nodeType": "ExpressionStatement", + "src": "3430:97:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 213, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "3545:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 215, + "indexExpression": { + "id": 214, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "3561:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3545:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 216, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 166, + "src": "3545:34:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 217, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "3583:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3583:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3545:53:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54686973206f7074696f6e20686173206e6f7420726561636865642069747320657863657273697a652074696d657374616d7020796574", + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3600:57:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b", + "typeString": "literal_string \"This option has not reached its excersize timestamp yet\"" + }, + "value": "This option has not reached its excersize timestamp yet" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b", + "typeString": "literal_string \"This option has not reached its excersize timestamp yet\"" + } + ], + "id": 212, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3537:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3537:121:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 222, + "nodeType": "ExpressionStatement", + "src": "3537:121:0" + }, + { + "assignments": [ + 225 + ], + "declarations": [ + { + "constant": false, + "id": 225, + "mutability": "mutable", + "name": "opData", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "3668:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase" + }, + "typeName": { + "id": 224, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 223, + "name": "optionPurchase", + "nodeType": "IdentifierPath", + "referencedDeclaration": 175, + "src": "3668:14:0" + }, + "referencedDeclaration": 175, + "src": "3668:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage_ptr", + "typeString": "struct Core.optionPurchase" + } + }, + "visibility": "internal" + } + ], + "id": 229, + "initialValue": { + "baseExpression": { + "id": 226, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "3699:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 228, + "indexExpression": { + "id": 227, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "3715:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3699:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3668:58:0" + }, + { + "assignments": [ + 231 + ], + "declarations": [ + { + "constant": false, + "id": 231, + "mutability": "mutable", + "name": "underlyingAddress", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "3736:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3736:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 234, + "initialValue": { + "expression": { + "id": 232, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "3765:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 233, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 158, + "src": "3765:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3736:41:0" + }, + { + "assignments": [ + 237 + ], + "declarations": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "underlyingToken", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "3787:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 236, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 235, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1323, + "src": "3787:6:0" + }, + "referencedDeclaration": 1323, + "src": "3787:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "id": 241, + "initialValue": { + "arguments": [ + { + "id": 239, + "name": "underlyingAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "3819:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 238, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1323, + "src": "3812:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$1323_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3812:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3787:50:0" + }, + { + "assignments": [ + 243 + ], + "declarations": [ + { + "constant": false, + "id": 243, + "mutability": "mutable", + "name": "amountDAIToPay", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "3847:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3847:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 250, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 247, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "3905:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 162, + "src": "3905:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 244, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "3872:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 245, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountUnderlyingToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 168, + "src": "3872:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 2049, + "src": "3872:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3872:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3847:77:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 254, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "3964:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 255, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "buyer", + "nodeType": "MemberAccess", + "referencedDeclaration": 154, + "src": "3964:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 256, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "3978:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 257, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 156, + "src": "3978:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 258, + "name": "amountDAIToPay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "3993:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 252, + "name": "daiToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "3942:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1304, + "src": "3942:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3942:66:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4469642074686520627579657220617070726f7665207468697320636f6e747261637420746f2068616e646c6520444149206f72206861766520616e6f7567682044414920746f20657863657273697a653f", + "id": 260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4010:84:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1", + "typeString": "literal_string \"Did the buyer approve this contract to handle DAI or have anough DAI to excersize?\"" + }, + "value": "Did the buyer approve this contract to handle DAI or have anough DAI to excersize?" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1", + "typeString": "literal_string \"Did the buyer approve this contract to handle DAI or have anough DAI to excersize?\"" + } + ], + "id": 251, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3934:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3934:161:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 262, + "nodeType": "ExpressionStatement", + "src": "3934:161:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 266, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "4130:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 267, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "buyer", + "nodeType": "MemberAccess", + "referencedDeclaration": 154, + "src": "4130:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 268, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "4144:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 269, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountUnderlyingToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 168, + "src": "4144:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 263, + "name": "underlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "4105:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1272, + "src": "4105:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:68:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 271, + "nodeType": "ExpressionStatement", + "src": "4105:68:0" + }, + { + "expression": { + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 272, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "4183:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 274, + "indexExpression": { + "id": 273, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "4199:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4183:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 275, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "exercized", + "nodeType": "MemberAccess", + "referencedDeclaration": 174, + "src": "4183:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4222:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4183:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "4183:43:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 280, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "4257:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 281, + "name": "amountDAIToPay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "4269:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 282, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4285:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4285:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 279, + "name": "OptionExcersize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "4241:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4241:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 285, + "nodeType": "EmitStatement", + "src": "4236:65:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4318:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 201, + "id": 287, + "nodeType": "Return", + "src": "4311:11:0" + } + ] + }, + "functionSelector": "23cfbf1a", + "id": 289, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "excersizeOption", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 197, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "3378:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3378:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3377:20:0" + }, + "returnParameters": { + "id": 201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "3414:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 199, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3414:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3413:6:0" + }, + "scope": 1205, + "src": "3353:977:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 318, + "nodeType": "Block", + "src": "4493:135:0", + "statements": [ + { + "body": { + "id": 314, + "nodeType": "Block", + "src": "4545:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 309, + "name": "purchaseIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "4575:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 311, + "indexExpression": { + "id": 310, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "4587:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4575:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 308, + "name": "excersizeOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4559:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) returns (bool)" + } + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4559:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 313, + "nodeType": "ExpressionStatement", + "src": "4559:31:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 301, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "4519:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 302, + "name": "purchaseIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "4521:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4521:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4519:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 315, + "initializationExpression": { + "assignments": [ + 298 + ], + "declarations": [ + { + "constant": false, + "id": 298, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "4507:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 297, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4507:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 300, + "initialValue": { + "hexValue": "30", + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4516:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4507:10:0" + }, + "loopExpression": { + "expression": { + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4541:3:0", + "subExpression": { + "id": 305, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "4541:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 307, + "nodeType": "ExpressionStatement", + "src": "4541:3:0" + }, + "nodeType": "ForStatement", + "src": "4503:98:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4617:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 296, + "id": 317, + "nodeType": "Return", + "src": "4610:11:0" + } + ] + }, + "functionSelector": "86468c42", + "id": 319, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "excersizeOptions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 292, + "mutability": "mutable", + "name": "purchaseIds", + "nodeType": "VariableDeclaration", + "scope": 319, + "src": "4442:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4442:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 291, + "nodeType": "ArrayTypeName", + "src": "4442:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4441:30:0" + }, + "returnParameters": { + "id": 296, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 295, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 319, + "src": "4488:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 294, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4488:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4487:6:0" + }, + "scope": 1205, + "src": "4416:212:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 473, + "nodeType": "Block", + "src": "4953:1097:0", + "statements": [ + { + "assignments": [ + 340 + ], + "declarations": [ + { + "constant": false, + "id": 340, + "mutability": "mutable", + "name": "underlyingToken", + "nodeType": "VariableDeclaration", + "scope": 473, + "src": "4963:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 339, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 338, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1323, + "src": "4963:6:0" + }, + "referencedDeclaration": 1323, + "src": "4963:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "id": 344, + "initialValue": { + "arguments": [ + { + "id": 342, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "4995:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 341, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1323, + "src": "4988:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$1323_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4988:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4963:38:0" + }, + { + "assignments": [ + 346 + ], + "declarations": [ + { + "constant": false, + "id": 346, + "mutability": "mutable", + "name": "contractBalanceBeforeTransfer", + "nodeType": "VariableDeclaration", + "scope": 473, + "src": "5011:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 345, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5011:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 354, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 351, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "5085:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + ], + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5077:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5077:7:0", + "typeDescriptions": {} + } + }, + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5077:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 347, + "name": "underlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "5051:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1262, + "src": "5051:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5051:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5011:80:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 358, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5130:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5130:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 362, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "5150:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + ], + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5142:7:0", + "typeDescriptions": {} + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5142:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 364, + "name": "amountUnderlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "5157:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 355, + "name": "underlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "5101:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1304, + "src": "5101:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5101:78:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 366, + "nodeType": "ExpressionStatement", + "src": "5101:78:0" + }, + { + "assignments": [ + 368 + ], + "declarations": [ + { + "constant": false, + "id": 368, + "mutability": "mutable", + "name": "contractBalanceAfterTransfer", + "nodeType": "VariableDeclaration", + "scope": 473, + "src": "5189:36:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 376, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 373, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "5262:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + ], + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5254:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5254:7:0", + "typeDescriptions": {} + } + }, + "id": 374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5254:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 369, + "name": "underlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "5228:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1262, + "src": "5228:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5228:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5189:79:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 378, + "name": "contractBalanceAfterTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 368, + "src": "5286:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "arguments": [ + { + "id": 381, + "name": "amountUnderlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "5353:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 379, + "name": "contractBalanceBeforeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "5319:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "5319:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5319:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 383, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5318:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5286:90:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436f756c64206e6f74207472616e736665722074686520616d6f756e742066726f6d206d73672e73656e64657220746861742077617320726571756573746564", + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5378:66:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad", + "typeString": "literal_string \"Could not transfer the amount from msg.sender that was requested\"" + }, + "value": "Could not transfer the amount from msg.sender that was requested" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad", + "typeString": "literal_string \"Could not transfer the amount from msg.sender that was requested\"" + } + ], + "id": 377, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "5278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5278:167:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 387, + "nodeType": "ExpressionStatement", + "src": "5278:167:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 388, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "5458:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 390, + "indexExpression": { + "id": 389, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "5468:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 392, + "indexExpression": { + "id": 391, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "5476:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 394, + "indexExpression": { + "id": 393, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 325, + "src": "5483:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 396, + "indexExpression": { + "id": 395, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "5497:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 398, + "indexExpression": { + "id": 397, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5510:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 400, + "indexExpression": { + "id": 399, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "5519:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5529:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5458:72:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 451, + "nodeType": "Block", + "src": "5661:191:0", + "statements": [ + { + "expression": { + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 420, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "5675:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 427, + "indexExpression": { + "id": 421, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "5685:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5675:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 428, + "indexExpression": { + "id": 422, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "5693:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5675:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 429, + "indexExpression": { + "id": 423, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 325, + "src": "5700:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5675:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 430, + "indexExpression": { + "id": 424, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "5714:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5675:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 431, + "indexExpression": { + "id": 425, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5727:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5675:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 432, + "indexExpression": { + "id": 426, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "5736:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5675:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 447, + "name": "amountUnderlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "5819:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 433, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "5746:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 435, + "indexExpression": { + "id": 434, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "5756:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 437, + "indexExpression": { + "id": 436, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "5764:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 439, + "indexExpression": { + "id": 438, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 325, + "src": "5771:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 441, + "indexExpression": { + "id": 440, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "5785:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 443, + "indexExpression": { + "id": 442, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5798:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 445, + "indexExpression": { + "id": 444, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "5807:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "5746:72:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5746:95:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5675:166:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 450, + "nodeType": "ExpressionStatement", + "src": "5675:166:0" + } + ] + }, + "id": 452, + "nodeType": "IfStatement", + "src": "5455:397:0", + "trueBody": { + "id": 419, + "nodeType": "Block", + "src": "5531:117:0", + "statements": [ + { + "expression": { + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 403, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "5545:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 410, + "indexExpression": { + "id": 404, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "5555:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5545:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 411, + "indexExpression": { + "id": 405, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "5563:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5545:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 412, + "indexExpression": { + "id": 406, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 325, + "src": "5570:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5545:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 413, + "indexExpression": { + "id": 407, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "5584:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5545:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 414, + "indexExpression": { + "id": 408, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5597:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5545:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 415, + "indexExpression": { + "id": 409, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "5606:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5545:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 416, + "name": "amountUnderlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "5616:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5545:92:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 418, + "nodeType": "ExpressionStatement", + "src": "5545:92:0" + } + ] + } + }, + { + "expression": { + "id": 458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 453, + "name": "lastOrderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "5861:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "31", + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5891:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "id": 454, + "name": "lastOrderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "5875:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "5875:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5875:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5861:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 459, + "nodeType": "ExpressionStatement", + "src": "5861:32:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 461, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "5921:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 462, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "5929:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 463, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 325, + "src": "5936:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 464, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "5950:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 465, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5963:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 466, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "5972:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 467, + "name": "amountUnderlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "5980:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 468, + "name": "lastOrderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "6003:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 460, + "name": "OptionOffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "5908:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256,uint256,uint256,uint256)" + } + }, + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5908:107:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 470, + "nodeType": "EmitStatement", + "src": "5903:112:0" + }, + { + "expression": { + "id": 471, + "name": "lastOrderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "6032:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 337, + "id": 472, + "nodeType": "Return", + "src": "6025:18:0" + } + ] + }, + "functionSelector": "e57fcc20", + "id": 474, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sellOption", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 321, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4779:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 320, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4779:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 323, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4795:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4795:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 325, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4810:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 324, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4810:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 327, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4829:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 326, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4829:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4850:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4850:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4867:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4867:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "mutability": "mutable", + "name": "amountUnderlyingToken", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4883:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4883:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4778:135:0" + }, + "returnParameters": { + "id": 337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 336, + "mutability": "mutable", + "name": "orderIdentifier", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4929:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4929:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4928:25:0" + }, + "scope": 1205, + "src": "4759:1291:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 622, + "nodeType": "Block", + "src": "6244:1244:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 486, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "6258:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 488, + "indexExpression": { + "id": 487, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "6271:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6258:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 489, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isStillValid", + "nodeType": "MemberAccess", + "referencedDeclaration": 151, + "src": "6258:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "74727565", + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6258:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54686973206f7074696f6e206973206e6f206c6f6e6765722076616c6964", + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6301:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788", + "typeString": "literal_string \"This option is no longer valid\"" + }, + "value": "This option is no longer valid" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788", + "typeString": "literal_string \"This option is no longer valid\"" + } + ], + "id": 485, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6250:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6250:84:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 494, + "nodeType": "ExpressionStatement", + "src": "6250:84:0" + }, + { + "assignments": [ + 497 + ], + "declarations": [ + { + "constant": false, + "id": 497, + "mutability": "mutable", + "name": "opData", + "nodeType": "VariableDeclaration", + "scope": 622, + "src": "6340:25:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer" + }, + "typeName": { + "id": 496, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 495, + "name": "optionOffer", + "nodeType": "IdentifierPath", + "referencedDeclaration": 152, + "src": "6340:11:0" + }, + "referencedDeclaration": 152, + "src": "6340:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage_ptr", + "typeString": "struct Core.optionOffer" + } + }, + "visibility": "internal" + } + ], + "id": 501, + "initialValue": { + "baseExpression": { + "id": 498, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "6368:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 500, + "indexExpression": { + "id": 499, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "6381:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6368:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6340:49:0" + }, + { + "assignments": [ + 503 + ], + "declarations": [ + { + "constant": false, + "id": 503, + "mutability": "mutable", + "name": "optionIsBuyable", + "nodeType": "VariableDeclaration", + "scope": 622, + "src": "6395:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 502, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6395:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 519, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 505, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6434:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 506, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 135, + "src": "6434:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 507, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6449:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 508, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "6449:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 509, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6463:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "6463:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 511, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6484:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 512, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "6484:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 513, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6504:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 514, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "6504:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 515, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6520:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 516, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "6520:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 517, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "6535:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 504, + "name": "isOptionBuyable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "6418:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,bool,uint256,uint256,uint256,uint256) view returns (bool)" + } + }, + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6418:134:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6395:157:0" + }, + { + "expression": { + "arguments": [ + { + "id": 521, + "name": "optionIsBuyable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 503, + "src": "6566:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54686973206f7074696f6e206973206e6f742062757961626c652e20506c6561736520636865636b207468652073656c6c65722773206f6666657220696e666f726d6174696f6e", + "id": 522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6583:73:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43", + "typeString": "literal_string \"This option is not buyable. Please check the seller's offer information\"" + }, + "value": "This option is not buyable. Please check the seller's offer information" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43", + "typeString": "literal_string \"This option is not buyable. Please check the seller's offer information\"" + } + ], + "id": 520, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6558:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6558:99:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "6558:99:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 526, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "6673:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 527, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6693:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 528, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountUnderlyingToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "6693:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6673:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5468657265206973206e6f7420656e6f75676820696e76656e746f727920666f722074686973206f72646572", + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6723:46:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab", + "typeString": "literal_string \"There is not enough inventory for this order\"" + }, + "value": "There is not enough inventory for this order" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab", + "typeString": "literal_string \"There is not enough inventory for this order\"" + } + ], + "id": 525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6665:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6665:105:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 532, + "nodeType": "ExpressionStatement", + "src": "6665:105:0" + }, + { + "assignments": [ + 534 + ], + "declarations": [ + { + "constant": false, + "id": 534, + "mutability": "mutable", + "name": "orderSize", + "nodeType": "VariableDeclaration", + "scope": 622, + "src": "6778:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6778:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 540, + "initialValue": { + "arguments": [ + { + "id": 538, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "6817:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 535, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6798:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 536, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "6798:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 2049, + "src": "6798:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6798:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6778:56:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 544, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6872:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6872:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 546, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6884:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 547, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 135, + "src": "6884:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 548, + "name": "orderSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 534, + "src": "6899:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 542, + "name": "daiToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "6850:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1304, + "src": "6850:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6850:59:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "506c6561736520656e73757265207468617420796f75206861766520617070726f766564207468697320636f6e747261637420746f2068616e646c6520796f75722044414920286572726f7229", + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6911:79:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1", + "typeString": "literal_string \"Please ensure that you have approved this contract to handle your DAI (error)\"" + }, + "value": "Please ensure that you have approved this contract to handle your DAI (error)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1", + "typeString": "literal_string \"Please ensure that you have approved this contract to handle your DAI (error)\"" + } + ], + "id": 541, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6842:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6842:149:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 552, + "nodeType": "ExpressionStatement", + "src": "6842:149:0" + }, + { + "expression": { + "arguments": [ + { + "id": 573, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "7114:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 553, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "6999:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 566, + "indexExpression": { + "expression": { + "id": 554, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7009:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 555, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 135, + "src": "7009:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 567, + "indexExpression": { + "expression": { + "id": 556, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7024:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 557, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "7024:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 568, + "indexExpression": { + "expression": { + "id": 558, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7038:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 559, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "7038:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:59:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 569, + "indexExpression": { + "expression": { + "id": 560, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7059:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 561, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "7059:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:79:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 570, + "indexExpression": { + "expression": { + "id": 562, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7079:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 563, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "7079:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:95:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 571, + "indexExpression": { + "expression": { + "id": 564, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7095:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 565, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "7095:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:110:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 2034, + "src": "6999:114:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6999:132:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 575, + "nodeType": "ExpressionStatement", + "src": "6999:132:0" + }, + { + "expression": { + "arguments": [ + { + "id": 592, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "7230:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 576, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "7139:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 586, + "indexExpression": { + "id": 577, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 476, + "src": "7149:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7139:16:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 587, + "indexExpression": { + "expression": { + "id": 578, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7156:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 579, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "7156:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7139:30:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 588, + "indexExpression": { + "expression": { + "id": 580, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7170:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 581, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "7170:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7139:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 589, + "indexExpression": { + "expression": { + "id": 582, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7191:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 583, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "7191:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7139:71:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 590, + "indexExpression": { + "expression": { + "id": 584, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7211:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 585, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "7211:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7139:86:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "7139:90:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7139:108:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 594, + "nodeType": "ExpressionStatement", + "src": "7139:108:0" + }, + { + "expression": { + "id": 600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 595, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "7255:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "31", + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7291:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "id": 596, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "7272:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "7272:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7272:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7255:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 601, + "nodeType": "ExpressionStatement", + "src": "7255:38:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 603, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 476, + "src": "7321:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 604, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7328:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 605, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 135, + "src": "7328:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 606, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7343:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 607, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "7343:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 608, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7357:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 609, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "7357:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 610, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7378:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 611, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "7378:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 612, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7398:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 613, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "7398:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 614, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7414:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 615, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "7414:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 616, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "7429:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 617, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "7447:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 602, + "name": "OptionPurchase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "7306:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,bool,uint256,uint256,uint256,uint256,uint256)" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7306:156:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 619, + "nodeType": "EmitStatement", + "src": "7301:161:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7477:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 484, + "id": 621, + "nodeType": "Return", + "src": "7470:11:0" + } + ] + }, + "functionSelector": "871f179f", + "id": 623, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buyOptionByID", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 476, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 623, + "src": "6166:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 475, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6166:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 478, + "mutability": "mutable", + "name": "offerId", + "nodeType": "VariableDeclaration", + "scope": 623, + "src": "6180:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 477, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6180:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 480, + "mutability": "mutable", + "name": "amountPurchasing", + "nodeType": "VariableDeclaration", + "scope": 623, + "src": "6197:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 479, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6197:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6165:57:0" + }, + "returnParameters": { + "id": 484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 483, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 623, + "src": "6239:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 482, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6239:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6238:6:0" + }, + "scope": 1205, + "src": "6143:1345:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 786, + "nodeType": "Block", + "src": "7804:1303:0", + "statements": [ + { + "assignments": [ + 645 + ], + "declarations": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "optionIsBuyable", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "7814:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7814:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 655, + "initialValue": { + "arguments": [ + { + "id": 647, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "7853:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 648, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "7861:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 649, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "7868:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 650, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "7882:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 651, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "7895:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 652, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "7904:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 653, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "7912:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 646, + "name": "isOptionBuyable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "7837:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,bool,uint256,uint256,uint256,uint256) view returns (bool)" + } + }, + "id": 654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7837:92:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7814:115:0" + }, + { + "expression": { + "arguments": [ + { + "id": 657, + "name": "optionIsBuyable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "7947:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54686973206f7074696f6e206973206e6f742062757961626c652e20506c6561736520636865636b207468652073656c6c65722773206f6666657220696e666f726d6174696f6e", + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7964:73:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43", + "typeString": "literal_string \"This option is not buyable. Please check the seller's offer information\"" + }, + "value": "This option is not buyable. Please check the seller's offer information" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43", + "typeString": "literal_string \"This option is not buyable. Please check the seller's offer information\"" + } + ], + "id": 656, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "7939:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7939:99:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 660, + "nodeType": "ExpressionStatement", + "src": "7939:99:0" + }, + { + "expression": { + "arguments": [ + { + "id": 662, + "name": "optionIsBuyable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "8055:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536f7272793a207468657265206973206e6f206f6e652073656c6c696e67206f7074696f6e732074686174206d65657420796f75722073706563696669636174696f6e732e205065726861707320747279206275794f7074696f6e4279496473", + "id": 663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8072:98:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6", + "typeString": "literal_string \"Sorry: there is no one selling options that meet your specifications. Perhaps try buyOptionByIds\"" + }, + "value": "Sorry: there is no one selling options that meet your specifications. Perhaps try buyOptionByIds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6", + "typeString": "literal_string \"Sorry: there is no one selling options that meet your specifications. Perhaps try buyOptionByIds\"" + } + ], + "id": 661, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "8047:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8047:124:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 665, + "nodeType": "ExpressionStatement", + "src": "8047:124:0" + }, + { + "assignments": [ + 667 + ], + "declarations": [ + { + "constant": false, + "id": 667, + "mutability": "mutable", + "name": "amountSelling", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "8181:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8181:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 681, + "initialValue": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 668, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "8205:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 670, + "indexExpression": { + "id": 669, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "8215:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 672, + "indexExpression": { + "id": 671, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8223:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 674, + "indexExpression": { + "id": 673, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "8230:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 676, + "indexExpression": { + "id": 675, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "8244:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 678, + "indexExpression": { + "id": 677, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "8257:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 680, + "indexExpression": { + "id": 679, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8266:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8181:92:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 683, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8291:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 684, + "name": "amountSelling", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 667, + "src": "8311:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8291:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "205468657265206973206e6f7420656e6f75676820696e76656e746f727920666f722074686973206f72646572", + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8325:47:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b", + "typeString": "literal_string \" There is not enough inventory for this order\"" + }, + "value": " There is not enough inventory for this order" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b", + "typeString": "literal_string \" There is not enough inventory for this order\"" + } + ], + "id": 682, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "8283:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8283:90:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 688, + "nodeType": "ExpressionStatement", + "src": "8283:90:0" + }, + { + "assignments": [ + 690 + ], + "declarations": [ + { + "constant": false, + "id": 690, + "mutability": "mutable", + "name": "orderSize", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "8383:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8383:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 695, + "initialValue": { + "arguments": [ + { + "id": 693, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8415:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 691, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "8403:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 2049, + "src": "8403:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8403:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8383:49:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 699, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "8472:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8472:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 701, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "8484:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 702, + "name": "orderSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "8492:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 697, + "name": "daiToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "8450:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1304, + "src": "8450:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8450:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "506c6561736520656e73757265207468617420796f75206861766520617070726f766564207468697320636f6e747261637420746f2068616e646c6520796f75722044414920286572726f7229", + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8504:79:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1", + "typeString": "literal_string \"Please ensure that you have approved this contract to handle your DAI (error)\"" + }, + "value": "Please ensure that you have approved this contract to handle your DAI (error)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1", + "typeString": "literal_string \"Please ensure that you have approved this contract to handle your DAI (error)\"" + } + ], + "id": 696, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "8442:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8442:142:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 706, + "nodeType": "ExpressionStatement", + "src": "8442:142:0" + }, + { + "expression": { + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 707, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "8594:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 714, + "indexExpression": { + "id": 708, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "8604:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8594:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 715, + "indexExpression": { + "id": 709, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8612:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8594:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 716, + "indexExpression": { + "id": 710, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "8619:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8594:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 717, + "indexExpression": { + "id": 711, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "8633:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8594:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 718, + "indexExpression": { + "id": 712, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "8646:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8594:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 719, + "indexExpression": { + "id": 713, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8655:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8594:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 734, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8736:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 720, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "8663:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 722, + "indexExpression": { + "id": 721, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "8673:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 724, + "indexExpression": { + "id": 723, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8681:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 726, + "indexExpression": { + "id": 725, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "8688:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 728, + "indexExpression": { + "id": 727, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "8702:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 730, + "indexExpression": { + "id": 729, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "8715:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 732, + "indexExpression": { + "id": 731, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8724:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 2034, + "src": "8663:72:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8663:90:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8594:159:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 737, + "nodeType": "ExpressionStatement", + "src": "8594:159:0" + }, + { + "expression": { + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 738, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "8763:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 744, + "indexExpression": { + "id": 739, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "8773:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8763:16:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 745, + "indexExpression": { + "id": 740, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8780:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8763:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 746, + "indexExpression": { + "id": 741, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "8787:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8763:37:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 747, + "indexExpression": { + "id": 742, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "8801:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8763:50:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 748, + "indexExpression": { + "id": 743, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8814:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8763:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 761, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8885:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 749, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "8822:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 751, + "indexExpression": { + "id": 750, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "8832:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:16:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 753, + "indexExpression": { + "id": 752, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8839:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 755, + "indexExpression": { + "id": 754, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "8846:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:37:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "8860:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:50:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 759, + "indexExpression": { + "id": 758, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8873:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "8822:62:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8822:80:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8763:139:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 764, + "nodeType": "ExpressionStatement", + "src": "8763:139:0" + }, + { + "expression": { + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 765, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "8912:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "31", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8948:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "id": 766, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "8929:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "8929:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8929:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8912:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "8912:38:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 773, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "8980:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 774, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "8987:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 775, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8995:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 776, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "9002:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 777, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "9016:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 778, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "9029:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 779, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "9038:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 780, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "9046:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 781, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "9064:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 772, + "name": "OptionPurchase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "8965:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,bool,uint256,uint256,uint256,uint256,uint256)" + } + }, + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8965:114:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 783, + "nodeType": "EmitStatement", + "src": "8960:119:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 643, + "id": 785, + "nodeType": "Return", + "src": "9089:11:0" + } + ] + }, + "functionSelector": "7d4c82ca", + "id": 787, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buyOptionByExactPremiumAndExpiry", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 625, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7637:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 624, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7637:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7652:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7652:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7668:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 628, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7668:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 631, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7683:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 630, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7683:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 633, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7702:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7702:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7723:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7723:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7740:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7740:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 639, + "mutability": "mutable", + "name": "amountPurchasing", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7756:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 638, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7756:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7636:146:0" + }, + "returnParameters": { + "id": 643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 642, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7799:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 641, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7799:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7798:6:0" + }, + "scope": 1205, + "src": "7595:1512:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 900, + "nodeType": "Block", + "src": "9387:832:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 795, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9436:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 797, + "indexExpression": { + "id": 796, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9449:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9436:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 798, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 135, + "src": "9436:28:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 799, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "9468:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9468:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9436:42:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546865206d73672e73656e6465722068617320746f206265207468652073656c6c6572", + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9480:37:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8", + "typeString": "literal_string \"The msg.sender has to be the seller\"" + }, + "value": "The msg.sender has to be the seller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8", + "typeString": "literal_string \"The msg.sender has to be the seller\"" + } + ], + "id": 794, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "9428:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9428:90:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 804, + "nodeType": "ExpressionStatement", + "src": "9428:90:0" + }, + { + "assignments": [ + 806 + ], + "declarations": [ + { + "constant": false, + "id": 806, + "mutability": "mutable", + "name": "amountUnderlyingToReturn", + "nodeType": "VariableDeclaration", + "scope": 900, + "src": "9528:32:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9528:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 836, + "initialValue": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 807, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "9563:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 810, + "indexExpression": { + "expression": { + "id": 808, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "9573:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9573:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:21:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 815, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 811, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9585:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 813, + "indexExpression": { + "id": 812, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9598:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9585:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 814, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "9585:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:50:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 820, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 816, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9614:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 818, + "indexExpression": { + "id": 817, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9627:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9614:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 819, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "9614:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:86:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 825, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 821, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9650:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 823, + "indexExpression": { + "id": 822, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9663:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9650:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "9650:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:121:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 830, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 826, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9685:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 828, + "indexExpression": { + "id": 827, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9698:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9685:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 829, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "9685:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:152:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 835, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 831, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9716:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 833, + "indexExpression": { + "id": 832, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9729:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9716:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 834, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "9716:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:182:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9528:217:0" + }, + { + "assignments": [ + 838 + ], + "declarations": [ + { + "constant": false, + "id": 838, + "mutability": "mutable", + "name": "underlyingAddress", + "nodeType": "VariableDeclaration", + "scope": 900, + "src": "9755:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 837, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9755:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 843, + "initialValue": { + "expression": { + "baseExpression": { + "id": 839, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9784:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 841, + "indexExpression": { + "id": 840, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9797:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9784:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "9784:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9755:56:0" + }, + { + "assignments": [ + 846 + ], + "declarations": [ + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "underlyingToken", + "nodeType": "VariableDeclaration", + "scope": 900, + "src": "9821:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 845, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 844, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1323, + "src": "9821:6:0" + }, + "referencedDeclaration": 1323, + "src": "9821:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "id": 850, + "initialValue": { + "arguments": [ + { + "id": 848, + "name": "underlyingAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 838, + "src": "9853:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 847, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1323, + "src": "9846:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$1323_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9846:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9821:50:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 854, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "9906:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9906:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 856, + "name": "amountUnderlyingToReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "9918:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 851, + "name": "underlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "9881:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1272, + "src": "9881:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9881:62:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 858, + "nodeType": "ExpressionStatement", + "src": "9881:62:0" + }, + { + "expression": { + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 859, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "9953:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 882, + "indexExpression": { + "expression": { + "id": 860, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "9963:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9963:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9953:21:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 883, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 862, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9975:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 864, + "indexExpression": { + "id": 863, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9988:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9975:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 865, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "9975:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9953:50:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 884, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 866, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "10004:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 868, + "indexExpression": { + "id": 867, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "10017:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10004:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 869, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "10004:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9953:86:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 885, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 870, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "10040:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 872, + "indexExpression": { + "id": 871, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "10053:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10040:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 873, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "10040:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9953:121:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 886, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 874, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "10075:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 876, + "indexExpression": { + "id": 875, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "10088:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10075:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 877, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "10075:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9953:152:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 887, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 878, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "10106:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 880, + "indexExpression": { + "id": 879, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "10119:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10106:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 881, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "10106:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9953:182:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10137:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9953:185:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 890, + "nodeType": "ExpressionStatement", + "src": "9953:185:0" + }, + { + "expression": { + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 891, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "10148:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 893, + "indexExpression": { + "id": 892, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "10161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10148:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 894, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isStillValid", + "nodeType": "MemberAccess", + "referencedDeclaration": 151, + "src": "10148:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10185:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "10148:42:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 897, + "nodeType": "ExpressionStatement", + "src": "10148:42:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10207:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 793, + "id": 899, + "nodeType": "Return", + "src": "10200:11:0" + } + ] + }, + "functionSelector": "0afc7854", + "id": 901, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cancelOptionOffer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 789, + "mutability": "mutable", + "name": "offerId", + "nodeType": "VariableDeclaration", + "scope": 901, + "src": "9350:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9350:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9349:17:0" + }, + "returnParameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 792, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 901, + "src": "9382:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 791, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9382:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9381:6:0" + }, + "scope": 1205, + "src": "9323:896:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 942, + "nodeType": "Block", + "src": "10509:193:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 920, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "10522:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 922, + "indexExpression": { + "id": 921, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 903, + "src": "10532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 924, + "indexExpression": { + "id": 923, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "10540:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 926, + "indexExpression": { + "id": 925, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "10547:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 928, + "indexExpression": { + "id": 927, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "10561:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 930, + "indexExpression": { + "id": 929, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 911, + "src": "10574:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 932, + "indexExpression": { + "id": 931, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "10583:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 933, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "10593:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10522:87:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 940, + "nodeType": "Block", + "src": "10659:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10680:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 919, + "id": 939, + "nodeType": "Return", + "src": "10673:12:0" + } + ] + }, + "id": 941, + "nodeType": "IfStatement", + "src": "10519:177:0", + "trueBody": { + "id": 937, + "nodeType": "Block", + "src": "10610:36:0", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10631:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 919, + "id": 936, + "nodeType": "Return", + "src": "10624:11:0" + } + ] + } + } + ] + }, + "functionSelector": "f789271c", + "id": 943, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isOptionBuyable", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 903, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10353:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10353:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 905, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10369:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 904, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10369:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 907, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10384:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 906, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10384:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 909, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10403:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 908, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10403:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 911, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10424:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10424:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 913, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10441:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 912, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10441:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 915, + "mutability": "mutable", + "name": "amountPurchasing", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10457:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10457:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10352:130:0" + }, + "returnParameters": { + "id": 919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 918, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10504:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 917, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10504:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10503:6:0" + }, + "scope": 1205, + "src": "10328:374:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 960, + "nodeType": "Block", + "src": "10788:145:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 953, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "10885:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "10885:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 955, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "10897:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 956, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "10908:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 957, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 949, + "src": "10915:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 952, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "10875:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10875:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 959, + "nodeType": "ExpressionStatement", + "src": "10875:51:0" + } + ] + }, + "functionSelector": "095bcdb6", + "id": 961, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 945, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "10727:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 944, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10727:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "10746:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10746:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 949, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "10762:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10762:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10726:55:0" + }, + "returnParameters": { + "id": 951, + "nodeType": "ParameterList", + "parameters": [], + "src": "10788:0:0" + }, + "scope": 1205, + "src": "10708:225:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1010, + "nodeType": "Block", + "src": "11033:382:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 973, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "11102:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 975, + "indexExpression": { + "id": 974, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "11118:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11102:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 976, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "buyer", + "nodeType": "MemberAccess", + "referencedDeclaration": 154, + "src": "11102:33:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 977, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "11139:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11139:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11102:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5468652073656e646572206d757374206f776e20746865206f7074696f6e", + "id": 980, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11150:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4", + "typeString": "literal_string \"The sender must own the option\"" + }, + "value": "The sender must own the option" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4", + "typeString": "literal_string \"The sender must own the option\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "11094:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11094:89:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 982, + "nodeType": "ExpressionStatement", + "src": "11094:89:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 984, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "11201:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 986, + "indexExpression": { + "id": 985, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "11217:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11201:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountUnderlyingToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 168, + "src": "11201:49:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 988, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "11252:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11201:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "43616e6e6f7420617070726f7665206d6f7265207468616e206f776e6564", + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11259:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0", + "typeString": "literal_string \"Cannot approve more than owned\"" + }, + "value": "Cannot approve more than owned" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0", + "typeString": "literal_string \"Cannot approve more than owned\"" + } + ], + "id": 983, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "11193:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11193:99:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 992, + "nodeType": "ExpressionStatement", + "src": "11193:99:0" + }, + { + "expression": { + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 993, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "11302:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 997, + "indexExpression": { + "expression": { + "id": 994, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "11314:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11314:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11302:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 998, + "indexExpression": { + "id": 996, + "name": "designee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 963, + "src": "11326:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11302:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 999, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "11337:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11302:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1001, + "nodeType": "ExpressionStatement", + "src": "11302:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1003, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "11367:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11367:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1005, + "name": "designee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 963, + "src": "11379:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1006, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "11389:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1007, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "11397:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1002, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "11358:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11358:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1009, + "nodeType": "EmitStatement", + "src": "11353:55:0" + } + ] + }, + "functionSelector": "426a8493", + "id": 1011, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 963, + "mutability": "mutable", + "name": "designee", + "nodeType": "VariableDeclaration", + "scope": 1011, + "src": "10957:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 962, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10957:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1011, + "src": "10975:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10975:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 1011, + "src": "10992:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10992:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10956:56:0" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1011, + "src": "11028:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 969, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11028:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "11027:6:0" + }, + "scope": 1205, + "src": "10939:476:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1028, + "nodeType": "Block", + "src": "11529:105:0", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1022, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "11599:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1024, + "indexExpression": { + "id": 1023, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "11611:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11599:18:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1026, + "indexExpression": { + "id": 1025, + "name": "designee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1015, + "src": "11618:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11599:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1021, + "id": 1027, + "nodeType": "Return", + "src": "11592:35:0" + } + ] + }, + "functionSelector": "5c52a5f2", + "id": 1029, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1013, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1029, + "src": "11439:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11439:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1015, + "mutability": "mutable", + "name": "designee", + "nodeType": "VariableDeclaration", + "scope": 1029, + "src": "11454:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11454:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1017, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 1029, + "src": "11472:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1016, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11472:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11438:53:0" + }, + "returnParameters": { + "id": 1021, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1020, + "mutability": "mutable", + "name": "approvalAmount", + "nodeType": "VariableDeclaration", + "scope": 1029, + "src": "11506:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11506:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11505:24:0" + }, + "scope": 1205, + "src": "11421:213:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1078, + "nodeType": "Block", + "src": "11738:364:0", + "statements": [ + { + "assignments": [ + 1041 + ], + "declarations": [ + { + "constant": false, + "id": 1041, + "mutability": "mutable", + "name": "allownace", + "nodeType": "VariableDeclaration", + "scope": 1078, + "src": "11805:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1040, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11805:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1047, + "initialValue": { + "arguments": [ + { + "id": 1043, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "11834:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1044, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "11840:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1045, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "11851:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1042, + "name": "approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1029, + "src": "11825:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,address,uint256) returns (uint256)" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11825:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11805:57:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1049, + "name": "allownace", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "11880:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11893:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11880:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420617070726f766564", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11896:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361", + "typeString": "literal_string \"Not approved\"" + }, + "value": "Not approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361", + "typeString": "literal_string \"Not approved\"" + } + ], + "id": 1048, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "11872:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11872:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1054, + "nodeType": "ExpressionStatement", + "src": "11872:39:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1056, + "name": "allownace", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "11929:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1057, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1035, + "src": "11941:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11929:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420617070726f76656420666f72207468697320616d6f756e74", + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11948:30:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86", + "typeString": "literal_string \"Not approved for this amount\"" + }, + "value": "Not approved for this amount" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86", + "typeString": "literal_string \"Not approved for this amount\"" + } + ], + "id": 1055, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "11921:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11921:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1061, + "nodeType": "ExpressionStatement", + "src": "11921:58:0" + }, + { + "expression": { + "arguments": [ + { + "id": 1063, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "11999:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1064, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "12004:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1065, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1035, + "src": "12015:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1066, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "12023:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1062, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "11989:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11989:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1068, + "nodeType": "ExpressionStatement", + "src": "11989:45:0" + }, + { + "expression": { + "arguments": [ + { + "id": 1070, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "12052:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1073, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1035, + "src": "12076:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1071, + "name": "allownace", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "12062:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 2034, + "src": "12062:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12062:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1075, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "12084:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1069, + "name": "approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12044:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256,uint256) returns (bool)" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12044:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1077, + "nodeType": "ExpressionStatement", + "src": "12044:51:0" + } + ] + }, + "functionSelector": "fe99049a", + "id": 1079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1031, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "11662:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1030, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11662:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1033, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "11677:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1032, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11677:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1035, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "11696:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11696:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1037, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "11711:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1036, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11711:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11661:69:0" + }, + "returnParameters": { + "id": 1039, + "nodeType": "ParameterList", + "parameters": [], + "src": "11738:0:0" + }, + "scope": 1205, + "src": "11640:462:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1203, + "nodeType": "Block", + "src": "12212:948:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 1091, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "12257:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 1093, + "indexExpression": { + "id": 1092, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "12273:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12257:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "buyer", + "nodeType": "MemberAccess", + "referencedDeclaration": 154, + "src": "12257:33:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1095, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "12294:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12257:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5468652073656e646572206d757374206f776e20746865206f7074696f6e", + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12301:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4", + "typeString": "literal_string \"The sender must own the option\"" + }, + "value": "The sender must own the option" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4", + "typeString": "literal_string \"The sender must own the option\"" + } + ], + "id": 1090, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "12249:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12249:85:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1099, + "nodeType": "ExpressionStatement", + "src": "12249:85:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 1101, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "12352:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 1103, + "indexExpression": { + "id": 1102, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "12368:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12352:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountUnderlyingToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 168, + "src": "12352:49:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1105, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "12403:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12352:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "43616e6e6f74207472616e666572206d6f7265207468616e206f776e6564", + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12410:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965", + "typeString": "literal_string \"Cannot tranfer more than owned\"" + }, + "value": "Cannot tranfer more than owned" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965", + "typeString": "literal_string \"Cannot tranfer more than owned\"" + } + ], + "id": 1100, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "12344:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12344:99:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1109, + "nodeType": "ExpressionStatement", + "src": "12344:99:0" + }, + { + "assignments": [ + 1112 + ], + "declarations": [ + { + "constant": false, + "id": 1112, + "mutability": "mutable", + "name": "optData", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "12453:29:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase" + }, + "typeName": { + "id": 1111, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1110, + "name": "optionPurchase", + "nodeType": "IdentifierPath", + "referencedDeclaration": 175, + "src": "12453:14:0" + }, + "referencedDeclaration": 175, + "src": "12453:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage_ptr", + "typeString": "struct Core.optionPurchase" + } + }, + "visibility": "internal" + } + ], + "id": 1116, + "initialValue": { + "baseExpression": { + "id": 1113, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "12485:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 1115, + "indexExpression": { + "id": 1114, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "12501:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12485:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12453:59:0" + }, + { + "expression": { + "arguments": [ + { + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12530:18:0", + "subExpression": { + "expression": { + "id": 1118, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12531:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1119, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exercized", + "nodeType": "MemberAccess", + "referencedDeclaration": 174, + "src": "12531:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "63616e6e6f74207472616e7366657220616e206578657263697a6564206f7074696f6e", + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12549:37:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1", + "typeString": "literal_string \"cannot transfer an exercized option\"" + }, + "value": "cannot transfer an exercized option" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1", + "typeString": "literal_string \"cannot transfer an exercized option\"" + } + ], + "id": 1117, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "12522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12522:65:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1123, + "nodeType": "ExpressionStatement", + "src": "12522:65:0" + }, + { + "expression": { + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 1124, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "12597:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 1134, + "indexExpression": { + "id": 1125, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "12607:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12597:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 1135, + "indexExpression": { + "expression": { + "id": 1126, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12615:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 158, + "src": "12615:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12597:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 1136, + "indexExpression": { + "expression": { + "id": 1128, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12630:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1129, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 160, + "src": "12630:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12597:54:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 1137, + "indexExpression": { + "expression": { + "id": 1130, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12652:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1131, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 162, + "src": "12652:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12597:75:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1138, + "indexExpression": { + "expression": { + "id": 1132, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12673:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1133, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 166, + "src": "12673:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12597:91:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1155, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "12785:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 1139, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "12689:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 1141, + "indexExpression": { + "id": 1140, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "12699:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12689:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 1144, + "indexExpression": { + "expression": { + "id": 1142, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12707:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1143, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 158, + "src": "12707:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12689:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 1147, + "indexExpression": { + "expression": { + "id": 1145, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12722:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1146, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 160, + "src": "12722:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12689:54:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 1150, + "indexExpression": { + "expression": { + "id": 1148, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12744:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1149, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 162, + "src": "12744:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12689:75:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1153, + "indexExpression": { + "expression": { + "id": 1151, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12765:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1152, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 166, + "src": "12765:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12689:91:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 2034, + "src": "12689:95:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12689:103:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12597:195:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1158, + "nodeType": "ExpressionStatement", + "src": "12597:195:0" + }, + { + "expression": { + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 1159, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "12836:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 1169, + "indexExpression": { + "id": 1160, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1083, + "src": "12846:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12836:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 1170, + "indexExpression": { + "expression": { + "id": 1161, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12857:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1162, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 158, + "src": "12857:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12836:35:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 1171, + "indexExpression": { + "expression": { + "id": 1163, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12872:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1164, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 160, + "src": "12872:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12836:57:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 1172, + "indexExpression": { + "expression": { + "id": 1165, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12894:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1166, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 162, + "src": "12894:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12836:78:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1173, + "indexExpression": { + "expression": { + "id": 1167, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12915:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1168, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 166, + "src": "12915:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12836:94:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1190, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "13030:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 1174, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "12931:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 1176, + "indexExpression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1083, + "src": "12941:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12931:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 1179, + "indexExpression": { + "expression": { + "id": 1177, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12952:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 158, + "src": "12952:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12931:35:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 1182, + "indexExpression": { + "expression": { + "id": 1180, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12967:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1181, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 160, + "src": "12967:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12931:57:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 1185, + "indexExpression": { + "expression": { + "id": 1183, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12989:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1184, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 162, + "src": "12989:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12931:78:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1188, + "indexExpression": { + "expression": { + "id": 1186, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "13010:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1187, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 166, + "src": "13010:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12931:94:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "12931:98:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12931:106:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12836:201:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1193, + "nodeType": "ExpressionStatement", + "src": "12836:201:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1195, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "13098:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1196, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1083, + "src": "13106:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1197, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "13117:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1198, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "13125:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1199, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "13137:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "13137:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1194, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 123, + "src": "13089:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13089:64:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1202, + "nodeType": "EmitStatement", + "src": "13084:69:0" + } + ] + }, + "id": 1204, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1081, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 1204, + "src": "12133:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1080, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12133:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1083, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1204, + "src": "12149:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1082, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12149:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1085, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1204, + "src": "12168:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1084, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12168:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1087, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 1204, + "src": "12183:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1086, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12183:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12132:70:0" + }, + "returnParameters": { + "id": 1089, + "nodeType": "ParameterList", + "parameters": [], + "src": "12212:0:0" + }, + "scope": 1205, + "src": "12114:1046:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1206, + "src": "354:12816:0" + } + ], + "src": "0:13171:0" + }, + "legacyAST": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/optionsmarket.sol", + "exportedSymbols": { + "Address": [ + 1843 + ], + "Core": [ + 1205 + ], + "IERC20": [ + 1323 + ], + "ReentrancyGuard": [ + 1245 + ], + "SafeERC20": [ + 1547 + ], + "SafeMath": [ + 2155 + ] + }, + "id": 1206, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:31:0" + }, + { + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "32:33:0" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 1206, + "sourceUnit": 1324, + "src": "83:56:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/security/ReentrancyGuard.sol", + "file": "@openzeppelin/contracts/security/ReentrancyGuard.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 1206, + "sourceUnit": 1246, + "src": "140:62:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 1206, + "sourceUnit": 1548, + "src": "203:65:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeMath.sol", + "file": "@openzeppelin/contracts/utils/math/SafeMath.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 1206, + "sourceUnit": 2156, + "src": "269:57:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 7, + "name": "ReentrancyGuard", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1245, + "src": "372:15:0" + }, + "id": 8, + "nodeType": "InheritanceSpecifier", + "src": "372:15:0" + } + ], + "contractDependencies": [ + 1245 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1205, + "linearizedBaseContracts": [ + 1205, + 1245 + ], + "name": "Core", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 11, + "libraryName": { + "id": 9, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 2155, + "src": "400:8:0" + }, + "nodeType": "UsingForDirective", + "src": "394:27:0", + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "413:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 14, + "nodeType": "Block", + "src": "454:3:0", + "statements": [] + }, + "id": 15, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "434:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "454:0:0" + }, + "scope": 1205, + "src": "426:31:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "constant": false, + "functionSelector": "2f3f7d7f", + "id": 19, + "mutability": "mutable", + "name": "tokenActivated", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "462:47:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 18, + "keyType": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "471:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "462:25:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 17, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "482:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "2eaee35e", + "id": 21, + "mutability": "mutable", + "name": "daiTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "842:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "842:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "daiToken", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "883:41:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 23, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 22, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1323, + "src": "883:6:0" + }, + "referencedDeclaration": 1323, + "src": "883:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "value": { + "arguments": [ + { + "id": 25, + "name": "daiTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "908:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 24, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1323, + "src": "901:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$1323_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 26, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "901:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "functionSelector": "e289ae81", + "id": 41, + "mutability": "mutable", + "name": "orderbook", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "991:133:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + }, + "typeName": { + "id": 40, + "keyType": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "999:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "991:116:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + }, + "valueType": { + "id": 39, + "keyType": { + "id": 29, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1017:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1009:97:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + }, + "valueType": { + "id": 38, + "keyType": { + "id": 30, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1035:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Mapping", + "src": "1027:78:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + }, + "valueType": { + "id": 37, + "keyType": { + "id": 31, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1050:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1042:62:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + }, + "valueType": { + "id": 36, + "keyType": { + "id": 32, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1067:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1059:44:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + }, + "valueType": { + "id": 35, + "keyType": { + "id": 33, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1085:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1077:25:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 34, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1094:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + } + } + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "84d62178", + "id": 53, + "mutability": "mutable", + "name": "positions", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1130:113:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + }, + "typeName": { + "id": 52, + "keyType": { + "id": 42, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1138:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1130:96:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + }, + "valueType": { + "id": 51, + "keyType": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1156:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1148:77:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + }, + "valueType": { + "id": 50, + "keyType": { + "id": 44, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1173:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Mapping", + "src": "1165:59:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + }, + "valueType": { + "id": 49, + "keyType": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1188:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1180:43:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + }, + "valueType": { + "id": 48, + "keyType": { + "id": 46, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1205:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1197:25:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 47, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1214:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + } + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "_allowances", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1249:67:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 58, + "keyType": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1257:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1249:47:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 57, + "keyType": { + "id": 55, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1276:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1268:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1287:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5662ecc7", + "id": 62, + "mutability": "mutable", + "name": "lastOrderId", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1416:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1416:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1444:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "61fa86e6", + "id": 65, + "mutability": "mutable", + "name": "lastPurchaseId", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1451:32:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1451:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1482:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 85, + "name": "OptionPurchase", + "nodeType": "EventDefinition", + "parameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 67, + "indexed": false, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1611:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1611:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "indexed": false, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1626:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1626:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 71, + "indexed": false, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1642:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 70, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1642:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 73, + "indexed": false, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1657:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 72, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1657:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "indexed": false, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1676:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 74, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 77, + "indexed": false, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1697:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 76, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1697:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79, + "indexed": false, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1714:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 78, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1714:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "indexed": false, + "mutability": "mutable", + "name": "amountPurchasing", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1730:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 80, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1730:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 83, + "indexed": false, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 85, + "src": "1756:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 82, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1756:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1610:165:0" + }, + "src": "1590:186:0" + }, + { + "anonymous": false, + "id": 103, + "name": "OptionOffer", + "nodeType": "EventDefinition", + "parameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 87, + "indexed": false, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1799:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 86, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1799:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "indexed": false, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1815:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1815:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "indexed": false, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1830:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 90, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1830:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "indexed": false, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1849:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 92, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1849:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "indexed": false, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1870:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1870:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "indexed": false, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1887:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1887:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "indexed": false, + "mutability": "mutable", + "name": "amountSelling", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1903:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1903:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 101, + "indexed": false, + "mutability": "mutable", + "name": "orderId", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "1926:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1926:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1798:144:0" + }, + "src": "1781:162:0" + }, + { + "anonymous": false, + "id": 111, + "name": "OptionExcersize", + "nodeType": "EventDefinition", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 105, + "indexed": false, + "mutability": "mutable", + "name": "optionId", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "1970:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 104, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1970:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 107, + "indexed": false, + "mutability": "mutable", + "name": "excersizeCost", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "1988:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1988:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 109, + "indexed": false, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "2011:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2011:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1969:60:0" + }, + "src": "1948:82:0" + }, + { + "anonymous": false, + "id": 123, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 113, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "2050:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2050:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 115, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "2072:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2072:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 117, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "2092:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2092:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 119, + "indexed": false, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "2107:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2107:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 121, + "indexed": false, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "2126:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2126:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2049:95:0" + }, + "src": "2035:110:0" + }, + { + "anonymous": false, + "id": 133, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 125, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "2165:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2165:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 127, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "2188:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2188:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 129, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "2213:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2213:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 131, + "indexed": false, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "2228:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2228:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2164:83:0" + }, + "src": "2150:98:0" + }, + { + "canonicalName": "Core.optionOffer", + "id": 152, + "members": [ + { + "constant": false, + "id": 135, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2323:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2323:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 137, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2347:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2347:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 139, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2370:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 138, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2370:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 141, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2397:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2397:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 143, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2426:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2426:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 145, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2451:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2451:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 147, + "mutability": "mutable", + "name": "amountUnderlyingToken", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2475:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 149, + "mutability": "mutable", + "name": "offeredTimestamp", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2514:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2514:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "isStillValid", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "2548:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 150, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2548:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "optionOffer", + "nodeType": "StructDefinition", + "scope": 1205, + "src": "2294:278:0", + "visibility": "public" + }, + { + "canonicalName": "Core.optionPurchase", + "id": 175, + "members": [ + { + "constant": false, + "id": 154, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2609:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 153, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2609:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 156, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2632:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2632:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 158, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2656:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 157, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2656:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 160, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2679:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 159, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2679:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 162, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2706:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 161, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 164, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2735:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 163, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 166, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2760:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 165, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2760:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 168, + "mutability": "mutable", + "name": "amountUnderlyingToken", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2784:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2784:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 170, + "mutability": "mutable", + "name": "offerId", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2823:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2823:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 172, + "mutability": "mutable", + "name": "purchasedTimestamp", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2848:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2848:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "exercized", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "2884:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2884:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "optionPurchase", + "nodeType": "StructDefinition", + "scope": 1205, + "src": "2577:328:0", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "188783d6", + "id": 180, + "mutability": "mutable", + "name": "optionPurchases", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "2975:58:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase)" + }, + "typeName": { + "id": 179, + "keyType": { + "id": 176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2984:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2975:35:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase)" + }, + "valueType": { + "id": 178, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 177, + "name": "optionPurchase", + "nodeType": "IdentifierPath", + "referencedDeclaration": 175, + "src": "2995:14:0" + }, + "referencedDeclaration": 175, + "src": "2995:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage_ptr", + "typeString": "struct Core.optionPurchase" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "00b4fa3e", + "id": 185, + "mutability": "mutable", + "name": "optionOffers", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "3039:52:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer)" + }, + "typeName": { + "id": 184, + "keyType": { + "id": 181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3048:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3039:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer)" + }, + "valueType": { + "id": 183, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 182, + "name": "optionOffer", + "nodeType": "IdentifierPath", + "referencedDeclaration": 152, + "src": "3059:11:0" + }, + "referencedDeclaration": 152, + "src": "3059:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage_ptr", + "typeString": "struct Core.optionOffer" + } + } + }, + "visibility": "public" + }, + { + "body": { + "id": 194, + "nodeType": "Block", + "src": "3148:46:0", + "statements": [ + { + "expression": { + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 190, + "name": "daiTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "3158:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 191, + "name": "_daiAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 187, + "src": "3176:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3158:29:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 193, + "nodeType": "ExpressionStatement", + "src": "3158:29:0" + } + ] + }, + "functionSelector": "a6693590", + "id": 195, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setDaiAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 187, + "mutability": "mutable", + "name": "_daiAddress", + "nodeType": "VariableDeclaration", + "scope": 195, + "src": "3121:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3121:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3120:21:0" + }, + "returnParameters": { + "id": 189, + "nodeType": "ParameterList", + "parameters": [], + "src": "3148:0:0" + }, + "scope": 1205, + "src": "3098:96:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 288, + "nodeType": "Block", + "src": "3419:911:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 203, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "3438:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 205, + "indexExpression": { + "id": 204, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "3454:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3438:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 206, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exercized", + "nodeType": "MemberAccess", + "referencedDeclaration": 174, + "src": "3438:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "66616c7365", + "id": 207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3478:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3438:45:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54686973206f7074696f6e2068617320616c7265616479206265656e20657863657273697a6564", + "id": 209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3485:41:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f", + "typeString": "literal_string \"This option has already been excersized\"" + }, + "value": "This option has already been excersized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f", + "typeString": "literal_string \"This option has already been excersized\"" + } + ], + "id": 202, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3430:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3430:97:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 211, + "nodeType": "ExpressionStatement", + "src": "3430:97:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 213, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "3545:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 215, + "indexExpression": { + "id": 214, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "3561:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3545:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 216, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 166, + "src": "3545:34:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 217, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "3583:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3583:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3545:53:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54686973206f7074696f6e20686173206e6f7420726561636865642069747320657863657273697a652074696d657374616d7020796574", + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3600:57:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b", + "typeString": "literal_string \"This option has not reached its excersize timestamp yet\"" + }, + "value": "This option has not reached its excersize timestamp yet" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b", + "typeString": "literal_string \"This option has not reached its excersize timestamp yet\"" + } + ], + "id": 212, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3537:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3537:121:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 222, + "nodeType": "ExpressionStatement", + "src": "3537:121:0" + }, + { + "assignments": [ + 225 + ], + "declarations": [ + { + "constant": false, + "id": 225, + "mutability": "mutable", + "name": "opData", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "3668:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase" + }, + "typeName": { + "id": 224, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 223, + "name": "optionPurchase", + "nodeType": "IdentifierPath", + "referencedDeclaration": 175, + "src": "3668:14:0" + }, + "referencedDeclaration": 175, + "src": "3668:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage_ptr", + "typeString": "struct Core.optionPurchase" + } + }, + "visibility": "internal" + } + ], + "id": 229, + "initialValue": { + "baseExpression": { + "id": 226, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "3699:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 228, + "indexExpression": { + "id": 227, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "3715:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3699:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3668:58:0" + }, + { + "assignments": [ + 231 + ], + "declarations": [ + { + "constant": false, + "id": 231, + "mutability": "mutable", + "name": "underlyingAddress", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "3736:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3736:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 234, + "initialValue": { + "expression": { + "id": 232, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "3765:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 233, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 158, + "src": "3765:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3736:41:0" + }, + { + "assignments": [ + 237 + ], + "declarations": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "underlyingToken", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "3787:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 236, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 235, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1323, + "src": "3787:6:0" + }, + "referencedDeclaration": 1323, + "src": "3787:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "id": 241, + "initialValue": { + "arguments": [ + { + "id": 239, + "name": "underlyingAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "3819:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 238, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1323, + "src": "3812:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$1323_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3812:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3787:50:0" + }, + { + "assignments": [ + 243 + ], + "declarations": [ + { + "constant": false, + "id": 243, + "mutability": "mutable", + "name": "amountDAIToPay", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "3847:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3847:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 250, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 247, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "3905:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 162, + "src": "3905:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 244, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "3872:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 245, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountUnderlyingToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 168, + "src": "3872:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 2049, + "src": "3872:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3872:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3847:77:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 254, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "3964:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 255, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "buyer", + "nodeType": "MemberAccess", + "referencedDeclaration": 154, + "src": "3964:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 256, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "3978:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 257, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 156, + "src": "3978:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 258, + "name": "amountDAIToPay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "3993:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 252, + "name": "daiToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "3942:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1304, + "src": "3942:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3942:66:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4469642074686520627579657220617070726f7665207468697320636f6e747261637420746f2068616e646c6520444149206f72206861766520616e6f7567682044414920746f20657863657273697a653f", + "id": 260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4010:84:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1", + "typeString": "literal_string \"Did the buyer approve this contract to handle DAI or have anough DAI to excersize?\"" + }, + "value": "Did the buyer approve this contract to handle DAI or have anough DAI to excersize?" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1", + "typeString": "literal_string \"Did the buyer approve this contract to handle DAI or have anough DAI to excersize?\"" + } + ], + "id": 251, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3934:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3934:161:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 262, + "nodeType": "ExpressionStatement", + "src": "3934:161:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 266, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "4130:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 267, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "buyer", + "nodeType": "MemberAccess", + "referencedDeclaration": 154, + "src": "4130:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 268, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "4144:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 269, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountUnderlyingToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 168, + "src": "4144:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 263, + "name": "underlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "4105:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1272, + "src": "4105:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:68:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 271, + "nodeType": "ExpressionStatement", + "src": "4105:68:0" + }, + { + "expression": { + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 272, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "4183:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 274, + "indexExpression": { + "id": 273, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "4199:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4183:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 275, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "exercized", + "nodeType": "MemberAccess", + "referencedDeclaration": 174, + "src": "4183:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4222:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4183:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "4183:43:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 280, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "4257:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 281, + "name": "amountDAIToPay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "4269:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 282, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4285:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4285:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 279, + "name": "OptionExcersize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "4241:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4241:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 285, + "nodeType": "EmitStatement", + "src": "4236:65:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4318:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 201, + "id": 287, + "nodeType": "Return", + "src": "4311:11:0" + } + ] + }, + "functionSelector": "23cfbf1a", + "id": 289, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "excersizeOption", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 197, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "3378:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3378:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3377:20:0" + }, + "returnParameters": { + "id": 201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "3414:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 199, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3414:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3413:6:0" + }, + "scope": 1205, + "src": "3353:977:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 318, + "nodeType": "Block", + "src": "4493:135:0", + "statements": [ + { + "body": { + "id": 314, + "nodeType": "Block", + "src": "4545:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 309, + "name": "purchaseIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "4575:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 311, + "indexExpression": { + "id": 310, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "4587:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4575:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 308, + "name": "excersizeOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4559:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) returns (bool)" + } + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4559:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 313, + "nodeType": "ExpressionStatement", + "src": "4559:31:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 301, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "4519:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 302, + "name": "purchaseIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "4521:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4521:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4519:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 315, + "initializationExpression": { + "assignments": [ + 298 + ], + "declarations": [ + { + "constant": false, + "id": 298, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "4507:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 297, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4507:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 300, + "initialValue": { + "hexValue": "30", + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4516:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4507:10:0" + }, + "loopExpression": { + "expression": { + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4541:3:0", + "subExpression": { + "id": 305, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "4541:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 307, + "nodeType": "ExpressionStatement", + "src": "4541:3:0" + }, + "nodeType": "ForStatement", + "src": "4503:98:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4617:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 296, + "id": 317, + "nodeType": "Return", + "src": "4610:11:0" + } + ] + }, + "functionSelector": "86468c42", + "id": 319, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "excersizeOptions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 292, + "mutability": "mutable", + "name": "purchaseIds", + "nodeType": "VariableDeclaration", + "scope": 319, + "src": "4442:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4442:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 291, + "nodeType": "ArrayTypeName", + "src": "4442:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4441:30:0" + }, + "returnParameters": { + "id": 296, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 295, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 319, + "src": "4488:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 294, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4488:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4487:6:0" + }, + "scope": 1205, + "src": "4416:212:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 473, + "nodeType": "Block", + "src": "4953:1097:0", + "statements": [ + { + "assignments": [ + 340 + ], + "declarations": [ + { + "constant": false, + "id": 340, + "mutability": "mutable", + "name": "underlyingToken", + "nodeType": "VariableDeclaration", + "scope": 473, + "src": "4963:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 339, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 338, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1323, + "src": "4963:6:0" + }, + "referencedDeclaration": 1323, + "src": "4963:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "id": 344, + "initialValue": { + "arguments": [ + { + "id": 342, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "4995:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 341, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1323, + "src": "4988:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$1323_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4988:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4963:38:0" + }, + { + "assignments": [ + 346 + ], + "declarations": [ + { + "constant": false, + "id": 346, + "mutability": "mutable", + "name": "contractBalanceBeforeTransfer", + "nodeType": "VariableDeclaration", + "scope": 473, + "src": "5011:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 345, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5011:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 354, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 351, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "5085:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + ], + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5077:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5077:7:0", + "typeDescriptions": {} + } + }, + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5077:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 347, + "name": "underlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "5051:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1262, + "src": "5051:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5051:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5011:80:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 358, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5130:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5130:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 362, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "5150:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + ], + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5142:7:0", + "typeDescriptions": {} + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5142:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 364, + "name": "amountUnderlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "5157:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 355, + "name": "underlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "5101:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1304, + "src": "5101:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5101:78:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 366, + "nodeType": "ExpressionStatement", + "src": "5101:78:0" + }, + { + "assignments": [ + 368 + ], + "declarations": [ + { + "constant": false, + "id": 368, + "mutability": "mutable", + "name": "contractBalanceAfterTransfer", + "nodeType": "VariableDeclaration", + "scope": 473, + "src": "5189:36:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 376, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 373, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "5262:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Core_$1205", + "typeString": "contract Core" + } + ], + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5254:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5254:7:0", + "typeDescriptions": {} + } + }, + "id": 374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5254:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 369, + "name": "underlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "5228:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1262, + "src": "5228:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5228:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5189:79:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 378, + "name": "contractBalanceAfterTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 368, + "src": "5286:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "arguments": [ + { + "id": 381, + "name": "amountUnderlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "5353:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 379, + "name": "contractBalanceBeforeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "5319:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "5319:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5319:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 383, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5318:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5286:90:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436f756c64206e6f74207472616e736665722074686520616d6f756e742066726f6d206d73672e73656e64657220746861742077617320726571756573746564", + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5378:66:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad", + "typeString": "literal_string \"Could not transfer the amount from msg.sender that was requested\"" + }, + "value": "Could not transfer the amount from msg.sender that was requested" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad", + "typeString": "literal_string \"Could not transfer the amount from msg.sender that was requested\"" + } + ], + "id": 377, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "5278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5278:167:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 387, + "nodeType": "ExpressionStatement", + "src": "5278:167:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 388, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "5458:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 390, + "indexExpression": { + "id": 389, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "5468:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 392, + "indexExpression": { + "id": 391, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "5476:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 394, + "indexExpression": { + "id": 393, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 325, + "src": "5483:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 396, + "indexExpression": { + "id": 395, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "5497:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 398, + "indexExpression": { + "id": 397, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5510:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 400, + "indexExpression": { + "id": 399, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "5519:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5529:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5458:72:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 451, + "nodeType": "Block", + "src": "5661:191:0", + "statements": [ + { + "expression": { + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 420, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "5675:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 427, + "indexExpression": { + "id": 421, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "5685:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5675:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 428, + "indexExpression": { + "id": 422, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "5693:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5675:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 429, + "indexExpression": { + "id": 423, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 325, + "src": "5700:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5675:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 430, + "indexExpression": { + "id": 424, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "5714:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5675:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 431, + "indexExpression": { + "id": 425, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5727:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5675:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 432, + "indexExpression": { + "id": 426, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "5736:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5675:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 447, + "name": "amountUnderlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "5819:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 433, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "5746:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 435, + "indexExpression": { + "id": 434, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "5756:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 437, + "indexExpression": { + "id": 436, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "5764:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 439, + "indexExpression": { + "id": 438, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 325, + "src": "5771:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 441, + "indexExpression": { + "id": 440, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "5785:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 443, + "indexExpression": { + "id": 442, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5798:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 445, + "indexExpression": { + "id": 444, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "5807:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "5746:72:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5746:95:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5675:166:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 450, + "nodeType": "ExpressionStatement", + "src": "5675:166:0" + } + ] + }, + "id": 452, + "nodeType": "IfStatement", + "src": "5455:397:0", + "trueBody": { + "id": 419, + "nodeType": "Block", + "src": "5531:117:0", + "statements": [ + { + "expression": { + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 403, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "5545:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 410, + "indexExpression": { + "id": 404, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "5555:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5545:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 411, + "indexExpression": { + "id": 405, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "5563:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5545:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 412, + "indexExpression": { + "id": 406, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 325, + "src": "5570:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5545:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 413, + "indexExpression": { + "id": 407, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "5584:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5545:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 414, + "indexExpression": { + "id": 408, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5597:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5545:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 415, + "indexExpression": { + "id": 409, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "5606:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5545:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 416, + "name": "amountUnderlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "5616:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5545:92:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 418, + "nodeType": "ExpressionStatement", + "src": "5545:92:0" + } + ] + } + }, + { + "expression": { + "id": 458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 453, + "name": "lastOrderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "5861:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "31", + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5891:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "id": 454, + "name": "lastOrderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "5875:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "5875:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5875:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5861:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 459, + "nodeType": "ExpressionStatement", + "src": "5861:32:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 461, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "5921:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 462, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "5929:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 463, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 325, + "src": "5936:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 464, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "5950:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 465, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5963:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 466, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "5972:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 467, + "name": "amountUnderlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "5980:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 468, + "name": "lastOrderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "6003:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 460, + "name": "OptionOffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "5908:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256,uint256,uint256,uint256)" + } + }, + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5908:107:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 470, + "nodeType": "EmitStatement", + "src": "5903:112:0" + }, + { + "expression": { + "id": 471, + "name": "lastOrderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "6032:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 337, + "id": 472, + "nodeType": "Return", + "src": "6025:18:0" + } + ] + }, + "functionSelector": "e57fcc20", + "id": 474, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sellOption", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 321, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4779:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 320, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4779:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 323, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4795:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4795:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 325, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4810:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 324, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4810:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 327, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4829:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 326, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4829:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4850:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4850:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4867:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4867:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "mutability": "mutable", + "name": "amountUnderlyingToken", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4883:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4883:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4778:135:0" + }, + "returnParameters": { + "id": 337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 336, + "mutability": "mutable", + "name": "orderIdentifier", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "4929:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4929:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4928:25:0" + }, + "scope": 1205, + "src": "4759:1291:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 622, + "nodeType": "Block", + "src": "6244:1244:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 486, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "6258:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 488, + "indexExpression": { + "id": 487, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "6271:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6258:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 489, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isStillValid", + "nodeType": "MemberAccess", + "referencedDeclaration": 151, + "src": "6258:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "74727565", + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6258:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54686973206f7074696f6e206973206e6f206c6f6e6765722076616c6964", + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6301:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788", + "typeString": "literal_string \"This option is no longer valid\"" + }, + "value": "This option is no longer valid" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788", + "typeString": "literal_string \"This option is no longer valid\"" + } + ], + "id": 485, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6250:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6250:84:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 494, + "nodeType": "ExpressionStatement", + "src": "6250:84:0" + }, + { + "assignments": [ + 497 + ], + "declarations": [ + { + "constant": false, + "id": 497, + "mutability": "mutable", + "name": "opData", + "nodeType": "VariableDeclaration", + "scope": 622, + "src": "6340:25:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer" + }, + "typeName": { + "id": 496, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 495, + "name": "optionOffer", + "nodeType": "IdentifierPath", + "referencedDeclaration": 152, + "src": "6340:11:0" + }, + "referencedDeclaration": 152, + "src": "6340:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage_ptr", + "typeString": "struct Core.optionOffer" + } + }, + "visibility": "internal" + } + ], + "id": 501, + "initialValue": { + "baseExpression": { + "id": 498, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "6368:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 500, + "indexExpression": { + "id": 499, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "6381:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6368:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6340:49:0" + }, + { + "assignments": [ + 503 + ], + "declarations": [ + { + "constant": false, + "id": 503, + "mutability": "mutable", + "name": "optionIsBuyable", + "nodeType": "VariableDeclaration", + "scope": 622, + "src": "6395:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 502, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6395:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 519, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 505, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6434:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 506, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 135, + "src": "6434:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 507, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6449:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 508, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "6449:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 509, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6463:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "6463:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 511, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6484:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 512, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "6484:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 513, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6504:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 514, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "6504:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 515, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6520:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 516, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "6520:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 517, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "6535:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 504, + "name": "isOptionBuyable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "6418:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,bool,uint256,uint256,uint256,uint256) view returns (bool)" + } + }, + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6418:134:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6395:157:0" + }, + { + "expression": { + "arguments": [ + { + "id": 521, + "name": "optionIsBuyable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 503, + "src": "6566:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54686973206f7074696f6e206973206e6f742062757961626c652e20506c6561736520636865636b207468652073656c6c65722773206f6666657220696e666f726d6174696f6e", + "id": 522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6583:73:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43", + "typeString": "literal_string \"This option is not buyable. Please check the seller's offer information\"" + }, + "value": "This option is not buyable. Please check the seller's offer information" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43", + "typeString": "literal_string \"This option is not buyable. Please check the seller's offer information\"" + } + ], + "id": 520, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6558:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6558:99:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "6558:99:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 526, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "6673:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 527, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6693:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 528, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountUnderlyingToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "6693:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6673:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5468657265206973206e6f7420656e6f75676820696e76656e746f727920666f722074686973206f72646572", + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6723:46:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab", + "typeString": "literal_string \"There is not enough inventory for this order\"" + }, + "value": "There is not enough inventory for this order" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab", + "typeString": "literal_string \"There is not enough inventory for this order\"" + } + ], + "id": 525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6665:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6665:105:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 532, + "nodeType": "ExpressionStatement", + "src": "6665:105:0" + }, + { + "assignments": [ + 534 + ], + "declarations": [ + { + "constant": false, + "id": 534, + "mutability": "mutable", + "name": "orderSize", + "nodeType": "VariableDeclaration", + "scope": 622, + "src": "6778:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6778:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 540, + "initialValue": { + "arguments": [ + { + "id": 538, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "6817:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 535, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6798:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 536, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "6798:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 2049, + "src": "6798:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6798:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6778:56:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 544, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6872:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6872:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 546, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "6884:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 547, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 135, + "src": "6884:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 548, + "name": "orderSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 534, + "src": "6899:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 542, + "name": "daiToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "6850:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1304, + "src": "6850:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6850:59:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "506c6561736520656e73757265207468617420796f75206861766520617070726f766564207468697320636f6e747261637420746f2068616e646c6520796f75722044414920286572726f7229", + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6911:79:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1", + "typeString": "literal_string \"Please ensure that you have approved this contract to handle your DAI (error)\"" + }, + "value": "Please ensure that you have approved this contract to handle your DAI (error)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1", + "typeString": "literal_string \"Please ensure that you have approved this contract to handle your DAI (error)\"" + } + ], + "id": 541, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6842:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6842:149:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 552, + "nodeType": "ExpressionStatement", + "src": "6842:149:0" + }, + { + "expression": { + "arguments": [ + { + "id": 573, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "7114:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 553, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "6999:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 566, + "indexExpression": { + "expression": { + "id": 554, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7009:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 555, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 135, + "src": "7009:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 567, + "indexExpression": { + "expression": { + "id": 556, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7024:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 557, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "7024:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 568, + "indexExpression": { + "expression": { + "id": 558, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7038:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 559, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "7038:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:59:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 569, + "indexExpression": { + "expression": { + "id": 560, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7059:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 561, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "7059:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:79:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 570, + "indexExpression": { + "expression": { + "id": 562, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7079:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 563, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "7079:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:95:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 571, + "indexExpression": { + "expression": { + "id": 564, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7095:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 565, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "7095:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6999:110:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 2034, + "src": "6999:114:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6999:132:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 575, + "nodeType": "ExpressionStatement", + "src": "6999:132:0" + }, + { + "expression": { + "arguments": [ + { + "id": 592, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "7230:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 576, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "7139:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 586, + "indexExpression": { + "id": 577, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 476, + "src": "7149:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7139:16:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 587, + "indexExpression": { + "expression": { + "id": 578, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7156:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 579, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "7156:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7139:30:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 588, + "indexExpression": { + "expression": { + "id": 580, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7170:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 581, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "7170:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7139:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 589, + "indexExpression": { + "expression": { + "id": 582, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7191:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 583, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "7191:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7139:71:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 590, + "indexExpression": { + "expression": { + "id": 584, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7211:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 585, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "7211:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7139:86:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "7139:90:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7139:108:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 594, + "nodeType": "ExpressionStatement", + "src": "7139:108:0" + }, + { + "expression": { + "id": 600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 595, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "7255:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "31", + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7291:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "id": 596, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "7272:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "7272:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7272:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7255:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 601, + "nodeType": "ExpressionStatement", + "src": "7255:38:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 603, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 476, + "src": "7321:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 604, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7328:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 605, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 135, + "src": "7328:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 606, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7343:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 607, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "7343:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 608, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7357:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 609, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "7357:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 610, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7378:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 611, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "7378:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 612, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7398:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 613, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "7398:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 614, + "name": "opData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "7414:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_memory_ptr", + "typeString": "struct Core.optionOffer memory" + } + }, + "id": 615, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "7414:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 616, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "7429:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 617, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "7447:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 602, + "name": "OptionPurchase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "7306:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,bool,uint256,uint256,uint256,uint256,uint256)" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7306:156:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 619, + "nodeType": "EmitStatement", + "src": "7301:161:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7477:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 484, + "id": 621, + "nodeType": "Return", + "src": "7470:11:0" + } + ] + }, + "functionSelector": "871f179f", + "id": 623, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buyOptionByID", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 476, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 623, + "src": "6166:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 475, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6166:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 478, + "mutability": "mutable", + "name": "offerId", + "nodeType": "VariableDeclaration", + "scope": 623, + "src": "6180:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 477, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6180:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 480, + "mutability": "mutable", + "name": "amountPurchasing", + "nodeType": "VariableDeclaration", + "scope": 623, + "src": "6197:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 479, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6197:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6165:57:0" + }, + "returnParameters": { + "id": 484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 483, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 623, + "src": "6239:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 482, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6239:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6238:6:0" + }, + "scope": 1205, + "src": "6143:1345:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 786, + "nodeType": "Block", + "src": "7804:1303:0", + "statements": [ + { + "assignments": [ + 645 + ], + "declarations": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "optionIsBuyable", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "7814:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7814:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 655, + "initialValue": { + "arguments": [ + { + "id": 647, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "7853:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 648, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "7861:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 649, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "7868:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 650, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "7882:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 651, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "7895:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 652, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "7904:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 653, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "7912:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 646, + "name": "isOptionBuyable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "7837:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,bool,uint256,uint256,uint256,uint256) view returns (bool)" + } + }, + "id": 654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7837:92:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7814:115:0" + }, + { + "expression": { + "arguments": [ + { + "id": 657, + "name": "optionIsBuyable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "7947:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54686973206f7074696f6e206973206e6f742062757961626c652e20506c6561736520636865636b207468652073656c6c65722773206f6666657220696e666f726d6174696f6e", + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7964:73:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43", + "typeString": "literal_string \"This option is not buyable. Please check the seller's offer information\"" + }, + "value": "This option is not buyable. Please check the seller's offer information" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43", + "typeString": "literal_string \"This option is not buyable. Please check the seller's offer information\"" + } + ], + "id": 656, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "7939:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7939:99:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 660, + "nodeType": "ExpressionStatement", + "src": "7939:99:0" + }, + { + "expression": { + "arguments": [ + { + "id": 662, + "name": "optionIsBuyable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "8055:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536f7272793a207468657265206973206e6f206f6e652073656c6c696e67206f7074696f6e732074686174206d65657420796f75722073706563696669636174696f6e732e205065726861707320747279206275794f7074696f6e4279496473", + "id": 663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8072:98:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6", + "typeString": "literal_string \"Sorry: there is no one selling options that meet your specifications. Perhaps try buyOptionByIds\"" + }, + "value": "Sorry: there is no one selling options that meet your specifications. Perhaps try buyOptionByIds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6", + "typeString": "literal_string \"Sorry: there is no one selling options that meet your specifications. Perhaps try buyOptionByIds\"" + } + ], + "id": 661, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "8047:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8047:124:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 665, + "nodeType": "ExpressionStatement", + "src": "8047:124:0" + }, + { + "assignments": [ + 667 + ], + "declarations": [ + { + "constant": false, + "id": 667, + "mutability": "mutable", + "name": "amountSelling", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "8181:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8181:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 681, + "initialValue": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 668, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "8205:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 670, + "indexExpression": { + "id": 669, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "8215:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 672, + "indexExpression": { + "id": 671, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8223:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 674, + "indexExpression": { + "id": 673, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "8230:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 676, + "indexExpression": { + "id": 675, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "8244:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 678, + "indexExpression": { + "id": 677, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "8257:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 680, + "indexExpression": { + "id": 679, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8266:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8205:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8181:92:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 683, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8291:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 684, + "name": "amountSelling", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 667, + "src": "8311:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8291:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "205468657265206973206e6f7420656e6f75676820696e76656e746f727920666f722074686973206f72646572", + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8325:47:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b", + "typeString": "literal_string \" There is not enough inventory for this order\"" + }, + "value": " There is not enough inventory for this order" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b", + "typeString": "literal_string \" There is not enough inventory for this order\"" + } + ], + "id": 682, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "8283:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8283:90:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 688, + "nodeType": "ExpressionStatement", + "src": "8283:90:0" + }, + { + "assignments": [ + 690 + ], + "declarations": [ + { + "constant": false, + "id": 690, + "mutability": "mutable", + "name": "orderSize", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "8383:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8383:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 695, + "initialValue": { + "arguments": [ + { + "id": 693, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8415:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 691, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "8403:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 2049, + "src": "8403:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8403:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8383:49:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 699, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "8472:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8472:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 701, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "8484:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 702, + "name": "orderSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "8492:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 697, + "name": "daiToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "8450:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1304, + "src": "8450:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8450:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "506c6561736520656e73757265207468617420796f75206861766520617070726f766564207468697320636f6e747261637420746f2068616e646c6520796f75722044414920286572726f7229", + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8504:79:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1", + "typeString": "literal_string \"Please ensure that you have approved this contract to handle your DAI (error)\"" + }, + "value": "Please ensure that you have approved this contract to handle your DAI (error)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1", + "typeString": "literal_string \"Please ensure that you have approved this contract to handle your DAI (error)\"" + } + ], + "id": 696, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "8442:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8442:142:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 706, + "nodeType": "ExpressionStatement", + "src": "8442:142:0" + }, + { + "expression": { + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 707, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "8594:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 714, + "indexExpression": { + "id": 708, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "8604:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8594:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 715, + "indexExpression": { + "id": 709, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8612:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8594:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 716, + "indexExpression": { + "id": 710, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "8619:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8594:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 717, + "indexExpression": { + "id": 711, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "8633:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8594:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 718, + "indexExpression": { + "id": 712, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "8646:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8594:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 719, + "indexExpression": { + "id": 713, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8655:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8594:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 734, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8736:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 720, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "8663:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 722, + "indexExpression": { + "id": 721, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "8673:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 724, + "indexExpression": { + "id": 723, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8681:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 726, + "indexExpression": { + "id": 725, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "8688:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 728, + "indexExpression": { + "id": 727, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "8702:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 730, + "indexExpression": { + "id": 729, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "8715:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 732, + "indexExpression": { + "id": 731, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8724:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8663:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 2034, + "src": "8663:72:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8663:90:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8594:159:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 737, + "nodeType": "ExpressionStatement", + "src": "8594:159:0" + }, + { + "expression": { + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 738, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "8763:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 744, + "indexExpression": { + "id": 739, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "8773:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8763:16:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 745, + "indexExpression": { + "id": 740, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8780:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8763:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 746, + "indexExpression": { + "id": 741, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "8787:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8763:37:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 747, + "indexExpression": { + "id": 742, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "8801:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8763:50:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 748, + "indexExpression": { + "id": 743, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8814:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8763:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 761, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8885:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 749, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "8822:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 751, + "indexExpression": { + "id": 750, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "8832:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:16:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 753, + "indexExpression": { + "id": 752, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8839:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 755, + "indexExpression": { + "id": 754, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "8846:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:37:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "8860:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:50:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 759, + "indexExpression": { + "id": 758, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8873:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "8822:62:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8822:80:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8763:139:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 764, + "nodeType": "ExpressionStatement", + "src": "8763:139:0" + }, + { + "expression": { + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 765, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "8912:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "31", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8948:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "id": 766, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "8929:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "8929:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8929:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8912:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "8912:38:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 773, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "8980:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 774, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "8987:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 775, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8995:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 776, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "9002:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 777, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "9016:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 778, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "9029:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 779, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "9038:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 780, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "9046:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 781, + "name": "lastPurchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "9064:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 772, + "name": "OptionPurchase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "8965:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,bool,uint256,uint256,uint256,uint256,uint256)" + } + }, + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8965:114:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 783, + "nodeType": "EmitStatement", + "src": "8960:119:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 643, + "id": 785, + "nodeType": "Return", + "src": "9089:11:0" + } + ] + }, + "functionSelector": "7d4c82ca", + "id": 787, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buyOptionByExactPremiumAndExpiry", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 625, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7637:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 624, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7637:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7652:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7652:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7668:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 628, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7668:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 631, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7683:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 630, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7683:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 633, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7702:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7702:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7723:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7723:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7740:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7740:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 639, + "mutability": "mutable", + "name": "amountPurchasing", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7756:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 638, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7756:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7636:146:0" + }, + "returnParameters": { + "id": 643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 642, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "7799:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 641, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7799:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7798:6:0" + }, + "scope": 1205, + "src": "7595:1512:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 900, + "nodeType": "Block", + "src": "9387:832:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 795, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9436:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 797, + "indexExpression": { + "id": 796, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9449:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9436:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 798, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 135, + "src": "9436:28:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 799, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "9468:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9468:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9436:42:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546865206d73672e73656e6465722068617320746f206265207468652073656c6c6572", + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9480:37:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8", + "typeString": "literal_string \"The msg.sender has to be the seller\"" + }, + "value": "The msg.sender has to be the seller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8", + "typeString": "literal_string \"The msg.sender has to be the seller\"" + } + ], + "id": 794, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "9428:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9428:90:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 804, + "nodeType": "ExpressionStatement", + "src": "9428:90:0" + }, + { + "assignments": [ + 806 + ], + "declarations": [ + { + "constant": false, + "id": 806, + "mutability": "mutable", + "name": "amountUnderlyingToReturn", + "nodeType": "VariableDeclaration", + "scope": 900, + "src": "9528:32:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9528:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 836, + "initialValue": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 807, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "9563:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 810, + "indexExpression": { + "expression": { + "id": 808, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "9573:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9573:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:21:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 815, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 811, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9585:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 813, + "indexExpression": { + "id": 812, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9598:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9585:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 814, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "9585:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:50:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 820, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 816, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9614:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 818, + "indexExpression": { + "id": 817, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9627:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9614:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 819, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "9614:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:86:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 825, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 821, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9650:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 823, + "indexExpression": { + "id": 822, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9663:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9650:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "9650:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:121:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 830, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 826, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9685:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 828, + "indexExpression": { + "id": 827, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9698:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9685:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 829, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "9685:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:152:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 835, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 831, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9716:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 833, + "indexExpression": { + "id": 832, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9729:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9716:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 834, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "9716:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9563:182:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9528:217:0" + }, + { + "assignments": [ + 838 + ], + "declarations": [ + { + "constant": false, + "id": 838, + "mutability": "mutable", + "name": "underlyingAddress", + "nodeType": "VariableDeclaration", + "scope": 900, + "src": "9755:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 837, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9755:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 843, + "initialValue": { + "expression": { + "baseExpression": { + "id": 839, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9784:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 841, + "indexExpression": { + "id": 840, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9797:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9784:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "9784:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9755:56:0" + }, + { + "assignments": [ + 846 + ], + "declarations": [ + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "underlyingToken", + "nodeType": "VariableDeclaration", + "scope": 900, + "src": "9821:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 845, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 844, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1323, + "src": "9821:6:0" + }, + "referencedDeclaration": 1323, + "src": "9821:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "id": 850, + "initialValue": { + "arguments": [ + { + "id": 848, + "name": "underlyingAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 838, + "src": "9853:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 847, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1323, + "src": "9846:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$1323_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9846:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9821:50:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 854, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "9906:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9906:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 856, + "name": "amountUnderlyingToReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "9918:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 851, + "name": "underlyingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "9881:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1323", + "typeString": "contract IERC20" + } + }, + "id": 853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1272, + "src": "9881:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9881:62:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 858, + "nodeType": "ExpressionStatement", + "src": "9881:62:0" + }, + { + "expression": { + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 859, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "9953:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 882, + "indexExpression": { + "expression": { + "id": 860, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "9963:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9963:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9953:21:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 883, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 862, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "9975:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 864, + "indexExpression": { + "id": 863, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9988:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9975:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 865, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "9975:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9953:50:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 884, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 866, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "10004:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 868, + "indexExpression": { + "id": 867, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "10017:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10004:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 869, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "10004:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9953:86:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 885, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 870, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "10040:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 872, + "indexExpression": { + "id": 871, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "10053:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10040:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 873, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "10040:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9953:121:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 886, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 874, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "10075:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 876, + "indexExpression": { + "id": 875, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "10088:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10075:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 877, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "premium", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "10075:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9953:152:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 887, + "indexExpression": { + "expression": { + "baseExpression": { + "id": 878, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "10106:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 880, + "indexExpression": { + "id": 879, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "10119:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10106:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 881, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 145, + "src": "10106:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9953:182:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10137:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9953:185:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 890, + "nodeType": "ExpressionStatement", + "src": "9953:185:0" + }, + { + "expression": { + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 891, + "name": "optionOffers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "10148:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionOffer_$152_storage_$", + "typeString": "mapping(uint256 => struct Core.optionOffer storage ref)" + } + }, + "id": 893, + "indexExpression": { + "id": 892, + "name": "offerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "10161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10148:21:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionOffer_$152_storage", + "typeString": "struct Core.optionOffer storage ref" + } + }, + "id": 894, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isStillValid", + "nodeType": "MemberAccess", + "referencedDeclaration": 151, + "src": "10148:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10185:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "10148:42:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 897, + "nodeType": "ExpressionStatement", + "src": "10148:42:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10207:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 793, + "id": 899, + "nodeType": "Return", + "src": "10200:11:0" + } + ] + }, + "functionSelector": "0afc7854", + "id": 901, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cancelOptionOffer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 789, + "mutability": "mutable", + "name": "offerId", + "nodeType": "VariableDeclaration", + "scope": 901, + "src": "9350:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9350:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9349:17:0" + }, + "returnParameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 792, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 901, + "src": "9382:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 791, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9382:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9381:6:0" + }, + "scope": 1205, + "src": "9323:896:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 942, + "nodeType": "Block", + "src": "10509:193:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 920, + "name": "orderbook", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "10522:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))))" + } + }, + "id": 922, + "indexExpression": { + "id": 921, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 903, + "src": "10532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 924, + "indexExpression": { + "id": 923, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "10540:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 926, + "indexExpression": { + "id": 925, + "name": "isCallOption", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "10547:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:38:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 928, + "indexExpression": { + "id": 927, + "name": "strikePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "10561:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 930, + "indexExpression": { + "id": 929, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 911, + "src": "10574:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:60:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 932, + "indexExpression": { + "id": 931, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "10583:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10522:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 933, + "name": "amountPurchasing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "10593:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10522:87:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 940, + "nodeType": "Block", + "src": "10659:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10680:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 919, + "id": 939, + "nodeType": "Return", + "src": "10673:12:0" + } + ] + }, + "id": 941, + "nodeType": "IfStatement", + "src": "10519:177:0", + "trueBody": { + "id": 937, + "nodeType": "Block", + "src": "10610:36:0", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10631:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 919, + "id": 936, + "nodeType": "Return", + "src": "10624:11:0" + } + ] + } + } + ] + }, + "functionSelector": "f789271c", + "id": 943, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isOptionBuyable", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 903, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10353:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10353:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 905, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10369:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 904, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10369:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 907, + "mutability": "mutable", + "name": "isCallOption", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10384:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 906, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10384:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 909, + "mutability": "mutable", + "name": "strikePrice", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10403:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 908, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10403:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 911, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10424:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10424:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 913, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10441:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 912, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10441:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 915, + "mutability": "mutable", + "name": "amountPurchasing", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10457:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10457:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10352:130:0" + }, + "returnParameters": { + "id": 919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 918, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "10504:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 917, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10504:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10503:6:0" + }, + "scope": 1205, + "src": "10328:374:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 960, + "nodeType": "Block", + "src": "10788:145:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 953, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "10885:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "10885:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 955, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "10897:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 956, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "10908:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 957, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 949, + "src": "10915:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 952, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "10875:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10875:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 959, + "nodeType": "ExpressionStatement", + "src": "10875:51:0" + } + ] + }, + "functionSelector": "095bcdb6", + "id": 961, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 945, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "10727:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 944, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10727:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "10746:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10746:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 949, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "10762:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10762:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10726:55:0" + }, + "returnParameters": { + "id": 951, + "nodeType": "ParameterList", + "parameters": [], + "src": "10788:0:0" + }, + "scope": 1205, + "src": "10708:225:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1010, + "nodeType": "Block", + "src": "11033:382:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 973, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "11102:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 975, + "indexExpression": { + "id": 974, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "11118:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11102:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 976, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "buyer", + "nodeType": "MemberAccess", + "referencedDeclaration": 154, + "src": "11102:33:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 977, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "11139:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11139:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11102:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5468652073656e646572206d757374206f776e20746865206f7074696f6e", + "id": 980, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11150:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4", + "typeString": "literal_string \"The sender must own the option\"" + }, + "value": "The sender must own the option" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4", + "typeString": "literal_string \"The sender must own the option\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "11094:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11094:89:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 982, + "nodeType": "ExpressionStatement", + "src": "11094:89:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 984, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "11201:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 986, + "indexExpression": { + "id": 985, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "11217:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11201:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountUnderlyingToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 168, + "src": "11201:49:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 988, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "11252:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11201:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "43616e6e6f7420617070726f7665206d6f7265207468616e206f776e6564", + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11259:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0", + "typeString": "literal_string \"Cannot approve more than owned\"" + }, + "value": "Cannot approve more than owned" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0", + "typeString": "literal_string \"Cannot approve more than owned\"" + } + ], + "id": 983, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "11193:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11193:99:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 992, + "nodeType": "ExpressionStatement", + "src": "11193:99:0" + }, + { + "expression": { + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 993, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "11302:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 997, + "indexExpression": { + "expression": { + "id": 994, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "11314:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11314:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11302:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 998, + "indexExpression": { + "id": 996, + "name": "designee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 963, + "src": "11326:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11302:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 999, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "11337:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11302:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1001, + "nodeType": "ExpressionStatement", + "src": "11302:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1003, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "11367:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11367:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1005, + "name": "designee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 963, + "src": "11379:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1006, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "11389:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1007, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "11397:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1002, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "11358:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11358:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1009, + "nodeType": "EmitStatement", + "src": "11353:55:0" + } + ] + }, + "functionSelector": "426a8493", + "id": 1011, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 963, + "mutability": "mutable", + "name": "designee", + "nodeType": "VariableDeclaration", + "scope": 1011, + "src": "10957:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 962, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10957:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1011, + "src": "10975:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10975:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 1011, + "src": "10992:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10992:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10956:56:0" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1011, + "src": "11028:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 969, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11028:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "11027:6:0" + }, + "scope": 1205, + "src": "10939:476:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1028, + "nodeType": "Block", + "src": "11529:105:0", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1022, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "11599:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1024, + "indexExpression": { + "id": 1023, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "11611:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11599:18:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1026, + "indexExpression": { + "id": 1025, + "name": "designee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1015, + "src": "11618:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11599:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1021, + "id": 1027, + "nodeType": "Return", + "src": "11592:35:0" + } + ] + }, + "functionSelector": "5c52a5f2", + "id": 1029, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1013, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1029, + "src": "11439:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11439:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1015, + "mutability": "mutable", + "name": "designee", + "nodeType": "VariableDeclaration", + "scope": 1029, + "src": "11454:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11454:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1017, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 1029, + "src": "11472:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1016, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11472:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11438:53:0" + }, + "returnParameters": { + "id": 1021, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1020, + "mutability": "mutable", + "name": "approvalAmount", + "nodeType": "VariableDeclaration", + "scope": 1029, + "src": "11506:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11506:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11505:24:0" + }, + "scope": 1205, + "src": "11421:213:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1078, + "nodeType": "Block", + "src": "11738:364:0", + "statements": [ + { + "assignments": [ + 1041 + ], + "declarations": [ + { + "constant": false, + "id": 1041, + "mutability": "mutable", + "name": "allownace", + "nodeType": "VariableDeclaration", + "scope": 1078, + "src": "11805:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1040, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11805:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1047, + "initialValue": { + "arguments": [ + { + "id": 1043, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "11834:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1044, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "11840:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1045, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "11851:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1042, + "name": "approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1029, + "src": "11825:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,address,uint256) returns (uint256)" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11825:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11805:57:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1049, + "name": "allownace", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "11880:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11893:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11880:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420617070726f766564", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11896:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361", + "typeString": "literal_string \"Not approved\"" + }, + "value": "Not approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361", + "typeString": "literal_string \"Not approved\"" + } + ], + "id": 1048, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "11872:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11872:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1054, + "nodeType": "ExpressionStatement", + "src": "11872:39:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1056, + "name": "allownace", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "11929:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1057, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1035, + "src": "11941:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11929:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420617070726f76656420666f72207468697320616d6f756e74", + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11948:30:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86", + "typeString": "literal_string \"Not approved for this amount\"" + }, + "value": "Not approved for this amount" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86", + "typeString": "literal_string \"Not approved for this amount\"" + } + ], + "id": 1055, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "11921:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11921:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1061, + "nodeType": "ExpressionStatement", + "src": "11921:58:0" + }, + { + "expression": { + "arguments": [ + { + "id": 1063, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "11999:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1064, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "12004:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1065, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1035, + "src": "12015:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1066, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "12023:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1062, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "11989:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11989:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1068, + "nodeType": "ExpressionStatement", + "src": "11989:45:0" + }, + { + "expression": { + "arguments": [ + { + "id": 1070, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "12052:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1073, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1035, + "src": "12076:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1071, + "name": "allownace", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "12062:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 2034, + "src": "12062:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12062:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1075, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "12084:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1069, + "name": "approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12044:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256,uint256) returns (bool)" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12044:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1077, + "nodeType": "ExpressionStatement", + "src": "12044:51:0" + } + ] + }, + "functionSelector": "fe99049a", + "id": 1079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1031, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "11662:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1030, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11662:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1033, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "11677:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1032, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11677:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1035, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "11696:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11696:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1037, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "11711:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1036, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11711:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11661:69:0" + }, + "returnParameters": { + "id": 1039, + "nodeType": "ParameterList", + "parameters": [], + "src": "11738:0:0" + }, + "scope": 1205, + "src": "11640:462:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1203, + "nodeType": "Block", + "src": "12212:948:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 1091, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "12257:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 1093, + "indexExpression": { + "id": 1092, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "12273:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12257:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "buyer", + "nodeType": "MemberAccess", + "referencedDeclaration": 154, + "src": "12257:33:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1095, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "12294:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12257:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5468652073656e646572206d757374206f776e20746865206f7074696f6e", + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12301:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4", + "typeString": "literal_string \"The sender must own the option\"" + }, + "value": "The sender must own the option" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4", + "typeString": "literal_string \"The sender must own the option\"" + } + ], + "id": 1090, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "12249:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12249:85:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1099, + "nodeType": "ExpressionStatement", + "src": "12249:85:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 1101, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "12352:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 1103, + "indexExpression": { + "id": 1102, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "12368:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12352:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountUnderlyingToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 168, + "src": "12352:49:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1105, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "12403:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12352:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "43616e6e6f74207472616e666572206d6f7265207468616e206f776e6564", + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12410:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965", + "typeString": "literal_string \"Cannot tranfer more than owned\"" + }, + "value": "Cannot tranfer more than owned" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965", + "typeString": "literal_string \"Cannot tranfer more than owned\"" + } + ], + "id": 1100, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "12344:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12344:99:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1109, + "nodeType": "ExpressionStatement", + "src": "12344:99:0" + }, + { + "assignments": [ + 1112 + ], + "declarations": [ + { + "constant": false, + "id": 1112, + "mutability": "mutable", + "name": "optData", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "12453:29:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase" + }, + "typeName": { + "id": 1111, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1110, + "name": "optionPurchase", + "nodeType": "IdentifierPath", + "referencedDeclaration": 175, + "src": "12453:14:0" + }, + "referencedDeclaration": 175, + "src": "12453:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage_ptr", + "typeString": "struct Core.optionPurchase" + } + }, + "visibility": "internal" + } + ], + "id": 1116, + "initialValue": { + "baseExpression": { + "id": 1113, + "name": "optionPurchases", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "12485:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_optionPurchase_$175_storage_$", + "typeString": "mapping(uint256 => struct Core.optionPurchase storage ref)" + } + }, + "id": 1115, + "indexExpression": { + "id": 1114, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "12501:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12485:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_storage", + "typeString": "struct Core.optionPurchase storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12453:59:0" + }, + { + "expression": { + "arguments": [ + { + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12530:18:0", + "subExpression": { + "expression": { + "id": 1118, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12531:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1119, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exercized", + "nodeType": "MemberAccess", + "referencedDeclaration": 174, + "src": "12531:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "63616e6e6f74207472616e7366657220616e206578657263697a6564206f7074696f6e", + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12549:37:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1", + "typeString": "literal_string \"cannot transfer an exercized option\"" + }, + "value": "cannot transfer an exercized option" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1", + "typeString": "literal_string \"cannot transfer an exercized option\"" + } + ], + "id": 1117, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "12522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12522:65:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1123, + "nodeType": "ExpressionStatement", + "src": "12522:65:0" + }, + { + "expression": { + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 1124, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "12597:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 1134, + "indexExpression": { + "id": 1125, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "12607:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12597:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 1135, + "indexExpression": { + "expression": { + "id": 1126, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12615:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 158, + "src": "12615:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12597:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 1136, + "indexExpression": { + "expression": { + "id": 1128, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12630:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1129, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 160, + "src": "12630:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12597:54:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 1137, + "indexExpression": { + "expression": { + "id": 1130, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12652:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1131, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 162, + "src": "12652:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12597:75:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1138, + "indexExpression": { + "expression": { + "id": 1132, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12673:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1133, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 166, + "src": "12673:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12597:91:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1155, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "12785:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 1139, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "12689:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 1141, + "indexExpression": { + "id": 1140, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "12699:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12689:17:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 1144, + "indexExpression": { + "expression": { + "id": 1142, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12707:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1143, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 158, + "src": "12707:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12689:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 1147, + "indexExpression": { + "expression": { + "id": 1145, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12722:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1146, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 160, + "src": "12722:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12689:54:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 1150, + "indexExpression": { + "expression": { + "id": 1148, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12744:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1149, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 162, + "src": "12744:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12689:75:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1153, + "indexExpression": { + "expression": { + "id": 1151, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12765:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1152, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 166, + "src": "12765:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12689:91:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 2034, + "src": "12689:95:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12689:103:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12597:195:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1158, + "nodeType": "ExpressionStatement", + "src": "12597:195:0" + }, + { + "expression": { + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 1159, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "12836:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 1169, + "indexExpression": { + "id": 1160, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1083, + "src": "12846:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12836:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 1170, + "indexExpression": { + "expression": { + "id": 1161, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12857:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1162, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 158, + "src": "12857:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12836:35:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 1171, + "indexExpression": { + "expression": { + "id": 1163, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12872:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1164, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 160, + "src": "12872:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12836:57:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 1172, + "indexExpression": { + "expression": { + "id": 1165, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12894:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1166, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 162, + "src": "12894:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12836:78:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1173, + "indexExpression": { + "expression": { + "id": 1167, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12915:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1168, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 166, + "src": "12915:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12836:94:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1190, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "13030:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 1174, + "name": "positions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "12931:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$_$", + "typeString": "mapping(address => mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))))" + } + }, + "id": 1176, + "indexExpression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1083, + "src": "12941:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12931:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$_$", + "typeString": "mapping(address => mapping(bool => mapping(uint256 => mapping(uint256 => uint256))))" + } + }, + "id": 1179, + "indexExpression": { + "expression": { + "id": 1177, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12952:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 158, + "src": "12952:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12931:35:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bool_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bool => mapping(uint256 => mapping(uint256 => uint256)))" + } + }, + "id": 1182, + "indexExpression": { + "expression": { + "id": 1180, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12967:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1181, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCallOption", + "nodeType": "MemberAccess", + "referencedDeclaration": 160, + "src": "12967:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12931:57:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 1185, + "indexExpression": { + "expression": { + "id": 1183, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "12989:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1184, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "strikePrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 162, + "src": "12989:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12931:78:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1188, + "indexExpression": { + "expression": { + "id": 1186, + "name": "optData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1112, + "src": "13010:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_optionPurchase_$175_memory_ptr", + "typeString": "struct Core.optionPurchase memory" + } + }, + "id": 1187, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 166, + "src": "13010:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12931:94:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2019, + "src": "12931:98:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12931:106:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12836:201:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1193, + "nodeType": "ExpressionStatement", + "src": "12836:201:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1195, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "13098:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1196, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1083, + "src": "13106:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1197, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "13117:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1198, + "name": "purchaseId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "13125:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1199, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "13137:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "13137:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1194, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 123, + "src": "13089:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13089:64:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1202, + "nodeType": "EmitStatement", + "src": "13084:69:0" + } + ] + }, + "id": 1204, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1081, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 1204, + "src": "12133:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1080, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12133:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1083, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1204, + "src": "12149:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1082, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12149:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1085, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1204, + "src": "12168:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1084, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12168:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1087, + "mutability": "mutable", + "name": "purchaseId", + "nodeType": "VariableDeclaration", + "scope": 1204, + "src": "12183:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1086, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12183:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12132:70:0" + }, + "returnParameters": { + "id": 1089, + "nodeType": "ParameterList", + "parameters": [], + "src": "12212:0:0" + }, + "scope": 1205, + "src": "12114:1046:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1206, + "src": "354:12816:0" + } + ], + "src": "0:13171:0" + }, + "compiler": { + "name": "solc", + "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" + }, + "networks": { + "5777": { + "events": {}, + "links": {}, + "address": "0x31Cd84862B8963eFB8c43934E163E3D94f61f476", + "transactionHash": "0x527e9b6920c791f54cb8210b0412e1eae52c2238b958e3c022a7a8ba731537dd" + } + }, + "schemaVersion": "3.4.1", + "updatedAt": "2021-08-03T17:29:35.582Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/Dai.json b/build/contracts/Dai.json new file mode 100644 index 0000000..c466973 --- /dev/null +++ b/build/contracts/Dai.json @@ -0,0 +1,13758 @@ +{ + "contractName": "Dai", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "delegate", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numTokens\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenOwner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numTokens\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numTokens\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/daiToken.sol\":\"Dai\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/daiToken.sol\":{\"keccak256\":\"0x084252af6240f53a89a1f2f88f146064aac656d561b06112defe6de3a37e9d63\",\"urls\":[\"bzz-raw://3ea38d67800094ddb020b7526e0a8bbc78f7626df9418998a6264b58070d7804\",\"dweb:/ipfs/QmTU6puHt3DGhEJEVt1pndZWBNbFQVpUi4c3fy6hKEPqsY\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506305f5e1006002819055506002546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fd2806100706000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610d88565b60405180910390f35b6100db60048036038101906100d69190610c8b565b610260565b6040516100e89190610d6d565b60405180910390f35b6100f9610352565b6040516101069190610dca565b60405180910390f35b61012960048036038101906101249190610c3c565b61035c565b6040516101369190610d6d565b60405180910390f35b6101476106d7565b6040516101549190610de5565b60405180910390f35b61017760048036038101906101729190610c8b565b6106dc565b005b610193600480360381019061018e9190610bd7565b610824565b6040516101a09190610dca565b60405180910390f35b6101b161086c565b6040516101be9190610d88565b60405180910390f35b6101e160048036038101906101dc9190610c8b565b6108a5565b6040516101ee9190610d6d565b60405180910390f35b610211600480360381019061020c9190610c00565b610a87565b60405161021e9190610dca565b60405180910390f35b6040518060400160405280600381526020017f446169000000000000000000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103409190610dca565b60405180910390a36001905092915050565b6000600254905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156103a957600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561043257600080fd5b610483826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061055482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610625826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c49190610dca565b60405180910390a3600190509392505050565b600381565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390610daa565b60405180910390fd5b806002600082825461075e9190610e1c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107b39190610e1c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108189190610dca565b60405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600381526020017f444149000000000000000000000000000000000000000000000000000000000081525081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156108f257600080fd5b610943826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109d6826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a759190610dca565b60405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115610b47577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183610b539190610e72565b905092915050565b6000808284610b6a9190610e1c565b905083811015610ba3577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8091505092915050565b600081359050610bbc81610f6e565b92915050565b600081359050610bd181610f85565b92915050565b600060208284031215610be957600080fd5b6000610bf784828501610bad565b91505092915050565b60008060408385031215610c1357600080fd5b6000610c2185828601610bad565b9250506020610c3285828601610bad565b9150509250929050565b600080600060608486031215610c5157600080fd5b6000610c5f86828701610bad565b9350506020610c7086828701610bad565b9250506040610c8186828701610bc2565b9150509250925092565b60008060408385031215610c9e57600080fd5b6000610cac85828601610bad565b9250506020610cbd85828601610bc2565b9150509250929050565b610cd081610eb8565b82525050565b6000610ce182610e00565b610ceb8185610e0b565b9350610cfb818560208601610efb565b610d0481610f5d565b840191505092915050565b6000610d1c601f83610e0b565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b610d5881610ee4565b82525050565b610d6781610eee565b82525050565b6000602082019050610d826000830184610cc7565b92915050565b60006020820190508181036000830152610da28184610cd6565b905092915050565b60006020820190508181036000830152610dc381610d0f565b9050919050565b6000602082019050610ddf6000830184610d4f565b92915050565b6000602082019050610dfa6000830184610d5e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e2782610ee4565b9150610e3283610ee4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e6757610e66610f2e565b5b828201905092915050565b6000610e7d82610ee4565b9150610e8883610ee4565b925082821015610e9b57610e9a610f2e565b5b828203905092915050565b6000610eb182610ec4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f19578082015181840152602081019050610efe565b83811115610f28576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b610f7781610ea6565b8114610f8257600080fd5b50565b610f8e81610ee4565b8114610f9957600080fd5b5056fea2646970667358221220f61f7dc928c93460fcebb59bf771142a6f3d3a4c2395beeb87a002820ce816be64736f6c63430008000033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610d88565b60405180910390f35b6100db60048036038101906100d69190610c8b565b610260565b6040516100e89190610d6d565b60405180910390f35b6100f9610352565b6040516101069190610dca565b60405180910390f35b61012960048036038101906101249190610c3c565b61035c565b6040516101369190610d6d565b60405180910390f35b6101476106d7565b6040516101549190610de5565b60405180910390f35b61017760048036038101906101729190610c8b565b6106dc565b005b610193600480360381019061018e9190610bd7565b610824565b6040516101a09190610dca565b60405180910390f35b6101b161086c565b6040516101be9190610d88565b60405180910390f35b6101e160048036038101906101dc9190610c8b565b6108a5565b6040516101ee9190610d6d565b60405180910390f35b610211600480360381019061020c9190610c00565b610a87565b60405161021e9190610dca565b60405180910390f35b6040518060400160405280600381526020017f446169000000000000000000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103409190610dca565b60405180910390a36001905092915050565b6000600254905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156103a957600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561043257600080fd5b610483826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061055482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610625826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c49190610dca565b60405180910390a3600190509392505050565b600381565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390610daa565b60405180910390fd5b806002600082825461075e9190610e1c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107b39190610e1c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108189190610dca565b60405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600381526020017f444149000000000000000000000000000000000000000000000000000000000081525081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156108f257600080fd5b610943826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109d6826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a759190610dca565b60405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115610b47577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183610b539190610e72565b905092915050565b6000808284610b6a9190610e1c565b905083811015610ba3577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8091505092915050565b600081359050610bbc81610f6e565b92915050565b600081359050610bd181610f85565b92915050565b600060208284031215610be957600080fd5b6000610bf784828501610bad565b91505092915050565b60008060408385031215610c1357600080fd5b6000610c2185828601610bad565b9250506020610c3285828601610bad565b9150509250929050565b600080600060608486031215610c5157600080fd5b6000610c5f86828701610bad565b9350506020610c7086828701610bad565b9250506040610c8186828701610bc2565b9150509250925092565b60008060408385031215610c9e57600080fd5b6000610cac85828601610bad565b9250506020610cbd85828601610bc2565b9150509250929050565b610cd081610eb8565b82525050565b6000610ce182610e00565b610ceb8185610e0b565b9350610cfb818560208601610efb565b610d0481610f5d565b840191505092915050565b6000610d1c601f83610e0b565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b610d5881610ee4565b82525050565b610d6781610eee565b82525050565b6000602082019050610d826000830184610cc7565b92915050565b60006020820190508181036000830152610da28184610cd6565b905092915050565b60006020820190508181036000830152610dc381610d0f565b9050919050565b6000602082019050610ddf6000830184610d4f565b92915050565b6000602082019050610dfa6000830184610d5e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e2782610ee4565b9150610e3283610ee4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e6757610e66610f2e565b5b828201905092915050565b6000610e7d82610ee4565b9150610e8883610ee4565b925082821015610e9b57610e9a610f2e565b5b828203905092915050565b6000610eb182610ec4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f19578082015181840152602081019050610efe565b83811115610f28576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b610f7781610ea6565b8114610f8257600080fd5b50565b610f8e81610ee4565b8114610f9957600080fd5b5056fea2646970667358221220f61f7dc928c93460fcebb59bf771142a6f3d3a4c2395beeb87a002820ce816be64736f6c63430008000033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:6572:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:8", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:8" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:8" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:8" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:8" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "107:26:8" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:8" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:8" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:8", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:8", + "type": "" + } + ], + "src": "7:139:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "204:87:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "214:29:8", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "236:6:8" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "223:12:8" + }, + "nodeType": "YulFunctionCall", + "src": "223:20:8" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "214:5:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "279:5:8" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "252:26:8" + }, + "nodeType": "YulFunctionCall", + "src": "252:33:8" + }, + "nodeType": "YulExpressionStatement", + "src": "252:33:8" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "182:6:8", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "190:3:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "198:5:8", + "type": "" + } + ], + "src": "152:139:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "363:196:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "409:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "418:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "421:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "411:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "411:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "411:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "384:7:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "393:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "380:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "380:23:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "405:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "376:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "376:32:8" + }, + "nodeType": "YulIf", + "src": "373:2:8" + }, + { + "nodeType": "YulBlock", + "src": "435:117:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "450:15:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:8", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "454:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "479:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "514:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "525:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "510:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "510:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "534:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "489:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "489:53:8" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "479:6:8" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "333:9:8", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "344:7:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "356:6:8", + "type": "" + } + ], + "src": "297:262:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "648:324:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "694:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "703:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "706:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "696:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "696:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "696:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "669:7:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "678:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "665:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "665:23:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "690:2:8", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "661:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "661:32:8" + }, + "nodeType": "YulIf", + "src": "658:2:8" + }, + { + "nodeType": "YulBlock", + "src": "720:117:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "735:15:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "749:1:8", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "739:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "764:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "799:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "810:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "795:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "795:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "819:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "774:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "774:53:8" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "764:6:8" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "847:118:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "862:16:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "876:2:8", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "866:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "892:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "927:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "938:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "923:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "923:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "947:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "902:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "902:53:8" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "892:6:8" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "610:9:8", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "621:7:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "633:6:8", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "641:6:8", + "type": "" + } + ], + "src": "565:407:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1078:452:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1124:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1133:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1136:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1126:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "1126:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "1126:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1099:7:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1108:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1095:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1095:23:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1120:2:8", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1091:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1091:32:8" + }, + "nodeType": "YulIf", + "src": "1088:2:8" + }, + { + "nodeType": "YulBlock", + "src": "1150:117:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1165:15:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1179:1:8", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1169:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1194:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1229:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1240:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1225:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1225:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1249:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1204:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1204:53:8" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1194:6:8" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1277:118:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1292:16:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1306:2:8", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1296:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1322:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1357:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1368:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1353:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1353:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1377:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1332:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1332:53:8" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1322:6:8" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1405:118:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1420:16:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1434:2:8", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1424:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1450:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1485:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1496:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1481:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1481:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1505:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1460:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1460:53:8" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1450:6:8" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1032:9:8", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1043:7:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1055:6:8", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1063:6:8", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1071:6:8", + "type": "" + } + ], + "src": "978:552:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1619:324:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1665:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1674:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1677:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1667:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "1667:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "1667:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1640:7:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1649:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1636:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1636:23:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1661:2:8", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1632:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1632:32:8" + }, + "nodeType": "YulIf", + "src": "1629:2:8" + }, + { + "nodeType": "YulBlock", + "src": "1691:117:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1706:15:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1720:1:8", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1710:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1735:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1770:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1781:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1766:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1766:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1790:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1745:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1745:53:8" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1735:6:8" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1818:118:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1833:16:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1847:2:8", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1837:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1863:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1898:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1909:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1894:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1894:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1918:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1873:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1873:53:8" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1863:6:8" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1581:9:8", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1592:7:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1604:6:8", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1612:6:8", + "type": "" + } + ], + "src": "1536:407:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2008:50:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2025:3:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2045:5:8" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "2030:14:8" + }, + "nodeType": "YulFunctionCall", + "src": "2030:21:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2018:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2018:34:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2018:34:8" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1996:5:8", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2003:3:8", + "type": "" + } + ], + "src": "1949:109:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2156:272:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2166:53:8", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2213:5:8" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2180:32:8" + }, + "nodeType": "YulFunctionCall", + "src": "2180:39:8" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2170:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2228:78:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2294:3:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2299:6:8" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2235:58:8" + }, + "nodeType": "YulFunctionCall", + "src": "2235:71:8" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2228:3:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2341:5:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2348:4:8", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2337:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2337:16:8" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2355:3:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2360:6:8" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "2315:21:8" + }, + "nodeType": "YulFunctionCall", + "src": "2315:52:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2315:52:8" + }, + { + "nodeType": "YulAssignment", + "src": "2376:46:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2387:3:8" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2414:6:8" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2392:21:8" + }, + "nodeType": "YulFunctionCall", + "src": "2392:29:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2383:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2383:39:8" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2376:3:8" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2137:5:8", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2144:3:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2152:3:8", + "type": "" + } + ], + "src": "2064:364:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2580:183:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2590:74:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2656:3:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2661:2:8", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2597:58:8" + }, + "nodeType": "YulFunctionCall", + "src": "2597:67:8" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2590:3:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2685:3:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2690:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2681:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2681:11:8" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "2694:33:8", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2674:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2674:54:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2674:54:8" + }, + { + "nodeType": "YulAssignment", + "src": "2738:19:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2749:3:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2754:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2745:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2745:12:8" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2738:3:8" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2568:3:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2576:3:8", + "type": "" + } + ], + "src": "2434:329:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2834:53:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2851:3:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2874:5:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2856:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "2856:24:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2844:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2844:37:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2844:37:8" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2822:5:8", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2829:3:8", + "type": "" + } + ], + "src": "2769:118:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2954:51:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2971:3:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2992:5:8" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "2976:15:8" + }, + "nodeType": "YulFunctionCall", + "src": "2976:22:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2964:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2964:35:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2964:35:8" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2942:5:8", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2949:3:8", + "type": "" + } + ], + "src": "2893:112:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3103:118:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3113:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3125:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3136:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3121:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3121:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3113:4:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3187:6:8" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3200:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3211:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3196:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3196:17:8" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3149:37:8" + }, + "nodeType": "YulFunctionCall", + "src": "3149:65:8" + }, + "nodeType": "YulExpressionStatement", + "src": "3149:65:8" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3075:9:8", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3087:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3098:4:8", + "type": "" + } + ], + "src": "3011:210:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3345:195:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3355:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3367:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3378:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3363:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3363:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3355:4:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3402:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3413:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3398:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3398:17:8" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3421:4:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3427:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3417:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3417:20:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3391:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "3391:47:8" + }, + "nodeType": "YulExpressionStatement", + "src": "3391:47:8" + }, + { + "nodeType": "YulAssignment", + "src": "3447:86:8", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3519:6:8" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3528:4:8" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3455:63:8" + }, + "nodeType": "YulFunctionCall", + "src": "3455:78:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3447:4:8" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3317:9:8", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3329:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3340:4:8", + "type": "" + } + ], + "src": "3227:313:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3717:248:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3727:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3739:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3750:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3735:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3735:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3727:4:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3774:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3785:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3770:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3770:17:8" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3793:4:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3799:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3789:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3789:20:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3763:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "3763:47:8" + }, + "nodeType": "YulExpressionStatement", + "src": "3763:47:8" + }, + { + "nodeType": "YulAssignment", + "src": "3819:139:8", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3953:4:8" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3827:124:8" + }, + "nodeType": "YulFunctionCall", + "src": "3827:131:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3819:4:8" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3697:9:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3712:4:8", + "type": "" + } + ], + "src": "3546:419:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4069:124:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4079:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4091:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4102:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4087:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4087:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4079:4:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4159:6:8" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4172:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4183:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4168:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4168:17:8" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "4115:43:8" + }, + "nodeType": "YulFunctionCall", + "src": "4115:71:8" + }, + "nodeType": "YulExpressionStatement", + "src": "4115:71:8" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4041:9:8", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4053:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4064:4:8", + "type": "" + } + ], + "src": "3971:222:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4293:120:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4303:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4315:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4326:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4311:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4311:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4303:4:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4379:6:8" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4392:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4403:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4388:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4388:17:8" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4339:39:8" + }, + "nodeType": "YulFunctionCall", + "src": "4339:67:8" + }, + "nodeType": "YulExpressionStatement", + "src": "4339:67:8" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4265:9:8", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4277:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4288:4:8", + "type": "" + } + ], + "src": "4199:214:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4478:40:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4489:22:8", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4505:5:8" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4499:5:8" + }, + "nodeType": "YulFunctionCall", + "src": "4499:12:8" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4489:6:8" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4461:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4471:6:8", + "type": "" + } + ], + "src": "4419:99:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4620:73:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4637:3:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4642:6:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4630:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "4630:19:8" + }, + "nodeType": "YulExpressionStatement", + "src": "4630:19:8" + }, + { + "nodeType": "YulAssignment", + "src": "4658:29:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4677:3:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4682:4:8", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4673:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4673:14:8" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4658:11:8" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4592:3:8", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4597:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4608:11:8", + "type": "" + } + ], + "src": "4524:169:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4743:261:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4753:25:8", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4776:1:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4758:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "4758:20:8" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4753:1:8" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4787:25:8", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4810:1:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4792:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "4792:20:8" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4787:1:8" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4950:22:8", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "4952:16:8" + }, + "nodeType": "YulFunctionCall", + "src": "4952:18:8" + }, + "nodeType": "YulExpressionStatement", + "src": "4952:18:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4871:1:8" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4878:66:8", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4946:1:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4874:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4874:74:8" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4868:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "4868:81:8" + }, + "nodeType": "YulIf", + "src": "4865:2:8" + }, + { + "nodeType": "YulAssignment", + "src": "4982:16:8", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4993:1:8" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4996:1:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4989:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4989:9:8" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "4982:3:8" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "4730:1:8", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "4733:1:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "4739:3:8", + "type": "" + } + ], + "src": "4699:305:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5055:146:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5065:25:8", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5088:1:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5070:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "5070:20:8" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5065:1:8" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5099:25:8", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5122:1:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5104:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "5104:20:8" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5099:1:8" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5146:22:8", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "5148:16:8" + }, + "nodeType": "YulFunctionCall", + "src": "5148:18:8" + }, + "nodeType": "YulExpressionStatement", + "src": "5148:18:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5140:1:8" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5143:1:8" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5137:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "5137:8:8" + }, + "nodeType": "YulIf", + "src": "5134:2:8" + }, + { + "nodeType": "YulAssignment", + "src": "5178:17:8", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5190:1:8" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5193:1:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5186:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5186:9:8" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "5178:4:8" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "5041:1:8", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "5044:1:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "5050:4:8", + "type": "" + } + ], + "src": "5010:191:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5252:51:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5262:35:8", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5291:5:8" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5273:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "5273:24:8" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5262:7:8" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5234:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5244:7:8", + "type": "" + } + ], + "src": "5207:96:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5351:48:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5361:32:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5386:5:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5379:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "5379:13:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5372:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "5372:21:8" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5361:7:8" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5333:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5343:7:8", + "type": "" + } + ], + "src": "5309:90:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5450:81:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5460:65:8", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5475:5:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5482:42:8", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5471:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5471:54:8" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5460:7:8" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5432:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5442:7:8", + "type": "" + } + ], + "src": "5405:126:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5582:32:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5592:16:8", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5603:5:8" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5592:7:8" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5564:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5574:7:8", + "type": "" + } + ], + "src": "5537:77:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5663:43:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5673:27:8", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5688:5:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5695:4:8", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5684:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5684:16:8" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5673:7:8" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5645:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5655:7:8", + "type": "" + } + ], + "src": "5620:86:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5761:258:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5771:10:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5780:1:8", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5775:1:8", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5840:63:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5865:3:8" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5870:1:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5861:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5861:11:8" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5884:3:8" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5889:1:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5880:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5880:11:8" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5874:5:8" + }, + "nodeType": "YulFunctionCall", + "src": "5874:18:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5854:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "5854:39:8" + }, + "nodeType": "YulExpressionStatement", + "src": "5854:39:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5801:1:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5804:6:8" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5798:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "5798:13:8" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5812:19:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5814:15:8", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5823:1:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5826:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5819:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5819:10:8" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5814:1:8" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5794:3:8", + "statements": [] + }, + "src": "5790:113:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5937:76:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5987:3:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5992:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5983:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5983:16:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6001:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5976:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "5976:27:8" + }, + "nodeType": "YulExpressionStatement", + "src": "5976:27:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5918:1:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5921:6:8" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5915:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "5915:13:8" + }, + "nodeType": "YulIf", + "src": "5912:2:8" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "5743:3:8", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "5748:3:8", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5753:6:8", + "type": "" + } + ], + "src": "5712:307:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6053:152:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6070:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6073:77:8", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6063:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6063:88:8" + }, + "nodeType": "YulExpressionStatement", + "src": "6063:88:8" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6167:1:8", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6170:4:8", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6160:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6160:15:8" + }, + "nodeType": "YulExpressionStatement", + "src": "6160:15:8" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6191:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6194:4:8", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6184:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6184:15:8" + }, + "nodeType": "YulExpressionStatement", + "src": "6184:15:8" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6025:180:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6259:54:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6269:38:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6287:5:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6294:2:8", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6283:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "6283:14:8" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6303:2:8", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6299:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "6299:7:8" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6279:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "6279:28:8" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6269:6:8" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6242:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6252:6:8", + "type": "" + } + ], + "src": "6211:102:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6362:79:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6419:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6428:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6431:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6421:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6421:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "6421:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6385:5:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6410:5:8" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6392:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "6392:24:8" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6382:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "6382:35:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6375:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6375:43:8" + }, + "nodeType": "YulIf", + "src": "6372:2:8" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6355:5:8", + "type": "" + } + ], + "src": "6319:122:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6490:79:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6547:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6556:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6559:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6549:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6549:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "6549:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6513:5:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6538:5:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6520:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "6520:24:8" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6510:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "6510:35:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6503:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6503:43:8" + }, + "nodeType": "YulIf", + "src": "6500:2:8" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6483:5:8", + "type": "" + } + ], + "src": "6447:122:8" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\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 abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\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 function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\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 function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\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_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n\n mstore(add(pos, 0), \"ERC20: mint to the zero address\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\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 validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 8, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "545:2294:0:-:0;;;1030:91;;;;;;;;;;1064:9;1049:12;:24;;;;1102:12;;1079:8;:20;1088:10;1079:20;;;;;;;;;;;;;;;:35;;;;545:2294;;;;;;", + "deployedSourceMap": "545:2294:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1716:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1127:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2357:480;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;659:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2084:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1227:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;616:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1356:354;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1942:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;575:35;;;;;;;;;;;;;;;;;;;:::o;1716:220::-;1795:4;1843:9;1811:7;:19;1819:10;1811:19;;;;;;;;;;;;;;;:29;1831:8;1811:29;;;;;;;;;;;;;;;:41;;;;1888:8;1867:41;;1876:10;1867:41;;;1898:9;1867:41;;;;;;:::i;:::-;;;;;;;;1925:4;1918:11;;1716:220;;;;:::o;1127:94::-;1180:7;1202:12;;1195:19;;1127:94;:::o;2357:480::-;2453:4;2490:8;:15;2499:5;2490:15;;;;;;;;;;;;;;;;2477:9;:28;;2469:37;;;;;;2537:7;:14;2545:5;2537:14;;;;;;;;;;;;;;;:26;2552:10;2537:26;;;;;;;;;;;;;;;;2524:9;:39;;2516:48;;;;;;2593:30;2613:9;2593:8;:15;2602:5;2593:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;2575:8;:15;2584:5;2575:15;;;;;;;;;;;;;;;:48;;;;2662:41;2693:9;2662:7;:14;2670:5;2662:14;;;;;;;;;;;;;;;:26;2677:10;2662:26;;;;;;;;;;;;;;;;:30;;:41;;;;:::i;:::-;2633:7;:14;2641:5;2633:14;;;;;;;;;;;;;;;:26;2648:10;2633:26;;;;;;;;;;;;;;;:70;;;;2731:30;2751:9;2731:8;:15;2740:5;2731:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;2713:8;:15;2722:5;2713:15;;;;;;;;;;;;;;;:48;;;;2792:5;2776:33;;2785:5;2776:33;;;2799:9;2776:33;;;;;;:::i;:::-;;;;;;;;2826:4;2819:11;;2357:480;;;;;:::o;659:34::-;692:1;659:34;:::o;2084:267::-;2175:1;2156:21;;:7;:21;;;;2148:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2240:6;2224:12;;:22;;;;;;;:::i;:::-;;;;;;;;2277:6;2256:8;:17;2265:7;2256:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;2319:7;2298:37;;2315:1;2298:37;;;2328:6;2298:37;;;;;;:::i;:::-;;;;;;;;2084:267;;:::o;1227:122::-;1296:7;1322:8;:20;1331:10;1322:20;;;;;;;;;;;;;;;;1315:27;;1227:122;;;:::o;616:37::-;;;;;;;;;;;;;;;;;;;:::o;1356:354::-;1436:4;1473:8;:20;1482:10;1473:20;;;;;;;;;;;;;;;;1460:9;:33;;1452:42;;;;;;1527:35;1552:9;1527:8;:20;1536:10;1527:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;1504:8;:20;1513:10;1504:20;;;;;;;;;;;;;;;:58;;;;1593:33;1616:9;1593:8;:18;1602:8;1593:18;;;;;;;;;;;;;;;;:22;;:33;;;;:::i;:::-;1572:8;:18;1581:8;1572:18;;;;;;;;;;;;;;;:54;;;;1662:8;1641:41;;1650:10;1641:41;;;1672:9;1641:41;;;;;;:::i;:::-;;;;;;;;1699:4;1692:11;;1356:354;;;;:::o;1942:136::-;2024:4;2047:7;:14;2055:5;2047:14;;;;;;;;;;;;;;;:24;2062:8;2047:24;;;;;;;;;;;;;;;;2040:31;;1942:136;;;;:::o;2864:116::-;2922:7;2951:1;2946;:6;;2939:14;;;;;;;;;;;;2972:1;2968;:5;;;;:::i;:::-;2961:12;;2864:116;;;;:::o;2986:137::-;3044:7;3061:9;3077:1;3073;:5;;;;:::i;:::-;3061:17;;3098:1;3093;:6;;3086:14;;;;;;;;;;;;3115:1;3108:8;;;2986:137;;;;:::o;7:139:8:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:329::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2694:33;2690:1;2685:3;2681:11;2674:54;2754:2;2749:3;2745:12;2738:19;;2580:183;;;:::o;2769:118::-;2856:24;2874:5;2856:24;:::i;:::-;2851:3;2844:37;2834:53;;:::o;2893:112::-;2976:22;2992:5;2976:22;:::i;:::-;2971:3;2964:35;2954:51;;:::o;3011:210::-;;3136:2;3125:9;3121:18;3113:26;;3149:65;3211:1;3200:9;3196:17;3187:6;3149:65;:::i;:::-;3103:118;;;;:::o;3227:313::-;;3378:2;3367:9;3363:18;3355:26;;3427:9;3421:4;3417:20;3413:1;3402:9;3398:17;3391:47;3455:78;3528:4;3519:6;3455:78;:::i;:::-;3447:86;;3345:195;;;;:::o;3546:419::-;;3750:2;3739:9;3735:18;3727:26;;3799:9;3793:4;3789:20;3785:1;3774:9;3770:17;3763:47;3827:131;3953:4;3827:131;:::i;:::-;3819:139;;3717:248;;;:::o;3971:222::-;;4102:2;4091:9;4087:18;4079:26;;4115:71;4183:1;4172:9;4168:17;4159:6;4115:71;:::i;:::-;4069:124;;;;:::o;4199:214::-;;4326:2;4315:9;4311:18;4303:26;;4339:67;4403:1;4392:9;4388:17;4379:6;4339:67;:::i;:::-;4293:120;;;;:::o;4419:99::-;;4505:5;4499:12;4489:22;;4478:40;;;:::o;4524:169::-;;4642:6;4637:3;4630:19;4682:4;4677:3;4673:14;4658:29;;4620:73;;;;:::o;4699:305::-;;4758:20;4776:1;4758:20;:::i;:::-;4753:25;;4792:20;4810:1;4792:20;:::i;:::-;4787:25;;4946:1;4878:66;4874:74;4871:1;4868:81;4865:2;;;4952:18;;:::i;:::-;4865:2;4996:1;4993;4989:9;4982:16;;4743:261;;;;:::o;5010:191::-;;5070:20;5088:1;5070:20;:::i;:::-;5065:25;;5104:20;5122:1;5104:20;:::i;:::-;5099:25;;5143:1;5140;5137:8;5134:2;;;5148:18;;:::i;:::-;5134:2;5193:1;5190;5186:9;5178:17;;5055:146;;;;:::o;5207:96::-;;5273:24;5291:5;5273:24;:::i;:::-;5262:35;;5252:51;;;:::o;5309:90::-;;5386:5;5379:13;5372:21;5361:32;;5351:48;;;:::o;5405:126::-;;5482:42;5475:5;5471:54;5460:65;;5450:81;;;:::o;5537:77::-;;5603:5;5592:16;;5582:32;;;:::o;5620:86::-;;5695:4;5688:5;5684:16;5673:27;;5663:43;;;:::o;5712:307::-;5780:1;5790:113;5804:6;5801:1;5798:13;5790:113;;;5889:1;5884:3;5880:11;5874:18;5870:1;5865:3;5861:11;5854:39;5826:2;5823:1;5819:10;5814:15;;5790:113;;;5921:6;5918:1;5915:13;5912:2;;;6001:1;5992:6;5987:3;5983:16;5976:27;5912:2;5761:258;;;;:::o;6025:180::-;6073:77;6070:1;6063:88;6170:4;6167:1;6160:15;6194:4;6191:1;6184:15;6211:102;;6303:2;6299:7;6294:2;6287:5;6283:14;6279:28;6269:38;;6259:54;;;:::o;6319:122::-;6392:24;6410:5;6392:24;:::i;:::-;6385:5;6382:35;6372:2;;6431:1;6428;6421:12;6372:2;6362:79;:::o;6447:122::-;6520:24;6538:5;6520:24;:::i;:::-;6513:5;6510:35;6500:2;;6559:1;6556;6549:12;6500:2;6490:79;:::o", + "source": "pragma solidity >=0.8.0 <0.9.0;\n\ninterface IERC20 {\n\n function totalSupply() external view returns (uint256);\n function balanceOf(address account) external view returns (uint256);\n function allowance(address owner, address spender) external view returns (uint256);\n\n function transfer(address recipient, uint256 amount) external returns (bool);\n function approve(address spender, uint256 amount) external returns (bool);\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n }\n\n\ncontract Dai is IERC20 {\n\n string public constant name = \"Dai\";\n string public constant symbol = \"DAI\";\n uint8 public constant decimals = 3;\n\n\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n event Transfer(address indexed from, address indexed to, uint tokens);\n\n\n mapping(address => uint256) balances;\n\n mapping(address => mapping (address => uint256)) allowed;\n\n uint256 totalSupply_;\n\n using SafeMath for uint256;\n\n\n constructor(){\n totalSupply_ = 100000000;\n balances[msg.sender] = totalSupply_;\n }\n\n function totalSupply() public override view returns (uint256) {\n return totalSupply_;\n }\n\n function balanceOf(address tokenOwner) public override view returns (uint256) {\n return balances[tokenOwner];\n }\n\n\n function transfer(address receiver, uint256 numTokens) public override returns (bool) {\n require(numTokens <= balances[msg.sender]);\n balances[msg.sender] = balances[msg.sender].sub(numTokens);\n balances[receiver] = balances[receiver].add(numTokens);\n emit Transfer(msg.sender, receiver, numTokens);\n return true;\n }\n\n function approve(address delegate, uint256 numTokens) public override returns (bool) {\n allowed[msg.sender][delegate] = numTokens;\n emit Approval(msg.sender, delegate, numTokens);\n return true;\n }\n\n function allowance(address owner, address delegate) public override view returns (uint) {\n return allowed[owner][delegate];\n }\n\n function mint(address account, uint256 amount) public {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n totalSupply_ += amount;\n balances[account] += amount;\n emit Transfer(address(0), account, amount);\n\n \n }\n\n function transferFrom(address owner, address buyer, uint256 numTokens) public override returns (bool) {\n require(numTokens <= balances[owner]);\n require(numTokens <= allowed[owner][msg.sender]);\n\n balances[owner] = balances[owner].sub(numTokens);\n allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens);\n balances[buyer] = balances[buyer].add(numTokens);\n emit Transfer(owner, buyer, numTokens);\n return true;\n }\n}\n\nlibrary SafeMath {\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n assert(c >= a);\n return c;\n }\n}\n", + "sourcePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/daiToken.sol", + "ast": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/daiToken.sol", + "exportedSymbols": { + "Dai": [ + 347 + ], + "IERC20": [ + 52 + ], + "SafeMath": [ + 392 + ] + }, + "id": 393, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:31:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 52, + "linearizedBaseContracts": [ + 52 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 6, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "77:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6, + "src": "103:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "103:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "102:9:0" + }, + "scope": 52, + "src": "57:55:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 13, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "136:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "136:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "135:17:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "176:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "176:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "175:9:0" + }, + "scope": 52, + "src": "117:68:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 22, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "209:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "224:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "224:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "208:32:0" + }, + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "264:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "264:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "263:9:0" + }, + "scope": 52, + "src": "190:83:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 31, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "297:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "316:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "296:35:0" + }, + "returnParameters": { + "id": 30, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "350:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "350:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "349:6:0" + }, + "scope": 52, + "src": "279:77:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 40, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "378:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "378:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "395:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "377:33:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "429:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "429:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "428:6:0" + }, + "scope": 52, + "src": "361:74:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 51, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "462:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 41, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "462:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "478:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "478:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 46, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "497:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "461:51:0" + }, + "returnParameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "531:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 48, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "531:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "530:6:0" + }, + "scope": 52, + "src": "440:97:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 393, + "src": "33:509:0" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 53, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 52, + "src": "561:6:0" + }, + "id": 54, + "nodeType": "InheritanceSpecifier", + "src": "561:6:0" + } + ], + "contractDependencies": [ + 52 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 347, + "linearizedBaseContracts": [ + 347, + 52 + ], + "name": "Dai", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 57, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "575:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 55, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "575:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "446169", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "605:5:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a05ee6376d3085dbf925b5ed7d2383a1f979799db0a7a1be68bfb107c5e96d19", + "typeString": "literal_string \"Dai\"" + }, + "value": "Dai" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 60, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "616:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 58, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "616:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "444149", + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "648:5:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", + "typeString": "literal_string \"DAI\"" + }, + "value": "DAI" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 63, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "659:34:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 61, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "659:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "33", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "692:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 71, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "indexed": true, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "716:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 64, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "716:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "744:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "744:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "769:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 68, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "769:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "715:66:0" + }, + "src": "701:81:0" + }, + { + "anonymous": false, + "id": 79, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 78, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 73, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "802:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 72, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "802:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "824:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 74, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "824:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 77, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "844:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "844:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "801:55:0" + }, + "src": "787:70:0" + }, + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "864:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 82, + "keyType": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "872:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "864:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 81, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "883:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "907:56:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 88, + "keyType": { + "id": 84, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "915:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "907:48:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 87, + "keyType": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "935:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "926:28:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "946:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "mutability": "mutable", + "name": "totalSupply_", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "970:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "970:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "id": 94, + "libraryName": { + "id": 92, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 392, + "src": "1003:8:0" + }, + "nodeType": "UsingForDirective", + "src": "997:27:0", + "typeName": { + "id": 93, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 108, + "nodeType": "Block", + "src": "1043:78:0", + "statements": [ + { + "expression": { + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 97, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "1049:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "313030303030303030", + "id": 98, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1064:9:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "100000000" + }, + "src": "1049:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 100, + "nodeType": "ExpressionStatement", + "src": "1049:24:0" + }, + { + "expression": { + "id": 106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 101, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1079:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 104, + "indexExpression": { + "expression": { + "id": 102, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1088:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1088:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1079:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 105, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "1102:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1079:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 107, + "nodeType": "ExpressionStatement", + "src": "1079:35:0" + } + ] + }, + "id": 109, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 95, + "nodeType": "ParameterList", + "parameters": [], + "src": "1041:2:0" + }, + "returnParameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [], + "src": "1043:0:0" + }, + "scope": 347, + "src": "1030:91:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 6 + ], + "body": { + "id": 117, + "nodeType": "Block", + "src": "1189:32:0", + "statements": [ + { + "expression": { + "id": 115, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "1202:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 114, + "id": 116, + "nodeType": "Return", + "src": "1195:19:0" + } + ] + }, + "functionSelector": "18160ddd", + "id": 118, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 111, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1157:8:0" + }, + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [], + "src": "1147:2:0" + }, + "returnParameters": { + "id": 114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 113, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "1180:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1180:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1179:9:0" + }, + "scope": 347, + "src": "1127:94:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 13 + ], + "body": { + "id": 130, + "nodeType": "Block", + "src": "1305:44:0", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 126, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1322:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 128, + "indexExpression": { + "id": 127, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 120, + "src": "1331:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1322:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 125, + "id": 129, + "nodeType": "Return", + "src": "1315:27:0" + } + ] + }, + "functionSelector": "70a08231", + "id": 131, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 122, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1273:8:0" + }, + "parameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 131, + "src": "1246:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 119, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1246:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1245:20:0" + }, + "returnParameters": { + "id": 125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 131, + "src": "1296:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1296:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1295:9:0" + }, + "scope": 347, + "src": "1227:122:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 31 + ], + "body": { + "id": 183, + "nodeType": "Block", + "src": "1442:268:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 142, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 135, + "src": "1460:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 143, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1473:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 146, + "indexExpression": { + "expression": { + "id": 144, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1482:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1482:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1473:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1460:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 141, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1452:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1452:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 149, + "nodeType": "ExpressionStatement", + "src": "1452:42:0" + }, + { + "expression": { + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 150, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1504:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 153, + "indexExpression": { + "expression": { + "id": 151, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1513:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1513:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1504:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 159, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 135, + "src": "1552:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 154, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1527:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 157, + "indexExpression": { + "expression": { + "id": 155, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1536:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1536:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1527:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "1527:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1527:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1504:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 162, + "nodeType": "ExpressionStatement", + "src": "1504:58:0" + }, + { + "expression": { + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1572:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 165, + "indexExpression": { + "id": 164, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "1581:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1572:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 170, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 135, + "src": "1616:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 166, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1593:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 168, + "indexExpression": { + "id": 167, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "1602:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1593:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 391, + "src": "1593:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1593:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1572:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 173, + "nodeType": "ExpressionStatement", + "src": "1572:54:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 175, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1650:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1650:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 177, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "1662:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 178, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 135, + "src": "1672:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 174, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "1641:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1641:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 180, + "nodeType": "EmitStatement", + "src": "1636:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1699:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 140, + "id": 182, + "nodeType": "Return", + "src": "1692:11:0" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 184, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 137, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1418:8:0" + }, + "parameters": { + "id": 136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 184, + "src": "1374:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1374:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 135, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 184, + "src": "1392:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1392:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1373:37:0" + }, + "returnParameters": { + "id": 140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 139, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 184, + "src": "1436:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 138, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1435:6:0" + }, + "scope": 347, + "src": "1356:354:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 40 + ], + "body": { + "id": 212, + "nodeType": "Block", + "src": "1801:135:0", + "statements": [ + { + "expression": { + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 194, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "1811:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 198, + "indexExpression": { + "expression": { + "id": 195, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1819:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1819:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1811:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 199, + "indexExpression": { + "id": 197, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 186, + "src": "1831:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1811:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 200, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 188, + "src": "1843:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1811:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 202, + "nodeType": "ExpressionStatement", + "src": "1811:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 204, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1876:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1876:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 206, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 186, + "src": "1888:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 207, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 188, + "src": "1898:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 203, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1867:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1867:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 209, + "nodeType": "EmitStatement", + "src": "1862:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1925:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 193, + "id": 211, + "nodeType": "Return", + "src": "1918:11:0" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 213, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 190, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1777:8:0" + }, + "parameters": { + "id": 189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 186, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1733:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 185, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1733:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 188, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1751:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 187, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1751:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1732:37:0" + }, + "returnParameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1795:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 191, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1795:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1794:6:0" + }, + "scope": 347, + "src": "1716:220:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 22 + ], + "body": { + "id": 229, + "nodeType": "Block", + "src": "2030:48:0", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 223, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2047:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 225, + "indexExpression": { + "id": 224, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2055:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2047:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 227, + "indexExpression": { + "id": 226, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2062:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2047:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 222, + "id": 228, + "nodeType": "Return", + "src": "2040:31:0" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 219, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2001:8:0" + }, + "parameters": { + "id": 218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "1961:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1961:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "1976:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 216, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1976:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1960:33:0" + }, + "returnParameters": { + "id": 222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 221, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "2024:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 220, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2024:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2023:6:0" + }, + "scope": 347, + "src": "1942:136:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 266, + "nodeType": "Block", + "src": "2138:213:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 238, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "2156:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2175:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2167:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2167:7:0", + "typeDescriptions": {} + } + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2167:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2156:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2179:33:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 237, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2148:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2148:65:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 246, + "nodeType": "ExpressionStatement", + "src": "2148:65:0" + }, + { + "expression": { + "id": 249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 247, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "2224:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 248, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "2240:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2224:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 250, + "nodeType": "ExpressionStatement", + "src": "2224:22:0" + }, + { + "expression": { + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 251, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2256:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 253, + "indexExpression": { + "id": 252, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "2265:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2256:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 254, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "2277:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2256:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 256, + "nodeType": "ExpressionStatement", + "src": "2256:27:0" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2315:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2307:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 258, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2307:7:0", + "typeDescriptions": {} + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2307:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 262, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "2319:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 263, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "2328:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 257, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "2298:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2298:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 265, + "nodeType": "EmitStatement", + "src": "2293:42:0" + } + ] + }, + "functionSelector": "40c10f19", + "id": 267, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 232, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "2098:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2098:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 234, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "2115:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2115:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2097:33:0" + }, + "returnParameters": { + "id": 236, + "nodeType": "ParameterList", + "parameters": [], + "src": "2138:0:0" + }, + "scope": 347, + "src": "2084:267:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 51 + ], + "body": { + "id": 345, + "nodeType": "Block", + "src": "2459:378:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 280, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2477:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 281, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2490:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 283, + "indexExpression": { + "id": 282, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2499:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2490:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2477:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2469:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2469:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 286, + "nodeType": "ExpressionStatement", + "src": "2469:37:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 288, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2524:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 289, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2537:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 291, + "indexExpression": { + "id": 290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2545:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2537:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 294, + "indexExpression": { + "expression": { + "id": 292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2552:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2552:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2537:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2524:39:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 287, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2516:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2516:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 297, + "nodeType": "ExpressionStatement", + "src": "2516:48:0" + }, + { + "expression": { + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 298, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2575:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 300, + "indexExpression": { + "id": 299, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2584:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2575:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 305, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2613:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 301, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2593:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 303, + "indexExpression": { + "id": 302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2602:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2593:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "2593:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2593:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2575:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 308, + "nodeType": "ExpressionStatement", + "src": "2575:48:0" + }, + { + "expression": { + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 309, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2633:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 313, + "indexExpression": { + "id": 310, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2641:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2633:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 314, + "indexExpression": { + "expression": { + "id": 311, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2648:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2648:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2633:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 322, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2693:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 315, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2662:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 317, + "indexExpression": { + "id": 316, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2670:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2662:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 320, + "indexExpression": { + "expression": { + "id": 318, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2677:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2677:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2662:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "2662:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2662:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2633:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 325, + "nodeType": "ExpressionStatement", + "src": "2633:70:0" + }, + { + "expression": { + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 326, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2713:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 328, + "indexExpression": { + "id": 327, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "2722:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2713:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 333, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2751:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 329, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2731:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 331, + "indexExpression": { + "id": 330, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "2740:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2731:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 391, + "src": "2731:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2731:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2713:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 336, + "nodeType": "ExpressionStatement", + "src": "2713:48:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 338, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2785:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 339, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "2792:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 340, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2799:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 337, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "2776:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2776:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 342, + "nodeType": "EmitStatement", + "src": "2771:38:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2826:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 278, + "id": 344, + "nodeType": "Return", + "src": "2819:11:0" + } + ] + }, + "functionSelector": "23b872dd", + "id": 346, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 275, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2435:8:0" + }, + "parameters": { + "id": 274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "2379:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2379:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 271, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "2394:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2394:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 273, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "2409:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2409:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2378:49:0" + }, + "returnParameters": { + "id": 278, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 277, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "2453:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 276, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2453:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2452:6:0" + }, + "scope": 347, + "src": "2357:480:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 393, + "src": "545:2294:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 392, + "linearizedBaseContracts": [ + 392 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 366, + "nodeType": "Block", + "src": "2931:49:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 357, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "2946:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 358, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "2951:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2946:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 356, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "2939:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2939:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 361, + "nodeType": "ExpressionStatement", + "src": "2939:14:0" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 362, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "2968:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 363, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "2972:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2968:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 355, + "id": 365, + "nodeType": "Return", + "src": "2961:12:0" + } + ] + }, + "id": 367, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 352, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "2877:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2877:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 351, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "2888:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 350, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2888:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2876:22:0" + }, + "returnParameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 354, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "2922:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2922:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2921:9:0" + }, + "scope": 392, + "src": "2864:116:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 390, + "nodeType": "Block", + "src": "3053:70:0", + "statements": [ + { + "assignments": [ + 377 + ], + "declarations": [ + { + "constant": false, + "id": 377, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "3061:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3061:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 381, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 378, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "3073:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 379, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 371, + "src": "3077:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3073:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3061:17:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 383, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 377, + "src": "3093:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 384, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "3098:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3093:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 382, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3086:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3086:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 387, + "nodeType": "ExpressionStatement", + "src": "3086:14:0" + }, + { + "expression": { + "id": 388, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 377, + "src": "3115:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 375, + "id": 389, + "nodeType": "Return", + "src": "3108:8:0" + } + ] + }, + "id": 391, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "2999:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2999:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 371, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "3010:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3010:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2998:22:0" + }, + "returnParameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "3044:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3044:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3043:9:0" + }, + "scope": 392, + "src": "2986:137:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 393, + "src": "2841:284:0" + } + ], + "src": "0:3126:0" + }, + "legacyAST": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/daiToken.sol", + "exportedSymbols": { + "Dai": [ + 347 + ], + "IERC20": [ + 52 + ], + "SafeMath": [ + 392 + ] + }, + "id": 393, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:31:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 52, + "linearizedBaseContracts": [ + 52 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 6, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "77:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6, + "src": "103:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "103:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "102:9:0" + }, + "scope": 52, + "src": "57:55:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 13, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "136:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "136:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "135:17:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "176:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "176:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "175:9:0" + }, + "scope": 52, + "src": "117:68:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 22, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "209:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "224:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "224:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "208:32:0" + }, + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "264:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "264:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "263:9:0" + }, + "scope": 52, + "src": "190:83:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 31, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "297:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "316:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "296:35:0" + }, + "returnParameters": { + "id": 30, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "350:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "350:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "349:6:0" + }, + "scope": 52, + "src": "279:77:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 40, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "378:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "378:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "395:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "377:33:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "429:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "429:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "428:6:0" + }, + "scope": 52, + "src": "361:74:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 51, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "462:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 41, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "462:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "478:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "478:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 46, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "497:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "461:51:0" + }, + "returnParameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "531:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 48, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "531:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "530:6:0" + }, + "scope": 52, + "src": "440:97:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 393, + "src": "33:509:0" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 53, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 52, + "src": "561:6:0" + }, + "id": 54, + "nodeType": "InheritanceSpecifier", + "src": "561:6:0" + } + ], + "contractDependencies": [ + 52 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 347, + "linearizedBaseContracts": [ + 347, + 52 + ], + "name": "Dai", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 57, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "575:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 55, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "575:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "446169", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "605:5:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a05ee6376d3085dbf925b5ed7d2383a1f979799db0a7a1be68bfb107c5e96d19", + "typeString": "literal_string \"Dai\"" + }, + "value": "Dai" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 60, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "616:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 58, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "616:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "444149", + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "648:5:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", + "typeString": "literal_string \"DAI\"" + }, + "value": "DAI" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 63, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "659:34:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 61, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "659:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "33", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "692:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 71, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "indexed": true, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "716:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 64, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "716:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "744:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "744:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "769:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 68, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "769:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "715:66:0" + }, + "src": "701:81:0" + }, + { + "anonymous": false, + "id": 79, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 78, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 73, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "802:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 72, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "802:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "824:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 74, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "824:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 77, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "844:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "844:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "801:55:0" + }, + "src": "787:70:0" + }, + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "864:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 82, + "keyType": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "872:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "864:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 81, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "883:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "907:56:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 88, + "keyType": { + "id": 84, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "915:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "907:48:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 87, + "keyType": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "935:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "926:28:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "946:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "mutability": "mutable", + "name": "totalSupply_", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "970:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "970:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "id": 94, + "libraryName": { + "id": 92, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 392, + "src": "1003:8:0" + }, + "nodeType": "UsingForDirective", + "src": "997:27:0", + "typeName": { + "id": 93, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 108, + "nodeType": "Block", + "src": "1043:78:0", + "statements": [ + { + "expression": { + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 97, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "1049:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "313030303030303030", + "id": 98, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1064:9:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "100000000" + }, + "src": "1049:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 100, + "nodeType": "ExpressionStatement", + "src": "1049:24:0" + }, + { + "expression": { + "id": 106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 101, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1079:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 104, + "indexExpression": { + "expression": { + "id": 102, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1088:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1088:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1079:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 105, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "1102:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1079:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 107, + "nodeType": "ExpressionStatement", + "src": "1079:35:0" + } + ] + }, + "id": 109, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 95, + "nodeType": "ParameterList", + "parameters": [], + "src": "1041:2:0" + }, + "returnParameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [], + "src": "1043:0:0" + }, + "scope": 347, + "src": "1030:91:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 6 + ], + "body": { + "id": 117, + "nodeType": "Block", + "src": "1189:32:0", + "statements": [ + { + "expression": { + "id": 115, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "1202:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 114, + "id": 116, + "nodeType": "Return", + "src": "1195:19:0" + } + ] + }, + "functionSelector": "18160ddd", + "id": 118, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 111, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1157:8:0" + }, + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [], + "src": "1147:2:0" + }, + "returnParameters": { + "id": 114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 113, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "1180:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1180:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1179:9:0" + }, + "scope": 347, + "src": "1127:94:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 13 + ], + "body": { + "id": 130, + "nodeType": "Block", + "src": "1305:44:0", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 126, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1322:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 128, + "indexExpression": { + "id": 127, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 120, + "src": "1331:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1322:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 125, + "id": 129, + "nodeType": "Return", + "src": "1315:27:0" + } + ] + }, + "functionSelector": "70a08231", + "id": 131, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 122, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1273:8:0" + }, + "parameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 131, + "src": "1246:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 119, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1246:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1245:20:0" + }, + "returnParameters": { + "id": 125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 131, + "src": "1296:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1296:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1295:9:0" + }, + "scope": 347, + "src": "1227:122:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 31 + ], + "body": { + "id": 183, + "nodeType": "Block", + "src": "1442:268:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 142, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 135, + "src": "1460:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 143, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1473:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 146, + "indexExpression": { + "expression": { + "id": 144, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1482:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1482:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1473:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1460:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 141, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1452:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1452:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 149, + "nodeType": "ExpressionStatement", + "src": "1452:42:0" + }, + { + "expression": { + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 150, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1504:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 153, + "indexExpression": { + "expression": { + "id": 151, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1513:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1513:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1504:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 159, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 135, + "src": "1552:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 154, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1527:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 157, + "indexExpression": { + "expression": { + "id": 155, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1536:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1536:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1527:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "1527:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1527:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1504:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 162, + "nodeType": "ExpressionStatement", + "src": "1504:58:0" + }, + { + "expression": { + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1572:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 165, + "indexExpression": { + "id": 164, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "1581:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1572:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 170, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 135, + "src": "1616:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 166, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1593:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 168, + "indexExpression": { + "id": 167, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "1602:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1593:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 391, + "src": "1593:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1593:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1572:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 173, + "nodeType": "ExpressionStatement", + "src": "1572:54:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 175, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1650:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1650:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 177, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "1662:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 178, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 135, + "src": "1672:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 174, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "1641:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1641:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 180, + "nodeType": "EmitStatement", + "src": "1636:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1699:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 140, + "id": 182, + "nodeType": "Return", + "src": "1692:11:0" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 184, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 137, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1418:8:0" + }, + "parameters": { + "id": 136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 184, + "src": "1374:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1374:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 135, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 184, + "src": "1392:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1392:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1373:37:0" + }, + "returnParameters": { + "id": 140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 139, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 184, + "src": "1436:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 138, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1435:6:0" + }, + "scope": 347, + "src": "1356:354:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 40 + ], + "body": { + "id": 212, + "nodeType": "Block", + "src": "1801:135:0", + "statements": [ + { + "expression": { + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 194, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "1811:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 198, + "indexExpression": { + "expression": { + "id": 195, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1819:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1819:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1811:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 199, + "indexExpression": { + "id": 197, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 186, + "src": "1831:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1811:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 200, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 188, + "src": "1843:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1811:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 202, + "nodeType": "ExpressionStatement", + "src": "1811:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 204, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1876:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1876:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 206, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 186, + "src": "1888:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 207, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 188, + "src": "1898:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 203, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1867:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1867:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 209, + "nodeType": "EmitStatement", + "src": "1862:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1925:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 193, + "id": 211, + "nodeType": "Return", + "src": "1918:11:0" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 213, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 190, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1777:8:0" + }, + "parameters": { + "id": 189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 186, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1733:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 185, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1733:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 188, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1751:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 187, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1751:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1732:37:0" + }, + "returnParameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1795:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 191, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1795:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1794:6:0" + }, + "scope": 347, + "src": "1716:220:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 22 + ], + "body": { + "id": 229, + "nodeType": "Block", + "src": "2030:48:0", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 223, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2047:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 225, + "indexExpression": { + "id": 224, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2055:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2047:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 227, + "indexExpression": { + "id": 226, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2062:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2047:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 222, + "id": 228, + "nodeType": "Return", + "src": "2040:31:0" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 219, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2001:8:0" + }, + "parameters": { + "id": 218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "1961:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1961:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "1976:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 216, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1976:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1960:33:0" + }, + "returnParameters": { + "id": 222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 221, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "2024:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 220, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2024:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2023:6:0" + }, + "scope": 347, + "src": "1942:136:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 266, + "nodeType": "Block", + "src": "2138:213:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 238, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "2156:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2175:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2167:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2167:7:0", + "typeDescriptions": {} + } + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2167:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2156:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2179:33:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 237, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2148:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2148:65:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 246, + "nodeType": "ExpressionStatement", + "src": "2148:65:0" + }, + { + "expression": { + "id": 249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 247, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "2224:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 248, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "2240:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2224:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 250, + "nodeType": "ExpressionStatement", + "src": "2224:22:0" + }, + { + "expression": { + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 251, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2256:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 253, + "indexExpression": { + "id": 252, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "2265:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2256:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 254, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "2277:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2256:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 256, + "nodeType": "ExpressionStatement", + "src": "2256:27:0" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2315:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2307:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 258, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2307:7:0", + "typeDescriptions": {} + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2307:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 262, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "2319:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 263, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "2328:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 257, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "2298:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2298:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 265, + "nodeType": "EmitStatement", + "src": "2293:42:0" + } + ] + }, + "functionSelector": "40c10f19", + "id": 267, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 232, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "2098:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2098:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 234, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "2115:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2115:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2097:33:0" + }, + "returnParameters": { + "id": 236, + "nodeType": "ParameterList", + "parameters": [], + "src": "2138:0:0" + }, + "scope": 347, + "src": "2084:267:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 51 + ], + "body": { + "id": 345, + "nodeType": "Block", + "src": "2459:378:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 280, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2477:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 281, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2490:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 283, + "indexExpression": { + "id": 282, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2499:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2490:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2477:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2469:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2469:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 286, + "nodeType": "ExpressionStatement", + "src": "2469:37:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 288, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2524:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 289, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2537:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 291, + "indexExpression": { + "id": 290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2545:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2537:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 294, + "indexExpression": { + "expression": { + "id": 292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2552:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2552:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2537:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2524:39:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 287, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2516:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2516:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 297, + "nodeType": "ExpressionStatement", + "src": "2516:48:0" + }, + { + "expression": { + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 298, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2575:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 300, + "indexExpression": { + "id": 299, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2584:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2575:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 305, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2613:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 301, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2593:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 303, + "indexExpression": { + "id": 302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2602:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2593:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "2593:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2593:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2575:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 308, + "nodeType": "ExpressionStatement", + "src": "2575:48:0" + }, + { + "expression": { + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 309, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2633:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 313, + "indexExpression": { + "id": 310, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2641:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2633:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 314, + "indexExpression": { + "expression": { + "id": 311, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2648:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2648:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2633:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 322, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2693:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 315, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2662:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 317, + "indexExpression": { + "id": 316, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2670:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2662:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 320, + "indexExpression": { + "expression": { + "id": 318, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2677:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2677:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2662:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "2662:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2662:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2633:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 325, + "nodeType": "ExpressionStatement", + "src": "2633:70:0" + }, + { + "expression": { + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 326, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2713:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 328, + "indexExpression": { + "id": 327, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "2722:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2713:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 333, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2751:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 329, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2731:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 331, + "indexExpression": { + "id": 330, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "2740:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2731:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 391, + "src": "2731:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2731:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2713:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 336, + "nodeType": "ExpressionStatement", + "src": "2713:48:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 338, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "2785:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 339, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "2792:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 340, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "2799:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 337, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "2776:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2776:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 342, + "nodeType": "EmitStatement", + "src": "2771:38:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2826:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 278, + "id": 344, + "nodeType": "Return", + "src": "2819:11:0" + } + ] + }, + "functionSelector": "23b872dd", + "id": 346, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 275, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2435:8:0" + }, + "parameters": { + "id": 274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "2379:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2379:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 271, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "2394:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2394:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 273, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "2409:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2409:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2378:49:0" + }, + "returnParameters": { + "id": 278, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 277, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "2453:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 276, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2453:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2452:6:0" + }, + "scope": 347, + "src": "2357:480:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 393, + "src": "545:2294:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 392, + "linearizedBaseContracts": [ + 392 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 366, + "nodeType": "Block", + "src": "2931:49:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 357, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "2946:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 358, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "2951:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2946:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 356, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "2939:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2939:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 361, + "nodeType": "ExpressionStatement", + "src": "2939:14:0" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 362, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "2968:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 363, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "2972:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2968:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 355, + "id": 365, + "nodeType": "Return", + "src": "2961:12:0" + } + ] + }, + "id": 367, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 352, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "2877:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2877:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 351, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "2888:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 350, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2888:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2876:22:0" + }, + "returnParameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 354, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "2922:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2922:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2921:9:0" + }, + "scope": 392, + "src": "2864:116:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 390, + "nodeType": "Block", + "src": "3053:70:0", + "statements": [ + { + "assignments": [ + 377 + ], + "declarations": [ + { + "constant": false, + "id": 377, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "3061:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3061:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 381, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 378, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "3073:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 379, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 371, + "src": "3077:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3073:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3061:17:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 383, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 377, + "src": "3093:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 384, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "3098:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3093:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 382, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3086:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3086:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 387, + "nodeType": "ExpressionStatement", + "src": "3086:14:0" + }, + { + "expression": { + "id": 388, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 377, + "src": "3115:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 375, + "id": 389, + "nodeType": "Return", + "src": "3108:8:0" + } + ] + }, + "id": 391, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "2999:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2999:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 371, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "3010:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3010:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2998:22:0" + }, + "returnParameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "3044:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3044:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3043:9:0" + }, + "scope": 392, + "src": "2986:137:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 393, + "src": "2841:284:0" + } + ], + "src": "0:3126:0" + }, + "compiler": { + "name": "solc", + "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" + }, + "networks": { + "5777": { + "events": {}, + "links": {}, + "address": "0x61596BB58cF23Fccc7111e2E148974CAa2356949", + "transactionHash": "0x89a81da935837a65ac634cecc099f29e3501dac7dfdbacefe3da662479fabaa3" + } + }, + "schemaVersion": "3.4.1", + "updatedAt": "2021-08-03T17:29:35.629Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/IERC20.json b/build/contracts/IERC20.json new file mode 100644 index 0000000..788c161 --- /dev/null +++ b/build/contracts/IERC20.json @@ -0,0 +1,9831 @@ +{ + "contractName": "IERC20", + "abi": [ + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol\":{\"keccak256\":\"0x362b398cb93c12ada3f91c36de4f159f532bac04b8d3967f16c469a97b8ce2ca\",\"urls\":[\"bzz-raw://7937eaa10109ec9ed84fcf9c9cf8b3c89c7289ca3696a6cc4ad05b830e3c5c43\",\"dweb:/ipfs/QmVRwgXzBeA8pvr1NN62koBaHCp3fZjTwcdu3MqWA6gkrX\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity >=0.8.0 <0.9.0;\n\ninterface IERC20 {\n\n function totalSupply() external view returns (uint256);\n function balanceOf(address account) external view returns (uint256);\n function allowance(address owner, address spender) external view returns (uint256);\n\n function transfer(address recipient, uint256 amount) external returns (bool);\n function approve(address spender, uint256 amount) external returns (bool);\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n }\n\n\ncontract Usdc is IERC20 {\n\n string public constant name = \"Usdc\";\n string public constant symbol = \"USDC\";\n uint8 public constant decimals = 3;\n\n\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n event Transfer(address indexed from, address indexed to, uint tokens);\n\n\n mapping(address => uint256) balances;\n\n mapping(address => mapping (address => uint256)) allowed;\n\n uint256 totalSupply_;\n\n using SafeMath for uint256;\n\n\n constructor(){\n totalSupply_ = 100000000;\n balances[msg.sender] = totalSupply_;\n }\n\n function totalSupply() public override view returns (uint256) {\n return totalSupply_;\n }\n\n function balanceOf(address tokenOwner) public override view returns (uint256) {\n return balances[tokenOwner];\n }\n\n function transfer(address receiver, uint256 numTokens) public override returns (bool) {\n require(numTokens <= balances[msg.sender]);\n balances[msg.sender] = balances[msg.sender].sub(numTokens);\n balances[receiver] = balances[receiver].add(numTokens);\n emit Transfer(msg.sender, receiver, numTokens);\n return true;\n }\n\n function approve(address delegate, uint256 numTokens) public override returns (bool) {\n allowed[msg.sender][delegate] = numTokens;\n emit Approval(msg.sender, delegate, numTokens);\n return true;\n }\n\n function allowance(address owner, address delegate) public override view returns (uint) {\n return allowed[owner][delegate];\n }\n\n function transferFrom(address owner, address buyer, uint256 numTokens) public override returns (bool) {\n require(numTokens <= balances[owner]);\n require(numTokens <= allowed[owner][msg.sender]);\n\n balances[owner] = balances[owner].sub(numTokens);\n allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens);\n balances[buyer] = balances[buyer].add(numTokens);\n emit Transfer(owner, buyer, numTokens);\n return true;\n }\n\n function mint(address account, uint256 amount) public {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n totalSupply_ += amount;\n balances[account] += amount;\n emit Transfer(address(0), account, amount);\n\n \n }\n}\n\nlibrary SafeMath {\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n assert(c >= a);\n return c;\n }\n}\n", + "sourcePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol", + "ast": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol", + "exportedSymbols": { + "IERC20": [ + 1642 + ], + "SafeMath": [ + 1982 + ], + "Usdc": [ + 1937 + ] + }, + "id": 1983, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1591, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:31:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1642, + "linearizedBaseContracts": [ + 1642 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 1596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1592, + "nodeType": "ParameterList", + "parameters": [], + "src": "77:2:2" + }, + "returnParameters": { + "id": 1595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "103:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "103:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "102:9:2" + }, + "scope": 1642, + "src": "57:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 1603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1598, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "136:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "136:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "135:17:2" + }, + "returnParameters": { + "id": 1602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "176:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "176:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "175:9:2" + }, + "scope": 1642, + "src": "117:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 1612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "209:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "224:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "224:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "208:32:2" + }, + "returnParameters": { + "id": 1611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "264:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "264:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "263:9:2" + }, + "scope": 1642, + "src": "190:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 1621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1614, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "297:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1616, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "316:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "296:35:2" + }, + "returnParameters": { + "id": 1620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "350:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "350:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "349:6:2" + }, + "scope": 1642, + "src": "279:77:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 1630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "378:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "378:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "395:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "377:33:2" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "429:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "429:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "428:6:2" + }, + "scope": 1642, + "src": "361:74:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 1641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1632, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "462:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "462:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1634, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "478:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "478:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1636, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "497:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "461:51:2" + }, + "returnParameters": { + "id": 1640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "531:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "531:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "530:6:2" + }, + "scope": 1642, + "src": "440:97:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1983, + "src": "33:509:2" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1643, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1642, + "src": "562:6:2" + }, + "id": 1644, + "nodeType": "InheritanceSpecifier", + "src": "562:6:2" + } + ], + "contractDependencies": [ + 1642 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1937, + "linearizedBaseContracts": [ + 1937, + 1642 + ], + "name": "Usdc", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 1647, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "576:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1645, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "576:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55736463", + "id": 1646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "606:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2fb347e0e3919a9e5bc2106eef1247f792eab71f04998e6965b96d8c2acecc9", + "typeString": "literal_string \"Usdc\"" + }, + "value": "Usdc" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 1650, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "618:38:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "618:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55534443", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "650:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", + "typeString": "literal_string \"USDC\"" + }, + "value": "USDC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 1653, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "662:34:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1651, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "662:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "33", + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "695:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 1661, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1655, + "indexed": true, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "719:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "719:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1657, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "747:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "747:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "772:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "772:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "718:66:2" + }, + "src": "704:81:2" + }, + { + "anonymous": false, + "id": 1669, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 1668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1663, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "805:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "827:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "827:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "847:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "847:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "804:55:2" + }, + "src": "790:70:2" + }, + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "867:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1672, + "keyType": { + "id": 1670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "875:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "867:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "886:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1679, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "910:56:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 1678, + "keyType": { + "id": 1674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "918:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "910:48:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 1677, + "keyType": { + "id": 1675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "938:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "929:28:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "949:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1681, + "mutability": "mutable", + "name": "totalSupply_", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "973:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "973:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "id": 1684, + "libraryName": { + "id": 1682, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1982, + "src": "1006:8:2" + }, + "nodeType": "UsingForDirective", + "src": "1000:27:2", + "typeName": { + "id": 1683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1019:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "1046:78:2", + "statements": [ + { + "expression": { + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1687, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1052:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "313030303030303030", + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1067:9:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "100000000" + }, + "src": "1052:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1690, + "nodeType": "ExpressionStatement", + "src": "1052:24:2" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1691, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1082:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1694, + "indexExpression": { + "expression": { + "id": 1692, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1091:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1091:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1082:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1105:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1082:35:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1082:35:2" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1685, + "nodeType": "ParameterList", + "parameters": [], + "src": "1044:2:2" + }, + "returnParameters": { + "id": 1686, + "nodeType": "ParameterList", + "parameters": [], + "src": "1046:0:2" + }, + "scope": 1937, + "src": "1033:91:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1596 + ], + "body": { + "id": 1707, + "nodeType": "Block", + "src": "1192:32:2", + "statements": [ + { + "expression": { + "id": 1705, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1205:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1704, + "id": 1706, + "nodeType": "Return", + "src": "1198:19:2" + } + ] + }, + "functionSelector": "18160ddd", + "id": 1708, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1701, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1160:8:2" + }, + "parameters": { + "id": 1700, + "nodeType": "ParameterList", + "parameters": [], + "src": "1150:2:2" + }, + "returnParameters": { + "id": 1704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1703, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1708, + "src": "1183:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1183:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1182:9:2" + }, + "scope": 1937, + "src": "1130:94:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1603 + ], + "body": { + "id": 1720, + "nodeType": "Block", + "src": "1308:44:2", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 1716, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1325:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1718, + "indexExpression": { + "id": 1717, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "1334:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1325:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1715, + "id": 1719, + "nodeType": "Return", + "src": "1318:27:2" + } + ] + }, + "functionSelector": "70a08231", + "id": 1721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1712, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1276:8:2" + }, + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1249:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1249:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1248:20:2" + }, + "returnParameters": { + "id": 1715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1299:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1298:9:2" + }, + "scope": 1937, + "src": "1230:122:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1621 + ], + "body": { + "id": 1773, + "nodeType": "Block", + "src": "1444:268:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1732, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1462:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1733, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1475:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1736, + "indexExpression": { + "expression": { + "id": 1734, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1484:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1484:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1475:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1462:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1454:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1454:42:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1739, + "nodeType": "ExpressionStatement", + "src": "1454:42:2" + }, + { + "expression": { + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1740, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1506:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1743, + "indexExpression": { + "expression": { + "id": 1741, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1515:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1515:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1506:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1749, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1554:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1744, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1529:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1747, + "indexExpression": { + "expression": { + "id": 1745, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1538:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1538:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1529:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "1529:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1529:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1506:58:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1752, + "nodeType": "ExpressionStatement", + "src": "1506:58:2" + }, + { + "expression": { + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1753, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1574:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1755, + "indexExpression": { + "id": 1754, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1583:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1574:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1760, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1618:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1756, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1595:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1758, + "indexExpression": { + "id": 1757, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1604:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1595:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "1595:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1595:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1574:54:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1763, + "nodeType": "ExpressionStatement", + "src": "1574:54:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1652:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1652:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1767, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1664:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1768, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1674:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1764, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "1643:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1643:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1770, + "nodeType": "EmitStatement", + "src": "1638:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1730, + "id": 1772, + "nodeType": "Return", + "src": "1694:11:2" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 1774, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1420:8:2" + }, + "parameters": { + "id": 1726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1723, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1376:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1376:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1394:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1394:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1375:37:2" + }, + "returnParameters": { + "id": 1730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1438:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1438:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1437:6:2" + }, + "scope": 1937, + "src": "1358:354:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1630 + ], + "body": { + "id": 1802, + "nodeType": "Block", + "src": "1803:135:2", + "statements": [ + { + "expression": { + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1784, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "1813:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1788, + "indexExpression": { + "expression": { + "id": 1785, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1821:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1821:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1813:19:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1789, + "indexExpression": { + "id": 1787, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1833:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1813:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1790, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1845:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1813:41:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1792, + "nodeType": "ExpressionStatement", + "src": "1813:41:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1794, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1878:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1878:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1796, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1890:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1797, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1900:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1793, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "1869:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1869:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1799, + "nodeType": "EmitStatement", + "src": "1864:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1927:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1783, + "id": 1801, + "nodeType": "Return", + "src": "1920:11:2" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 1803, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1780, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1779:8:2" + }, + "parameters": { + "id": 1779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1776, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1735:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1735:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1778, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1753:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1734:37:2" + }, + "returnParameters": { + "id": 1783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1782, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1797:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1781, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1797:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1796:6:2" + }, + "scope": 1937, + "src": "1718:220:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1612 + ], + "body": { + "id": 1819, + "nodeType": "Block", + "src": "2032:48:2", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1813, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2049:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1815, + "indexExpression": { + "id": 1814, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1805, + "src": "2057:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1817, + "indexExpression": { + "id": 1816, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "2064:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1812, + "id": 1818, + "nodeType": "Return", + "src": "2042:31:2" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 1820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1809, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2003:8:2" + }, + "parameters": { + "id": 1808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1963:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1978:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1978:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1962:33:2" + }, + "returnParameters": { + "id": 1812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1811, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "2026:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1810, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2026:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:6:2" + }, + "scope": 1937, + "src": "1944:136:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1641 + ], + "body": { + "id": 1898, + "nodeType": "Block", + "src": "2188:378:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1833, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2206:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1834, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2219:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1836, + "indexExpression": { + "id": 1835, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2228:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2219:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2206:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1832, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2198:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2198:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1839, + "nodeType": "ExpressionStatement", + "src": "2198:37:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1841, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2253:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 1842, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2266:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1844, + "indexExpression": { + "id": 1843, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2274:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1847, + "indexExpression": { + "expression": { + "id": 1845, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2281:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2281:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2253:39:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1840, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2245:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:48:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1850, + "nodeType": "ExpressionStatement", + "src": "2245:48:2" + }, + { + "expression": { + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1851, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2304:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1853, + "indexExpression": { + "id": 1852, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2313:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2304:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1858, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2342:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1854, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2322:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1856, + "indexExpression": { + "id": 1855, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2331:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2322:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2322:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2322:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2304:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1861, + "nodeType": "ExpressionStatement", + "src": "2304:48:2" + }, + { + "expression": { + "id": 1877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1862, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2362:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1866, + "indexExpression": { + "id": 1863, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2370:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2362:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1867, + "indexExpression": { + "expression": { + "id": 1864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2377:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2377:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2362:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1875, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2422:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1868, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2391:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1870, + "indexExpression": { + "id": 1869, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2399:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1873, + "indexExpression": { + "expression": { + "id": 1871, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2406:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2406:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2391:30:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2391:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2362:70:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1878, + "nodeType": "ExpressionStatement", + "src": "2362:70:2" + }, + { + "expression": { + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1879, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2442:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1881, + "indexExpression": { + "id": 1880, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2451:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2442:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1886, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2480:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1882, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2460:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1884, + "indexExpression": { + "id": 1883, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2469:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2460:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "2460:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2460:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2442:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1889, + "nodeType": "ExpressionStatement", + "src": "2442:48:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1891, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2514:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1892, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2521:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1893, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2528:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1890, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2505:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2505:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1895, + "nodeType": "EmitStatement", + "src": "2500:38:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2555:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1831, + "id": 1897, + "nodeType": "Return", + "src": "2548:11:2" + } + ] + }, + "functionSelector": "23b872dd", + "id": 1899, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1828, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2164:8:2" + }, + "parameters": { + "id": 1827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1822, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2108:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1824, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2123:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1823, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2138:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2107:49:2" + }, + "returnParameters": { + "id": 1831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2182:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1829, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2182:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2181:6:2" + }, + "scope": 1937, + "src": "2086:480:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1935, + "nodeType": "Block", + "src": "2626:213:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1907, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2644:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2663:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2655:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2655:7:2", + "typeDescriptions": {} + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2655:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2644:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2667:33:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 1906, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2636:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2636:65:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1915, + "nodeType": "ExpressionStatement", + "src": "2636:65:2" + }, + { + "expression": { + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1916, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "2712:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1917, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2728:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2712:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "2712:22:2" + }, + { + "expression": { + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1920, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2744:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1922, + "indexExpression": { + "id": 1921, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2744:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1923, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2765:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2744:27:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1925, + "nodeType": "ExpressionStatement", + "src": "2744:27:2" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2803:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2795:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2795:7:2", + "typeDescriptions": {} + } + }, + "id": 1930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2795:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1931, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2807:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1932, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2816:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1926, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2786:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2786:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1934, + "nodeType": "EmitStatement", + "src": "2781:42:2" + } + ] + }, + "functionSelector": "40c10f19", + "id": 1936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1901, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2586:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2586:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2603:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2603:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2585:33:2" + }, + "returnParameters": { + "id": 1905, + "nodeType": "ParameterList", + "parameters": [], + "src": "2626:0:2" + }, + "scope": 1937, + "src": "2572:267:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1983, + "src": "545:2296:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1982, + "linearizedBaseContracts": [ + 1982 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1956, + "nodeType": "Block", + "src": "2933:49:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1947, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2948:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2953:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2948:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1946, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "2941:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2941:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "2941:14:2" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1952, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2970:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1953, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2974:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2970:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1945, + "id": 1955, + "nodeType": "Return", + "src": "2963:12:2" + } + ] + }, + "id": 1957, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2879:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2879:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2890:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2878:22:2" + }, + "returnParameters": { + "id": 1945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2924:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2924:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2923:9:2" + }, + "scope": 1982, + "src": "2866:116:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1980, + "nodeType": "Block", + "src": "3055:70:2", + "statements": [ + { + "assignments": [ + 1967 + ], + "declarations": [ + { + "constant": false, + "id": 1967, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1980, + "src": "3063:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3063:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1971, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1968, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3075:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1969, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1961, + "src": "3079:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3075:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3063:17:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1973, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3095:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3100:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3095:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1972, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3088:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3088:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1977, + "nodeType": "ExpressionStatement", + "src": "3088:14:2" + }, + { + "expression": { + "id": 1978, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3117:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1965, + "id": 1979, + "nodeType": "Return", + "src": "3110:8:2" + } + ] + }, + "id": 1981, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1959, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3001:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3001:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1961, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3012:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3000:22:2" + }, + "returnParameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3046:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3045:9:2" + }, + "scope": 1982, + "src": "2988:137:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1983, + "src": "2843:284:2" + } + ], + "src": "0:3128:2" + }, + "legacyAST": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol", + "exportedSymbols": { + "IERC20": [ + 1642 + ], + "SafeMath": [ + 1982 + ], + "Usdc": [ + 1937 + ] + }, + "id": 1983, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1591, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:31:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1642, + "linearizedBaseContracts": [ + 1642 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 1596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1592, + "nodeType": "ParameterList", + "parameters": [], + "src": "77:2:2" + }, + "returnParameters": { + "id": 1595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "103:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "103:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "102:9:2" + }, + "scope": 1642, + "src": "57:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 1603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1598, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "136:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "136:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "135:17:2" + }, + "returnParameters": { + "id": 1602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "176:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "176:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "175:9:2" + }, + "scope": 1642, + "src": "117:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 1612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "209:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "224:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "224:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "208:32:2" + }, + "returnParameters": { + "id": 1611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "264:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "264:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "263:9:2" + }, + "scope": 1642, + "src": "190:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 1621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1614, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "297:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1616, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "316:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "296:35:2" + }, + "returnParameters": { + "id": 1620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "350:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "350:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "349:6:2" + }, + "scope": 1642, + "src": "279:77:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 1630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "378:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "378:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "395:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "377:33:2" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "429:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "429:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "428:6:2" + }, + "scope": 1642, + "src": "361:74:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 1641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1632, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "462:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "462:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1634, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "478:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "478:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1636, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "497:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "461:51:2" + }, + "returnParameters": { + "id": 1640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "531:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "531:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "530:6:2" + }, + "scope": 1642, + "src": "440:97:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1983, + "src": "33:509:2" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1643, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1642, + "src": "562:6:2" + }, + "id": 1644, + "nodeType": "InheritanceSpecifier", + "src": "562:6:2" + } + ], + "contractDependencies": [ + 1642 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1937, + "linearizedBaseContracts": [ + 1937, + 1642 + ], + "name": "Usdc", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 1647, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "576:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1645, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "576:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55736463", + "id": 1646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "606:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2fb347e0e3919a9e5bc2106eef1247f792eab71f04998e6965b96d8c2acecc9", + "typeString": "literal_string \"Usdc\"" + }, + "value": "Usdc" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 1650, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "618:38:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "618:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55534443", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "650:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", + "typeString": "literal_string \"USDC\"" + }, + "value": "USDC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 1653, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "662:34:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1651, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "662:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "33", + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "695:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 1661, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1655, + "indexed": true, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "719:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "719:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1657, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "747:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "747:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "772:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "772:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "718:66:2" + }, + "src": "704:81:2" + }, + { + "anonymous": false, + "id": 1669, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 1668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1663, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "805:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "827:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "827:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "847:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "847:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "804:55:2" + }, + "src": "790:70:2" + }, + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "867:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1672, + "keyType": { + "id": 1670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "875:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "867:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "886:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1679, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "910:56:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 1678, + "keyType": { + "id": 1674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "918:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "910:48:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 1677, + "keyType": { + "id": 1675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "938:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "929:28:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "949:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1681, + "mutability": "mutable", + "name": "totalSupply_", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "973:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "973:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "id": 1684, + "libraryName": { + "id": 1682, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1982, + "src": "1006:8:2" + }, + "nodeType": "UsingForDirective", + "src": "1000:27:2", + "typeName": { + "id": 1683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1019:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "1046:78:2", + "statements": [ + { + "expression": { + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1687, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1052:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "313030303030303030", + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1067:9:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "100000000" + }, + "src": "1052:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1690, + "nodeType": "ExpressionStatement", + "src": "1052:24:2" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1691, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1082:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1694, + "indexExpression": { + "expression": { + "id": 1692, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1091:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1091:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1082:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1105:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1082:35:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1082:35:2" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1685, + "nodeType": "ParameterList", + "parameters": [], + "src": "1044:2:2" + }, + "returnParameters": { + "id": 1686, + "nodeType": "ParameterList", + "parameters": [], + "src": "1046:0:2" + }, + "scope": 1937, + "src": "1033:91:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1596 + ], + "body": { + "id": 1707, + "nodeType": "Block", + "src": "1192:32:2", + "statements": [ + { + "expression": { + "id": 1705, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1205:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1704, + "id": 1706, + "nodeType": "Return", + "src": "1198:19:2" + } + ] + }, + "functionSelector": "18160ddd", + "id": 1708, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1701, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1160:8:2" + }, + "parameters": { + "id": 1700, + "nodeType": "ParameterList", + "parameters": [], + "src": "1150:2:2" + }, + "returnParameters": { + "id": 1704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1703, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1708, + "src": "1183:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1183:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1182:9:2" + }, + "scope": 1937, + "src": "1130:94:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1603 + ], + "body": { + "id": 1720, + "nodeType": "Block", + "src": "1308:44:2", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 1716, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1325:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1718, + "indexExpression": { + "id": 1717, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "1334:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1325:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1715, + "id": 1719, + "nodeType": "Return", + "src": "1318:27:2" + } + ] + }, + "functionSelector": "70a08231", + "id": 1721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1712, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1276:8:2" + }, + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1249:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1249:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1248:20:2" + }, + "returnParameters": { + "id": 1715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1299:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1298:9:2" + }, + "scope": 1937, + "src": "1230:122:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1621 + ], + "body": { + "id": 1773, + "nodeType": "Block", + "src": "1444:268:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1732, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1462:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1733, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1475:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1736, + "indexExpression": { + "expression": { + "id": 1734, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1484:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1484:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1475:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1462:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1454:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1454:42:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1739, + "nodeType": "ExpressionStatement", + "src": "1454:42:2" + }, + { + "expression": { + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1740, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1506:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1743, + "indexExpression": { + "expression": { + "id": 1741, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1515:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1515:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1506:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1749, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1554:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1744, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1529:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1747, + "indexExpression": { + "expression": { + "id": 1745, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1538:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1538:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1529:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "1529:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1529:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1506:58:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1752, + "nodeType": "ExpressionStatement", + "src": "1506:58:2" + }, + { + "expression": { + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1753, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1574:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1755, + "indexExpression": { + "id": 1754, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1583:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1574:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1760, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1618:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1756, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1595:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1758, + "indexExpression": { + "id": 1757, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1604:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1595:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "1595:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1595:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1574:54:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1763, + "nodeType": "ExpressionStatement", + "src": "1574:54:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1652:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1652:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1767, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1664:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1768, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1674:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1764, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "1643:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1643:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1770, + "nodeType": "EmitStatement", + "src": "1638:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1730, + "id": 1772, + "nodeType": "Return", + "src": "1694:11:2" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 1774, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1420:8:2" + }, + "parameters": { + "id": 1726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1723, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1376:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1376:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1394:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1394:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1375:37:2" + }, + "returnParameters": { + "id": 1730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1438:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1438:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1437:6:2" + }, + "scope": 1937, + "src": "1358:354:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1630 + ], + "body": { + "id": 1802, + "nodeType": "Block", + "src": "1803:135:2", + "statements": [ + { + "expression": { + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1784, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "1813:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1788, + "indexExpression": { + "expression": { + "id": 1785, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1821:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1821:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1813:19:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1789, + "indexExpression": { + "id": 1787, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1833:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1813:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1790, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1845:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1813:41:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1792, + "nodeType": "ExpressionStatement", + "src": "1813:41:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1794, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1878:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1878:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1796, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1890:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1797, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1900:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1793, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "1869:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1869:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1799, + "nodeType": "EmitStatement", + "src": "1864:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1927:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1783, + "id": 1801, + "nodeType": "Return", + "src": "1920:11:2" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 1803, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1780, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1779:8:2" + }, + "parameters": { + "id": 1779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1776, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1735:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1735:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1778, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1753:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1734:37:2" + }, + "returnParameters": { + "id": 1783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1782, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1797:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1781, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1797:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1796:6:2" + }, + "scope": 1937, + "src": "1718:220:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1612 + ], + "body": { + "id": 1819, + "nodeType": "Block", + "src": "2032:48:2", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1813, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2049:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1815, + "indexExpression": { + "id": 1814, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1805, + "src": "2057:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1817, + "indexExpression": { + "id": 1816, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "2064:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1812, + "id": 1818, + "nodeType": "Return", + "src": "2042:31:2" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 1820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1809, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2003:8:2" + }, + "parameters": { + "id": 1808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1963:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1978:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1978:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1962:33:2" + }, + "returnParameters": { + "id": 1812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1811, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "2026:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1810, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2026:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:6:2" + }, + "scope": 1937, + "src": "1944:136:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1641 + ], + "body": { + "id": 1898, + "nodeType": "Block", + "src": "2188:378:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1833, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2206:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1834, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2219:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1836, + "indexExpression": { + "id": 1835, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2228:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2219:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2206:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1832, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2198:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2198:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1839, + "nodeType": "ExpressionStatement", + "src": "2198:37:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1841, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2253:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 1842, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2266:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1844, + "indexExpression": { + "id": 1843, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2274:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1847, + "indexExpression": { + "expression": { + "id": 1845, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2281:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2281:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2253:39:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1840, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2245:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:48:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1850, + "nodeType": "ExpressionStatement", + "src": "2245:48:2" + }, + { + "expression": { + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1851, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2304:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1853, + "indexExpression": { + "id": 1852, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2313:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2304:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1858, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2342:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1854, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2322:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1856, + "indexExpression": { + "id": 1855, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2331:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2322:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2322:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2322:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2304:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1861, + "nodeType": "ExpressionStatement", + "src": "2304:48:2" + }, + { + "expression": { + "id": 1877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1862, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2362:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1866, + "indexExpression": { + "id": 1863, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2370:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2362:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1867, + "indexExpression": { + "expression": { + "id": 1864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2377:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2377:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2362:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1875, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2422:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1868, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2391:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1870, + "indexExpression": { + "id": 1869, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2399:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1873, + "indexExpression": { + "expression": { + "id": 1871, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2406:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2406:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2391:30:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2391:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2362:70:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1878, + "nodeType": "ExpressionStatement", + "src": "2362:70:2" + }, + { + "expression": { + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1879, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2442:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1881, + "indexExpression": { + "id": 1880, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2451:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2442:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1886, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2480:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1882, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2460:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1884, + "indexExpression": { + "id": 1883, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2469:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2460:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "2460:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2460:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2442:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1889, + "nodeType": "ExpressionStatement", + "src": "2442:48:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1891, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2514:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1892, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2521:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1893, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2528:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1890, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2505:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2505:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1895, + "nodeType": "EmitStatement", + "src": "2500:38:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2555:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1831, + "id": 1897, + "nodeType": "Return", + "src": "2548:11:2" + } + ] + }, + "functionSelector": "23b872dd", + "id": 1899, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1828, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2164:8:2" + }, + "parameters": { + "id": 1827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1822, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2108:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1824, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2123:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1823, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2138:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2107:49:2" + }, + "returnParameters": { + "id": 1831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2182:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1829, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2182:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2181:6:2" + }, + "scope": 1937, + "src": "2086:480:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1935, + "nodeType": "Block", + "src": "2626:213:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1907, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2644:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2663:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2655:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2655:7:2", + "typeDescriptions": {} + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2655:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2644:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2667:33:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 1906, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2636:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2636:65:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1915, + "nodeType": "ExpressionStatement", + "src": "2636:65:2" + }, + { + "expression": { + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1916, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "2712:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1917, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2728:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2712:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "2712:22:2" + }, + { + "expression": { + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1920, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2744:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1922, + "indexExpression": { + "id": 1921, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2744:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1923, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2765:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2744:27:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1925, + "nodeType": "ExpressionStatement", + "src": "2744:27:2" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2803:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2795:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2795:7:2", + "typeDescriptions": {} + } + }, + "id": 1930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2795:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1931, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2807:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1932, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2816:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1926, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2786:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2786:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1934, + "nodeType": "EmitStatement", + "src": "2781:42:2" + } + ] + }, + "functionSelector": "40c10f19", + "id": 1936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1901, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2586:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2586:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2603:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2603:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2585:33:2" + }, + "returnParameters": { + "id": 1905, + "nodeType": "ParameterList", + "parameters": [], + "src": "2626:0:2" + }, + "scope": 1937, + "src": "2572:267:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1983, + "src": "545:2296:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1982, + "linearizedBaseContracts": [ + 1982 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1956, + "nodeType": "Block", + "src": "2933:49:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1947, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2948:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2953:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2948:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1946, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "2941:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2941:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "2941:14:2" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1952, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2970:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1953, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2974:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2970:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1945, + "id": 1955, + "nodeType": "Return", + "src": "2963:12:2" + } + ] + }, + "id": 1957, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2879:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2879:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2890:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2878:22:2" + }, + "returnParameters": { + "id": 1945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2924:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2924:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2923:9:2" + }, + "scope": 1982, + "src": "2866:116:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1980, + "nodeType": "Block", + "src": "3055:70:2", + "statements": [ + { + "assignments": [ + 1967 + ], + "declarations": [ + { + "constant": false, + "id": 1967, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1980, + "src": "3063:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3063:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1971, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1968, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3075:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1969, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1961, + "src": "3079:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3075:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3063:17:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1973, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3095:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3100:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3095:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1972, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3088:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3088:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1977, + "nodeType": "ExpressionStatement", + "src": "3088:14:2" + }, + { + "expression": { + "id": 1978, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3117:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1965, + "id": 1979, + "nodeType": "Return", + "src": "3110:8:2" + } + ] + }, + "id": 1981, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1959, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3001:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3001:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1961, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3012:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3000:22:2" + }, + "returnParameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3046:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3045:9:2" + }, + "scope": 1982, + "src": "2988:137:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1983, + "src": "2843:284:2" + } + ], + "src": "0:3128:2" + }, + "compiler": { + "name": "solc", + "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.1", + "updatedAt": "2021-08-01T23:54:00.722Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json new file mode 100644 index 0000000..b8eac8e --- /dev/null +++ b/build/contracts/Migrations.json @@ -0,0 +1,2159 @@ +{ + "contractName": "Migrations", + "abi": [ + { + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/Migrations.sol\":{\"keccak256\":\"0x7eaedbb1a3e4e0f585d9063393872f88ded247ca3c3c3c8492ea18e7629a6411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3eb571cee910095df65a06a1c1d3f89187c72a3c184ef87a7538d9aa39ad07\",\"dweb:/ipfs/QmdqR3vrSSGR49qFGZr49Mb39z7dgD6tSzEDoaqtM31o61\"]}},\"version\":1}", + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005057600080fd5b50610312806100606000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd57614610082575b600080fd5b61004e61009e565b60405161005b919061025d565b60405180910390f35b61006c6100a4565b6040516100799190610222565b60405180910390f35b61009c60048036038101906100979190610175565b6100c8565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014d9061023d565b60405180910390fd5b8060018190555050565b60008135905061016f816102c5565b92915050565b60006020828403121561018757600080fd5b600061019584828501610160565b91505092915050565b6101a781610289565b82525050565b60006101ba603383610278565b91507f546869732066756e6374696f6e206973207265737472696374656420746f207460008301527f686520636f6e74726163742773206f776e6572000000000000000000000000006020830152604082019050919050565b61021c816102bb565b82525050565b6000602082019050610237600083018461019e565b92915050565b60006020820190508181036000830152610256816101ad565b9050919050565b60006020820190506102726000830184610213565b92915050565b600082825260208201905092915050565b60006102948261029b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6102ce816102bb565b81146102d957600080fd5b5056fea26469706673582212204dc128687188def3da55eafadba595040a5d60c71ccbdc1df594af041f6b00c764736f6c63430008000033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd57614610082575b600080fd5b61004e61009e565b60405161005b919061025d565b60405180910390f35b61006c6100a4565b6040516100799190610222565b60405180910390f35b61009c60048036038101906100979190610175565b6100c8565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014d9061023d565b60405180910390fd5b8060018190555050565b60008135905061016f816102c5565b92915050565b60006020828403121561018757600080fd5b600061019584828501610160565b91505092915050565b6101a781610289565b82525050565b60006101ba603383610278565b91507f546869732066756e6374696f6e206973207265737472696374656420746f207460008301527f686520636f6e74726163742773206f776e6572000000000000000000000000006020830152604082019050919050565b61021c816102bb565b82525050565b6000602082019050610237600083018461019e565b92915050565b60006020820190508181036000830152610256816101ad565b9050919050565b60006020820190506102726000830184610213565b92915050565b600082825260208201905092915050565b60006102948261029b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6102ce816102bb565b81146102d957600080fd5b5056fea26469706673582212204dc128687188def3da55eafadba595040a5d60c71ccbdc1df594af041f6b00c764736f6c63430008000033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2555:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:7", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:7" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:7" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:7" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:7" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:7" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:7" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:7" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:7", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:7", + "type": "" + } + ], + "src": "7:139:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "218:196:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "264:16:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "273:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "276:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "266:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "266:12:7" + }, + "nodeType": "YulExpressionStatement", + "src": "266:12:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "239:7:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "248:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "235:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "235:23:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "260:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "231:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "231:32:7" + }, + "nodeType": "YulIf", + "src": "228:2:7" + }, + { + "nodeType": "YulBlock", + "src": "290:117:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "305:15:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "319:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "309:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "334:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "369:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "380:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "365:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "365:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "389:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "344:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "344:53:7" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "334:6:7" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "188:9:7", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "199:7:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "211:6:7", + "type": "" + } + ], + "src": "152:262:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "485:53:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "502:3:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "525:5:7" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "507:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "507:24:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "495:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "495:37:7" + }, + "nodeType": "YulExpressionStatement", + "src": "495:37:7" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "473:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "480:3:7", + "type": "" + } + ], + "src": "420:118:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "690:237:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "700:74:7", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "766:3:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "771:2:7", + "type": "", + "value": "51" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "707:58:7" + }, + "nodeType": "YulFunctionCall", + "src": "707:67:7" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "700:3:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "795:3:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "800:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "791:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "791:11:7" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "804:34:7", + "type": "", + "value": "This function is restricted to t" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "784:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "784:55:7" + }, + "nodeType": "YulExpressionStatement", + "src": "784:55:7" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "860:3:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "856:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "856:12:7" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "870:21:7", + "type": "", + "value": "he contract's owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "849:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "849:43:7" + }, + "nodeType": "YulExpressionStatement", + "src": "849:43:7" + }, + { + "nodeType": "YulAssignment", + "src": "902:19:7", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "913:3:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "918:2:7", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "909:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "909:12:7" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "902:3:7" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "678:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "686:3:7", + "type": "" + } + ], + "src": "544:383:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "998:53:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1015:3:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1038:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1020:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "1020:24:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1008:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "1008:37:7" + }, + "nodeType": "YulExpressionStatement", + "src": "1008:37:7" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "986:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "993:3:7", + "type": "" + } + ], + "src": "933:118:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1155:124:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1165:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1177:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1188:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1173:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1173:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1165:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1245:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1258:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1269:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1254:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1254:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "1201:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "1201:71:7" + }, + "nodeType": "YulExpressionStatement", + "src": "1201:71:7" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1127:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1139:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1150:4:7", + "type": "" + } + ], + "src": "1057:222:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1456:248:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1466:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1478:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1489:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1474:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1474:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1466:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1513:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1524:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1509:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1509:17:7" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1532:4:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1538:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1528:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1528:20:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1502:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "1502:47:7" + }, + "nodeType": "YulExpressionStatement", + "src": "1502:47:7" + }, + { + "nodeType": "YulAssignment", + "src": "1558:139:7", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1692:4:7" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1566:124:7" + }, + "nodeType": "YulFunctionCall", + "src": "1566:131:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1558:4:7" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1436:9:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1451:4:7", + "type": "" + } + ], + "src": "1285:419:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1808:124:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1818:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1830:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1841:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1826:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1826:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1818:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1898:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1911:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1922:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1907:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1907:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "1854:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "1854:71:7" + }, + "nodeType": "YulExpressionStatement", + "src": "1854:71:7" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1780:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1792:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1803:4:7", + "type": "" + } + ], + "src": "1710:222:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2034:73:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2051:3:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2056:6:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2044:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2044:19:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2044:19:7" + }, + { + "nodeType": "YulAssignment", + "src": "2072:29:7", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2091:3:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2096:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2087:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2087:14:7" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "2072:11:7" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2006:3:7", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2011:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "2022:11:7", + "type": "" + } + ], + "src": "1938:169:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2158:51:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2168:35:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2197:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2179:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "2179:24:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2168:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2140:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2150:7:7", + "type": "" + } + ], + "src": "2113:96:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2260:81:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2270:65:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2285:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2292:42:7", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2281:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2281:54:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2270:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2242:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2252:7:7", + "type": "" + } + ], + "src": "2215:126:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2392:32:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2402:16:7", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2413:5:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2402:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2374:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2384:7:7", + "type": "" + } + ], + "src": "2347:77:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2473:79:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2530:16:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2539:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2542:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2532:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2532:12:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2532:12:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2496:5:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2503:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "2503:24:7" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2493:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "2493:35:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2486:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2486:43:7" + }, + "nodeType": "YulIf", + "src": "2483:2:7" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2466:5:7", + "type": "" + } + ], + "src": "2430:122:7" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 51)\n\n mstore(add(pos, 0), \"This function is restricted to t\")\n\n mstore(add(pos, 32), \"he contract's owner\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\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}\n", + "id": 7, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "66:352:0:-:0;;;113:10;90:33;;;;;;;;;;;;;;;;;;;;66:352;;;;;;;;;;;;;;;;", + "deployedSourceMap": "66:352:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;127:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;90:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;313:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;127:36;;;;:::o;90:33::-;;;;;;;;;;;;:::o;313:103::-;225:5;;;;;;;;;;211:19;;:10;:19;;;196:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;402:9:::1;375:24;:36;;;;313:103:::0;:::o;7:139:7:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:118::-;507:24;525:5;507:24;:::i;:::-;502:3;495:37;485:53;;:::o;544:383::-;;707:67;771:2;766:3;707:67;:::i;:::-;700:74;;804:34;800:1;795:3;791:11;784:55;870:21;865:2;860:3;856:12;849:43;918:2;913:3;909:12;902:19;;690:237;;;:::o;933:118::-;1020:24;1038:5;1020:24;:::i;:::-;1015:3;1008:37;998:53;;:::o;1057:222::-;;1188:2;1177:9;1173:18;1165:26;;1201:71;1269:1;1258:9;1254:17;1245:6;1201:71;:::i;:::-;1155:124;;;;:::o;1285:419::-;;1489:2;1478:9;1474:18;1466:26;;1538:9;1532:4;1528:20;1524:1;1513:9;1509:17;1502:47;1566:131;1692:4;1566:131;:::i;:::-;1558:139;;1456:248;;;:::o;1710:222::-;;1841:2;1830:9;1826:18;1818:26;;1854:71;1922:1;1911:9;1907:17;1898:6;1854:71;:::i;:::-;1808:124;;;;:::o;1938:169::-;;2056:6;2051:3;2044:19;2096:4;2091:3;2087:14;2072:29;;2034:73;;;;:::o;2113:96::-;;2179:24;2197:5;2179:24;:::i;:::-;2168:35;;2158:51;;;:::o;2215:126::-;;2292:42;2285:5;2281:54;2270:65;;2260:81;;;:::o;2347:77::-;;2413:5;2402:16;;2392:32;;;:::o;2430:122::-;2503:24;2521:5;2503:24;:::i;:::-;2496:5;2493:35;2483:2;;2542:1;2539;2532:12;2483:2;2473:79;:::o", + "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\n\ncontract Migrations {\n address public owner = msg.sender;\n uint public last_completed_migration;\n\n modifier restricted() {\n require(\n msg.sender == owner,\n \"This function is restricted to the contract's owner\"\n );\n _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n}\n", + "sourcePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/Migrations.sol", + "ast": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 32 + ] + }, + "id": 33, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.4", + ".22", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "32:32:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 32, + "linearizedBaseContracts": [ + 32 + ], + "name": "Migrations", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 5, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "90:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "90:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "expression": { + "id": 3, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "113:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "113:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "445df0ac", + "id": 7, + "mutability": "mutable", + "name": "last_completed_migration", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "127:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "127:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 18, + "nodeType": "Block", + "src": "190:119:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 10, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "211:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "211:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 12, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "225:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "211:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572", + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "238:53:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", + "typeString": "literal_string \"This function is restricted to the contract's owner\"" + }, + "value": "This function is restricted to the contract's owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", + "typeString": "literal_string \"This function is restricted to the contract's owner\"" + } + ], + "id": 9, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "196:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "196:101:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "196:101:0" + }, + { + "id": 17, + "nodeType": "PlaceholderStatement", + "src": "303:1:0" + } + ] + }, + "id": 19, + "name": "restricted", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 8, + "nodeType": "ParameterList", + "parameters": [], + "src": "187:2:0" + }, + "src": "168:141:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 30, + "nodeType": "Block", + "src": "369:47:0", + "statements": [ + { + "expression": { + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "375:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 27, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "402:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "375:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29, + "nodeType": "ExpressionStatement", + "src": "375:36:0" + } + ] + }, + "functionSelector": "fdacd576", + "id": 31, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 24, + "modifierName": { + "id": 23, + "name": "restricted", + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "358:10:0" + }, + "nodeType": "ModifierInvocation", + "src": "358:10:0" + } + ], + "name": "setCompleted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "completed", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "335:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "335:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "334:16:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "369:0:0" + }, + "scope": 32, + "src": "313:103:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 33, + "src": "66:352:0" + } + ], + "src": "32:387:0" + }, + "legacyAST": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 32 + ] + }, + "id": 33, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.4", + ".22", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "32:32:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 32, + "linearizedBaseContracts": [ + 32 + ], + "name": "Migrations", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 5, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "90:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "90:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "expression": { + "id": 3, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "113:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "113:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "445df0ac", + "id": 7, + "mutability": "mutable", + "name": "last_completed_migration", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "127:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "127:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 18, + "nodeType": "Block", + "src": "190:119:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 10, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "211:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "211:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 12, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "225:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "211:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572", + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "238:53:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", + "typeString": "literal_string \"This function is restricted to the contract's owner\"" + }, + "value": "This function is restricted to the contract's owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", + "typeString": "literal_string \"This function is restricted to the contract's owner\"" + } + ], + "id": 9, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "196:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "196:101:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "196:101:0" + }, + { + "id": 17, + "nodeType": "PlaceholderStatement", + "src": "303:1:0" + } + ] + }, + "id": 19, + "name": "restricted", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 8, + "nodeType": "ParameterList", + "parameters": [], + "src": "187:2:0" + }, + "src": "168:141:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 30, + "nodeType": "Block", + "src": "369:47:0", + "statements": [ + { + "expression": { + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "375:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 27, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "402:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "375:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29, + "nodeType": "ExpressionStatement", + "src": "375:36:0" + } + ] + }, + "functionSelector": "fdacd576", + "id": 31, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 24, + "modifierName": { + "id": 23, + "name": "restricted", + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "358:10:0" + }, + "nodeType": "ModifierInvocation", + "src": "358:10:0" + } + ], + "name": "setCompleted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "completed", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "335:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "335:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "334:16:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "369:0:0" + }, + "scope": 32, + "src": "313:103:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 33, + "src": "66:352:0" + } + ], + "src": "32:387:0" + }, + "compiler": { + "name": "solc", + "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" + }, + "networks": { + "5777": { + "events": {}, + "links": {}, + "address": "0x7c1e45ff7a97ED73229e48d964a8874C5A967C67", + "transactionHash": "0xc906707bc04036b60081a5d7714bef55d1ec099a3d397a467fc4af36422573ed" + } + }, + "schemaVersion": "3.4.1", + "updatedAt": "2021-08-03T17:29:35.639Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/ReentrancyGuard.json b/build/contracts/ReentrancyGuard.json new file mode 100644 index 0000000..7708fa1 --- /dev/null +++ b/build/contracts/ReentrancyGuard.json @@ -0,0 +1,946 @@ +{ + "contractName": "ReentrancyGuard", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x842ccf9a6cd33e17b7acef8372ca42090755217b358fe0c44c98e951ea549d3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6cc5f36034a77d105263ae6d8cc18b16260b4a0f6cdb1a26f21ba3670fdd06dd\",\"dweb:/ipfs/QmdJrJ2LoG546BkfyZPta96BNmaVBfqZoh8kq7PqHuQyPk\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Contract module that helps prevent reentrant calls to a function.\n *\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n * available, which can be applied to functions to make sure there are no nested\n * (reentrant) calls to them.\n *\n * Note that because there is a single `nonReentrant` guard, functions marked as\n * `nonReentrant` may not call one another. This can be worked around by making\n * those functions `private`, and then adding `external` `nonReentrant` entry\n * points to them.\n *\n * TIP: If you would like to learn more about reentrancy and alternative ways\n * to protect against it, check out our blog post\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\n */\nabstract contract ReentrancyGuard {\n // Booleans are more expensive than uint256 or any type that takes up a full\n // word because each write operation emits an extra SLOAD to first read the\n // slot's contents, replace the bits taken up by the boolean, and then write\n // back. This is the compiler's defense against contract upgrades and\n // pointer aliasing, and it cannot be disabled.\n\n // The values being non-zero value makes deployment a bit more expensive,\n // but in exchange the refund on every call to nonReentrant will be lower in\n // amount. Since refunds are capped to a percentage of the total\n // transaction's gas, it is best to keep them low in cases like this one, to\n // increase the likelihood of the full refund coming into effect.\n uint256 private constant _NOT_ENTERED = 1;\n uint256 private constant _ENTERED = 2;\n\n uint256 private _status;\n\n constructor() {\n _status = _NOT_ENTERED;\n }\n\n /**\n * @dev Prevents a contract from calling itself, directly or indirectly.\n * Calling a `nonReentrant` function from another `nonReentrant`\n * function is not supported. It is possible to prevent this from happening\n * by making the `nonReentrant` function external, and make it call a\n * `private` function that does the actual work.\n */\n modifier nonReentrant() {\n // On the first call to nonReentrant, _notEntered will be true\n require(_status != _ENTERED, \"ReentrancyGuard: reentrant call\");\n\n // Any calls to nonReentrant after this point will fail\n _status = _ENTERED;\n\n _;\n\n // By storing the original value once again, a refund is triggered (see\n // https://eips.ethereum.org/EIPS/eip-2200)\n _status = _NOT_ENTERED;\n }\n}\n", + "sourcePath": "@openzeppelin/contracts/security/ReentrancyGuard.sol", + "ast": { + "absolutePath": "@openzeppelin/contracts/security/ReentrancyGuard.sol", + "exportedSymbols": { + "ReentrancyGuard": [ + 1269 + ] + }, + "id": 1270, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1231, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:2" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1232, + "nodeType": "StructuredDocumentation", + "src": "58:750:2", + "text": " @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]." + }, + "fullyImplemented": true, + "id": 1269, + "linearizedBaseContracts": [ + 1269 + ], + "name": "ReentrancyGuard", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 1235, + "mutability": "constant", + "name": "_NOT_ENTERED", + "nodeType": "VariableDeclaration", + "scope": 1269, + "src": "1597:41:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1597:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1637:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 1238, + "mutability": "constant", + "name": "_ENTERED", + "nodeType": "VariableDeclaration", + "scope": 1269, + "src": "1644:37:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1644:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32", + "id": 1237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1680:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1240, + "mutability": "mutable", + "name": "_status", + "nodeType": "VariableDeclaration", + "scope": 1269, + "src": "1688:23:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1688:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1247, + "nodeType": "Block", + "src": "1732:39:2", + "statements": [ + { + "expression": { + "id": 1245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1243, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "1742:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1244, + "name": "_NOT_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1235, + "src": "1752:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1742:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1246, + "nodeType": "ExpressionStatement", + "src": "1742:22:2" + } + ] + }, + "id": 1248, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1241, + "nodeType": "ParameterList", + "parameters": [], + "src": "1729:2:2" + }, + "returnParameters": { + "id": 1242, + "nodeType": "ParameterList", + "parameters": [], + "src": "1732:0:2" + }, + "scope": 1269, + "src": "1718:53:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1267, + "nodeType": "Block", + "src": "2170:421:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1252, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "2259:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1253, + "name": "_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2270:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2259:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2280:33:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" + }, + "value": "ReentrancyGuard: reentrant call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" + } + ], + "id": 1251, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2251:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2251:63:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1257, + "nodeType": "ExpressionStatement", + "src": "2251:63:2" + }, + { + "expression": { + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1258, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "2389:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1259, + "name": "_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2399:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2389:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1261, + "nodeType": "ExpressionStatement", + "src": "2389:18:2" + }, + { + "id": 1262, + "nodeType": "PlaceholderStatement", + "src": "2418:1:2" + }, + { + "expression": { + "id": 1265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1263, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "2562:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1264, + "name": "_NOT_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1235, + "src": "2572:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2562:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1266, + "nodeType": "ExpressionStatement", + "src": "2562:22:2" + } + ] + }, + "documentation": { + "id": 1249, + "nodeType": "StructuredDocumentation", + "src": "1777:364:2", + "text": " @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and make it call a\n `private` function that does the actual work." + }, + "id": 1268, + "name": "nonReentrant", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1250, + "nodeType": "ParameterList", + "parameters": [], + "src": "2167:2:2" + }, + "src": "2146:445:2", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1270, + "src": "809:1784:2" + } + ], + "src": "33:2561:2" + }, + "legacyAST": { + "absolutePath": "@openzeppelin/contracts/security/ReentrancyGuard.sol", + "exportedSymbols": { + "ReentrancyGuard": [ + 1269 + ] + }, + "id": 1270, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1231, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:2" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1232, + "nodeType": "StructuredDocumentation", + "src": "58:750:2", + "text": " @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]." + }, + "fullyImplemented": true, + "id": 1269, + "linearizedBaseContracts": [ + 1269 + ], + "name": "ReentrancyGuard", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 1235, + "mutability": "constant", + "name": "_NOT_ENTERED", + "nodeType": "VariableDeclaration", + "scope": 1269, + "src": "1597:41:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1597:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1637:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 1238, + "mutability": "constant", + "name": "_ENTERED", + "nodeType": "VariableDeclaration", + "scope": 1269, + "src": "1644:37:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1644:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32", + "id": 1237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1680:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1240, + "mutability": "mutable", + "name": "_status", + "nodeType": "VariableDeclaration", + "scope": 1269, + "src": "1688:23:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1688:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1247, + "nodeType": "Block", + "src": "1732:39:2", + "statements": [ + { + "expression": { + "id": 1245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1243, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "1742:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1244, + "name": "_NOT_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1235, + "src": "1752:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1742:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1246, + "nodeType": "ExpressionStatement", + "src": "1742:22:2" + } + ] + }, + "id": 1248, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1241, + "nodeType": "ParameterList", + "parameters": [], + "src": "1729:2:2" + }, + "returnParameters": { + "id": 1242, + "nodeType": "ParameterList", + "parameters": [], + "src": "1732:0:2" + }, + "scope": 1269, + "src": "1718:53:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1267, + "nodeType": "Block", + "src": "2170:421:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1252, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "2259:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1253, + "name": "_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2270:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2259:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2280:33:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" + }, + "value": "ReentrancyGuard: reentrant call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" + } + ], + "id": 1251, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2251:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2251:63:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1257, + "nodeType": "ExpressionStatement", + "src": "2251:63:2" + }, + { + "expression": { + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1258, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "2389:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1259, + "name": "_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2399:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2389:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1261, + "nodeType": "ExpressionStatement", + "src": "2389:18:2" + }, + { + "id": 1262, + "nodeType": "PlaceholderStatement", + "src": "2418:1:2" + }, + { + "expression": { + "id": 1265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1263, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "2562:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1264, + "name": "_NOT_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1235, + "src": "2572:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2562:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1266, + "nodeType": "ExpressionStatement", + "src": "2562:22:2" + } + ] + }, + "documentation": { + "id": 1249, + "nodeType": "StructuredDocumentation", + "src": "1777:364:2", + "text": " @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and make it call a\n `private` function that does the actual work." + }, + "id": 1268, + "name": "nonReentrant", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1250, + "nodeType": "ParameterList", + "parameters": [], + "src": "2167:2:2" + }, + "src": "2146:445:2", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1270, + "src": "809:1784:2" + } + ], + "src": "33:2561:2" + }, + "compiler": { + "name": "solc", + "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.1", + "updatedAt": "2021-07-23T13:44:59.382Z", + "devdoc": { + "details": "Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/SafeERC20.json b/build/contracts/SafeERC20.json new file mode 100644 index 0000000..3180654 --- /dev/null +++ b/build/contracts/SafeERC20.json @@ -0,0 +1,6029 @@ +{ + "contractName": "SafeERC20", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x02348b2e4b9f3200c7e3907c5c2661643a6d8520e9f79939fbb9b4005a54894d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d41d627f4ef9c6006df8c2d01227d3cf4a6c3359b5704c629d88933272eecadd\",\"dweb:/ipfs/QmYDo7MvMsvuDxuJZ9RC9zFganS3Tm8RYzSmBP5qSmJfuY\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x3b4820cac4f127869f6eb496c1d74fa6ac86ed24071e0f94742e6aef20e7252c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23e1c7303c30a2ef9c9b3f861cda15c78e4c9697b4a7988f2bf7b21c392a02fb\",\"dweb:/ipfs/QmWQJh5MsXJZjSTzAs9n5gtrqWYgXwkBa6xfwD5KKGQgSC\"]}},\"version\":1}", + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220855350113a793667829878183d771dd9966a1def1e3d7ffc33d6691f70a3d18164736f6c63430008000033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220855350113a793667829878183d771dd9966a1def1e3d7ffc33d6691f70a3d18164736f6c63430008000033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "578:3270:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "578:3270:4:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n function safeIncreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n function safeDecreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n unchecked {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n if (returndata.length > 0) {\n // Return data is optional\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n", + "sourcePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "exportedSymbols": { + "Address": [ + 1867 + ], + "IERC20": [ + 1347 + ], + "SafeERC20": [ + 1571 + ] + }, + "id": 1572, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1349, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:4" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 1350, + "nodeType": "ImportDirective", + "scope": 1572, + "sourceUnit": 1348, + "src": "58:23:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "file": "../../../utils/Address.sol", + "id": 1351, + "nodeType": "ImportDirective", + "scope": 1572, + "sourceUnit": 1868, + "src": "82:36:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1352, + "nodeType": "StructuredDocumentation", + "src": "120:457:4", + "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc." + }, + "fullyImplemented": true, + "id": 1571, + "linearizedBaseContracts": [ + 1571 + ], + "name": "SafeERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1355, + "libraryName": { + "id": 1353, + "name": "Address", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1867, + "src": "608:7:4" + }, + "nodeType": "UsingForDirective", + "src": "602:26:4", + "typeName": { + "id": 1354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "620:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "body": { + "id": 1377, + "nodeType": "Block", + "src": "736:103:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1366, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1358, + "src": "766:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1369, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1358, + "src": "796:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1296, + "src": "796:14:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "796:23:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1372, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1360, + "src": "821:2:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1373, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "825:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1367, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "773:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "773:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "773:58:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1365, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "746:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1347_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "746:86:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1376, + "nodeType": "ExpressionStatement", + "src": "746:86:4" + } + ] + }, + "id": 1378, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1358, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1378, + "src": "665:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1357, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1356, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "665:6:4" + }, + "referencedDeclaration": 1347, + "src": "665:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1360, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1378, + "src": "687:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "687:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1378, + "src": "707:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "707:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "655:71:4" + }, + "returnParameters": { + "id": 1364, + "nodeType": "ParameterList", + "parameters": [], + "src": "736:0:4" + }, + "scope": 1571, + "src": "634:205:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1403, + "nodeType": "Block", + "src": "973:113:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1391, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "1003:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1394, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "1033:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1328, + "src": "1033:18:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "1033:27:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1397, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1383, + "src": "1062:4:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1398, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1385, + "src": "1068:2:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1399, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1387, + "src": "1072:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1392, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "1010:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "1010:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1010:68:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1390, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "983:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1347_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "983:96:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1402, + "nodeType": "ExpressionStatement", + "src": "983:96:4" + } + ] + }, + "id": 1404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1381, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1404, + "src": "880:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1380, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1379, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "880:6:4" + }, + "referencedDeclaration": 1347, + "src": "880:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1383, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1404, + "src": "902:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "902:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1385, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1404, + "src": "924:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1384, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "924:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1387, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1404, + "src": "944:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1386, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "944:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "870:93:4" + }, + "returnParameters": { + "id": 1389, + "nodeType": "ParameterList", + "parameters": [], + "src": "973:0:4" + }, + "scope": 1571, + "src": "845:241:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1447, + "nodeType": "Block", + "src": "1452:497:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1416, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1412, + "src": "1701:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1710:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1701:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1419, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1700:12:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1424, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "1741:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + ], + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1733:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1733:7:4", + "typeDescriptions": {} + } + }, + "id": 1425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1733:13:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1426, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "1748:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1420, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1408, + "src": "1717:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 1306, + "src": "1717:15:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1717:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1760:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1717:44:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1430, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1716:46:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1700:62:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1776:56:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + }, + "value": "SafeERC20: approve from non-zero to non-zero allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + } + ], + "id": 1415, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1679:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1679:163:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1434, + "nodeType": "ExpressionStatement", + "src": "1679:163:4" + }, + { + "expression": { + "arguments": [ + { + "id": 1436, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1408, + "src": "1872:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1439, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1408, + "src": "1902:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 1316, + "src": "1902:13:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "1902:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1442, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "1926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1443, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1412, + "src": "1935:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1437, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "1879:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "1879:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1879:62:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1435, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "1852:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1347_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1852:90:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1446, + "nodeType": "ExpressionStatement", + "src": "1852:90:4" + } + ] + }, + "documentation": { + "id": 1405, + "nodeType": "StructuredDocumentation", + "src": "1092:249:4", + "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead." + }, + "id": 1448, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeApprove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1448, + "src": "1376:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1407, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1406, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "1376:6:4" + }, + "referencedDeclaration": 1347, + "src": "1376:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1410, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1448, + "src": "1398:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1398:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1412, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1448, + "src": "1423:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1411, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1423:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1366:76:4" + }, + "returnParameters": { + "id": 1414, + "nodeType": "ParameterList", + "parameters": [], + "src": "1452:0:4" + }, + "scope": 1571, + "src": "1346:603:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1483, + "nodeType": "Block", + "src": "2071:194:4", + "statements": [ + { + "assignments": [ + 1459 + ], + "declarations": [ + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "newAllowance", + "nodeType": "VariableDeclaration", + "scope": 1483, + "src": "2081:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1458, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2081:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1470, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1464, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2128:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + ], + "id": 1463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2120:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2120:7:4", + "typeDescriptions": {} + } + }, + "id": 1465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2120:13:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1466, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1453, + "src": "2135:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1460, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1451, + "src": "2104:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 1306, + "src": "2104:15:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2104:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1468, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1455, + "src": "2146:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2104:47:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2081:70:4" + }, + { + "expression": { + "arguments": [ + { + "id": 1472, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1451, + "src": "2181:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1475, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1451, + "src": "2211:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 1316, + "src": "2211:13:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2211:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1478, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1453, + "src": "2235:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1479, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "2244:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1473, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "2188:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2188:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2188:69:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1471, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "2161:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1347_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2161:97:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1482, + "nodeType": "ExpressionStatement", + "src": "2161:97:4" + } + ] + }, + "id": 1484, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeIncreaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1451, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1484, + "src": "1995:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1450, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1449, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "1995:6:4" + }, + "referencedDeclaration": 1347, + "src": "1995:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1453, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1484, + "src": "2017:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2017:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1455, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1484, + "src": "2042:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2042:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1985:76:4" + }, + "returnParameters": { + "id": 1457, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:0:4" + }, + "scope": 1571, + "src": "1955:310:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1531, + "nodeType": "Block", + "src": "2387:370:4", + "statements": [ + { + "id": 1530, + "nodeType": "UncheckedBlock", + "src": "2397:354:4", + "statements": [ + { + "assignments": [ + 1495 + ], + "declarations": [ + { + "constant": false, + "id": 1495, + "mutability": "mutable", + "name": "oldAllowance", + "nodeType": "VariableDeclaration", + "scope": 1530, + "src": "2421:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2421:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1504, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1500, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2468:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + ], + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2460:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2460:7:4", + "typeDescriptions": {} + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2460:13:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1502, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1489, + "src": "2475:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1496, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1487, + "src": "2444:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 1306, + "src": "2444:15:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2444:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2421:62:4" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1506, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1495, + "src": "2505:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1507, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "2521:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2505:21:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 1509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2528:43:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + }, + "value": "SafeERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + } + ], + "id": 1505, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2497:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2497:75:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1511, + "nodeType": "ExpressionStatement", + "src": "2497:75:4" + }, + { + "assignments": [ + 1513 + ], + "declarations": [ + { + "constant": false, + "id": 1513, + "mutability": "mutable", + "name": "newAllowance", + "nodeType": "VariableDeclaration", + "scope": 1530, + "src": "2586:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1512, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2586:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1517, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1514, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1495, + "src": "2609:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1515, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "2624:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2609:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2586:43:4" + }, + { + "expression": { + "arguments": [ + { + "id": 1519, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1487, + "src": "2663:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1522, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1487, + "src": "2693:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 1316, + "src": "2693:13:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2693:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1525, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1489, + "src": "2717:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1526, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1513, + "src": "2726:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1520, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "2670:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2670:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2670:69:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1518, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "2643:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1347_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2643:97:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "2643:97:4" + } + ] + } + ] + }, + "id": 1532, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeDecreaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1487, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1532, + "src": "2311:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1486, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1485, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "2311:6:4" + }, + "referencedDeclaration": 1347, + "src": "2311:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1532, + "src": "2333:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2333:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1491, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1532, + "src": "2358:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2358:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2301:76:4" + }, + "returnParameters": { + "id": 1493, + "nodeType": "ParameterList", + "parameters": [], + "src": "2387:0:4" + }, + "scope": 1571, + "src": "2271:486:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1569, + "nodeType": "Block", + "src": "3210:636:4", + "statements": [ + { + "assignments": [ + 1542 + ], + "declarations": [ + { + "constant": false, + "id": 1542, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1569, + "src": "3559:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1541, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3559:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1551, + "initialValue": { + "arguments": [ + { + "id": 1548, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1538, + "src": "3613:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3619:34:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + }, + "value": "SafeERC20: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + } + ], + "expression": { + "arguments": [ + { + "id": 1545, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1536, + "src": "3593:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + ], + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3585:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3585:7:4", + "typeDescriptions": {} + } + }, + "id": 1546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3585:14:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1662, + "src": "3585:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3585:69:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3559:95:4" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1552, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "3668:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3668:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3688:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3668:21:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1568, + "nodeType": "IfStatement", + "src": "3664:176:4", + "trueBody": { + "id": 1567, + "nodeType": "Block", + "src": "3691:149:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1559, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "3763:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 1561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3776:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 1560, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3776:4:4", + "typeDescriptions": {} + } + } + ], + "id": 1562, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3775:6:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "id": 1557, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "3752:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "3752:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3752:30:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3784:44:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + }, + "value": "SafeERC20: ERC20 operation did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + } + ], + "id": 1556, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3744:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3744:85:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1566, + "nodeType": "ExpressionStatement", + "src": "3744:85:4" + } + ] + } + } + ] + }, + "documentation": { + "id": 1533, + "nodeType": "StructuredDocumentation", + "src": "2763:372:4", + "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)." + }, + "id": 1570, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callOptionalReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1536, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1570, + "src": "3169:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1535, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1534, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "3169:6:4" + }, + "referencedDeclaration": 1347, + "src": "3169:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1538, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1570, + "src": "3183:17:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1537, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3183:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3168:33:4" + }, + "returnParameters": { + "id": 1540, + "nodeType": "ParameterList", + "parameters": [], + "src": "3210:0:4" + }, + "scope": 1571, + "src": "3140:706:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1572, + "src": "578:3270:4" + } + ], + "src": "33:3816:4" + }, + "legacyAST": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "exportedSymbols": { + "Address": [ + 1867 + ], + "IERC20": [ + 1347 + ], + "SafeERC20": [ + 1571 + ] + }, + "id": 1572, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1349, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:4" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 1350, + "nodeType": "ImportDirective", + "scope": 1572, + "sourceUnit": 1348, + "src": "58:23:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "file": "../../../utils/Address.sol", + "id": 1351, + "nodeType": "ImportDirective", + "scope": 1572, + "sourceUnit": 1868, + "src": "82:36:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1352, + "nodeType": "StructuredDocumentation", + "src": "120:457:4", + "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc." + }, + "fullyImplemented": true, + "id": 1571, + "linearizedBaseContracts": [ + 1571 + ], + "name": "SafeERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1355, + "libraryName": { + "id": 1353, + "name": "Address", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1867, + "src": "608:7:4" + }, + "nodeType": "UsingForDirective", + "src": "602:26:4", + "typeName": { + "id": 1354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "620:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "body": { + "id": 1377, + "nodeType": "Block", + "src": "736:103:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1366, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1358, + "src": "766:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1369, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1358, + "src": "796:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1296, + "src": "796:14:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "796:23:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1372, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1360, + "src": "821:2:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1373, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "825:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1367, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "773:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "773:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "773:58:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1365, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "746:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1347_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "746:86:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1376, + "nodeType": "ExpressionStatement", + "src": "746:86:4" + } + ] + }, + "id": 1378, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1358, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1378, + "src": "665:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1357, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1356, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "665:6:4" + }, + "referencedDeclaration": 1347, + "src": "665:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1360, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1378, + "src": "687:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "687:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1378, + "src": "707:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "707:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "655:71:4" + }, + "returnParameters": { + "id": 1364, + "nodeType": "ParameterList", + "parameters": [], + "src": "736:0:4" + }, + "scope": 1571, + "src": "634:205:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1403, + "nodeType": "Block", + "src": "973:113:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1391, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "1003:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1394, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "1033:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1328, + "src": "1033:18:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "1033:27:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1397, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1383, + "src": "1062:4:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1398, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1385, + "src": "1068:2:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1399, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1387, + "src": "1072:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1392, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "1010:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "1010:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1010:68:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1390, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "983:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1347_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "983:96:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1402, + "nodeType": "ExpressionStatement", + "src": "983:96:4" + } + ] + }, + "id": 1404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1381, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1404, + "src": "880:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1380, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1379, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "880:6:4" + }, + "referencedDeclaration": 1347, + "src": "880:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1383, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1404, + "src": "902:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "902:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1385, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1404, + "src": "924:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1384, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "924:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1387, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1404, + "src": "944:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1386, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "944:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "870:93:4" + }, + "returnParameters": { + "id": 1389, + "nodeType": "ParameterList", + "parameters": [], + "src": "973:0:4" + }, + "scope": 1571, + "src": "845:241:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1447, + "nodeType": "Block", + "src": "1452:497:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1416, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1412, + "src": "1701:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1710:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1701:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1419, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1700:12:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1424, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "1741:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + ], + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1733:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1733:7:4", + "typeDescriptions": {} + } + }, + "id": 1425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1733:13:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1426, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "1748:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1420, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1408, + "src": "1717:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 1306, + "src": "1717:15:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1717:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1760:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1717:44:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1430, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1716:46:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1700:62:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1776:56:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + }, + "value": "SafeERC20: approve from non-zero to non-zero allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + } + ], + "id": 1415, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1679:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1679:163:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1434, + "nodeType": "ExpressionStatement", + "src": "1679:163:4" + }, + { + "expression": { + "arguments": [ + { + "id": 1436, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1408, + "src": "1872:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1439, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1408, + "src": "1902:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 1316, + "src": "1902:13:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "1902:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1442, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "1926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1443, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1412, + "src": "1935:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1437, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "1879:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "1879:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1879:62:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1435, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "1852:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1347_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1852:90:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1446, + "nodeType": "ExpressionStatement", + "src": "1852:90:4" + } + ] + }, + "documentation": { + "id": 1405, + "nodeType": "StructuredDocumentation", + "src": "1092:249:4", + "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead." + }, + "id": 1448, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeApprove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1448, + "src": "1376:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1407, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1406, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "1376:6:4" + }, + "referencedDeclaration": 1347, + "src": "1376:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1410, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1448, + "src": "1398:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1398:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1412, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1448, + "src": "1423:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1411, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1423:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1366:76:4" + }, + "returnParameters": { + "id": 1414, + "nodeType": "ParameterList", + "parameters": [], + "src": "1452:0:4" + }, + "scope": 1571, + "src": "1346:603:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1483, + "nodeType": "Block", + "src": "2071:194:4", + "statements": [ + { + "assignments": [ + 1459 + ], + "declarations": [ + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "newAllowance", + "nodeType": "VariableDeclaration", + "scope": 1483, + "src": "2081:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1458, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2081:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1470, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1464, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2128:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + ], + "id": 1463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2120:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2120:7:4", + "typeDescriptions": {} + } + }, + "id": 1465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2120:13:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1466, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1453, + "src": "2135:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1460, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1451, + "src": "2104:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 1306, + "src": "2104:15:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2104:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1468, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1455, + "src": "2146:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2104:47:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2081:70:4" + }, + { + "expression": { + "arguments": [ + { + "id": 1472, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1451, + "src": "2181:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1475, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1451, + "src": "2211:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 1316, + "src": "2211:13:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2211:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1478, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1453, + "src": "2235:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1479, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "2244:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1473, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "2188:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2188:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2188:69:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1471, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "2161:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1347_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2161:97:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1482, + "nodeType": "ExpressionStatement", + "src": "2161:97:4" + } + ] + }, + "id": 1484, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeIncreaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1451, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1484, + "src": "1995:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1450, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1449, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "1995:6:4" + }, + "referencedDeclaration": 1347, + "src": "1995:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1453, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1484, + "src": "2017:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2017:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1455, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1484, + "src": "2042:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2042:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1985:76:4" + }, + "returnParameters": { + "id": 1457, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:0:4" + }, + "scope": 1571, + "src": "1955:310:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1531, + "nodeType": "Block", + "src": "2387:370:4", + "statements": [ + { + "id": 1530, + "nodeType": "UncheckedBlock", + "src": "2397:354:4", + "statements": [ + { + "assignments": [ + 1495 + ], + "declarations": [ + { + "constant": false, + "id": 1495, + "mutability": "mutable", + "name": "oldAllowance", + "nodeType": "VariableDeclaration", + "scope": 1530, + "src": "2421:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2421:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1504, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1500, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2468:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1571", + "typeString": "library SafeERC20" + } + ], + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2460:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2460:7:4", + "typeDescriptions": {} + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2460:13:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1502, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1489, + "src": "2475:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1496, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1487, + "src": "2444:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 1306, + "src": "2444:15:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2444:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2421:62:4" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1506, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1495, + "src": "2505:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1507, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "2521:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2505:21:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 1509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2528:43:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + }, + "value": "SafeERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + } + ], + "id": 1505, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2497:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2497:75:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1511, + "nodeType": "ExpressionStatement", + "src": "2497:75:4" + }, + { + "assignments": [ + 1513 + ], + "declarations": [ + { + "constant": false, + "id": 1513, + "mutability": "mutable", + "name": "newAllowance", + "nodeType": "VariableDeclaration", + "scope": 1530, + "src": "2586:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1512, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2586:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1517, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1514, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1495, + "src": "2609:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1515, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "2624:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2609:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2586:43:4" + }, + { + "expression": { + "arguments": [ + { + "id": 1519, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1487, + "src": "2663:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1522, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1487, + "src": "2693:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "id": 1523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 1316, + "src": "2693:13:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2693:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1525, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1489, + "src": "2717:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1526, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1513, + "src": "2726:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1520, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "2670:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2670:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2670:69:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1518, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "2643:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1347_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2643:97:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "2643:97:4" + } + ] + } + ] + }, + "id": 1532, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeDecreaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1487, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1532, + "src": "2311:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1486, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1485, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "2311:6:4" + }, + "referencedDeclaration": 1347, + "src": "2311:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1532, + "src": "2333:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2333:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1491, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1532, + "src": "2358:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2358:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2301:76:4" + }, + "returnParameters": { + "id": 1493, + "nodeType": "ParameterList", + "parameters": [], + "src": "2387:0:4" + }, + "scope": 1571, + "src": "2271:486:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1569, + "nodeType": "Block", + "src": "3210:636:4", + "statements": [ + { + "assignments": [ + 1542 + ], + "declarations": [ + { + "constant": false, + "id": 1542, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1569, + "src": "3559:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1541, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3559:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1551, + "initialValue": { + "arguments": [ + { + "id": 1548, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1538, + "src": "3613:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3619:34:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + }, + "value": "SafeERC20: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + } + ], + "expression": { + "arguments": [ + { + "id": 1545, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1536, + "src": "3593:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + ], + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3585:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3585:7:4", + "typeDescriptions": {} + } + }, + "id": 1546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3585:14:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1662, + "src": "3585:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3585:69:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3559:95:4" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1552, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "3668:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3668:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3688:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3668:21:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1568, + "nodeType": "IfStatement", + "src": "3664:176:4", + "trueBody": { + "id": 1567, + "nodeType": "Block", + "src": "3691:149:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1559, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "3763:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 1561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3776:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 1560, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3776:4:4", + "typeDescriptions": {} + } + } + ], + "id": 1562, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3775:6:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "id": 1557, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "3752:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "3752:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3752:30:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3784:44:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + }, + "value": "SafeERC20: ERC20 operation did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + } + ], + "id": 1556, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3744:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3744:85:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1566, + "nodeType": "ExpressionStatement", + "src": "3744:85:4" + } + ] + } + } + ] + }, + "documentation": { + "id": 1533, + "nodeType": "StructuredDocumentation", + "src": "2763:372:4", + "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)." + }, + "id": 1570, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callOptionalReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1536, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1570, + "src": "3169:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1535, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1534, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "3169:6:4" + }, + "referencedDeclaration": 1347, + "src": "3169:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1347", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1538, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1570, + "src": "3183:17:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1537, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3183:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3168:33:4" + }, + "returnParameters": { + "id": 1540, + "nodeType": "ParameterList", + "parameters": [], + "src": "3210:0:4" + }, + "scope": 1571, + "src": "3140:706:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1572, + "src": "578:3270:4" + } + ], + "src": "33:3816:4" + }, + "compiler": { + "name": "solc", + "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.1", + "updatedAt": "2021-07-23T13:44:59.385Z", + "devdoc": { + "details": "Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.", + "kind": "dev", + "methods": {}, + "title": "SafeERC20", + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json new file mode 100644 index 0000000..10c9fd4 --- /dev/null +++ b/build/contracts/SafeMath.json @@ -0,0 +1,9697 @@ +{ + "contractName": "SafeMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol\":{\"keccak256\":\"0x362b398cb93c12ada3f91c36de4f159f532bac04b8d3967f16c469a97b8ce2ca\",\"urls\":[\"bzz-raw://7937eaa10109ec9ed84fcf9c9cf8b3c89c7289ca3696a6cc4ad05b830e3c5c43\",\"dweb:/ipfs/QmVRwgXzBeA8pvr1NN62koBaHCp3fZjTwcdu3MqWA6gkrX\"]}},\"version\":1}", + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203250dd4e461d43a650f438d5f547e02100b544e0fa8779da7fdb8658a6d538e064736f6c63430008000033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203250dd4e461d43a650f438d5f547e02100b544e0fa8779da7fdb8658a6d538e064736f6c63430008000033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "2843:284:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "2843:284:2:-:0;;;;;;;;", + "source": "pragma solidity >=0.8.0 <0.9.0;\n\ninterface IERC20 {\n\n function totalSupply() external view returns (uint256);\n function balanceOf(address account) external view returns (uint256);\n function allowance(address owner, address spender) external view returns (uint256);\n\n function transfer(address recipient, uint256 amount) external returns (bool);\n function approve(address spender, uint256 amount) external returns (bool);\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n }\n\n\ncontract Usdc is IERC20 {\n\n string public constant name = \"Usdc\";\n string public constant symbol = \"USDC\";\n uint8 public constant decimals = 3;\n\n\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n event Transfer(address indexed from, address indexed to, uint tokens);\n\n\n mapping(address => uint256) balances;\n\n mapping(address => mapping (address => uint256)) allowed;\n\n uint256 totalSupply_;\n\n using SafeMath for uint256;\n\n\n constructor(){\n totalSupply_ = 100000000;\n balances[msg.sender] = totalSupply_;\n }\n\n function totalSupply() public override view returns (uint256) {\n return totalSupply_;\n }\n\n function balanceOf(address tokenOwner) public override view returns (uint256) {\n return balances[tokenOwner];\n }\n\n function transfer(address receiver, uint256 numTokens) public override returns (bool) {\n require(numTokens <= balances[msg.sender]);\n balances[msg.sender] = balances[msg.sender].sub(numTokens);\n balances[receiver] = balances[receiver].add(numTokens);\n emit Transfer(msg.sender, receiver, numTokens);\n return true;\n }\n\n function approve(address delegate, uint256 numTokens) public override returns (bool) {\n allowed[msg.sender][delegate] = numTokens;\n emit Approval(msg.sender, delegate, numTokens);\n return true;\n }\n\n function allowance(address owner, address delegate) public override view returns (uint) {\n return allowed[owner][delegate];\n }\n\n function transferFrom(address owner, address buyer, uint256 numTokens) public override returns (bool) {\n require(numTokens <= balances[owner]);\n require(numTokens <= allowed[owner][msg.sender]);\n\n balances[owner] = balances[owner].sub(numTokens);\n allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens);\n balances[buyer] = balances[buyer].add(numTokens);\n emit Transfer(owner, buyer, numTokens);\n return true;\n }\n\n function mint(address account, uint256 amount) public {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n totalSupply_ += amount;\n balances[account] += amount;\n emit Transfer(address(0), account, amount);\n\n \n }\n}\n\nlibrary SafeMath {\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n assert(c >= a);\n return c;\n }\n}\n", + "sourcePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol", + "ast": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol", + "exportedSymbols": { + "IERC20": [ + 1642 + ], + "SafeMath": [ + 1982 + ], + "Usdc": [ + 1937 + ] + }, + "id": 1983, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1591, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:31:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1642, + "linearizedBaseContracts": [ + 1642 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 1596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1592, + "nodeType": "ParameterList", + "parameters": [], + "src": "77:2:2" + }, + "returnParameters": { + "id": 1595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "103:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "103:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "102:9:2" + }, + "scope": 1642, + "src": "57:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 1603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1598, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "136:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "136:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "135:17:2" + }, + "returnParameters": { + "id": 1602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "176:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "176:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "175:9:2" + }, + "scope": 1642, + "src": "117:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 1612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "209:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "224:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "224:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "208:32:2" + }, + "returnParameters": { + "id": 1611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "264:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "264:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "263:9:2" + }, + "scope": 1642, + "src": "190:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 1621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1614, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "297:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1616, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "316:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "296:35:2" + }, + "returnParameters": { + "id": 1620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "350:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "350:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "349:6:2" + }, + "scope": 1642, + "src": "279:77:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 1630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "378:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "378:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "395:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "377:33:2" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "429:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "429:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "428:6:2" + }, + "scope": 1642, + "src": "361:74:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 1641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1632, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "462:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "462:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1634, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "478:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "478:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1636, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "497:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "461:51:2" + }, + "returnParameters": { + "id": 1640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "531:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "531:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "530:6:2" + }, + "scope": 1642, + "src": "440:97:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1983, + "src": "33:509:2" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1643, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1642, + "src": "562:6:2" + }, + "id": 1644, + "nodeType": "InheritanceSpecifier", + "src": "562:6:2" + } + ], + "contractDependencies": [ + 1642 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1937, + "linearizedBaseContracts": [ + 1937, + 1642 + ], + "name": "Usdc", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 1647, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "576:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1645, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "576:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55736463", + "id": 1646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "606:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2fb347e0e3919a9e5bc2106eef1247f792eab71f04998e6965b96d8c2acecc9", + "typeString": "literal_string \"Usdc\"" + }, + "value": "Usdc" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 1650, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "618:38:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "618:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55534443", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "650:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", + "typeString": "literal_string \"USDC\"" + }, + "value": "USDC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 1653, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "662:34:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1651, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "662:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "33", + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "695:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 1661, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1655, + "indexed": true, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "719:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "719:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1657, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "747:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "747:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "772:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "772:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "718:66:2" + }, + "src": "704:81:2" + }, + { + "anonymous": false, + "id": 1669, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 1668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1663, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "805:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "827:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "827:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "847:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "847:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "804:55:2" + }, + "src": "790:70:2" + }, + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "867:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1672, + "keyType": { + "id": 1670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "875:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "867:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "886:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1679, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "910:56:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 1678, + "keyType": { + "id": 1674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "918:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "910:48:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 1677, + "keyType": { + "id": 1675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "938:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "929:28:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "949:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1681, + "mutability": "mutable", + "name": "totalSupply_", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "973:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "973:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "id": 1684, + "libraryName": { + "id": 1682, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1982, + "src": "1006:8:2" + }, + "nodeType": "UsingForDirective", + "src": "1000:27:2", + "typeName": { + "id": 1683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1019:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "1046:78:2", + "statements": [ + { + "expression": { + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1687, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1052:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "313030303030303030", + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1067:9:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "100000000" + }, + "src": "1052:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1690, + "nodeType": "ExpressionStatement", + "src": "1052:24:2" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1691, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1082:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1694, + "indexExpression": { + "expression": { + "id": 1692, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1091:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1091:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1082:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1105:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1082:35:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1082:35:2" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1685, + "nodeType": "ParameterList", + "parameters": [], + "src": "1044:2:2" + }, + "returnParameters": { + "id": 1686, + "nodeType": "ParameterList", + "parameters": [], + "src": "1046:0:2" + }, + "scope": 1937, + "src": "1033:91:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1596 + ], + "body": { + "id": 1707, + "nodeType": "Block", + "src": "1192:32:2", + "statements": [ + { + "expression": { + "id": 1705, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1205:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1704, + "id": 1706, + "nodeType": "Return", + "src": "1198:19:2" + } + ] + }, + "functionSelector": "18160ddd", + "id": 1708, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1701, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1160:8:2" + }, + "parameters": { + "id": 1700, + "nodeType": "ParameterList", + "parameters": [], + "src": "1150:2:2" + }, + "returnParameters": { + "id": 1704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1703, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1708, + "src": "1183:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1183:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1182:9:2" + }, + "scope": 1937, + "src": "1130:94:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1603 + ], + "body": { + "id": 1720, + "nodeType": "Block", + "src": "1308:44:2", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 1716, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1325:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1718, + "indexExpression": { + "id": 1717, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "1334:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1325:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1715, + "id": 1719, + "nodeType": "Return", + "src": "1318:27:2" + } + ] + }, + "functionSelector": "70a08231", + "id": 1721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1712, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1276:8:2" + }, + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1249:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1249:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1248:20:2" + }, + "returnParameters": { + "id": 1715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1299:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1298:9:2" + }, + "scope": 1937, + "src": "1230:122:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1621 + ], + "body": { + "id": 1773, + "nodeType": "Block", + "src": "1444:268:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1732, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1462:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1733, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1475:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1736, + "indexExpression": { + "expression": { + "id": 1734, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1484:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1484:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1475:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1462:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1454:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1454:42:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1739, + "nodeType": "ExpressionStatement", + "src": "1454:42:2" + }, + { + "expression": { + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1740, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1506:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1743, + "indexExpression": { + "expression": { + "id": 1741, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1515:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1515:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1506:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1749, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1554:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1744, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1529:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1747, + "indexExpression": { + "expression": { + "id": 1745, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1538:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1538:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1529:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "1529:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1529:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1506:58:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1752, + "nodeType": "ExpressionStatement", + "src": "1506:58:2" + }, + { + "expression": { + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1753, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1574:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1755, + "indexExpression": { + "id": 1754, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1583:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1574:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1760, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1618:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1756, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1595:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1758, + "indexExpression": { + "id": 1757, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1604:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1595:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "1595:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1595:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1574:54:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1763, + "nodeType": "ExpressionStatement", + "src": "1574:54:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1652:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1652:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1767, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1664:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1768, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1674:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1764, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "1643:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1643:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1770, + "nodeType": "EmitStatement", + "src": "1638:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1730, + "id": 1772, + "nodeType": "Return", + "src": "1694:11:2" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 1774, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1420:8:2" + }, + "parameters": { + "id": 1726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1723, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1376:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1376:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1394:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1394:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1375:37:2" + }, + "returnParameters": { + "id": 1730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1438:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1438:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1437:6:2" + }, + "scope": 1937, + "src": "1358:354:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1630 + ], + "body": { + "id": 1802, + "nodeType": "Block", + "src": "1803:135:2", + "statements": [ + { + "expression": { + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1784, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "1813:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1788, + "indexExpression": { + "expression": { + "id": 1785, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1821:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1821:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1813:19:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1789, + "indexExpression": { + "id": 1787, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1833:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1813:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1790, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1845:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1813:41:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1792, + "nodeType": "ExpressionStatement", + "src": "1813:41:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1794, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1878:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1878:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1796, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1890:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1797, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1900:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1793, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "1869:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1869:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1799, + "nodeType": "EmitStatement", + "src": "1864:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1927:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1783, + "id": 1801, + "nodeType": "Return", + "src": "1920:11:2" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 1803, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1780, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1779:8:2" + }, + "parameters": { + "id": 1779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1776, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1735:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1735:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1778, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1753:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1734:37:2" + }, + "returnParameters": { + "id": 1783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1782, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1797:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1781, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1797:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1796:6:2" + }, + "scope": 1937, + "src": "1718:220:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1612 + ], + "body": { + "id": 1819, + "nodeType": "Block", + "src": "2032:48:2", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1813, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2049:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1815, + "indexExpression": { + "id": 1814, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1805, + "src": "2057:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1817, + "indexExpression": { + "id": 1816, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "2064:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1812, + "id": 1818, + "nodeType": "Return", + "src": "2042:31:2" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 1820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1809, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2003:8:2" + }, + "parameters": { + "id": 1808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1963:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1978:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1978:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1962:33:2" + }, + "returnParameters": { + "id": 1812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1811, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "2026:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1810, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2026:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:6:2" + }, + "scope": 1937, + "src": "1944:136:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1641 + ], + "body": { + "id": 1898, + "nodeType": "Block", + "src": "2188:378:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1833, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2206:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1834, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2219:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1836, + "indexExpression": { + "id": 1835, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2228:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2219:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2206:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1832, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2198:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2198:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1839, + "nodeType": "ExpressionStatement", + "src": "2198:37:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1841, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2253:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 1842, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2266:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1844, + "indexExpression": { + "id": 1843, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2274:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1847, + "indexExpression": { + "expression": { + "id": 1845, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2281:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2281:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2253:39:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1840, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2245:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:48:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1850, + "nodeType": "ExpressionStatement", + "src": "2245:48:2" + }, + { + "expression": { + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1851, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2304:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1853, + "indexExpression": { + "id": 1852, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2313:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2304:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1858, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2342:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1854, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2322:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1856, + "indexExpression": { + "id": 1855, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2331:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2322:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2322:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2322:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2304:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1861, + "nodeType": "ExpressionStatement", + "src": "2304:48:2" + }, + { + "expression": { + "id": 1877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1862, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2362:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1866, + "indexExpression": { + "id": 1863, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2370:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2362:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1867, + "indexExpression": { + "expression": { + "id": 1864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2377:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2377:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2362:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1875, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2422:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1868, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2391:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1870, + "indexExpression": { + "id": 1869, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2399:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1873, + "indexExpression": { + "expression": { + "id": 1871, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2406:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2406:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2391:30:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2391:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2362:70:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1878, + "nodeType": "ExpressionStatement", + "src": "2362:70:2" + }, + { + "expression": { + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1879, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2442:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1881, + "indexExpression": { + "id": 1880, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2451:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2442:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1886, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2480:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1882, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2460:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1884, + "indexExpression": { + "id": 1883, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2469:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2460:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "2460:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2460:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2442:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1889, + "nodeType": "ExpressionStatement", + "src": "2442:48:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1891, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2514:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1892, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2521:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1893, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2528:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1890, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2505:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2505:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1895, + "nodeType": "EmitStatement", + "src": "2500:38:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2555:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1831, + "id": 1897, + "nodeType": "Return", + "src": "2548:11:2" + } + ] + }, + "functionSelector": "23b872dd", + "id": 1899, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1828, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2164:8:2" + }, + "parameters": { + "id": 1827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1822, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2108:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1824, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2123:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1823, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2138:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2107:49:2" + }, + "returnParameters": { + "id": 1831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2182:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1829, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2182:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2181:6:2" + }, + "scope": 1937, + "src": "2086:480:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1935, + "nodeType": "Block", + "src": "2626:213:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1907, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2644:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2663:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2655:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2655:7:2", + "typeDescriptions": {} + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2655:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2644:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2667:33:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 1906, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2636:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2636:65:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1915, + "nodeType": "ExpressionStatement", + "src": "2636:65:2" + }, + { + "expression": { + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1916, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "2712:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1917, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2728:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2712:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "2712:22:2" + }, + { + "expression": { + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1920, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2744:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1922, + "indexExpression": { + "id": 1921, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2744:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1923, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2765:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2744:27:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1925, + "nodeType": "ExpressionStatement", + "src": "2744:27:2" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2803:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2795:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2795:7:2", + "typeDescriptions": {} + } + }, + "id": 1930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2795:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1931, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2807:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1932, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2816:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1926, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2786:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2786:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1934, + "nodeType": "EmitStatement", + "src": "2781:42:2" + } + ] + }, + "functionSelector": "40c10f19", + "id": 1936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1901, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2586:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2586:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2603:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2603:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2585:33:2" + }, + "returnParameters": { + "id": 1905, + "nodeType": "ParameterList", + "parameters": [], + "src": "2626:0:2" + }, + "scope": 1937, + "src": "2572:267:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1983, + "src": "545:2296:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1982, + "linearizedBaseContracts": [ + 1982 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1956, + "nodeType": "Block", + "src": "2933:49:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1947, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2948:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2953:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2948:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1946, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "2941:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2941:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "2941:14:2" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1952, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2970:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1953, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2974:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2970:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1945, + "id": 1955, + "nodeType": "Return", + "src": "2963:12:2" + } + ] + }, + "id": 1957, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2879:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2879:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2890:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2878:22:2" + }, + "returnParameters": { + "id": 1945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2924:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2924:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2923:9:2" + }, + "scope": 1982, + "src": "2866:116:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1980, + "nodeType": "Block", + "src": "3055:70:2", + "statements": [ + { + "assignments": [ + 1967 + ], + "declarations": [ + { + "constant": false, + "id": 1967, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1980, + "src": "3063:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3063:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1971, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1968, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3075:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1969, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1961, + "src": "3079:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3075:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3063:17:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1973, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3095:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3100:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3095:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1972, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3088:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3088:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1977, + "nodeType": "ExpressionStatement", + "src": "3088:14:2" + }, + { + "expression": { + "id": 1978, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3117:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1965, + "id": 1979, + "nodeType": "Return", + "src": "3110:8:2" + } + ] + }, + "id": 1981, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1959, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3001:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3001:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1961, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3012:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3000:22:2" + }, + "returnParameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3046:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3045:9:2" + }, + "scope": 1982, + "src": "2988:137:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1983, + "src": "2843:284:2" + } + ], + "src": "0:3128:2" + }, + "legacyAST": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol", + "exportedSymbols": { + "IERC20": [ + 1642 + ], + "SafeMath": [ + 1982 + ], + "Usdc": [ + 1937 + ] + }, + "id": 1983, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1591, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:31:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1642, + "linearizedBaseContracts": [ + 1642 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 1596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1592, + "nodeType": "ParameterList", + "parameters": [], + "src": "77:2:2" + }, + "returnParameters": { + "id": 1595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "103:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "103:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "102:9:2" + }, + "scope": 1642, + "src": "57:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 1603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1598, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "136:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "136:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "135:17:2" + }, + "returnParameters": { + "id": 1602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "176:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "176:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "175:9:2" + }, + "scope": 1642, + "src": "117:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 1612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "209:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "224:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "224:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "208:32:2" + }, + "returnParameters": { + "id": 1611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "264:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "264:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "263:9:2" + }, + "scope": 1642, + "src": "190:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 1621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1614, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "297:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1616, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "316:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "296:35:2" + }, + "returnParameters": { + "id": 1620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "350:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "350:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "349:6:2" + }, + "scope": 1642, + "src": "279:77:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 1630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "378:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "378:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "395:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "377:33:2" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "429:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "429:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "428:6:2" + }, + "scope": 1642, + "src": "361:74:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 1641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1632, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "462:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "462:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1634, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "478:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "478:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1636, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "497:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "461:51:2" + }, + "returnParameters": { + "id": 1640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "531:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "531:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "530:6:2" + }, + "scope": 1642, + "src": "440:97:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1983, + "src": "33:509:2" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1643, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1642, + "src": "562:6:2" + }, + "id": 1644, + "nodeType": "InheritanceSpecifier", + "src": "562:6:2" + } + ], + "contractDependencies": [ + 1642 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1937, + "linearizedBaseContracts": [ + 1937, + 1642 + ], + "name": "Usdc", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 1647, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "576:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1645, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "576:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55736463", + "id": 1646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "606:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2fb347e0e3919a9e5bc2106eef1247f792eab71f04998e6965b96d8c2acecc9", + "typeString": "literal_string \"Usdc\"" + }, + "value": "Usdc" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 1650, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "618:38:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "618:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55534443", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "650:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", + "typeString": "literal_string \"USDC\"" + }, + "value": "USDC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 1653, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "662:34:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1651, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "662:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "33", + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "695:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 1661, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1655, + "indexed": true, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "719:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "719:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1657, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "747:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "747:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "772:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "772:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "718:66:2" + }, + "src": "704:81:2" + }, + { + "anonymous": false, + "id": 1669, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 1668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1663, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "805:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "827:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "827:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "847:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "847:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "804:55:2" + }, + "src": "790:70:2" + }, + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "867:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1672, + "keyType": { + "id": 1670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "875:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "867:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "886:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1679, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "910:56:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 1678, + "keyType": { + "id": 1674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "918:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "910:48:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 1677, + "keyType": { + "id": 1675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "938:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "929:28:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "949:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1681, + "mutability": "mutable", + "name": "totalSupply_", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "973:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "973:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "id": 1684, + "libraryName": { + "id": 1682, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1982, + "src": "1006:8:2" + }, + "nodeType": "UsingForDirective", + "src": "1000:27:2", + "typeName": { + "id": 1683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1019:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "1046:78:2", + "statements": [ + { + "expression": { + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1687, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1052:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "313030303030303030", + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1067:9:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "100000000" + }, + "src": "1052:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1690, + "nodeType": "ExpressionStatement", + "src": "1052:24:2" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1691, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1082:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1694, + "indexExpression": { + "expression": { + "id": 1692, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1091:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1091:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1082:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1105:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1082:35:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1082:35:2" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1685, + "nodeType": "ParameterList", + "parameters": [], + "src": "1044:2:2" + }, + "returnParameters": { + "id": 1686, + "nodeType": "ParameterList", + "parameters": [], + "src": "1046:0:2" + }, + "scope": 1937, + "src": "1033:91:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1596 + ], + "body": { + "id": 1707, + "nodeType": "Block", + "src": "1192:32:2", + "statements": [ + { + "expression": { + "id": 1705, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1205:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1704, + "id": 1706, + "nodeType": "Return", + "src": "1198:19:2" + } + ] + }, + "functionSelector": "18160ddd", + "id": 1708, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1701, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1160:8:2" + }, + "parameters": { + "id": 1700, + "nodeType": "ParameterList", + "parameters": [], + "src": "1150:2:2" + }, + "returnParameters": { + "id": 1704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1703, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1708, + "src": "1183:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1183:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1182:9:2" + }, + "scope": 1937, + "src": "1130:94:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1603 + ], + "body": { + "id": 1720, + "nodeType": "Block", + "src": "1308:44:2", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 1716, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1325:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1718, + "indexExpression": { + "id": 1717, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "1334:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1325:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1715, + "id": 1719, + "nodeType": "Return", + "src": "1318:27:2" + } + ] + }, + "functionSelector": "70a08231", + "id": 1721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1712, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1276:8:2" + }, + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1249:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1249:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1248:20:2" + }, + "returnParameters": { + "id": 1715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1299:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1298:9:2" + }, + "scope": 1937, + "src": "1230:122:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1621 + ], + "body": { + "id": 1773, + "nodeType": "Block", + "src": "1444:268:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1732, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1462:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1733, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1475:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1736, + "indexExpression": { + "expression": { + "id": 1734, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1484:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1484:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1475:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1462:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1454:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1454:42:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1739, + "nodeType": "ExpressionStatement", + "src": "1454:42:2" + }, + { + "expression": { + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1740, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1506:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1743, + "indexExpression": { + "expression": { + "id": 1741, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1515:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1515:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1506:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1749, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1554:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1744, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1529:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1747, + "indexExpression": { + "expression": { + "id": 1745, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1538:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1538:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1529:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "1529:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1529:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1506:58:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1752, + "nodeType": "ExpressionStatement", + "src": "1506:58:2" + }, + { + "expression": { + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1753, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1574:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1755, + "indexExpression": { + "id": 1754, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1583:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1574:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1760, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1618:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1756, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1595:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1758, + "indexExpression": { + "id": 1757, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1604:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1595:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "1595:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1595:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1574:54:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1763, + "nodeType": "ExpressionStatement", + "src": "1574:54:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1652:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1652:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1767, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1664:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1768, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1674:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1764, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "1643:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1643:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1770, + "nodeType": "EmitStatement", + "src": "1638:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1730, + "id": 1772, + "nodeType": "Return", + "src": "1694:11:2" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 1774, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1420:8:2" + }, + "parameters": { + "id": 1726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1723, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1376:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1376:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1394:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1394:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1375:37:2" + }, + "returnParameters": { + "id": 1730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1438:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1438:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1437:6:2" + }, + "scope": 1937, + "src": "1358:354:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1630 + ], + "body": { + "id": 1802, + "nodeType": "Block", + "src": "1803:135:2", + "statements": [ + { + "expression": { + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1784, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "1813:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1788, + "indexExpression": { + "expression": { + "id": 1785, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1821:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1821:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1813:19:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1789, + "indexExpression": { + "id": 1787, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1833:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1813:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1790, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1845:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1813:41:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1792, + "nodeType": "ExpressionStatement", + "src": "1813:41:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1794, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1878:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1878:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1796, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1890:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1797, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1900:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1793, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "1869:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1869:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1799, + "nodeType": "EmitStatement", + "src": "1864:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1927:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1783, + "id": 1801, + "nodeType": "Return", + "src": "1920:11:2" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 1803, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1780, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1779:8:2" + }, + "parameters": { + "id": 1779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1776, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1735:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1735:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1778, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1753:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1734:37:2" + }, + "returnParameters": { + "id": 1783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1782, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1797:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1781, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1797:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1796:6:2" + }, + "scope": 1937, + "src": "1718:220:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1612 + ], + "body": { + "id": 1819, + "nodeType": "Block", + "src": "2032:48:2", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1813, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2049:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1815, + "indexExpression": { + "id": 1814, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1805, + "src": "2057:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1817, + "indexExpression": { + "id": 1816, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "2064:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1812, + "id": 1818, + "nodeType": "Return", + "src": "2042:31:2" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 1820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1809, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2003:8:2" + }, + "parameters": { + "id": 1808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1963:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1978:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1978:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1962:33:2" + }, + "returnParameters": { + "id": 1812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1811, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "2026:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1810, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2026:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:6:2" + }, + "scope": 1937, + "src": "1944:136:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1641 + ], + "body": { + "id": 1898, + "nodeType": "Block", + "src": "2188:378:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1833, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2206:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1834, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2219:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1836, + "indexExpression": { + "id": 1835, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2228:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2219:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2206:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1832, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2198:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2198:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1839, + "nodeType": "ExpressionStatement", + "src": "2198:37:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1841, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2253:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 1842, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2266:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1844, + "indexExpression": { + "id": 1843, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2274:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1847, + "indexExpression": { + "expression": { + "id": 1845, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2281:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2281:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2253:39:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1840, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2245:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:48:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1850, + "nodeType": "ExpressionStatement", + "src": "2245:48:2" + }, + { + "expression": { + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1851, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2304:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1853, + "indexExpression": { + "id": 1852, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2313:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2304:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1858, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2342:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1854, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2322:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1856, + "indexExpression": { + "id": 1855, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2331:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2322:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2322:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2322:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2304:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1861, + "nodeType": "ExpressionStatement", + "src": "2304:48:2" + }, + { + "expression": { + "id": 1877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1862, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2362:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1866, + "indexExpression": { + "id": 1863, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2370:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2362:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1867, + "indexExpression": { + "expression": { + "id": 1864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2377:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2377:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2362:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1875, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2422:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1868, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2391:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1870, + "indexExpression": { + "id": 1869, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2399:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1873, + "indexExpression": { + "expression": { + "id": 1871, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2406:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2406:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2391:30:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2391:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2362:70:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1878, + "nodeType": "ExpressionStatement", + "src": "2362:70:2" + }, + { + "expression": { + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1879, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2442:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1881, + "indexExpression": { + "id": 1880, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2451:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2442:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1886, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2480:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1882, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2460:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1884, + "indexExpression": { + "id": 1883, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2469:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2460:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "2460:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2460:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2442:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1889, + "nodeType": "ExpressionStatement", + "src": "2442:48:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1891, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2514:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1892, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2521:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1893, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2528:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1890, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2505:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2505:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1895, + "nodeType": "EmitStatement", + "src": "2500:38:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2555:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1831, + "id": 1897, + "nodeType": "Return", + "src": "2548:11:2" + } + ] + }, + "functionSelector": "23b872dd", + "id": 1899, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1828, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2164:8:2" + }, + "parameters": { + "id": 1827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1822, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2108:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1824, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2123:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1823, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2138:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2107:49:2" + }, + "returnParameters": { + "id": 1831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2182:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1829, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2182:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2181:6:2" + }, + "scope": 1937, + "src": "2086:480:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1935, + "nodeType": "Block", + "src": "2626:213:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1907, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2644:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2663:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2655:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2655:7:2", + "typeDescriptions": {} + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2655:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2644:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2667:33:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 1906, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2636:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2636:65:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1915, + "nodeType": "ExpressionStatement", + "src": "2636:65:2" + }, + { + "expression": { + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1916, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "2712:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1917, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2728:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2712:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "2712:22:2" + }, + { + "expression": { + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1920, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2744:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1922, + "indexExpression": { + "id": 1921, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2744:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1923, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2765:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2744:27:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1925, + "nodeType": "ExpressionStatement", + "src": "2744:27:2" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2803:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2795:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2795:7:2", + "typeDescriptions": {} + } + }, + "id": 1930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2795:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1931, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2807:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1932, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2816:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1926, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2786:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2786:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1934, + "nodeType": "EmitStatement", + "src": "2781:42:2" + } + ] + }, + "functionSelector": "40c10f19", + "id": 1936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1901, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2586:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2586:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2603:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2603:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2585:33:2" + }, + "returnParameters": { + "id": 1905, + "nodeType": "ParameterList", + "parameters": [], + "src": "2626:0:2" + }, + "scope": 1937, + "src": "2572:267:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1983, + "src": "545:2296:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1982, + "linearizedBaseContracts": [ + 1982 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1956, + "nodeType": "Block", + "src": "2933:49:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1947, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2948:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2953:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2948:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1946, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "2941:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2941:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "2941:14:2" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1952, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2970:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1953, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2974:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2970:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1945, + "id": 1955, + "nodeType": "Return", + "src": "2963:12:2" + } + ] + }, + "id": 1957, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2879:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2879:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2890:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2878:22:2" + }, + "returnParameters": { + "id": 1945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2924:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2924:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2923:9:2" + }, + "scope": 1982, + "src": "2866:116:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1980, + "nodeType": "Block", + "src": "3055:70:2", + "statements": [ + { + "assignments": [ + 1967 + ], + "declarations": [ + { + "constant": false, + "id": 1967, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1980, + "src": "3063:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3063:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1971, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1968, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3075:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1969, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1961, + "src": "3079:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3075:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3063:17:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1973, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3095:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3100:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3095:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1972, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3088:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3088:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1977, + "nodeType": "ExpressionStatement", + "src": "3088:14:2" + }, + { + "expression": { + "id": 1978, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3117:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1965, + "id": 1979, + "nodeType": "Return", + "src": "3110:8:2" + } + ] + }, + "id": 1981, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1959, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3001:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3001:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1961, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3012:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3000:22:2" + }, + "returnParameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3046:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3045:9:2" + }, + "scope": 1982, + "src": "2988:137:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1983, + "src": "2843:284:2" + } + ], + "src": "0:3128:2" + }, + "compiler": { + "name": "solc", + "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.1", + "updatedAt": "2021-08-01T23:54:00.745Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/Usdc.json b/build/contracts/Usdc.json new file mode 100644 index 0000000..04ffedc --- /dev/null +++ b/build/contracts/Usdc.json @@ -0,0 +1,13758 @@ +{ + "contractName": "Usdc", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "delegate", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numTokens\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenOwner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numTokens\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numTokens\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol\":\"Usdc\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol\":{\"keccak256\":\"0x362b398cb93c12ada3f91c36de4f159f532bac04b8d3967f16c469a97b8ce2ca\",\"urls\":[\"bzz-raw://7937eaa10109ec9ed84fcf9c9cf8b3c89c7289ca3696a6cc4ad05b830e3c5c43\",\"dweb:/ipfs/QmVRwgXzBeA8pvr1NN62koBaHCp3fZjTwcdu3MqWA6gkrX\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506305f5e1006002819055506002546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fd2806100706000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610d88565b60405180910390f35b6100db60048036038101906100d69190610c8b565b610260565b6040516100e89190610d6d565b60405180910390f35b6100f9610352565b6040516101069190610dca565b60405180910390f35b61012960048036038101906101249190610c3c565b61035c565b6040516101369190610d6d565b60405180910390f35b6101476106d7565b6040516101549190610de5565b60405180910390f35b61017760048036038101906101729190610c8b565b6106dc565b005b610193600480360381019061018e9190610bd7565b610824565b6040516101a09190610dca565b60405180910390f35b6101b161086c565b6040516101be9190610d88565b60405180910390f35b6101e160048036038101906101dc9190610c8b565b6108a5565b6040516101ee9190610d6d565b60405180910390f35b610211600480360381019061020c9190610c00565b610a87565b60405161021e9190610dca565b60405180910390f35b6040518060400160405280600481526020017f557364630000000000000000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103409190610dca565b60405180910390a36001905092915050565b6000600254905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156103a957600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561043257600080fd5b610483826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061055482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610625826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c49190610dca565b60405180910390a3600190509392505050565b600381565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390610daa565b60405180910390fd5b806002600082825461075e9190610e1c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107b39190610e1c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108189190610dca565b60405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600481526020017f555344430000000000000000000000000000000000000000000000000000000081525081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156108f257600080fd5b610943826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109d6826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a759190610dca565b60405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115610b47577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183610b539190610e72565b905092915050565b6000808284610b6a9190610e1c565b905083811015610ba3577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8091505092915050565b600081359050610bbc81610f6e565b92915050565b600081359050610bd181610f85565b92915050565b600060208284031215610be957600080fd5b6000610bf784828501610bad565b91505092915050565b60008060408385031215610c1357600080fd5b6000610c2185828601610bad565b9250506020610c3285828601610bad565b9150509250929050565b600080600060608486031215610c5157600080fd5b6000610c5f86828701610bad565b9350506020610c7086828701610bad565b9250506040610c8186828701610bc2565b9150509250925092565b60008060408385031215610c9e57600080fd5b6000610cac85828601610bad565b9250506020610cbd85828601610bc2565b9150509250929050565b610cd081610eb8565b82525050565b6000610ce182610e00565b610ceb8185610e0b565b9350610cfb818560208601610efb565b610d0481610f5d565b840191505092915050565b6000610d1c601f83610e0b565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b610d5881610ee4565b82525050565b610d6781610eee565b82525050565b6000602082019050610d826000830184610cc7565b92915050565b60006020820190508181036000830152610da28184610cd6565b905092915050565b60006020820190508181036000830152610dc381610d0f565b9050919050565b6000602082019050610ddf6000830184610d4f565b92915050565b6000602082019050610dfa6000830184610d5e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e2782610ee4565b9150610e3283610ee4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e6757610e66610f2e565b5b828201905092915050565b6000610e7d82610ee4565b9150610e8883610ee4565b925082821015610e9b57610e9a610f2e565b5b828203905092915050565b6000610eb182610ec4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f19578082015181840152602081019050610efe565b83811115610f28576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b610f7781610ea6565b8114610f8257600080fd5b50565b610f8e81610ee4565b8114610f9957600080fd5b5056fea26469706673582212200e38c85bc42d7377705b780b94cf02ca12445385ebf3a6ca54c2f700f13d21f964736f6c63430008000033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610d88565b60405180910390f35b6100db60048036038101906100d69190610c8b565b610260565b6040516100e89190610d6d565b60405180910390f35b6100f9610352565b6040516101069190610dca565b60405180910390f35b61012960048036038101906101249190610c3c565b61035c565b6040516101369190610d6d565b60405180910390f35b6101476106d7565b6040516101549190610de5565b60405180910390f35b61017760048036038101906101729190610c8b565b6106dc565b005b610193600480360381019061018e9190610bd7565b610824565b6040516101a09190610dca565b60405180910390f35b6101b161086c565b6040516101be9190610d88565b60405180910390f35b6101e160048036038101906101dc9190610c8b565b6108a5565b6040516101ee9190610d6d565b60405180910390f35b610211600480360381019061020c9190610c00565b610a87565b60405161021e9190610dca565b60405180910390f35b6040518060400160405280600481526020017f557364630000000000000000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103409190610dca565b60405180910390a36001905092915050565b6000600254905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156103a957600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561043257600080fd5b610483826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061055482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610625826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c49190610dca565b60405180910390a3600190509392505050565b600381565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390610daa565b60405180910390fd5b806002600082825461075e9190610e1c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107b39190610e1c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108189190610dca565b60405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600481526020017f555344430000000000000000000000000000000000000000000000000000000081525081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156108f257600080fd5b610943826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109d6826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a759190610dca565b60405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115610b47577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183610b539190610e72565b905092915050565b6000808284610b6a9190610e1c565b905083811015610ba3577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8091505092915050565b600081359050610bbc81610f6e565b92915050565b600081359050610bd181610f85565b92915050565b600060208284031215610be957600080fd5b6000610bf784828501610bad565b91505092915050565b60008060408385031215610c1357600080fd5b6000610c2185828601610bad565b9250506020610c3285828601610bad565b9150509250929050565b600080600060608486031215610c5157600080fd5b6000610c5f86828701610bad565b9350506020610c7086828701610bad565b9250506040610c8186828701610bc2565b9150509250925092565b60008060408385031215610c9e57600080fd5b6000610cac85828601610bad565b9250506020610cbd85828601610bc2565b9150509250929050565b610cd081610eb8565b82525050565b6000610ce182610e00565b610ceb8185610e0b565b9350610cfb818560208601610efb565b610d0481610f5d565b840191505092915050565b6000610d1c601f83610e0b565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b610d5881610ee4565b82525050565b610d6781610eee565b82525050565b6000602082019050610d826000830184610cc7565b92915050565b60006020820190508181036000830152610da28184610cd6565b905092915050565b60006020820190508181036000830152610dc381610d0f565b9050919050565b6000602082019050610ddf6000830184610d4f565b92915050565b6000602082019050610dfa6000830184610d5e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e2782610ee4565b9150610e3283610ee4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e6757610e66610f2e565b5b828201905092915050565b6000610e7d82610ee4565b9150610e8883610ee4565b925082821015610e9b57610e9a610f2e565b5b828203905092915050565b6000610eb182610ec4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f19578082015181840152602081019050610efe565b83811115610f28576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b610f7781610ea6565b8114610f8257600080fd5b50565b610f8e81610ee4565b8114610f9957600080fd5b5056fea26469706673582212200e38c85bc42d7377705b780b94cf02ca12445385ebf3a6ca54c2f700f13d21f964736f6c63430008000033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:6572:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:8", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:8" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:8" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:8" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:8" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "107:26:8" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:8" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:8" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:8", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:8", + "type": "" + } + ], + "src": "7:139:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "204:87:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "214:29:8", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "236:6:8" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "223:12:8" + }, + "nodeType": "YulFunctionCall", + "src": "223:20:8" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "214:5:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "279:5:8" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "252:26:8" + }, + "nodeType": "YulFunctionCall", + "src": "252:33:8" + }, + "nodeType": "YulExpressionStatement", + "src": "252:33:8" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "182:6:8", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "190:3:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "198:5:8", + "type": "" + } + ], + "src": "152:139:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "363:196:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "409:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "418:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "421:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "411:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "411:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "411:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "384:7:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "393:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "380:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "380:23:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "405:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "376:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "376:32:8" + }, + "nodeType": "YulIf", + "src": "373:2:8" + }, + { + "nodeType": "YulBlock", + "src": "435:117:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "450:15:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:8", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "454:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "479:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "514:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "525:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "510:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "510:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "534:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "489:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "489:53:8" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "479:6:8" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "333:9:8", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "344:7:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "356:6:8", + "type": "" + } + ], + "src": "297:262:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "648:324:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "694:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "703:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "706:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "696:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "696:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "696:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "669:7:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "678:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "665:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "665:23:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "690:2:8", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "661:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "661:32:8" + }, + "nodeType": "YulIf", + "src": "658:2:8" + }, + { + "nodeType": "YulBlock", + "src": "720:117:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "735:15:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "749:1:8", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "739:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "764:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "799:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "810:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "795:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "795:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "819:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "774:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "774:53:8" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "764:6:8" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "847:118:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "862:16:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "876:2:8", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "866:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "892:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "927:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "938:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "923:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "923:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "947:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "902:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "902:53:8" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "892:6:8" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "610:9:8", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "621:7:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "633:6:8", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "641:6:8", + "type": "" + } + ], + "src": "565:407:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1078:452:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1124:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1133:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1136:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1126:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "1126:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "1126:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1099:7:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1108:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1095:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1095:23:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1120:2:8", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1091:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1091:32:8" + }, + "nodeType": "YulIf", + "src": "1088:2:8" + }, + { + "nodeType": "YulBlock", + "src": "1150:117:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1165:15:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1179:1:8", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1169:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1194:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1229:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1240:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1225:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1225:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1249:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1204:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1204:53:8" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1194:6:8" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1277:118:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1292:16:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1306:2:8", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1296:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1322:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1357:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1368:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1353:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1353:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1377:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1332:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1332:53:8" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1322:6:8" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1405:118:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1420:16:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1434:2:8", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1424:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1450:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1485:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1496:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1481:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1481:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1505:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1460:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1460:53:8" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1450:6:8" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1032:9:8", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1043:7:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1055:6:8", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1063:6:8", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1071:6:8", + "type": "" + } + ], + "src": "978:552:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1619:324:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1665:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1674:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1677:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1667:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "1667:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "1667:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1640:7:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1649:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1636:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1636:23:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1661:2:8", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1632:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1632:32:8" + }, + "nodeType": "YulIf", + "src": "1629:2:8" + }, + { + "nodeType": "YulBlock", + "src": "1691:117:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1706:15:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1720:1:8", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1710:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1735:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1770:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1781:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1766:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1766:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1790:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1745:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1745:53:8" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1735:6:8" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1818:118:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1833:16:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1847:2:8", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1837:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1863:63:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1898:9:8" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1909:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1894:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1894:22:8" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1918:7:8" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1873:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1873:53:8" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1863:6:8" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1581:9:8", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1592:7:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1604:6:8", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1612:6:8", + "type": "" + } + ], + "src": "1536:407:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2008:50:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2025:3:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2045:5:8" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "2030:14:8" + }, + "nodeType": "YulFunctionCall", + "src": "2030:21:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2018:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2018:34:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2018:34:8" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1996:5:8", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2003:3:8", + "type": "" + } + ], + "src": "1949:109:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2156:272:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2166:53:8", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2213:5:8" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2180:32:8" + }, + "nodeType": "YulFunctionCall", + "src": "2180:39:8" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2170:6:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2228:78:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2294:3:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2299:6:8" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2235:58:8" + }, + "nodeType": "YulFunctionCall", + "src": "2235:71:8" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2228:3:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2341:5:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2348:4:8", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2337:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2337:16:8" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2355:3:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2360:6:8" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "2315:21:8" + }, + "nodeType": "YulFunctionCall", + "src": "2315:52:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2315:52:8" + }, + { + "nodeType": "YulAssignment", + "src": "2376:46:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2387:3:8" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2414:6:8" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2392:21:8" + }, + "nodeType": "YulFunctionCall", + "src": "2392:29:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2383:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2383:39:8" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2376:3:8" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2137:5:8", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2144:3:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2152:3:8", + "type": "" + } + ], + "src": "2064:364:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2580:183:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2590:74:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2656:3:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2661:2:8", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2597:58:8" + }, + "nodeType": "YulFunctionCall", + "src": "2597:67:8" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2590:3:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2685:3:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2690:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2681:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2681:11:8" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "2694:33:8", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2674:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2674:54:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2674:54:8" + }, + { + "nodeType": "YulAssignment", + "src": "2738:19:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2749:3:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2754:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2745:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2745:12:8" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2738:3:8" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2568:3:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2576:3:8", + "type": "" + } + ], + "src": "2434:329:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2834:53:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2851:3:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2874:5:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2856:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "2856:24:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2844:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2844:37:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2844:37:8" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2822:5:8", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2829:3:8", + "type": "" + } + ], + "src": "2769:118:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2954:51:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2971:3:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2992:5:8" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "2976:15:8" + }, + "nodeType": "YulFunctionCall", + "src": "2976:22:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2964:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2964:35:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2964:35:8" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2942:5:8", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2949:3:8", + "type": "" + } + ], + "src": "2893:112:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3103:118:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3113:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3125:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3136:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3121:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3121:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3113:4:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3187:6:8" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3200:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3211:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3196:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3196:17:8" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3149:37:8" + }, + "nodeType": "YulFunctionCall", + "src": "3149:65:8" + }, + "nodeType": "YulExpressionStatement", + "src": "3149:65:8" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3075:9:8", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3087:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3098:4:8", + "type": "" + } + ], + "src": "3011:210:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3345:195:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3355:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3367:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3378:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3363:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3363:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3355:4:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3402:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3413:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3398:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3398:17:8" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3421:4:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3427:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3417:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3417:20:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3391:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "3391:47:8" + }, + "nodeType": "YulExpressionStatement", + "src": "3391:47:8" + }, + { + "nodeType": "YulAssignment", + "src": "3447:86:8", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3519:6:8" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3528:4:8" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3455:63:8" + }, + "nodeType": "YulFunctionCall", + "src": "3455:78:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3447:4:8" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3317:9:8", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3329:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3340:4:8", + "type": "" + } + ], + "src": "3227:313:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3717:248:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3727:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3739:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3750:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3735:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3735:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3727:4:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3774:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3785:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3770:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3770:17:8" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3793:4:8" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3799:9:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3789:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "3789:20:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3763:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "3763:47:8" + }, + "nodeType": "YulExpressionStatement", + "src": "3763:47:8" + }, + { + "nodeType": "YulAssignment", + "src": "3819:139:8", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3953:4:8" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3827:124:8" + }, + "nodeType": "YulFunctionCall", + "src": "3827:131:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3819:4:8" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3697:9:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3712:4:8", + "type": "" + } + ], + "src": "3546:419:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4069:124:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4079:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4091:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4102:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4087:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4087:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4079:4:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4159:6:8" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4172:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4183:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4168:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4168:17:8" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "4115:43:8" + }, + "nodeType": "YulFunctionCall", + "src": "4115:71:8" + }, + "nodeType": "YulExpressionStatement", + "src": "4115:71:8" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4041:9:8", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4053:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4064:4:8", + "type": "" + } + ], + "src": "3971:222:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4293:120:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4303:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4315:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4326:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4311:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4311:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4303:4:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4379:6:8" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4392:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4403:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4388:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4388:17:8" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4339:39:8" + }, + "nodeType": "YulFunctionCall", + "src": "4339:67:8" + }, + "nodeType": "YulExpressionStatement", + "src": "4339:67:8" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4265:9:8", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4277:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4288:4:8", + "type": "" + } + ], + "src": "4199:214:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4478:40:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4489:22:8", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4505:5:8" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4499:5:8" + }, + "nodeType": "YulFunctionCall", + "src": "4499:12:8" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4489:6:8" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4461:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4471:6:8", + "type": "" + } + ], + "src": "4419:99:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4620:73:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4637:3:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4642:6:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4630:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "4630:19:8" + }, + "nodeType": "YulExpressionStatement", + "src": "4630:19:8" + }, + { + "nodeType": "YulAssignment", + "src": "4658:29:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4677:3:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4682:4:8", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4673:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4673:14:8" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4658:11:8" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4592:3:8", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4597:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4608:11:8", + "type": "" + } + ], + "src": "4524:169:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4743:261:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4753:25:8", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4776:1:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4758:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "4758:20:8" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4753:1:8" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4787:25:8", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4810:1:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4792:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "4792:20:8" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4787:1:8" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4950:22:8", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "4952:16:8" + }, + "nodeType": "YulFunctionCall", + "src": "4952:18:8" + }, + "nodeType": "YulExpressionStatement", + "src": "4952:18:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4871:1:8" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4878:66:8", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4946:1:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4874:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4874:74:8" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4868:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "4868:81:8" + }, + "nodeType": "YulIf", + "src": "4865:2:8" + }, + { + "nodeType": "YulAssignment", + "src": "4982:16:8", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4993:1:8" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4996:1:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4989:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "4989:9:8" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "4982:3:8" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "4730:1:8", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "4733:1:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "4739:3:8", + "type": "" + } + ], + "src": "4699:305:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5055:146:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5065:25:8", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5088:1:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5070:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "5070:20:8" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5065:1:8" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5099:25:8", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5122:1:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5104:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "5104:20:8" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5099:1:8" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5146:22:8", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "5148:16:8" + }, + "nodeType": "YulFunctionCall", + "src": "5148:18:8" + }, + "nodeType": "YulExpressionStatement", + "src": "5148:18:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5140:1:8" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5143:1:8" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5137:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "5137:8:8" + }, + "nodeType": "YulIf", + "src": "5134:2:8" + }, + { + "nodeType": "YulAssignment", + "src": "5178:17:8", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5190:1:8" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5193:1:8" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5186:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5186:9:8" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "5178:4:8" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "5041:1:8", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "5044:1:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "5050:4:8", + "type": "" + } + ], + "src": "5010:191:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5252:51:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5262:35:8", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5291:5:8" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5273:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "5273:24:8" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5262:7:8" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5234:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5244:7:8", + "type": "" + } + ], + "src": "5207:96:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5351:48:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5361:32:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5386:5:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5379:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "5379:13:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5372:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "5372:21:8" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5361:7:8" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5333:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5343:7:8", + "type": "" + } + ], + "src": "5309:90:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5450:81:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5460:65:8", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5475:5:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5482:42:8", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5471:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5471:54:8" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5460:7:8" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5432:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5442:7:8", + "type": "" + } + ], + "src": "5405:126:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5582:32:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5592:16:8", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5603:5:8" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5592:7:8" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5564:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5574:7:8", + "type": "" + } + ], + "src": "5537:77:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5663:43:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5673:27:8", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5688:5:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5695:4:8", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5684:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5684:16:8" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5673:7:8" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5645:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5655:7:8", + "type": "" + } + ], + "src": "5620:86:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5761:258:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5771:10:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5780:1:8", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5775:1:8", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5840:63:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5865:3:8" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5870:1:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5861:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5861:11:8" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5884:3:8" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5889:1:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5880:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5880:11:8" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5874:5:8" + }, + "nodeType": "YulFunctionCall", + "src": "5874:18:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5854:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "5854:39:8" + }, + "nodeType": "YulExpressionStatement", + "src": "5854:39:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5801:1:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5804:6:8" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5798:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "5798:13:8" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5812:19:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5814:15:8", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5823:1:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5826:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5819:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5819:10:8" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5814:1:8" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5794:3:8", + "statements": [] + }, + "src": "5790:113:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5937:76:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5987:3:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5992:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5983:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "5983:16:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6001:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5976:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "5976:27:8" + }, + "nodeType": "YulExpressionStatement", + "src": "5976:27:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5918:1:8" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5921:6:8" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5915:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "5915:13:8" + }, + "nodeType": "YulIf", + "src": "5912:2:8" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "5743:3:8", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "5748:3:8", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5753:6:8", + "type": "" + } + ], + "src": "5712:307:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6053:152:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6070:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6073:77:8", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6063:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6063:88:8" + }, + "nodeType": "YulExpressionStatement", + "src": "6063:88:8" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6167:1:8", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6170:4:8", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6160:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6160:15:8" + }, + "nodeType": "YulExpressionStatement", + "src": "6160:15:8" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6191:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6194:4:8", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6184:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6184:15:8" + }, + "nodeType": "YulExpressionStatement", + "src": "6184:15:8" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6025:180:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6259:54:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6269:38:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6287:5:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6294:2:8", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6283:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "6283:14:8" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6303:2:8", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6299:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "6299:7:8" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6279:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "6279:28:8" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6269:6:8" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6242:5:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6252:6:8", + "type": "" + } + ], + "src": "6211:102:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6362:79:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6419:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6428:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6431:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6421:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6421:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "6421:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6385:5:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6410:5:8" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6392:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "6392:24:8" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6382:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "6382:35:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6375:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6375:43:8" + }, + "nodeType": "YulIf", + "src": "6372:2:8" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6355:5:8", + "type": "" + } + ], + "src": "6319:122:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6490:79:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6547:16:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6556:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6559:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6549:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6549:12:8" + }, + "nodeType": "YulExpressionStatement", + "src": "6549:12:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6513:5:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6538:5:8" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6520:17:8" + }, + "nodeType": "YulFunctionCall", + "src": "6520:24:8" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6510:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "6510:35:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6503:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "6503:43:8" + }, + "nodeType": "YulIf", + "src": "6500:2:8" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6483:5:8", + "type": "" + } + ], + "src": "6447:122:8" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\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 abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\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 function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\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 function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\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_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n\n mstore(add(pos, 0), \"ERC20: mint to the zero address\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\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 validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 8, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "545:2296:2:-:0;;;1033:91;;;;;;;;;;1067:9;1052:12;:24;;;;1105:12;;1082:8;:20;1091:10;1082:20;;;;;;;;;;;;;;;:35;;;;545:2296;;;;;;", + "deployedSourceMap": "545:2296:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;576:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1718:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1130:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2086:480;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;662:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2572:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1230:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;618:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1358:354;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1944:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;576:36;;;;;;;;;;;;;;;;;;;:::o;1718:220::-;1797:4;1845:9;1813:7;:19;1821:10;1813:19;;;;;;;;;;;;;;;:29;1833:8;1813:29;;;;;;;;;;;;;;;:41;;;;1890:8;1869:41;;1878:10;1869:41;;;1900:9;1869:41;;;;;;:::i;:::-;;;;;;;;1927:4;1920:11;;1718:220;;;;:::o;1130:94::-;1183:7;1205:12;;1198:19;;1130:94;:::o;2086:480::-;2182:4;2219:8;:15;2228:5;2219:15;;;;;;;;;;;;;;;;2206:9;:28;;2198:37;;;;;;2266:7;:14;2274:5;2266:14;;;;;;;;;;;;;;;:26;2281:10;2266:26;;;;;;;;;;;;;;;;2253:9;:39;;2245:48;;;;;;2322:30;2342:9;2322:8;:15;2331:5;2322:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;2304:8;:15;2313:5;2304:15;;;;;;;;;;;;;;;:48;;;;2391:41;2422:9;2391:7;:14;2399:5;2391:14;;;;;;;;;;;;;;;:26;2406:10;2391:26;;;;;;;;;;;;;;;;:30;;:41;;;;:::i;:::-;2362:7;:14;2370:5;2362:14;;;;;;;;;;;;;;;:26;2377:10;2362:26;;;;;;;;;;;;;;;:70;;;;2460:30;2480:9;2460:8;:15;2469:5;2460:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;2442:8;:15;2451:5;2442:15;;;;;;;;;;;;;;;:48;;;;2521:5;2505:33;;2514:5;2505:33;;;2528:9;2505:33;;;;;;:::i;:::-;;;;;;;;2555:4;2548:11;;2086:480;;;;;:::o;662:34::-;695:1;662:34;:::o;2572:267::-;2663:1;2644:21;;:7;:21;;;;2636:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2728:6;2712:12;;:22;;;;;;;:::i;:::-;;;;;;;;2765:6;2744:8;:17;2753:7;2744:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;2807:7;2786:37;;2803:1;2786:37;;;2816:6;2786:37;;;;;;:::i;:::-;;;;;;;;2572:267;;:::o;1230:122::-;1299:7;1325:8;:20;1334:10;1325:20;;;;;;;;;;;;;;;;1318:27;;1230:122;;;:::o;618:38::-;;;;;;;;;;;;;;;;;;;:::o;1358:354::-;1438:4;1475:8;:20;1484:10;1475:20;;;;;;;;;;;;;;;;1462:9;:33;;1454:42;;;;;;1529:35;1554:9;1529:8;:20;1538:10;1529:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;1506:8;:20;1515:10;1506:20;;;;;;;;;;;;;;;:58;;;;1595:33;1618:9;1595:8;:18;1604:8;1595:18;;;;;;;;;;;;;;;;:22;;:33;;;;:::i;:::-;1574:8;:18;1583:8;1574:18;;;;;;;;;;;;;;;:54;;;;1664:8;1643:41;;1652:10;1643:41;;;1674:9;1643:41;;;;;;:::i;:::-;;;;;;;;1701:4;1694:11;;1358:354;;;;:::o;1944:136::-;2026:4;2049:7;:14;2057:5;2049:14;;;;;;;;;;;;;;;:24;2064:8;2049:24;;;;;;;;;;;;;;;;2042:31;;1944:136;;;;:::o;2866:116::-;2924:7;2953:1;2948;:6;;2941:14;;;;;;;;;;;;2974:1;2970;:5;;;;:::i;:::-;2963:12;;2866:116;;;;:::o;2988:137::-;3046:7;3063:9;3079:1;3075;:5;;;;:::i;:::-;3063:17;;3100:1;3095;:6;;3088:14;;;;;;;;;;;;3117:1;3110:8;;;2988:137;;;;:::o;7:139:8:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:329::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2694:33;2690:1;2685:3;2681:11;2674:54;2754:2;2749:3;2745:12;2738:19;;2580:183;;;:::o;2769:118::-;2856:24;2874:5;2856:24;:::i;:::-;2851:3;2844:37;2834:53;;:::o;2893:112::-;2976:22;2992:5;2976:22;:::i;:::-;2971:3;2964:35;2954:51;;:::o;3011:210::-;;3136:2;3125:9;3121:18;3113:26;;3149:65;3211:1;3200:9;3196:17;3187:6;3149:65;:::i;:::-;3103:118;;;;:::o;3227:313::-;;3378:2;3367:9;3363:18;3355:26;;3427:9;3421:4;3417:20;3413:1;3402:9;3398:17;3391:47;3455:78;3528:4;3519:6;3455:78;:::i;:::-;3447:86;;3345:195;;;;:::o;3546:419::-;;3750:2;3739:9;3735:18;3727:26;;3799:9;3793:4;3789:20;3785:1;3774:9;3770:17;3763:47;3827:131;3953:4;3827:131;:::i;:::-;3819:139;;3717:248;;;:::o;3971:222::-;;4102:2;4091:9;4087:18;4079:26;;4115:71;4183:1;4172:9;4168:17;4159:6;4115:71;:::i;:::-;4069:124;;;;:::o;4199:214::-;;4326:2;4315:9;4311:18;4303:26;;4339:67;4403:1;4392:9;4388:17;4379:6;4339:67;:::i;:::-;4293:120;;;;:::o;4419:99::-;;4505:5;4499:12;4489:22;;4478:40;;;:::o;4524:169::-;;4642:6;4637:3;4630:19;4682:4;4677:3;4673:14;4658:29;;4620:73;;;;:::o;4699:305::-;;4758:20;4776:1;4758:20;:::i;:::-;4753:25;;4792:20;4810:1;4792:20;:::i;:::-;4787:25;;4946:1;4878:66;4874:74;4871:1;4868:81;4865:2;;;4952:18;;:::i;:::-;4865:2;4996:1;4993;4989:9;4982:16;;4743:261;;;;:::o;5010:191::-;;5070:20;5088:1;5070:20;:::i;:::-;5065:25;;5104:20;5122:1;5104:20;:::i;:::-;5099:25;;5143:1;5140;5137:8;5134:2;;;5148:18;;:::i;:::-;5134:2;5193:1;5190;5186:9;5178:17;;5055:146;;;;:::o;5207:96::-;;5273:24;5291:5;5273:24;:::i;:::-;5262:35;;5252:51;;;:::o;5309:90::-;;5386:5;5379:13;5372:21;5361:32;;5351:48;;;:::o;5405:126::-;;5482:42;5475:5;5471:54;5460:65;;5450:81;;;:::o;5537:77::-;;5603:5;5592:16;;5582:32;;;:::o;5620:86::-;;5695:4;5688:5;5684:16;5673:27;;5663:43;;;:::o;5712:307::-;5780:1;5790:113;5804:6;5801:1;5798:13;5790:113;;;5889:1;5884:3;5880:11;5874:18;5870:1;5865:3;5861:11;5854:39;5826:2;5823:1;5819:10;5814:15;;5790:113;;;5921:6;5918:1;5915:13;5912:2;;;6001:1;5992:6;5987:3;5983:16;5976:27;5912:2;5761:258;;;;:::o;6025:180::-;6073:77;6070:1;6063:88;6170:4;6167:1;6160:15;6194:4;6191:1;6184:15;6211:102;;6303:2;6299:7;6294:2;6287:5;6283:14;6279:28;6269:38;;6259:54;;;:::o;6319:122::-;6392:24;6410:5;6392:24;:::i;:::-;6385:5;6382:35;6372:2;;6431:1;6428;6421:12;6372:2;6362:79;:::o;6447:122::-;6520:24;6538:5;6520:24;:::i;:::-;6513:5;6510:35;6500:2;;6559:1;6556;6549:12;6500:2;6490:79;:::o", + "source": "pragma solidity >=0.8.0 <0.9.0;\n\ninterface IERC20 {\n\n function totalSupply() external view returns (uint256);\n function balanceOf(address account) external view returns (uint256);\n function allowance(address owner, address spender) external view returns (uint256);\n\n function transfer(address recipient, uint256 amount) external returns (bool);\n function approve(address spender, uint256 amount) external returns (bool);\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n }\n\n\ncontract Usdc is IERC20 {\n\n string public constant name = \"Usdc\";\n string public constant symbol = \"USDC\";\n uint8 public constant decimals = 3;\n\n\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n event Transfer(address indexed from, address indexed to, uint tokens);\n\n\n mapping(address => uint256) balances;\n\n mapping(address => mapping (address => uint256)) allowed;\n\n uint256 totalSupply_;\n\n using SafeMath for uint256;\n\n\n constructor(){\n totalSupply_ = 100000000;\n balances[msg.sender] = totalSupply_;\n }\n\n function totalSupply() public override view returns (uint256) {\n return totalSupply_;\n }\n\n function balanceOf(address tokenOwner) public override view returns (uint256) {\n return balances[tokenOwner];\n }\n\n function transfer(address receiver, uint256 numTokens) public override returns (bool) {\n require(numTokens <= balances[msg.sender]);\n balances[msg.sender] = balances[msg.sender].sub(numTokens);\n balances[receiver] = balances[receiver].add(numTokens);\n emit Transfer(msg.sender, receiver, numTokens);\n return true;\n }\n\n function approve(address delegate, uint256 numTokens) public override returns (bool) {\n allowed[msg.sender][delegate] = numTokens;\n emit Approval(msg.sender, delegate, numTokens);\n return true;\n }\n\n function allowance(address owner, address delegate) public override view returns (uint) {\n return allowed[owner][delegate];\n }\n\n function transferFrom(address owner, address buyer, uint256 numTokens) public override returns (bool) {\n require(numTokens <= balances[owner]);\n require(numTokens <= allowed[owner][msg.sender]);\n\n balances[owner] = balances[owner].sub(numTokens);\n allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens);\n balances[buyer] = balances[buyer].add(numTokens);\n emit Transfer(owner, buyer, numTokens);\n return true;\n }\n\n function mint(address account, uint256 amount) public {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n totalSupply_ += amount;\n balances[account] += amount;\n emit Transfer(address(0), account, amount);\n\n \n }\n}\n\nlibrary SafeMath {\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n assert(c >= a);\n return c;\n }\n}\n", + "sourcePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol", + "ast": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol", + "exportedSymbols": { + "IERC20": [ + 1642 + ], + "SafeMath": [ + 1982 + ], + "Usdc": [ + 1937 + ] + }, + "id": 1983, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1591, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:31:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1642, + "linearizedBaseContracts": [ + 1642 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 1596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1592, + "nodeType": "ParameterList", + "parameters": [], + "src": "77:2:2" + }, + "returnParameters": { + "id": 1595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "103:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "103:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "102:9:2" + }, + "scope": 1642, + "src": "57:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 1603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1598, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "136:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "136:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "135:17:2" + }, + "returnParameters": { + "id": 1602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "176:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "176:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "175:9:2" + }, + "scope": 1642, + "src": "117:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 1612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "209:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "224:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "224:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "208:32:2" + }, + "returnParameters": { + "id": 1611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "264:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "264:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "263:9:2" + }, + "scope": 1642, + "src": "190:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 1621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1614, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "297:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1616, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "316:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "296:35:2" + }, + "returnParameters": { + "id": 1620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "350:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "350:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "349:6:2" + }, + "scope": 1642, + "src": "279:77:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 1630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "378:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "378:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "395:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "377:33:2" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "429:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "429:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "428:6:2" + }, + "scope": 1642, + "src": "361:74:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 1641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1632, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "462:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "462:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1634, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "478:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "478:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1636, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "497:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "461:51:2" + }, + "returnParameters": { + "id": 1640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "531:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "531:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "530:6:2" + }, + "scope": 1642, + "src": "440:97:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1983, + "src": "33:509:2" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1643, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1642, + "src": "562:6:2" + }, + "id": 1644, + "nodeType": "InheritanceSpecifier", + "src": "562:6:2" + } + ], + "contractDependencies": [ + 1642 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1937, + "linearizedBaseContracts": [ + 1937, + 1642 + ], + "name": "Usdc", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 1647, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "576:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1645, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "576:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55736463", + "id": 1646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "606:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2fb347e0e3919a9e5bc2106eef1247f792eab71f04998e6965b96d8c2acecc9", + "typeString": "literal_string \"Usdc\"" + }, + "value": "Usdc" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 1650, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "618:38:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "618:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55534443", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "650:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", + "typeString": "literal_string \"USDC\"" + }, + "value": "USDC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 1653, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "662:34:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1651, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "662:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "33", + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "695:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 1661, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1655, + "indexed": true, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "719:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "719:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1657, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "747:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "747:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "772:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "772:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "718:66:2" + }, + "src": "704:81:2" + }, + { + "anonymous": false, + "id": 1669, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 1668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1663, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "805:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "827:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "827:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "847:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "847:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "804:55:2" + }, + "src": "790:70:2" + }, + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "867:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1672, + "keyType": { + "id": 1670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "875:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "867:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "886:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1679, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "910:56:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 1678, + "keyType": { + "id": 1674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "918:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "910:48:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 1677, + "keyType": { + "id": 1675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "938:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "929:28:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "949:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1681, + "mutability": "mutable", + "name": "totalSupply_", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "973:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "973:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "id": 1684, + "libraryName": { + "id": 1682, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1982, + "src": "1006:8:2" + }, + "nodeType": "UsingForDirective", + "src": "1000:27:2", + "typeName": { + "id": 1683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1019:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "1046:78:2", + "statements": [ + { + "expression": { + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1687, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1052:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "313030303030303030", + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1067:9:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "100000000" + }, + "src": "1052:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1690, + "nodeType": "ExpressionStatement", + "src": "1052:24:2" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1691, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1082:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1694, + "indexExpression": { + "expression": { + "id": 1692, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1091:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1091:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1082:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1105:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1082:35:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1082:35:2" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1685, + "nodeType": "ParameterList", + "parameters": [], + "src": "1044:2:2" + }, + "returnParameters": { + "id": 1686, + "nodeType": "ParameterList", + "parameters": [], + "src": "1046:0:2" + }, + "scope": 1937, + "src": "1033:91:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1596 + ], + "body": { + "id": 1707, + "nodeType": "Block", + "src": "1192:32:2", + "statements": [ + { + "expression": { + "id": 1705, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1205:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1704, + "id": 1706, + "nodeType": "Return", + "src": "1198:19:2" + } + ] + }, + "functionSelector": "18160ddd", + "id": 1708, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1701, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1160:8:2" + }, + "parameters": { + "id": 1700, + "nodeType": "ParameterList", + "parameters": [], + "src": "1150:2:2" + }, + "returnParameters": { + "id": 1704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1703, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1708, + "src": "1183:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1183:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1182:9:2" + }, + "scope": 1937, + "src": "1130:94:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1603 + ], + "body": { + "id": 1720, + "nodeType": "Block", + "src": "1308:44:2", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 1716, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1325:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1718, + "indexExpression": { + "id": 1717, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "1334:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1325:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1715, + "id": 1719, + "nodeType": "Return", + "src": "1318:27:2" + } + ] + }, + "functionSelector": "70a08231", + "id": 1721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1712, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1276:8:2" + }, + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1249:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1249:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1248:20:2" + }, + "returnParameters": { + "id": 1715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1299:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1298:9:2" + }, + "scope": 1937, + "src": "1230:122:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1621 + ], + "body": { + "id": 1773, + "nodeType": "Block", + "src": "1444:268:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1732, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1462:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1733, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1475:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1736, + "indexExpression": { + "expression": { + "id": 1734, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1484:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1484:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1475:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1462:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1454:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1454:42:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1739, + "nodeType": "ExpressionStatement", + "src": "1454:42:2" + }, + { + "expression": { + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1740, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1506:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1743, + "indexExpression": { + "expression": { + "id": 1741, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1515:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1515:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1506:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1749, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1554:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1744, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1529:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1747, + "indexExpression": { + "expression": { + "id": 1745, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1538:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1538:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1529:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "1529:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1529:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1506:58:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1752, + "nodeType": "ExpressionStatement", + "src": "1506:58:2" + }, + { + "expression": { + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1753, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1574:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1755, + "indexExpression": { + "id": 1754, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1583:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1574:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1760, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1618:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1756, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1595:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1758, + "indexExpression": { + "id": 1757, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1604:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1595:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "1595:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1595:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1574:54:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1763, + "nodeType": "ExpressionStatement", + "src": "1574:54:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1652:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1652:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1767, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1664:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1768, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1674:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1764, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "1643:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1643:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1770, + "nodeType": "EmitStatement", + "src": "1638:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1730, + "id": 1772, + "nodeType": "Return", + "src": "1694:11:2" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 1774, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1420:8:2" + }, + "parameters": { + "id": 1726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1723, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1376:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1376:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1394:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1394:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1375:37:2" + }, + "returnParameters": { + "id": 1730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1438:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1438:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1437:6:2" + }, + "scope": 1937, + "src": "1358:354:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1630 + ], + "body": { + "id": 1802, + "nodeType": "Block", + "src": "1803:135:2", + "statements": [ + { + "expression": { + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1784, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "1813:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1788, + "indexExpression": { + "expression": { + "id": 1785, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1821:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1821:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1813:19:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1789, + "indexExpression": { + "id": 1787, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1833:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1813:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1790, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1845:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1813:41:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1792, + "nodeType": "ExpressionStatement", + "src": "1813:41:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1794, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1878:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1878:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1796, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1890:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1797, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1900:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1793, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "1869:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1869:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1799, + "nodeType": "EmitStatement", + "src": "1864:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1927:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1783, + "id": 1801, + "nodeType": "Return", + "src": "1920:11:2" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 1803, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1780, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1779:8:2" + }, + "parameters": { + "id": 1779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1776, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1735:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1735:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1778, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1753:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1734:37:2" + }, + "returnParameters": { + "id": 1783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1782, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1797:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1781, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1797:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1796:6:2" + }, + "scope": 1937, + "src": "1718:220:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1612 + ], + "body": { + "id": 1819, + "nodeType": "Block", + "src": "2032:48:2", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1813, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2049:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1815, + "indexExpression": { + "id": 1814, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1805, + "src": "2057:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1817, + "indexExpression": { + "id": 1816, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "2064:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1812, + "id": 1818, + "nodeType": "Return", + "src": "2042:31:2" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 1820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1809, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2003:8:2" + }, + "parameters": { + "id": 1808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1963:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1978:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1978:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1962:33:2" + }, + "returnParameters": { + "id": 1812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1811, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "2026:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1810, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2026:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:6:2" + }, + "scope": 1937, + "src": "1944:136:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1641 + ], + "body": { + "id": 1898, + "nodeType": "Block", + "src": "2188:378:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1833, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2206:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1834, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2219:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1836, + "indexExpression": { + "id": 1835, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2228:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2219:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2206:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1832, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2198:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2198:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1839, + "nodeType": "ExpressionStatement", + "src": "2198:37:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1841, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2253:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 1842, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2266:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1844, + "indexExpression": { + "id": 1843, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2274:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1847, + "indexExpression": { + "expression": { + "id": 1845, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2281:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2281:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2253:39:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1840, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2245:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:48:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1850, + "nodeType": "ExpressionStatement", + "src": "2245:48:2" + }, + { + "expression": { + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1851, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2304:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1853, + "indexExpression": { + "id": 1852, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2313:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2304:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1858, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2342:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1854, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2322:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1856, + "indexExpression": { + "id": 1855, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2331:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2322:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2322:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2322:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2304:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1861, + "nodeType": "ExpressionStatement", + "src": "2304:48:2" + }, + { + "expression": { + "id": 1877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1862, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2362:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1866, + "indexExpression": { + "id": 1863, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2370:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2362:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1867, + "indexExpression": { + "expression": { + "id": 1864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2377:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2377:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2362:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1875, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2422:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1868, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2391:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1870, + "indexExpression": { + "id": 1869, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2399:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1873, + "indexExpression": { + "expression": { + "id": 1871, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2406:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2406:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2391:30:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2391:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2362:70:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1878, + "nodeType": "ExpressionStatement", + "src": "2362:70:2" + }, + { + "expression": { + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1879, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2442:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1881, + "indexExpression": { + "id": 1880, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2451:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2442:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1886, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2480:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1882, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2460:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1884, + "indexExpression": { + "id": 1883, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2469:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2460:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "2460:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2460:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2442:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1889, + "nodeType": "ExpressionStatement", + "src": "2442:48:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1891, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2514:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1892, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2521:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1893, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2528:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1890, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2505:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2505:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1895, + "nodeType": "EmitStatement", + "src": "2500:38:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2555:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1831, + "id": 1897, + "nodeType": "Return", + "src": "2548:11:2" + } + ] + }, + "functionSelector": "23b872dd", + "id": 1899, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1828, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2164:8:2" + }, + "parameters": { + "id": 1827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1822, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2108:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1824, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2123:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1823, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2138:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2107:49:2" + }, + "returnParameters": { + "id": 1831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2182:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1829, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2182:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2181:6:2" + }, + "scope": 1937, + "src": "2086:480:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1935, + "nodeType": "Block", + "src": "2626:213:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1907, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2644:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2663:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2655:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2655:7:2", + "typeDescriptions": {} + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2655:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2644:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2667:33:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 1906, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2636:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2636:65:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1915, + "nodeType": "ExpressionStatement", + "src": "2636:65:2" + }, + { + "expression": { + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1916, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "2712:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1917, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2728:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2712:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "2712:22:2" + }, + { + "expression": { + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1920, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2744:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1922, + "indexExpression": { + "id": 1921, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2744:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1923, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2765:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2744:27:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1925, + "nodeType": "ExpressionStatement", + "src": "2744:27:2" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2803:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2795:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2795:7:2", + "typeDescriptions": {} + } + }, + "id": 1930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2795:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1931, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2807:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1932, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2816:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1926, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2786:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2786:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1934, + "nodeType": "EmitStatement", + "src": "2781:42:2" + } + ] + }, + "functionSelector": "40c10f19", + "id": 1936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1901, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2586:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2586:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2603:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2603:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2585:33:2" + }, + "returnParameters": { + "id": 1905, + "nodeType": "ParameterList", + "parameters": [], + "src": "2626:0:2" + }, + "scope": 1937, + "src": "2572:267:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1983, + "src": "545:2296:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1982, + "linearizedBaseContracts": [ + 1982 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1956, + "nodeType": "Block", + "src": "2933:49:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1947, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2948:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2953:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2948:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1946, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "2941:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2941:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "2941:14:2" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1952, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2970:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1953, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2974:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2970:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1945, + "id": 1955, + "nodeType": "Return", + "src": "2963:12:2" + } + ] + }, + "id": 1957, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2879:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2879:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2890:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2878:22:2" + }, + "returnParameters": { + "id": 1945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2924:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2924:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2923:9:2" + }, + "scope": 1982, + "src": "2866:116:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1980, + "nodeType": "Block", + "src": "3055:70:2", + "statements": [ + { + "assignments": [ + 1967 + ], + "declarations": [ + { + "constant": false, + "id": 1967, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1980, + "src": "3063:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3063:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1971, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1968, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3075:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1969, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1961, + "src": "3079:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3075:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3063:17:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1973, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3095:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3100:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3095:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1972, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3088:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3088:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1977, + "nodeType": "ExpressionStatement", + "src": "3088:14:2" + }, + { + "expression": { + "id": 1978, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3117:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1965, + "id": 1979, + "nodeType": "Return", + "src": "3110:8:2" + } + ] + }, + "id": 1981, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1959, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3001:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3001:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1961, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3012:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3000:22:2" + }, + "returnParameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3046:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3045:9:2" + }, + "scope": 1982, + "src": "2988:137:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1983, + "src": "2843:284:2" + } + ], + "src": "0:3128:2" + }, + "legacyAST": { + "absolutePath": "/home/jeremiah/Downloads/Work-projects/OptionsMarket/contracts/usdc.sol", + "exportedSymbols": { + "IERC20": [ + 1642 + ], + "SafeMath": [ + 1982 + ], + "Usdc": [ + 1937 + ] + }, + "id": 1983, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1591, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:31:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1642, + "linearizedBaseContracts": [ + 1642 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 1596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1592, + "nodeType": "ParameterList", + "parameters": [], + "src": "77:2:2" + }, + "returnParameters": { + "id": 1595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "103:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "103:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "102:9:2" + }, + "scope": 1642, + "src": "57:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 1603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1598, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "136:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "136:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "135:17:2" + }, + "returnParameters": { + "id": 1602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1603, + "src": "176:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "176:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "175:9:2" + }, + "scope": 1642, + "src": "117:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 1612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "209:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "224:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "224:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "208:32:2" + }, + "returnParameters": { + "id": 1611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "264:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "264:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "263:9:2" + }, + "scope": 1642, + "src": "190:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 1621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1614, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "297:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1616, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "316:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "296:35:2" + }, + "returnParameters": { + "id": 1620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "350:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "350:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "349:6:2" + }, + "scope": 1642, + "src": "279:77:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 1630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "378:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "378:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "395:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "377:33:2" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "429:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "429:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "428:6:2" + }, + "scope": 1642, + "src": "361:74:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 1641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1632, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "462:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "462:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1634, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "478:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "478:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1636, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "497:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "461:51:2" + }, + "returnParameters": { + "id": 1640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "531:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "531:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "530:6:2" + }, + "scope": 1642, + "src": "440:97:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1983, + "src": "33:509:2" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1643, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1642, + "src": "562:6:2" + }, + "id": 1644, + "nodeType": "InheritanceSpecifier", + "src": "562:6:2" + } + ], + "contractDependencies": [ + 1642 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1937, + "linearizedBaseContracts": [ + 1937, + 1642 + ], + "name": "Usdc", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 1647, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "576:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1645, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "576:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55736463", + "id": 1646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "606:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2fb347e0e3919a9e5bc2106eef1247f792eab71f04998e6965b96d8c2acecc9", + "typeString": "literal_string \"Usdc\"" + }, + "value": "Usdc" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 1650, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "618:38:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "618:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "55534443", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "650:6:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", + "typeString": "literal_string \"USDC\"" + }, + "value": "USDC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 1653, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "662:34:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1651, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "662:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "33", + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "695:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 1661, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1655, + "indexed": true, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "719:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "719:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1657, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "747:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "747:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1661, + "src": "772:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "772:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "718:66:2" + }, + "src": "704:81:2" + }, + { + "anonymous": false, + "id": 1669, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 1668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1663, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "805:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "827:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "827:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 1669, + "src": "847:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "847:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "804:55:2" + }, + "src": "790:70:2" + }, + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "867:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1672, + "keyType": { + "id": 1670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "875:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "867:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "886:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1679, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "910:56:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 1678, + "keyType": { + "id": 1674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "918:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "910:48:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 1677, + "keyType": { + "id": 1675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "938:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "929:28:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "949:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1681, + "mutability": "mutable", + "name": "totalSupply_", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "973:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "973:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "id": 1684, + "libraryName": { + "id": 1682, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1982, + "src": "1006:8:2" + }, + "nodeType": "UsingForDirective", + "src": "1000:27:2", + "typeName": { + "id": 1683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1019:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "1046:78:2", + "statements": [ + { + "expression": { + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1687, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1052:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "313030303030303030", + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1067:9:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "100000000" + }, + "src": "1052:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1690, + "nodeType": "ExpressionStatement", + "src": "1052:24:2" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1691, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1082:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1694, + "indexExpression": { + "expression": { + "id": 1692, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1091:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1091:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1082:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1105:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1082:35:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1082:35:2" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1685, + "nodeType": "ParameterList", + "parameters": [], + "src": "1044:2:2" + }, + "returnParameters": { + "id": 1686, + "nodeType": "ParameterList", + "parameters": [], + "src": "1046:0:2" + }, + "scope": 1937, + "src": "1033:91:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1596 + ], + "body": { + "id": 1707, + "nodeType": "Block", + "src": "1192:32:2", + "statements": [ + { + "expression": { + "id": 1705, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "1205:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1704, + "id": 1706, + "nodeType": "Return", + "src": "1198:19:2" + } + ] + }, + "functionSelector": "18160ddd", + "id": 1708, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1701, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1160:8:2" + }, + "parameters": { + "id": 1700, + "nodeType": "ParameterList", + "parameters": [], + "src": "1150:2:2" + }, + "returnParameters": { + "id": 1704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1703, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1708, + "src": "1183:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1183:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1182:9:2" + }, + "scope": 1937, + "src": "1130:94:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1603 + ], + "body": { + "id": 1720, + "nodeType": "Block", + "src": "1308:44:2", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 1716, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1325:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1718, + "indexExpression": { + "id": 1717, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "1334:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1325:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1715, + "id": 1719, + "nodeType": "Return", + "src": "1318:27:2" + } + ] + }, + "functionSelector": "70a08231", + "id": 1721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1712, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1276:8:2" + }, + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1249:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1249:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1248:20:2" + }, + "returnParameters": { + "id": 1715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1721, + "src": "1299:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1298:9:2" + }, + "scope": 1937, + "src": "1230:122:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1621 + ], + "body": { + "id": 1773, + "nodeType": "Block", + "src": "1444:268:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1732, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1462:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1733, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1475:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1736, + "indexExpression": { + "expression": { + "id": 1734, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1484:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1484:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1475:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1462:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1454:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1454:42:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1739, + "nodeType": "ExpressionStatement", + "src": "1454:42:2" + }, + { + "expression": { + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1740, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1506:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1743, + "indexExpression": { + "expression": { + "id": 1741, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1515:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1515:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1506:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1749, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1554:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1744, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1529:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1747, + "indexExpression": { + "expression": { + "id": 1745, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1538:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1538:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1529:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "1529:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1529:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1506:58:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1752, + "nodeType": "ExpressionStatement", + "src": "1506:58:2" + }, + { + "expression": { + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1753, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1574:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1755, + "indexExpression": { + "id": 1754, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1583:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1574:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1760, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1618:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1756, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1595:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1758, + "indexExpression": { + "id": 1757, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1604:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1595:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "1595:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1595:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1574:54:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1763, + "nodeType": "ExpressionStatement", + "src": "1574:54:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1652:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1652:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1767, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "1664:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1768, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1674:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1764, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "1643:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1643:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1770, + "nodeType": "EmitStatement", + "src": "1638:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1730, + "id": 1772, + "nodeType": "Return", + "src": "1694:11:2" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 1774, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1420:8:2" + }, + "parameters": { + "id": 1726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1723, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1376:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1376:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1394:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1394:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1375:37:2" + }, + "returnParameters": { + "id": 1730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1774, + "src": "1438:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1438:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1437:6:2" + }, + "scope": 1937, + "src": "1358:354:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1630 + ], + "body": { + "id": 1802, + "nodeType": "Block", + "src": "1803:135:2", + "statements": [ + { + "expression": { + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1784, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "1813:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1788, + "indexExpression": { + "expression": { + "id": 1785, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1821:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1821:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1813:19:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1789, + "indexExpression": { + "id": 1787, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1833:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1813:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1790, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1845:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1813:41:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1792, + "nodeType": "ExpressionStatement", + "src": "1813:41:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1794, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1878:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1878:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1796, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "1890:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1797, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "1900:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1793, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "1869:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1869:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1799, + "nodeType": "EmitStatement", + "src": "1864:46:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1927:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1783, + "id": 1801, + "nodeType": "Return", + "src": "1920:11:2" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 1803, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1780, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1779:8:2" + }, + "parameters": { + "id": 1779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1776, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1735:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1735:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1778, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1753:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1734:37:2" + }, + "returnParameters": { + "id": 1783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1782, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1797:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1781, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1797:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1796:6:2" + }, + "scope": 1937, + "src": "1718:220:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1612 + ], + "body": { + "id": 1819, + "nodeType": "Block", + "src": "2032:48:2", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1813, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2049:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1815, + "indexExpression": { + "id": 1814, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1805, + "src": "2057:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1817, + "indexExpression": { + "id": 1816, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "2064:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2049:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1812, + "id": 1818, + "nodeType": "Return", + "src": "2042:31:2" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 1820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1809, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2003:8:2" + }, + "parameters": { + "id": 1808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1963:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "1978:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1978:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1962:33:2" + }, + "returnParameters": { + "id": 1812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1811, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1820, + "src": "2026:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1810, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2026:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:6:2" + }, + "scope": 1937, + "src": "1944:136:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1641 + ], + "body": { + "id": 1898, + "nodeType": "Block", + "src": "2188:378:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1833, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2206:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 1834, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2219:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1836, + "indexExpression": { + "id": 1835, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2228:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2219:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2206:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1832, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2198:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2198:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1839, + "nodeType": "ExpressionStatement", + "src": "2198:37:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1841, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2253:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 1842, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2266:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1844, + "indexExpression": { + "id": 1843, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2274:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1847, + "indexExpression": { + "expression": { + "id": 1845, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2281:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2281:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2266:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2253:39:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1840, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2245:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:48:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1850, + "nodeType": "ExpressionStatement", + "src": "2245:48:2" + }, + { + "expression": { + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1851, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2304:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1853, + "indexExpression": { + "id": 1852, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2313:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2304:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1858, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2342:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1854, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2322:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1856, + "indexExpression": { + "id": 1855, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2331:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2322:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2322:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2322:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2304:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1861, + "nodeType": "ExpressionStatement", + "src": "2304:48:2" + }, + { + "expression": { + "id": 1877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1862, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2362:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1866, + "indexExpression": { + "id": 1863, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2370:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2362:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1867, + "indexExpression": { + "expression": { + "id": 1864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2377:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2377:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2362:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1875, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2422:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1868, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2391:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 1870, + "indexExpression": { + "id": 1869, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2399:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1873, + "indexExpression": { + "expression": { + "id": 1871, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2406:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2406:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2391:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1957, + "src": "2391:30:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2391:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2362:70:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1878, + "nodeType": "ExpressionStatement", + "src": "2362:70:2" + }, + { + "expression": { + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1879, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2442:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1881, + "indexExpression": { + "id": 1880, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2451:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2442:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1886, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2480:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1882, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2460:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1884, + "indexExpression": { + "id": 1883, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2469:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2460:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1981, + "src": "2460:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2460:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2442:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1889, + "nodeType": "ExpressionStatement", + "src": "2442:48:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1891, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2514:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1892, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2521:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1893, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "2528:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1890, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2505:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2505:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1895, + "nodeType": "EmitStatement", + "src": "2500:38:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2555:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1831, + "id": 1897, + "nodeType": "Return", + "src": "2548:11:2" + } + ] + }, + "functionSelector": "23b872dd", + "id": 1899, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1828, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2164:8:2" + }, + "parameters": { + "id": 1827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1822, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2108:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1824, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2123:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1823, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "numTokens", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2138:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2107:49:2" + }, + "returnParameters": { + "id": 1831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "2182:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1829, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2182:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2181:6:2" + }, + "scope": 1937, + "src": "2086:480:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1935, + "nodeType": "Block", + "src": "2626:213:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1907, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2644:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2663:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2655:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2655:7:2", + "typeDescriptions": {} + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2655:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2644:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2667:33:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 1906, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2636:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2636:65:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1915, + "nodeType": "ExpressionStatement", + "src": "2636:65:2" + }, + { + "expression": { + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1916, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "2712:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1917, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2728:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2712:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "2712:22:2" + }, + { + "expression": { + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1920, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2744:8:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1922, + "indexExpression": { + "id": 1921, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2744:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1923, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2765:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2744:27:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1925, + "nodeType": "ExpressionStatement", + "src": "2744:27:2" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2803:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2795:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2795:7:2", + "typeDescriptions": {} + } + }, + "id": 1930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2795:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1931, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2807:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1932, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2816:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1926, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1669, + "src": "2786:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2786:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1934, + "nodeType": "EmitStatement", + "src": "2781:42:2" + } + ] + }, + "functionSelector": "40c10f19", + "id": 1936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1901, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2586:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2586:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2603:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2603:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2585:33:2" + }, + "returnParameters": { + "id": 1905, + "nodeType": "ParameterList", + "parameters": [], + "src": "2626:0:2" + }, + "scope": 1937, + "src": "2572:267:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1983, + "src": "545:2296:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1982, + "linearizedBaseContracts": [ + 1982 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1956, + "nodeType": "Block", + "src": "2933:49:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1947, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2948:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2953:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2948:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1946, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "2941:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2941:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "2941:14:2" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1952, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "2970:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1953, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "2974:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2970:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1945, + "id": 1955, + "nodeType": "Return", + "src": "2963:12:2" + } + ] + }, + "id": 1957, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2879:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2879:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2890:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2878:22:2" + }, + "returnParameters": { + "id": 1945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2924:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2924:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2923:9:2" + }, + "scope": 1982, + "src": "2866:116:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1980, + "nodeType": "Block", + "src": "3055:70:2", + "statements": [ + { + "assignments": [ + 1967 + ], + "declarations": [ + { + "constant": false, + "id": 1967, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1980, + "src": "3063:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3063:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1971, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1968, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3075:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1969, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1961, + "src": "3079:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3075:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3063:17:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1973, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3095:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "3100:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3095:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1972, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3088:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3088:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1977, + "nodeType": "ExpressionStatement", + "src": "3088:14:2" + }, + { + "expression": { + "id": 1978, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "3117:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1965, + "id": 1979, + "nodeType": "Return", + "src": "3110:8:2" + } + ] + }, + "id": 1981, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1959, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3001:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3001:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1961, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3012:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3000:22:2" + }, + "returnParameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "3046:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3045:9:2" + }, + "scope": 1982, + "src": "2988:137:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1983, + "src": "2843:284:2" + } + ], + "src": "0:3128:2" + }, + "compiler": { + "name": "solc", + "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" + }, + "networks": { + "5777": { + "events": {}, + "links": {}, + "address": "0x7bcFCc51E280d2666923D22918B8144edbE9f84A", + "transactionHash": "0x69c8882c626d8abea65c4090d8012754efef94c045224e736d8577b8bf8f3be3" + } + }, + "schemaVersion": "3.4.1", + "updatedAt": "2021-08-03T17:29:35.615Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/contracts/artifacts/Core.json b/contracts/artifacts/Core.json new file mode 100644 index 0000000..ef46b05 --- /dev/null +++ b/contracts/artifacts/Core.json @@ -0,0 +1,17305 @@ +{ + "deploy": { + "VM:-": { + "linkReferences": {}, + "autoDeployLib": true + }, + "main:1": { + "linkReferences": {}, + "autoDeployLib": true + }, + "ropsten:3": { + "linkReferences": {}, + "autoDeployLib": true + }, + "rinkeby:4": { + "linkReferences": {}, + "autoDeployLib": true + }, + "kovan:42": { + "linkReferences": {}, + "autoDeployLib": true + }, + "görli:5": { + "linkReferences": {}, + "autoDeployLib": true + }, + "Custom": { + "linkReferences": {}, + "autoDeployLib": true + } + }, + "data": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052736b175474e89094c44da98b954eedeac495271d0f600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060075560006008553480156100d257600080fd5b506001600081905550614303806100ea6000396000f3fe6080604052600436106101015760003560e01c80635c52a5f211610095578063871f179f11610064578063871f179f146103cc578063e289ae8114610409578063e57fcc2014610446578063f789271c14610483578063fe99049a146104c057610102565b80635c52a5f2146102d85780637d4c82ca1461031557806384d621781461035257806386468c421461038f57610102565b806323cfbf1a116100d157806323cfbf1a146101f65780632eaee35e146102335780632f3f7d7f1461025e578063426a84931461029b57610102565b8062b4fa3e14610104578063095bcdb6146101495780630afc785414610172578063188783d6146101af57610102565b5b005b34801561011057600080fd5b5061012b600480360381019061012691906133da565b6104e9565b60405161014099989796959493929190613ca4565b60405180910390f35b34801561015557600080fd5b50610170600480360381019061016b9190613321565b610591565b005b34801561017e57600080fd5b50610199600480360381019061019491906133da565b6105a2565b6040516101a69190613d91565b60405180910390f35b3480156101bb57600080fd5b506101d660048036038101906101d191906133da565b610a1a565b6040516101ed9b9a99989796959493929190613b7b565b60405180910390f35b34801561020257600080fd5b5061021d600480360381019061021891906133da565b610aee565b60405161022a9190613d91565b60405180910390f35b34801561023f57600080fd5b50610248610f7b565b6040516102559190613ad3565b60405180910390f35b34801561026a57600080fd5b5061028560048036038101906102809190612ff6565b610fa1565b6040516102929190613d91565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190613321565b610fc1565b6040516102cf9190613d91565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa919061326f565b6111af565b60405161030c9190613fcc565b60405180910390f35b34801561032157600080fd5b5061033c6004803603810190610337919061301f565b611237565b6040516103499190613d91565b60405180910390f35b34801561035e57600080fd5b50610379600480360381019061037491906130d1565b611872565b6040516103869190613fcc565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b19190613370565b6118be565b6040516103c39190613d91565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190613321565b611936565b6040516104009190613d91565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b9190613148565b611eec565b60405161043d9190613fcc565b60405180910390f35b34801561045257600080fd5b5061046d600480360381019061046891906131d1565b611f45565b60405161047a9190613fcc565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a591906131d1565b612685565b6040516104b79190613d91565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e291906132be565b61276b565b005b600a6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16908060020154908060030154908060040154908060050154908060060154908060070160009054906101000a900460ff16905089565b61059d33848484612831565b505050565b60003373ffffffffffffffffffffffffffffffffffffffff16600a600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063f90613f0c565b60405180910390fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600086815260200190815260200160002060010160149054906101000a900460ff161515151581526020019081526020016000206000600a60008681526020019081526020016000206002015481526020019081526020016000206000600a60008681526020019081526020016000206003015481526020019081526020016000206000600a60008681526020019081526020016000206004015481526020019081526020016000205490506000600a600085815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008190506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600089815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600089815260200190815260200160002060010160149054906101000a900460ff161515151581526020019081526020016000206000600a60008981526020019081526020016000206002015481526020019081526020016000206000600a60008981526020019081526020016000206003015481526020019081526020016000206000600a6000898152602001908152602001600020600401548152602001908152602001600020819055506000600a600087815260200190815260200160002060070160006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016109bb929190613d68565b602060405180830381600087803b1580156109d557600080fd5b505af11580156109e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0d91906133b1565b5060019350505050919050565b60096020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060030154908060040154908060050154908060060154908060070154908060080154908060090160009054906101000a900460ff1690508b565b60008015156009600084815260200190815260200160002060090160009054906101000a900460ff16151514610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090613dcc565b60405180910390fd5b4260096000848152602001908152602001600020600501541015610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba990613f2c565b60405180910390fd5b600060096000848152602001908152602001600020604051806101600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900460ff161515151581526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481526020016009820160009054906101000a900460ff161515151581525050905060008160400151905060008190506000610d7484608001518560e00151612eb590919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd85600001518660200151846040518463ffffffff1660e01b8152600401610ddd93929190613d31565b602060405180830381600087803b158015610df757600080fd5b505af1158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906133b1565b610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613f8c565b60405180910390fd5b60016009600088815260200190815260200160002060090160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85600001518660e001516040518363ffffffff1660e01b8152600401610ee0929190613d68565b602060405180830381600087803b158015610efa57600080fd5b505af1158015610f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3291906133b1565b507f5fd7d80018e9d1078709eb14daa12c7d0956c931e763e0ed2889aae7452672eb868242604051610f6693929190614010565b60405180910390a16001945050505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b60003373ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e90613eac565b60405180910390fd5b82600960008481526020019081526020016000206006015410156110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b790613ecc565b60405180910390fd5b82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a785856040516111a0929190613fe7565b60405180910390a39392505050565b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509392505050565b60008061124989898989898989612685565b90508061128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290613e4c565b60405180910390fd5b806112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c290613f6c565b60405180910390fd5b6000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600089151515158152602001908152602001600020600088815260200190815260200160002060008781526020019081526020016000206000868152602001908152602001600020549050808411156113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce90613fac565b60405180910390fd5b60006113ec8588612eb590919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd338d846040518463ffffffff1660e01b815260040161144d93929190613d31565b602060405180830381600087803b15801561146757600080fd5b505af115801561147b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149f91906133b1565b6114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590613f4c565b60405180910390fd5b6115b585600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002054612ecb90919063ffffffff16565b600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002060008881526020019081526020016000208190555061174385600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b8152602001908152602001600020600089815260200190815260200160002054612ee190919063ffffffff16565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a81526020019081526020016000206000888152602001908152602001600020819055506118106001600854612ee190919063ffffffff16565b6008819055507fa424d29bf47b9249da68537a7ce50b17b8c471cff46be0dbfef01f474b2b75608c8c8c8c8c8c8c8c60085460405161185799989796959493929190613aee565b60405180910390a16001935050505098975050505050505050565b6005602052846000526040600020602052836000526040600020602052826000526040600020602052816000526040600020602052806000526040600020600094509450505050505481565b600080600090505b825181101561192c5761191883828151811061190b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610aee565b508080611924906141e1565b9150506118c6565b5060019050919050565b600060011515600a600085815260200190815260200160002060070160009054906101000a900460ff161515146119a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199990613dec565b60405180910390fd5b6000600a6000858152602001908152602001600020604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff16151515158152505090506000611b02826000015183602001518460400151856060015186608001518760a001518a612685565b905080611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b90613e4c565b60405180910390fd5b8160c00151841115611b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8290613e8c565b60405180910390fd5b6000611ba4858460800151612eb590919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd338560000151846040518463ffffffff1660e01b8152600401611c0993929190613d31565b602060405180830381600087803b158015611c2357600080fd5b505af1158015611c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5b91906133b1565b611c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9190613f4c565b60405180910390fd5b611d898560046000866000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040015115151515815260200190815260200160002060008660600151815260200190815260200160002060008660800151815260200190815260200160002060008660a00151815260200190815260200160002054612ecb90919063ffffffff16565b50611e6085600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040015115151515815260200190815260200160002060008660600151815260200190815260200160002060008660a00151815260200190815260200160002054612ee190919063ffffffff16565b50611e776001600854612ee190919063ffffffff16565b6008819055507fa424d29bf47b9249da68537a7ce50b17b8c471cff46be0dbfef01f474b2b756087846000015185602001518660400151876060015188608001518960a001518c600854604051611ed699989796959493929190613aee565b60405180910390a1600193505050509392505050565b600460205285600052604060002060205284600052604060002060205283600052604060002060205282600052604060002060205281600052604060002060205280600052604060002060009550955050505050505481565b60008087905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611f869190613ad3565b60206040518083038186803b158015611f9e57600080fd5b505afa158015611fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd69190613403565b90508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b815260040161201593929190613d31565b602060405180830381600087803b15801561202f57600080fd5b505af1158015612043573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206791906133b1565b5060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016120a39190613ad3565b60206040518083038186803b1580156120bb57600080fd5b505afa1580156120cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f39190613403565b90506121088583612ee190919063ffffffff16565b81101561214a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214190613e0c565b60405180910390fd5b6000600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002060008881526020019081526020016000205414156122e55784600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a81526020019081526020016000206000898152602001908152602001600020600088815260200190815260200160002081905550612485565b6123bc85600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002054612ee190919063ffffffff16565b600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a815260200190815260200160002060008981526020019081526020016000206000888152602001908152602001600020819055505b61249b6001600754612ee190919063ffffffff16565b6007819055506040518061012001604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a1515815260200189815260200188815260200187815260200186815260200142815260200160011515815250600a6000600754815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff021916908315150217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e082015181600601556101008201518160070160006101000a81548160ff0219169083151502179055509050507fe717931682f00f8755881436a6596ebc03672fbdb9cc19fb8188f2a4b94a5c9a8b8b8b8b8b8b8b60075460405161266a989796959493929190613c26565b60405180910390a16007549350505050979650505050505050565b600081600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088151515158152602001908152602001600020600087815260200190815260200160002060008681526020019081526020016000206000858152602001908152602001600020541061275b5760019050612760565b600090505b979650505050505050565b60006127788585846111af565b9050600081146127bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b490613e6c565b60405180910390fd5b82811015612800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f790613eec565b60405180910390fd5b61280c85858585612831565b612829846128238584612ecb90919063ffffffff16565b84610fc1565b505050505050565b8373ffffffffffffffffffffffffffffffffffffffff166009600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cc90613eac565b60405180910390fd5b816009600083815260200190815260200160002060060154101561292e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292590613e2c565b60405180910390fd5b600060096000838152602001908152602001600020604051806101600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900460ff161515151581526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481526020016009820160009054906101000a900460ff161515151581525050905080610140015115612b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0290613dac565b60405180910390fd5b612be183600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846060015115151515815260200190815260200160002060008460800151815260200190815260200160002060008460c00151815260200190815260200160002054612ecb90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836060015115151515815260200190815260200160002060008360800151815260200190815260200160002060008360c00151815260200190815260200160002081905550612d7e83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846060015115151515815260200190815260200160002060008460800151815260200190815260200160002060008460c00151815260200190815260200160002054612ee190919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836060015115151515815260200190815260200160002060008360800151815260200190815260200160002060008360c001518152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc817d75deaa278e988c41cf549ef38fe195ab65e0e64cd67ba47f0d185690d58858542604051612ea693929190614010565b60405180910390a35050505050565b60008183612ec3919061410b565b905092915050565b60008183612ed99190614165565b905092915050565b60008183612eef91906140b5565b905092915050565b6000612f0a612f0584614078565b614047565b90508083825260208201905082856020860282011115612f2957600080fd5b60005b85811015612f595781612f3f8882612fcc565b845260208401935060208301925050600181019050612f2c565b5050509392505050565b600081359050612f7281614288565b92915050565b600082601f830112612f8957600080fd5b8135612f99848260208601612ef7565b91505092915050565b600081359050612fb18161429f565b92915050565b600081519050612fc68161429f565b92915050565b600081359050612fdb816142b6565b92915050565b600081519050612ff0816142b6565b92915050565b60006020828403121561300857600080fd5b600061301684828501612f63565b91505092915050565b600080600080600080600080610100898b03121561303c57600080fd5b600061304a8b828c01612f63565b985050602061305b8b828c01612f63565b975050604061306c8b828c01612f63565b965050606061307d8b828c01612fa2565b955050608061308e8b828c01612fcc565b94505060a061309f8b828c01612fcc565b93505060c06130b08b828c01612fcc565b92505060e06130c18b828c01612fcc565b9150509295985092959890939650565b600080600080600060a086880312156130e957600080fd5b60006130f788828901612f63565b955050602061310888828901612f63565b945050604061311988828901612fa2565b935050606061312a88828901612fcc565b925050608061313b88828901612fcc565b9150509295509295909350565b60008060008060008060c0878903121561316157600080fd5b600061316f89828a01612f63565b965050602061318089828a01612f63565b955050604061319189828a01612fa2565b94505060606131a289828a01612fcc565b93505060806131b389828a01612fcc565b92505060a06131c489828a01612fcc565b9150509295509295509295565b600080600080600080600060e0888a0312156131ec57600080fd5b60006131fa8a828b01612f63565b975050602061320b8a828b01612f63565b965050604061321c8a828b01612fa2565b955050606061322d8a828b01612fcc565b945050608061323e8a828b01612fcc565b93505060a061324f8a828b01612fcc565b92505060c06132608a828b01612fcc565b91505092959891949750929550565b60008060006060848603121561328457600080fd5b600061329286828701612f63565b93505060206132a386828701612f63565b92505060406132b486828701612fcc565b9150509250925092565b600080600080608085870312156132d457600080fd5b60006132e287828801612f63565b94505060206132f387828801612f63565b935050604061330487828801612fcc565b925050606061331587828801612fcc565b91505092959194509250565b60008060006060848603121561333657600080fd5b600061334486828701612f63565b935050602061335586828701612fcc565b925050604061336686828701612fcc565b9150509250925092565b60006020828403121561338257600080fd5b600082013567ffffffffffffffff81111561339c57600080fd5b6133a884828501612f78565b91505092915050565b6000602082840312156133c357600080fd5b60006133d184828501612fb7565b91505092915050565b6000602082840312156133ec57600080fd5b60006133fa84828501612fcc565b91505092915050565b60006020828403121561341557600080fd5b600061342384828501612fe1565b91505092915050565b61343581614199565b82525050565b613444816141ab565b82525050565b60006134576023836140a4565b91507f63616e6e6f74207472616e7366657220616e206578657263697a6564206f707460008301527f696f6e00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134bd6027836140a4565b91507f54686973206f7074696f6e2068617320616c7265616479206265656e2065786360008301527f657273697a6564000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613523601e836140a4565b91507f54686973206f7074696f6e206973206e6f206c6f6e6765722076616c696400006000830152602082019050919050565b60006135636040836140a4565b91507f436f756c64206e6f74207472616e736665722074686520616d6f756e7420667260008301527f6f6d206d73672e73656e646572207468617420776173207265717565737465646020830152604082019050919050565b60006135c9601e836140a4565b91507f43616e6e6f74207472616e666572206d6f7265207468616e206f776e656400006000830152602082019050919050565b60006136096047836140a4565b91507f54686973206f7074696f6e206973206e6f742062757961626c652e20506c656160008301527f736520636865636b207468652073656c6c65722773206f6666657220696e666f60208301527f726d6174696f6e000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000613695600c836140a4565b91507f4e6f7420617070726f76656400000000000000000000000000000000000000006000830152602082019050919050565b60006136d5602c836140a4565b91507f5468657265206973206e6f7420656e6f75676820696e76656e746f727920666f60008301527f722074686973206f7264657200000000000000000000000000000000000000006020830152604082019050919050565b600061373b601e836140a4565b91507f5468652073656e646572206d757374206f776e20746865206f7074696f6e00006000830152602082019050919050565b600061377b601e836140a4565b91507f43616e6e6f7420617070726f7665206d6f7265207468616e206f776e656400006000830152602082019050919050565b60006137bb601c836140a4565b91507f4e6f7420617070726f76656420666f72207468697320616d6f756e74000000006000830152602082019050919050565b60006137fb6023836140a4565b91507f546865206d73672e73656e6465722068617320746f206265207468652073656c60008301527f6c657200000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138616037836140a4565b91507f54686973206f7074696f6e20686173206e6f742072656163686564206974732060008301527f657863657273697a652074696d657374616d70207965740000000000000000006020830152604082019050919050565b60006138c7604d836140a4565b91507f506c6561736520656e73757265207468617420796f752068617665206170707260008301527f6f766564207468697320636f6e747261637420746f2068616e646c6520796f7560208301527f722044414920286572726f7229000000000000000000000000000000000000006040830152606082019050919050565b60006139536060836140a4565b91507f536f7272793a207468657265206973206e6f206f6e652073656c6c696e67206f60008301527f7074696f6e732074686174206d65657420796f7572207370656369666963617460208301527f696f6e732e205065726861707320747279206275794f7074696f6e42794964736040830152606082019050919050565b60006139df6052836140a4565b91507f4469642074686520627579657220617070726f7665207468697320636f6e747260008301527f61637420746f2068616e646c6520444149206f72206861766520616e6f75676860208301527f2044414920746f20657863657273697a653f00000000000000000000000000006040830152606082019050919050565b6000613a6b602d836140a4565b91507f205468657265206973206e6f7420656e6f75676820696e76656e746f7279206660008301527f6f722074686973206f72646572000000000000000000000000000000000000006020830152604082019050919050565b613acd816141d7565b82525050565b6000602082019050613ae8600083018461342c565b92915050565b600061012082019050613b04600083018c61342c565b613b11602083018b61342c565b613b1e604083018a61342c565b613b2b606083018961343b565b613b386080830188613ac4565b613b4560a0830187613ac4565b613b5260c0830186613ac4565b613b5f60e0830185613ac4565b613b6d610100830184613ac4565b9a9950505050505050505050565b600061016082019050613b91600083018e61342c565b613b9e602083018d61342c565b613bab604083018c61342c565b613bb8606083018b61343b565b613bc5608083018a613ac4565b613bd260a0830189613ac4565b613bdf60c0830188613ac4565b613bec60e0830187613ac4565b613bfa610100830186613ac4565b613c08610120830185613ac4565b613c1661014083018461343b565b9c9b505050505050505050505050565b600061010082019050613c3c600083018b61342c565b613c49602083018a61342c565b613c56604083018961343b565b613c636060830188613ac4565b613c706080830187613ac4565b613c7d60a0830186613ac4565b613c8a60c0830185613ac4565b613c9760e0830184613ac4565b9998505050505050505050565b600061012082019050613cba600083018c61342c565b613cc7602083018b61342c565b613cd4604083018a61343b565b613ce16060830189613ac4565b613cee6080830188613ac4565b613cfb60a0830187613ac4565b613d0860c0830186613ac4565b613d1560e0830185613ac4565b613d2361010083018461343b565b9a9950505050505050505050565b6000606082019050613d46600083018661342c565b613d53602083018561342c565b613d606040830184613ac4565b949350505050565b6000604082019050613d7d600083018561342c565b613d8a6020830184613ac4565b9392505050565b6000602082019050613da6600083018461343b565b92915050565b60006020820190508181036000830152613dc58161344a565b9050919050565b60006020820190508181036000830152613de5816134b0565b9050919050565b60006020820190508181036000830152613e0581613516565b9050919050565b60006020820190508181036000830152613e2581613556565b9050919050565b60006020820190508181036000830152613e45816135bc565b9050919050565b60006020820190508181036000830152613e65816135fc565b9050919050565b60006020820190508181036000830152613e8581613688565b9050919050565b60006020820190508181036000830152613ea5816136c8565b9050919050565b60006020820190508181036000830152613ec58161372e565b9050919050565b60006020820190508181036000830152613ee58161376e565b9050919050565b60006020820190508181036000830152613f05816137ae565b9050919050565b60006020820190508181036000830152613f25816137ee565b9050919050565b60006020820190508181036000830152613f4581613854565b9050919050565b60006020820190508181036000830152613f65816138ba565b9050919050565b60006020820190508181036000830152613f8581613946565b9050919050565b60006020820190508181036000830152613fa5816139d2565b9050919050565b60006020820190508181036000830152613fc581613a5e565b9050919050565b6000602082019050613fe16000830184613ac4565b92915050565b6000604082019050613ffc6000830185613ac4565b6140096020830184613ac4565b9392505050565b60006060820190506140256000830186613ac4565b6140326020830185613ac4565b61403f6040830184613ac4565b949350505050565b6000604051905081810181811067ffffffffffffffff8211171561406e5761406d614259565b5b8060405250919050565b600067ffffffffffffffff82111561409357614092614259565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006140c0826141d7565b91506140cb836141d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614100576140ff61422a565b5b828201905092915050565b6000614116826141d7565b9150614121836141d7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561415a5761415961422a565b5b828202905092915050565b6000614170826141d7565b915061417b836141d7565b92508282101561418e5761418d61422a565b5b828203905092915050565b60006141a4826141b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006141ec826141d7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561421f5761421e61422a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61429181614199565b811461429c57600080fd5b50565b6142a8816141ab565b81146142b357600080fd5b50565b6142bf816141d7565b81146142ca57600080fd5b5056fea264697066735822122049b5f8603ca2ad95771fe90b6a034e6b122b228f0b3d52c72aa598ea8c7bff5664736f6c63430008000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH20 0x6B175474E89094C44DA98B954EEDEAC495271D0F PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x7 SSTORE PUSH1 0x0 PUSH1 0x8 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0xD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH2 0x4303 DUP1 PUSH2 0xEA PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x101 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C52A5F2 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0x871F179F GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x871F179F EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0xE289AE81 EQ PUSH2 0x409 JUMPI DUP1 PUSH4 0xE57FCC20 EQ PUSH2 0x446 JUMPI DUP1 PUSH4 0xF789271C EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0xFE99049A EQ PUSH2 0x4C0 JUMPI PUSH2 0x102 JUMP JUMPDEST DUP1 PUSH4 0x5C52A5F2 EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x7D4C82CA EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x84D62178 EQ PUSH2 0x352 JUMPI DUP1 PUSH4 0x86468C42 EQ PUSH2 0x38F JUMPI PUSH2 0x102 JUMP JUMPDEST DUP1 PUSH4 0x23CFBF1A GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0x23CFBF1A EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0x2EAEE35E EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0x2F3F7D7F EQ PUSH2 0x25E JUMPI DUP1 PUSH4 0x426A8493 EQ PUSH2 0x29B JUMPI PUSH2 0x102 JUMP JUMPDEST DUP1 PUSH3 0xB4FA3E EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x95BCDB6 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0xAFC7854 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x188783D6 EQ PUSH2 0x1AF JUMPI PUSH2 0x102 JUMP JUMPDEST JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x33DA JUMP JUMPDEST PUSH2 0x4E9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x140 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3CA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x155 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x3321 JUMP JUMPDEST PUSH2 0x591 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x194 SWAP2 SWAP1 PUSH2 0x33DA JUMP JUMPDEST PUSH2 0x5A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D1 SWAP2 SWAP1 PUSH2 0x33DA JUMP JUMPDEST PUSH2 0xA1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3B7B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x202 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x218 SWAP2 SWAP1 PUSH2 0x33DA JUMP JUMPDEST PUSH2 0xAEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22A SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x255 SWAP2 SWAP1 PUSH2 0x3AD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x285 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x280 SWAP2 SWAP1 PUSH2 0x2FF6 JUMP JUMPDEST PUSH2 0xFA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x292 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0x3321 JUMP JUMPDEST PUSH2 0xFC1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CF SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FA SWAP2 SWAP1 PUSH2 0x326F JUMP JUMPDEST PUSH2 0x11AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x3FCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x301F JUMP JUMPDEST PUSH2 0x1237 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x349 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x379 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x374 SWAP2 SWAP1 PUSH2 0x30D1 JUMP JUMPDEST PUSH2 0x1872 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x386 SWAP2 SWAP1 PUSH2 0x3FCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x3370 JUMP JUMPDEST PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C3 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EE SWAP2 SWAP1 PUSH2 0x3321 JUMP JUMPDEST PUSH2 0x1936 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x400 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x430 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42B SWAP2 SWAP1 PUSH2 0x3148 JUMP JUMPDEST PUSH2 0x1EEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43D SWAP2 SWAP1 PUSH2 0x3FCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x468 SWAP2 SWAP1 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x1F45 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x47A SWAP2 SWAP1 PUSH2 0x3FCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4A5 SWAP2 SWAP1 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x2685 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B7 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E2 SWAP2 SWAP1 PUSH2 0x32BE JUMP JUMPDEST PUSH2 0x276B JUMP JUMPDEST STOP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 DUP1 PUSH1 0x5 ADD SLOAD SWAP1 DUP1 PUSH1 0x6 ADD SLOAD SWAP1 DUP1 PUSH1 0x7 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP10 JUMP JUMPDEST PUSH2 0x59D CALLER DUP5 DUP5 DUP5 PUSH2 0x2831 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x648 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x63F SWAP1 PUSH2 0x3F0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9BB SWAP3 SWAP2 SWAP1 PUSH2 0x3D68 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA0D SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 DUP1 PUSH1 0x5 ADD SLOAD SWAP1 DUP1 PUSH1 0x6 ADD SLOAD SWAP1 DUP1 PUSH1 0x7 ADD SLOAD SWAP1 DUP1 PUSH1 0x8 ADD SLOAD SWAP1 DUP1 PUSH1 0x9 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP12 JUMP JUMPDEST PUSH1 0x0 DUP1 ISZERO ISZERO PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x9 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0xB59 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB50 SWAP1 PUSH2 0x3DCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD SLOAD LT ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBA9 SWAP1 PUSH2 0x3F2C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x0 PUSH2 0xD74 DUP5 PUSH1 0x80 ADD MLOAD DUP6 PUSH1 0xE0 ADD MLOAD PUSH2 0x2EB5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD DUP6 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDDD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3D31 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE0B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE2F SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST PUSH2 0xE6E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE65 SWAP1 PUSH2 0x3F8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x9 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x9 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP6 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0xE0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEE0 SWAP3 SWAP2 SWAP1 PUSH2 0x3D68 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF0E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF32 SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST POP PUSH32 0x5FD7D80018E9D1078709EB14DAA12C7D0956C931E763E0ED2889AAE7452672EB DUP7 DUP3 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0xF66 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP5 POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1067 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x105E SWAP1 PUSH2 0x3EAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10B7 SWAP1 PUSH2 0x3ECC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x6 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB3FD5071835887567A0671151121894DDCCC2842F1D10BEDAD13E0D17CACE9A7 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x11A0 SWAP3 SWAP2 SWAP1 PUSH2 0x3FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1249 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x2685 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x128B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1282 SWAP1 PUSH2 0x3E4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x12CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12C2 SWAP1 PUSH2 0x3F6C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0x13D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13CE SWAP1 PUSH2 0x3FAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x13EC DUP6 DUP9 PUSH2 0x2EB5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP14 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x144D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3D31 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x147B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x149F SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST PUSH2 0x14DE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14D5 SWAP1 PUSH2 0x3F4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15B5 DUP6 PUSH1 0x4 PUSH1 0x0 DUP15 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1743 DUP6 PUSH1 0x5 PUSH1 0x0 DUP16 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP15 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1810 PUSH1 0x1 PUSH1 0x8 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH32 0xA424D29BF47B9249DA68537A7CE50B17B8C471CFF46BE0DBFEF01F474B2B7560 DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH2 0x1857 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP4 POP POP POP POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP5 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP4 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP3 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP5 POP SWAP5 POP POP POP POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x192C JUMPI PUSH2 0x1918 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x190B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xAEE JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0x1924 SWAP1 PUSH2 0x41E1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x18C6 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 ISZERO ISZERO PUSH1 0xA PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x19A2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1999 SWAP1 PUSH2 0x3DEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x1B02 DUP3 PUSH1 0x0 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD DUP8 PUSH1 0xA0 ADD MLOAD DUP11 PUSH2 0x2685 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1B44 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B3B SWAP1 PUSH2 0x3E4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD DUP5 GT ISZERO PUSH2 0x1B8B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B82 SWAP1 PUSH2 0x3E8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1BA4 DUP6 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x2EB5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP6 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C09 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3D31 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C37 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C5B SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST PUSH2 0x1C9A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C91 SWAP1 PUSH2 0x3F4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1D89 DUP6 PUSH1 0x4 PUSH1 0x0 DUP7 PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x40 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0xA0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x1E60 DUP6 PUSH1 0x5 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x40 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0xA0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x1E77 PUSH1 0x1 PUSH1 0x8 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH32 0xA424D29BF47B9249DA68537A7CE50B17B8C471CFF46BE0DBFEF01F474B2B7560 DUP8 DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD DUP9 PUSH1 0x80 ADD MLOAD DUP10 PUSH1 0xA0 ADD MLOAD DUP13 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED6 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP6 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP5 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP4 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP3 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP6 POP SWAP6 POP POP POP POP POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP8 SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F86 SWAP2 SWAP1 PUSH2 0x3AD3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FD6 SWAP2 SWAP1 PUSH2 0x3403 JUMP JUMPDEST SWAP1 POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2015 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3D31 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x202F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2043 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2067 SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20A3 SWAP2 SWAP1 PUSH2 0x3AD3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20F3 SWAP2 SWAP1 PUSH2 0x3403 JUMP JUMPDEST SWAP1 POP PUSH2 0x2108 DUP6 DUP4 PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x214A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2141 SWAP1 PUSH2 0x3E0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO PUSH2 0x22E5 JUMPI DUP5 PUSH1 0x4 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x2485 JUMP JUMPDEST PUSH2 0x23BC DUP6 PUSH1 0x4 PUSH1 0x0 DUP15 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMPDEST PUSH2 0x249B PUSH1 0x1 PUSH1 0x7 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE DUP1 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP11 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE POP PUSH1 0xA PUSH1 0x0 PUSH1 0x7 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH32 0xE717931682F00F8755881436A6596EBC03672FBDB9CC19FB8188F2A4B94A5C9A DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH2 0x266A SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3C26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 SLOAD SWAP4 POP POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT PUSH2 0x275B JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x2760 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2778 DUP6 DUP6 DUP5 PUSH2 0x11AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x27BD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x27B4 SWAP1 PUSH2 0x3E6C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2800 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x27F7 SWAP1 PUSH2 0x3EEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x280C DUP6 DUP6 DUP6 DUP6 PUSH2 0x2831 JUMP JUMPDEST PUSH2 0x2829 DUP5 PUSH2 0x2823 DUP6 DUP5 PUSH2 0x2ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP5 PUSH2 0xFC1 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x28D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28CC SWAP1 PUSH2 0x3EAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x292E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2925 SWAP1 PUSH2 0x3E2C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH2 0x140 ADD MLOAD ISZERO PUSH2 0x2B0B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B02 SWAP1 PUSH2 0x3DAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2BE1 DUP4 PUSH1 0x5 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x60 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x60 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x2D7E DUP4 PUSH1 0x5 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x60 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x60 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC817D75DEAA278E988C41CF549EF38FE195AB65E0E64CD67BA47F0D185690D58 DUP6 DUP6 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x2EA6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x2EC3 SWAP2 SWAP1 PUSH2 0x410B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x2ED9 SWAP2 SWAP1 PUSH2 0x4165 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x2EEF SWAP2 SWAP1 PUSH2 0x40B5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F0A PUSH2 0x2F05 DUP5 PUSH2 0x4078 JUMP JUMPDEST PUSH2 0x4047 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x2F29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2F59 JUMPI DUP2 PUSH2 0x2F3F DUP9 DUP3 PUSH2 0x2FCC JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2F2C JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2F72 DUP2 PUSH2 0x4288 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2F99 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2EF7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2FB1 DUP2 PUSH2 0x429F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2FC6 DUP2 PUSH2 0x429F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2FDB DUP2 PUSH2 0x42B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2FF0 DUP2 PUSH2 0x42B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3008 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3016 DUP5 DUP3 DUP6 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x303C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x304A DUP12 DUP3 DUP13 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x305B DUP12 DUP3 DUP13 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x306C DUP12 DUP3 DUP13 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH2 0x307D DUP12 DUP3 DUP13 ADD PUSH2 0x2FA2 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 PUSH2 0x308E DUP12 DUP3 DUP13 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH2 0x309F DUP12 DUP3 DUP13 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 PUSH2 0x30B0 DUP12 DUP3 DUP13 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0xE0 PUSH2 0x30C1 DUP12 DUP3 DUP13 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x30E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x30F7 DUP9 DUP3 DUP10 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x3108 DUP9 DUP3 DUP10 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x3119 DUP9 DUP3 DUP10 ADD PUSH2 0x2FA2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x312A DUP9 DUP3 DUP10 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x313B DUP9 DUP3 DUP10 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3161 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x316F DUP10 DUP3 DUP11 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x3180 DUP10 DUP3 DUP11 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x3191 DUP10 DUP3 DUP11 ADD PUSH2 0x2FA2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x31A2 DUP10 DUP3 DUP11 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x31B3 DUP10 DUP3 DUP11 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x31C4 DUP10 DUP3 DUP11 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x31EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x31FA DUP11 DUP3 DUP12 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x320B DUP11 DUP3 DUP12 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x321C DUP11 DUP3 DUP12 ADD PUSH2 0x2FA2 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x322D DUP11 DUP3 DUP12 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x323E DUP11 DUP3 DUP12 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x324F DUP11 DUP3 DUP12 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0x3260 DUP11 DUP3 DUP12 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3284 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3292 DUP7 DUP3 DUP8 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x32A3 DUP7 DUP3 DUP8 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x32B4 DUP7 DUP3 DUP8 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x32D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x32E2 DUP8 DUP3 DUP9 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x32F3 DUP8 DUP3 DUP9 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x3304 DUP8 DUP3 DUP9 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x3315 DUP8 DUP3 DUP9 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3336 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3344 DUP7 DUP3 DUP8 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3355 DUP7 DUP3 DUP8 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3366 DUP7 DUP3 DUP8 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x339C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x33A8 DUP5 DUP3 DUP6 ADD PUSH2 0x2F78 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x33D1 DUP5 DUP3 DUP6 ADD PUSH2 0x2FB7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x33FA DUP5 DUP3 DUP6 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3423 DUP5 DUP3 DUP6 ADD PUSH2 0x2FE1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3435 DUP2 PUSH2 0x4199 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3444 DUP2 PUSH2 0x41AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3457 PUSH1 0x23 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x63616E6E6F74207472616E7366657220616E206578657263697A6564206F7074 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x696F6E0000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34BD PUSH1 0x27 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x54686973206F7074696F6E2068617320616C7265616479206265656E20657863 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x657273697A656400000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3523 PUSH1 0x1E DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x54686973206F7074696F6E206973206E6F206C6F6E6765722076616C69640000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3563 PUSH1 0x40 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x436F756C64206E6F74207472616E736665722074686520616D6F756E74206672 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6D206D73672E73656E64657220746861742077617320726571756573746564 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35C9 PUSH1 0x1E DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x43616E6E6F74207472616E666572206D6F7265207468616E206F776E65640000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3609 PUSH1 0x47 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x54686973206F7074696F6E206973206E6F742062757961626C652E20506C6561 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x736520636865636B207468652073656C6C65722773206F6666657220696E666F PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x726D6174696F6E00000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3695 PUSH1 0xC DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x4E6F7420617070726F7665640000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36D5 PUSH1 0x2C DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x5468657265206973206E6F7420656E6F75676820696E76656E746F727920666F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x722074686973206F726465720000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x373B PUSH1 0x1E DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x5468652073656E646572206D757374206F776E20746865206F7074696F6E0000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x377B PUSH1 0x1E DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x43616E6E6F7420617070726F7665206D6F7265207468616E206F776E65640000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37BB PUSH1 0x1C DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x4E6F7420617070726F76656420666F72207468697320616D6F756E7400000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37FB PUSH1 0x23 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x546865206D73672E73656E6465722068617320746F206265207468652073656C PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C65720000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3861 PUSH1 0x37 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x54686973206F7074696F6E20686173206E6F7420726561636865642069747320 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x657863657273697A652074696D657374616D7020796574000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38C7 PUSH1 0x4D DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x506C6561736520656E73757265207468617420796F7520686176652061707072 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F766564207468697320636F6E747261637420746F2068616E646C6520796F75 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x722044414920286572726F722900000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3953 PUSH1 0x60 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x536F7272793A207468657265206973206E6F206F6E652073656C6C696E67206F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7074696F6E732074686174206D65657420796F75722073706563696669636174 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x696F6E732E205065726861707320747279206275794F7074696F6E4279496473 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39DF PUSH1 0x52 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x4469642074686520627579657220617070726F7665207468697320636F6E7472 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x61637420746F2068616E646C6520444149206F72206861766520616E6F756768 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x2044414920746F20657863657273697A653F0000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A6B PUSH1 0x2D DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x205468657265206973206E6F7420656E6F75676820696E76656E746F72792066 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F722074686973206F7264657200000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3ACD DUP2 PUSH2 0x41D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3AE8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x342C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x3B04 PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3B11 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3B1E PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3B2B PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x343B JUMP JUMPDEST PUSH2 0x3B38 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3B45 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3B52 PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3B5F PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3B6D PUSH2 0x100 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP3 ADD SWAP1 POP PUSH2 0x3B91 PUSH1 0x0 DUP4 ADD DUP15 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3B9E PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3BAB PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3BB8 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x343B JUMP JUMPDEST PUSH2 0x3BC5 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3BD2 PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3BDF PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3BEC PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3BFA PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C08 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C16 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x343B JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 ADD SWAP1 POP PUSH2 0x3C3C PUSH1 0x0 DUP4 ADD DUP12 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3C49 PUSH1 0x20 DUP4 ADD DUP11 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3C56 PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x343B JUMP JUMPDEST PUSH2 0x3C63 PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C70 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C7D PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C8A PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C97 PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x3CBA PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3CC7 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3CD4 PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x343B JUMP JUMPDEST PUSH2 0x3CE1 PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3CEE PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3CFB PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3D08 PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3D15 PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3D23 PUSH2 0x100 DUP4 ADD DUP5 PUSH2 0x343B JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x3D46 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3D53 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3D60 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3D7D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3D8A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3DA6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x343B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3DC5 DUP2 PUSH2 0x344A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3DE5 DUP2 PUSH2 0x34B0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3E05 DUP2 PUSH2 0x3516 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3E25 DUP2 PUSH2 0x3556 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3E45 DUP2 PUSH2 0x35BC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3E65 DUP2 PUSH2 0x35FC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3E85 DUP2 PUSH2 0x3688 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3EA5 DUP2 PUSH2 0x36C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3EC5 DUP2 PUSH2 0x372E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3EE5 DUP2 PUSH2 0x376E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3F05 DUP2 PUSH2 0x37AE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3F25 DUP2 PUSH2 0x37EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3F45 DUP2 PUSH2 0x3854 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3F65 DUP2 PUSH2 0x38BA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3F85 DUP2 PUSH2 0x3946 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3FA5 DUP2 PUSH2 0x39D2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3FC5 DUP2 PUSH2 0x3A5E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3FE1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3FFC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x4009 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x4025 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x4032 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x403F PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x406E JUMPI PUSH2 0x406D PUSH2 0x4259 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x4093 JUMPI PUSH2 0x4092 PUSH2 0x4259 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40C0 DUP3 PUSH2 0x41D7 JUMP JUMPDEST SWAP2 POP PUSH2 0x40CB DUP4 PUSH2 0x41D7 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x4100 JUMPI PUSH2 0x40FF PUSH2 0x422A JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4116 DUP3 PUSH2 0x41D7 JUMP JUMPDEST SWAP2 POP PUSH2 0x4121 DUP4 PUSH2 0x41D7 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x415A JUMPI PUSH2 0x4159 PUSH2 0x422A JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4170 DUP3 PUSH2 0x41D7 JUMP JUMPDEST SWAP2 POP PUSH2 0x417B DUP4 PUSH2 0x41D7 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x418E JUMPI PUSH2 0x418D PUSH2 0x422A JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41A4 DUP3 PUSH2 0x41B7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41EC DUP3 PUSH2 0x41D7 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x421F JUMPI PUSH2 0x421E PUSH2 0x422A JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4291 DUP2 PUSH2 0x4199 JUMP JUMPDEST DUP2 EQ PUSH2 0x429C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x42A8 DUP2 PUSH2 0x41AB JUMP JUMPDEST DUP2 EQ PUSH2 0x42B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x42BF DUP2 PUSH2 0x41D7 JUMP JUMPDEST DUP2 EQ PUSH2 0x42CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x49 0xB5 0xF8 PUSH1 0x3C LOG2 0xAD SWAP6 PUSH24 0x1FE90B6A034E6B122B228F0B3D52C72AA598EA8C7BFF5664 PUSH20 0x6F6C634300080000330000000000000000000000 ", + "sourceMap": "364:13141:5:-:0;;;810:42;777:75;;;;;;;;;;;;;;;;;;;;917:15;;;;;;;;;;;892:41;;;;;;;;;;;;;;;;;;;;1453:1;1433:21;;1485:1;1461:25;;364:13141;;;;;;;;;;1669:1:0;1780:7;:22;;;;364:13141:5;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:33144:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "126:520:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "136:89:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "217:6:6" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "160:56:6" + }, + "nodeType": "YulFunctionCall", + "src": "160:64:6" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "145:14:6" + }, + "nodeType": "YulFunctionCall", + "src": "145:80:6" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "136:5:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "234:16:6", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "245:5:6" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "238:3:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "266:5:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "273:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "259:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "259:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "259:21:6" + }, + { + "nodeType": "YulAssignment", + "src": "281:23:6", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "292:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "299:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "288:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "288:16:6" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "281:3:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "313:17:6", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "324:6:6" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "317:3:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "388:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "391:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "381:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "381:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "381:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "349:3:6" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "358:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "366:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "354:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "354:17:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "345:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "345:27:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "374:3:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "342:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "342:36:6" + }, + "nodeType": "YulIf", + "src": "339:2:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "464:176:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "478:21:6", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "496:3:6" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "482:10:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "519:3:6" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "545:10:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "557:3:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "524:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "524:37:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "512:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "512:50:6" + }, + "nodeType": "YulExpressionStatement", + "src": "512:50:6" + }, + { + "nodeType": "YulAssignment", + "src": "575:21:6", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "586:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "591:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "582:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "582:14:6" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "575:3:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "609:21:6", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "620:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "625:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "616:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "616:14:6" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "609:3:6" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "426:1:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "429:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "423:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "423:13:6" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "437:18:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "439:14:6", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "448:1:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "451:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "444:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "444:9:6" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "439:1:6" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "408:14:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "410:10:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "419:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "414:1:6", + "type": "" + } + ] + } + ] + }, + "src": "404:236:6" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "96:6:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "104:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "112:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "120:5:6", + "type": "" + } + ], + "src": "24:622:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "704:87:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "714:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "736:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "723:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "723:20:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "714:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "779:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "752:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "752:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "752:33:6" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "682:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "690:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "698:5:6", + "type": "" + } + ], + "src": "652:139:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "891:226:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "940:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "949:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "952:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "942:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "942:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "942:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "919:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "927:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "915:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "915:17:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "934:3:6" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "911:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "911:27:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "904:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "904:35:6" + }, + "nodeType": "YulIf", + "src": "901:2:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "965:34:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "992:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "979:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "979:20:6" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "969:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1008:103:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1084:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1092:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1080:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1080:17:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1099:6:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1107:3:6" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1017:62:6" + }, + "nodeType": "YulFunctionCall", + "src": "1017:94:6" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1008:5:6" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "869:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "877:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "885:5:6", + "type": "" + } + ], + "src": "814:303:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1172:84:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1182:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1204:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1191:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "1191:20:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1182:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1244:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "1220:23:6" + }, + "nodeType": "YulFunctionCall", + "src": "1220:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1220:30:6" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1150:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1158:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1166:5:6", + "type": "" + } + ], + "src": "1123:133:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1322:77:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1332:22:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1347:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1341:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1341:13:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1332:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1387:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "1363:23:6" + }, + "nodeType": "YulFunctionCall", + "src": "1363:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1363:30:6" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1300:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1308:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1316:5:6", + "type": "" + } + ], + "src": "1262:137:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1457:87:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1467:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1489:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1476:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "1476:20:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1467:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1532:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1505:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "1505:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1505:33:6" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1435:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1443:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1451:5:6", + "type": "" + } + ], + "src": "1405:139:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:80:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:22:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1638:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1632:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1632:13:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1623:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1681:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1654:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "1654:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1654:33:6" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1591:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1599:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1607:5:6", + "type": "" + } + ], + "src": "1550:143:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1765:196:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1811:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1820:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1823:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1813:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1813:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1813:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1786:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1795:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1782:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1782:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1807:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1778:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1778:32:6" + }, + "nodeType": "YulIf", + "src": "1775:2:6" + }, + { + "nodeType": "YulBlock", + "src": "1837:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1852:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1866:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1856:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1881:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1916:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1927:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1912:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1912:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1936:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1891:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "1891:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1881:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1735:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1746:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1758:6:6", + "type": "" + } + ], + "src": "1699:262:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2149:1094:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2196:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2205:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2208:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2198:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2198:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2198:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2170:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2179:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2166:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2166:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2191:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2162:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2162:33:6" + }, + "nodeType": "YulIf", + "src": "2159:2:6" + }, + { + "nodeType": "YulBlock", + "src": "2222:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2237:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2251:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2241:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2266:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2301:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2312:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2297:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2297:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2321:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2276:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2276:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2266:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2349:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2364:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2368:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2394:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2429:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2440:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2425:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2425:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2449:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2404:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2404:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2394:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2477:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2492:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2506:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2496:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2522:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2557:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2568:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2553:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2553:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2577:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2532:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2532:53:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2522:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2605:115:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2620:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2634:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2624:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2650:60:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2682:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2693:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2678:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2678:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2702:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "2660:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "2660:50:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "2650:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2730:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2745:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2759:3:6", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2749:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2776:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2811:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2822:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2807:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2807:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2831:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2786:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2786:53:6" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "2776:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2859:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2874:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2888:3:6", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2878:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2905:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2940:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2951:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2936:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2936:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2960:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2915:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2915:53:6" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "2905:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2988:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3003:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3017:3:6", + "type": "", + "value": "192" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3007:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3034:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3069:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3080:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3065:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3065:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3089:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3044:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "3044:53:6" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "3034:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3117:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3132:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3146:3:6", + "type": "", + "value": "224" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3136:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3163:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3198:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3209:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3194:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3194:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3218:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3173:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "3173:53:6" + }, + "variableNames": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "3163:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_addresst_boolt_uint256t_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2063:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2074:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2086:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2094:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2102:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "2110:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "2118:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "2126:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "2134:6:6", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "2142:6:6", + "type": "" + } + ], + "src": "1967:1276:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3380:707:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3427:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3436:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3439:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3429:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3429:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3429:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3401:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3410:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3397:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3397:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3422:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3393:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3393:33:6" + }, + "nodeType": "YulIf", + "src": "3390:2:6" + }, + { + "nodeType": "YulBlock", + "src": "3453:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3468:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3482:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3472:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3532:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3543:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3528:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3528:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3552:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3507:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "3507:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3497:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3580:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3595:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3609:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3599:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3625:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3660:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3671:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3656:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3656:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3680:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3635:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "3635:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3625:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3708:115:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3723:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3737:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3727:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3753:60:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3785:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3796:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3781:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3781:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3805:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "3763:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "3763:50:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3753:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3833:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3848:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3862:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3852:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3878:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3913:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3924:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3909:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3909:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3933:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3888:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "3888:53:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "3878:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3961:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3976:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3990:3:6", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3980:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4007:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4042:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4053:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4038:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4038:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4062:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4017:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4017:53:6" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "4007:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3318:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3329:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3341:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3349:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3357:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3365:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "3373:6:6", + "type": "" + } + ], + "src": "3249:838:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4241:836:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4288:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4300:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4290:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4290:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4290:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4262:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4271:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4258:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4258:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4283:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4254:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4254:33:6" + }, + "nodeType": "YulIf", + "src": "4251:2:6" + }, + { + "nodeType": "YulBlock", + "src": "4314:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4329:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4343:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4333:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4358:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4393:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4404:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4389:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4389:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4413:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4368:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4368:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4358:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4441:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4456:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4470:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4460:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4486:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4521:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4532:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4517:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4517:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4541:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4496:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4496:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4486:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4569:115:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4584:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4598:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4588:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4614:60:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4646:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4657:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4642:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4642:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4666:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "4624:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "4624:50:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4614:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4694:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4709:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4723:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4713:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4739:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4774:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4785:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4770:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4770:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4794:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4749:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4749:53:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4739:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4822:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4837:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4851:3:6", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4841:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4868:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4903:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4914:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4899:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4899:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4923:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4878:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4878:53:6" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "4868:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4951:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4966:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4980:3:6", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4970:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4997:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5032:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5043:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5028:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5028:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5052:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5007:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "5007:53:6" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "4997:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4171:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4182:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4194:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4202:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "4210:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "4218:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "4226:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "4234:6:6", + "type": "" + } + ], + "src": "4093:984:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5248:965:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5295:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5304:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5307:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5297:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5297:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5297:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5269:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5278:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5265:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5265:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5290:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5261:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5261:33:6" + }, + "nodeType": "YulIf", + "src": "5258:2:6" + }, + { + "nodeType": "YulBlock", + "src": "5321:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5336:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5350:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5340:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5365:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5400:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5411:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5396:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5396:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5420:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5375:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "5375:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5365:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5448:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5463:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5477:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5467:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5493:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5528:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5539:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5524:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5524:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5548:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5503:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "5503:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5493:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5576:115:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5591:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5605:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5595:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5621:60:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5653:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5664:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5649:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5649:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5673:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "5631:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "5631:50:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5621:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5701:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5716:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5730:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5720:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5746:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5781:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5792:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5777:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5777:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5801:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5756:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "5756:53:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "5746:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5829:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5844:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5858:3:6", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5848:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5875:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5910:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5921:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5906:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5906:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5930:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5885:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "5885:53:6" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "5875:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5958:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5973:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5987:3:6", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5977:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6004:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6039:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6050:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6035:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6035:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6059:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6014:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "6014:53:6" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "6004:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6087:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6102:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6116:3:6", + "type": "", + "value": "192" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6106:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6133:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6168:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6179:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6164:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6164:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6188:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6143:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "6143:53:6" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "6133:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5170:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5181:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5193:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5201:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5209:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "5217:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "5225:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "5233:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "5241:6:6", + "type": "" + } + ], + "src": "5083:1130:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6319:452:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6365:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6374:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6377:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6367:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6367:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6367:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6340:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6349:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6336:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6336:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6361:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6332:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6332:32:6" + }, + "nodeType": "YulIf", + "src": "6329:2:6" + }, + { + "nodeType": "YulBlock", + "src": "6391:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6406:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6420:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6410:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6435:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6470:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6481:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6466:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6466:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6490:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6445:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "6445:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6435:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6518:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6533:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6547:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6537:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6563:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6598:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6609:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6594:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6594:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6618:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6573:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "6573:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6563:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6646:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6661:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6675:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6665:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6691:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6726:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6737:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6722:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6722:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6746:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6701:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "6701:53:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6691:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6273:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6284:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6296:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6304:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6312:6:6", + "type": "" + } + ], + "src": "6219:552:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6894:581:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6941:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6950:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6953:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6943:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6943:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6943:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6915:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6924:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6911:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6911:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6936:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6907:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6907:33:6" + }, + "nodeType": "YulIf", + "src": "6904:2:6" + }, + { + "nodeType": "YulBlock", + "src": "6967:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6982:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6996:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6986:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7011:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7046:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7057:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7042:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7042:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7066:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7021:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7021:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7011:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7094:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7109:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7123:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7113:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7139:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7174:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7185:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7170:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7170:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7194:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7149:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7149:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7139:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7222:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7237:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7251:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7241:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7267:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7302:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7313:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7298:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7298:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7322:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7277:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7277:53:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7267:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7350:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7365:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7379:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7369:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7395:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7430:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7441:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7426:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7426:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7450:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7405:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7405:53:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "7395:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6840:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6851:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6863:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6871:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6879:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "6887:6:6", + "type": "" + } + ], + "src": "6777:698:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7581:452:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7627:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7636:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7639:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7629:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "7629:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7629:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7602:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7611:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7598:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7598:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7623:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7594:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7594:32:6" + }, + "nodeType": "YulIf", + "src": "7591:2:6" + }, + { + "nodeType": "YulBlock", + "src": "7653:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7668:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7682:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7672:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7697:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7732:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7743:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7728:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7728:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7752:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7707:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7707:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7697:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7780:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7795:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7809:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7799:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7825:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7860:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7871:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7856:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7856:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7880:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7835:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7835:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7825:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7908:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7923:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7937:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7927:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7953:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7988:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7999:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7984:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7984:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8008:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7963:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "7963:53:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7953:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7535:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7546:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7558:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7566:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "7574:6:6", + "type": "" + } + ], + "src": "7481:552:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8130:314:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8176:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8185:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8188:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8178:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8178:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8178:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8151:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8160:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8147:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8147:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8172:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8143:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8143:32:6" + }, + "nodeType": "YulIf", + "src": "8140:2:6" + }, + { + "nodeType": "YulBlock", + "src": "8202:235:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8217:45:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8248:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8259:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8244:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8244:17:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8231:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "8231:31:6" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8221:6:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8309:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8318:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8321:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8311:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8311:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8311:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8281:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8289:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8278:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "8278:30:6" + }, + "nodeType": "YulIf", + "src": "8275:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "8339:88:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8399:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8410:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8395:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8395:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8419:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8349:45:6" + }, + "nodeType": "YulFunctionCall", + "src": "8349:78:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8339:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8100:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8111:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8123:6:6", + "type": "" + } + ], + "src": "8039:405:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8524:204:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8570:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8579:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8582:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8572:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8572:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8572:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8545:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8554:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8541:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8541:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8566:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8537:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8537:32:6" + }, + "nodeType": "YulIf", + "src": "8534:2:6" + }, + { + "nodeType": "YulBlock", + "src": "8596:125:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8611:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8625:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8615:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8640:71:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8683:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8694:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8679:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8679:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8703:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "8650:28:6" + }, + "nodeType": "YulFunctionCall", + "src": "8650:61:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8640:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8494:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8505:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8517:6:6", + "type": "" + } + ], + "src": "8450:278:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8800:196:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8846:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8855:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8858:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8848:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8848:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8848:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8821:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8830:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8817:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8817:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8842:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8813:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8813:32:6" + }, + "nodeType": "YulIf", + "src": "8810:2:6" + }, + { + "nodeType": "YulBlock", + "src": "8872:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8887:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8901:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8891:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8916:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8951:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8962:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8947:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8947:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8971:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "8926:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "8926:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8916:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8770:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8781:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8793:6:6", + "type": "" + } + ], + "src": "8734:262:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9079:207:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9125:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9134:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9137:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9127:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9127:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9127:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9100:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9109:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9096:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9096:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9121:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9092:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9092:32:6" + }, + "nodeType": "YulIf", + "src": "9089:2:6" + }, + { + "nodeType": "YulBlock", + "src": "9151:128:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9166:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9180:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9170:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9195:74:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9241:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9252:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9237:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9237:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9261:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "9205:31:6" + }, + "nodeType": "YulFunctionCall", + "src": "9205:64:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9195:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9049:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9060:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9072:6:6", + "type": "" + } + ], + "src": "9002:284:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9357:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9374:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9397:5:6" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "9379:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "9379:24:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9367:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9367:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9367:37:6" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9345:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9352:3:6", + "type": "" + } + ], + "src": "9292:118:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9475:50:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9492:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9512:5:6" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "9497:14:6" + }, + "nodeType": "YulFunctionCall", + "src": "9497:21:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9485:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9485:34:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9485:34:6" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9463:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9470:3:6", + "type": "" + } + ], + "src": "9416:109:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9677:221:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9687:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9753:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9758:2:6", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9694:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "9694:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9687:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9782:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9787:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9778:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9778:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "9791:34:6", + "type": "", + "value": "cannot transfer an exercized opt" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9771:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9771:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9771:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9847:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9852:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9843:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9843:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "9857:5:6", + "type": "", + "value": "ion" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9836:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9836:27:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9836:27:6" + }, + { + "nodeType": "YulAssignment", + "src": "9873:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9884:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9889:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9880:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9880:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9873:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9665:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9673:3:6", + "type": "" + } + ], + "src": "9531:367:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10050:225:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10060:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10126:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10131:2:6", + "type": "", + "value": "39" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10067:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "10067:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10060:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10155:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10160:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10151:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10151:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "10164:34:6", + "type": "", + "value": "This option has already been exc" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10144:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10144:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10144:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10220:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10225:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10216:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10216:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "10230:9:6", + "type": "", + "value": "ersized" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10209:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10209:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10209:31:6" + }, + { + "nodeType": "YulAssignment", + "src": "10250:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10261:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10266:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10257:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10257:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10250:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10038:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10046:3:6", + "type": "" + } + ], + "src": "9904:371:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10427:182:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10437:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10503:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10508:2:6", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10444:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "10444:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10437:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10532:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10537:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10528:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10528:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "10541:32:6", + "type": "", + "value": "This option is no longer valid" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10521:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10521:53:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10521:53:6" + }, + { + "nodeType": "YulAssignment", + "src": "10584:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10595:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10600:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10591:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10591:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10584:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10415:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10423:3:6", + "type": "" + } + ], + "src": "10281:328:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10761:250:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10771:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10837:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10842:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10778:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "10778:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10771:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10866:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10871:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10862:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10862:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "10875:34:6", + "type": "", + "value": "Could not transfer the amount fr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10855:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10855:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10855:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10931:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10936:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10927:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10927:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "10941:34:6", + "type": "", + "value": "om msg.sender that was requested" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10920:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10920:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10920:56:6" + }, + { + "nodeType": "YulAssignment", + "src": "10986:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10997:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11002:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10993:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10993:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10986:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10749:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10757:3:6", + "type": "" + } + ], + "src": "10615:396:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11163:182:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11173:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11239:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11244:2:6", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11180:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "11180:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11173:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11268:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11273:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11264:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11264:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "11277:32:6", + "type": "", + "value": "Cannot tranfer more than owned" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11257:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11257:53:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11257:53:6" + }, + { + "nodeType": "YulAssignment", + "src": "11320:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11331:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11336:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11327:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11327:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11320:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11151:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11159:3:6", + "type": "" + } + ], + "src": "11017:328:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11497:291:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11507:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11573:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11578:2:6", + "type": "", + "value": "71" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11514:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "11514:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11507:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11602:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11607:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11598:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11598:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "11611:34:6", + "type": "", + "value": "This option is not buyable. Plea" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11591:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11591:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11591:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11667:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11672:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11663:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11663:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "11677:34:6", + "type": "", + "value": "se check the seller's offer info" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11656:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11656:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11656:56:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11733:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11738:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11729:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11729:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "11743:9:6", + "type": "", + "value": "rmation" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11722:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11722:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11722:31:6" + }, + { + "nodeType": "YulAssignment", + "src": "11763:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11774:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11779:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11770:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11770:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11763:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11485:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11493:3:6", + "type": "" + } + ], + "src": "11351:437:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11940:164:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11950:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12016:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12021:2:6", + "type": "", + "value": "12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11957:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "11957:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11950:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12045:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12050:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12041:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12041:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "12054:14:6", + "type": "", + "value": "Not approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12034:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12034:35:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12034:35:6" + }, + { + "nodeType": "YulAssignment", + "src": "12079:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12090:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12095:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12086:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12086:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12079:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11928:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11936:3:6", + "type": "" + } + ], + "src": "11794:310:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12256:230:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12266:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12332:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12337:2:6", + "type": "", + "value": "44" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12273:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "12273:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12266:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12361:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12366:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12357:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12357:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "12370:34:6", + "type": "", + "value": "There is not enough inventory fo" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12350:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12350:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12350:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12426:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12431:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12422:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12422:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "12436:14:6", + "type": "", + "value": "r this order" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12415:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12415:36:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12415:36:6" + }, + { + "nodeType": "YulAssignment", + "src": "12461:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12472:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12477:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12468:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12468:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12461:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12244:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12252:3:6", + "type": "" + } + ], + "src": "12110:376:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12638:182:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12648:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12714:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12719:2:6", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12655:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "12655:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12648:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12743:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12748:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12739:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12739:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "12752:32:6", + "type": "", + "value": "The sender must own the option" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12732:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12732:53:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12732:53:6" + }, + { + "nodeType": "YulAssignment", + "src": "12795:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12806:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12811:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12802:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12802:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12795:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12626:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12634:3:6", + "type": "" + } + ], + "src": "12492:328:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12972:182:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12982:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13048:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13053:2:6", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12989:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "12989:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12982:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13077:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13082:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13073:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13073:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "13086:32:6", + "type": "", + "value": "Cannot approve more than owned" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13066:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13066:53:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13066:53:6" + }, + { + "nodeType": "YulAssignment", + "src": "13129:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13140:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13145:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13136:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13136:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13129:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12960:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12968:3:6", + "type": "" + } + ], + "src": "12826:328:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13306:180:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13316:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13382:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13387:2:6", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13323:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "13323:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13316:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13411:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13416:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13407:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13407:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "13420:30:6", + "type": "", + "value": "Not approved for this amount" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13400:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13400:51:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13400:51:6" + }, + { + "nodeType": "YulAssignment", + "src": "13461:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13472:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13477:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13468:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13468:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13461:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13294:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13302:3:6", + "type": "" + } + ], + "src": "13160:326:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13638:221:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13648:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13714:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13719:2:6", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13655:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "13655:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13648:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13743:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13748:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13739:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13739:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "13752:34:6", + "type": "", + "value": "The msg.sender has to be the sel" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13732:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13732:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13732:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13808:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13813:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13804:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13804:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "13818:5:6", + "type": "", + "value": "ler" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13797:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13797:27:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13797:27:6" + }, + { + "nodeType": "YulAssignment", + "src": "13834:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13845:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13850:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13841:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13841:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13834:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13626:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13634:3:6", + "type": "" + } + ], + "src": "13492:367:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14011:241:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14021:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14087:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14092:2:6", + "type": "", + "value": "55" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14028:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "14028:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14021:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14116:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14121:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14112:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14112:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14125:34:6", + "type": "", + "value": "This option has not reached its " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14105:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14105:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14105:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14181:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14186:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14177:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14177:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14191:25:6", + "type": "", + "value": "excersize timestamp yet" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14170:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14170:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14170:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "14227:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14238:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14243:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14234:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14234:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14227:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13999:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14007:3:6", + "type": "" + } + ], + "src": "13865:387:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14404:297:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14414:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14480:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14485:2:6", + "type": "", + "value": "77" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14421:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "14421:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14414:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14509:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14514:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14505:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14505:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14518:34:6", + "type": "", + "value": "Please ensure that you have appr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14498:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14498:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14498:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14574:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14579:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14570:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14570:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14584:34:6", + "type": "", + "value": "oved this contract to handle you" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14563:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14563:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14563:56:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14640:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14645:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14636:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14636:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14650:15:6", + "type": "", + "value": "r DAI (error)" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14629:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14629:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14629:37:6" + }, + { + "nodeType": "YulAssignment", + "src": "14676:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14687:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14692:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14683:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14683:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14676:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14392:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14400:3:6", + "type": "" + } + ], + "src": "14258:443:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14853:316:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14863:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14929:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14934:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14870:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "14870:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14863:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14958:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14963:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14954:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14954:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "14967:34:6", + "type": "", + "value": "Sorry: there is no one selling o" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14947:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14947:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14947:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15023:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15028:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15019:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15019:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15033:34:6", + "type": "", + "value": "ptions that meet your specificat" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15012:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15012:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15012:56:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15089:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15094:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15085:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15085:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15099:34:6", + "type": "", + "value": "ions. Perhaps try buyOptionByIds" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15078:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15078:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15078:56:6" + }, + { + "nodeType": "YulAssignment", + "src": "15144:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15155:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15160:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15151:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15151:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15144:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14841:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14849:3:6", + "type": "" + } + ], + "src": "14707:462:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15321:302:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15331:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15397:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15402:2:6", + "type": "", + "value": "82" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15338:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "15338:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15331:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15426:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15431:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15422:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15422:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15435:34:6", + "type": "", + "value": "Did the buyer approve this contr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15415:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15415:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15415:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15491:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15496:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15487:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15487:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15501:34:6", + "type": "", + "value": "act to handle DAI or have anough" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15480:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15480:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15480:56:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15557:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15562:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15553:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15553:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15567:20:6", + "type": "", + "value": " DAI to excersize?" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15546:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15546:42:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15546:42:6" + }, + { + "nodeType": "YulAssignment", + "src": "15598:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15609:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15614:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15605:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15605:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15598:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15309:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15317:3:6", + "type": "" + } + ], + "src": "15175:448:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15775:231:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15785:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15851:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15856:2:6", + "type": "", + "value": "45" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15792:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "15792:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15785:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15880:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15885:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15876:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15876:11:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15889:34:6", + "type": "", + "value": " There is not enough inventory f" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15869:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15869:55:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15869:55:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15945:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15950:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15941:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15941:12:6" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "15955:15:6", + "type": "", + "value": "or this order" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15934:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15934:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15934:37:6" + }, + { + "nodeType": "YulAssignment", + "src": "15981:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15992:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15997:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15988:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15988:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15981:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15763:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15771:3:6", + "type": "" + } + ], + "src": "15629:377:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16077:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16094:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16117:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "16099:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "16099:24:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16087:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "16087:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16087:37:6" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16065:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16072:3:6", + "type": "" + } + ], + "src": "16012:118:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16234:124:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16244:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16256:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16267:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16252:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16252:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16244:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "16324:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16337:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16348:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16333:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16333:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16280:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "16280:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16280:71:6" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16206:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "16218:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16229:4:6", + "type": "" + } + ], + "src": "16136:222:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16680:780:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16690:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16702:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16713:3:6", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16698:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16698:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16690:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "16771:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16784:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16795:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16780:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16780:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16727:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "16727:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16727:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "16852:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16865:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16876:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16861:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16861:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16808:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "16808:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16808:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "16934:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16947:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16958:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16943:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16943:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16890:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "16890:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16890:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "17010:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17023:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17034:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17019:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17019:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "16972:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "16972:66:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16972:66:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "17092:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17105:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17116:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17101:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17101:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "17048:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17048:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17048:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "17175:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17188:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17199:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17184:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17184:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "17131:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17131:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17131:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "17258:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17271:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17282:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17267:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17267:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "17214:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17214:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17214:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "17341:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17354:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17365:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17350:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17350:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "17297:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17297:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17297:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "17424:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17437:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17448:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17433:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17433:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "17380:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17380:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17380:73:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16588:9:6", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "16600:6:6", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "16608:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "16616:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "16624:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "16632:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "16640:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "16648:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "16656:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "16664:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16675:4:6", + "type": "" + } + ], + "src": "16364:1096:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17833:941:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17843:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17855:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17866:3:6", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17851:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17851:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17843:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "17924:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17937:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17948:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17933:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17933:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "17880:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17880:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17880:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "18005:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18018:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18029:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18014:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18014:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "17961:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "17961:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17961:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "18087:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18100:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18111:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18096:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18096:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "18043:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18043:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18043:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "18163:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18176:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18187:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18172:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18172:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "18125:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "18125:66:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18125:66:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "18245:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18258:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18269:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18254:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18254:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18201:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18201:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18201:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "18328:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18341:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18352:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18337:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18337:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18284:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18284:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18284:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "18411:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18424:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18435:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18420:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18420:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18367:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18367:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18367:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "18494:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18507:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18518:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18503:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18503:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18450:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18450:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18450:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "18577:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18590:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18601:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18586:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18586:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18533:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18533:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18533:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value9", + "nodeType": "YulIdentifier", + "src": "18660:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18673:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18684:3:6", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18669:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18669:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18616:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "18616:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18616:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value10", + "nodeType": "YulIdentifier", + "src": "18737:7:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18751:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18762:3:6", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18747:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18747:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "18699:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "18699:68:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18699:68:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17724:9:6", + "type": "" + }, + { + "name": "value10", + "nodeType": "YulTypedName", + "src": "17736:7:6", + "type": "" + }, + { + "name": "value9", + "nodeType": "YulTypedName", + "src": "17745:6:6", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "17753:6:6", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "17761:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "17769:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "17777:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "17785:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "17793:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "17801:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "17809:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "17817:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17828:4:6", + "type": "" + } + ], + "src": "17466:1308:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19068:697:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19078:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19090:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19101:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19086:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19086:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19078:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "19159:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19172:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19183:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19168:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19168:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "19115:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19115:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19115:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "19240:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19253:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19264:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19249:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19249:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "19196:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19196:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19196:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "19316:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19329:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19340:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19325:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19325:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "19278:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "19278:66:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19278:66:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "19398:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19411:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19422:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19407:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19407:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19354:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19354:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19354:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "19480:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19493:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19504:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19489:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19489:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19436:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19436:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19436:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "19563:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19576:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19587:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19572:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19572:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19519:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19519:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19519:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "19646:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19659:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19670:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19655:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19655:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19602:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19602:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19602:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "19729:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19742:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19753:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19738:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19738:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19685:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "19685:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19685:73:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18984:9:6", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "18996:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "19004:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "19012:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "19020:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "19028:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "19036:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "19044:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "19052:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19063:4:6", + "type": "" + } + ], + "src": "18780:985:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20081:774:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20091:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20103:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20114:3:6", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20099:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20099:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20091:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "20172:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20185:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20196:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20181:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20181:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "20128:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20128:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20128:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "20253:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20266:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20277:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20262:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20262:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "20209:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20209:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20209:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "20329:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20342:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20353:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20338:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20338:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "20291:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "20291:66:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20291:66:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "20411:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20424:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20435:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20420:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20420:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20367:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20367:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20367:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "20493:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20506:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20517:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20502:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20502:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20449:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20449:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20449:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "20576:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20589:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20600:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20585:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20585:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20532:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20532:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20532:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "20659:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20672:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20683:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20668:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20668:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20615:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20615:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20615:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "20742:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20755:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20766:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20751:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20751:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20698:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "20698:73:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20698:73:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "20819:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20832:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20843:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20828:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "20828:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "20781:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "20781:67:6" + }, + "nodeType": "YulExpressionStatement", + "src": "20781:67:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19989:9:6", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "20001:6:6", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "20009:6:6", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "20017:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "20025:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "20033:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "20041:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "20049:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "20057:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "20065:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20076:4:6", + "type": "" + } + ], + "src": "19771:1084:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21015:288:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21025:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21037:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21048:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21033:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21033:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21025:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "21105:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21118:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21129:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21114:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21114:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "21061:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "21061:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21061:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "21186:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21199:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21210:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21195:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21195:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "21142:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "21142:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21142:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "21268:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21281:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21292:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21277:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21277:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "21224:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "21224:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21224:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20971:9:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "20983:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "20991:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "20999:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21010:4:6", + "type": "" + } + ], + "src": "20861:442:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21435:206:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21445:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21457:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21468:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21453:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21453:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21445:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "21525:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21538:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21549:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21534:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21534:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "21481:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "21481:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21481:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "21606:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21619:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21630:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21615:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21615:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "21562:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "21562:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21562:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21399:9:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "21411:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "21419:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21430:4:6", + "type": "" + } + ], + "src": "21309:332:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21739:118:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21749:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21761:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21772:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21757:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21757:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21749:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "21823:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21836:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21847:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21832:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "21832:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "21785:37:6" + }, + "nodeType": "YulFunctionCall", + "src": "21785:65:6" + }, + "nodeType": "YulExpressionStatement", + "src": "21785:65:6" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21711:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "21723:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21734:4:6", + "type": "" + } + ], + "src": "21647:210:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22034:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22044:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22056:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22067:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22052:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22052:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22044:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22091:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22102:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22087:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22087:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22110:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22116:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22106:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22106:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22080:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "22080:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "22080:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "22136:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22270:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22144:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "22144:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22136:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22014:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22029:4:6", + "type": "" + } + ], + "src": "21863:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22459:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22469:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22481:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22492:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22477:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22477:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22469:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22516:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22527:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22512:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22512:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22535:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22541:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22531:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22531:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22505:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "22505:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "22505:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "22561:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22695:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22569:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "22569:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22561:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22439:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22454:4:6", + "type": "" + } + ], + "src": "22288:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22884:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22894:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22906:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22917:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22902:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22902:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22894:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22941:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22952:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22937:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22937:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22960:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22966:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22956:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "22956:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22930:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "22930:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "22930:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "22986:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23120:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22994:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "22994:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22986:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22864:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22879:4:6", + "type": "" + } + ], + "src": "22713:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23309:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23319:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23331:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23342:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23327:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23327:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23319:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23366:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23377:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23362:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23362:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23385:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23391:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23381:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23381:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23355:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "23355:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "23355:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "23411:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23545:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23419:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "23419:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23411:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23289:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23304:4:6", + "type": "" + } + ], + "src": "23138:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23734:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23744:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23756:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23767:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23752:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23752:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23744:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23791:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23802:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23787:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23787:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23810:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23816:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23806:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "23806:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23780:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "23780:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "23780:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "23836:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23970:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23844:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "23844:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23836:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23714:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23729:4:6", + "type": "" + } + ], + "src": "23563:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24159:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24169:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24181:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24192:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24177:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24177:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24169:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24216:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24227:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24212:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24212:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24235:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24241:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24231:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24231:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24205:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "24205:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "24205:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "24261:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24395:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24269:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "24269:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24261:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24139:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24154:4:6", + "type": "" + } + ], + "src": "23988:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24584:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24594:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24606:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24617:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24602:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24602:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24594:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24641:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24652:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24637:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24637:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24660:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24666:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24656:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "24656:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24630:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "24630:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "24630:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "24686:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24820:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24694:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "24694:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24686:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24564:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24579:4:6", + "type": "" + } + ], + "src": "24413:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25009:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25019:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25031:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25042:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25027:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25027:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25019:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25066:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25077:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25062:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25062:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25085:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25091:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25081:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25081:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25055:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "25055:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "25055:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "25111:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25245:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25119:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "25119:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25111:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24989:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25004:4:6", + "type": "" + } + ], + "src": "24838:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25434:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25444:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25456:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25467:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25452:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25452:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25444:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25491:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25502:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25487:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25487:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25510:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25516:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25506:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25506:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25480:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "25480:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "25480:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "25536:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25670:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25544:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "25544:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25536:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25414:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25429:4:6", + "type": "" + } + ], + "src": "25263:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25859:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25869:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25881:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25892:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25877:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25877:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25869:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25916:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25927:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25912:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25912:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25935:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25941:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25931:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "25931:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25905:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "25905:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "25905:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "25961:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26095:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25969:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "25969:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25961:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25839:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25854:4:6", + "type": "" + } + ], + "src": "25688:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26284:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26294:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26306:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26317:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26302:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26302:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26294:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26341:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26352:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26337:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26337:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26360:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26366:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "26356:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26356:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26330:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "26330:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "26330:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "26386:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26520:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26394:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "26394:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26386:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26264:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26279:4:6", + "type": "" + } + ], + "src": "26113:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26709:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26719:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26731:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26742:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26727:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26727:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26719:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26766:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26777:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26762:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26762:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26785:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26791:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "26781:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "26781:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26755:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "26755:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "26755:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "26811:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26945:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26819:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "26819:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26811:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26689:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26704:4:6", + "type": "" + } + ], + "src": "26538:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27134:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27144:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27156:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27167:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27152:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27152:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27144:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27191:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27202:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27187:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27187:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27210:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27216:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27206:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27206:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27180:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "27180:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "27180:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "27236:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27370:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27244:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "27244:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27236:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27114:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27129:4:6", + "type": "" + } + ], + "src": "26963:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27559:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27569:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27581:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27592:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27577:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27577:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27569:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27616:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27627:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27612:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27612:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27635:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27641:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27631:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "27631:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27605:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "27605:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "27605:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "27661:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27795:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27669:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "27669:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27661:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27539:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27554:4:6", + "type": "" + } + ], + "src": "27388:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27984:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27994:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28006:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28017:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28002:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28002:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27994:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28041:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28052:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28037:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28037:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28060:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28066:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "28056:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28056:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28030:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "28030:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "28030:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "28086:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28220:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28094:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "28094:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28086:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27964:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27979:4:6", + "type": "" + } + ], + "src": "27813:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28409:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28419:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28431:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28442:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28427:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28427:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28419:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28466:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28477:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28462:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28462:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28485:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28491:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "28481:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28481:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28455:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "28455:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "28455:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "28511:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28645:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28519:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "28519:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28511:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28389:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28404:4:6", + "type": "" + } + ], + "src": "28238:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28834:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28844:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28856:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28867:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28852:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28852:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28844:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28891:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28902:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28887:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28887:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28910:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28916:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "28906:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "28906:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28880:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "28880:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "28880:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "28936:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29070:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28944:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "28944:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28936:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28814:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28829:4:6", + "type": "" + } + ], + "src": "28663:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29186:124:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29196:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29208:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29219:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29204:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29204:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29196:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "29276:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29289:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29300:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29285:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29285:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "29232:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "29232:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "29232:71:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29158:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "29170:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29181:4:6", + "type": "" + } + ], + "src": "29088:222:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29442:206:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29452:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29464:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29475:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29460:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29460:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29452:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "29532:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29545:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29556:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29541:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29541:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "29488:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "29488:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "29488:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "29613:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29626:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29637:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29622:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29622:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "29569:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "29569:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "29569:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29406:9:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "29418:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "29426:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29437:4:6", + "type": "" + } + ], + "src": "29316:332:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29808:288:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29818:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29830:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29841:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29826:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29826:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29818:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "29898:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29911:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29922:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29907:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29907:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "29854:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "29854:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "29854:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "29979:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29992:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30003:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29988:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "29988:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "29935:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "29935:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "29935:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "30061:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30074:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30085:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30070:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "30070:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "30017:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "30017:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "30017:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29764:9:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "29776:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "29784:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "29792:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29803:4:6", + "type": "" + } + ], + "src": "29654:442:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30142:243:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30152:19:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30168:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "30162:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "30162:9:6" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30152:6:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "30180:35:6", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30202:6:6" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "30210:4:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30198:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "30198:17:6" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "30184:10:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30326:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "30328:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "30328:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "30328:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "30269:10:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30281:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "30266:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "30266:34:6" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "30305:10:6" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30317:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "30302:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "30302:22:6" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "30263:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "30263:62:6" + }, + "nodeType": "YulIf", + "src": "30260:2:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30364:2:6", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "30368:10:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30357:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "30357:22:6" + }, + "nodeType": "YulExpressionStatement", + "src": "30357:22:6" + } + ] + }, + "name": "allocateMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "30126:4:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "30135:6:6", + "type": "" + } + ], + "src": "30102:283:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30473:229:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "30578:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "30580:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "30580:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "30580:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "30550:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30558:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "30547:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "30547:30:6" + }, + "nodeType": "YulIf", + "src": "30544:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "30610:25:6", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "30622:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30630:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "30618:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "30618:17:6" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "30610:4:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "30672:23:6", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "30684:4:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30690:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30680:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "30680:15:6" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "30672:4:6" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "30457:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "30468:4:6", + "type": "" + } + ], + "src": "30391:311:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30804:73:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30821:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "30826:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30814:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "30814:19:6" + }, + "nodeType": "YulExpressionStatement", + "src": "30814:19:6" + }, + { + "nodeType": "YulAssignment", + "src": "30842:29:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30861:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30866:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30857:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "30857:14:6" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "30842:11:6" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30776:3:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "30781:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "30792:11:6", + "type": "" + } + ], + "src": "30708:169:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30927:261:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30937:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "30960:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "30942:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "30942:20:6" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "30937:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "30971:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "30994:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "30976:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "30976:20:6" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "30971:1:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31134:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "31136:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "31136:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "31136:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31055:1:6" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31062:66:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31130:1:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "31058:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31058:74:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "31052:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "31052:81:6" + }, + "nodeType": "YulIf", + "src": "31049:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "31166:16:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31177:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31180:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31173:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31173:9:6" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "31166:3:6" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "30914:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "30917:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "30923:3:6", + "type": "" + } + ], + "src": "30883:305:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31242:300:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31252:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31275:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "31257:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "31257:20:6" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31252:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31286:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31309:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "31291:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "31291:20:6" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31286:1:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31484:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "31486:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "31486:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "31486:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31396:1:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "31389:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "31389:9:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "31382:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "31382:17:6" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31404:1:6" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31411:66:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31479:1:6" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "31407:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31407:74:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "31401:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "31401:81:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "31378:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31378:105:6" + }, + "nodeType": "YulIf", + "src": "31375:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "31516:20:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31531:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31534:1:6" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "31527:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31527:9:6" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "31516:7:6" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "31225:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "31228:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "31234:7:6", + "type": "" + } + ], + "src": "31194:348:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31593:146:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31603:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31626:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "31608:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "31608:20:6" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31603:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31637:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31660:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "31642:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "31642:20:6" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31637:1:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31684:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "31686:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "31686:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "31686:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31678:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31681:1:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "31675:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "31675:8:6" + }, + "nodeType": "YulIf", + "src": "31672:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "31716:17:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "31728:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "31731:1:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "31724:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "31724:9:6" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "31716:4:6" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "31579:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "31582:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "31588:4:6", + "type": "" + } + ], + "src": "31548:191:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31790:51:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31800:35:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "31829:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "31811:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "31811:24:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "31800:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31772:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "31782:7:6", + "type": "" + } + ], + "src": "31745:96:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31889:48:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31899:32:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "31924:5:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "31917:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "31917:13:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "31910:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "31910:21:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "31899:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31871:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "31881:7:6", + "type": "" + } + ], + "src": "31847:90:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31988:81:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31998:65:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32013:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32020:42:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "32009:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "32009:54:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "31998:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31970:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "31980:7:6", + "type": "" + } + ], + "src": "31943:126:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32120:32:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32130:16:6", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32141:5:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "32130:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32102:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "32112:7:6", + "type": "" + } + ], + "src": "32075:77:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32201:190:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32211:33:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32238:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "32220:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "32220:24:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32211:5:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32334:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "32336:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "32336:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32336:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32259:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32266:66:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "32256:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "32256:77:6" + }, + "nodeType": "YulIf", + "src": "32253:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "32365:20:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32376:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32383:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32372:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "32372:13:6" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "32365:3:6" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32187:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "32197:3:6", + "type": "" + } + ], + "src": "32158:233:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32425:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32442:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32445:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32435:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32435:88:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32435:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32539:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32542:4:6", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32532:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32532:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32532:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32563:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32566:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "32556:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32556:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32556:15:6" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "32397:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32611:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32628:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32631:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32621:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32621:88:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32621:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32725:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32728:4:6", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32718:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32718:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32718:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32749:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32752:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "32742:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32742:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32742:15:6" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "32583:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32812:79:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "32869:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32878:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32881:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "32871:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32871:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32871:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32835:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32860:5:6" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "32842:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "32842:24:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "32832:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "32832:35:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "32825:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32825:43:6" + }, + "nodeType": "YulIf", + "src": "32822:2:6" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32805:5:6", + "type": "" + } + ], + "src": "32769:122:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32937:76:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "32991:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33000:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33003:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "32993:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32993:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "32993:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32960:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32982:5:6" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "32967:14:6" + }, + "nodeType": "YulFunctionCall", + "src": "32967:21:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "32957:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "32957:32:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "32950:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "32950:40:6" + }, + "nodeType": "YulIf", + "src": "32947:2:6" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32930:5:6", + "type": "" + } + ], + "src": "32897:116:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33062:79:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "33119:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33128:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33131:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "33121:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "33121:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "33121:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33085:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33110:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "33092:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "33092:24:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "33082:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "33082:35:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "33075:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "33075:43:6" + }, + "nodeType": "YulIf", + "src": "33072:2:6" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "33055:5:6", + "type": "" + } + ], + "src": "33019:122:6" + } + ] + }, + "contents": "{\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocateMemory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) dst := add(array, 0x20)\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := src\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\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 abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_addresst_boolt_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\n if slt(sub(dataEnd, headStart), 256) { revert(0, 0) }\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_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 224\n\n value7 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\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_bool(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\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_bool(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_boolt_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\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_bool(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\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 function abi_decode_tuple_t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\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 := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\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_uint256(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 function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n\n mstore(add(pos, 0), \"cannot transfer an exercized opt\")\n\n mstore(add(pos, 32), \"ion\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n\n mstore(add(pos, 0), \"This option has already been exc\")\n\n mstore(add(pos, 32), \"ersized\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n\n mstore(add(pos, 0), \"This option is no longer valid\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 64)\n\n mstore(add(pos, 0), \"Could not transfer the amount fr\")\n\n mstore(add(pos, 32), \"om msg.sender that was requested\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n\n mstore(add(pos, 0), \"Cannot tranfer more than owned\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 71)\n\n mstore(add(pos, 0), \"This option is not buyable. Plea\")\n\n mstore(add(pos, 32), \"se check the seller's offer info\")\n\n mstore(add(pos, 64), \"rmation\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n\n mstore(add(pos, 0), \"Not approved\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n\n mstore(add(pos, 0), \"There is not enough inventory fo\")\n\n mstore(add(pos, 32), \"r this order\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n\n mstore(add(pos, 0), \"The sender must own the option\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n\n mstore(add(pos, 0), \"Cannot approve more than owned\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n\n mstore(add(pos, 0), \"Not approved for this amount\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n\n mstore(add(pos, 0), \"The msg.sender has to be the sel\")\n\n mstore(add(pos, 32), \"ler\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 55)\n\n mstore(add(pos, 0), \"This option has not reached its \")\n\n mstore(add(pos, 32), \"excersize timestamp yet\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 77)\n\n mstore(add(pos, 0), \"Please ensure that you have appr\")\n\n mstore(add(pos, 32), \"oved this contract to handle you\")\n\n mstore(add(pos, 64), \"r DAI (error)\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 96)\n\n mstore(add(pos, 0), \"Sorry: there is no one selling o\")\n\n mstore(add(pos, 32), \"ptions that meet your specificat\")\n\n mstore(add(pos, 64), \"ions. Perhaps try buyOptionByIds\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 82)\n\n mstore(add(pos, 0), \"Did the buyer approve this contr\")\n\n mstore(add(pos, 32), \"act to handle DAI or have anough\")\n\n mstore(add(pos, 64), \" DAI to excersize?\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n\n mstore(add(pos, 0), \" There is not enough inventory f\")\n\n mstore(add(pos, 32), \"or this order\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 288)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bool_to_t_bool_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value8, add(headStart, 256))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_address_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart , value10, value9, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 352)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bool_to_t_bool_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value8, add(headStart, 256))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value9, add(headStart, 288))\n\n abi_encode_t_bool_to_t_bool_fromStack(value10, add(headStart, 320))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 256)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bool_to_t_bool_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_address_t_address_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart , value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 288)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bool_to_t_bool_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n abi_encode_t_bool_to_t_bool_fromStack(value8, add(headStart, 256))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_00089c76a373f1bf1ce488029d85c3057f06e8cb92591915d8dbb085d955c3e1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_23f6065604c9ed31ccb6d9a59405b84117cd22c0de73798ab41d5715a6a5110f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_307523869a1018d0d8fbffd6795551b6280663630ad175de2094efa0f5114788_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3641d3b192ea8f5da6f468bf4254dd554cda462e64337795ef854f525e1019ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3e783f00b1507aa22953814c56994658829eeb3994473c97e1667e19b633d965_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4528487fb1bbc08661d19b6614bee493112ccce0198444bd4a6391c9c9b9de43_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_70356c467a9713064077b7fa0ff1a074c93b1f7c48415be181b9cd799b628361_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75889cf5cad9d861f456923f474b2a6325863ea546a033bf105b3360ecb603ab_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_763e11c352f2a253bf9863b9ea5cf2e97901358aa825d0bb4ae1a48708f775e4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_87cbf133bd0a2e8a7185449de545f8c99b1878014ddd287c799fe56667344fc0_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_97c26b062a8690dc1c22a5c43c18d0c65464243919ec7499d2c032d781173a86_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9ed3363d8c3621c1f07ae6d47c85e5fa9abed5477d40ccb2efc3ad70042a4ee8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a17370fccc17c21f9803aeb7353e066c9c4ee292ff9c51a9ceb388b6ea2f600b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b187697b024bb18014331bfad03b8068d945fd7d6324b08748d30c8295403ec1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e088a3773895a64515c4832ffdef0d5c456286c5e3d7a57fda1718cd618a34d6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ee2b3036230286da8baab74d1c82667ee3b0e359bba5a81061ca79a5eec42ef1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fc66d7fe93f0d5321fd87e2a2a7da63857d46ae828aed7725bd9214a4db4e99b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 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 array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\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 validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106101015760003560e01c80635c52a5f211610095578063871f179f11610064578063871f179f146103cc578063e289ae8114610409578063e57fcc2014610446578063f789271c14610483578063fe99049a146104c057610102565b80635c52a5f2146102d85780637d4c82ca1461031557806384d621781461035257806386468c421461038f57610102565b806323cfbf1a116100d157806323cfbf1a146101f65780632eaee35e146102335780632f3f7d7f1461025e578063426a84931461029b57610102565b8062b4fa3e14610104578063095bcdb6146101495780630afc785414610172578063188783d6146101af57610102565b5b005b34801561011057600080fd5b5061012b600480360381019061012691906133da565b6104e9565b60405161014099989796959493929190613ca4565b60405180910390f35b34801561015557600080fd5b50610170600480360381019061016b9190613321565b610591565b005b34801561017e57600080fd5b50610199600480360381019061019491906133da565b6105a2565b6040516101a69190613d91565b60405180910390f35b3480156101bb57600080fd5b506101d660048036038101906101d191906133da565b610a1a565b6040516101ed9b9a99989796959493929190613b7b565b60405180910390f35b34801561020257600080fd5b5061021d600480360381019061021891906133da565b610aee565b60405161022a9190613d91565b60405180910390f35b34801561023f57600080fd5b50610248610f7b565b6040516102559190613ad3565b60405180910390f35b34801561026a57600080fd5b5061028560048036038101906102809190612ff6565b610fa1565b6040516102929190613d91565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190613321565b610fc1565b6040516102cf9190613d91565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa919061326f565b6111af565b60405161030c9190613fcc565b60405180910390f35b34801561032157600080fd5b5061033c6004803603810190610337919061301f565b611237565b6040516103499190613d91565b60405180910390f35b34801561035e57600080fd5b50610379600480360381019061037491906130d1565b611872565b6040516103869190613fcc565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b19190613370565b6118be565b6040516103c39190613d91565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190613321565b611936565b6040516104009190613d91565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b9190613148565b611eec565b60405161043d9190613fcc565b60405180910390f35b34801561045257600080fd5b5061046d600480360381019061046891906131d1565b611f45565b60405161047a9190613fcc565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a591906131d1565b612685565b6040516104b79190613d91565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e291906132be565b61276b565b005b600a6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16908060020154908060030154908060040154908060050154908060060154908060070160009054906101000a900460ff16905089565b61059d33848484612831565b505050565b60003373ffffffffffffffffffffffffffffffffffffffff16600a600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063f90613f0c565b60405180910390fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600086815260200190815260200160002060010160149054906101000a900460ff161515151581526020019081526020016000206000600a60008681526020019081526020016000206002015481526020019081526020016000206000600a60008681526020019081526020016000206003015481526020019081526020016000206000600a60008681526020019081526020016000206004015481526020019081526020016000205490506000600a600085815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008190506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600089815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a600089815260200190815260200160002060010160149054906101000a900460ff161515151581526020019081526020016000206000600a60008981526020019081526020016000206002015481526020019081526020016000206000600a60008981526020019081526020016000206003015481526020019081526020016000206000600a6000898152602001908152602001600020600401548152602001908152602001600020819055506000600a600087815260200190815260200160002060070160006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016109bb929190613d68565b602060405180830381600087803b1580156109d557600080fd5b505af11580156109e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0d91906133b1565b5060019350505050919050565b60096020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060030154908060040154908060050154908060060154908060070154908060080154908060090160009054906101000a900460ff1690508b565b60008015156009600084815260200190815260200160002060090160009054906101000a900460ff16151514610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090613dcc565b60405180910390fd5b4260096000848152602001908152602001600020600501541015610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba990613f2c565b60405180910390fd5b600060096000848152602001908152602001600020604051806101600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900460ff161515151581526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481526020016009820160009054906101000a900460ff161515151581525050905060008160400151905060008190506000610d7484608001518560e00151612eb590919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd85600001518660200151846040518463ffffffff1660e01b8152600401610ddd93929190613d31565b602060405180830381600087803b158015610df757600080fd5b505af1158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906133b1565b610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613f8c565b60405180910390fd5b60016009600088815260200190815260200160002060090160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85600001518660e001516040518363ffffffff1660e01b8152600401610ee0929190613d68565b602060405180830381600087803b158015610efa57600080fd5b505af1158015610f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3291906133b1565b507f5fd7d80018e9d1078709eb14daa12c7d0956c931e763e0ed2889aae7452672eb868242604051610f6693929190614010565b60405180910390a16001945050505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b60003373ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e90613eac565b60405180910390fd5b82600960008481526020019081526020016000206006015410156110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b790613ecc565b60405180910390fd5b82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a785856040516111a0929190613fe7565b60405180910390a39392505050565b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509392505050565b60008061124989898989898989612685565b90508061128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290613e4c565b60405180910390fd5b806112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c290613f6c565b60405180910390fd5b6000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600089151515158152602001908152602001600020600088815260200190815260200160002060008781526020019081526020016000206000868152602001908152602001600020549050808411156113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce90613fac565b60405180910390fd5b60006113ec8588612eb590919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd338d846040518463ffffffff1660e01b815260040161144d93929190613d31565b602060405180830381600087803b15801561146757600080fd5b505af115801561147b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149f91906133b1565b6114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590613f4c565b60405180910390fd5b6115b585600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002054612ecb90919063ffffffff16565b600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002060008881526020019081526020016000208190555061174385600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b8152602001908152602001600020600089815260200190815260200160002054612ee190919063ffffffff16565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a81526020019081526020016000206000888152602001908152602001600020819055506118106001600854612ee190919063ffffffff16565b6008819055507fa424d29bf47b9249da68537a7ce50b17b8c471cff46be0dbfef01f474b2b75608c8c8c8c8c8c8c8c60085460405161185799989796959493929190613aee565b60405180910390a16001935050505098975050505050505050565b6005602052846000526040600020602052836000526040600020602052826000526040600020602052816000526040600020602052806000526040600020600094509450505050505481565b600080600090505b825181101561192c5761191883828151811061190b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610aee565b508080611924906141e1565b9150506118c6565b5060019050919050565b600060011515600a600085815260200190815260200160002060070160009054906101000a900460ff161515146119a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199990613dec565b60405180910390fd5b6000600a6000858152602001908152602001600020604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff16151515158152505090506000611b02826000015183602001518460400151856060015186608001518760a001518a612685565b905080611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b90613e4c565b60405180910390fd5b8160c00151841115611b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8290613e8c565b60405180910390fd5b6000611ba4858460800151612eb590919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd338560000151846040518463ffffffff1660e01b8152600401611c0993929190613d31565b602060405180830381600087803b158015611c2357600080fd5b505af1158015611c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5b91906133b1565b611c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9190613f4c565b60405180910390fd5b611d898560046000866000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040015115151515815260200190815260200160002060008660600151815260200190815260200160002060008660800151815260200190815260200160002060008660a00151815260200190815260200160002054612ecb90919063ffffffff16565b50611e6085600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040015115151515815260200190815260200160002060008660600151815260200190815260200160002060008660a00151815260200190815260200160002054612ee190919063ffffffff16565b50611e776001600854612ee190919063ffffffff16565b6008819055507fa424d29bf47b9249da68537a7ce50b17b8c471cff46be0dbfef01f474b2b756087846000015185602001518660400151876060015188608001518960a001518c600854604051611ed699989796959493929190613aee565b60405180910390a1600193505050509392505050565b600460205285600052604060002060205284600052604060002060205283600052604060002060205282600052604060002060205281600052604060002060205280600052604060002060009550955050505050505481565b60008087905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611f869190613ad3565b60206040518083038186803b158015611f9e57600080fd5b505afa158015611fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd69190613403565b90508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b815260040161201593929190613d31565b602060405180830381600087803b15801561202f57600080fd5b505af1158015612043573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206791906133b1565b5060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016120a39190613ad3565b60206040518083038186803b1580156120bb57600080fd5b505afa1580156120cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f39190613403565b90506121088583612ee190919063ffffffff16565b81101561214a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214190613e0c565b60405180910390fd5b6000600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002060008881526020019081526020016000205414156122e55784600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a81526020019081526020016000206000898152602001908152602001600020600088815260200190815260200160002081905550612485565b6123bc85600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c15151515815260200190815260200160002060008b815260200190815260200160002060008a8152602001908152602001600020600089815260200190815260200160002054612ee190919063ffffffff16565b600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b15151515815260200190815260200160002060008a815260200190815260200160002060008981526020019081526020016000206000888152602001908152602001600020819055505b61249b6001600754612ee190919063ffffffff16565b6007819055506040518061012001604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a1515815260200189815260200188815260200187815260200186815260200142815260200160011515815250600a6000600754815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff021916908315150217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e082015181600601556101008201518160070160006101000a81548160ff0219169083151502179055509050507fe717931682f00f8755881436a6596ebc03672fbdb9cc19fb8188f2a4b94a5c9a8b8b8b8b8b8b8b60075460405161266a989796959493929190613c26565b60405180910390a16007549350505050979650505050505050565b600081600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088151515158152602001908152602001600020600087815260200190815260200160002060008681526020019081526020016000206000858152602001908152602001600020541061275b5760019050612760565b600090505b979650505050505050565b60006127788585846111af565b9050600081146127bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b490613e6c565b60405180910390fd5b82811015612800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f790613eec565b60405180910390fd5b61280c85858585612831565b612829846128238584612ecb90919063ffffffff16565b84610fc1565b505050505050565b8373ffffffffffffffffffffffffffffffffffffffff166009600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cc90613eac565b60405180910390fd5b816009600083815260200190815260200160002060060154101561292e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292590613e2c565b60405180910390fd5b600060096000838152602001908152602001600020604051806101600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900460ff161515151581526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481526020016009820160009054906101000a900460ff161515151581525050905080610140015115612b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0290613dac565b60405180910390fd5b612be183600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846060015115151515815260200190815260200160002060008460800151815260200190815260200160002060008460c00151815260200190815260200160002054612ecb90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836060015115151515815260200190815260200160002060008360800151815260200190815260200160002060008360c00151815260200190815260200160002081905550612d7e83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846060015115151515815260200190815260200160002060008460800151815260200190815260200160002060008460c00151815260200190815260200160002054612ee190919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836060015115151515815260200190815260200160002060008360800151815260200190815260200160002060008360c001518152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc817d75deaa278e988c41cf549ef38fe195ab65e0e64cd67ba47f0d185690d58858542604051612ea693929190614010565b60405180910390a35050505050565b60008183612ec3919061410b565b905092915050565b60008183612ed99190614165565b905092915050565b60008183612eef91906140b5565b905092915050565b6000612f0a612f0584614078565b614047565b90508083825260208201905082856020860282011115612f2957600080fd5b60005b85811015612f595781612f3f8882612fcc565b845260208401935060208301925050600181019050612f2c565b5050509392505050565b600081359050612f7281614288565b92915050565b600082601f830112612f8957600080fd5b8135612f99848260208601612ef7565b91505092915050565b600081359050612fb18161429f565b92915050565b600081519050612fc68161429f565b92915050565b600081359050612fdb816142b6565b92915050565b600081519050612ff0816142b6565b92915050565b60006020828403121561300857600080fd5b600061301684828501612f63565b91505092915050565b600080600080600080600080610100898b03121561303c57600080fd5b600061304a8b828c01612f63565b985050602061305b8b828c01612f63565b975050604061306c8b828c01612f63565b965050606061307d8b828c01612fa2565b955050608061308e8b828c01612fcc565b94505060a061309f8b828c01612fcc565b93505060c06130b08b828c01612fcc565b92505060e06130c18b828c01612fcc565b9150509295985092959890939650565b600080600080600060a086880312156130e957600080fd5b60006130f788828901612f63565b955050602061310888828901612f63565b945050604061311988828901612fa2565b935050606061312a88828901612fcc565b925050608061313b88828901612fcc565b9150509295509295909350565b60008060008060008060c0878903121561316157600080fd5b600061316f89828a01612f63565b965050602061318089828a01612f63565b955050604061319189828a01612fa2565b94505060606131a289828a01612fcc565b93505060806131b389828a01612fcc565b92505060a06131c489828a01612fcc565b9150509295509295509295565b600080600080600080600060e0888a0312156131ec57600080fd5b60006131fa8a828b01612f63565b975050602061320b8a828b01612f63565b965050604061321c8a828b01612fa2565b955050606061322d8a828b01612fcc565b945050608061323e8a828b01612fcc565b93505060a061324f8a828b01612fcc565b92505060c06132608a828b01612fcc565b91505092959891949750929550565b60008060006060848603121561328457600080fd5b600061329286828701612f63565b93505060206132a386828701612f63565b92505060406132b486828701612fcc565b9150509250925092565b600080600080608085870312156132d457600080fd5b60006132e287828801612f63565b94505060206132f387828801612f63565b935050604061330487828801612fcc565b925050606061331587828801612fcc565b91505092959194509250565b60008060006060848603121561333657600080fd5b600061334486828701612f63565b935050602061335586828701612fcc565b925050604061336686828701612fcc565b9150509250925092565b60006020828403121561338257600080fd5b600082013567ffffffffffffffff81111561339c57600080fd5b6133a884828501612f78565b91505092915050565b6000602082840312156133c357600080fd5b60006133d184828501612fb7565b91505092915050565b6000602082840312156133ec57600080fd5b60006133fa84828501612fcc565b91505092915050565b60006020828403121561341557600080fd5b600061342384828501612fe1565b91505092915050565b61343581614199565b82525050565b613444816141ab565b82525050565b60006134576023836140a4565b91507f63616e6e6f74207472616e7366657220616e206578657263697a6564206f707460008301527f696f6e00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134bd6027836140a4565b91507f54686973206f7074696f6e2068617320616c7265616479206265656e2065786360008301527f657273697a6564000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613523601e836140a4565b91507f54686973206f7074696f6e206973206e6f206c6f6e6765722076616c696400006000830152602082019050919050565b60006135636040836140a4565b91507f436f756c64206e6f74207472616e736665722074686520616d6f756e7420667260008301527f6f6d206d73672e73656e646572207468617420776173207265717565737465646020830152604082019050919050565b60006135c9601e836140a4565b91507f43616e6e6f74207472616e666572206d6f7265207468616e206f776e656400006000830152602082019050919050565b60006136096047836140a4565b91507f54686973206f7074696f6e206973206e6f742062757961626c652e20506c656160008301527f736520636865636b207468652073656c6c65722773206f6666657220696e666f60208301527f726d6174696f6e000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000613695600c836140a4565b91507f4e6f7420617070726f76656400000000000000000000000000000000000000006000830152602082019050919050565b60006136d5602c836140a4565b91507f5468657265206973206e6f7420656e6f75676820696e76656e746f727920666f60008301527f722074686973206f7264657200000000000000000000000000000000000000006020830152604082019050919050565b600061373b601e836140a4565b91507f5468652073656e646572206d757374206f776e20746865206f7074696f6e00006000830152602082019050919050565b600061377b601e836140a4565b91507f43616e6e6f7420617070726f7665206d6f7265207468616e206f776e656400006000830152602082019050919050565b60006137bb601c836140a4565b91507f4e6f7420617070726f76656420666f72207468697320616d6f756e74000000006000830152602082019050919050565b60006137fb6023836140a4565b91507f546865206d73672e73656e6465722068617320746f206265207468652073656c60008301527f6c657200000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138616037836140a4565b91507f54686973206f7074696f6e20686173206e6f742072656163686564206974732060008301527f657863657273697a652074696d657374616d70207965740000000000000000006020830152604082019050919050565b60006138c7604d836140a4565b91507f506c6561736520656e73757265207468617420796f752068617665206170707260008301527f6f766564207468697320636f6e747261637420746f2068616e646c6520796f7560208301527f722044414920286572726f7229000000000000000000000000000000000000006040830152606082019050919050565b60006139536060836140a4565b91507f536f7272793a207468657265206973206e6f206f6e652073656c6c696e67206f60008301527f7074696f6e732074686174206d65657420796f7572207370656369666963617460208301527f696f6e732e205065726861707320747279206275794f7074696f6e42794964736040830152606082019050919050565b60006139df6052836140a4565b91507f4469642074686520627579657220617070726f7665207468697320636f6e747260008301527f61637420746f2068616e646c6520444149206f72206861766520616e6f75676860208301527f2044414920746f20657863657273697a653f00000000000000000000000000006040830152606082019050919050565b6000613a6b602d836140a4565b91507f205468657265206973206e6f7420656e6f75676820696e76656e746f7279206660008301527f6f722074686973206f72646572000000000000000000000000000000000000006020830152604082019050919050565b613acd816141d7565b82525050565b6000602082019050613ae8600083018461342c565b92915050565b600061012082019050613b04600083018c61342c565b613b11602083018b61342c565b613b1e604083018a61342c565b613b2b606083018961343b565b613b386080830188613ac4565b613b4560a0830187613ac4565b613b5260c0830186613ac4565b613b5f60e0830185613ac4565b613b6d610100830184613ac4565b9a9950505050505050505050565b600061016082019050613b91600083018e61342c565b613b9e602083018d61342c565b613bab604083018c61342c565b613bb8606083018b61343b565b613bc5608083018a613ac4565b613bd260a0830189613ac4565b613bdf60c0830188613ac4565b613bec60e0830187613ac4565b613bfa610100830186613ac4565b613c08610120830185613ac4565b613c1661014083018461343b565b9c9b505050505050505050505050565b600061010082019050613c3c600083018b61342c565b613c49602083018a61342c565b613c56604083018961343b565b613c636060830188613ac4565b613c706080830187613ac4565b613c7d60a0830186613ac4565b613c8a60c0830185613ac4565b613c9760e0830184613ac4565b9998505050505050505050565b600061012082019050613cba600083018c61342c565b613cc7602083018b61342c565b613cd4604083018a61343b565b613ce16060830189613ac4565b613cee6080830188613ac4565b613cfb60a0830187613ac4565b613d0860c0830186613ac4565b613d1560e0830185613ac4565b613d2361010083018461343b565b9a9950505050505050505050565b6000606082019050613d46600083018661342c565b613d53602083018561342c565b613d606040830184613ac4565b949350505050565b6000604082019050613d7d600083018561342c565b613d8a6020830184613ac4565b9392505050565b6000602082019050613da6600083018461343b565b92915050565b60006020820190508181036000830152613dc58161344a565b9050919050565b60006020820190508181036000830152613de5816134b0565b9050919050565b60006020820190508181036000830152613e0581613516565b9050919050565b60006020820190508181036000830152613e2581613556565b9050919050565b60006020820190508181036000830152613e45816135bc565b9050919050565b60006020820190508181036000830152613e65816135fc565b9050919050565b60006020820190508181036000830152613e8581613688565b9050919050565b60006020820190508181036000830152613ea5816136c8565b9050919050565b60006020820190508181036000830152613ec58161372e565b9050919050565b60006020820190508181036000830152613ee58161376e565b9050919050565b60006020820190508181036000830152613f05816137ae565b9050919050565b60006020820190508181036000830152613f25816137ee565b9050919050565b60006020820190508181036000830152613f4581613854565b9050919050565b60006020820190508181036000830152613f65816138ba565b9050919050565b60006020820190508181036000830152613f8581613946565b9050919050565b60006020820190508181036000830152613fa5816139d2565b9050919050565b60006020820190508181036000830152613fc581613a5e565b9050919050565b6000602082019050613fe16000830184613ac4565b92915050565b6000604082019050613ffc6000830185613ac4565b6140096020830184613ac4565b9392505050565b60006060820190506140256000830186613ac4565b6140326020830185613ac4565b61403f6040830184613ac4565b949350505050565b6000604051905081810181811067ffffffffffffffff8211171561406e5761406d614259565b5b8060405250919050565b600067ffffffffffffffff82111561409357614092614259565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006140c0826141d7565b91506140cb836141d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614100576140ff61422a565b5b828201905092915050565b6000614116826141d7565b9150614121836141d7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561415a5761415961422a565b5b828202905092915050565b6000614170826141d7565b915061417b836141d7565b92508282101561418e5761418d61422a565b5b828203905092915050565b60006141a4826141b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006141ec826141d7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561421f5761421e61422a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61429181614199565b811461429c57600080fd5b50565b6142a8816141ab565b81146142b357600080fd5b50565b6142bf816141d7565b81146142ca57600080fd5b5056fea264697066735822122049b5f8603ca2ad95771fe90b6a034e6b122b228f0b3d52c72aa598ea8c7bff5664736f6c63430008000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x101 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C52A5F2 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0x871F179F GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x871F179F EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0xE289AE81 EQ PUSH2 0x409 JUMPI DUP1 PUSH4 0xE57FCC20 EQ PUSH2 0x446 JUMPI DUP1 PUSH4 0xF789271C EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0xFE99049A EQ PUSH2 0x4C0 JUMPI PUSH2 0x102 JUMP JUMPDEST DUP1 PUSH4 0x5C52A5F2 EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x7D4C82CA EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x84D62178 EQ PUSH2 0x352 JUMPI DUP1 PUSH4 0x86468C42 EQ PUSH2 0x38F JUMPI PUSH2 0x102 JUMP JUMPDEST DUP1 PUSH4 0x23CFBF1A GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0x23CFBF1A EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0x2EAEE35E EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0x2F3F7D7F EQ PUSH2 0x25E JUMPI DUP1 PUSH4 0x426A8493 EQ PUSH2 0x29B JUMPI PUSH2 0x102 JUMP JUMPDEST DUP1 PUSH3 0xB4FA3E EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x95BCDB6 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0xAFC7854 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x188783D6 EQ PUSH2 0x1AF JUMPI PUSH2 0x102 JUMP JUMPDEST JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x33DA JUMP JUMPDEST PUSH2 0x4E9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x140 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3CA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x155 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x3321 JUMP JUMPDEST PUSH2 0x591 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x194 SWAP2 SWAP1 PUSH2 0x33DA JUMP JUMPDEST PUSH2 0x5A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D1 SWAP2 SWAP1 PUSH2 0x33DA JUMP JUMPDEST PUSH2 0xA1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3B7B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x202 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x218 SWAP2 SWAP1 PUSH2 0x33DA JUMP JUMPDEST PUSH2 0xAEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22A SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x255 SWAP2 SWAP1 PUSH2 0x3AD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x285 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x280 SWAP2 SWAP1 PUSH2 0x2FF6 JUMP JUMPDEST PUSH2 0xFA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x292 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0x3321 JUMP JUMPDEST PUSH2 0xFC1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CF SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FA SWAP2 SWAP1 PUSH2 0x326F JUMP JUMPDEST PUSH2 0x11AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x3FCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x301F JUMP JUMPDEST PUSH2 0x1237 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x349 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x379 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x374 SWAP2 SWAP1 PUSH2 0x30D1 JUMP JUMPDEST PUSH2 0x1872 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x386 SWAP2 SWAP1 PUSH2 0x3FCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x3370 JUMP JUMPDEST PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C3 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EE SWAP2 SWAP1 PUSH2 0x3321 JUMP JUMPDEST PUSH2 0x1936 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x400 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x430 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42B SWAP2 SWAP1 PUSH2 0x3148 JUMP JUMPDEST PUSH2 0x1EEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43D SWAP2 SWAP1 PUSH2 0x3FCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x468 SWAP2 SWAP1 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x1F45 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x47A SWAP2 SWAP1 PUSH2 0x3FCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4A5 SWAP2 SWAP1 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x2685 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B7 SWAP2 SWAP1 PUSH2 0x3D91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E2 SWAP2 SWAP1 PUSH2 0x32BE JUMP JUMPDEST PUSH2 0x276B JUMP JUMPDEST STOP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 DUP1 PUSH1 0x5 ADD SLOAD SWAP1 DUP1 PUSH1 0x6 ADD SLOAD SWAP1 DUP1 PUSH1 0x7 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP10 JUMP JUMPDEST PUSH2 0x59D CALLER DUP5 DUP5 DUP5 PUSH2 0x2831 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x648 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x63F SWAP1 PUSH2 0x3F0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9BB SWAP3 SWAP2 SWAP1 PUSH2 0x3D68 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA0D SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 DUP1 PUSH1 0x5 ADD SLOAD SWAP1 DUP1 PUSH1 0x6 ADD SLOAD SWAP1 DUP1 PUSH1 0x7 ADD SLOAD SWAP1 DUP1 PUSH1 0x8 ADD SLOAD SWAP1 DUP1 PUSH1 0x9 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP12 JUMP JUMPDEST PUSH1 0x0 DUP1 ISZERO ISZERO PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x9 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0xB59 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB50 SWAP1 PUSH2 0x3DCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD SLOAD LT ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBA9 SWAP1 PUSH2 0x3F2C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x0 PUSH2 0xD74 DUP5 PUSH1 0x80 ADD MLOAD DUP6 PUSH1 0xE0 ADD MLOAD PUSH2 0x2EB5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD DUP6 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDDD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3D31 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE0B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE2F SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST PUSH2 0xE6E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE65 SWAP1 PUSH2 0x3F8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x9 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x9 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP6 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0xE0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEE0 SWAP3 SWAP2 SWAP1 PUSH2 0x3D68 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF0E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF32 SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST POP PUSH32 0x5FD7D80018E9D1078709EB14DAA12C7D0956C931E763E0ED2889AAE7452672EB DUP7 DUP3 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0xF66 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP5 POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1067 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x105E SWAP1 PUSH2 0x3EAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10B7 SWAP1 PUSH2 0x3ECC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x6 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB3FD5071835887567A0671151121894DDCCC2842F1D10BEDAD13E0D17CACE9A7 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x11A0 SWAP3 SWAP2 SWAP1 PUSH2 0x3FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1249 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x2685 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x128B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1282 SWAP1 PUSH2 0x3E4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x12CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12C2 SWAP1 PUSH2 0x3F6C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0x13D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13CE SWAP1 PUSH2 0x3FAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x13EC DUP6 DUP9 PUSH2 0x2EB5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP14 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x144D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3D31 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x147B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x149F SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST PUSH2 0x14DE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14D5 SWAP1 PUSH2 0x3F4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15B5 DUP6 PUSH1 0x4 PUSH1 0x0 DUP15 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1743 DUP6 PUSH1 0x5 PUSH1 0x0 DUP16 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP15 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1810 PUSH1 0x1 PUSH1 0x8 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH32 0xA424D29BF47B9249DA68537A7CE50B17B8C471CFF46BE0DBFEF01F474B2B7560 DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH2 0x1857 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP4 POP POP POP POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP5 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP4 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP3 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP5 POP SWAP5 POP POP POP POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x192C JUMPI PUSH2 0x1918 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x190B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xAEE JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0x1924 SWAP1 PUSH2 0x41E1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x18C6 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 ISZERO ISZERO PUSH1 0xA PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x19A2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1999 SWAP1 PUSH2 0x3DEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x1B02 DUP3 PUSH1 0x0 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD DUP8 PUSH1 0xA0 ADD MLOAD DUP11 PUSH2 0x2685 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1B44 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B3B SWAP1 PUSH2 0x3E4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD DUP5 GT ISZERO PUSH2 0x1B8B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B82 SWAP1 PUSH2 0x3E8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1BA4 DUP6 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x2EB5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP6 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C09 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3D31 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C37 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C5B SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST PUSH2 0x1C9A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C91 SWAP1 PUSH2 0x3F4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1D89 DUP6 PUSH1 0x4 PUSH1 0x0 DUP7 PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x40 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0xA0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x1E60 DUP6 PUSH1 0x5 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x40 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0xA0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x1E77 PUSH1 0x1 PUSH1 0x8 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH32 0xA424D29BF47B9249DA68537A7CE50B17B8C471CFF46BE0DBFEF01F474B2B7560 DUP8 DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD DUP9 PUSH1 0x80 ADD MLOAD DUP10 PUSH1 0xA0 ADD MLOAD DUP13 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED6 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP6 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP5 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP4 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP3 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP6 POP SWAP6 POP POP POP POP POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP8 SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F86 SWAP2 SWAP1 PUSH2 0x3AD3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FD6 SWAP2 SWAP1 PUSH2 0x3403 JUMP JUMPDEST SWAP1 POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2015 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3D31 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x202F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2043 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2067 SWAP2 SWAP1 PUSH2 0x33B1 JUMP JUMPDEST POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20A3 SWAP2 SWAP1 PUSH2 0x3AD3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20F3 SWAP2 SWAP1 PUSH2 0x3403 JUMP JUMPDEST SWAP1 POP PUSH2 0x2108 DUP6 DUP4 PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x214A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2141 SWAP1 PUSH2 0x3E0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO PUSH2 0x22E5 JUMPI DUP5 PUSH1 0x4 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x2485 JUMP JUMPDEST PUSH2 0x23BC DUP6 PUSH1 0x4 PUSH1 0x0 DUP15 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMPDEST PUSH2 0x249B PUSH1 0x1 PUSH1 0x7 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE DUP1 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP11 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE POP PUSH1 0xA PUSH1 0x0 PUSH1 0x7 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH32 0xE717931682F00F8755881436A6596EBC03672FBDB9CC19FB8188F2A4B94A5C9A DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH2 0x266A SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3C26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 SLOAD SWAP4 POP POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT PUSH2 0x275B JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x2760 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2778 DUP6 DUP6 DUP5 PUSH2 0x11AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x27BD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x27B4 SWAP1 PUSH2 0x3E6C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2800 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x27F7 SWAP1 PUSH2 0x3EEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x280C DUP6 DUP6 DUP6 DUP6 PUSH2 0x2831 JUMP JUMPDEST PUSH2 0x2829 DUP5 PUSH2 0x2823 DUP6 DUP5 PUSH2 0x2ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP5 PUSH2 0xFC1 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x28D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28CC SWAP1 PUSH2 0x3EAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x292E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2925 SWAP1 PUSH2 0x3E2C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH2 0x140 ADD MLOAD ISZERO PUSH2 0x2B0B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B02 SWAP1 PUSH2 0x3DAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2BE1 DUP4 PUSH1 0x5 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x60 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x60 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x2D7E DUP4 PUSH1 0x5 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x60 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2EE1 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x60 ADD MLOAD ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC817D75DEAA278E988C41CF549EF38FE195AB65E0E64CD67BA47F0D185690D58 DUP6 DUP6 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x2EA6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x2EC3 SWAP2 SWAP1 PUSH2 0x410B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x2ED9 SWAP2 SWAP1 PUSH2 0x4165 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x2EEF SWAP2 SWAP1 PUSH2 0x40B5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F0A PUSH2 0x2F05 DUP5 PUSH2 0x4078 JUMP JUMPDEST PUSH2 0x4047 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x2F29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2F59 JUMPI DUP2 PUSH2 0x2F3F DUP9 DUP3 PUSH2 0x2FCC JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2F2C JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2F72 DUP2 PUSH2 0x4288 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2F99 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2EF7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2FB1 DUP2 PUSH2 0x429F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2FC6 DUP2 PUSH2 0x429F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2FDB DUP2 PUSH2 0x42B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2FF0 DUP2 PUSH2 0x42B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3008 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3016 DUP5 DUP3 DUP6 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x303C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x304A DUP12 DUP3 DUP13 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x305B DUP12 DUP3 DUP13 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x306C DUP12 DUP3 DUP13 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH2 0x307D DUP12 DUP3 DUP13 ADD PUSH2 0x2FA2 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 PUSH2 0x308E DUP12 DUP3 DUP13 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH2 0x309F DUP12 DUP3 DUP13 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 PUSH2 0x30B0 DUP12 DUP3 DUP13 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0xE0 PUSH2 0x30C1 DUP12 DUP3 DUP13 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x30E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x30F7 DUP9 DUP3 DUP10 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x3108 DUP9 DUP3 DUP10 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x3119 DUP9 DUP3 DUP10 ADD PUSH2 0x2FA2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x312A DUP9 DUP3 DUP10 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x313B DUP9 DUP3 DUP10 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3161 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x316F DUP10 DUP3 DUP11 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x3180 DUP10 DUP3 DUP11 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x3191 DUP10 DUP3 DUP11 ADD PUSH2 0x2FA2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x31A2 DUP10 DUP3 DUP11 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x31B3 DUP10 DUP3 DUP11 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x31C4 DUP10 DUP3 DUP11 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x31EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x31FA DUP11 DUP3 DUP12 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x320B DUP11 DUP3 DUP12 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x321C DUP11 DUP3 DUP12 ADD PUSH2 0x2FA2 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x322D DUP11 DUP3 DUP12 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x323E DUP11 DUP3 DUP12 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x324F DUP11 DUP3 DUP12 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0x3260 DUP11 DUP3 DUP12 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3284 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3292 DUP7 DUP3 DUP8 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x32A3 DUP7 DUP3 DUP8 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x32B4 DUP7 DUP3 DUP8 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x32D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x32E2 DUP8 DUP3 DUP9 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x32F3 DUP8 DUP3 DUP9 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x3304 DUP8 DUP3 DUP9 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x3315 DUP8 DUP3 DUP9 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3336 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3344 DUP7 DUP3 DUP8 ADD PUSH2 0x2F63 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3355 DUP7 DUP3 DUP8 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3366 DUP7 DUP3 DUP8 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x339C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x33A8 DUP5 DUP3 DUP6 ADD PUSH2 0x2F78 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x33D1 DUP5 DUP3 DUP6 ADD PUSH2 0x2FB7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x33FA DUP5 DUP3 DUP6 ADD PUSH2 0x2FCC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3423 DUP5 DUP3 DUP6 ADD PUSH2 0x2FE1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3435 DUP2 PUSH2 0x4199 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3444 DUP2 PUSH2 0x41AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3457 PUSH1 0x23 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x63616E6E6F74207472616E7366657220616E206578657263697A6564206F7074 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x696F6E0000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34BD PUSH1 0x27 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x54686973206F7074696F6E2068617320616C7265616479206265656E20657863 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x657273697A656400000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3523 PUSH1 0x1E DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x54686973206F7074696F6E206973206E6F206C6F6E6765722076616C69640000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3563 PUSH1 0x40 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x436F756C64206E6F74207472616E736665722074686520616D6F756E74206672 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6D206D73672E73656E64657220746861742077617320726571756573746564 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35C9 PUSH1 0x1E DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x43616E6E6F74207472616E666572206D6F7265207468616E206F776E65640000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3609 PUSH1 0x47 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x54686973206F7074696F6E206973206E6F742062757961626C652E20506C6561 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x736520636865636B207468652073656C6C65722773206F6666657220696E666F PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x726D6174696F6E00000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3695 PUSH1 0xC DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x4E6F7420617070726F7665640000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36D5 PUSH1 0x2C DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x5468657265206973206E6F7420656E6F75676820696E76656E746F727920666F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x722074686973206F726465720000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x373B PUSH1 0x1E DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x5468652073656E646572206D757374206F776E20746865206F7074696F6E0000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x377B PUSH1 0x1E DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x43616E6E6F7420617070726F7665206D6F7265207468616E206F776E65640000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37BB PUSH1 0x1C DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x4E6F7420617070726F76656420666F72207468697320616D6F756E7400000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37FB PUSH1 0x23 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x546865206D73672E73656E6465722068617320746F206265207468652073656C PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C65720000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3861 PUSH1 0x37 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x54686973206F7074696F6E20686173206E6F7420726561636865642069747320 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x657863657273697A652074696D657374616D7020796574000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38C7 PUSH1 0x4D DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x506C6561736520656E73757265207468617420796F7520686176652061707072 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F766564207468697320636F6E747261637420746F2068616E646C6520796F75 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x722044414920286572726F722900000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3953 PUSH1 0x60 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x536F7272793A207468657265206973206E6F206F6E652073656C6C696E67206F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7074696F6E732074686174206D65657420796F75722073706563696669636174 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x696F6E732E205065726861707320747279206275794F7074696F6E4279496473 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39DF PUSH1 0x52 DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x4469642074686520627579657220617070726F7665207468697320636F6E7472 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x61637420746F2068616E646C6520444149206F72206861766520616E6F756768 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x2044414920746F20657863657273697A653F0000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A6B PUSH1 0x2D DUP4 PUSH2 0x40A4 JUMP JUMPDEST SWAP2 POP PUSH32 0x205468657265206973206E6F7420656E6F75676820696E76656E746F72792066 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F722074686973206F7264657200000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3ACD DUP2 PUSH2 0x41D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3AE8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x342C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x3B04 PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3B11 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3B1E PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3B2B PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x343B JUMP JUMPDEST PUSH2 0x3B38 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3B45 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3B52 PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3B5F PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3B6D PUSH2 0x100 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP3 ADD SWAP1 POP PUSH2 0x3B91 PUSH1 0x0 DUP4 ADD DUP15 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3B9E PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3BAB PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3BB8 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x343B JUMP JUMPDEST PUSH2 0x3BC5 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3BD2 PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3BDF PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3BEC PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3BFA PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C08 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C16 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x343B JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 ADD SWAP1 POP PUSH2 0x3C3C PUSH1 0x0 DUP4 ADD DUP12 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3C49 PUSH1 0x20 DUP4 ADD DUP11 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3C56 PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x343B JUMP JUMPDEST PUSH2 0x3C63 PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C70 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C7D PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C8A PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3C97 PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x3CBA PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3CC7 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3CD4 PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x343B JUMP JUMPDEST PUSH2 0x3CE1 PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3CEE PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3CFB PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3D08 PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3D15 PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x3D23 PUSH2 0x100 DUP4 ADD DUP5 PUSH2 0x343B JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x3D46 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3D53 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3D60 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3D7D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x342C JUMP JUMPDEST PUSH2 0x3D8A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3DA6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x343B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3DC5 DUP2 PUSH2 0x344A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3DE5 DUP2 PUSH2 0x34B0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3E05 DUP2 PUSH2 0x3516 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3E25 DUP2 PUSH2 0x3556 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3E45 DUP2 PUSH2 0x35BC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3E65 DUP2 PUSH2 0x35FC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3E85 DUP2 PUSH2 0x3688 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3EA5 DUP2 PUSH2 0x36C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3EC5 DUP2 PUSH2 0x372E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3EE5 DUP2 PUSH2 0x376E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3F05 DUP2 PUSH2 0x37AE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3F25 DUP2 PUSH2 0x37EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3F45 DUP2 PUSH2 0x3854 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3F65 DUP2 PUSH2 0x38BA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3F85 DUP2 PUSH2 0x3946 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3FA5 DUP2 PUSH2 0x39D2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3FC5 DUP2 PUSH2 0x3A5E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3FE1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3FFC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x4009 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x4025 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x4032 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3AC4 JUMP JUMPDEST PUSH2 0x403F PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3AC4 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x406E JUMPI PUSH2 0x406D PUSH2 0x4259 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x4093 JUMPI PUSH2 0x4092 PUSH2 0x4259 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40C0 DUP3 PUSH2 0x41D7 JUMP JUMPDEST SWAP2 POP PUSH2 0x40CB DUP4 PUSH2 0x41D7 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x4100 JUMPI PUSH2 0x40FF PUSH2 0x422A JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4116 DUP3 PUSH2 0x41D7 JUMP JUMPDEST SWAP2 POP PUSH2 0x4121 DUP4 PUSH2 0x41D7 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x415A JUMPI PUSH2 0x4159 PUSH2 0x422A JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4170 DUP3 PUSH2 0x41D7 JUMP JUMPDEST SWAP2 POP PUSH2 0x417B DUP4 PUSH2 0x41D7 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x418E JUMPI PUSH2 0x418D PUSH2 0x422A JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41A4 DUP3 PUSH2 0x41B7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41EC DUP3 PUSH2 0x41D7 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x421F JUMPI PUSH2 0x421E PUSH2 0x422A JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4291 DUP2 PUSH2 0x4199 JUMP JUMPDEST DUP2 EQ PUSH2 0x429C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x42A8 DUP2 PUSH2 0x41AB JUMP JUMPDEST DUP2 EQ PUSH2 0x42B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x42BF DUP2 PUSH2 0x41D7 JUMP JUMPDEST DUP2 EQ PUSH2 0x42CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x49 0xB5 0xF8 PUSH1 0x3C LOG2 0xAD SWAP6 PUSH24 0x1FE90B6A034E6B122B228F0B3D52C72AA598EA8C7BFF5664 PUSH20 0x6F6C634300080000330000000000000000000000 ", + "sourceMap": "364:13141:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3079:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;11021:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9613:907;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3014:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3412:991;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;777:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;475:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11256:481;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11745:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7868:1526;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1143:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4492:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6400:1358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1003:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4843:1461;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10632:381;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11968:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3079:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11021:227::-;11189:51;11199:10;11211:9;11222:6;11229:10;11189:9;:51::i;:::-;11021:227;;;:::o;9613:907::-;9672:4;9760:10;9728:42;;:12;:21;9741:7;9728:21;;;;;;;;;;;:28;;;;;;;;;;;;:42;;;9720:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;9821:32;9856:9;:21;9866:10;9856:21;;;;;;;;;;;;;;;:50;9878:12;:21;9891:7;9878:21;;;;;;;;;;;:27;;;;;;;;;;;;9856:50;;;;;;;;;;;;;;;:86;9907:12;:21;9920:7;9907:21;;;;;;;;;;;:34;;;;;;;;;;;;9856:86;;;;;;;;;;;;;;;:121;9943:12;:21;9956:7;9943:21;;;;;;;;;;;:33;;;9856:121;;;;;;;;;;;:152;9978:12;:21;9991:7;9978:21;;;;;;;;;;;:29;;;9856:152;;;;;;;;;;;:182;10009:12;:21;10022:7;10009:21;;;;;;;;;;;:28;;;9856:182;;;;;;;;;;;;9821:217;;10049:25;10078:12;:21;10091:7;10078:21;;;;;;;;;;;:27;;;;;;;;;;;;10049:56;;10116:22;10148:17;10116:50;;10361:1;10177:9;:21;10187:10;10177:21;;;;;;;;;;;;;;;:50;10199:12;:21;10212:7;10199:21;;;;;;;;;;;:27;;;;;;;;;;;;10177:50;;;;;;;;;;;;;;;:86;10228:12;:21;10241:7;10228:21;;;;;;;;;;;:34;;;;;;;;;;;;10177:86;;;;;;;;;;;;;;;:121;10264:12;:21;10277:7;10264:21;;;;;;;;;;;:33;;;10177:121;;;;;;;;;;;:152;10299:12;:21;10312:7;10299:21;;;;;;;;;;;:29;;;10177:152;;;;;;;;;;;:182;10330:12;:21;10343:7;10330:21;;;;;;;;;;;:28;;;10177:182;;;;;;;;;;;:185;;;;10410:5;10373:12;:21;10386:7;10373:21;;;;;;;;;;;:34;;;:42;;;;;;;;;;;;;;;;;;10426:15;:24;;;10451:10;10463:24;10426:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10506:4;10499:11;;;;;9613:907;;;:::o;3014:58::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3412:991::-;3473:4;3539:5;3499:45;;:15;:27;3515:10;3499:27;;;;;;;;;;;:37;;;;;;;;;;;;:45;;;3491:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;3645:15;3607;:27;3623:10;3607:27;;;;;;;;;;;:34;;;:53;;3599:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;3731:28;3762:15;:27;3778:10;3762:27;;;;;;;;;;;3731:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3800:25;3829:6;:12;;;3800:41;;3852:22;3884:17;3852:50;;3913:22;3938:52;3971:6;:18;;;3938:6;:28;;;:32;;:52;;;;:::i;:::-;3913:77;;4009:8;;;;;;;;;;;:21;;;4031:6;:12;;;4045:6;:13;;;4060:14;4009:66;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4001:161;;;;;;;;;;;;:::i;:::-;;;;;;;;;4212:4;4173:15;:27;4189:10;4173:27;;;;;;;;;;;:37;;;:43;;;;;;;;;;;;;;;;;;4227:15;:24;;;4252:6;:12;;;4266:6;:28;;;4227:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4311:60;4327:10;4339:14;4355:15;4311:60;;;;;;;;:::i;:::-;;;;;;;;4389:4;4382:11;;;;;;3412:991;;;:::o;777:75::-;;;;;;;;;;;;;:::o;475:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;11256:481::-;11345:4;11457:10;11420:47;;:15;:27;11436:10;11420:27;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;11412:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11571:6;11520:15;:27;11536:10;11520:27;;;;;;;;;;;:49;;;:57;;11512:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;11657:6;11622:11;:23;11634:10;11622:23;;;;;;;;;;;;;;;:33;11646:8;11622:33;;;;;;;;;;;;;;;:41;;;;11700:8;11679:50;;11688:10;11679:50;;;11710:6;11718:10;11679:50;;;;;;;:::i;:::-;;;;;;;;11256:481;;;;;:::o;11745:215::-;11830:22;11924:11;:18;11936:5;11924:18;;;;;;;;;;;;;;;:28;11943:8;11924:28;;;;;;;;;;;;;;;;11917:35;;11745:215;;;;;:::o;7868:1526::-;8072:4;8088:20;8111:92;8127:6;8135:5;8142:12;8156:11;8169:7;8178:6;8186:16;8111:15;:92::i;:::-;8088:115;;8222:15;8214:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;8332:15;8324:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;8459:21;8483:9;:17;8493:6;8483:17;;;;;;;;;;;;;;;:24;8501:5;8483:24;;;;;;;;;;;;;;;:38;8508:12;8483:38;;;;;;;;;;;;;;;:51;8522:11;8483:51;;;;;;;;;;;:60;8535:7;8483:60;;;;;;;;;;;:68;8544:6;8483:68;;;;;;;;;;;;8459:92;;8590:13;8570:16;:33;;8562:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;8663:17;8683:29;8695:16;8683:7;:11;;:29;;;;:::i;:::-;8663:49;;8731:8;;;;;;;;;;;:21;;;8753:10;8765:6;8773:9;8731:52;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8723:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;8945:90;9018:16;8945:9;:17;8955:6;8945:17;;;;;;;;;;;;;;;:24;8963:5;8945:24;;;;;;;;;;;;;;;:38;8970:12;8945:38;;;;;;;;;;;;;;;:51;8984:11;8945:51;;;;;;;;;;;:60;8997:7;8945:60;;;;;;;;;;;:68;9006:6;8945:68;;;;;;;;;;;;:72;;:90;;;;:::i;:::-;8876:9;:17;8886:6;8876:17;;;;;;;;;;;;;;;:24;8894:5;8876:24;;;;;;;;;;;;;;;:38;8901:12;8876:38;;;;;;;;;;;;;;;:51;8915:11;8876:51;;;;;;;;;;;:60;8928:7;8876:60;;;;;;;;;;;:68;8937:6;8876:68;;;;;;;;;;;:159;;;;9105:80;9168:16;9105:9;:16;9115:5;9105:16;;;;;;;;;;;;;;;:23;9122:5;9105:23;;;;;;;;;;;;;;;:37;9129:12;9105:37;;;;;;;;;;;;;;;:50;9143:11;9105:50;;;;;;;;;;;:58;9156:6;9105:58;;;;;;;;;;;;:62;;:80;;;;:::i;:::-;9046:9;:16;9056:5;9046:16;;;;;;;;;;;;;;;:23;9063:5;9046:23;;;;;;;;;;;;;;;:37;9070:12;9046:37;;;;;;;;;;;;;;;:50;9084:11;9046:50;;;;;;;;;;;:58;9097:6;9046:58;;;;;;;;;;;:139;;;;9213:21;9232:1;9213:14;;:18;;:21;;;;:::i;:::-;9196:14;:38;;;;9250:114;9265:5;9272:6;9280:5;9287:12;9301:11;9314:7;9323:6;9331:16;9349:14;;9250:114;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9382:4;9375:11;;;;;7868:1526;;;;;;;;;;:::o;1143:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4492:217::-;4564:4;4584:6;4593:1;4584:10;;4580:100;4598:11;:18;4596:1;:20;4580:100;;;4637:31;4653:11;4665:1;4653:14;;;;;;;;;;;;;;;;;;;;;;4637:15;:31::i;:::-;;4618:3;;;;;:::i;:::-;;;;4580:100;;;;4697:4;4690:11;;4492:217;;;:::o;6400:1358::-;6496:4;6553;6516:41;;:12;:21;6529:7;6516:21;;;;;;;;;;;:34;;;;;;;;;;;;:41;;;6508:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;6599:25;6627:12;:21;6640:7;6627:21;;;;;;;;;;;6599:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:20;6678:134;6694:6;:13;;;6709:6;:12;;;6723:6;:19;;;6744:6;:18;;;6764:6;:14;;;6780:6;:13;;;6795:16;6678:15;:134::i;:::-;6655:157;;6827:15;6819:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;6955:6;:28;;;6935:16;:48;;6927:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;7041:17;7061:36;7080:16;7061:6;:14;;;:18;;:36;;;;:::i;:::-;7041:56;;7114:8;;;;;;;;;;;:21;;;7136:10;7148:6;:13;;;7163:9;7114:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7106:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;7264:132;7379:16;7264:9;:24;7274:6;:13;;;7264:24;;;;;;;;;;;;;;;:38;7289:6;:12;;;7264:38;;;;;;;;;;;;;;;:59;7303:6;:19;;;7264:59;;;;;;;;;;;;;;;:79;7324:6;:18;;;7264:79;;;;;;;;;;;:95;7344:6;:14;;;7264:95;;;;;;;;;;;:110;7360:6;:13;;;7264:110;;;;;;;;;;;;:114;;:132;;;;:::i;:::-;;7405:108;7496:16;7405:9;:16;7415:5;7405:16;;;;;;;;;;;;;;;:30;7422:6;:12;;;7405:30;;;;;;;;;;;;;;;:51;7436:6;:19;;;7405:51;;;;;;;;;;;;;;;:71;7457:6;:18;;;7405:71;;;;;;;;;;;:86;7477:6;:13;;;7405:86;;;;;;;;;;;;:90;;:108;;;;:::i;:::-;;7539:21;7558:1;7539:14;;:18;;:21;;;;:::i;:::-;7522:14;:38;;;;7574:156;7589:5;7596:6;:13;;;7611:6;:12;;;7625:6;:19;;;7646:6;:18;;;7666:6;:14;;;7682:6;:13;;;7697:16;7715:14;;7574:156;;;;;;;;;;;;;;:::i;:::-;;;;;;;;7746:4;7739:11;;;;;6400:1358;;;;;:::o;1003:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4843:1461::-;5013:23;5048:22;5080:5;5048:38;;5097:37;5137:15;:25;;;5171:4;5137:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5097:80;;5188:15;:28;;;5217:10;5237:4;5244:21;5188:78;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5277:36;5316:15;:25;;;5350:4;5316:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5277:79;;5408:56;5442:21;5408:29;:33;;:56;;;;:::i;:::-;5375:28;:90;;5367:167;;;;;;;;;;;;:::i;:::-;;;;;;;;;5619:1;5548:9;:17;5558:6;5548:17;;;;;;;;;;;;;;;:24;5566:5;5548:24;;;;;;;;;;;;;;;:38;5573:12;5548:38;;;;;;;;;;;;;;;:51;5587:11;5548:51;;;;;;;;;;;:60;5600:7;5548:60;;;;;;;;;;;:68;5609:6;5548:68;;;;;;;;;;;;:72;5545:402;;;5707:21;5636:9;:17;5646:6;5636:17;;;;;;;;;;;;;;;:24;5654:5;5636:24;;;;;;;;;;;;;;;:38;5661:12;5636:38;;;;;;;;;;;;;;;:51;5675:11;5636:51;;;;;;;;;;;:60;5688:7;5636:60;;;;;;;;;;;:68;5697:6;5636:68;;;;;;;;;;;:92;;;;5545:402;;;5840:95;5913:21;5840:9;:17;5850:6;5840:17;;;;;;;;;;;;;;;:24;5858:5;5840:24;;;;;;;;;;;;;;;:38;5865:12;5840:38;;;;;;;;;;;;;;;:51;5879:11;5840:51;;;;;;;;;;;:60;5892:7;5840:60;;;;;;;;;;;:68;5901:6;5840:68;;;;;;;;;;;;:72;;:95;;;;:::i;:::-;5769:9;:17;5779:6;5769:17;;;;;;;;;;;;;;;:24;5787:5;5769:24;;;;;;;;;;;;;;;:38;5794:12;5769:38;;;;;;;;;;;;;;;:51;5808:11;5769:51;;;;;;;;;;;:60;5821:7;5769:60;;;;;;;;;;;:68;5830:6;5769:68;;;;;;;;;;;:166;;;;5545:402;5971:18;5987:1;5971:11;;:15;;:18;;;;:::i;:::-;5957:11;:32;;;;6028:116;;;;;;;;6040:6;6028:116;;;;;;6048:5;6028:116;;;;;;6055:12;6028:116;;;;;;6069:11;6028:116;;;;6082:7;6028:116;;;;6091:6;6028:116;;;;6099:21;6028:116;;;;6122:15;6028:116;;;;6139:4;6028:116;;;;;6000:12;:25;6013:11;;6000:25;;;;;;;;;;;:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6160:107;6173:6;6181:5;6188:12;6202:11;6215:7;6224:6;6232:21;6255:11;;6160:107;;;;;;;;;;;;;:::i;:::-;;;;;;;;6285:11;;6278:18;;;;;4843:1461;;;;;;;;;:::o;10632:381::-;10808:4;10898:16;10827:9;:17;10837:6;10827:17;;;;;;;;;;;;;;;:24;10845:5;10827:24;;;;;;;;;;;;;;;:38;10852:12;10827:38;;;;;;;;;;;;;;;:51;10866:11;10827:51;;;;;;;;;;;:60;10879:7;10827:60;;;;;;;;;;;:68;10888:6;10827:68;;;;;;;;;;;;:87;10824:182;;10937:4;10930:11;;;;10824:182;10989:5;10982:12;;10632:381;;;;;;;;;;:::o;11968:468::-;12134:17;12154:37;12163:4;12169:9;12180:10;12154:8;:37::i;:::-;12134:57;;12223:1;12210:9;:14;12202:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12272:6;12260:9;:18;;12252:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12321:45;12331:4;12336:9;12347:6;12355:10;12321:9;:45::i;:::-;12377:51;12385:9;12395:21;12409:6;12395:9;:13;;:21;;;;:::i;:::-;12417:10;12377:7;:51::i;:::-;;11968:468;;;;;:::o;12444:1054::-;12625:6;12588:43;;:15;:27;12604:10;12588:27;;;;;;;;;;;:33;;;;;;;;;;;;:43;;;12580:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12735:6;12684:15;:27;12700:10;12684:27;;;;;;;;;;;:49;;;:57;;12676:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;12786:29;12818:15;:27;12834:10;12818:27;;;;;;;;;;;12786:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12865:7;:17;;;12864:18;12856:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13024:103;13120:6;13024:9;:17;13034:6;13024:17;;;;;;;;;;;;;;;:32;13042:7;:13;;;13024:32;;;;;;;;;;;;;;;:54;13057:7;:20;;;13024:54;;;;;;;;;;;;;;;:75;13079:7;:19;;;13024:75;;;;;;;;;;;:91;13100:7;:14;;;13024:91;;;;;;;;;;;;:95;;:103;;;;:::i;:::-;12932:9;:17;12942:6;12932:17;;;;;;;;;;;;;;;:32;12950:7;:13;;;12932:32;;;;;;;;;;;;;;;:54;12965:7;:20;;;12932:54;;;;;;;;;;;;;;;:75;12987:7;:19;;;12932:75;;;;;;;;;;;:91;13008:7;:14;;;12932:91;;;;;;;;;;;:195;;;;13267:106;13366:6;13267:9;:20;13277:9;13267:20;;;;;;;;;;;;;;;:35;13288:7;:13;;;13267:35;;;;;;;;;;;;;;;:57;13303:7;:20;;;13267:57;;;;;;;;;;;;;;;:78;13325:7;:19;;;13267:78;;;;;;;;;;;:94;13346:7;:14;;;13267:94;;;;;;;;;;;;:98;;:106;;;;:::i;:::-;13172:9;:20;13182:9;13172:20;;;;;;;;;;;;;;;:35;13193:7;:13;;;13172:35;;;;;;;;;;;;;;;:57;13208:7;:20;;;13172:57;;;;;;;;;;;;;;;:78;13230:7;:19;;;13172:78;;;;;;;;;;;:94;13251:7;:14;;;13172:94;;;;;;;;;;;:201;;;;13443:9;13426:64;;13435:6;13426:64;;;13454:6;13462:10;13474:15;13426:64;;;;;;;;:::i;:::-;;;;;;;;12444:1054;;;;;:::o;3501:98:4:-;3559:7;3590:1;3586;:5;;;;:::i;:::-;3579:12;;3501:98;;;;:::o;3144:::-;3202:7;3233:1;3229;:5;;;;:::i;:::-;3222:12;;3144:98;;;;:::o;2763:::-;2821:7;2852:1;2848;:5;;;;:::i;:::-;2841:12;;2763:98;;;;:::o;24:622:6:-;;145:80;160:64;217:6;160:64;:::i;:::-;145:80;:::i;:::-;136:89;;245:5;273:6;266:5;259:21;299:4;292:5;288:16;281:23;;324:6;374:3;366:4;358:6;354:17;349:3;345:27;342:36;339:2;;;391:1;388;381:12;339:2;419:1;404:236;429:6;426:1;423:13;404:236;;;496:3;524:37;557:3;545:10;524:37;:::i;:::-;519:3;512:50;591:4;586:3;582:14;575:21;;625:4;620:3;616:14;609:21;;464:176;451:1;448;444:9;439:14;;404:236;;;408:14;126:520;;;;;;;:::o;652:139::-;;736:6;723:20;714:29;;752:33;779:5;752:33;:::i;:::-;704:87;;;;:::o;814:303::-;;934:3;927:4;919:6;915:17;911:27;901:2;;952:1;949;942:12;901:2;992:6;979:20;1017:94;1107:3;1099:6;1092:4;1084:6;1080:17;1017:94;:::i;:::-;1008:103;;891:226;;;;;:::o;1123:133::-;;1204:6;1191:20;1182:29;;1220:30;1244:5;1220:30;:::i;:::-;1172:84;;;;:::o;1262:137::-;;1347:6;1341:13;1332:22;;1363:30;1387:5;1363:30;:::i;:::-;1322:77;;;;:::o;1405:139::-;;1489:6;1476:20;1467:29;;1505:33;1532:5;1505:33;:::i;:::-;1457:87;;;;:::o;1550:143::-;;1638:6;1632:13;1623:22;;1654:33;1681:5;1654:33;:::i;:::-;1613:80;;;;:::o;1699:262::-;;1807:2;1795:9;1786:7;1782:23;1778:32;1775:2;;;1823:1;1820;1813:12;1775:2;1866:1;1891:53;1936:7;1927:6;1916:9;1912:22;1891:53;:::i;:::-;1881:63;;1837:117;1765:196;;;;:::o;1967:1276::-;;;;;;;;;2191:3;2179:9;2170:7;2166:23;2162:33;2159:2;;;2208:1;2205;2198:12;2159:2;2251:1;2276:53;2321:7;2312:6;2301:9;2297:22;2276:53;:::i;:::-;2266:63;;2222:117;2378:2;2404:53;2449:7;2440:6;2429:9;2425:22;2404:53;:::i;:::-;2394:63;;2349:118;2506:2;2532:53;2577:7;2568:6;2557:9;2553:22;2532:53;:::i;:::-;2522:63;;2477:118;2634:2;2660:50;2702:7;2693:6;2682:9;2678:22;2660:50;:::i;:::-;2650:60;;2605:115;2759:3;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2730:119;2888:3;2915:53;2960:7;2951:6;2940:9;2936:22;2915:53;:::i;:::-;2905:63;;2859:119;3017:3;3044:53;3089:7;3080:6;3069:9;3065:22;3044:53;:::i;:::-;3034:63;;2988:119;3146:3;3173:53;3218:7;3209:6;3198:9;3194:22;3173:53;:::i;:::-;3163:63;;3117:119;2149:1094;;;;;;;;;;;:::o;3249:838::-;;;;;;3422:3;3410:9;3401:7;3397:23;3393:33;3390:2;;;3439:1;3436;3429:12;3390:2;3482:1;3507:53;3552:7;3543:6;3532:9;3528:22;3507:53;:::i;:::-;3497:63;;3453:117;3609:2;3635:53;3680:7;3671:6;3660:9;3656:22;3635:53;:::i;:::-;3625:63;;3580:118;3737:2;3763:50;3805:7;3796:6;3785:9;3781:22;3763:50;:::i;:::-;3753:60;;3708:115;3862:2;3888:53;3933:7;3924:6;3913:9;3909:22;3888:53;:::i;:::-;3878:63;;3833:118;3990:3;4017:53;4062:7;4053:6;4042:9;4038:22;4017:53;:::i;:::-;4007:63;;3961:119;3380:707;;;;;;;;:::o;4093:984::-;;;;;;;4283:3;4271:9;4262:7;4258:23;4254:33;4251:2;;;4300:1;4297;4290:12;4251:2;4343:1;4368:53;4413:7;4404:6;4393:9;4389:22;4368:53;:::i;:::-;4358:63;;4314:117;4470:2;4496:53;4541:7;4532:6;4521:9;4517:22;4496:53;:::i;:::-;4486:63;;4441:118;4598:2;4624:50;4666:7;4657:6;4646:9;4642:22;4624:50;:::i;:::-;4614:60;;4569:115;4723:2;4749:53;4794:7;4785:6;4774:9;4770:22;4749:53;:::i;:::-;4739:63;;4694:118;4851:3;4878:53;4923:7;4914:6;4903:9;4899:22;4878:53;:::i;:::-;4868:63;;4822:119;4980:3;5007:53;5052:7;5043:6;5032:9;5028:22;5007:53;:::i;:::-;4997:63;;4951:119;4241:836;;;;;;;;:::o;5083:1130::-;;;;;;;;5290:3;5278:9;5269:7;5265:23;5261:33;5258:2;;;5307:1;5304;5297:12;5258:2;5350:1;5375:53;5420:7;5411:6;5400:9;5396:22;5375:53;:::i;:::-;5365:63;;5321:117;5477:2;5503:53;5548:7;5539:6;5528:9;5524:22;5503:53;:::i;:::-;5493:63;;5448:118;5605:2;5631:50;5673:7;5664:6;5653:9;5649:22;5631:50;:::i;:::-;5621:60;;5576:115;5730:2;5756:53;5801:7;5792:6;5781:9;5777:22;5756:53;:::i;:::-;5746:63;;5701:118;5858:3;5885:53;5930:7;5921:6;5910:9;5906:22;5885:53;:::i;:::-;5875:63;;5829:119;5987:3;6014:53;6059:7;6050:6;6039:9;6035:22;6014:53;:::i;:::-;6004:63;;5958:119;6116:3;6143:53;6188:7;6179:6;6168:9;6164:22;6143:53;:::i;:::-;6133:63;;6087:119;5248:965;;;;;;;;;;:::o;6219:552::-;;;;6361:2;6349:9;6340:7;6336:23;6332:32;6329:2;;;6377:1;6374;6367:12;6329:2;6420:1;6445:53;6490:7;6481:6;6470:9;6466:22;6445:53;:::i;:::-;6435:63;;6391:117;6547:2;6573:53;6618:7;6609:6;6598:9;6594:22;6573:53;:::i;:::-;6563:63;;6518:118;6675:2;6701:53;6746:7;6737:6;6726:9;6722:22;6701:53;:::i;:::-;6691:63;;6646:118;6319:452;;;;;:::o;6777:698::-;;;;;6936:3;6924:9;6915:7;6911:23;6907:33;6904:2;;;6953:1;6950;6943:12;6904:2;6996:1;7021:53;7066:7;7057:6;7046:9;7042:22;7021:53;:::i;:::-;7011:63;;6967:117;7123:2;7149:53;7194:7;7185:6;7174:9;7170:22;7149:53;:::i;:::-;7139:63;;7094:118;7251:2;7277:53;7322:7;7313:6;7302:9;7298:22;7277:53;:::i;:::-;7267:63;;7222:118;7379:2;7405:53;7450:7;7441:6;7430:9;7426:22;7405:53;:::i;:::-;7395:63;;7350:118;6894:581;;;;;;;:::o;7481:552::-;;;;7623:2;7611:9;7602:7;7598:23;7594:32;7591:2;;;7639:1;7636;7629:12;7591:2;7682:1;7707:53;7752:7;7743:6;7732:9;7728:22;7707:53;:::i;:::-;7697:63;;7653:117;7809:2;7835:53;7880:7;7871:6;7860:9;7856:22;7835:53;:::i;:::-;7825:63;;7780:118;7937:2;7963:53;8008:7;7999:6;7988:9;7984:22;7963:53;:::i;:::-;7953:63;;7908:118;7581:452;;;;;:::o;8039:405::-;;8172:2;8160:9;8151:7;8147:23;8143:32;8140:2;;;8188:1;8185;8178:12;8140:2;8259:1;8248:9;8244:17;8231:31;8289:18;8281:6;8278:30;8275:2;;;8321:1;8318;8311:12;8275:2;8349:78;8419:7;8410:6;8399:9;8395:22;8349:78;:::i;:::-;8339:88;;8202:235;8130:314;;;;:::o;8450:278::-;;8566:2;8554:9;8545:7;8541:23;8537:32;8534:2;;;8582:1;8579;8572:12;8534:2;8625:1;8650:61;8703:7;8694:6;8683:9;8679:22;8650:61;:::i;:::-;8640:71;;8596:125;8524:204;;;;:::o;8734:262::-;;8842:2;8830:9;8821:7;8817:23;8813:32;8810:2;;;8858:1;8855;8848:12;8810:2;8901:1;8926:53;8971:7;8962:6;8951:9;8947:22;8926:53;:::i;:::-;8916:63;;8872:117;8800:196;;;;:::o;9002:284::-;;9121:2;9109:9;9100:7;9096:23;9092:32;9089:2;;;9137:1;9134;9127:12;9089:2;9180:1;9205:64;9261:7;9252:6;9241:9;9237:22;9205:64;:::i;:::-;9195:74;;9151:128;9079:207;;;;:::o;9292:118::-;9379:24;9397:5;9379:24;:::i;:::-;9374:3;9367:37;9357:53;;:::o;9416:109::-;9497:21;9512:5;9497:21;:::i;:::-;9492:3;9485:34;9475:50;;:::o;9531:367::-;;9694:67;9758:2;9753:3;9694:67;:::i;:::-;9687:74;;9791:34;9787:1;9782:3;9778:11;9771:55;9857:5;9852:2;9847:3;9843:12;9836:27;9889:2;9884:3;9880:12;9873:19;;9677:221;;;:::o;9904:371::-;;10067:67;10131:2;10126:3;10067:67;:::i;:::-;10060:74;;10164:34;10160:1;10155:3;10151:11;10144:55;10230:9;10225:2;10220:3;10216:12;10209:31;10266:2;10261:3;10257:12;10250:19;;10050:225;;;:::o;10281:328::-;;10444:67;10508:2;10503:3;10444:67;:::i;:::-;10437:74;;10541:32;10537:1;10532:3;10528:11;10521:53;10600:2;10595:3;10591:12;10584:19;;10427:182;;;:::o;10615:396::-;;10778:67;10842:2;10837:3;10778:67;:::i;:::-;10771:74;;10875:34;10871:1;10866:3;10862:11;10855:55;10941:34;10936:2;10931:3;10927:12;10920:56;11002:2;10997:3;10993:12;10986:19;;10761:250;;;:::o;11017:328::-;;11180:67;11244:2;11239:3;11180:67;:::i;:::-;11173:74;;11277:32;11273:1;11268:3;11264:11;11257:53;11336:2;11331:3;11327:12;11320:19;;11163:182;;;:::o;11351:437::-;;11514:67;11578:2;11573:3;11514:67;:::i;:::-;11507:74;;11611:34;11607:1;11602:3;11598:11;11591:55;11677:34;11672:2;11667:3;11663:12;11656:56;11743:9;11738:2;11733:3;11729:12;11722:31;11779:2;11774:3;11770:12;11763:19;;11497:291;;;:::o;11794:310::-;;11957:67;12021:2;12016:3;11957:67;:::i;:::-;11950:74;;12054:14;12050:1;12045:3;12041:11;12034:35;12095:2;12090:3;12086:12;12079:19;;11940:164;;;:::o;12110:376::-;;12273:67;12337:2;12332:3;12273:67;:::i;:::-;12266:74;;12370:34;12366:1;12361:3;12357:11;12350:55;12436:14;12431:2;12426:3;12422:12;12415:36;12477:2;12472:3;12468:12;12461:19;;12256:230;;;:::o;12492:328::-;;12655:67;12719:2;12714:3;12655:67;:::i;:::-;12648:74;;12752:32;12748:1;12743:3;12739:11;12732:53;12811:2;12806:3;12802:12;12795:19;;12638:182;;;:::o;12826:328::-;;12989:67;13053:2;13048:3;12989:67;:::i;:::-;12982:74;;13086:32;13082:1;13077:3;13073:11;13066:53;13145:2;13140:3;13136:12;13129:19;;12972:182;;;:::o;13160:326::-;;13323:67;13387:2;13382:3;13323:67;:::i;:::-;13316:74;;13420:30;13416:1;13411:3;13407:11;13400:51;13477:2;13472:3;13468:12;13461:19;;13306:180;;;:::o;13492:367::-;;13655:67;13719:2;13714:3;13655:67;:::i;:::-;13648:74;;13752:34;13748:1;13743:3;13739:11;13732:55;13818:5;13813:2;13808:3;13804:12;13797:27;13850:2;13845:3;13841:12;13834:19;;13638:221;;;:::o;13865:387::-;;14028:67;14092:2;14087:3;14028:67;:::i;:::-;14021:74;;14125:34;14121:1;14116:3;14112:11;14105:55;14191:25;14186:2;14181:3;14177:12;14170:47;14243:2;14238:3;14234:12;14227:19;;14011:241;;;:::o;14258:443::-;;14421:67;14485:2;14480:3;14421:67;:::i;:::-;14414:74;;14518:34;14514:1;14509:3;14505:11;14498:55;14584:34;14579:2;14574:3;14570:12;14563:56;14650:15;14645:2;14640:3;14636:12;14629:37;14692:2;14687:3;14683:12;14676:19;;14404:297;;;:::o;14707:462::-;;14870:67;14934:2;14929:3;14870:67;:::i;:::-;14863:74;;14967:34;14963:1;14958:3;14954:11;14947:55;15033:34;15028:2;15023:3;15019:12;15012:56;15099:34;15094:2;15089:3;15085:12;15078:56;15160:2;15155:3;15151:12;15144:19;;14853:316;;;:::o;15175:448::-;;15338:67;15402:2;15397:3;15338:67;:::i;:::-;15331:74;;15435:34;15431:1;15426:3;15422:11;15415:55;15501:34;15496:2;15491:3;15487:12;15480:56;15567:20;15562:2;15557:3;15553:12;15546:42;15614:2;15609:3;15605:12;15598:19;;15321:302;;;:::o;15629:377::-;;15792:67;15856:2;15851:3;15792:67;:::i;:::-;15785:74;;15889:34;15885:1;15880:3;15876:11;15869:55;15955:15;15950:2;15945:3;15941:12;15934:37;15997:2;15992:3;15988:12;15981:19;;15775:231;;;:::o;16012:118::-;16099:24;16117:5;16099:24;:::i;:::-;16094:3;16087:37;16077:53;;:::o;16136:222::-;;16267:2;16256:9;16252:18;16244:26;;16280:71;16348:1;16337:9;16333:17;16324:6;16280:71;:::i;:::-;16234:124;;;;:::o;16364:1096::-;;16713:3;16702:9;16698:19;16690:27;;16727:71;16795:1;16784:9;16780:17;16771:6;16727:71;:::i;:::-;16808:72;16876:2;16865:9;16861:18;16852:6;16808:72;:::i;:::-;16890;16958:2;16947:9;16943:18;16934:6;16890:72;:::i;:::-;16972:66;17034:2;17023:9;17019:18;17010:6;16972:66;:::i;:::-;17048:73;17116:3;17105:9;17101:19;17092:6;17048:73;:::i;:::-;17131;17199:3;17188:9;17184:19;17175:6;17131:73;:::i;:::-;17214;17282:3;17271:9;17267:19;17258:6;17214:73;:::i;:::-;17297;17365:3;17354:9;17350:19;17341:6;17297:73;:::i;:::-;17380;17448:3;17437:9;17433:19;17424:6;17380:73;:::i;:::-;16680:780;;;;;;;;;;;;:::o;17466:1308::-;;17866:3;17855:9;17851:19;17843:27;;17880:71;17948:1;17937:9;17933:17;17924:6;17880:71;:::i;:::-;17961:72;18029:2;18018:9;18014:18;18005:6;17961:72;:::i;:::-;18043;18111:2;18100:9;18096:18;18087:6;18043:72;:::i;:::-;18125:66;18187:2;18176:9;18172:18;18163:6;18125:66;:::i;:::-;18201:73;18269:3;18258:9;18254:19;18245:6;18201:73;:::i;:::-;18284;18352:3;18341:9;18337:19;18328:6;18284:73;:::i;:::-;18367;18435:3;18424:9;18420:19;18411:6;18367:73;:::i;:::-;18450;18518:3;18507:9;18503:19;18494:6;18450:73;:::i;:::-;18533;18601:3;18590:9;18586:19;18577:6;18533:73;:::i;:::-;18616;18684:3;18673:9;18669:19;18660:6;18616:73;:::i;:::-;18699:68;18762:3;18751:9;18747:19;18737:7;18699:68;:::i;:::-;17833:941;;;;;;;;;;;;;;:::o;18780:985::-;;19101:3;19090:9;19086:19;19078:27;;19115:71;19183:1;19172:9;19168:17;19159:6;19115:71;:::i;:::-;19196:72;19264:2;19253:9;19249:18;19240:6;19196:72;:::i;:::-;19278:66;19340:2;19329:9;19325:18;19316:6;19278:66;:::i;:::-;19354:72;19422:2;19411:9;19407:18;19398:6;19354:72;:::i;:::-;19436:73;19504:3;19493:9;19489:19;19480:6;19436:73;:::i;:::-;19519;19587:3;19576:9;19572:19;19563:6;19519:73;:::i;:::-;19602;19670:3;19659:9;19655:19;19646:6;19602:73;:::i;:::-;19685;19753:3;19742:9;19738:19;19729:6;19685:73;:::i;:::-;19068:697;;;;;;;;;;;:::o;19771:1084::-;;20114:3;20103:9;20099:19;20091:27;;20128:71;20196:1;20185:9;20181:17;20172:6;20128:71;:::i;:::-;20209:72;20277:2;20266:9;20262:18;20253:6;20209:72;:::i;:::-;20291:66;20353:2;20342:9;20338:18;20329:6;20291:66;:::i;:::-;20367:72;20435:2;20424:9;20420:18;20411:6;20367:72;:::i;:::-;20449:73;20517:3;20506:9;20502:19;20493:6;20449:73;:::i;:::-;20532;20600:3;20589:9;20585:19;20576:6;20532:73;:::i;:::-;20615;20683:3;20672:9;20668:19;20659:6;20615:73;:::i;:::-;20698;20766:3;20755:9;20751:19;20742:6;20698:73;:::i;:::-;20781:67;20843:3;20832:9;20828:19;20819:6;20781:67;:::i;:::-;20081:774;;;;;;;;;;;;:::o;20861:442::-;;21048:2;21037:9;21033:18;21025:26;;21061:71;21129:1;21118:9;21114:17;21105:6;21061:71;:::i;:::-;21142:72;21210:2;21199:9;21195:18;21186:6;21142:72;:::i;:::-;21224;21292:2;21281:9;21277:18;21268:6;21224:72;:::i;:::-;21015:288;;;;;;:::o;21309:332::-;;21468:2;21457:9;21453:18;21445:26;;21481:71;21549:1;21538:9;21534:17;21525:6;21481:71;:::i;:::-;21562:72;21630:2;21619:9;21615:18;21606:6;21562:72;:::i;:::-;21435:206;;;;;:::o;21647:210::-;;21772:2;21761:9;21757:18;21749:26;;21785:65;21847:1;21836:9;21832:17;21823:6;21785:65;:::i;:::-;21739:118;;;;:::o;21863:419::-;;22067:2;22056:9;22052:18;22044:26;;22116:9;22110:4;22106:20;22102:1;22091:9;22087:17;22080:47;22144:131;22270:4;22144:131;:::i;:::-;22136:139;;22034:248;;;:::o;22288:419::-;;22492:2;22481:9;22477:18;22469:26;;22541:9;22535:4;22531:20;22527:1;22516:9;22512:17;22505:47;22569:131;22695:4;22569:131;:::i;:::-;22561:139;;22459:248;;;:::o;22713:419::-;;22917:2;22906:9;22902:18;22894:26;;22966:9;22960:4;22956:20;22952:1;22941:9;22937:17;22930:47;22994:131;23120:4;22994:131;:::i;:::-;22986:139;;22884:248;;;:::o;23138:419::-;;23342:2;23331:9;23327:18;23319:26;;23391:9;23385:4;23381:20;23377:1;23366:9;23362:17;23355:47;23419:131;23545:4;23419:131;:::i;:::-;23411:139;;23309:248;;;:::o;23563:419::-;;23767:2;23756:9;23752:18;23744:26;;23816:9;23810:4;23806:20;23802:1;23791:9;23787:17;23780:47;23844:131;23970:4;23844:131;:::i;:::-;23836:139;;23734:248;;;:::o;23988:419::-;;24192:2;24181:9;24177:18;24169:26;;24241:9;24235:4;24231:20;24227:1;24216:9;24212:17;24205:47;24269:131;24395:4;24269:131;:::i;:::-;24261:139;;24159:248;;;:::o;24413:419::-;;24617:2;24606:9;24602:18;24594:26;;24666:9;24660:4;24656:20;24652:1;24641:9;24637:17;24630:47;24694:131;24820:4;24694:131;:::i;:::-;24686:139;;24584:248;;;:::o;24838:419::-;;25042:2;25031:9;25027:18;25019:26;;25091:9;25085:4;25081:20;25077:1;25066:9;25062:17;25055:47;25119:131;25245:4;25119:131;:::i;:::-;25111:139;;25009:248;;;:::o;25263:419::-;;25467:2;25456:9;25452:18;25444:26;;25516:9;25510:4;25506:20;25502:1;25491:9;25487:17;25480:47;25544:131;25670:4;25544:131;:::i;:::-;25536:139;;25434:248;;;:::o;25688:419::-;;25892:2;25881:9;25877:18;25869:26;;25941:9;25935:4;25931:20;25927:1;25916:9;25912:17;25905:47;25969:131;26095:4;25969:131;:::i;:::-;25961:139;;25859:248;;;:::o;26113:419::-;;26317:2;26306:9;26302:18;26294:26;;26366:9;26360:4;26356:20;26352:1;26341:9;26337:17;26330:47;26394:131;26520:4;26394:131;:::i;:::-;26386:139;;26284:248;;;:::o;26538:419::-;;26742:2;26731:9;26727:18;26719:26;;26791:9;26785:4;26781:20;26777:1;26766:9;26762:17;26755:47;26819:131;26945:4;26819:131;:::i;:::-;26811:139;;26709:248;;;:::o;26963:419::-;;27167:2;27156:9;27152:18;27144:26;;27216:9;27210:4;27206:20;27202:1;27191:9;27187:17;27180:47;27244:131;27370:4;27244:131;:::i;:::-;27236:139;;27134:248;;;:::o;27388:419::-;;27592:2;27581:9;27577:18;27569:26;;27641:9;27635:4;27631:20;27627:1;27616:9;27612:17;27605:47;27669:131;27795:4;27669:131;:::i;:::-;27661:139;;27559:248;;;:::o;27813:419::-;;28017:2;28006:9;28002:18;27994:26;;28066:9;28060:4;28056:20;28052:1;28041:9;28037:17;28030:47;28094:131;28220:4;28094:131;:::i;:::-;28086:139;;27984:248;;;:::o;28238:419::-;;28442:2;28431:9;28427:18;28419:26;;28491:9;28485:4;28481:20;28477:1;28466:9;28462:17;28455:47;28519:131;28645:4;28519:131;:::i;:::-;28511:139;;28409:248;;;:::o;28663:419::-;;28867:2;28856:9;28852:18;28844:26;;28916:9;28910:4;28906:20;28902:1;28891:9;28887:17;28880:47;28944:131;29070:4;28944:131;:::i;:::-;28936:139;;28834:248;;;:::o;29088:222::-;;29219:2;29208:9;29204:18;29196:26;;29232:71;29300:1;29289:9;29285:17;29276:6;29232:71;:::i;:::-;29186:124;;;;:::o;29316:332::-;;29475:2;29464:9;29460:18;29452:26;;29488:71;29556:1;29545:9;29541:17;29532:6;29488:71;:::i;:::-;29569:72;29637:2;29626:9;29622:18;29613:6;29569:72;:::i;:::-;29442:206;;;;;:::o;29654:442::-;;29841:2;29830:9;29826:18;29818:26;;29854:71;29922:1;29911:9;29907:17;29898:6;29854:71;:::i;:::-;29935:72;30003:2;29992:9;29988:18;29979:6;29935:72;:::i;:::-;30017;30085:2;30074:9;30070:18;30061:6;30017:72;:::i;:::-;29808:288;;;;;;:::o;30102:283::-;;30168:2;30162:9;30152:19;;30210:4;30202:6;30198:17;30317:6;30305:10;30302:22;30281:18;30269:10;30266:34;30263:62;30260:2;;;30328:18;;:::i;:::-;30260:2;30368:10;30364:2;30357:22;30142:243;;;;:::o;30391:311::-;;30558:18;30550:6;30547:30;30544:2;;;30580:18;;:::i;:::-;30544:2;30630:4;30622:6;30618:17;30610:25;;30690:4;30684;30680:15;30672:23;;30473:229;;;:::o;30708:169::-;;30826:6;30821:3;30814:19;30866:4;30861:3;30857:14;30842:29;;30804:73;;;;:::o;30883:305::-;;30942:20;30960:1;30942:20;:::i;:::-;30937:25;;30976:20;30994:1;30976:20;:::i;:::-;30971:25;;31130:1;31062:66;31058:74;31055:1;31052:81;31049:2;;;31136:18;;:::i;:::-;31049:2;31180:1;31177;31173:9;31166:16;;30927:261;;;;:::o;31194:348::-;;31257:20;31275:1;31257:20;:::i;:::-;31252:25;;31291:20;31309:1;31291:20;:::i;:::-;31286:25;;31479:1;31411:66;31407:74;31404:1;31401:81;31396:1;31389:9;31382:17;31378:105;31375:2;;;31486:18;;:::i;:::-;31375:2;31534:1;31531;31527:9;31516:20;;31242:300;;;;:::o;31548:191::-;;31608:20;31626:1;31608:20;:::i;:::-;31603:25;;31642:20;31660:1;31642:20;:::i;:::-;31637:25;;31681:1;31678;31675:8;31672:2;;;31686:18;;:::i;:::-;31672:2;31731:1;31728;31724:9;31716:17;;31593:146;;;;:::o;31745:96::-;;31811:24;31829:5;31811:24;:::i;:::-;31800:35;;31790:51;;;:::o;31847:90::-;;31924:5;31917:13;31910:21;31899:32;;31889:48;;;:::o;31943:126::-;;32020:42;32013:5;32009:54;31998:65;;31988:81;;;:::o;32075:77::-;;32141:5;32130:16;;32120:32;;;:::o;32158:233::-;;32220:24;32238:5;32220:24;:::i;:::-;32211:33;;32266:66;32259:5;32256:77;32253:2;;;32336:18;;:::i;:::-;32253:2;32383:1;32376:5;32372:13;32365:20;;32201:190;;;:::o;32397:180::-;32445:77;32442:1;32435:88;32542:4;32539:1;32532:15;32566:4;32563:1;32556:15;32583:180;32631:77;32628:1;32621:88;32728:4;32725:1;32718:15;32752:4;32749:1;32742:15;32769:122;32842:24;32860:5;32842:24;:::i;:::-;32835:5;32832:35;32822:2;;32881:1;32878;32871:12;32822:2;32812:79;:::o;32897:116::-;32967:21;32982:5;32967:21;:::i;:::-;32960:5;32957:32;32947:2;;33003:1;33000;32993:12;32947:2;32937:76;:::o;33019:122::-;33092:24;33110:5;33092:24;:::i;:::-;33085:5;33082:35;33072:2;;33131:1;33128;33121:12;33072:2;33062:79;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "3431000", + "executionCost": "76432", + "totalCost": "3507432" + }, + "external": { + "": "197", + "approval(address,address,uint256)": "infinite", + "approve(address,uint256,uint256)": "infinite", + "buyOptionByExactPremiumAndExpiry(address,address,address,bool,uint256,uint256,uint256,uint256)": "infinite", + "buyOptionByID(address,uint256,uint256)": "infinite", + "cancelOptionOffer(uint256)": "infinite", + "daiTokenAddress()": "1259", + "excersizeOption(uint256)": "infinite", + "excersizeOptions(uint256[])": "infinite", + "isOptionBuyable(address,address,bool,uint256,uint256,uint256,uint256)": "infinite", + "optionOffers(uint256)": "infinite", + "optionPurchases(uint256)": "infinite", + "orderbook(address,address,bool,uint256,uint256,uint256)": "infinite", + "positions(address,address,bool,uint256,uint256)": "infinite", + "sellOption(address,address,bool,uint256,uint256,uint256,uint256)": "infinite", + "tokenActivated(address)": "1612", + "transfer(address,uint256,uint256)": "infinite", + "transferFrom(address,address,uint256,uint256)": "infinite" + }, + "internal": { + "_transfer(address,address,uint256,uint256)": "infinite" + } + }, + "methodIdentifiers": { + "approval(address,address,uint256)": "5c52a5f2", + "approve(address,uint256,uint256)": "426a8493", + "buyOptionByExactPremiumAndExpiry(address,address,address,bool,uint256,uint256,uint256,uint256)": "7d4c82ca", + "buyOptionByID(address,uint256,uint256)": "871f179f", + "cancelOptionOffer(uint256)": "0afc7854", + "daiTokenAddress()": "2eaee35e", + "excersizeOption(uint256)": "23cfbf1a", + "excersizeOptions(uint256[])": "86468c42", + "isOptionBuyable(address,address,bool,uint256,uint256,uint256,uint256)": "f789271c", + "optionOffers(uint256)": "00b4fa3e", + "optionPurchases(uint256)": "188783d6", + "orderbook(address,address,bool,uint256,uint256,uint256)": "e289ae81", + "positions(address,address,bool,uint256,uint256)": "84d62178", + "sellOption(address,address,bool,uint256,uint256,uint256,uint256)": "e57fcc20", + "tokenActivated(address)": "2f3f7d7f", + "transfer(address,uint256,uint256)": "095bcdb6", + "transferFrom(address,address,uint256,uint256)": "fe99049a" + } + }, + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "optionId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "excersizeCost", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "OptionExcersize", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountSelling", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "orderId", + "type": "uint256" + } + ], + "name": "OptionOffer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "OptionPurchase", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "designee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "approval", + "outputs": [ + { + "internalType": "uint256", + "name": "approvalAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "designee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + } + ], + "name": "buyOptionByExactPremiumAndExpiry", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "offerId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + } + ], + "name": "buyOptionByID", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "offerId", + "type": "uint256" + } + ], + "name": "cancelOptionOffer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "daiTokenAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "excersizeOption", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "purchaseIds", + "type": "uint256[]" + } + ], + "name": "excersizeOptions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + } + ], + "name": "isOptionBuyable", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "optionOffers", + "outputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountUnderlyingToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "offeredTimestamp", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isStillValid", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "optionPurchases", + "outputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountUnderlyingToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "offerId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchasedTimestamp", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "exercized", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "orderbook", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "positions", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountUnderlyingToken", + "type": "uint256" + } + ], + "name": "sellOption", + "outputs": [ + { + "internalType": "uint256", + "name": "orderIdentifier", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "tokenActivated", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/contracts/artifacts/Core_metadata.json b/contracts/artifacts/Core_metadata.json new file mode 100644 index 0000000..5796faa --- /dev/null +++ b/contracts/artifacts/Core_metadata.json @@ -0,0 +1,888 @@ +{ + "compiler": { + "version": "0.8.0+commit.c7dfd78e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "optionId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "excersizeCost", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "OptionExcersize", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountSelling", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "orderId", + "type": "uint256" + } + ], + "name": "OptionOffer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "OptionPurchase", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "designee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "approval", + "outputs": [ + { + "internalType": "uint256", + "name": "approvalAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "designee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + } + ], + "name": "buyOptionByExactPremiumAndExpiry", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "offerId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + } + ], + "name": "buyOptionByID", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "offerId", + "type": "uint256" + } + ], + "name": "cancelOptionOffer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "daiTokenAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "excersizeOption", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "purchaseIds", + "type": "uint256[]" + } + ], + "name": "excersizeOptions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountPurchasing", + "type": "uint256" + } + ], + "name": "isOptionBuyable", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "optionOffers", + "outputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountUnderlyingToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "offeredTimestamp", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isStillValid", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "optionPurchases", + "outputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountUnderlyingToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "offerId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchasedTimestamp", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "exercized", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "orderbook", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "positions", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "isCallOption", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountUnderlyingToken", + "type": "uint256" + } + ], + "name": "sellOption", + "outputs": [ + { + "internalType": "uint256", + "name": "orderIdentifier", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "tokenActivated", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/optionsmarket.sol": "Core" + }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "@openzeppelin/contracts/security/ReentrancyGuard.sol": { + "keccak256": "0x05647901ef5058bfdc78575b73d5354198828f1a8f17328adcdac52285c988b8", + "license": "MIT", + "urls": [ + "bzz-raw://0a9b85fc71ff2d5a9601de0676253a97bcea4bf975edfe28f71ee6738238c2a8", + "dweb:/ipfs/QmcvvBHLNcQCAupMuwuj6LiqVgis7tj2DaET8fjfUWqdsv" + ] + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x86c14973ef3c7c92e70f12a3ac006b493b6c1113ce1da734ab42bbc0a6b513e2", + "license": "MIT", + "urls": [ + "bzz-raw://1782d170cef01249659816b77815d16efb0685a2645d0fac8594f9a7e4ad7dc1", + "dweb:/ipfs/QmdrNnPxe2WydfDCUgufK2SkuesSttiAxCaBni6uVmML6Y" + ] + }, + "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { + "keccak256": "0xa445340238c3cbec8e82693c9709f5877d8c9e82c969562d0e6bc63fa0f30961", + "license": "MIT", + "urls": [ + "bzz-raw://6dc5ea56d1569df883046733ae90eb331e93623a59152a0d029300afb49b0a71", + "dweb:/ipfs/QmaMSW63iqPVZJUPjiBV5kxYhUrWbrqrm838KEe2kcj7Fv" + ] + }, + "@openzeppelin/contracts/utils/Address.sol": { + "keccak256": "0x2c035598c90ecd26c00f2b73207b4b4d52e3c46484f6e1380e4f9bb4a43cabc7", + "license": "MIT", + "urls": [ + "bzz-raw://b04637146b14ae894c047c0dbd933c3ebf76898cd895aa881f5ea4d5db337da2", + "dweb:/ipfs/QmZE73N5EvuAch1CX88DePfCgmwjLvKSaFEunjy5UoAuU9" + ] + }, + "@openzeppelin/contracts/utils/math/SafeMath.sol": { + "keccak256": "0xb4978d0030a3586e9df254340fdaeb6feafd04f2f0c25058e71b573bda9012ce", + "license": "MIT", + "urls": [ + "bzz-raw://03544bd906446e796a53bb20182510e05916971db0943d43371a1da2f9375813", + "dweb:/ipfs/QmXDscVEBmzasfLt6azg8zksXRuzEE2XfEyuuUPP4NiK4X" + ] + }, + "contracts/optionsmarket.sol": { + "keccak256": "0xb847df1dd7d34037c5f79183fb2621f6eb57d225934124c413504ccefe128827", + "urls": [ + "bzz-raw://e7d999df32a1e38b49a7b991cefbe79b479a4b5dfbe0753c330b316944053db8", + "dweb:/ipfs/QmaKfBepVVuUDGxKVGck6ka4zh1fwCTjf86JyWs3pTeCXr" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/contracts/artifacts/Dai.json b/contracts/artifacts/Dai.json new file mode 100644 index 0000000..1c2cfbb --- /dev/null +++ b/contracts/artifacts/Dai.json @@ -0,0 +1,4128 @@ +{ + "deploy": { + "VM:-": { + "linkReferences": {}, + "autoDeployLib": true + }, + "main:1": { + "linkReferences": {}, + "autoDeployLib": true + }, + "ropsten:3": { + "linkReferences": {}, + "autoDeployLib": true + }, + "rinkeby:4": { + "linkReferences": {}, + "autoDeployLib": true + }, + "kovan:42": { + "linkReferences": {}, + "autoDeployLib": true + }, + "görli:5": { + "linkReferences": {}, + "autoDeployLib": true + }, + "Custom": { + "linkReferences": {}, + "autoDeployLib": true + } + }, + "data": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506305f5e1006002819055506002546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fd2806100706000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610d88565b60405180910390f35b6100db60048036038101906100d69190610c8b565b610260565b6040516100e89190610d6d565b60405180910390f35b6100f9610352565b6040516101069190610dca565b60405180910390f35b61012960048036038101906101249190610c3c565b61035c565b6040516101369190610d6d565b60405180910390f35b6101476106d7565b6040516101549190610de5565b60405180910390f35b61017760048036038101906101729190610c8b565b6106dc565b005b610193600480360381019061018e9190610bd7565b610824565b6040516101a09190610dca565b60405180910390f35b6101b161086c565b6040516101be9190610d88565b60405180910390f35b6101e160048036038101906101dc9190610c8b565b6108a5565b6040516101ee9190610d6d565b60405180910390f35b610211600480360381019061020c9190610c00565b610a87565b60405161021e9190610dca565b60405180910390f35b6040518060400160405280600381526020017f446169000000000000000000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103409190610dca565b60405180910390a36001905092915050565b6000600254905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156103a957600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561043257600080fd5b610483826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061055482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610625826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c49190610dca565b60405180910390a3600190509392505050565b600381565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390610daa565b60405180910390fd5b806002600082825461075e9190610e1c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107b39190610e1c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108189190610dca565b60405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600381526020017f444149000000000000000000000000000000000000000000000000000000000081525081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156108f257600080fd5b610943826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109d6826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a759190610dca565b60405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115610b47577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183610b539190610e72565b905092915050565b6000808284610b6a9190610e1c565b905083811015610ba3577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8091505092915050565b600081359050610bbc81610f6e565b92915050565b600081359050610bd181610f85565b92915050565b600060208284031215610be957600080fd5b6000610bf784828501610bad565b91505092915050565b60008060408385031215610c1357600080fd5b6000610c2185828601610bad565b9250506020610c3285828601610bad565b9150509250929050565b600080600060608486031215610c5157600080fd5b6000610c5f86828701610bad565b9350506020610c7086828701610bad565b9250506040610c8186828701610bc2565b9150509250925092565b60008060408385031215610c9e57600080fd5b6000610cac85828601610bad565b9250506020610cbd85828601610bc2565b9150509250929050565b610cd081610eb8565b82525050565b6000610ce182610e00565b610ceb8185610e0b565b9350610cfb818560208601610efb565b610d0481610f5d565b840191505092915050565b6000610d1c601f83610e0b565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b610d5881610ee4565b82525050565b610d6781610eee565b82525050565b6000602082019050610d826000830184610cc7565b92915050565b60006020820190508181036000830152610da28184610cd6565b905092915050565b60006020820190508181036000830152610dc381610d0f565b9050919050565b6000602082019050610ddf6000830184610d4f565b92915050565b6000602082019050610dfa6000830184610d5e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e2782610ee4565b9150610e3283610ee4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e6757610e66610f2e565b5b828201905092915050565b6000610e7d82610ee4565b9150610e8883610ee4565b925082821015610e9b57610e9a610f2e565b5b828203905092915050565b6000610eb182610ec4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f19578082015181840152602081019050610efe565b83811115610f28576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b610f7781610ea6565b8114610f8257600080fd5b50565b610f8e81610ee4565b8114610f9957600080fd5b5056fea26469706673582212200316473a35296d6ddc73a43f6b79a1ada7f1f149f70dedc4adae0e49aa5cc41e64736f6c63430008000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH4 0x5F5E100 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x2 SLOAD PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xFD2 DUP1 PUSH2 0x70 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x260 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xC3C JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x6DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xBD7 JUMP JUMPDEST PUSH2 0x824 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x86C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x8A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xC00 JUMP JUMPDEST PUSH2 0xA87 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4461690000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x340 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x483 DUP3 PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x554 DUP3 PUSH1 0x1 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x625 DUP3 PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6C4 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x74C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x743 SWAP1 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x75E SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x818 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4441490000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x943 DUP3 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x9D6 DUP3 PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA75 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0xB47 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP4 PUSH2 0xB53 SWAP2 SWAP1 PUSH2 0xE72 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xBA3 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBBC DUP2 PUSH2 0xF6E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBD1 DUP2 PUSH2 0xF85 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBF7 DUP5 DUP3 DUP6 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC21 DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC32 DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC5F DUP7 DUP3 DUP8 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC70 DUP7 DUP3 DUP8 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xC81 DUP7 DUP3 DUP8 ADD PUSH2 0xBC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCAC DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xCBD DUP6 DUP3 DUP7 ADD PUSH2 0xBC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD0 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCE1 DUP3 PUSH2 0xE00 JUMP JUMPDEST PUSH2 0xCEB DUP2 DUP6 PUSH2 0xE0B JUMP JUMPDEST SWAP4 POP PUSH2 0xCFB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xEFB JUMP JUMPDEST PUSH2 0xD04 DUP2 PUSH2 0xF5D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD1C PUSH1 0x1F DUP4 PUSH2 0xE0B JUMP JUMPDEST SWAP2 POP PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD58 DUP2 PUSH2 0xEE4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xD67 DUP2 PUSH2 0xEEE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD82 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCC7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDA2 DUP2 DUP5 PUSH2 0xCD6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDC3 DUP2 PUSH2 0xD0F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDDF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDFA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD5E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE27 DUP3 PUSH2 0xEE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE32 DUP4 PUSH2 0xEE4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xE67 JUMPI PUSH2 0xE66 PUSH2 0xF2E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7D DUP3 PUSH2 0xEE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE88 DUP4 PUSH2 0xEE4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0xE9B JUMPI PUSH2 0xE9A PUSH2 0xF2E JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB1 DUP3 PUSH2 0xEC4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF19 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEFE JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xF28 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF77 DUP2 PUSH2 0xEA6 JUMP JUMPDEST DUP2 EQ PUSH2 0xF82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xF8E DUP2 PUSH2 0xEE4 JUMP JUMPDEST DUP2 EQ PUSH2 0xF99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB AND SELFBALANCE GASPRICE CALLDATALOAD 0x29 PUSH14 0x6DDC73A43F6B79A1ADA7F1F149F7 0xD 0xED 0xC4 0xAD 0xAE 0xE 0x49 0xAA 0x5C 0xC4 0x1E PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ", + "sourceMap": "560:2366:0:-:0;;;1065:94;;;;;;;;;;1100:9;1085:12;:24;;;;1139:12;;1116:8;:20;1125:10;1116:20;;;;;;;;;;;;;;;:35;;;;560:2366;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:6572:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "204:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "214:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "236:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "223:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "223:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "214:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "279:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "252:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "252:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "182:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "190:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "198:5:1", + "type": "" + } + ], + "src": "152:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "363:196:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "409:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "418:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "421:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "411:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "411:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "411:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "384:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "393:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "380:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "380:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "405:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "376:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "376:32:1" + }, + "nodeType": "YulIf", + "src": "373:2:1" + }, + { + "nodeType": "YulBlock", + "src": "435:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "450:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "454:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "479:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "514:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "525:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "510:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "510:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "534:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "489:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "489:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "479:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "333:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "344:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "356:6:1", + "type": "" + } + ], + "src": "297:262:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "648:324:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "694:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "703:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "706:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "696:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "696:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "696:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "669:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "678:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "665:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "665:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "690:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "661:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "661:32:1" + }, + "nodeType": "YulIf", + "src": "658:2:1" + }, + { + "nodeType": "YulBlock", + "src": "720:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "735:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "749:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "739:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "764:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "799:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "810:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "795:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "795:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "819:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "774:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "774:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "764:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "847:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "862:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "876:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "866:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "892:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "927:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "938:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "923:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "923:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "947:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "902:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "902:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "892:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "610:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "621:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "633:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "641:6:1", + "type": "" + } + ], + "src": "565:407:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1078:452:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1124:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1133:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1136:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1126:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1126:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1126:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1099:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1108:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1095:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1095:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1120:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1091:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1091:32:1" + }, + "nodeType": "YulIf", + "src": "1088:2:1" + }, + { + "nodeType": "YulBlock", + "src": "1150:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1165:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1179:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1169:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1194:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1229:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1240:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1225:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1225:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1249:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1204:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1204:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1194:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1277:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1292:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1306:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1296:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1322:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1357:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1368:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1353:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1353:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1377:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1332:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1332:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1322:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1405:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1420:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1434:2:1", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1424:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1450:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1485:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1496:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1481:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1481:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1505:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1460:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1460:53:1" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1450:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1032:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1043:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1055:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1063:6:1", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1071:6:1", + "type": "" + } + ], + "src": "978:552:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1619:324:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1665:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1674:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1677:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1667:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1667:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1667:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1640:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1649:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1636:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1636:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1661:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1632:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1632:32:1" + }, + "nodeType": "YulIf", + "src": "1629:2:1" + }, + { + "nodeType": "YulBlock", + "src": "1691:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1706:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1720:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1710:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1735:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1770:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1781:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1766:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1766:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1790:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1745:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1745:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1735:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1818:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1833:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1847:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1837:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1863:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1898:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1909:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1894:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1894:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1918:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1873:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1873:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1863:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1581:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1592:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1604:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1612:6:1", + "type": "" + } + ], + "src": "1536:407:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2008:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2025:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2045:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "2030:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "2030:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2018:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2018:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2018:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1996:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2003:3:1", + "type": "" + } + ], + "src": "1949:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2156:272:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2166:53:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2213:5:1" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2180:32:1" + }, + "nodeType": "YulFunctionCall", + "src": "2180:39:1" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2170:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2228:78:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2294:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2299:6:1" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2235:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "2235:71:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2228:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2341:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2348:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2337:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2337:16:1" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2355:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2360:6:1" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "2315:21:1" + }, + "nodeType": "YulFunctionCall", + "src": "2315:52:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2315:52:1" + }, + { + "nodeType": "YulAssignment", + "src": "2376:46:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2387:3:1" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2414:6:1" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2392:21:1" + }, + "nodeType": "YulFunctionCall", + "src": "2392:29:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2383:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2383:39:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2376:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2137:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2144:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2152:3:1", + "type": "" + } + ], + "src": "2064:364:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2580:183:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2590:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2656:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2661:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2597:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "2597:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2590:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2685:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2690:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2681:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2681:11:1" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "2694:33:1", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2674:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2674:54:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2674:54:1" + }, + { + "nodeType": "YulAssignment", + "src": "2738:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2749:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2754:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2745:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2745:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2738:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2568:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2576:3:1", + "type": "" + } + ], + "src": "2434:329:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2834:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2851:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2874:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2856:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2856:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2844:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2844:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2844:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2822:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2829:3:1", + "type": "" + } + ], + "src": "2769:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2954:51:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2971:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2992:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "2976:15:1" + }, + "nodeType": "YulFunctionCall", + "src": "2976:22:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2964:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2964:35:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2964:35:1" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2942:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2949:3:1", + "type": "" + } + ], + "src": "2893:112:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3103:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3113:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3125:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3136:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3121:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3121:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3113:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3187:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3200:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3211:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3196:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3196:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3149:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "3149:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3149:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3075:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3087:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3098:4:1", + "type": "" + } + ], + "src": "3011:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3345:195:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3355:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3367:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3378:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3363:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3363:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3355:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3402:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3413:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3398:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3398:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3421:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3427:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3417:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3417:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3391:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3391:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3391:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "3447:86:1", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3519:6:1" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3528:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3455:63:1" + }, + "nodeType": "YulFunctionCall", + "src": "3455:78:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3447:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3317:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3329:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3340:4:1", + "type": "" + } + ], + "src": "3227:313:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3717:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3727:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3739:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3750:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3735:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3735:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3727:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3774:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3785:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3770:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3770:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3793:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3799:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3789:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3789:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3763:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3763:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3763:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "3819:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3953:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3827:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "3827:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3819:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3697:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3712:4:1", + "type": "" + } + ], + "src": "3546:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4069:124:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4079:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4091:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4102:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4087:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4087:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4079:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4159:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4172:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4183:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4168:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4168:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "4115:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "4115:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4115:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4041:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4053:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4064:4:1", + "type": "" + } + ], + "src": "3971:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4293:120:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4303:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4315:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4326:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4311:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4311:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4303:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4379:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4392:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4403:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4388:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4388:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4339:39:1" + }, + "nodeType": "YulFunctionCall", + "src": "4339:67:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4339:67:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4265:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4277:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4288:4:1", + "type": "" + } + ], + "src": "4199:214:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4478:40:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4489:22:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4505:5:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4499:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "4499:12:1" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4489:6:1" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4461:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4471:6:1", + "type": "" + } + ], + "src": "4419:99:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4620:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4637:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4642:6:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4630:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4630:19:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4630:19:1" + }, + { + "nodeType": "YulAssignment", + "src": "4658:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4677:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4682:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4673:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4673:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4658:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4592:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4597:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4608:11:1", + "type": "" + } + ], + "src": "4524:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4743:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4753:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4776:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4758:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "4758:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4753:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4787:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4810:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4792:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "4792:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4787:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4950:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "4952:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "4952:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4952:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4871:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4878:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4946:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4874:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4874:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4868:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "4868:81:1" + }, + "nodeType": "YulIf", + "src": "4865:2:1" + }, + { + "nodeType": "YulAssignment", + "src": "4982:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4993:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4996:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4989:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4989:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "4982:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "4730:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "4733:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "4739:3:1", + "type": "" + } + ], + "src": "4699:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5055:146:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5065:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5088:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5070:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "5070:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5065:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5099:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5122:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5104:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "5104:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5099:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5146:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "5148:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "5148:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5148:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5140:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5143:1:1" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5137:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "5137:8:1" + }, + "nodeType": "YulIf", + "src": "5134:2:1" + }, + { + "nodeType": "YulAssignment", + "src": "5178:17:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5190:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5193:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5186:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5186:9:1" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "5178:4:1" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "5041:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "5044:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "5050:4:1", + "type": "" + } + ], + "src": "5010:191:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5252:51:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5262:35:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5291:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5273:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "5273:24:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5262:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5234:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5244:7:1", + "type": "" + } + ], + "src": "5207:96:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5351:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5361:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5386:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5379:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5379:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5372:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5372:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5361:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5333:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5343:7:1", + "type": "" + } + ], + "src": "5309:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5450:81:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5460:65:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5475:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5482:42:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5471:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5471:54:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5460:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5432:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5442:7:1", + "type": "" + } + ], + "src": "5405:126:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5582:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5592:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5603:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5592:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5564:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5574:7:1", + "type": "" + } + ], + "src": "5537:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5663:43:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5673:27:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5688:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5695:4:1", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5684:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5684:16:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5673:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5645:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5655:7:1", + "type": "" + } + ], + "src": "5620:86:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5761:258:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5771:10:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5780:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5775:1:1", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5840:63:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5865:3:1" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5870:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5861:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5861:11:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5884:3:1" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5889:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5880:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5880:11:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5874:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "5874:18:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5854:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5854:39:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5854:39:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5801:1:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5804:6:1" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5798:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "5798:13:1" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5812:19:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5814:15:1", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5823:1:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5826:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5819:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5819:10:1" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5814:1:1" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5794:3:1", + "statements": [] + }, + "src": "5790:113:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5937:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5987:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5992:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5983:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5983:16:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6001:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5976:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5976:27:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5976:27:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5918:1:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5921:6:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5915:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "5915:13:1" + }, + "nodeType": "YulIf", + "src": "5912:2:1" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "5743:3:1", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "5748:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5753:6:1", + "type": "" + } + ], + "src": "5712:307:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6053:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6070:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6073:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6063:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6063:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6063:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6167:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6170:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6160:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6160:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6160:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6191:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6194:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6184:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6184:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6184:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6025:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6259:54:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6269:38:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6287:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6294:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6283:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6283:14:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6303:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6299:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6299:7:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6279:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6279:28:1" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6269:6:1" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6242:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6252:6:1", + "type": "" + } + ], + "src": "6211:102:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6362:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6419:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6428:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6431:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6421:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6421:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6421:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6385:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6410:5:1" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6392:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "6392:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6382:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "6382:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6375:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6375:43:1" + }, + "nodeType": "YulIf", + "src": "6372:2:1" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6355:5:1", + "type": "" + } + ], + "src": "6319:122:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6490:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6547:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6556:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6559:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6549:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6549:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6549:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6513:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6538:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6520:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "6520:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6510:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "6510:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6503:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6503:43:1" + }, + "nodeType": "YulIf", + "src": "6500:2:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6483:5:1", + "type": "" + } + ], + "src": "6447:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\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 abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\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 function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\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 function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\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_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n\n mstore(add(pos, 0), \"ERC20: mint to the zero address\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\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 validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610d88565b60405180910390f35b6100db60048036038101906100d69190610c8b565b610260565b6040516100e89190610d6d565b60405180910390f35b6100f9610352565b6040516101069190610dca565b60405180910390f35b61012960048036038101906101249190610c3c565b61035c565b6040516101369190610d6d565b60405180910390f35b6101476106d7565b6040516101549190610de5565b60405180910390f35b61017760048036038101906101729190610c8b565b6106dc565b005b610193600480360381019061018e9190610bd7565b610824565b6040516101a09190610dca565b60405180910390f35b6101b161086c565b6040516101be9190610d88565b60405180910390f35b6101e160048036038101906101dc9190610c8b565b6108a5565b6040516101ee9190610d6d565b60405180910390f35b610211600480360381019061020c9190610c00565b610a87565b60405161021e9190610dca565b60405180910390f35b6040518060400160405280600381526020017f446169000000000000000000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103409190610dca565b60405180910390a36001905092915050565b6000600254905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156103a957600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561043257600080fd5b610483826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061055482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610625826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c49190610dca565b60405180910390a3600190509392505050565b600381565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390610daa565b60405180910390fd5b806002600082825461075e9190610e1c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107b39190610e1c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108189190610dca565b60405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600381526020017f444149000000000000000000000000000000000000000000000000000000000081525081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156108f257600080fd5b610943826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109d6826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a759190610dca565b60405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115610b47577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183610b539190610e72565b905092915050565b6000808284610b6a9190610e1c565b905083811015610ba3577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8091505092915050565b600081359050610bbc81610f6e565b92915050565b600081359050610bd181610f85565b92915050565b600060208284031215610be957600080fd5b6000610bf784828501610bad565b91505092915050565b60008060408385031215610c1357600080fd5b6000610c2185828601610bad565b9250506020610c3285828601610bad565b9150509250929050565b600080600060608486031215610c5157600080fd5b6000610c5f86828701610bad565b9350506020610c7086828701610bad565b9250506040610c8186828701610bc2565b9150509250925092565b60008060408385031215610c9e57600080fd5b6000610cac85828601610bad565b9250506020610cbd85828601610bc2565b9150509250929050565b610cd081610eb8565b82525050565b6000610ce182610e00565b610ceb8185610e0b565b9350610cfb818560208601610efb565b610d0481610f5d565b840191505092915050565b6000610d1c601f83610e0b565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b610d5881610ee4565b82525050565b610d6781610eee565b82525050565b6000602082019050610d826000830184610cc7565b92915050565b60006020820190508181036000830152610da28184610cd6565b905092915050565b60006020820190508181036000830152610dc381610d0f565b9050919050565b6000602082019050610ddf6000830184610d4f565b92915050565b6000602082019050610dfa6000830184610d5e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e2782610ee4565b9150610e3283610ee4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e6757610e66610f2e565b5b828201905092915050565b6000610e7d82610ee4565b9150610e8883610ee4565b925082821015610e9b57610e9a610f2e565b5b828203905092915050565b6000610eb182610ec4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f19578082015181840152602081019050610efe565b83811115610f28576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b610f7781610ea6565b8114610f8257600080fd5b50565b610f8e81610ee4565b8114610f9957600080fd5b5056fea26469706673582212200316473a35296d6ddc73a43f6b79a1ada7f1f149f70dedc4adae0e49aa5cc41e64736f6c63430008000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x260 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xC3C JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x6DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xBD7 JUMP JUMPDEST PUSH2 0x824 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x86C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x8A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xC00 JUMP JUMPDEST PUSH2 0xA87 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4461690000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x340 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x483 DUP3 PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x554 DUP3 PUSH1 0x1 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x625 DUP3 PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6C4 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x74C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x743 SWAP1 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x75E SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x818 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4441490000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x943 DUP3 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x9D6 DUP3 PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA75 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0xB47 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP4 PUSH2 0xB53 SWAP2 SWAP1 PUSH2 0xE72 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xBA3 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBBC DUP2 PUSH2 0xF6E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBD1 DUP2 PUSH2 0xF85 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBF7 DUP5 DUP3 DUP6 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC21 DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC32 DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC5F DUP7 DUP3 DUP8 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC70 DUP7 DUP3 DUP8 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xC81 DUP7 DUP3 DUP8 ADD PUSH2 0xBC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCAC DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xCBD DUP6 DUP3 DUP7 ADD PUSH2 0xBC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD0 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCE1 DUP3 PUSH2 0xE00 JUMP JUMPDEST PUSH2 0xCEB DUP2 DUP6 PUSH2 0xE0B JUMP JUMPDEST SWAP4 POP PUSH2 0xCFB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xEFB JUMP JUMPDEST PUSH2 0xD04 DUP2 PUSH2 0xF5D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD1C PUSH1 0x1F DUP4 PUSH2 0xE0B JUMP JUMPDEST SWAP2 POP PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD58 DUP2 PUSH2 0xEE4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xD67 DUP2 PUSH2 0xEEE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD82 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCC7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDA2 DUP2 DUP5 PUSH2 0xCD6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDC3 DUP2 PUSH2 0xD0F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDDF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDFA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD5E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE27 DUP3 PUSH2 0xEE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE32 DUP4 PUSH2 0xEE4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xE67 JUMPI PUSH2 0xE66 PUSH2 0xF2E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7D DUP3 PUSH2 0xEE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE88 DUP4 PUSH2 0xEE4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0xE9B JUMPI PUSH2 0xE9A PUSH2 0xF2E JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB1 DUP3 PUSH2 0xEC4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF19 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEFE JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xF28 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF77 DUP2 PUSH2 0xEA6 JUMP JUMPDEST DUP2 EQ PUSH2 0xF82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xF8E DUP2 PUSH2 0xEE4 JUMP JUMPDEST DUP2 EQ PUSH2 0xF99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB AND SELFBALANCE GASPRICE CALLDATALOAD 0x29 PUSH14 0x6DDC73A43F6B79A1ADA7F1F149F7 0xD 0xED 0xC4 0xAD 0xAE 0xE 0x49 0xAA 0x5C 0xC4 0x1E PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ", + "sourceMap": "560:2366:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;592:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1773:224;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1167:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2434:489;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;678:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2151:275;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1271:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;634:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1405:360;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2005:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;592:35;;;;;;;;;;;;;;;;;;;:::o;1773:224::-;1852:4;1901:9;1869:7;:19;1877:10;1869:19;;;;;;;;;;;;;;;:29;1889:8;1869:29;;;;;;;;;;;;;;;:41;;;;1947:8;1926:41;;1935:10;1926:41;;;1957:9;1926:41;;;;;;:::i;:::-;;;;;;;;1985:4;1978:11;;1773:224;;;;:::o;1167:96::-;1220:7;1243:12;;1236:19;;1167:96;:::o;2434:489::-;2530:4;2568:8;:15;2577:5;2568:15;;;;;;;;;;;;;;;;2555:9;:28;;2547:37;;;;;;2616:7;:14;2624:5;2616:14;;;;;;;;;;;;;;;:26;2631:10;2616:26;;;;;;;;;;;;;;;;2603:9;:39;;2595:48;;;;;;2674:30;2694:9;2674:8;:15;2683:5;2674:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;2656:8;:15;2665:5;2656:15;;;;;;;;;;;;;;;:48;;;;2744:41;2775:9;2744:7;:14;2752:5;2744:14;;;;;;;;;;;;;;;:26;2759:10;2744:26;;;;;;;;;;;;;;;;:30;;:41;;;;:::i;:::-;2715:7;:14;2723:5;2715:14;;;;;;;;;;;;;;;:26;2730:10;2715:26;;;;;;;;;;;;;;;:70;;;;2814:30;2834:9;2814:8;:15;2823:5;2814:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;2796:8;:15;2805:5;2796:15;;;;;;;;;;;;;;;:48;;;;2876:5;2860:33;;2869:5;2860:33;;;2883:9;2860:33;;;;;;:::i;:::-;;;;;;;;2911:4;2904:11;;2434:489;;;;;:::o;678:34::-;711:1;678:34;:::o;2151:275::-;2243:1;2224:21;;:7;:21;;;;2216:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2310:6;2294:12;;:22;;;;;;;:::i;:::-;;;;;;;;2348:6;2327:8;:17;2336:7;2327:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;2391:7;2370:37;;2387:1;2370:37;;;2400:6;2370:37;;;;;;:::i;:::-;;;;;;;;2151:275;;:::o;1271:124::-;1340:7;1367:8;:20;1376:10;1367:20;;;;;;;;;;;;;;;;1360:27;;1271:124;;;:::o;634:37::-;;;;;;;;;;;;;;;;;;;:::o;1405:360::-;1485:4;1523:8;:20;1532:10;1523:20;;;;;;;;;;;;;;;;1510:9;:33;;1502:42;;;;;;1578:35;1603:9;1578:8;:20;1587:10;1578:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;1555:8;:20;1564:10;1555:20;;;;;;;;;;;;;;;:58;;;;1645:33;1668:9;1645:8;:18;1654:8;1645:18;;;;;;;;;;;;;;;;:22;;:33;;;;:::i;:::-;1624:8;:18;1633:8;1624:18;;;;;;;;;;;;;;;:54;;;;1715:8;1694:41;;1703:10;1694:41;;;1725:9;1694:41;;;;;;:::i;:::-;;;;;;;;1753:4;1746:11;;1405:360;;;;:::o;2005:138::-;2087:4;2111:7;:14;2119:5;2111:14;;;;;;;;;;;;;;;:24;2126:8;2111:24;;;;;;;;;;;;;;;;2104:31;;2005:138;;;;:::o;2954:119::-;3012:7;3042:1;3037;:6;;3030:14;;;;;;;;;;;;3064:1;3060;:5;;;;:::i;:::-;3053:12;;2954:119;;;;:::o;3081:141::-;3139:7;3157:9;3173:1;3169;:5;;;;:::i;:::-;3157:17;;3195:1;3190;:6;;3183:14;;;;;;;;;;;;3213:1;3206:8;;;3081:141;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:329::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2694:33;2690:1;2685:3;2681:11;2674:54;2754:2;2749:3;2745:12;2738:19;;2580:183;;;:::o;2769:118::-;2856:24;2874:5;2856:24;:::i;:::-;2851:3;2844:37;2834:53;;:::o;2893:112::-;2976:22;2992:5;2976:22;:::i;:::-;2971:3;2964:35;2954:51;;:::o;3011:210::-;;3136:2;3125:9;3121:18;3113:26;;3149:65;3211:1;3200:9;3196:17;3187:6;3149:65;:::i;:::-;3103:118;;;;:::o;3227:313::-;;3378:2;3367:9;3363:18;3355:26;;3427:9;3421:4;3417:20;3413:1;3402:9;3398:17;3391:47;3455:78;3528:4;3519:6;3455:78;:::i;:::-;3447:86;;3345:195;;;;:::o;3546:419::-;;3750:2;3739:9;3735:18;3727:26;;3799:9;3793:4;3789:20;3785:1;3774:9;3770:17;3763:47;3827:131;3953:4;3827:131;:::i;:::-;3819:139;;3717:248;;;:::o;3971:222::-;;4102:2;4091:9;4087:18;4079:26;;4115:71;4183:1;4172:9;4168:17;4159:6;4115:71;:::i;:::-;4069:124;;;;:::o;4199:214::-;;4326:2;4315:9;4311:18;4303:26;;4339:67;4403:1;4392:9;4388:17;4379:6;4339:67;:::i;:::-;4293:120;;;;:::o;4419:99::-;;4505:5;4499:12;4489:22;;4478:40;;;:::o;4524:169::-;;4642:6;4637:3;4630:19;4682:4;4677:3;4673:14;4658:29;;4620:73;;;;:::o;4699:305::-;;4758:20;4776:1;4758:20;:::i;:::-;4753:25;;4792:20;4810:1;4792:20;:::i;:::-;4787:25;;4946:1;4878:66;4874:74;4871:1;4868:81;4865:2;;;4952:18;;:::i;:::-;4865:2;4996:1;4993;4989:9;4982:16;;4743:261;;;;:::o;5010:191::-;;5070:20;5088:1;5070:20;:::i;:::-;5065:25;;5104:20;5122:1;5104:20;:::i;:::-;5099:25;;5143:1;5140;5137:8;5134:2;;;5148:18;;:::i;:::-;5134:2;5193:1;5190;5186:9;5178:17;;5055:146;;;;:::o;5207:96::-;;5273:24;5291:5;5273:24;:::i;:::-;5262:35;;5252:51;;;:::o;5309:90::-;;5386:5;5379:13;5372:21;5361:32;;5351:48;;;:::o;5405:126::-;;5482:42;5475:5;5471:54;5460:65;;5450:81;;;:::o;5537:77::-;;5603:5;5592:16;;5582:32;;;:::o;5620:86::-;;5695:4;5688:5;5684:16;5673:27;;5663:43;;;:::o;5712:307::-;5780:1;5790:113;5804:6;5801:1;5798:13;5790:113;;;5889:1;5884:3;5880:11;5874:18;5870:1;5865:3;5861:11;5854:39;5826:2;5823:1;5819:10;5814:15;;5790:113;;;5921:6;5918:1;5915:13;5912:2;;;6001:1;5992:6;5987:3;5983:16;5976:27;5912:2;5761:258;;;;:::o;6025:180::-;6073:77;6070:1;6063:88;6170:4;6167:1;6160:15;6194:4;6191:1;6184:15;6211:102;;6303:2;6299:7;6294:2;6287:5;6283:14;6279:28;6269:38;;6259:54;;;:::o;6319:122::-;6392:24;6410:5;6392:24;:::i;:::-;6385:5;6382:35;6372:2;;6431:1;6428;6421:12;6372:2;6362:79;:::o;6447:122::-;6520:24;6538:5;6520:24;:::i;:::-;6513:5;6510:35;6500:2;;6559:1;6556;6549:12;6500:2;6490:79;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "810000", + "executionCost": "41761", + "totalCost": "851761" + }, + "external": { + "allowance(address,address)": "infinite", + "approve(address,uint256)": "infinite", + "balanceOf(address)": "1563", + "decimals()": "424", + "mint(address,uint256)": "infinite", + "name()": "infinite", + "symbol()": "infinite", + "totalSupply()": "1182", + "transfer(address,uint256)": "infinite", + "transferFrom(address,address,uint256)": "infinite" + } + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "delegate", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/contracts/artifacts/Dai_metadata.json b/contracts/artifacts/Dai_metadata.json new file mode 100644 index 0000000..f40ecb9 --- /dev/null +++ b/contracts/artifacts/Dai_metadata.json @@ -0,0 +1,290 @@ +{ + "compiler": { + "version": "0.8.0+commit.c7dfd78e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "delegate", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/daiToken.sol": "Dai" + }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/daiToken.sol": { + "keccak256": "0x74aa347116232c993ad7e707d8c5a8731179527e31cc4185d267b8660347c27d", + "urls": [ + "bzz-raw://27e48a8b14aea22448452074a2442a6d76d0ef80bcc9e037efa0b442b270a9d6", + "dweb:/ipfs/QmQzWZhoYixrtQ69dwb7kQBK7chVtd5aSoAnJjLBtqvaB1" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/contracts/artifacts/IERC20.json b/contracts/artifacts/IERC20.json new file mode 100644 index 0000000..79ce4d8 --- /dev/null +++ b/contracts/artifacts/IERC20.json @@ -0,0 +1,193 @@ +{ + "deploy": { + "VM:-": { + "linkReferences": {}, + "autoDeployLib": true + }, + "main:1": { + "linkReferences": {}, + "autoDeployLib": true + }, + "ropsten:3": { + "linkReferences": {}, + "autoDeployLib": true + }, + "rinkeby:4": { + "linkReferences": {}, + "autoDeployLib": true + }, + "kovan:42": { + "linkReferences": {}, + "autoDeployLib": true + }, + "görli:5": { + "linkReferences": {}, + "autoDeployLib": true + }, + "Custom": { + "linkReferences": {}, + "autoDeployLib": true + } + }, + "data": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/contracts/artifacts/IERC20_metadata.json b/contracts/artifacts/IERC20_metadata.json new file mode 100644 index 0000000..7e74176 --- /dev/null +++ b/contracts/artifacts/IERC20_metadata.json @@ -0,0 +1,178 @@ +{ + "compiler": { + "version": "0.8.0+commit.c7dfd78e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/usdc.sol": "IERC20" + }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/usdc.sol": { + "keccak256": "0xb1d1b58196ba0aaf894178f2c3c80497efd0272d72d162f9f940c59b876de12f", + "urls": [ + "bzz-raw://6a9e4137e31d5dc48396a119be8ec7c0e51692b5192a31a14c4e557a25f81495", + "dweb:/ipfs/QmaBVSNjVYG1yoGbgRmqGqmQVCbdGgMUpbhU6qM7LF8FVp" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/contracts/artifacts/Migrations.json b/contracts/artifacts/Migrations.json new file mode 100644 index 0000000..eed4910 --- /dev/null +++ b/contracts/artifacts/Migrations.json @@ -0,0 +1,1409 @@ +{ + "deploy": { + "VM:-": { + "linkReferences": {}, + "autoDeployLib": true + }, + "main:1": { + "linkReferences": {}, + "autoDeployLib": true + }, + "ropsten:3": { + "linkReferences": {}, + "autoDeployLib": true + }, + "rinkeby:4": { + "linkReferences": {}, + "autoDeployLib": true + }, + "kovan:42": { + "linkReferences": {}, + "autoDeployLib": true + }, + "görli:5": { + "linkReferences": {}, + "autoDeployLib": true + }, + "Custom": { + "linkReferences": {}, + "autoDeployLib": true + } + }, + "data": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005057600080fd5b50610312806100606000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd57614610082575b600080fd5b61004e61009e565b60405161005b919061025d565b60405180910390f35b61006c6100a4565b6040516100799190610222565b60405180910390f35b61009c60048036038101906100979190610175565b6100c8565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014d9061023d565b60405180910390fd5b8060018190555050565b60008135905061016f816102c5565b92915050565b60006020828403121561018757600080fd5b600061019584828501610160565b91505092915050565b6101a781610289565b82525050565b60006101ba603383610278565b91507f546869732066756e6374696f6e206973207265737472696374656420746f207460008301527f686520636f6e74726163742773206f776e6572000000000000000000000000006020830152604082019050919050565b61021c816102bb565b82525050565b6000602082019050610237600083018461019e565b92915050565b60006020820190508181036000830152610256816101ad565b9050919050565b60006020820190506102726000830184610213565b92915050565b600082825260208201905092915050565b60006102948261029b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6102ce816102bb565b81146102d957600080fd5b5056fea2646970667358221220eb6b9d88eef27898457a40bc3f6673370e557d836248d0962011f108f00a83eb64736f6c63430008000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x312 DUP1 PUSH2 0x60 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0x82 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xA4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x79 SWAP2 SWAP1 PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0xC8 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x156 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14D SWAP1 PUSH2 0x23D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x2C5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x195 DUP5 DUP3 DUP6 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A7 DUP2 PUSH2 0x289 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BA PUSH1 0x33 DUP4 PUSH2 0x278 JUMP JUMPDEST SWAP2 POP PUSH32 0x546869732066756E6374696F6E206973207265737472696374656420746F2074 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x686520636F6E74726163742773206F776E657200000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x21C DUP2 PUSH2 0x2BB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x237 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x19E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x256 DUP2 PUSH2 0x1AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x272 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x213 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x294 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2CE DUP2 PUSH2 0x2BB JUMP JUMPDEST DUP2 EQ PUSH2 0x2D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEB PUSH12 0x9D88EEF27898457A40BC3F66 PUSH20 0x370E557D836248D0962011F108F00A83EB64736F PUSH13 0x63430008000033000000000000 ", + "sourceMap": "69:367:0:-:0;;;117:10;94:33;;;;;;;;;;;;;;;;;;;;69:367;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2555:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "218:196:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "264:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "273:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "276:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "266:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "266:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "266:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "239:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "248:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "235:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "235:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "260:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "231:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "231:32:1" + }, + "nodeType": "YulIf", + "src": "228:2:1" + }, + { + "nodeType": "YulBlock", + "src": "290:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "305:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "319:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "309:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "334:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "369:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "380:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "365:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "365:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "389:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "344:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "344:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "334:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "188:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "199:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "211:6:1", + "type": "" + } + ], + "src": "152:262:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "485:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "502:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "525:5:1" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "507:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "507:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "495:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "495:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "495:37:1" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "473:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "480:3:1", + "type": "" + } + ], + "src": "420:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "690:237:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "700:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "766:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "771:2:1", + "type": "", + "value": "51" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "707:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "707:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "700:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "795:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "800:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "791:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "791:11:1" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "804:34:1", + "type": "", + "value": "This function is restricted to t" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "784:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "784:55:1" + }, + "nodeType": "YulExpressionStatement", + "src": "784:55:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "860:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "856:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "856:12:1" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "870:21:1", + "type": "", + "value": "he contract's owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "849:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "849:43:1" + }, + "nodeType": "YulExpressionStatement", + "src": "849:43:1" + }, + { + "nodeType": "YulAssignment", + "src": "902:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "913:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "918:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "909:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "909:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "902:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "678:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "544:383:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "998:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1015:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1038:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1020:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1020:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1008:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1008:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1008:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "986:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "993:3:1", + "type": "" + } + ], + "src": "933:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1155:124:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1165:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1177:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1188:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1173:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1173:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1165:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1245:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1258:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1269:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1254:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1254:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "1201:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "1201:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1201:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1127:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1139:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1150:4:1", + "type": "" + } + ], + "src": "1057:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1456:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1466:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1478:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1489:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1474:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1474:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1466:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1513:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1524:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1509:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1509:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1532:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1538:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1528:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1528:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1502:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1502:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1502:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "1558:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1692:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1566:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "1566:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1558:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1436:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1451:4:1", + "type": "" + } + ], + "src": "1285:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1808:124:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1818:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1830:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1841:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1826:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1826:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1818:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1898:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1911:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1922:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1907:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1907:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "1854:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "1854:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1854:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1780:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1792:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1803:4:1", + "type": "" + } + ], + "src": "1710:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2034:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2051:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2056:6:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2044:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2044:19:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2044:19:1" + }, + { + "nodeType": "YulAssignment", + "src": "2072:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2091:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2096:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2087:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2087:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "2072:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2006:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2011:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "2022:11:1", + "type": "" + } + ], + "src": "1938:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2158:51:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2168:35:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2197:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2179:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2179:24:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2168:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2140:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2150:7:1", + "type": "" + } + ], + "src": "2113:96:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2260:81:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2270:65:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2285:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2292:42:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2281:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2281:54:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2270:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2242:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2252:7:1", + "type": "" + } + ], + "src": "2215:126:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2392:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2402:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2413:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2402:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2374:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2384:7:1", + "type": "" + } + ], + "src": "2347:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2473:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2530:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2539:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2542:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2532:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2532:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2532:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2496:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2503:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2503:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2493:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2493:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2486:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2486:43:1" + }, + "nodeType": "YulIf", + "src": "2483:2:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2466:5:1", + "type": "" + } + ], + "src": "2430:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 51)\n\n mstore(add(pos, 0), \"This function is restricted to t\")\n\n mstore(add(pos, 32), \"he contract's owner\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\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}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd57614610082575b600080fd5b61004e61009e565b60405161005b919061025d565b60405180910390f35b61006c6100a4565b6040516100799190610222565b60405180910390f35b61009c60048036038101906100979190610175565b6100c8565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014d9061023d565b60405180910390fd5b8060018190555050565b60008135905061016f816102c5565b92915050565b60006020828403121561018757600080fd5b600061019584828501610160565b91505092915050565b6101a781610289565b82525050565b60006101ba603383610278565b91507f546869732066756e6374696f6e206973207265737472696374656420746f207460008301527f686520636f6e74726163742773206f776e6572000000000000000000000000006020830152604082019050919050565b61021c816102bb565b82525050565b6000602082019050610237600083018461019e565b92915050565b60006020820190508181036000830152610256816101ad565b9050919050565b60006020820190506102726000830184610213565b92915050565b600082825260208201905092915050565b60006102948261029b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6102ce816102bb565b81146102d957600080fd5b5056fea2646970667358221220eb6b9d88eef27898457a40bc3f6673370e557d836248d0962011f108f00a83eb64736f6c63430008000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0x82 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xA4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x79 SWAP2 SWAP1 PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0xC8 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x156 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14D SWAP1 PUSH2 0x23D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x2C5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x195 DUP5 DUP3 DUP6 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A7 DUP2 PUSH2 0x289 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BA PUSH1 0x33 DUP4 PUSH2 0x278 JUMP JUMPDEST SWAP2 POP PUSH32 0x546869732066756E6374696F6E206973207265737472696374656420746F2074 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x686520636F6E74726163742773206F776E657200000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x21C DUP2 PUSH2 0x2BB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x237 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x19E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x256 DUP2 PUSH2 0x1AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x272 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x213 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x294 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2CE DUP2 PUSH2 0x2BB JUMP JUMPDEST DUP2 EQ PUSH2 0x2D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEB PUSH12 0x9D88EEF27898457A40BC3F66 PUSH20 0x370E557D836248D0962011F108F00A83EB64736F PUSH13 0x63430008000033000000000000 ", + "sourceMap": "69:367:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;132:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;94:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;132:36;;;;:::o;94:33::-;;;;;;;;;;;;:::o;328:105::-;234:5;;;;;;;;;;220:19;;:10;:19;;;204:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;418:9:::1;391:24;:36;;;;328:105:::0;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:118::-;507:24;525:5;507:24;:::i;:::-;502:3;495:37;485:53;;:::o;544:383::-;;707:67;771:2;766:3;707:67;:::i;:::-;700:74;;804:34;800:1;795:3;791:11;784:55;870:21;865:2;860:3;856:12;849:43;918:2;913:3;909:12;902:19;;690:237;;;:::o;933:118::-;1020:24;1038:5;1020:24;:::i;:::-;1015:3;1008:37;998:53;;:::o;1057:222::-;;1188:2;1177:9;1173:18;1165:26;;1201:71;1269:1;1258:9;1254:17;1245:6;1201:71;:::i;:::-;1155:124;;;;:::o;1285:419::-;;1489:2;1478:9;1474:18;1466:26;;1538:9;1532:4;1528:20;1524:1;1513:9;1509:17;1502:47;1566:131;1692:4;1566:131;:::i;:::-;1558:139;;1456:248;;;:::o;1710:222::-;;1841:2;1830:9;1826:18;1818:26;;1854:71;1922:1;1911:9;1907:17;1898:6;1854:71;:::i;:::-;1808:124;;;;:::o;1938:169::-;;2056:6;2051:3;2044:19;2096:4;2091:3;2087:14;2072:29;;2034:73;;;;:::o;2113:96::-;;2179:24;2197:5;2179:24;:::i;:::-;2168:35;;2158:51;;;:::o;2215:126::-;;2292:42;2285:5;2281:54;2270:65;;2260:81;;;:::o;2347:77::-;;2413:5;2402:16;;2392:32;;;:::o;2430:122::-;2503:24;2521:5;2503:24;:::i;:::-;2496:5;2493:35;2483:2;;2542:1;2539;2532:12;2483:2;2473:79;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "157200", + "executionCost": "21068", + "totalCost": "178268" + }, + "external": { + "last_completed_migration()": "1107", + "owner()": "1211", + "setCompleted(uint256)": "21309" + } + }, + "methodIdentifiers": { + "last_completed_migration()": "445df0ac", + "owner()": "8da5cb5b", + "setCompleted(uint256)": "fdacd576" + } + }, + "abi": [ + { + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/contracts/artifacts/Migrations_metadata.json b/contracts/artifacts/Migrations_metadata.json new file mode 100644 index 0000000..8cd8225 --- /dev/null +++ b/contracts/artifacts/Migrations_metadata.json @@ -0,0 +1,85 @@ +{ + "compiler": { + "version": "0.8.0+commit.c7dfd78e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/Migrations.sol": "Migrations" + }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/Migrations.sol": { + "keccak256": "0x70cf7ad76347f1e37197351f671d6033be2f1d514fd6f018d495c85494b951f0", + "license": "MIT", + "urls": [ + "bzz-raw://27096293ae0ec55dd0562229d2b8050a95b348452d2e23f09909778a80a55b70", + "dweb:/ipfs/QmUUicCTuEZUPrXpma1CQ65oey85gwTrhw7UAsCiqANeca" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/contracts/artifacts/SafeMath.json b/contracts/artifacts/SafeMath.json new file mode 100644 index 0000000..0b59652 --- /dev/null +++ b/contracts/artifacts/SafeMath.json @@ -0,0 +1,62 @@ +{ + "deploy": { + "VM:-": { + "linkReferences": {}, + "autoDeployLib": true + }, + "main:1": { + "linkReferences": {}, + "autoDeployLib": true + }, + "ropsten:3": { + "linkReferences": {}, + "autoDeployLib": true + }, + "rinkeby:4": { + "linkReferences": {}, + "autoDeployLib": true + }, + "kovan:42": { + "linkReferences": {}, + "autoDeployLib": true + }, + "görli:5": { + "linkReferences": {}, + "autoDeployLib": true + }, + "Custom": { + "linkReferences": {}, + "autoDeployLib": true + } + }, + "data": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122035bce464ef1091f01b65e192214f8af4b28a0a2582beeefb2ce957e0b6b3402c64736f6c63430008000033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATALOAD 0xBC 0xE4 PUSH5 0xEF1091F01B PUSH6 0xE192214F8AF4 0xB2 DUP11 EXP 0x25 DUP3 0xBE 0xEE 0xFB 0x2C 0xE9 JUMPI 0xE0 0xB6 0xB3 BLOCKHASH 0x2C PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ", + "sourceMap": "2931:295:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122035bce464ef1091f01b65e192214f8af4b28a0a2582beeefb2ce957e0b6b3402c64736f6c63430008000033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATALOAD 0xBC 0xE4 PUSH5 0xEF1091F01B PUSH6 0xE192214F8AF4 0xB2 DUP11 EXP 0x25 DUP3 0xBE 0xEE 0xFB 0x2C 0xE9 JUMPI 0xE0 0xB6 0xB3 BLOCKHASH 0x2C PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ", + "sourceMap": "2931:295:0:-:0;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "17200", + "executionCost": "97", + "totalCost": "17297" + }, + "internal": { + "add(uint256,uint256)": "infinite", + "sub(uint256,uint256)": "infinite" + } + }, + "methodIdentifiers": {} + }, + "abi": [] +} \ No newline at end of file diff --git a/contracts/artifacts/SafeMath_metadata.json b/contracts/artifacts/SafeMath_metadata.json new file mode 100644 index 0000000..137714f --- /dev/null +++ b/contracts/artifacts/SafeMath_metadata.json @@ -0,0 +1,44 @@ +{ + "compiler": { + "version": "0.8.0+commit.c7dfd78e" + }, + "language": "Solidity", + "output": { + "abi": [], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/usdc.sol": "SafeMath" + }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/usdc.sol": { + "keccak256": "0xb1d1b58196ba0aaf894178f2c3c80497efd0272d72d162f9f940c59b876de12f", + "urls": [ + "bzz-raw://6a9e4137e31d5dc48396a119be8ec7c0e51692b5192a31a14c4e557a25f81495", + "dweb:/ipfs/QmaBVSNjVYG1yoGbgRmqGqmQVCbdGgMUpbhU6qM7LF8FVp" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/contracts/artifacts/Usdc.json b/contracts/artifacts/Usdc.json new file mode 100644 index 0000000..d9b8486 --- /dev/null +++ b/contracts/artifacts/Usdc.json @@ -0,0 +1,4128 @@ +{ + "deploy": { + "VM:-": { + "linkReferences": {}, + "autoDeployLib": true + }, + "main:1": { + "linkReferences": {}, + "autoDeployLib": true + }, + "ropsten:3": { + "linkReferences": {}, + "autoDeployLib": true + }, + "rinkeby:4": { + "linkReferences": {}, + "autoDeployLib": true + }, + "kovan:42": { + "linkReferences": {}, + "autoDeployLib": true + }, + "görli:5": { + "linkReferences": {}, + "autoDeployLib": true + }, + "Custom": { + "linkReferences": {}, + "autoDeployLib": true + } + }, + "data": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506305f5e1006002819055506002546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fd2806100706000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610d88565b60405180910390f35b6100db60048036038101906100d69190610c8b565b610260565b6040516100e89190610d6d565b60405180910390f35b6100f9610352565b6040516101069190610dca565b60405180910390f35b61012960048036038101906101249190610c3c565b61035c565b6040516101369190610d6d565b60405180910390f35b6101476106d7565b6040516101549190610de5565b60405180910390f35b61017760048036038101906101729190610c8b565b6106dc565b005b610193600480360381019061018e9190610bd7565b610824565b6040516101a09190610dca565b60405180910390f35b6101b161086c565b6040516101be9190610d88565b60405180910390f35b6101e160048036038101906101dc9190610c8b565b6108a5565b6040516101ee9190610d6d565b60405180910390f35b610211600480360381019061020c9190610c00565b610a87565b60405161021e9190610dca565b60405180910390f35b6040518060400160405280600481526020017f557364630000000000000000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103409190610dca565b60405180910390a36001905092915050565b6000600254905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156103a957600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561043257600080fd5b610483826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061055482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610625826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c49190610dca565b60405180910390a3600190509392505050565b600381565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390610daa565b60405180910390fd5b806002600082825461075e9190610e1c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107b39190610e1c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108189190610dca565b60405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600481526020017f555344430000000000000000000000000000000000000000000000000000000081525081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156108f257600080fd5b610943826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109d6826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a759190610dca565b60405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115610b47577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183610b539190610e72565b905092915050565b6000808284610b6a9190610e1c565b905083811015610ba3577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8091505092915050565b600081359050610bbc81610f6e565b92915050565b600081359050610bd181610f85565b92915050565b600060208284031215610be957600080fd5b6000610bf784828501610bad565b91505092915050565b60008060408385031215610c1357600080fd5b6000610c2185828601610bad565b9250506020610c3285828601610bad565b9150509250929050565b600080600060608486031215610c5157600080fd5b6000610c5f86828701610bad565b9350506020610c7086828701610bad565b9250506040610c8186828701610bc2565b9150509250925092565b60008060408385031215610c9e57600080fd5b6000610cac85828601610bad565b9250506020610cbd85828601610bc2565b9150509250929050565b610cd081610eb8565b82525050565b6000610ce182610e00565b610ceb8185610e0b565b9350610cfb818560208601610efb565b610d0481610f5d565b840191505092915050565b6000610d1c601f83610e0b565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b610d5881610ee4565b82525050565b610d6781610eee565b82525050565b6000602082019050610d826000830184610cc7565b92915050565b60006020820190508181036000830152610da28184610cd6565b905092915050565b60006020820190508181036000830152610dc381610d0f565b9050919050565b6000602082019050610ddf6000830184610d4f565b92915050565b6000602082019050610dfa6000830184610d5e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e2782610ee4565b9150610e3283610ee4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e6757610e66610f2e565b5b828201905092915050565b6000610e7d82610ee4565b9150610e8883610ee4565b925082821015610e9b57610e9a610f2e565b5b828203905092915050565b6000610eb182610ec4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f19578082015181840152602081019050610efe565b83811115610f28576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b610f7781610ea6565b8114610f8257600080fd5b50565b610f8e81610ee4565b8114610f9957600080fd5b5056fea2646970667358221220d6d9d8fe2c410231673a9bf21788239939c78e0326394fddb8e57e37a794a3c464736f6c63430008000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH4 0x5F5E100 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x2 SLOAD PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xFD2 DUP1 PUSH2 0x70 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x260 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xC3C JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x6DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xBD7 JUMP JUMPDEST PUSH2 0x824 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x86C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x8A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xC00 JUMP JUMPDEST PUSH2 0xA87 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5573646300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x340 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x483 DUP3 PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x554 DUP3 PUSH1 0x1 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x625 DUP3 PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6C4 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x74C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x743 SWAP1 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x75E SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x818 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5553444300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x943 DUP3 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x9D6 DUP3 PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA75 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0xB47 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP4 PUSH2 0xB53 SWAP2 SWAP1 PUSH2 0xE72 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xBA3 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBBC DUP2 PUSH2 0xF6E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBD1 DUP2 PUSH2 0xF85 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBF7 DUP5 DUP3 DUP6 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC21 DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC32 DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC5F DUP7 DUP3 DUP8 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC70 DUP7 DUP3 DUP8 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xC81 DUP7 DUP3 DUP8 ADD PUSH2 0xBC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCAC DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xCBD DUP6 DUP3 DUP7 ADD PUSH2 0xBC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD0 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCE1 DUP3 PUSH2 0xE00 JUMP JUMPDEST PUSH2 0xCEB DUP2 DUP6 PUSH2 0xE0B JUMP JUMPDEST SWAP4 POP PUSH2 0xCFB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xEFB JUMP JUMPDEST PUSH2 0xD04 DUP2 PUSH2 0xF5D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD1C PUSH1 0x1F DUP4 PUSH2 0xE0B JUMP JUMPDEST SWAP2 POP PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD58 DUP2 PUSH2 0xEE4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xD67 DUP2 PUSH2 0xEEE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD82 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCC7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDA2 DUP2 DUP5 PUSH2 0xCD6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDC3 DUP2 PUSH2 0xD0F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDDF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDFA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD5E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE27 DUP3 PUSH2 0xEE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE32 DUP4 PUSH2 0xEE4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xE67 JUMPI PUSH2 0xE66 PUSH2 0xF2E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7D DUP3 PUSH2 0xEE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE88 DUP4 PUSH2 0xEE4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0xE9B JUMPI PUSH2 0xE9A PUSH2 0xF2E JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB1 DUP3 PUSH2 0xEC4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF19 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEFE JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xF28 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF77 DUP2 PUSH2 0xEA6 JUMP JUMPDEST DUP2 EQ PUSH2 0xF82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xF8E DUP2 PUSH2 0xEE4 JUMP JUMPDEST DUP2 EQ PUSH2 0xF99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 0xD9 0xD8 INVALID 0x2C COINBASE MUL BALANCE PUSH8 0x3A9BF21788239939 0xC7 DUP15 SUB 0x26 CODECOPY 0x4F 0xDD 0xB8 0xE5 PUSH31 0x37A794A3C464736F6C63430008000033000000000000000000000000000000 ", + "sourceMap": "560:2367:0:-:0;;;1068:94;;;;;;;;;;1103:9;1088:12;:24;;;;1142:12;;1119:8;:20;1128:10;1119:20;;;;;;;;;;;;;;;:35;;;;560:2367;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:6572:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "204:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "214:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "236:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "223:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "223:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "214:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "279:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "252:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "252:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "182:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "190:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "198:5:1", + "type": "" + } + ], + "src": "152:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "363:196:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "409:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "418:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "421:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "411:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "411:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "411:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "384:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "393:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "380:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "380:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "405:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "376:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "376:32:1" + }, + "nodeType": "YulIf", + "src": "373:2:1" + }, + { + "nodeType": "YulBlock", + "src": "435:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "450:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "454:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "479:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "514:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "525:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "510:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "510:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "534:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "489:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "489:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "479:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "333:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "344:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "356:6:1", + "type": "" + } + ], + "src": "297:262:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "648:324:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "694:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "703:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "706:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "696:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "696:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "696:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "669:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "678:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "665:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "665:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "690:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "661:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "661:32:1" + }, + "nodeType": "YulIf", + "src": "658:2:1" + }, + { + "nodeType": "YulBlock", + "src": "720:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "735:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "749:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "739:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "764:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "799:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "810:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "795:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "795:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "819:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "774:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "774:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "764:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "847:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "862:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "876:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "866:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "892:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "927:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "938:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "923:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "923:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "947:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "902:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "902:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "892:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "610:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "621:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "633:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "641:6:1", + "type": "" + } + ], + "src": "565:407:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1078:452:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1124:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1133:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1136:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1126:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1126:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1126:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1099:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1108:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1095:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1095:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1120:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1091:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1091:32:1" + }, + "nodeType": "YulIf", + "src": "1088:2:1" + }, + { + "nodeType": "YulBlock", + "src": "1150:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1165:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1179:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1169:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1194:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1229:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1240:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1225:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1225:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1249:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1204:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1204:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1194:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1277:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1292:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1306:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1296:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1322:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1357:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1368:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1353:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1353:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1377:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1332:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1332:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1322:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1405:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1420:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1434:2:1", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1424:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1450:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1485:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1496:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1481:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1481:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1505:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1460:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1460:53:1" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1450:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1032:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1043:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1055:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1063:6:1", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1071:6:1", + "type": "" + } + ], + "src": "978:552:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1619:324:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1665:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1674:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1677:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1667:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1667:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1667:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1640:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1649:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1636:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1636:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1661:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1632:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1632:32:1" + }, + "nodeType": "YulIf", + "src": "1629:2:1" + }, + { + "nodeType": "YulBlock", + "src": "1691:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1706:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1720:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1710:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1735:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1770:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1781:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1766:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1766:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1790:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1745:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1745:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1735:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1818:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1833:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1847:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1837:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1863:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1898:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1909:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1894:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1894:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1918:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1873:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1873:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1863:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1581:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1592:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1604:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1612:6:1", + "type": "" + } + ], + "src": "1536:407:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2008:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2025:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2045:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "2030:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "2030:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2018:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2018:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2018:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1996:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2003:3:1", + "type": "" + } + ], + "src": "1949:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2156:272:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2166:53:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2213:5:1" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2180:32:1" + }, + "nodeType": "YulFunctionCall", + "src": "2180:39:1" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2170:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2228:78:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2294:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2299:6:1" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2235:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "2235:71:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2228:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2341:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2348:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2337:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2337:16:1" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2355:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2360:6:1" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "2315:21:1" + }, + "nodeType": "YulFunctionCall", + "src": "2315:52:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2315:52:1" + }, + { + "nodeType": "YulAssignment", + "src": "2376:46:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2387:3:1" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2414:6:1" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2392:21:1" + }, + "nodeType": "YulFunctionCall", + "src": "2392:29:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2383:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2383:39:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2376:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2137:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2144:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2152:3:1", + "type": "" + } + ], + "src": "2064:364:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2580:183:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2590:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2656:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2661:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2597:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "2597:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2590:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2685:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2690:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2681:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2681:11:1" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "2694:33:1", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2674:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2674:54:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2674:54:1" + }, + { + "nodeType": "YulAssignment", + "src": "2738:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2749:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2754:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2745:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2745:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2738:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2568:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2576:3:1", + "type": "" + } + ], + "src": "2434:329:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2834:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2851:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2874:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2856:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2856:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2844:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2844:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2844:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2822:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2829:3:1", + "type": "" + } + ], + "src": "2769:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2954:51:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2971:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2992:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "2976:15:1" + }, + "nodeType": "YulFunctionCall", + "src": "2976:22:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2964:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2964:35:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2964:35:1" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2942:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2949:3:1", + "type": "" + } + ], + "src": "2893:112:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3103:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3113:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3125:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3136:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3121:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3121:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3113:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3187:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3200:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3211:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3196:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3196:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3149:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "3149:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3149:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3075:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3087:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3098:4:1", + "type": "" + } + ], + "src": "3011:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3345:195:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3355:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3367:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3378:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3363:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3363:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3355:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3402:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3413:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3398:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3398:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3421:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3427:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3417:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3417:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3391:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3391:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3391:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "3447:86:1", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3519:6:1" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3528:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3455:63:1" + }, + "nodeType": "YulFunctionCall", + "src": "3455:78:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3447:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3317:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3329:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3340:4:1", + "type": "" + } + ], + "src": "3227:313:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3717:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3727:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3739:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3750:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3735:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3735:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3727:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3774:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3785:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3770:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3770:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3793:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3799:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3789:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3789:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3763:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3763:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3763:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "3819:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3953:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3827:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "3827:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3819:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3697:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3712:4:1", + "type": "" + } + ], + "src": "3546:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4069:124:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4079:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4091:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4102:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4087:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4087:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4079:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4159:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4172:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4183:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4168:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4168:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "4115:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "4115:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4115:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4041:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4053:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4064:4:1", + "type": "" + } + ], + "src": "3971:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4293:120:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4303:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4315:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4326:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4311:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4311:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4303:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4379:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4392:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4403:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4388:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4388:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4339:39:1" + }, + "nodeType": "YulFunctionCall", + "src": "4339:67:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4339:67:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4265:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4277:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4288:4:1", + "type": "" + } + ], + "src": "4199:214:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4478:40:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4489:22:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4505:5:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4499:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "4499:12:1" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4489:6:1" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4461:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4471:6:1", + "type": "" + } + ], + "src": "4419:99:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4620:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4637:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4642:6:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4630:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4630:19:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4630:19:1" + }, + { + "nodeType": "YulAssignment", + "src": "4658:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4677:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4682:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4673:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4673:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4658:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4592:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4597:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4608:11:1", + "type": "" + } + ], + "src": "4524:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4743:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4753:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4776:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4758:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "4758:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4753:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4787:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4810:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4792:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "4792:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4787:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4950:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "4952:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "4952:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4952:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4871:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4878:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4946:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4874:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4874:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4868:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "4868:81:1" + }, + "nodeType": "YulIf", + "src": "4865:2:1" + }, + { + "nodeType": "YulAssignment", + "src": "4982:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4993:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4996:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4989:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4989:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "4982:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "4730:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "4733:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "4739:3:1", + "type": "" + } + ], + "src": "4699:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5055:146:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5065:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5088:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5070:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "5070:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5065:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5099:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5122:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5104:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "5104:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5099:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5146:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "5148:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "5148:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5148:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5140:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5143:1:1" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5137:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "5137:8:1" + }, + "nodeType": "YulIf", + "src": "5134:2:1" + }, + { + "nodeType": "YulAssignment", + "src": "5178:17:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5190:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5193:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5186:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5186:9:1" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "5178:4:1" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "5041:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "5044:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "5050:4:1", + "type": "" + } + ], + "src": "5010:191:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5252:51:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5262:35:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5291:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5273:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "5273:24:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5262:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5234:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5244:7:1", + "type": "" + } + ], + "src": "5207:96:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5351:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5361:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5386:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5379:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5379:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5372:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5372:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5361:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5333:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5343:7:1", + "type": "" + } + ], + "src": "5309:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5450:81:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5460:65:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5475:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5482:42:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5471:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5471:54:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5460:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5432:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5442:7:1", + "type": "" + } + ], + "src": "5405:126:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5582:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5592:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5603:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5592:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5564:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5574:7:1", + "type": "" + } + ], + "src": "5537:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5663:43:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5673:27:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5688:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5695:4:1", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5684:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5684:16:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5673:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5645:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5655:7:1", + "type": "" + } + ], + "src": "5620:86:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5761:258:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5771:10:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5780:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5775:1:1", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5840:63:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5865:3:1" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5870:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5861:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5861:11:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5884:3:1" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5889:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5880:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5880:11:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5874:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "5874:18:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5854:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5854:39:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5854:39:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5801:1:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5804:6:1" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5798:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "5798:13:1" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5812:19:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5814:15:1", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5823:1:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5826:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5819:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5819:10:1" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5814:1:1" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5794:3:1", + "statements": [] + }, + "src": "5790:113:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5937:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5987:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5992:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5983:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5983:16:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6001:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5976:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5976:27:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5976:27:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5918:1:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5921:6:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5915:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "5915:13:1" + }, + "nodeType": "YulIf", + "src": "5912:2:1" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "5743:3:1", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "5748:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5753:6:1", + "type": "" + } + ], + "src": "5712:307:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6053:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6070:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6073:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6063:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6063:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6063:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6167:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6170:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6160:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6160:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6160:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6191:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6194:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6184:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6184:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6184:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6025:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6259:54:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6269:38:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6287:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6294:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6283:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6283:14:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6303:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6299:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6299:7:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6279:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6279:28:1" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6269:6:1" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6242:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6252:6:1", + "type": "" + } + ], + "src": "6211:102:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6362:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6419:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6428:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6431:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6421:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6421:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6421:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6385:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6410:5:1" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6392:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "6392:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6382:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "6382:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6375:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6375:43:1" + }, + "nodeType": "YulIf", + "src": "6372:2:1" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6355:5:1", + "type": "" + } + ], + "src": "6319:122:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6490:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6547:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6556:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6559:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6549:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6549:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6549:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6513:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6538:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6520:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "6520:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6510:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "6510:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6503:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6503:43:1" + }, + "nodeType": "YulIf", + "src": "6500:2:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6483:5:1", + "type": "" + } + ], + "src": "6447:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\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 abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\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 function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\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 function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\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_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n\n mstore(add(pos, 0), \"ERC20: mint to the zero address\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\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 validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610d88565b60405180910390f35b6100db60048036038101906100d69190610c8b565b610260565b6040516100e89190610d6d565b60405180910390f35b6100f9610352565b6040516101069190610dca565b60405180910390f35b61012960048036038101906101249190610c3c565b61035c565b6040516101369190610d6d565b60405180910390f35b6101476106d7565b6040516101549190610de5565b60405180910390f35b61017760048036038101906101729190610c8b565b6106dc565b005b610193600480360381019061018e9190610bd7565b610824565b6040516101a09190610dca565b60405180910390f35b6101b161086c565b6040516101be9190610d88565b60405180910390f35b6101e160048036038101906101dc9190610c8b565b6108a5565b6040516101ee9190610d6d565b60405180910390f35b610211600480360381019061020c9190610c00565b610a87565b60405161021e9190610dca565b60405180910390f35b6040518060400160405280600481526020017f557364630000000000000000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103409190610dca565b60405180910390a36001905092915050565b6000600254905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156103a957600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561043257600080fd5b610483826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061055482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610625826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c49190610dca565b60405180910390a3600190509392505050565b600381565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390610daa565b60405180910390fd5b806002600082825461075e9190610e1c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107b39190610e1c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108189190610dca565b60405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600481526020017f555344430000000000000000000000000000000000000000000000000000000081525081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156108f257600080fd5b610943826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109d6826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a759190610dca565b60405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115610b47577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183610b539190610e72565b905092915050565b6000808284610b6a9190610e1c565b905083811015610ba3577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8091505092915050565b600081359050610bbc81610f6e565b92915050565b600081359050610bd181610f85565b92915050565b600060208284031215610be957600080fd5b6000610bf784828501610bad565b91505092915050565b60008060408385031215610c1357600080fd5b6000610c2185828601610bad565b9250506020610c3285828601610bad565b9150509250929050565b600080600060608486031215610c5157600080fd5b6000610c5f86828701610bad565b9350506020610c7086828701610bad565b9250506040610c8186828701610bc2565b9150509250925092565b60008060408385031215610c9e57600080fd5b6000610cac85828601610bad565b9250506020610cbd85828601610bc2565b9150509250929050565b610cd081610eb8565b82525050565b6000610ce182610e00565b610ceb8185610e0b565b9350610cfb818560208601610efb565b610d0481610f5d565b840191505092915050565b6000610d1c601f83610e0b565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b610d5881610ee4565b82525050565b610d6781610eee565b82525050565b6000602082019050610d826000830184610cc7565b92915050565b60006020820190508181036000830152610da28184610cd6565b905092915050565b60006020820190508181036000830152610dc381610d0f565b9050919050565b6000602082019050610ddf6000830184610d4f565b92915050565b6000602082019050610dfa6000830184610d5e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e2782610ee4565b9150610e3283610ee4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e6757610e66610f2e565b5b828201905092915050565b6000610e7d82610ee4565b9150610e8883610ee4565b925082821015610e9b57610e9a610f2e565b5b828203905092915050565b6000610eb182610ec4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f19578082015181840152602081019050610efe565b83811115610f28576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b610f7781610ea6565b8114610f8257600080fd5b50565b610f8e81610ee4565b8114610f9957600080fd5b5056fea2646970667358221220d6d9d8fe2c410231673a9bf21788239939c78e0326394fddb8e57e37a794a3c464736f6c63430008000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x260 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xC3C JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x6DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xBD7 JUMP JUMPDEST PUSH2 0x824 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x86C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC8B JUMP JUMPDEST PUSH2 0x8A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xC00 JUMP JUMPDEST PUSH2 0xA87 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5573646300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x340 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x483 DUP3 PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x554 DUP3 PUSH1 0x1 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x625 DUP3 PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6C4 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x74C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x743 SWAP1 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x75E SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x818 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5553444300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x943 DUP3 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB0E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x9D6 DUP3 PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA75 SWAP2 SWAP1 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0xB47 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP4 PUSH2 0xB53 SWAP2 SWAP1 PUSH2 0xE72 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xBA3 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBBC DUP2 PUSH2 0xF6E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBD1 DUP2 PUSH2 0xF85 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBF7 DUP5 DUP3 DUP6 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC21 DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC32 DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC5F DUP7 DUP3 DUP8 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC70 DUP7 DUP3 DUP8 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xC81 DUP7 DUP3 DUP8 ADD PUSH2 0xBC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCAC DUP6 DUP3 DUP7 ADD PUSH2 0xBAD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xCBD DUP6 DUP3 DUP7 ADD PUSH2 0xBC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD0 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCE1 DUP3 PUSH2 0xE00 JUMP JUMPDEST PUSH2 0xCEB DUP2 DUP6 PUSH2 0xE0B JUMP JUMPDEST SWAP4 POP PUSH2 0xCFB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xEFB JUMP JUMPDEST PUSH2 0xD04 DUP2 PUSH2 0xF5D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD1C PUSH1 0x1F DUP4 PUSH2 0xE0B JUMP JUMPDEST SWAP2 POP PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD58 DUP2 PUSH2 0xEE4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xD67 DUP2 PUSH2 0xEEE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD82 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCC7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDA2 DUP2 DUP5 PUSH2 0xCD6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDC3 DUP2 PUSH2 0xD0F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDDF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDFA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD5E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE27 DUP3 PUSH2 0xEE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE32 DUP4 PUSH2 0xEE4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xE67 JUMPI PUSH2 0xE66 PUSH2 0xF2E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7D DUP3 PUSH2 0xEE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE88 DUP4 PUSH2 0xEE4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0xE9B JUMPI PUSH2 0xE9A PUSH2 0xF2E JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB1 DUP3 PUSH2 0xEC4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF19 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEFE JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xF28 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF77 DUP2 PUSH2 0xEA6 JUMP JUMPDEST DUP2 EQ PUSH2 0xF82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xF8E DUP2 PUSH2 0xEE4 JUMP JUMPDEST DUP2 EQ PUSH2 0xF99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 0xD9 0xD8 INVALID 0x2C COINBASE MUL BALANCE PUSH8 0x3A9BF21788239939 0xC7 DUP15 SUB 0x26 CODECOPY 0x4F 0xDD 0xB8 0xE5 PUSH31 0x37A794A3C464736F6C63430008000033000000000000000000000000000000 ", + "sourceMap": "560:2367:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;593:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1774:224;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1170:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2152:489;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;681:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2649:275;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1274:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;636:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1406:360;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2006:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;593:36;;;;;;;;;;;;;;;;;;;:::o;1774:224::-;1853:4;1902:9;1870:7;:19;1878:10;1870:19;;;;;;;;;;;;;;;:29;1890:8;1870:29;;;;;;;;;;;;;;;:41;;;;1948:8;1927:41;;1936:10;1927:41;;;1958:9;1927:41;;;;;;:::i;:::-;;;;;;;;1986:4;1979:11;;1774:224;;;;:::o;1170:96::-;1223:7;1246:12;;1239:19;;1170:96;:::o;2152:489::-;2248:4;2286:8;:15;2295:5;2286:15;;;;;;;;;;;;;;;;2273:9;:28;;2265:37;;;;;;2334:7;:14;2342:5;2334:14;;;;;;;;;;;;;;;:26;2349:10;2334:26;;;;;;;;;;;;;;;;2321:9;:39;;2313:48;;;;;;2392:30;2412:9;2392:8;:15;2401:5;2392:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;2374:8;:15;2383:5;2374:15;;;;;;;;;;;;;;;:48;;;;2462:41;2493:9;2462:7;:14;2470:5;2462:14;;;;;;;;;;;;;;;:26;2477:10;2462:26;;;;;;;;;;;;;;;;:30;;:41;;;;:::i;:::-;2433:7;:14;2441:5;2433:14;;;;;;;;;;;;;;;:26;2448:10;2433:26;;;;;;;;;;;;;;;:70;;;;2532:30;2552:9;2532:8;:15;2541:5;2532:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;2514:8;:15;2523:5;2514:15;;;;;;;;;;;;;;;:48;;;;2594:5;2578:33;;2587:5;2578:33;;;2601:9;2578:33;;;;;;:::i;:::-;;;;;;;;2629:4;2622:11;;2152:489;;;;;:::o;681:34::-;714:1;681:34;:::o;2649:275::-;2741:1;2722:21;;:7;:21;;;;2714:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2808:6;2792:12;;:22;;;;;;;:::i;:::-;;;;;;;;2846:6;2825:8;:17;2834:7;2825:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;2889:7;2868:37;;2885:1;2868:37;;;2898:6;2868:37;;;;;;:::i;:::-;;;;;;;;2649:275;;:::o;1274:124::-;1343:7;1370:8;:20;1379:10;1370:20;;;;;;;;;;;;;;;;1363:27;;1274:124;;;:::o;636:38::-;;;;;;;;;;;;;;;;;;;:::o;1406:360::-;1486:4;1524:8;:20;1533:10;1524:20;;;;;;;;;;;;;;;;1511:9;:33;;1503:42;;;;;;1579:35;1604:9;1579:8;:20;1588:10;1579:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;1556:8;:20;1565:10;1556:20;;;;;;;;;;;;;;;:58;;;;1646:33;1669:9;1646:8;:18;1655:8;1646:18;;;;;;;;;;;;;;;;:22;;:33;;;;:::i;:::-;1625:8;:18;1634:8;1625:18;;;;;;;;;;;;;;;:54;;;;1716:8;1695:41;;1704:10;1695:41;;;1726:9;1695:41;;;;;;:::i;:::-;;;;;;;;1754:4;1747:11;;1406:360;;;;:::o;2006:138::-;2088:4;2112:7;:14;2120:5;2112:14;;;;;;;;;;;;;;;:24;2127:8;2112:24;;;;;;;;;;;;;;;;2105:31;;2006:138;;;;:::o;2955:119::-;3013:7;3043:1;3038;:6;;3031:14;;;;;;;;;;;;3065:1;3061;:5;;;;:::i;:::-;3054:12;;2955:119;;;;:::o;3082:141::-;3140:7;3158:9;3174:1;3170;:5;;;;:::i;:::-;3158:17;;3196:1;3191;:6;;3184:14;;;;;;;;;;;;3214:1;3207:8;;;3082:141;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:329::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2694:33;2690:1;2685:3;2681:11;2674:54;2754:2;2749:3;2745:12;2738:19;;2580:183;;;:::o;2769:118::-;2856:24;2874:5;2856:24;:::i;:::-;2851:3;2844:37;2834:53;;:::o;2893:112::-;2976:22;2992:5;2976:22;:::i;:::-;2971:3;2964:35;2954:51;;:::o;3011:210::-;;3136:2;3125:9;3121:18;3113:26;;3149:65;3211:1;3200:9;3196:17;3187:6;3149:65;:::i;:::-;3103:118;;;;:::o;3227:313::-;;3378:2;3367:9;3363:18;3355:26;;3427:9;3421:4;3417:20;3413:1;3402:9;3398:17;3391:47;3455:78;3528:4;3519:6;3455:78;:::i;:::-;3447:86;;3345:195;;;;:::o;3546:419::-;;3750:2;3739:9;3735:18;3727:26;;3799:9;3793:4;3789:20;3785:1;3774:9;3770:17;3763:47;3827:131;3953:4;3827:131;:::i;:::-;3819:139;;3717:248;;;:::o;3971:222::-;;4102:2;4091:9;4087:18;4079:26;;4115:71;4183:1;4172:9;4168:17;4159:6;4115:71;:::i;:::-;4069:124;;;;:::o;4199:214::-;;4326:2;4315:9;4311:18;4303:26;;4339:67;4403:1;4392:9;4388:17;4379:6;4339:67;:::i;:::-;4293:120;;;;:::o;4419:99::-;;4505:5;4499:12;4489:22;;4478:40;;;:::o;4524:169::-;;4642:6;4637:3;4630:19;4682:4;4677:3;4673:14;4658:29;;4620:73;;;;:::o;4699:305::-;;4758:20;4776:1;4758:20;:::i;:::-;4753:25;;4792:20;4810:1;4792:20;:::i;:::-;4787:25;;4946:1;4878:66;4874:74;4871:1;4868:81;4865:2;;;4952:18;;:::i;:::-;4865:2;4996:1;4993;4989:9;4982:16;;4743:261;;;;:::o;5010:191::-;;5070:20;5088:1;5070:20;:::i;:::-;5065:25;;5104:20;5122:1;5104:20;:::i;:::-;5099:25;;5143:1;5140;5137:8;5134:2;;;5148:18;;:::i;:::-;5134:2;5193:1;5190;5186:9;5178:17;;5055:146;;;;:::o;5207:96::-;;5273:24;5291:5;5273:24;:::i;:::-;5262:35;;5252:51;;;:::o;5309:90::-;;5386:5;5379:13;5372:21;5361:32;;5351:48;;;:::o;5405:126::-;;5482:42;5475:5;5471:54;5460:65;;5450:81;;;:::o;5537:77::-;;5603:5;5592:16;;5582:32;;;:::o;5620:86::-;;5695:4;5688:5;5684:16;5673:27;;5663:43;;;:::o;5712:307::-;5780:1;5790:113;5804:6;5801:1;5798:13;5790:113;;;5889:1;5884:3;5880:11;5874:18;5870:1;5865:3;5861:11;5854:39;5826:2;5823:1;5819:10;5814:15;;5790:113;;;5921:6;5918:1;5915:13;5912:2;;;6001:1;5992:6;5987:3;5983:16;5976:27;5912:2;5761:258;;;;:::o;6025:180::-;6073:77;6070:1;6063:88;6170:4;6167:1;6160:15;6194:4;6191:1;6184:15;6211:102;;6303:2;6299:7;6294:2;6287:5;6283:14;6279:28;6269:38;;6259:54;;;:::o;6319:122::-;6392:24;6410:5;6392:24;:::i;:::-;6385:5;6382:35;6372:2;;6431:1;6428;6421:12;6372:2;6362:79;:::o;6447:122::-;6520:24;6538:5;6520:24;:::i;:::-;6513:5;6510:35;6500:2;;6559:1;6556;6549:12;6500:2;6490:79;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "810000", + "executionCost": "41761", + "totalCost": "851761" + }, + "external": { + "allowance(address,address)": "infinite", + "approve(address,uint256)": "infinite", + "balanceOf(address)": "1563", + "decimals()": "424", + "mint(address,uint256)": "infinite", + "name()": "infinite", + "symbol()": "infinite", + "totalSupply()": "1182", + "transfer(address,uint256)": "infinite", + "transferFrom(address,address,uint256)": "infinite" + } + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "delegate", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/contracts/artifacts/Usdc_metadata.json b/contracts/artifacts/Usdc_metadata.json new file mode 100644 index 0000000..ffd7771 --- /dev/null +++ b/contracts/artifacts/Usdc_metadata.json @@ -0,0 +1,290 @@ +{ + "compiler": { + "version": "0.8.0+commit.c7dfd78e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "delegate", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/usdc.sol": "Usdc" + }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/usdc.sol": { + "keccak256": "0xb1d1b58196ba0aaf894178f2c3c80497efd0272d72d162f9f940c59b876de12f", + "urls": [ + "bzz-raw://6a9e4137e31d5dc48396a119be8ec7c0e51692b5192a31a14c4e557a25f81495", + "dweb:/ipfs/QmaBVSNjVYG1yoGbgRmqGqmQVCbdGgMUpbhU6qM7LF8FVp" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/contracts/daiToken.sol b/contracts/daiToken.sol new file mode 100644 index 0000000..e911c2d --- /dev/null +++ b/contracts/daiToken.sol @@ -0,0 +1,101 @@ +pragma solidity >=0.8.0 <0.9.0; + +interface IERC20 { + + function totalSupply() external view returns (uint256); + function balanceOf(address account) external view returns (uint256); + function allowance(address owner, address spender) external view returns (uint256); + + function transfer(address recipient, uint256 amount) external returns (bool); + function approve(address spender, uint256 amount) external returns (bool); + function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); + + } + + +contract Dai is IERC20 { + + string public constant name = "Dai"; + string public constant symbol = "DAI"; + uint8 public constant decimals = 3; + + + event Approval(address indexed tokenOwner, address indexed spender, uint tokens); + event Transfer(address indexed from, address indexed to, uint tokens); + + + mapping(address => uint256) balances; + + mapping(address => mapping (address => uint256)) allowed; + + uint256 totalSupply_; + + using SafeMath for uint256; + + + constructor(){ + totalSupply_ = 100000000; + balances[msg.sender] = totalSupply_; + } + + function totalSupply() public override view returns (uint256) { + return totalSupply_; + } + + function balanceOf(address tokenOwner) public override view returns (uint256) { + return balances[tokenOwner]; + } + + + function transfer(address receiver, uint256 numTokens) public override returns (bool) { + require(numTokens <= balances[msg.sender]); + balances[msg.sender] = balances[msg.sender].sub(numTokens); + balances[receiver] = balances[receiver].add(numTokens); + emit Transfer(msg.sender, receiver, numTokens); + return true; + } + + function approve(address delegate, uint256 numTokens) public override returns (bool) { + allowed[msg.sender][delegate] = numTokens; + emit Approval(msg.sender, delegate, numTokens); + return true; + } + + function allowance(address owner, address delegate) public override view returns (uint) { + return allowed[owner][delegate]; + } + + function mint(address account, uint256 amount) public { + require(account != address(0), "ERC20: mint to the zero address"); + + totalSupply_ += amount; + balances[account] += amount; + emit Transfer(address(0), account, amount); + + + } + + function transferFrom(address owner, address buyer, uint256 numTokens) public override returns (bool) { + require(numTokens <= balances[owner]); + require(numTokens <= allowed[owner][msg.sender]); + + balances[owner] = balances[owner].sub(numTokens); + allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens); + balances[buyer] = balances[buyer].add(numTokens); + emit Transfer(owner, buyer, numTokens); + return true; + } +} + +library SafeMath { + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + assert(b <= a); + return a - b; + } + + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + assert(c >= a); + return c; + } +} diff --git a/contracts/optionsmarket.sol b/contracts/optionsmarket.sol index e9dd61a..af5a418 100644 --- a/contracts/optionsmarket.sol +++ b/contracts/optionsmarket.sol @@ -15,7 +15,8 @@ contract Core is ReentrancyGuard { //currently DAI is the stablecoin of choice and the address cannot be edited by anyone to prevent users unable to complete their option trade cycles under any circumstance. If the DAI address changes, a new contract should be used by users. address public daiTokenAddress = 0x6B175474E89094C44Da98b954EedeAC495271d0F; - IERC20 daiToken = IERC20(daiTokenAddress); +// address public daiTokenAddress; + IERC20 daiToken = IERC20(daiTokenAddress); //mappings for sellers and buyers of options (database) mapping(address=> mapping(address=> mapping(bool=> mapping(uint256=>mapping(uint256=> mapping(uint256=>uint256)))))) public orderbook; @@ -64,6 +65,12 @@ contract Core is ReentrancyGuard { mapping (uint256 => optionOffer) public optionOffers; + // function setDaiAddress(address _daiAddress) public{ + // daiTokenAddress = _daiAddress; + // } + + + //Allows anyone to attempt to excersize an option after its excersize date. This can be done by a bot of the service provider or the user themselves function excersizeOption(uint256 purchaseId) public returns (bool){ @@ -74,8 +81,8 @@ contract Core is ReentrancyGuard { IERC20 underlyingToken = IERC20(underlyingAddress); uint256 amountDAIToPay = opData.amountUnderlyingToken.mul(opData.strikePrice); require(daiToken.transferFrom(opData.buyer, opData.seller, amountDAIToPay), "Did the buyer approve this contract to handle DAI or have anough DAI to excersize?"); - underlyingToken.transfer(opData.buyer, opData.amountUnderlyingToken); optionPurchases[purchaseId].exercized= true; + underlyingToken.transfer(opData.buyer, opData.amountUnderlyingToken); emit OptionExcersize(purchaseId, amountDAIToPay, block.timestamp); return true; @@ -103,6 +110,7 @@ contract Core is ReentrancyGuard { orderbook[seller][token][isCallOption][strikePrice][premium][expiry] = orderbook[seller][token][isCallOption][strikePrice][premium][expiry].add(amountUnderlyingToken); } lastOrderId = lastOrderId.add(1); + optionOffers[lastOrderId] = optionOffer(seller, token, isCallOption, strikePrice, premium, expiry, amountUnderlyingToken, block.timestamp, true); emit OptionOffer( seller, token, isCallOption, strikePrice, premium, expiry, amountUnderlyingToken, lastOrderId); return lastOrderId; } @@ -146,9 +154,9 @@ contract Core is ReentrancyGuard { uint256 amountUnderlyingToReturn = orderbook[msg.sender][optionOffers[offerId].token][optionOffers[offerId].isCallOption][optionOffers[offerId].strikePrice][optionOffers[offerId].premium][optionOffers[offerId].expiry]; address underlyingAddress = optionOffers[offerId].token; IERC20 underlyingToken = IERC20(underlyingAddress); - underlyingToken.transfer(msg.sender, amountUnderlyingToReturn); orderbook[msg.sender][optionOffers[offerId].token][optionOffers[offerId].isCallOption][optionOffers[offerId].strikePrice][optionOffers[offerId].premium][optionOffers[offerId].expiry]= 0; optionOffers[offerId].isStillValid = false; + underlyingToken.transfer(msg.sender, amountUnderlyingToReturn); return true; } @@ -179,11 +187,11 @@ contract Core is ReentrancyGuard { } function transferFrom(address from , address recipient, uint256 amount,uint256 purchaseId) public {//Transfer the amount of options to the recipient address - uint256 allownace = approval(from, recipient, purchaseId); - require(allownace == 0 ,'Not approved'); - require(allownace>= amount,'Not approved for this amount'); + uint256 allowance = approval(from, recipient, purchaseId); + require(allowance == 0 ,'Not approved'); + require(allowance>= amount,'Not approved for this amount'); _transfer(from,recipient, amount, purchaseId); - approve(recipient,allownace.sub(amount),purchaseId); + approve(recipient,allowance.sub(amount),purchaseId); } function _transfer(address sender, address recipient, uint256 amount,uint256 purchaseId) internal {//inernal transfer function diff --git a/contracts/usdc.sol b/contracts/usdc.sol new file mode 100644 index 0000000..d9f89af --- /dev/null +++ b/contracts/usdc.sol @@ -0,0 +1,100 @@ +pragma solidity >=0.8.0 <0.9.0; + +interface IERC20 { + + function totalSupply() external view returns (uint256); + function balanceOf(address account) external view returns (uint256); + function allowance(address owner, address spender) external view returns (uint256); + + function transfer(address recipient, uint256 amount) external returns (bool); + function approve(address spender, uint256 amount) external returns (bool); + function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); + + } + + +contract Usdc is IERC20 { + + string public constant name = "Usdc"; + string public constant symbol = "USDC"; + uint8 public constant decimals = 3; + + + event Approval(address indexed tokenOwner, address indexed spender, uint tokens); + event Transfer(address indexed from, address indexed to, uint tokens); + + + mapping(address => uint256) balances; + + mapping(address => mapping (address => uint256)) allowed; + + uint256 totalSupply_; + + using SafeMath for uint256; + + + constructor(){ + totalSupply_ = 100000000; + balances[msg.sender] = totalSupply_; + } + + function totalSupply() public override view returns (uint256) { + return totalSupply_; + } + + function balanceOf(address tokenOwner) public override view returns (uint256) { + return balances[tokenOwner]; + } + + function transfer(address receiver, uint256 numTokens) public override returns (bool) { + require(numTokens <= balances[msg.sender]); + balances[msg.sender] = balances[msg.sender].sub(numTokens); + balances[receiver] = balances[receiver].add(numTokens); + emit Transfer(msg.sender, receiver, numTokens); + return true; + } + + function approve(address delegate, uint256 numTokens) public override returns (bool) { + allowed[msg.sender][delegate] = numTokens; + emit Approval(msg.sender, delegate, numTokens); + return true; + } + + function allowance(address owner, address delegate) public override view returns (uint) { + return allowed[owner][delegate]; + } + + function transferFrom(address owner, address buyer, uint256 numTokens) public override returns (bool) { + require(numTokens <= balances[owner]); + require(numTokens <= allowed[owner][msg.sender]); + + balances[owner] = balances[owner].sub(numTokens); + allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens); + balances[buyer] = balances[buyer].add(numTokens); + emit Transfer(owner, buyer, numTokens); + return true; + } + + function mint(address account, uint256 amount) public { + require(account != address(0), "ERC20: mint to the zero address"); + + totalSupply_ += amount; + balances[account] += amount; + emit Transfer(address(0), account, amount); + + + } +} + +library SafeMath { + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + assert(b <= a); + return a - b; + } + + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + assert(c >= a); + return c; + } +} diff --git a/migrations/2_deploy_contract.js b/migrations/2_deploy_contract.js new file mode 100644 index 0000000..7bcd9c3 --- /dev/null +++ b/migrations/2_deploy_contract.js @@ -0,0 +1,9 @@ +const Core = artifacts.require("Core"); +const Usdc = artifacts.require("Usdc"); +const Dai = artifacts.require("Dai"); + +module.exports = function (deployer) { + deployer.deploy(Core); + deployer.deploy(Usdc); + deployer.deploy(Dai); +}; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..cfc451d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6817 @@ +{ + "name": "OptionsMarket", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "@openzeppelin/contracts": "^4.2.0", + "web3": "^1.5.0" + } + }, + "node_modules/@ethereumjs/common": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.4.0.tgz", + "integrity": "sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w==", + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.0" + } + }, + "node_modules/@ethereumjs/tx": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.0.tgz", + "integrity": "sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA==", + "dependencies": { + "@ethereumjs/common": "^2.4.0", + "ethereumjs-util": "^7.1.0" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", + "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", + "dependencies": { + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.0.tgz", + "integrity": "sha512-vPBR7HKUBY0lpdllIn7tLIzNN7DrVnhCLKSzY0l8WAwxz686m/aL7ASDzrVxV93GJtIub6N2t4dfZ29CkPOxgA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/networks": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/web": "^5.4.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.0.tgz", + "integrity": "sha512-AieQAzt05HJZS2bMofpuxMEp81AHufA5D6M4ScKwtolj041nrfIbIi8ciNW7+F59VYxXq+V4c3d568Q6l2m8ew==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz", + "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/rlp": "^5.4.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz", + "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.4.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.1.tgz", + "integrity": "sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "bn.js": "^4.11.9" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz", + "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.4.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz", + "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.4.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", + "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", + "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.4.0", + "js-sha3": "0.5.7" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.0.tgz", + "integrity": "sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.1.tgz", + "integrity": "sha512-8SvowCKz9Uf4xC5DTKI8+il8lWqOr78kmiqAVLYT9lzB8aSmJHQMD1GSuJI0CW4hMAnzocpGpZLgiMdzsNSPig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.4.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.0.tgz", + "integrity": "sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.4.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", + "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", + "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", + "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz", + "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/rlp": "^5.4.0", + "@ethersproject/signing-key": "^5.4.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", + "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + }, + "node_modules/@openzeppelin/contracts": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.2.0.tgz", + "integrity": "sha512-LD4NnkKpHHSMo5z9MvFsG4g1xxZUDqV3A3Futu3nvyfs4wPwXxqOgMaxOoa2PeyGL2VNeSlbxT54enbQzGcgJQ==" + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "12.20.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.17.tgz", + "integrity": "sha512-so8EHl4S6MmatPS0f9sE1ND94/ocbcEshW5OpyYthRqeRpiYyW2uXYTo/84kmfdfeNrDycARkvuiXl6nO40NGg==" + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", + "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", + "engines": { + "node": "*" + } + }, + "node_modules/blakejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", + "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-rsa/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/bufferutil": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", + "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.2.0" + } + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "dependencies": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/cids/node_modules/multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "dependencies": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "dependencies": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/es-abstract": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.4.tgz", + "integrity": "sha512-xjDAPJRxKc1uoTkdW8MEk7Fq/2bzz3YoCADYniDV7+KITCUdu9c90fj1aKI7nEZFZxRrHlDo3wtma/C6QkhlXQ==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", + "dependencies": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + } + }, + "node_modules/eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "dependencies": { + "js-sha3": "^0.8.0" + } + }, + "node_modules/ethereum-bloom-filters/node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethereumjs-util": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.0.tgz", + "integrity": "sha512-kR+vhu++mUDARrsMMhsjjzPduRVAeundLGXucGRHF3B4oEltOUspfgCVco4kckucj3FMlLaZHUl9n7/kdmr6Tw==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethereumjs-util/node_modules/@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "engines": { + "node": "*" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dependencies": { + "has-symbol-support-x": "^1.4.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "dependencies": { + "punycode": "2.1.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/idna-uts46-hx/node_modules/punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "engines": { + "node": ">=6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "node_modules/is-generator-function": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", + "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", + "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", + "dependencies": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dependencies": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/keccak": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "dependencies": { + "mime-db": "1.49.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", + "dependencies": { + "mkdirp": "*" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mock-fs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", + "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "dependencies": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "node_modules/multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "deprecated": "stable api reached", + "dependencies": { + "varint": "^5.0.0" + } + }, + "node_modules/multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "dependencies": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + } + }, + "node_modules/multihashes/node_modules/multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "dependencies": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "node_modules/nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", + "dependencies": { + "http-https": "^1.0.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "engines": { + "node": ">=4" + } + }, + "node_modules/printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "bin": { + "printj": "bin/printj.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dependencies": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "dependencies": { + "bn.js": "^4.11.1" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "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==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "dependencies": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "dependencies": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/swarm-js": { + "version": "0.1.40", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", + "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", + "dependencies": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + } + }, + "node_modules/swarm-js/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "engines": { + "node": ">=4" + } + }, + "node_modules/swarm-js/node_modules/got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dependencies": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/swarm-js/node_modules/p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/swarm-js/node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/swarm-js/node_modules/url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tar": { + "version": "4.4.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.15.tgz", + "integrity": "sha512-ItbufpujXkry7bHH9NpQyTXPbJ72iTlXgkBAYsAjDXk3Ds8t/3NfO5P4xZGy7u+sYuQUbimgzswX4uQIEeNVOA==", + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "node_modules/url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", + "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.2.0" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "node_modules/util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/web3": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.0.tgz", + "integrity": "sha512-p6mOU+t11tV5Z0W9ISO2ReZlbB1ICp755ogl3OXOWZ+/oWy12wwnIva+z+ypsZc3P8gaoGaTvEwSfXM9NF164w==", + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.5.0", + "web3-core": "1.5.0", + "web3-eth": "1.5.0", + "web3-eth-personal": "1.5.0", + "web3-net": "1.5.0", + "web3-shh": "1.5.0", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-bzz": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.5.0.tgz", + "integrity": "sha512-IqlecWpwTMO/O5qa0XZZubQh4GwAtO/CR+e2FQ/7oB5eXQyre3DZ/MYu8s5HCLxCR33Fcqda9q2dbNtm1wSQYw==", + "hasInstallScript": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.5.0.tgz", + "integrity": "sha512-1o/etaPSK8tFOWTA6df3t9J6ez4epeyzlNmyh/gx8uHasfa16XLKD8//A9T+O/TmvyQAaA4hWAsQcvlRcuaZ8Q==", + "dependencies": { + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.5.0", + "web3-core-method": "1.5.0", + "web3-core-requestmanager": "1.5.0", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-helpers": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.0.tgz", + "integrity": "sha512-7s5SrJbG5O0C0Oi9mqKLYchco72djZhk59B7kTla5vUorAxMc99SY7k9BoDgwbFl2dlZon2GtFUEW2RXUNkb1g==", + "dependencies": { + "web3-eth-iban": "1.5.0", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-method": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.0.tgz", + "integrity": "sha512-izPhpjbn9jVBjMeFcsU7a5+/nqni9hS5oU+d00HJGTVbp8KV6zplhYw4GjkRqyy6OQzooO8Gx2MMUyRdv5x1wg==", + "dependencies": { + "@ethersproject/transactions": "^5.0.0-beta.135", + "web3-core-helpers": "1.5.0", + "web3-core-promievent": "1.5.0", + "web3-core-subscriptions": "1.5.0", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-promievent": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.0.tgz", + "integrity": "sha512-7GkbOIMtcp1qN8LRMMmwIhulzEldT+3Mu7ii2WgAcFFKT1yzUl6Gmycf8mmoEKpAuADAQ9Qeyk0PskTR6rTYlQ==", + "dependencies": { + "eventemitter3": "4.0.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-requestmanager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.0.tgz", + "integrity": "sha512-Sr5T2JuXOAsINJ2tf7Rgi2a+Dy2suBDKT8eMc1pcspPmaBhvTKOQfM9XdsO4yjJKYw6tt/Tagw4GKZm4IOx7mw==", + "dependencies": { + "util": "^0.12.0", + "web3-core-helpers": "1.5.0", + "web3-providers-http": "1.5.0", + "web3-providers-ipc": "1.5.0", + "web3-providers-ws": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-subscriptions": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.5.0.tgz", + "integrity": "sha512-dx9P1mZvJkQRiYpSo9SvFhYNzy5E9GHeLOc3uqxPaDxKU7Cu9fJnFHo/P6+wfD6ZhGIP23ZLK/uyor5UpdTqDQ==", + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.5.0.tgz", + "integrity": "sha512-31ni3YliTDYLKuWt8naitZ4Ru86whZlqvz6kFzCaBaCR/EumzA9ejzNbcX9okio9zUtKSHH37Bk0+WogfU9Jqg==", + "dependencies": { + "web3-core": "1.5.0", + "web3-core-helpers": "1.5.0", + "web3-core-method": "1.5.0", + "web3-core-subscriptions": "1.5.0", + "web3-eth-abi": "1.5.0", + "web3-eth-accounts": "1.5.0", + "web3-eth-contract": "1.5.0", + "web3-eth-ens": "1.5.0", + "web3-eth-iban": "1.5.0", + "web3-eth-personal": "1.5.0", + "web3-net": "1.5.0", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-abi": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.0.tgz", + "integrity": "sha512-rfT/SvfZY9+SNJRzTHxLFaebQRBhS67tGqUqLxlyy6EsAcEmIs/g4mAUH5atYwPE9bOQeiVoLKLbwJEBIcw86w==", + "dependencies": { + "@ethersproject/abi": "5.0.7", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-accounts": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.0.tgz", + "integrity": "sha512-tqvF2bKECaS6jDux8h1dkdsrfb5SHIVVA6hu2lJmZNlTBqFIq2A8rfOkqcanie6Vh5n5U7Dnc2LUoN9rxgaSSg==", + "dependencies": { + "@ethereumjs/common": "^2.3.0", + "@ethereumjs/tx": "^3.2.1", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.0.10", + "scrypt-js": "^3.0.1", + "uuid": "3.3.2", + "web3-core": "1.5.0", + "web3-core-helpers": "1.5.0", + "web3-core-method": "1.5.0", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-accounts/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/web3-eth-contract": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.0.tgz", + "integrity": "sha512-v4laiJRzdcoDwvqaMCzJH1BUosbTVsd01Qp+9v05Q94KycjkdeahPRXX6PEcUNW/ZF8N006iExUweGjajTZnTA==", + "dependencies": { + "@types/bn.js": "^4.11.5", + "web3-core": "1.5.0", + "web3-core-helpers": "1.5.0", + "web3-core-method": "1.5.0", + "web3-core-promievent": "1.5.0", + "web3-core-subscriptions": "1.5.0", + "web3-eth-abi": "1.5.0", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-ens": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.5.0.tgz", + "integrity": "sha512-NiaGfOnsCqP+3hOCeP3Q9IrlV/1ZCDiv8VmN1yF5Ya6n6YeO4TJU9MKP8i5038RFETjLIfGtXr5fthbsob30hA==", + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.5.0", + "web3-core-helpers": "1.5.0", + "web3-core-promievent": "1.5.0", + "web3-eth-abi": "1.5.0", + "web3-eth-contract": "1.5.0", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-iban": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.0.tgz", + "integrity": "sha512-cFfiPA8xs4lemMJjDb9KfXzPvs6rBrRl8y4rgvh/JWlZZgKolzo7KLXq4NR3oFd/C81s0Lslvz2st1EREp5CNA==", + "dependencies": { + "bn.js": "^4.11.9", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-personal": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.0.tgz", + "integrity": "sha512-FYBrzMS6q/df8ud1kAN1p6lqdP/pd0szogcuyrVyi++bFQiovnR+QosudFsbn/aAZPDHOEh0UV4P3KVKbLqw9g==", + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.5.0", + "web3-core-helpers": "1.5.0", + "web3-core-method": "1.5.0", + "web3-net": "1.5.0", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-net": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.5.0.tgz", + "integrity": "sha512-oGgEtO2fRtJjAp0K1/fvH247MeeDemFL+5tF+PxII9b/gBxnVe+MzP+oNLr4dTrweromjv34tioR3kUgsqwCWg==", + "dependencies": { + "web3-core": "1.5.0", + "web3-core-method": "1.5.0", + "web3-utils": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-http": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.5.0.tgz", + "integrity": "sha512-y1RuxsCGrWdsIUyuZBEN+3F8trl3bDZNajwLS2KYBGlB99sWYZHPmvbAsBpaW1d/I12W0fQiWOVzp63L7KPTow==", + "dependencies": { + "web3-core-helpers": "1.5.0", + "xhr2-cookies": "1.1.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ipc": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.5.0.tgz", + "integrity": "sha512-Hda9wlOaIJC9/qMOVkayK+fbBHDZBmPcoL7TfjQX7hrtZn8V3+gR27ciyRXmuW7QD3hDg7CJfe5uRK8brh3nSA==", + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ws": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.5.0.tgz", + "integrity": "sha512-TCwOhu5WbuQCSUoar+U+7N1NqI4A6MlcdZqsC7AhTogYYtnXOPRWfiHMZtUP7Qw50GKJ37FIH3YDItcHTNHd6A==", + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.5.0", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-shh": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.5.0.tgz", + "integrity": "sha512-TwpcxXNh+fBnyRcCPPqVqaCB4IjSpVL2/5OR2WwCnZwejs1ife+pej8DYVZWm0m1tSzIDRTdNbsJf/DN0cAxYQ==", + "hasInstallScript": true, + "dependencies": { + "web3-core": "1.5.0", + "web3-core-method": "1.5.0", + "web3-core-subscriptions": "1.5.0", + "web3-net": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.0.tgz", + "integrity": "sha512-hNyw7Oxi6TM3ivXmv4hK5Cvyi9ML3UoKtcCYvLF9woPWh5v2dwCCVO1U3Iq5HHK7Dqq28t1d4CxWHqUfOfAkgg==", + "dependencies": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", + "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "dependencies": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dependencies": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "dependencies": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "node_modules/xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "dependencies": { + "xhr-request": "^1.1.0" + } + }, + "node_modules/xhr2-cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", + "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "dependencies": { + "cookiejar": "^2.1.1" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + }, + "dependencies": { + "@ethereumjs/common": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.4.0.tgz", + "integrity": "sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.0" + } + }, + "@ethereumjs/tx": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.0.tgz", + "integrity": "sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA==", + "requires": { + "@ethereumjs/common": "^2.4.0", + "ethereumjs-util": "^7.1.0" + } + }, + "@ethersproject/abi": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", + "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", + "requires": { + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.0.tgz", + "integrity": "sha512-vPBR7HKUBY0lpdllIn7tLIzNN7DrVnhCLKSzY0l8WAwxz686m/aL7ASDzrVxV93GJtIub6N2t4dfZ29CkPOxgA==", + "requires": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/networks": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/web": "^5.4.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.0.tgz", + "integrity": "sha512-AieQAzt05HJZS2bMofpuxMEp81AHufA5D6M4ScKwtolj041nrfIbIi8ciNW7+F59VYxXq+V4c3d568Q6l2m8ew==", + "requires": { + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0" + } + }, + "@ethersproject/address": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz", + "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==", + "requires": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/rlp": "^5.4.0" + } + }, + "@ethersproject/base64": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz", + "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==", + "requires": { + "@ethersproject/bytes": "^5.4.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.1.tgz", + "integrity": "sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz", + "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/constants": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz", + "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==", + "requires": { + "@ethersproject/bignumber": "^5.4.0" + } + }, + "@ethersproject/hash": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", + "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==", + "requires": { + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + }, + "@ethersproject/keccak256": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", + "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "js-sha3": "0.5.7" + } + }, + "@ethersproject/logger": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.0.tgz", + "integrity": "sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ==" + }, + "@ethersproject/networks": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.1.tgz", + "integrity": "sha512-8SvowCKz9Uf4xC5DTKI8+il8lWqOr78kmiqAVLYT9lzB8aSmJHQMD1GSuJI0CW4hMAnzocpGpZLgiMdzsNSPig==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/properties": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.0.tgz", + "integrity": "sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/rlp": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", + "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", + "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/strings": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", + "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/transactions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz", + "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==", + "requires": { + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/rlp": "^5.4.0", + "@ethersproject/signing-key": "^5.4.0" + } + }, + "@ethersproject/web": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", + "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==", + "requires": { + "@ethersproject/base64": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + }, + "@openzeppelin/contracts": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.2.0.tgz", + "integrity": "sha512-LD4NnkKpHHSMo5z9MvFsG4g1xxZUDqV3A3Futu3nvyfs4wPwXxqOgMaxOoa2PeyGL2VNeSlbxT54enbQzGcgJQ==" + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "12.20.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.17.tgz", + "integrity": "sha512-so8EHl4S6MmatPS0f9sE1ND94/ocbcEshW5OpyYthRqeRpiYyW2uXYTo/84kmfdfeNrDycARkvuiXl6nO40NGg==" + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "requires": { + "@types/node": "*" + } + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "available-typed-arrays": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", + "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + }, + "blakejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", + "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "bufferutil": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", + "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "requires": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "dependencies": { + "multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "requires": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + } + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "requires": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "es-abstract": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.4.tgz", + "integrity": "sha512-xjDAPJRxKc1uoTkdW8MEk7Fq/2bzz3YoCADYniDV7+KITCUdu9c90fj1aKI7nEZFZxRrHlDo3wtma/C6QkhlXQ==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", + "requires": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + } + }, + "eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "requires": { + "js-sha3": "^0.8.0" + }, + "dependencies": { + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + } + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "ethereumjs-util": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.0.tgz", + "integrity": "sha512-kR+vhu++mUDARrsMMhsjjzPduRVAeundLGXucGRHF3B4oEltOUspfgCVco4kckucj3FMlLaZHUl9n7/kdmr6Tw==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.0" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" + }, + "is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + }, + "is-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-generator-function": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", + "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==" + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==" + }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==" + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", + "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keccak": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + }, + "mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "requires": { + "mime-db": "1.49.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "requires": { + "mkdirp": "*" + } + }, + "mock-fs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", + "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "requires": { + "varint": "^5.0.0" + } + }, + "multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "requires": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + }, + "dependencies": { + "multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + } + } + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", + "requires": { + "http-https": "^1.0.0" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "requires": { + "bn.js": "^4.11.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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "requires": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "swarm-js": { + "version": "0.1.40", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", + "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + } + } + }, + "tar": { + "version": "4.4.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.15.tgz", + "integrity": "sha512-ItbufpujXkry7bHH9NpQyTXPbJ72iTlXgkBAYsAjDXk3Ds8t/3NfO5P4xZGy7u+sYuQUbimgzswX4uQIEeNVOA==", + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "utf-8-validate": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", + "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "web3": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.0.tgz", + "integrity": "sha512-p6mOU+t11tV5Z0W9ISO2ReZlbB1ICp755ogl3OXOWZ+/oWy12wwnIva+z+ypsZc3P8gaoGaTvEwSfXM9NF164w==", + "requires": { + "web3-bzz": "1.5.0", + "web3-core": "1.5.0", + "web3-eth": "1.5.0", + "web3-eth-personal": "1.5.0", + "web3-net": "1.5.0", + "web3-shh": "1.5.0", + "web3-utils": "1.5.0" + } + }, + "web3-bzz": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.5.0.tgz", + "integrity": "sha512-IqlecWpwTMO/O5qa0XZZubQh4GwAtO/CR+e2FQ/7oB5eXQyre3DZ/MYu8s5HCLxCR33Fcqda9q2dbNtm1wSQYw==", + "requires": { + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40" + } + }, + "web3-core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.5.0.tgz", + "integrity": "sha512-1o/etaPSK8tFOWTA6df3t9J6ez4epeyzlNmyh/gx8uHasfa16XLKD8//A9T+O/TmvyQAaA4hWAsQcvlRcuaZ8Q==", + "requires": { + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.5.0", + "web3-core-method": "1.5.0", + "web3-core-requestmanager": "1.5.0", + "web3-utils": "1.5.0" + } + }, + "web3-core-helpers": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.0.tgz", + "integrity": "sha512-7s5SrJbG5O0C0Oi9mqKLYchco72djZhk59B7kTla5vUorAxMc99SY7k9BoDgwbFl2dlZon2GtFUEW2RXUNkb1g==", + "requires": { + "web3-eth-iban": "1.5.0", + "web3-utils": "1.5.0" + } + }, + "web3-core-method": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.0.tgz", + "integrity": "sha512-izPhpjbn9jVBjMeFcsU7a5+/nqni9hS5oU+d00HJGTVbp8KV6zplhYw4GjkRqyy6OQzooO8Gx2MMUyRdv5x1wg==", + "requires": { + "@ethersproject/transactions": "^5.0.0-beta.135", + "web3-core-helpers": "1.5.0", + "web3-core-promievent": "1.5.0", + "web3-core-subscriptions": "1.5.0", + "web3-utils": "1.5.0" + } + }, + "web3-core-promievent": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.0.tgz", + "integrity": "sha512-7GkbOIMtcp1qN8LRMMmwIhulzEldT+3Mu7ii2WgAcFFKT1yzUl6Gmycf8mmoEKpAuADAQ9Qeyk0PskTR6rTYlQ==", + "requires": { + "eventemitter3": "4.0.4" + } + }, + "web3-core-requestmanager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.0.tgz", + "integrity": "sha512-Sr5T2JuXOAsINJ2tf7Rgi2a+Dy2suBDKT8eMc1pcspPmaBhvTKOQfM9XdsO4yjJKYw6tt/Tagw4GKZm4IOx7mw==", + "requires": { + "util": "^0.12.0", + "web3-core-helpers": "1.5.0", + "web3-providers-http": "1.5.0", + "web3-providers-ipc": "1.5.0", + "web3-providers-ws": "1.5.0" + } + }, + "web3-core-subscriptions": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.5.0.tgz", + "integrity": "sha512-dx9P1mZvJkQRiYpSo9SvFhYNzy5E9GHeLOc3uqxPaDxKU7Cu9fJnFHo/P6+wfD6ZhGIP23ZLK/uyor5UpdTqDQ==", + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.5.0" + } + }, + "web3-eth": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.5.0.tgz", + "integrity": "sha512-31ni3YliTDYLKuWt8naitZ4Ru86whZlqvz6kFzCaBaCR/EumzA9ejzNbcX9okio9zUtKSHH37Bk0+WogfU9Jqg==", + "requires": { + "web3-core": "1.5.0", + "web3-core-helpers": "1.5.0", + "web3-core-method": "1.5.0", + "web3-core-subscriptions": "1.5.0", + "web3-eth-abi": "1.5.0", + "web3-eth-accounts": "1.5.0", + "web3-eth-contract": "1.5.0", + "web3-eth-ens": "1.5.0", + "web3-eth-iban": "1.5.0", + "web3-eth-personal": "1.5.0", + "web3-net": "1.5.0", + "web3-utils": "1.5.0" + } + }, + "web3-eth-abi": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.0.tgz", + "integrity": "sha512-rfT/SvfZY9+SNJRzTHxLFaebQRBhS67tGqUqLxlyy6EsAcEmIs/g4mAUH5atYwPE9bOQeiVoLKLbwJEBIcw86w==", + "requires": { + "@ethersproject/abi": "5.0.7", + "web3-utils": "1.5.0" + } + }, + "web3-eth-accounts": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.0.tgz", + "integrity": "sha512-tqvF2bKECaS6jDux8h1dkdsrfb5SHIVVA6hu2lJmZNlTBqFIq2A8rfOkqcanie6Vh5n5U7Dnc2LUoN9rxgaSSg==", + "requires": { + "@ethereumjs/common": "^2.3.0", + "@ethereumjs/tx": "^3.2.1", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.0.10", + "scrypt-js": "^3.0.1", + "uuid": "3.3.2", + "web3-core": "1.5.0", + "web3-core-helpers": "1.5.0", + "web3-core-method": "1.5.0", + "web3-utils": "1.5.0" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } + } + }, + "web3-eth-contract": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.0.tgz", + "integrity": "sha512-v4laiJRzdcoDwvqaMCzJH1BUosbTVsd01Qp+9v05Q94KycjkdeahPRXX6PEcUNW/ZF8N006iExUweGjajTZnTA==", + "requires": { + "@types/bn.js": "^4.11.5", + "web3-core": "1.5.0", + "web3-core-helpers": "1.5.0", + "web3-core-method": "1.5.0", + "web3-core-promievent": "1.5.0", + "web3-core-subscriptions": "1.5.0", + "web3-eth-abi": "1.5.0", + "web3-utils": "1.5.0" + } + }, + "web3-eth-ens": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.5.0.tgz", + "integrity": "sha512-NiaGfOnsCqP+3hOCeP3Q9IrlV/1ZCDiv8VmN1yF5Ya6n6YeO4TJU9MKP8i5038RFETjLIfGtXr5fthbsob30hA==", + "requires": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.5.0", + "web3-core-helpers": "1.5.0", + "web3-core-promievent": "1.5.0", + "web3-eth-abi": "1.5.0", + "web3-eth-contract": "1.5.0", + "web3-utils": "1.5.0" + } + }, + "web3-eth-iban": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.0.tgz", + "integrity": "sha512-cFfiPA8xs4lemMJjDb9KfXzPvs6rBrRl8y4rgvh/JWlZZgKolzo7KLXq4NR3oFd/C81s0Lslvz2st1EREp5CNA==", + "requires": { + "bn.js": "^4.11.9", + "web3-utils": "1.5.0" + } + }, + "web3-eth-personal": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.0.tgz", + "integrity": "sha512-FYBrzMS6q/df8ud1kAN1p6lqdP/pd0szogcuyrVyi++bFQiovnR+QosudFsbn/aAZPDHOEh0UV4P3KVKbLqw9g==", + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.5.0", + "web3-core-helpers": "1.5.0", + "web3-core-method": "1.5.0", + "web3-net": "1.5.0", + "web3-utils": "1.5.0" + } + }, + "web3-net": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.5.0.tgz", + "integrity": "sha512-oGgEtO2fRtJjAp0K1/fvH247MeeDemFL+5tF+PxII9b/gBxnVe+MzP+oNLr4dTrweromjv34tioR3kUgsqwCWg==", + "requires": { + "web3-core": "1.5.0", + "web3-core-method": "1.5.0", + "web3-utils": "1.5.0" + } + }, + "web3-providers-http": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.5.0.tgz", + "integrity": "sha512-y1RuxsCGrWdsIUyuZBEN+3F8trl3bDZNajwLS2KYBGlB99sWYZHPmvbAsBpaW1d/I12W0fQiWOVzp63L7KPTow==", + "requires": { + "web3-core-helpers": "1.5.0", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.5.0.tgz", + "integrity": "sha512-Hda9wlOaIJC9/qMOVkayK+fbBHDZBmPcoL7TfjQX7hrtZn8V3+gR27ciyRXmuW7QD3hDg7CJfe5uRK8brh3nSA==", + "requires": { + "oboe": "2.1.5", + "web3-core-helpers": "1.5.0" + } + }, + "web3-providers-ws": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.5.0.tgz", + "integrity": "sha512-TCwOhu5WbuQCSUoar+U+7N1NqI4A6MlcdZqsC7AhTogYYtnXOPRWfiHMZtUP7Qw50GKJ37FIH3YDItcHTNHd6A==", + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.5.0", + "websocket": "^1.0.32" + } + }, + "web3-shh": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.5.0.tgz", + "integrity": "sha512-TwpcxXNh+fBnyRcCPPqVqaCB4IjSpVL2/5OR2WwCnZwejs1ife+pej8DYVZWm0m1tSzIDRTdNbsJf/DN0cAxYQ==", + "requires": { + "web3-core": "1.5.0", + "web3-core-method": "1.5.0", + "web3-core-subscriptions": "1.5.0", + "web3-net": "1.5.0" + } + }, + "web3-utils": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.0.tgz", + "integrity": "sha512-hNyw7Oxi6TM3ivXmv4hK5Cvyi9ML3UoKtcCYvLF9woPWh5v2dwCCVO1U3Iq5HHK7Dqq28t1d4CxWHqUfOfAkgg==", + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, + "websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "requires": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", + "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "requires": { + "xhr-request": "^1.1.0" + } + }, + "xhr2-cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", + "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "requires": { + "cookiejar": "^2.1.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..aabbd61 --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "@openzeppelin/contracts": "^4.2.0", + "web3": "^1.5.0" + } +} diff --git a/scripts/mainnet-fork-tx.js b/scripts/mainnet-fork-tx.js new file mode 100644 index 0000000..0ccbc17 --- /dev/null +++ b/scripts/mainnet-fork-tx.js @@ -0,0 +1,32 @@ + +const daiABI = require('../ABI/dai.json'); + + + +const local_address1 = '0x4913Df37c593E3E5ff11bE4541be462DDd41A3cA'; +const local_address2 = '0xe7819e4b6e55D31a9b19594Af438CbB46fDC7f6d'; + + + + + + +const transferFunds= async()=> { + + //transfer dai to address 2 + await daiInstance.methods.transfer(local_address2, 100).send({from: cloned_address}); + + //transfer usdt to address1 + await usdtInstance.methods.transfer(local_address1, 100).send({from: cloned_address}); + + console.log(await daiInstance.methods.balanceOf(local_address2).call(), await usdtInstance.methods.balanceOf(local_address1).call()); + + + + +} + +transferFunds(); + + + diff --git a/test/ABI/dai.json b/test/ABI/dai.json new file mode 100644 index 0000000..684bd65 --- /dev/null +++ b/test/ABI/dai.json @@ -0,0 +1,247 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "delegate", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } +] \ No newline at end of file diff --git a/test/ABI/usdt.json b/test/ABI/usdt.json new file mode 100644 index 0000000..684bd65 --- /dev/null +++ b/test/ABI/usdt.json @@ -0,0 +1,247 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "delegate", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } +] \ No newline at end of file diff --git a/test/test.js b/test/test.js new file mode 100644 index 0000000..1460e8c --- /dev/null +++ b/test/test.js @@ -0,0 +1,121 @@ +const Web3 = require('web3'); +const OptionsMarket = artifacts.require('Core'); +const Usdc = artifacts.require('Usdc'); +const Dai = artifacts.require('Dai'); +const daiABI = require('./ABI/dai.json'); +const usdcABI = require('./ABI/usdt.json'); + +const core = require('../build/contracts/Core.json'); +const coreABI = core.abi + +contract('Core', async(accounts)=> { + let coreContractAddress; + let dai_address; + let usdc_address; + let usdcDeployed; + let daiDeployed; + let coreDeployed; + let coreContractInstance; + let buyer = accounts[1]; + let seller = accounts[0]; + + + + before(async()=> { + coreDeployed = await OptionsMarket.deployed(); + usdcDeployed = await Usdc.deployed(); + daiDeployed = await Dai.deployed(); + usdc_address = usdcDeployed.address; + coreContractAddress = coreDeployed.address; + dai_address = daiDeployed.address; + + + //set dai token address + await coreDeployed.setDaiAddress(dai_address); + + //addresses should mint tokens + await daiDeployed.mint(buyer, 10000000); + + await usdcDeployed.mint(seller, 10000000); + console.log(daiDeployed.address, 'yes!!!!'); + + }) + + + it('should deploy core contract,usdc contract and addresses can mint test token', async()=> { + + assert(coreDeployed.address !==''); + assert(usdcDeployed.address !==''); + + //check balance of dai in buyer address and usdt in seller address + const daiBalance = (await daiDeployed.balanceOf(buyer)).toNumber(); + const usdcBalance = (await usdcDeployed.balanceOf(seller)).toNumber(); + + console.log(daiBalance, usdcBalance, 'balances'); + + assert(daiBalance !== 0); + assert(usdcBalance !== 0); + console.log(coreDeployed.address, usdcDeployed.address, 'deployed successfully'); + }) + + + it('should call sellOption function properly', async()=> { + //check lastorderId + const last_order_id_before_tx = (await coreDeployed.lastOrderId()).toNumber(); + console.log(last_order_id_before_tx, 'order id') + + //approve core contract to spend usdt token + await usdcDeployed.approve(coreDeployed.address, 50, {from: seller}); + + + // call the sellOption function after approval + const tx = await coreDeployed.sellOption(seller, usdc_address, true, 10, 10, 0, 30, {from: seller}); + + //check that last orderID increments + const last_order_id_after_tx = (await coreDeployed.lastOrderId()).toNumber(); + + console.log(last_order_id_after_tx, last_order_id_before_tx, 'order id') + assert(last_order_id_after_tx - last_order_id_before_tx == 1); + assert(tx.logs[0].event == "OptionOffer"); + }) + +/* it('should buy option by ID', async()=> { + //check lastorderId + const last_order_id_before_tx = (await coreDeployed.lastOrderId()).toNumber(); + console.log(last_order_id_before_tx, 'order id') + + //approve core contract to spend usdt token + await usdcDeployed.approve(coreDeployed.address, 50, {from: seller}); + + + // call the sellOption function after approval + const tx = await coreDeployed.sellOption(seller, usdc_address, true, 10, 10, 5, 30, {from: seller}); + + //check that last orderID increments + const last_order_id_after_tx = (await coreDeployed.lastOrderId()).toNumber(); + + assert(last_order_id_after_tx - last_order_id_before_tx == 1); + assert(tx.logs[0].event == "OptionOffer"); + + + //test for buyOptionsByExactPremiumAndExpiry + //check for lastPurchaseId + const last_Purchase_Id_before_tx = (await coreDeployed.lastPurchaseId()).toNumber(); + //approve contract to spend daiToken + await daiDeployed.approve(coreContractAddress, 100, {from: buyer}); + console.log((await coreDeployed.daiTokenAddress()), daiDeployed.address, 'dai test address') + + //call the buyOptionsByExactPremiumAndExpiry method + const reciept = await coreDeployed.buyOptionByID(buyer,1, 15, {from: buyer}); + console.log(reciept, 'buy reciept'); + const last_Purchase_Id_after_tx = (await coreDeployed.lastPurchaseId()).toNumber(); + + //check that purchase id incremented + assert(last_Purchase_Id_after_tx - last_Purchase_Id_before_tx == 1); + assert(reciept.logs[0].event == "OptionPurchase"); + + }) + */ + + +}) \ No newline at end of file diff --git a/truffle-config.js b/truffle-config.js index a707377..9d4e174 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -42,11 +42,11 @@ module.exports = { // tab if you use this network and you must also set the `host`, `port` and `network_id` // options below to some value. // - // development: { - // host: "127.0.0.1", // Localhost (default: none) - // port: 8545, // Standard Ethereum port (default: none) - // network_id: "*", // Any network (default: none) - // }, + development: { + host: "127.0.0.1", // Localhost (default: none) + port: 8545, // Standard Ethereum port (default: none) + network_id: "*", // Any network (default: none) + }, // Another network with more advanced options... // advanced: { // port: 8777, // Custom port @@ -82,7 +82,7 @@ module.exports = { // Configure your compilers compilers: { solc: { - // version: "0.5.1", // Fetch exact version from solc-bin (default: truffle's version) + version: "0.8.0", // Fetch exact version from solc-bin (default: truffle's version) // docker: true, // Use "0.5.1" you've installed locally with docker (default: false) // settings: { // See the solidity docs for advice about optimization and evmVersion // optimizer: {