{ "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "", "type": "string" } ], "name": "log", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "", "type": "address" } ], "name": "log_address", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "val", "type": "uint256[]" } ], "name": "log_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "int256[]", "name": "val", "type": "int256[]" } ], "name": "log_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[]", "name": "val", "type": "address[]" } ], "name": "log_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "log_bytes", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "log_bytes32", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "int256", "name": "", "type": "int256" } ], "name": "log_int", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "address", "name": "val", "type": "address" } ], "name": "log_named_address", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "uint256[]", "name": "val", "type": "uint256[]" } ], "name": "log_named_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "int256[]", "name": "val", "type": "int256[]" } ], "name": "log_named_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "address[]", "name": "val", "type": "address[]" } ], "name": "log_named_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "val", "type": "bytes" } ], "name": "log_named_bytes", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "bytes32", "name": "val", "type": "bytes32" } ], "name": "log_named_bytes32", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "int256", "name": "val", "type": "int256" }, { "indexed": false, "internalType": "uint256", "name": "decimals", "type": "uint256" } ], "name": "log_named_decimal_int", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "val", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "decimals", "type": "uint256" } ], "name": "log_named_decimal_uint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "int256", "name": "val", "type": "int256" } ], "name": "log_named_int", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "string", "name": "val", "type": "string" } ], "name": "log_named_string", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "val", "type": "uint256" } ], "name": "log_named_uint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "", "type": "string" } ], "name": "log_string", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "log_uint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "logs", "type": "event" }, { "inputs": [], "name": "IS_TEST", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "failed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, "deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, "methodIdentifiers": { "IS_TEST()": "fa7626d4", "failed()": "ba414fa6" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdAssertions.sol\":\"StdAssertions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xde2bdee8e0e530de3269da50ebba83f4f90dde817971488980b720281e3cde4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb3f05bb06b654db43f4ce38e22aa7e2296ee00615df5329623c08c9ac030f8d\",\"dweb:/ipfs/QmdKwTpFsTiDFmc8zGwbPRu8mDs4oiKdZvzSj3WpiiGaez\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "string", "name": "", "type": "string", "indexed": false } ], "type": "event", "name": "log", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "", "type": "address", "indexed": false } ], "type": "event", "name": "log_address", "anonymous": false }, { "inputs": [ { "internalType": "uint256[]", "name": "val", "type": "uint256[]", "indexed": false } ], "type": "event", "name": "log_array", "anonymous": false }, { "inputs": [ { "internalType": "int256[]", "name": "val", "type": "int256[]", "indexed": false } ], "type": "event", "name": "log_array", "anonymous": false }, { "inputs": [ { "internalType": "address[]", "name": "val", "type": "address[]", "indexed": false } ], "type": "event", "name": "log_array", "anonymous": false }, { "inputs": [ { "internalType": "bytes", "name": "", "type": "bytes", "indexed": false } ], "type": "event", "name": "log_bytes", "anonymous": false }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32", "indexed": false } ], "type": "event", "name": "log_bytes32", "anonymous": false }, { "inputs": [ { "internalType": "int256", "name": "", "type": "int256", "indexed": false } ], "type": "event", "name": "log_int", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "address", "name": "val", "type": "address", "indexed": false } ], "type": "event", "name": "log_named_address", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "uint256[]", "name": "val", "type": "uint256[]", "indexed": false } ], "type": "event", "name": "log_named_array", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "int256[]", "name": "val", "type": "int256[]", "indexed": false } ], "type": "event", "name": "log_named_array", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "address[]", "name": "val", "type": "address[]", "indexed": false } ], "type": "event", "name": "log_named_array", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "bytes", "name": "val", "type": "bytes", "indexed": false } ], "type": "event", "name": "log_named_bytes", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "bytes32", "name": "val", "type": "bytes32", "indexed": false } ], "type": "event", "name": "log_named_bytes32", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "int256", "name": "val", "type": "int256", "indexed": false }, { "internalType": "uint256", "name": "decimals", "type": "uint256", "indexed": false } ], "type": "event", "name": "log_named_decimal_int", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "uint256", "name": "val", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "decimals", "type": "uint256", "indexed": false } ], "type": "event", "name": "log_named_decimal_uint", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "int256", "name": "val", "type": "int256", "indexed": false } ], "type": "event", "name": "log_named_int", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "string", "name": "val", "type": "string", "indexed": false } ], "type": "event", "name": "log_named_string", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "uint256", "name": "val", "type": "uint256", "indexed": false } ], "type": "event", "name": "log_named_uint", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "", "type": "string", "indexed": false } ], "type": "event", "name": "log_string", "anonymous": false }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256", "indexed": false } ], "type": "event", "name": "log_uint", "anonymous": false }, { "inputs": [ { "internalType": "bytes", "name": "", "type": "bytes", "indexed": false } ], "type": "event", "name": "logs", "anonymous": false }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "IS_TEST", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "failed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] } ], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, "settings": { "remappings": [ ":@ensdomains/=node_modules/@ensdomains/", ":@openzeppelin/=node_modules/@openzeppelin/", ":ds-test/=lib/forge-std/lib/ds-test/src/", ":eth-gas-reporter/=node_modules/eth-gas-reporter/", ":forge-std/=lib/forge-std/src/", ":hardhat-deploy/=node_modules/hardhat-deploy/", ":hardhat/=node_modules/hardhat/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "lib/forge-std/src/StdAssertions.sol": "StdAssertions" }, "libraries": {}, "viaIR": true }, "sources": { "lib/forge-std/lib/ds-test/src/test.sol": { "keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54", "urls": [ "bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5", "dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr" ], "license": "GPL-3.0-or-later" }, "lib/forge-std/src/StdAssertions.sol": { "keccak256": "0xde2bdee8e0e530de3269da50ebba83f4f90dde817971488980b720281e3cde4d", "urls": [ "bzz-raw://cb3f05bb06b654db43f4ce38e22aa7e2296ee00615df5329623c08c9ac030f8d", "dweb:/ipfs/QmdKwTpFsTiDFmc8zGwbPRu8mDs4oiKdZvzSj3WpiiGaez" ], "license": "MIT" }, "lib/forge-std/src/StdMath.sol": { "keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2", "urls": [ "bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92", "dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC" ], "license": "MIT" } }, "version": 1 }, "ast": { "absolutePath": "lib/forge-std/src/StdAssertions.sol", "id": 3371, "exportedSymbols": { "DSTest": [ 2512 ], "StdAssertions": [ 3370 ], "stdMath": [ 6357 ] }, "nodeType": "SourceUnit", "src": "32:7322:5", "nodes": [ { "id": 2558, "nodeType": "PragmaDirective", "src": "32:31:5", "nodes": [], "literals": [ "solidity", ">=", "0.6", ".2", "<", "0.9", ".0" ] }, { "id": 2559, "nodeType": "ImportDirective", "src": "65:26:5", "nodes": [], "absolutePath": "lib/forge-std/lib/ds-test/src/test.sol", "file": "ds-test/test.sol", "nameLocation": "-1:-1:-1", "scope": 3371, "sourceUnit": 2513, "symbolAliases": [], "unitAlias": "" }, { "id": 2560, "nodeType": "ImportDirective", "src": "92:23:5", "nodes": [], "absolutePath": "lib/forge-std/src/StdMath.sol", "file": "./StdMath.sol", "nameLocation": "-1:-1:-1", "scope": 3371, "sourceUnit": 6358, "symbolAliases": [], "unitAlias": "" }, { "id": 3370, "nodeType": "ContractDefinition", "src": "117:7236:5", "nodes": [ { "id": 2567, "nodeType": "EventDefinition", "src": "165:31:5", "nodes": [], "anonymous": false, "eventSelector": "fb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1", "name": "log_array", "nameLocation": "171:9:5", "parameters": { "id": 2566, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2565, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "191:3:5", "nodeType": "VariableDeclaration", "scope": 2567, "src": "181:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2563, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "181:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2564, "nodeType": "ArrayTypeName", "src": "181:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "src": "180:15:5" } }, { "id": 2572, "nodeType": "EventDefinition", "src": "201:30:5", "nodes": [], "anonymous": false, "eventSelector": "890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5", "name": "log_array", "nameLocation": "207:9:5", "parameters": { "id": 2571, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2570, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "226:3:5", "nodeType": "VariableDeclaration", "scope": 2572, "src": "217:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2568, "name": "int256", "nodeType": "ElementaryTypeName", "src": "217:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2569, "nodeType": "ArrayTypeName", "src": "217:8:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" } ], "src": "216:14:5" } }, { "id": 2577, "nodeType": "EventDefinition", "src": "236:31:5", "nodes": [], "anonymous": false, "eventSelector": "40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2", "name": "log_array", "nameLocation": "242:9:5", "parameters": { "id": 2576, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2575, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "262:3:5", "nodeType": "VariableDeclaration", "scope": 2577, "src": "252:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2573, "name": "address", "nodeType": "ElementaryTypeName", "src": "252:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2574, "nodeType": "ArrayTypeName", "src": "252:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "251:15:5" } }, { "id": 2584, "nodeType": "EventDefinition", "src": "272:49:5", "nodes": [], "anonymous": false, "eventSelector": "00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb", "name": "log_named_array", "nameLocation": "278:15:5", "parameters": { "id": 2583, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2579, "indexed": false, "mutability": "mutable", "name": "key", "nameLocation": "301:3:5", "nodeType": "VariableDeclaration", "scope": 2584, "src": "294:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2578, "name": "string", "nodeType": "ElementaryTypeName", "src": "294:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 2582, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "316:3:5", "nodeType": "VariableDeclaration", "scope": 2584, "src": "306:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2580, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "306:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2581, "nodeType": "ArrayTypeName", "src": "306:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "src": "293:27:5" } }, { "id": 2591, "nodeType": "EventDefinition", "src": "326:48:5", "nodes": [], "anonymous": false, "eventSelector": "a73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57", "name": "log_named_array", "nameLocation": "332:15:5", "parameters": { "id": 2590, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2586, "indexed": false, "mutability": "mutable", "name": "key", "nameLocation": "355:3:5", "nodeType": "VariableDeclaration", "scope": 2591, "src": "348:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2585, "name": "string", "nodeType": "ElementaryTypeName", "src": "348:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 2589, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "369:3:5", "nodeType": "VariableDeclaration", "scope": 2591, "src": "360:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2587, "name": "int256", "nodeType": "ElementaryTypeName", "src": "360:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2588, "nodeType": "ArrayTypeName", "src": "360:8:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" } ], "src": "347:26:5" } }, { "id": 2598, "nodeType": "EventDefinition", "src": "379:49:5", "nodes": [], "anonymous": false, "eventSelector": "3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd", "name": "log_named_array", "nameLocation": "385:15:5", "parameters": { "id": 2597, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2593, "indexed": false, "mutability": "mutable", "name": "key", "nameLocation": "408:3:5", "nodeType": "VariableDeclaration", "scope": 2598, "src": "401:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2592, "name": "string", "nodeType": "ElementaryTypeName", "src": "401:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 2596, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "423:3:5", "nodeType": "VariableDeclaration", "scope": 2598, "src": "413:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2594, "name": "address", "nodeType": "ElementaryTypeName", "src": "413:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2595, "nodeType": "ArrayTypeName", "src": "413:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "400:27:5" } }, { "id": 2612, "nodeType": "FunctionDefinition", "src": "434:118:5", "nodes": [], "body": { "id": 2611, "nodeType": "Block", "src": "484:68:5", "nodes": [], "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2604, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "516:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2605, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2600, "src": "525:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2603, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "499:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2606, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "499:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2607, "nodeType": "EmitStatement", "src": "494:35:5" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2608, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2612, 942 ], "referencedDeclaration": 942, "src": "539:4:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2609, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "539:6:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2610, "nodeType": "ExpressionStatement", "src": "539:6:5" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "fail", "nameLocation": "443:4:5", "parameters": { "id": 2601, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2600, "mutability": "mutable", "name": "err", "nameLocation": "462:3:5", "nodeType": "VariableDeclaration", "scope": 2612, "src": "448:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2599, "name": "string", "nodeType": "ElementaryTypeName", "src": "448:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "447:19:5" }, "returnParameters": { "id": 2602, "nodeType": "ParameterList", "parameters": [], "src": "484:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2623, "nodeType": "FunctionDefinition", "src": "558:83:5", "nodes": [], "body": { "id": 2622, "nodeType": "Block", "src": "607:34:5", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 2619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "628:5:5", "subExpression": { "id": 2618, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2614, "src": "629:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 2617, "name": "assertTrue", "nodeType": "Identifier", "overloadedDeclarations": [ 995, 1016 ], "referencedDeclaration": 995, "src": "617:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, "id": 2620, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "617:17:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2621, "nodeType": "ExpressionStatement", "src": "617:17:5" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertFalse", "nameLocation": "567:11:5", "parameters": { "id": 2615, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2614, "mutability": "mutable", "name": "data", "nameLocation": "584:4:5", "nodeType": "VariableDeclaration", "scope": 2623, "src": "579:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2613, "name": "bool", "nodeType": "ElementaryTypeName", "src": "579:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "578:11:5" }, "returnParameters": { "id": 2616, "nodeType": "ParameterList", "parameters": [], "src": "607:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2637, "nodeType": "FunctionDefinition", "src": "647:107:5", "nodes": [], "body": { "id": 2636, "nodeType": "Block", "src": "715:39:5", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 2632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "736:5:5", "subExpression": { "id": 2631, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2625, "src": "737:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 2633, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2627, "src": "743:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2630, "name": "assertTrue", "nodeType": "Identifier", "overloadedDeclarations": [ 995, 1016 ], "referencedDeclaration": 1016, "src": "725:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory)" } }, "id": 2634, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "725:22:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2635, "nodeType": "ExpressionStatement", "src": "725:22:5" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertFalse", "nameLocation": "656:11:5", "parameters": { "id": 2628, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2625, "mutability": "mutable", "name": "data", "nameLocation": "673:4:5", "nodeType": "VariableDeclaration", "scope": 2637, "src": "668:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2624, "name": "bool", "nodeType": "ElementaryTypeName", "src": "668:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 2627, "mutability": "mutable", "name": "err", "nameLocation": "693:3:5", "nodeType": "VariableDeclaration", "scope": 2637, "src": "679:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2626, "name": "string", "nodeType": "ElementaryTypeName", "src": "679:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "667:30:5" }, "returnParameters": { "id": 2629, "nodeType": "ParameterList", "parameters": [], "src": "715:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2673, "nodeType": "FunctionDefinition", "src": "760:312:5", "nodes": [], "body": { "id": 2672, "nodeType": "Block", "src": "811:261:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 2644, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2639, "src": "825:1:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 2645, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2641, "src": "830:1:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "825:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2671, "nodeType": "IfStatement", "src": "821:245:5", "trueBody": { "id": 2670, "nodeType": "Block", "src": "833:233:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6c5d", "id": 2648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "856:36:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8b48ec9ac4dc7123ad32509232067c63ebae61bff18d5e06bf4dea2a25240ed2", "typeString": "literal_string \"Error: a == b not satisfied [bool]\"" }, "value": "Error: a == b not satisfied [bool]" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_8b48ec9ac4dc7123ad32509232067c63ebae61bff18d5e06bf4dea2a25240ed2", "typeString": "literal_string \"Error: a == b not satisfied [bool]\"" } ], "id": 2647, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, "src": "852:3:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 2649, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "852:41:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2650, "nodeType": "EmitStatement", "src": "847:46:5" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", "id": 2652, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "929:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, "value": " Expected" }, { "condition": { "id": 2653, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2641, "src": "943:1:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "hexValue": "66616c7365", "id": 2655, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "956:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a", "typeString": "literal_string \"false\"" }, "value": "false" }, "id": 2656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "943:20:5", "trueExpression": { "hexValue": "74727565", "id": 2654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "947:6:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6273151f959616268004b58dbb21e5c851b7b8d04498b4aabee12291d22fc034", "typeString": "literal_string \"true\"" }, "value": "true" }, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2651, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "912:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2657, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "912:52:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2658, "nodeType": "EmitStatement", "src": "907:57:5" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", "id": 2660, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1000:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, "value": " Actual" }, { "condition": { "id": 2661, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2639, "src": "1014:1:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "hexValue": "66616c7365", "id": 2663, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1027:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a", "typeString": "literal_string \"false\"" }, "value": "false" }, "id": 2664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "1014:20:5", "trueExpression": { "hexValue": "74727565", "id": 2662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1018:6:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6273151f959616268004b58dbb21e5c851b7b8d04498b4aabee12291d22fc034", "typeString": "literal_string \"true\"" }, "value": "true" }, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2659, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "983:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2665, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "983:52:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2666, "nodeType": "EmitStatement", "src": "978:57:5" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2667, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2612, 942 ], "referencedDeclaration": 942, "src": "1049:4:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2668, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1049:6:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2669, "nodeType": "ExpressionStatement", "src": "1049:6:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "769:8:5", "parameters": { "id": 2642, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2639, "mutability": "mutable", "name": "a", "nameLocation": "783:1:5", "nodeType": "VariableDeclaration", "scope": 2673, "src": "778:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2638, "name": "bool", "nodeType": "ElementaryTypeName", "src": "778:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 2641, "mutability": "mutable", "name": "b", "nameLocation": "791:1:5", "nodeType": "VariableDeclaration", "scope": 2673, "src": "786:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2640, "name": "bool", "nodeType": "ElementaryTypeName", "src": "786:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "777:16:5" }, "returnParameters": { "id": 2643, "nodeType": "ParameterList", "parameters": [], "src": "811:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2698, "nodeType": "FunctionDefinition", "src": "1078:186:5", "nodes": [], "body": { "id": 2697, "nodeType": "Block", "src": "1148:116:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 2682, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2675, "src": "1162:1:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 2683, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2677, "src": "1167:1:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1162:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2696, "nodeType": "IfStatement", "src": "1158:100:5", "trueBody": { "id": 2695, "nodeType": "Block", "src": "1170:88:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2686, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1206:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2687, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2679, "src": "1215:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2685, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "1189:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2688, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1189:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2689, "nodeType": "EmitStatement", "src": "1184:35:5" }, { "expression": { "arguments": [ { "id": 2691, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2675, "src": "1242:1:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 2692, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2677, "src": "1245:1:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 2690, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2673, 2698, 2711, 2727, 2769, 2811, 2853, 2890, 2927, 2964, 1046, 1071, 1101, 1126, 1185, 1210, 1240, 1265, 2365, 2400 ], "referencedDeclaration": 2673, "src": "1233:8:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, "id": 2693, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1233:14:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2694, "nodeType": "ExpressionStatement", "src": "1233:14:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "1087:8:5", "parameters": { "id": 2680, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2675, "mutability": "mutable", "name": "a", "nameLocation": "1101:1:5", "nodeType": "VariableDeclaration", "scope": 2698, "src": "1096:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2674, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1096:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 2677, "mutability": "mutable", "name": "b", "nameLocation": "1109:1:5", "nodeType": "VariableDeclaration", "scope": 2698, "src": "1104:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2676, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1104:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 2679, "mutability": "mutable", "name": "err", "nameLocation": "1126:3:5", "nodeType": "VariableDeclaration", "scope": 2698, "src": "1112:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2678, "name": "string", "nodeType": "ElementaryTypeName", "src": "1112:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1095:35:5" }, "returnParameters": { "id": 2681, "nodeType": "ParameterList", "parameters": [], "src": "1148:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2711, "nodeType": "FunctionDefinition", "src": "1270:99:5", "nodes": [], "body": { "id": 2710, "nodeType": "Block", "src": "1337:32:5", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 2706, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2700, "src": "1357:1:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 2707, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2702, "src": "1360:1:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2705, "name": "assertEq0", "nodeType": "Identifier", "overloadedDeclarations": [ 2484, 2511 ], "referencedDeclaration": 2484, "src": "1347:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory,bytes memory)" } }, "id": 2708, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1347:15:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2709, "nodeType": "ExpressionStatement", "src": "1347:15:5" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "1279:8:5", "parameters": { "id": 2703, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2700, "mutability": "mutable", "name": "a", "nameLocation": "1301:1:5", "nodeType": "VariableDeclaration", "scope": 2711, "src": "1288:14:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2699, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1288:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 2702, "mutability": "mutable", "name": "b", "nameLocation": "1317:1:5", "nodeType": "VariableDeclaration", "scope": 2711, "src": "1304:14:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2701, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1304:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "1287:32:5" }, "returnParameters": { "id": 2704, "nodeType": "ParameterList", "parameters": [], "src": "1337:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2727, "nodeType": "FunctionDefinition", "src": "1375:123:5", "nodes": [], "body": { "id": 2726, "nodeType": "Block", "src": "1461:37:5", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 2721, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2713, "src": "1481:1:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 2722, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2715, "src": "1484:1:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 2723, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2717, "src": "1487:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2720, "name": "assertEq0", "nodeType": "Identifier", "overloadedDeclarations": [ 2484, 2511 ], "referencedDeclaration": 2511, "src": "1471:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,bytes memory,string memory)" } }, "id": 2724, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1471:20:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2725, "nodeType": "ExpressionStatement", "src": "1471:20:5" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "1384:8:5", "parameters": { "id": 2718, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2713, "mutability": "mutable", "name": "a", "nameLocation": "1406:1:5", "nodeType": "VariableDeclaration", "scope": 2727, "src": "1393:14:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2712, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1393:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 2715, "mutability": "mutable", "name": "b", "nameLocation": "1422:1:5", "nodeType": "VariableDeclaration", "scope": 2727, "src": "1409:14:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2714, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1409:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 2717, "mutability": "mutable", "name": "err", "nameLocation": "1439:3:5", "nodeType": "VariableDeclaration", "scope": 2727, "src": "1425:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2716, "name": "string", "nodeType": "ElementaryTypeName", "src": "1425:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1392:51:5" }, "returnParameters": { "id": 2719, "nodeType": "ParameterList", "parameters": [], "src": "1461:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2769, "nodeType": "FunctionDefinition", "src": "1504:344:5", "nodes": [], "body": { "id": 2768, "nodeType": "Block", "src": "1579:269:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2739, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2730, "src": "1614:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "expression": { "id": 2737, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1603:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2738, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1607:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "1603:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2740, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1603:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2736, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "1593:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2741, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1593:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2745, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2733, "src": "1642:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "expression": { "id": 2743, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1631:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2744, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1635:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "1631:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2746, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1631:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2742, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "1621:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2747, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1621:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "1593:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2767, "nodeType": "IfStatement", "src": "1589:253:5", "trueBody": { "id": 2766, "nodeType": "Block", "src": "1647:195:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e745b5d5d", "id": 2750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1670:38:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_521d63632bd73b6c06245b96e4e8f1b767ee309607c65899b409e5c9e6c384eb", "typeString": "literal_string \"Error: a == b not satisfied [uint[]]\"" }, "value": "Error: a == b not satisfied [uint[]]" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_521d63632bd73b6c06245b96e4e8f1b767ee309607c65899b409e5c9e6c384eb", "typeString": "literal_string \"Error: a == b not satisfied [uint[]]\"" } ], "id": 2749, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, "src": "1666:3:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 2751, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1666:43:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2752, "nodeType": "EmitStatement", "src": "1661:48:5" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", "id": 2754, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1744:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, "value": " Expected" }, { "id": 2755, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2733, "src": "1758:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "id": 2753, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2584, 2591, 2598 ], "referencedDeclaration": 2584, "src": "1728:15:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (string memory,uint256[] memory)" } }, "id": 2756, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1728:32:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2757, "nodeType": "EmitStatement", "src": "1723:37:5" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", "id": 2759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1795:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, "value": " Actual" }, { "id": 2760, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2730, "src": "1809:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "id": 2758, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2584, 2591, 2598 ], "referencedDeclaration": 2584, "src": "1779:15:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (string memory,uint256[] memory)" } }, "id": 2761, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1779:32:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2762, "nodeType": "EmitStatement", "src": "1774:37:5" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2763, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2612, 942 ], "referencedDeclaration": 942, "src": "1825:4:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2764, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1825:6:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2765, "nodeType": "ExpressionStatement", "src": "1825:6:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "1513:8:5", "parameters": { "id": 2734, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2730, "mutability": "mutable", "name": "a", "nameLocation": "1539:1:5", "nodeType": "VariableDeclaration", "scope": 2769, "src": "1522:18:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2728, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1522:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2729, "nodeType": "ArrayTypeName", "src": "1522:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2733, "mutability": "mutable", "name": "b", "nameLocation": "1559:1:5", "nodeType": "VariableDeclaration", "scope": 2769, "src": "1542:18:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2731, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1542:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2732, "nodeType": "ArrayTypeName", "src": "1542:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "src": "1521:40:5" }, "returnParameters": { "id": 2735, "nodeType": "ParameterList", "parameters": [], "src": "1579:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2811, "nodeType": "FunctionDefinition", "src": "1854:341:5", "nodes": [], "body": { "id": 2810, "nodeType": "Block", "src": "1927:268:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2790, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2781, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2772, "src": "1962:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } ], "expression": { "id": 2779, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1951:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2780, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1955:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "1951:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2782, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1951:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2778, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "1941:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2783, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1941:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2787, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2775, "src": "1990:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } ], "expression": { "id": 2785, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1979:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2786, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1983:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "1979:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2788, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1979:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2784, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "1969:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2789, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1969:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "1941:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2809, "nodeType": "IfStatement", "src": "1937:252:5", "trueBody": { "id": 2808, "nodeType": "Block", "src": "1995:194:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e745b5d5d", "id": 2792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2018:37:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6c8a6638f7c95c9ee18ffcfc37ffe04d6270c2db7493e9b7a14add834054a5f5", "typeString": "literal_string \"Error: a == b not satisfied [int[]]\"" }, "value": "Error: a == b not satisfied [int[]]" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_6c8a6638f7c95c9ee18ffcfc37ffe04d6270c2db7493e9b7a14add834054a5f5", "typeString": "literal_string \"Error: a == b not satisfied [int[]]\"" } ], "id": 2791, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, "src": "2014:3:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 2793, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2014:42:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2794, "nodeType": "EmitStatement", "src": "2009:47:5" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", "id": 2796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2091:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, "value": " Expected" }, { "id": 2797, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2775, "src": "2105:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } ], "id": 2795, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2584, 2591, 2598 ], "referencedDeclaration": 2591, "src": "2075:15:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$", "typeString": "function (string memory,int256[] memory)" } }, "id": 2798, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2075:32:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2799, "nodeType": "EmitStatement", "src": "2070:37:5" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", "id": 2801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2142:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, "value": " Actual" }, { "id": 2802, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2772, "src": "2156:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } ], "id": 2800, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2584, 2591, 2598 ], "referencedDeclaration": 2591, "src": "2126:15:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$", "typeString": "function (string memory,int256[] memory)" } }, "id": 2803, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2126:32:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2804, "nodeType": "EmitStatement", "src": "2121:37:5" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2805, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2612, 942 ], "referencedDeclaration": 942, "src": "2172:4:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2806, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2172:6:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2807, "nodeType": "ExpressionStatement", "src": "2172:6:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "1863:8:5", "parameters": { "id": 2776, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2772, "mutability": "mutable", "name": "a", "nameLocation": "1888:1:5", "nodeType": "VariableDeclaration", "scope": 2811, "src": "1872:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2770, "name": "int256", "nodeType": "ElementaryTypeName", "src": "1872:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2771, "nodeType": "ArrayTypeName", "src": "1872:8:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2775, "mutability": "mutable", "name": "b", "nameLocation": "1907:1:5", "nodeType": "VariableDeclaration", "scope": 2811, "src": "1891:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2773, "name": "int256", "nodeType": "ElementaryTypeName", "src": "1891:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2774, "nodeType": "ArrayTypeName", "src": "1891:8:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" } ], "src": "1871:38:5" }, "returnParameters": { "id": 2777, "nodeType": "ParameterList", "parameters": [], "src": "1927:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2853, "nodeType": "FunctionDefinition", "src": "2201:347:5", "nodes": [], "body": { "id": 2852, "nodeType": "Block", "src": "2276:272:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2823, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2814, "src": "2311:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } ], "expression": { "id": 2821, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2300:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2822, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2304:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "2300:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2824, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2300:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2820, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2290:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2825, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2290:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2829, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2817, "src": "2339:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } ], "expression": { "id": 2827, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2328:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2828, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2332:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "2328:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2830, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2328:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2826, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2318:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2831, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2318:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2290:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2851, "nodeType": "IfStatement", "src": "2286:256:5", "trueBody": { "id": 2850, "nodeType": "Block", "src": "2344:198:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464726573735b5d5d", "id": 2834, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2367:41:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_18b6dc04296758144a4e9b271bd3d79214335bb195df00f93d1706586d5041f8", "typeString": "literal_string \"Error: a == b not satisfied [address[]]\"" }, "value": "Error: a == b not satisfied [address[]]" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_18b6dc04296758144a4e9b271bd3d79214335bb195df00f93d1706586d5041f8", "typeString": "literal_string \"Error: a == b not satisfied [address[]]\"" } ], "id": 2833, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, "src": "2363:3:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 2835, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2363:46:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2836, "nodeType": "EmitStatement", "src": "2358:51:5" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", "id": 2838, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2444:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, "value": " Expected" }, { "id": 2839, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2817, "src": "2458:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } ], "id": 2837, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2584, 2591, 2598 ], "referencedDeclaration": 2598, "src": "2428:15:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", "typeString": "function (string memory,address[] memory)" } }, "id": 2840, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2428:32:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2841, "nodeType": "EmitStatement", "src": "2423:37:5" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", "id": 2843, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2495:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, "value": " Actual" }, { "id": 2844, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2814, "src": "2509:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } ], "id": 2842, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2584, 2591, 2598 ], "referencedDeclaration": 2598, "src": "2479:15:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", "typeString": "function (string memory,address[] memory)" } }, "id": 2845, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2479:32:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2846, "nodeType": "EmitStatement", "src": "2474:37:5" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2847, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2612, 942 ], "referencedDeclaration": 942, "src": "2525:4:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2848, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2525:6:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2849, "nodeType": "ExpressionStatement", "src": "2525:6:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "2210:8:5", "parameters": { "id": 2818, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2814, "mutability": "mutable", "name": "a", "nameLocation": "2236:1:5", "nodeType": "VariableDeclaration", "scope": 2853, "src": "2219:18:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2812, "name": "address", "nodeType": "ElementaryTypeName", "src": "2219:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2813, "nodeType": "ArrayTypeName", "src": "2219:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 2817, "mutability": "mutable", "name": "b", "nameLocation": "2256:1:5", "nodeType": "VariableDeclaration", "scope": 2853, "src": "2239:18:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2815, "name": "address", "nodeType": "ElementaryTypeName", "src": "2239:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2816, "nodeType": "ArrayTypeName", "src": "2239:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "2218:40:5" }, "returnParameters": { "id": 2819, "nodeType": "ParameterList", "parameters": [], "src": "2276:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2890, "nodeType": "FunctionDefinition", "src": "2554:256:5", "nodes": [], "body": { "id": 2889, "nodeType": "Block", "src": "2648:162:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2867, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2856, "src": "2683:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "expression": { "id": 2865, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2672:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2866, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2676:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "2672:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2868, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2672:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2864, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2662:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2869, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2662:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2873, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2859, "src": "2711:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "expression": { "id": 2871, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2700:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2872, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2704:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "2700:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2874, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2700:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2870, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2690:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2875, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2690:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2662:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2888, "nodeType": "IfStatement", "src": "2658:146:5", "trueBody": { "id": 2887, "nodeType": "Block", "src": "2716:88:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2878, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2752:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2879, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2861, "src": "2761:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2877, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "2735:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2880, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2735:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2881, "nodeType": "EmitStatement", "src": "2730:35:5" }, { "expression": { "arguments": [ { "id": 2883, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2856, "src": "2788:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, { "id": 2884, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2859, "src": "2791:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" }, { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "id": 2882, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2673, 2698, 2711, 2727, 2769, 2811, 2853, 2890, 2927, 2964, 1046, 1071, 1101, 1126, 1185, 1210, 1240, 1265, 2365, 2400 ], "referencedDeclaration": 2769, "src": "2779:8:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (uint256[] memory,uint256[] memory)" } }, "id": 2885, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2779:14:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2886, "nodeType": "ExpressionStatement", "src": "2779:14:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "2563:8:5", "parameters": { "id": 2862, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2856, "mutability": "mutable", "name": "a", "nameLocation": "2589:1:5", "nodeType": "VariableDeclaration", "scope": 2890, "src": "2572:18:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2854, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2572:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2855, "nodeType": "ArrayTypeName", "src": "2572:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2859, "mutability": "mutable", "name": "b", "nameLocation": "2609:1:5", "nodeType": "VariableDeclaration", "scope": 2890, "src": "2592:18:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2857, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2592:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2858, "nodeType": "ArrayTypeName", "src": "2592:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2861, "mutability": "mutable", "name": "err", "nameLocation": "2626:3:5", "nodeType": "VariableDeclaration", "scope": 2890, "src": "2612:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2860, "name": "string", "nodeType": "ElementaryTypeName", "src": "2612:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2571:59:5" }, "returnParameters": { "id": 2863, "nodeType": "ParameterList", "parameters": [], "src": "2648:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2927, "nodeType": "FunctionDefinition", "src": "2816:254:5", "nodes": [], "body": { "id": 2926, "nodeType": "Block", "src": "2908:162:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2904, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2893, "src": "2943:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } ], "expression": { "id": 2902, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2932:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2903, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2936:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "2932:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2905, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2932:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2901, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2922:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2906, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2922:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2910, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2896, "src": "2971:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } ], "expression": { "id": 2908, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2960:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2909, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2964:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "2960:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2911, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2960:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2907, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2950:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2912, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2950:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2922:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2925, "nodeType": "IfStatement", "src": "2918:146:5", "trueBody": { "id": 2924, "nodeType": "Block", "src": "2976:88:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3012:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2916, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2898, "src": "3021:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2914, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "2995:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2917, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2995:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2918, "nodeType": "EmitStatement", "src": "2990:35:5" }, { "expression": { "arguments": [ { "id": 2920, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2893, "src": "3048:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } }, { "id": 2921, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2896, "src": "3051:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" }, { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } ], "id": 2919, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2673, 2698, 2711, 2727, 2769, 2811, 2853, 2890, 2927, 2964, 1046, 1071, 1101, 1126, 1185, 1210, 1240, 1265, 2365, 2400 ], "referencedDeclaration": 2811, "src": "3039:8:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_int256_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$", "typeString": "function (int256[] memory,int256[] memory)" } }, "id": 2922, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3039:14:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2923, "nodeType": "ExpressionStatement", "src": "3039:14:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "2825:8:5", "parameters": { "id": 2899, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2893, "mutability": "mutable", "name": "a", "nameLocation": "2850:1:5", "nodeType": "VariableDeclaration", "scope": 2927, "src": "2834:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2891, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2834:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2892, "nodeType": "ArrayTypeName", "src": "2834:8:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2896, "mutability": "mutable", "name": "b", "nameLocation": "2869:1:5", "nodeType": "VariableDeclaration", "scope": 2927, "src": "2853:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2894, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2853:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2895, "nodeType": "ArrayTypeName", "src": "2853:8:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2898, "mutability": "mutable", "name": "err", "nameLocation": "2886:3:5", "nodeType": "VariableDeclaration", "scope": 2927, "src": "2872:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2897, "name": "string", "nodeType": "ElementaryTypeName", "src": "2872:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2833:57:5" }, "returnParameters": { "id": 2900, "nodeType": "ParameterList", "parameters": [], "src": "2908:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2964, "nodeType": "FunctionDefinition", "src": "3076:256:5", "nodes": [], "body": { "id": 2963, "nodeType": "Block", "src": "3170:162:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2941, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2930, "src": "3205:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } ], "expression": { "id": 2939, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3194:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2940, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3198:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "3194:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2942, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3194:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2938, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "3184:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2943, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3184:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2947, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2933, "src": "3233:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } ], "expression": { "id": 2945, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3222:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2946, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3226:6:5", "memberName": "encode", "nodeType": "MemberAccess", "src": "3222:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2948, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3222:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2944, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "3212:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2949, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3212:24:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "3184:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2962, "nodeType": "IfStatement", "src": "3180:146:5", "trueBody": { "id": 2961, "nodeType": "Block", "src": "3238:88:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3274:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2953, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2935, "src": "3283:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2951, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "3257:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2954, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3257:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2955, "nodeType": "EmitStatement", "src": "3252:35:5" }, { "expression": { "arguments": [ { "id": 2957, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2930, "src": "3310:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { "id": 2958, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2933, "src": "3313:1:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } ], "id": 2956, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2673, 2698, 2711, 2727, 2769, 2811, 2853, 2890, 2927, 2964, 1046, 1071, 1101, 1126, 1185, 1210, 1240, 1265, 2365, 2400 ], "referencedDeclaration": 2853, "src": "3301:8:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", "typeString": "function (address[] memory,address[] memory)" } }, "id": 2959, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3301:14:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2960, "nodeType": "ExpressionStatement", "src": "3301:14:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "3085:8:5", "parameters": { "id": 2936, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2930, "mutability": "mutable", "name": "a", "nameLocation": "3111:1:5", "nodeType": "VariableDeclaration", "scope": 2964, "src": "3094:18:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2928, "name": "address", "nodeType": "ElementaryTypeName", "src": "3094:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2929, "nodeType": "ArrayTypeName", "src": "3094:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 2933, "mutability": "mutable", "name": "b", "nameLocation": "3131:1:5", "nodeType": "VariableDeclaration", "scope": 2964, "src": "3114:18:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2931, "name": "address", "nodeType": "ElementaryTypeName", "src": "3114:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2932, "nodeType": "ArrayTypeName", "src": "3114:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 2935, "mutability": "mutable", "name": "err", "nameLocation": "3148:3:5", "nodeType": "VariableDeclaration", "scope": 2964, "src": "3134:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2934, "name": "string", "nodeType": "ElementaryTypeName", "src": "3134:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "3093:59:5" }, "returnParameters": { "id": 2937, "nodeType": "ParameterList", "parameters": [], "src": "3170:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2983, "nodeType": "FunctionDefinition", "src": "3359:110:5", "nodes": [], "body": { "id": 2982, "nodeType": "Block", "src": "3420:49:5", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [ { "id": 2974, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2966, "src": "3447:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2973, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3439:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 2972, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3439:7:5", "typeDescriptions": {} } }, "id": 2975, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3439:10:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "arguments": [ { "id": 2978, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2968, "src": "3459:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2977, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3451:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 2976, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3451:7:5", "typeDescriptions": {} } }, "id": 2979, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3451:10:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2971, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2673, 2698, 2711, 2727, 2769, 2811, 2853, 2890, 2927, 2964, 1046, 1071, 1101, 1126, 1185, 1210, 1240, 1265, 2365, 2400 ], "referencedDeclaration": 1240, "src": "3430:8:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, "id": 2980, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3430:32:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2981, "nodeType": "ExpressionStatement", "src": "3430:32:5" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEqUint", "nameLocation": "3368:12:5", "parameters": { "id": 2969, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2966, "mutability": "mutable", "name": "a", "nameLocation": "3389:1:5", "nodeType": "VariableDeclaration", "scope": 2983, "src": "3381:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2965, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3381:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2968, "mutability": "mutable", "name": "b", "nameLocation": "3400:1:5", "nodeType": "VariableDeclaration", "scope": 2983, "src": "3392:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2967, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3392:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3380:22:5" }, "returnParameters": { "id": 2970, "nodeType": "ParameterList", "parameters": [], "src": "3420:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3033, "nodeType": "FunctionDefinition", "src": "3475:470:5", "nodes": [], "body": { "id": 3032, "nodeType": "Block", "src": "3559:386:5", "nodes": [], "statements": [ { "assignments": [ 2993 ], "declarations": [ { "constant": false, "id": 2993, "mutability": "mutable", "name": "delta", "nameLocation": "3577:5:5", "nodeType": "VariableDeclaration", "scope": 3032, "src": "3569:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2992, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3569:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 2999, "initialValue": { "arguments": [ { "id": 2996, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2985, "src": "3599:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2997, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2987, "src": "3602:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 2994, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6357, "src": "3585:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$6357_$", "typeString": "type(library stdMath)" } }, "id": 2995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3593:5:5", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 6268, "src": "3585:13:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 2998, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3585:19:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3569:35:5" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3000, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2993, "src": "3619:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3001, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2989, "src": "3627:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3619:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3031, "nodeType": "IfStatement", "src": "3615:324:5", "trueBody": { "id": 3030, "nodeType": "Block", "src": "3637:302:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d", "id": 3004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3660:36:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe", "typeString": "literal_string \"Error: a ~= b not satisfied [uint]\"" }, "value": "Error: a ~= b not satisfied [uint]" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe", "typeString": "literal_string \"Error: a ~= b not satisfied [uint]\"" } ], "id": 3003, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, "src": "3656:3:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3005, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3656:41:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3006, "nodeType": "EmitStatement", "src": "3651:46:5" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", "id": 3008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3731:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, "value": " Expected" }, { "id": 3009, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2987, "src": "3745:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3007, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 799, "src": "3716:14:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3010, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3716:31:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3011, "nodeType": "EmitStatement", "src": "3711:36:5" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", "id": 3013, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3781:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, "value": " Actual" }, { "id": 3014, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2985, "src": "3795:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3012, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 799, "src": "3766:14:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3015, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3766:31:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3016, "nodeType": "EmitStatement", "src": "3761:36:5" }, { "eventCall": { "arguments": [ { "hexValue": "204d61782044656c7461", "id": 3018, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3831:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, "value": " Max Delta" }, { "id": 3019, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2989, "src": "3845:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3017, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 799, "src": "3816:14:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3020, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3816:38:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3021, "nodeType": "EmitStatement", "src": "3811:43:5" }, { "eventCall": { "arguments": [ { "hexValue": "202020202044656c7461", "id": 3023, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3888:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, "value": " Delta" }, { "id": 3024, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2993, "src": "3902:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3022, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 799, "src": "3873:14:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3025, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3873:35:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3026, "nodeType": "EmitStatement", "src": "3868:40:5" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3027, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2612, 942 ], "referencedDeclaration": 942, "src": "3922:4:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3028, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3922:6:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3029, "nodeType": "ExpressionStatement", "src": "3922:6:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbs", "nameLocation": "3484:17:5", "parameters": { "id": 2990, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2985, "mutability": "mutable", "name": "a", "nameLocation": "3510:1:5", "nodeType": "VariableDeclaration", "scope": 3033, "src": "3502:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2984, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3502:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2987, "mutability": "mutable", "name": "b", "nameLocation": "3521:1:5", "nodeType": "VariableDeclaration", "scope": 3033, "src": "3513:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2986, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3513:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2989, "mutability": "mutable", "name": "maxDelta", "nameLocation": "3532:8:5", "nodeType": "VariableDeclaration", "scope": 3033, "src": "3524:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2988, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3524:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3501:40:5" }, "returnParameters": { "id": 2991, "nodeType": "ParameterList", "parameters": [], "src": "3559:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3069, "nodeType": "FunctionDefinition", "src": "3951:294:5", "nodes": [], "body": { "id": 3068, "nodeType": "Block", "src": "4054:191:5", "nodes": [], "statements": [ { "assignments": [ 3045 ], "declarations": [ { "constant": false, "id": 3045, "mutability": "mutable", "name": "delta", "nameLocation": "4072:5:5", "nodeType": "VariableDeclaration", "scope": 3068, "src": "4064:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3044, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4064:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3051, "initialValue": { "arguments": [ { "id": 3048, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3035, "src": "4094:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3049, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3037, "src": "4097:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 3046, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6357, "src": "4080:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$6357_$", "typeString": "type(library stdMath)" } }, "id": 3047, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4088:5:5", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 6268, "src": "4080:13:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3050, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4080:19:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4064:35:5" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3054, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3052, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3045, "src": "4114:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3053, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3039, "src": "4122:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4114:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3067, "nodeType": "IfStatement", "src": "4110:129:5", "trueBody": { "id": 3066, "nodeType": "Block", "src": "4132:107:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3056, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4168:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3057, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3041, "src": "4177:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 3055, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "4151:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3058, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4151:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3059, "nodeType": "EmitStatement", "src": "4146:35:5" }, { "expression": { "arguments": [ { "id": 3061, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3035, "src": "4213:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3062, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3037, "src": "4216:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3063, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3039, "src": "4219:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3060, "name": "assertApproxEqAbs", "nodeType": "Identifier", "overloadedDeclarations": [ 3033, 3069, 3119, 3155 ], "referencedDeclaration": 3033, "src": "4195:17:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256)" } }, "id": 3064, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4195:33:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3065, "nodeType": "ExpressionStatement", "src": "4195:33:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbs", "nameLocation": "3960:17:5", "parameters": { "id": 3042, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3035, "mutability": "mutable", "name": "a", "nameLocation": "3986:1:5", "nodeType": "VariableDeclaration", "scope": 3069, "src": "3978:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3034, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3978:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3037, "mutability": "mutable", "name": "b", "nameLocation": "3997:1:5", "nodeType": "VariableDeclaration", "scope": 3069, "src": "3989:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3036, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3989:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3039, "mutability": "mutable", "name": "maxDelta", "nameLocation": "4008:8:5", "nodeType": "VariableDeclaration", "scope": 3069, "src": "4000:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3038, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4000:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3041, "mutability": "mutable", "name": "err", "nameLocation": "4032:3:5", "nodeType": "VariableDeclaration", "scope": 3069, "src": "4018:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3040, "name": "string", "nodeType": "ElementaryTypeName", "src": "4018:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "3977:59:5" }, "returnParameters": { "id": 3043, "nodeType": "ParameterList", "parameters": [], "src": "4054:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3119, "nodeType": "FunctionDefinition", "src": "4251:465:5", "nodes": [], "body": { "id": 3118, "nodeType": "Block", "src": "4333:383:5", "nodes": [], "statements": [ { "assignments": [ 3079 ], "declarations": [ { "constant": false, "id": 3079, "mutability": "mutable", "name": "delta", "nameLocation": "4351:5:5", "nodeType": "VariableDeclaration", "scope": 3118, "src": "4343:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3078, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4343:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3085, "initialValue": { "arguments": [ { "id": 3082, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3071, "src": "4373:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3083, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3073, "src": "4376:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3080, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6357, "src": "4359:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$6357_$", "typeString": "type(library stdMath)" } }, "id": 3081, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4367:5:5", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 6304, "src": "4359:13:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3084, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4359:19:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4343:35:5" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3088, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3086, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3079, "src": "4393:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3087, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3075, "src": "4401:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4393:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3117, "nodeType": "IfStatement", "src": "4389:321:5", "trueBody": { "id": 3116, "nodeType": "Block", "src": "4411:299:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d", "id": 3090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4434:35:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d", "typeString": "literal_string \"Error: a ~= b not satisfied [int]\"" }, "value": "Error: a ~= b not satisfied [int]" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d", "typeString": "literal_string \"Error: a ~= b not satisfied [int]\"" } ], "id": 3089, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, "src": "4430:3:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3091, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4430:40:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3092, "nodeType": "EmitStatement", "src": "4425:45:5" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", "id": 3094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4503:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, "value": " Expected" }, { "id": 3095, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3073, "src": "4517:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3093, "name": "log_named_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 793, "src": "4489:13:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$", "typeString": "function (string memory,int256)" } }, "id": 3096, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4489:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3097, "nodeType": "EmitStatement", "src": "4484:35:5" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", "id": 3099, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4552:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, "value": " Actual" }, { "id": 3100, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3071, "src": "4566:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3098, "name": "log_named_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 793, "src": "4538:13:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$", "typeString": "function (string memory,int256)" } }, "id": 3101, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4538:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3102, "nodeType": "EmitStatement", "src": "4533:35:5" }, { "eventCall": { "arguments": [ { "hexValue": "204d61782044656c7461", "id": 3104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4602:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, "value": " Max Delta" }, { "id": 3105, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3075, "src": "4616:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3103, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 799, "src": "4587:14:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3106, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4587:38:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3107, "nodeType": "EmitStatement", "src": "4582:43:5" }, { "eventCall": { "arguments": [ { "hexValue": "202020202044656c7461", "id": 3109, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4659:12:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, "value": " Delta" }, { "id": 3110, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3079, "src": "4673:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3108, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 799, "src": "4644:14:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3111, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4644:35:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3112, "nodeType": "EmitStatement", "src": "4639:40:5" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3113, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2612, 942 ], "referencedDeclaration": 942, "src": "4693:4:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3114, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4693:6:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3115, "nodeType": "ExpressionStatement", "src": "4693:6:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbs", "nameLocation": "4260:17:5", "parameters": { "id": 3076, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3071, "mutability": "mutable", "name": "a", "nameLocation": "4285:1:5", "nodeType": "VariableDeclaration", "scope": 3119, "src": "4278:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3070, "name": "int256", "nodeType": "ElementaryTypeName", "src": "4278:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3073, "mutability": "mutable", "name": "b", "nameLocation": "4295:1:5", "nodeType": "VariableDeclaration", "scope": 3119, "src": "4288:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3072, "name": "int256", "nodeType": "ElementaryTypeName", "src": "4288:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3075, "mutability": "mutable", "name": "maxDelta", "nameLocation": "4306:8:5", "nodeType": "VariableDeclaration", "scope": 3119, "src": "4298:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3074, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4298:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "4277:38:5" }, "returnParameters": { "id": 3077, "nodeType": "ParameterList", "parameters": [], "src": "4333:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3155, "nodeType": "FunctionDefinition", "src": "4722:292:5", "nodes": [], "body": { "id": 3154, "nodeType": "Block", "src": "4823:191:5", "nodes": [], "statements": [ { "assignments": [ 3131 ], "declarations": [ { "constant": false, "id": 3131, "mutability": "mutable", "name": "delta", "nameLocation": "4841:5:5", "nodeType": "VariableDeclaration", "scope": 3154, "src": "4833:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3130, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4833:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3137, "initialValue": { "arguments": [ { "id": 3134, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3121, "src": "4863:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3135, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3123, "src": "4866:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3132, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6357, "src": "4849:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$6357_$", "typeString": "type(library stdMath)" } }, "id": 3133, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4857:5:5", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 6304, "src": "4849:13:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3136, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4849:19:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4833:35:5" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3138, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3131, "src": "4883:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3139, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3125, "src": "4891:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4883:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3153, "nodeType": "IfStatement", "src": "4879:129:5", "trueBody": { "id": 3152, "nodeType": "Block", "src": "4901:107:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3142, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4937:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3143, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3127, "src": "4946:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 3141, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "4920:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3144, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4920:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3145, "nodeType": "EmitStatement", "src": "4915:35:5" }, { "expression": { "arguments": [ { "id": 3147, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3121, "src": "4982:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3148, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3123, "src": "4985:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3149, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3125, "src": "4988:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3146, "name": "assertApproxEqAbs", "nodeType": "Identifier", "overloadedDeclarations": [ 3033, 3069, 3119, 3155 ], "referencedDeclaration": 3119, "src": "4964:17:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$", "typeString": "function (int256,int256,uint256)" } }, "id": 3150, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4964:33:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3151, "nodeType": "ExpressionStatement", "src": "4964:33:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbs", "nameLocation": "4731:17:5", "parameters": { "id": 3128, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3121, "mutability": "mutable", "name": "a", "nameLocation": "4756:1:5", "nodeType": "VariableDeclaration", "scope": 3155, "src": "4749:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3120, "name": "int256", "nodeType": "ElementaryTypeName", "src": "4749:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3123, "mutability": "mutable", "name": "b", "nameLocation": "4766:1:5", "nodeType": "VariableDeclaration", "scope": 3155, "src": "4759:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3122, "name": "int256", "nodeType": "ElementaryTypeName", "src": "4759:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3125, "mutability": "mutable", "name": "maxDelta", "nameLocation": "4777:8:5", "nodeType": "VariableDeclaration", "scope": 3155, "src": "4769:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3124, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4769:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3127, "mutability": "mutable", "name": "err", "nameLocation": "4801:3:5", "nodeType": "VariableDeclaration", "scope": 3155, "src": "4787:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3126, "name": "string", "nodeType": "ElementaryTypeName", "src": "4787:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "4748:57:5" }, "returnParameters": { "id": 3129, "nodeType": "ParameterList", "parameters": [], "src": "4823:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3216, "nodeType": "FunctionDefinition", "src": "5020:726:5", "nodes": [], "body": { "id": 3215, "nodeType": "Block", "src": "5197:549:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3166, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3164, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3159, "src": "5211:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3165, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5216:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5211:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3172, "nodeType": "IfStatement", "src": "5207:33:5", "trueBody": { "expression": { "arguments": [ { "id": 3168, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3157, "src": "5235:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3169, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3159, "src": "5238:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3167, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2673, 2698, 2711, 2727, 2769, 2811, 2853, 2890, 2927, 2964, 1046, 1071, 1101, 1126, 1185, 1210, 1240, 1265, 2365, 2400 ], "referencedDeclaration": 1240, "src": "5226:8:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, "id": 3170, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5226:14:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3163, "id": 3171, "nodeType": "Return", "src": "5219:21:5" } }, { "assignments": [ 3174 ], "declarations": [ { "constant": false, "id": 3174, "mutability": "mutable", "name": "percentDelta", "nameLocation": "5304:12:5", "nodeType": "VariableDeclaration", "scope": 3215, "src": "5296:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3173, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5296:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3180, "initialValue": { "arguments": [ { "id": 3177, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3157, "src": "5340:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3178, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3159, "src": "5343:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 3175, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6357, "src": "5319:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$6357_$", "typeString": "type(library stdMath)" } }, "id": 3176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5327:12:5", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 6327, "src": "5319:20:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3179, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5319:26:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5296:49:5" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3181, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3174, "src": "5360:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3182, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3161, "src": "5375:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5360:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3214, "nodeType": "IfStatement", "src": "5356:384:5", "trueBody": { "id": 3213, "nodeType": "Block", "src": "5392:348:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d", "id": 3185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5415:36:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe", "typeString": "literal_string \"Error: a ~= b not satisfied [uint]\"" }, "value": "Error: a ~= b not satisfied [uint]" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe", "typeString": "literal_string \"Error: a ~= b not satisfied [uint]\"" } ], "id": 3184, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, "src": "5411:3:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3186, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5411:41:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3187, "nodeType": "EmitStatement", "src": "5406:46:5" }, { "eventCall": { "arguments": [ { "hexValue": "202020204578706563746564", "id": 3189, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5486:14:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3", "typeString": "literal_string \" Expected\"" }, "value": " Expected" }, { "id": 3190, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3159, "src": "5502:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3", "typeString": "literal_string \" Expected\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3188, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 799, "src": "5471:14:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3191, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5471:33:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3192, "nodeType": "EmitStatement", "src": "5466:38:5" }, { "eventCall": { "arguments": [ { "hexValue": "20202020202041637475616c", "id": 3194, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5538:14:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9", "typeString": "literal_string \" Actual\"" }, "value": " Actual" }, { "id": 3195, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3157, "src": "5554:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9", "typeString": "literal_string \" Actual\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3193, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 799, "src": "5523:14:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3196, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5523:33:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3197, "nodeType": "EmitStatement", "src": "5518:38:5" }, { "eventCall": { "arguments": [ { "hexValue": "204d617820252044656c7461", "id": 3199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5598:14:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d", "typeString": "literal_string \" Max % Delta\"" }, "value": " Max % Delta" }, { "id": 3200, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3161, "src": "5614:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3201, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5631:2:5", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d", "typeString": "literal_string \" Max % Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" } ], "id": 3198, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 787, "src": "5575:22:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3202, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5575:59:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3203, "nodeType": "EmitStatement", "src": "5570:64:5" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020252044656c7461", "id": 3205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5676:14:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7", "typeString": "literal_string \" % Delta\"" }, "value": " % Delta" }, { "id": 3206, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3174, "src": "5692:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5706:2:5", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7", "typeString": "literal_string \" % Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" } ], "id": 3204, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 787, "src": "5653:22:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3208, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5653:56:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3209, "nodeType": "EmitStatement", "src": "5648:61:5" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3210, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2612, 942 ], "referencedDeclaration": 942, "src": "5723:4:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3211, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5723:6:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3212, "nodeType": "ExpressionStatement", "src": "5723:6:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRel", "nameLocation": "5029:17:5", "parameters": { "id": 3162, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3157, "mutability": "mutable", "name": "a", "nameLocation": "5064:1:5", "nodeType": "VariableDeclaration", "scope": 3216, "src": "5056:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3156, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5056:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3159, "mutability": "mutable", "name": "b", "nameLocation": "5083:1:5", "nodeType": "VariableDeclaration", "scope": 3216, "src": "5075:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3158, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5075:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3161, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "5102:15:5", "nodeType": "VariableDeclaration", "scope": 3216, "src": "5094:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3160, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5094:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "5046:133:5" }, "returnParameters": { "id": 3163, "nodeType": "ParameterList", "parameters": [], "src": "5197:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3262, "nodeType": "FunctionDefinition", "src": "5752:524:5", "nodes": [], "body": { "id": 3261, "nodeType": "Block", "src": "5956:320:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3229, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3227, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3220, "src": "5970:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3228, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5975:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5970:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3236, "nodeType": "IfStatement", "src": "5966:38:5", "trueBody": { "expression": { "arguments": [ { "id": 3231, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3218, "src": "5994:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3232, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3220, "src": "5997:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3233, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3224, "src": "6000:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 3230, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2673, 2698, 2711, 2727, 2769, 2811, 2853, 2890, 2927, 2964, 1046, 1071, 1101, 1126, 1185, 1210, 1240, 1265, 2365, 2400 ], "referencedDeclaration": 1265, "src": "5985:8:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,uint256,string memory)" } }, "id": 3234, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5985:19:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3226, "id": 3235, "nodeType": "Return", "src": "5978:26:5" } }, { "assignments": [ 3238 ], "declarations": [ { "constant": false, "id": 3238, "mutability": "mutable", "name": "percentDelta", "nameLocation": "6068:12:5", "nodeType": "VariableDeclaration", "scope": 3261, "src": "6060:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3237, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6060:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3244, "initialValue": { "arguments": [ { "id": 3241, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3218, "src": "6104:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3242, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3220, "src": "6107:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 3239, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6357, "src": "6083:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$6357_$", "typeString": "type(library stdMath)" } }, "id": 3240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6091:12:5", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 6327, "src": "6083:20:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3243, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6083:26:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6060:49:5" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3245, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3238, "src": "6124:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3246, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3222, "src": "6139:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6124:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3260, "nodeType": "IfStatement", "src": "6120:150:5", "trueBody": { "id": 3259, "nodeType": "Block", "src": "6156:114:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3249, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6192:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3250, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3224, "src": "6201:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 3248, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "6175:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3251, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6175:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3252, "nodeType": "EmitStatement", "src": "6170:35:5" }, { "expression": { "arguments": [ { "id": 3254, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3218, "src": "6237:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3255, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3220, "src": "6240:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3256, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3222, "src": "6243:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3253, "name": "assertApproxEqRel", "nodeType": "Identifier", "overloadedDeclarations": [ 3216, 3262, 3323, 3369 ], "referencedDeclaration": 3216, "src": "6219:17:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256)" } }, "id": 3257, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6219:40:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3258, "nodeType": "ExpressionStatement", "src": "6219:40:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRel", "nameLocation": "5761:17:5", "parameters": { "id": 3225, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3218, "mutability": "mutable", "name": "a", "nameLocation": "5796:1:5", "nodeType": "VariableDeclaration", "scope": 3262, "src": "5788:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3217, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5788:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3220, "mutability": "mutable", "name": "b", "nameLocation": "5815:1:5", "nodeType": "VariableDeclaration", "scope": 3262, "src": "5807:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3219, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5807:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3222, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "5834:15:5", "nodeType": "VariableDeclaration", "scope": 3262, "src": "5826:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3221, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5826:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3224, "mutability": "mutable", "name": "err", "nameLocation": "5929:3:5", "nodeType": "VariableDeclaration", "scope": 3262, "src": "5915:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3223, "name": "string", "nodeType": "ElementaryTypeName", "src": "5915:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "5778:160:5" }, "returnParameters": { "id": 3226, "nodeType": "ParameterList", "parameters": [], "src": "5956:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3323, "nodeType": "FunctionDefinition", "src": "6282:635:5", "nodes": [], "body": { "id": 3322, "nodeType": "Block", "src": "6371:546:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 3273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3271, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3266, "src": "6385:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3272, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6390:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6385:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3279, "nodeType": "IfStatement", "src": "6381:33:5", "trueBody": { "expression": { "arguments": [ { "id": 3275, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3264, "src": "6409:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3276, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3266, "src": "6412:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3274, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2673, 2698, 2711, 2727, 2769, 2811, 2853, 2890, 2927, 2964, 1046, 1071, 1101, 1126, 1185, 1210, 1240, 1265, 2365, 2400 ], "referencedDeclaration": 1185, "src": "6400:8:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$", "typeString": "function (int256,int256)" } }, "id": 3277, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6400:14:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3270, "id": 3278, "nodeType": "Return", "src": "6393:21:5" } }, { "assignments": [ 3281 ], "declarations": [ { "constant": false, "id": 3281, "mutability": "mutable", "name": "percentDelta", "nameLocation": "6478:12:5", "nodeType": "VariableDeclaration", "scope": 3322, "src": "6470:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3280, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6470:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3287, "initialValue": { "arguments": [ { "id": 3284, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3264, "src": "6514:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3285, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3266, "src": "6517:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3282, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6357, "src": "6493:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$6357_$", "typeString": "type(library stdMath)" } }, "id": 3283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6501:12:5", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 6356, "src": "6493:20:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3286, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6493:26:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6470:49:5" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3288, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3281, "src": "6534:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3289, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3268, "src": "6549:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6534:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3321, "nodeType": "IfStatement", "src": "6530:381:5", "trueBody": { "id": 3320, "nodeType": "Block", "src": "6566:345:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d", "id": 3292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6589:35:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d", "typeString": "literal_string \"Error: a ~= b not satisfied [int]\"" }, "value": "Error: a ~= b not satisfied [int]" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d", "typeString": "literal_string \"Error: a ~= b not satisfied [int]\"" } ], "id": 3291, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, "src": "6585:3:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3293, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6585:40:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3294, "nodeType": "EmitStatement", "src": "6580:45:5" }, { "eventCall": { "arguments": [ { "hexValue": "202020204578706563746564", "id": 3296, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6658:14:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3", "typeString": "literal_string \" Expected\"" }, "value": " Expected" }, { "id": 3297, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3266, "src": "6674:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3", "typeString": "literal_string \" Expected\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3295, "name": "log_named_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 793, "src": "6644:13:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$", "typeString": "function (string memory,int256)" } }, "id": 3298, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6644:32:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3299, "nodeType": "EmitStatement", "src": "6639:37:5" }, { "eventCall": { "arguments": [ { "hexValue": "20202020202041637475616c", "id": 3301, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6709:14:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9", "typeString": "literal_string \" Actual\"" }, "value": " Actual" }, { "id": 3302, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3264, "src": "6725:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9", "typeString": "literal_string \" Actual\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3300, "name": "log_named_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 793, "src": "6695:13:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$", "typeString": "function (string memory,int256)" } }, "id": 3303, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6695:32:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3304, "nodeType": "EmitStatement", "src": "6690:37:5" }, { "eventCall": { "arguments": [ { "hexValue": "204d617820252044656c7461", "id": 3306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6769:14:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d", "typeString": "literal_string \" Max % Delta\"" }, "value": " Max % Delta" }, { "id": 3307, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3268, "src": "6785:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6802:2:5", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d", "typeString": "literal_string \" Max % Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" } ], "id": 3305, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 787, "src": "6746:22:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3309, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6746:59:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3310, "nodeType": "EmitStatement", "src": "6741:64:5" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020252044656c7461", "id": 3312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6847:14:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7", "typeString": "literal_string \" % Delta\"" }, "value": " % Delta" }, { "id": 3313, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3281, "src": "6863:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6877:2:5", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7", "typeString": "literal_string \" % Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" } ], "id": 3311, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 787, "src": "6824:22:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3315, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6824:56:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3316, "nodeType": "EmitStatement", "src": "6819:61:5" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3317, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2612, 942 ], "referencedDeclaration": 942, "src": "6894:4:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3318, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6894:6:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3319, "nodeType": "ExpressionStatement", "src": "6894:6:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRel", "nameLocation": "6291:17:5", "parameters": { "id": 3269, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3264, "mutability": "mutable", "name": "a", "nameLocation": "6316:1:5", "nodeType": "VariableDeclaration", "scope": 3323, "src": "6309:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3263, "name": "int256", "nodeType": "ElementaryTypeName", "src": "6309:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3266, "mutability": "mutable", "name": "b", "nameLocation": "6326:1:5", "nodeType": "VariableDeclaration", "scope": 3323, "src": "6319:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3265, "name": "int256", "nodeType": "ElementaryTypeName", "src": "6319:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3268, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "6337:15:5", "nodeType": "VariableDeclaration", "scope": 3323, "src": "6329:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3267, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6329:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "6308:45:5" }, "returnParameters": { "id": 3270, "nodeType": "ParameterList", "parameters": [], "src": "6371:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3369, "nodeType": "FunctionDefinition", "src": "6923:428:5", "nodes": [], "body": { "id": 3368, "nodeType": "Block", "src": "7031:320:5", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 3336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3334, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3327, "src": "7045:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3335, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7050:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7045:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3343, "nodeType": "IfStatement", "src": "7041:38:5", "trueBody": { "expression": { "arguments": [ { "id": 3338, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3325, "src": "7069:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3339, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3327, "src": "7072:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3340, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3331, "src": "7075:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 3337, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2673, 2698, 2711, 2727, 2769, 2811, 2853, 2890, 2927, 2964, 1046, 1071, 1101, 1126, 1185, 1210, 1240, 1265, 2365, 2400 ], "referencedDeclaration": 1210, "src": "7060:8:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (int256,int256,string memory)" } }, "id": 3341, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7060:19:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3333, "id": 3342, "nodeType": "Return", "src": "7053:26:5" } }, { "assignments": [ 3345 ], "declarations": [ { "constant": false, "id": 3345, "mutability": "mutable", "name": "percentDelta", "nameLocation": "7143:12:5", "nodeType": "VariableDeclaration", "scope": 3368, "src": "7135:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3344, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7135:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3351, "initialValue": { "arguments": [ { "id": 3348, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3325, "src": "7179:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3349, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3327, "src": "7182:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3346, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6357, "src": "7158:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$6357_$", "typeString": "type(library stdMath)" } }, "id": 3347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7166:12:5", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 6356, "src": "7158:20:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3350, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7158:26:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "7135:49:5" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3352, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3345, "src": "7199:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3353, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3329, "src": "7214:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7199:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3367, "nodeType": "IfStatement", "src": "7195:150:5", "trueBody": { "id": 3366, "nodeType": "Block", "src": "7231:114:5", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3356, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7267:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3357, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3331, "src": "7276:3:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 3355, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "7250:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3358, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7250:30:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3359, "nodeType": "EmitStatement", "src": "7245:35:5" }, { "expression": { "arguments": [ { "id": 3361, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3325, "src": "7312:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3362, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3327, "src": "7315:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3363, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3329, "src": "7318:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3360, "name": "assertApproxEqRel", "nodeType": "Identifier", "overloadedDeclarations": [ 3216, 3262, 3323, 3369 ], "referencedDeclaration": 3323, "src": "7294:17:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$", "typeString": "function (int256,int256,uint256)" } }, "id": 3364, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7294:40:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3365, "nodeType": "ExpressionStatement", "src": "7294:40:5" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRel", "nameLocation": "6932:17:5", "parameters": { "id": 3332, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3325, "mutability": "mutable", "name": "a", "nameLocation": "6957:1:5", "nodeType": "VariableDeclaration", "scope": 3369, "src": "6950:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3324, "name": "int256", "nodeType": "ElementaryTypeName", "src": "6950:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3327, "mutability": "mutable", "name": "b", "nameLocation": "6967:1:5", "nodeType": "VariableDeclaration", "scope": 3369, "src": "6960:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3326, "name": "int256", "nodeType": "ElementaryTypeName", "src": "6960:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3329, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "6978:15:5", "nodeType": "VariableDeclaration", "scope": 3369, "src": "6970:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3328, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6970:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3331, "mutability": "mutable", "name": "err", "nameLocation": "7009:3:5", "nodeType": "VariableDeclaration", "scope": 3369, "src": "6995:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3330, "name": "string", "nodeType": "ElementaryTypeName", "src": "6995:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "6949:64:5" }, "returnParameters": { "id": 3333, "nodeType": "ParameterList", "parameters": [], "src": "7031:0:5" }, "scope": 3370, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], "abstract": true, "baseContracts": [ { "baseName": { "id": 2561, "name": "DSTest", "nameLocations": [ "152:6:5" ], "nodeType": "IdentifierPath", "referencedDeclaration": 2512, "src": "152:6:5" }, "id": 2562, "nodeType": "InheritanceSpecifier", "src": "152:6:5" } ], "canonicalName": "StdAssertions", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ 3370, 2512 ], "name": "StdAssertions", "nameLocation": "135:13:5", "scope": 3371, "usedErrors": [] } ], "license": "MIT" }, "id": 5 }