{ "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.22+commit.4fc1097e\"},\"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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.22+commit.4fc1097e" }, "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": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@uniswap/v3-core/=lib_uniswap/v3-core/", "@uniswap/v3-periphery/=lib_uniswap/v3-periphery/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "v3-core/=lib_uniswap/v3-core/", "v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/" ], "optimizer": { "runs": 999999999, "details": { "peephole": true, "inliner": true, "jumpdestRemover": true, "orderLiterals": true, "deduplicate": true, "cse": true, "constantOptimizer": true, "yul": true, "yulDetails": { "stackAllocation": true, "optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu" } } }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "lib/forge-std/src/StdAssertions.sol": "StdAssertions" }, "libraries": {} }, "sources": { "lib/forge-std/lib/ds-test/src/test.sol": { "keccak256": "0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b", "urls": [ "bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240", "dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k" ], "license": "GPL-3.0-or-later" }, "lib/forge-std/src/StdAssertions.sol": { "keccak256": "0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60", "urls": [ "bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b", "dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL" ], "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": 3824, "exportedSymbols": { "DSTest": [ 2291 ], "StdAssertions": [ 3823 ], "stdMath": [ 8342 ] }, "nodeType": "SourceUnit", "src": "32:13639:3", "nodes": [ { "id": 2407, "nodeType": "PragmaDirective", "src": "32:31:3", "nodes": [], "literals": [ "solidity", ">=", "0.6", ".2", "<", "0.9", ".0" ] }, { "id": 2409, "nodeType": "ImportDirective", "src": "65:40:3", "nodes": [], "absolutePath": "lib/forge-std/lib/ds-test/src/test.sol", "file": "ds-test/test.sol", "nameLocation": "-1:-1:-1", "scope": 3824, "sourceUnit": 2292, "symbolAliases": [ { "foreign": { "id": 2408, "name": "DSTest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2291, "src": "73:6:3", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 2411, "nodeType": "ImportDirective", "src": "106:38:3", "nodes": [], "absolutePath": "lib/forge-std/src/StdMath.sol", "file": "./StdMath.sol", "nameLocation": "-1:-1:-1", "scope": 3824, "sourceUnit": 8343, "symbolAliases": [ { "foreign": { "id": 2410, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "114:7:3", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 3823, "nodeType": "ContractDefinition", "src": "146:13524:3", "nodes": [ { "id": 2418, "nodeType": "EventDefinition", "src": "194:31:3", "nodes": [], "anonymous": false, "eventSelector": "fb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1", "name": "log_array", "nameLocation": "200:9:3", "parameters": { "id": 2417, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2416, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "220:3:3", "nodeType": "VariableDeclaration", "scope": 2418, "src": "210:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2414, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "210:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2415, "nodeType": "ArrayTypeName", "src": "210:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "src": "209:15:3" } }, { "id": 2423, "nodeType": "EventDefinition", "src": "230:30:3", "nodes": [], "anonymous": false, "eventSelector": "890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5", "name": "log_array", "nameLocation": "236:9:3", "parameters": { "id": 2422, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2421, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "255:3:3", "nodeType": "VariableDeclaration", "scope": 2423, "src": "246:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2419, "name": "int256", "nodeType": "ElementaryTypeName", "src": "246:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2420, "nodeType": "ArrayTypeName", "src": "246:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" } ], "src": "245:14:3" } }, { "id": 2428, "nodeType": "EventDefinition", "src": "265:31:3", "nodes": [], "anonymous": false, "eventSelector": "40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2", "name": "log_array", "nameLocation": "271:9:3", "parameters": { "id": 2427, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2426, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "291:3:3", "nodeType": "VariableDeclaration", "scope": 2428, "src": "281:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2424, "name": "address", "nodeType": "ElementaryTypeName", "src": "281:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2425, "nodeType": "ArrayTypeName", "src": "281:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "280:15:3" } }, { "id": 2435, "nodeType": "EventDefinition", "src": "301:49:3", "nodes": [], "anonymous": false, "eventSelector": "00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb", "name": "log_named_array", "nameLocation": "307:15:3", "parameters": { "id": 2434, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2430, "indexed": false, "mutability": "mutable", "name": "key", "nameLocation": "330:3:3", "nodeType": "VariableDeclaration", "scope": 2435, "src": "323:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2429, "name": "string", "nodeType": "ElementaryTypeName", "src": "323:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 2433, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "345:3:3", "nodeType": "VariableDeclaration", "scope": 2435, "src": "335:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2431, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "335:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2432, "nodeType": "ArrayTypeName", "src": "335:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "src": "322:27:3" } }, { "id": 2442, "nodeType": "EventDefinition", "src": "355:48:3", "nodes": [], "anonymous": false, "eventSelector": "a73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57", "name": "log_named_array", "nameLocation": "361:15:3", "parameters": { "id": 2441, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2437, "indexed": false, "mutability": "mutable", "name": "key", "nameLocation": "384:3:3", "nodeType": "VariableDeclaration", "scope": 2442, "src": "377:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2436, "name": "string", "nodeType": "ElementaryTypeName", "src": "377:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 2440, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "398:3:3", "nodeType": "VariableDeclaration", "scope": 2442, "src": "389:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2438, "name": "int256", "nodeType": "ElementaryTypeName", "src": "389:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2439, "nodeType": "ArrayTypeName", "src": "389:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" } ], "src": "376:26:3" } }, { "id": 2449, "nodeType": "EventDefinition", "src": "408:49:3", "nodes": [], "anonymous": false, "eventSelector": "3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd", "name": "log_named_array", "nameLocation": "414:15:3", "parameters": { "id": 2448, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2444, "indexed": false, "mutability": "mutable", "name": "key", "nameLocation": "437:3:3", "nodeType": "VariableDeclaration", "scope": 2449, "src": "430:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2443, "name": "string", "nodeType": "ElementaryTypeName", "src": "430:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 2447, "indexed": false, "mutability": "mutable", "name": "val", "nameLocation": "452:3:3", "nodeType": "VariableDeclaration", "scope": 2449, "src": "442:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2445, "name": "address", "nodeType": "ElementaryTypeName", "src": "442:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2446, "nodeType": "ArrayTypeName", "src": "442:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "429:27:3" } }, { "id": 2463, "nodeType": "FunctionDefinition", "src": "463:118:3", "nodes": [], "body": { "id": 2462, "nodeType": "Block", "src": "513:68:3", "nodes": [], "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2455, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "545:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2456, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2451, "src": "554:3:3", "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": 2454, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "528:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2457, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "528:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2458, "nodeType": "EmitStatement", "src": "523:35:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2459, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "568:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2460, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "568:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2461, "nodeType": "ExpressionStatement", "src": "568:6:3" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "fail", "nameLocation": "472:4:3", "parameters": { "id": 2452, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2451, "mutability": "mutable", "name": "err", "nameLocation": "491:3:3", "nodeType": "VariableDeclaration", "scope": 2463, "src": "477:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2450, "name": "string", "nodeType": "ElementaryTypeName", "src": "477:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "476:19:3" }, "returnParameters": { "id": 2453, "nodeType": "ParameterList", "parameters": [], "src": "513:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2474, "nodeType": "FunctionDefinition", "src": "587:83:3", "nodes": [], "body": { "id": 2473, "nodeType": "Block", "src": "636:34:3", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 2470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "657:5:3", "subExpression": { "id": 2469, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2465, "src": "658:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 2468, "name": "assertTrue", "nodeType": "Identifier", "overloadedDeclarations": [ 269, 290 ], "referencedDeclaration": 269, "src": "646:10:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, "id": 2471, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "646:17:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2472, "nodeType": "ExpressionStatement", "src": "646:17:3" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertFalse", "nameLocation": "596:11:3", "parameters": { "id": 2466, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2465, "mutability": "mutable", "name": "data", "nameLocation": "613:4:3", "nodeType": "VariableDeclaration", "scope": 2474, "src": "608:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2464, "name": "bool", "nodeType": "ElementaryTypeName", "src": "608:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "607:11:3" }, "returnParameters": { "id": 2467, "nodeType": "ParameterList", "parameters": [], "src": "636:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2488, "nodeType": "FunctionDefinition", "src": "676:107:3", "nodes": [], "body": { "id": 2487, "nodeType": "Block", "src": "744:39:3", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 2483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "765:5:3", "subExpression": { "id": 2482, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2476, "src": "766:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 2484, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2478, "src": "772:3:3", "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": 2481, "name": "assertTrue", "nodeType": "Identifier", "overloadedDeclarations": [ 269, 290 ], "referencedDeclaration": 290, "src": "754:10:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory)" } }, "id": 2485, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "754:22:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2486, "nodeType": "ExpressionStatement", "src": "754:22:3" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertFalse", "nameLocation": "685:11:3", "parameters": { "id": 2479, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2476, "mutability": "mutable", "name": "data", "nameLocation": "702:4:3", "nodeType": "VariableDeclaration", "scope": 2488, "src": "697:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2475, "name": "bool", "nodeType": "ElementaryTypeName", "src": "697:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 2478, "mutability": "mutable", "name": "err", "nameLocation": "722:3:3", "nodeType": "VariableDeclaration", "scope": 2488, "src": "708:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2477, "name": "string", "nodeType": "ElementaryTypeName", "src": "708:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "696:30:3" }, "returnParameters": { "id": 2480, "nodeType": "ParameterList", "parameters": [], "src": "744:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2524, "nodeType": "FunctionDefinition", "src": "789:312:3", "nodes": [], "body": { "id": 2523, "nodeType": "Block", "src": "840:261:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2497, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 2495, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2490, "src": "854:1:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 2496, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2492, "src": "859:1:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "854:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2522, "nodeType": "IfStatement", "src": "850:245:3", "trueBody": { "id": 2521, "nodeType": "Block", "src": "862:233:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6c5d", "id": 2499, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "885:36:3", "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": 2498, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "881:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 2500, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "881:41:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2501, "nodeType": "EmitStatement", "src": "876:46:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020204c656674", "id": 2503, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "958:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "condition": { "id": 2504, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2490, "src": "972:1:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "hexValue": "66616c7365", "id": 2506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "985:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a", "typeString": "literal_string \"false\"" }, "value": "false" }, "id": 2507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "972:20:3", "trueExpression": { "hexValue": "74727565", "id": 2505, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "976:6:3", "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_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2502, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "941:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2508, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "941:52:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2509, "nodeType": "EmitStatement", "src": "936:57:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020205269676874", "id": 2511, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1029:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "condition": { "id": 2512, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2492, "src": "1043:1:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "hexValue": "66616c7365", "id": 2514, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1056:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a", "typeString": "literal_string \"false\"" }, "value": "false" }, "id": 2515, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "1043:20:3", "trueExpression": { "hexValue": "74727565", "id": 2513, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1047:6:3", "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_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 2510, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "1012:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1012:52:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2517, "nodeType": "EmitStatement", "src": "1007:57:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2518, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "1078:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2519, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1078:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2520, "nodeType": "ExpressionStatement", "src": "1078:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "798:8:3", "parameters": { "id": 2493, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2490, "mutability": "mutable", "name": "a", "nameLocation": "812:1:3", "nodeType": "VariableDeclaration", "scope": 2524, "src": "807:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2489, "name": "bool", "nodeType": "ElementaryTypeName", "src": "807:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 2492, "mutability": "mutable", "name": "b", "nameLocation": "820:1:3", "nodeType": "VariableDeclaration", "scope": 2524, "src": "815:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2491, "name": "bool", "nodeType": "ElementaryTypeName", "src": "815:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "806:16:3" }, "returnParameters": { "id": 2494, "nodeType": "ParameterList", "parameters": [], "src": "840:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2549, "nodeType": "FunctionDefinition", "src": "1107:186:3", "nodes": [], "body": { "id": 2548, "nodeType": "Block", "src": "1177:116:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 2533, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2526, "src": "1191:1:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 2534, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2528, "src": "1196:1:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1191:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2547, "nodeType": "IfStatement", "src": "1187:100:3", "trueBody": { "id": 2546, "nodeType": "Block", "src": "1199:88:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1235:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2538, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2530, "src": "1244:3:3", "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": 2536, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "1218:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2539, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1218:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2540, "nodeType": "EmitStatement", "src": "1213:35:3" }, { "expression": { "arguments": [ { "id": 2542, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2526, "src": "1271:1:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 2543, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2528, "src": "1274:1:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 2541, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 2524, "src": "1262:8:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, "id": 2544, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1262:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2545, "nodeType": "ExpressionStatement", "src": "1262:14:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "1116:8:3", "parameters": { "id": 2531, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2526, "mutability": "mutable", "name": "a", "nameLocation": "1130:1:3", "nodeType": "VariableDeclaration", "scope": 2549, "src": "1125:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2525, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1125:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 2528, "mutability": "mutable", "name": "b", "nameLocation": "1138:1:3", "nodeType": "VariableDeclaration", "scope": 2549, "src": "1133:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2527, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1133:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 2530, "mutability": "mutable", "name": "err", "nameLocation": "1155:3:3", "nodeType": "VariableDeclaration", "scope": 2549, "src": "1141:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2529, "name": "string", "nodeType": "ElementaryTypeName", "src": "1141:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1124:35:3" }, "returnParameters": { "id": 2532, "nodeType": "ParameterList", "parameters": [], "src": "1177:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2562, "nodeType": "FunctionDefinition", "src": "1299:99:3", "nodes": [], "body": { "id": 2561, "nodeType": "Block", "src": "1366:32:3", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 2557, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2551, "src": "1386:1:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 2558, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2553, "src": "1389:1:3", "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": 2556, "name": "assertEq0", "nodeType": "Identifier", "overloadedDeclarations": [ 2206, 2233 ], "referencedDeclaration": 2206, "src": "1376:9:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory,bytes memory)" } }, "id": 2559, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1376:15:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2560, "nodeType": "ExpressionStatement", "src": "1376:15:3" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "1308:8:3", "parameters": { "id": 2554, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2551, "mutability": "mutable", "name": "a", "nameLocation": "1330:1:3", "nodeType": "VariableDeclaration", "scope": 2562, "src": "1317:14:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2550, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1317:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 2553, "mutability": "mutable", "name": "b", "nameLocation": "1346:1:3", "nodeType": "VariableDeclaration", "scope": 2562, "src": "1333:14:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2552, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1333:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "1316:32:3" }, "returnParameters": { "id": 2555, "nodeType": "ParameterList", "parameters": [], "src": "1366:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2578, "nodeType": "FunctionDefinition", "src": "1404:123:3", "nodes": [], "body": { "id": 2577, "nodeType": "Block", "src": "1490:37:3", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 2572, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2564, "src": "1510:1:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 2573, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2566, "src": "1513:1:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 2574, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2568, "src": "1516:3:3", "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": 2571, "name": "assertEq0", "nodeType": "Identifier", "overloadedDeclarations": [ 2206, 2233 ], "referencedDeclaration": 2233, "src": "1500:9:3", "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": 2575, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1500:20:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2576, "nodeType": "ExpressionStatement", "src": "1500:20:3" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "1413:8:3", "parameters": { "id": 2569, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2564, "mutability": "mutable", "name": "a", "nameLocation": "1435:1:3", "nodeType": "VariableDeclaration", "scope": 2578, "src": "1422:14:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2563, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1422:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 2566, "mutability": "mutable", "name": "b", "nameLocation": "1451:1:3", "nodeType": "VariableDeclaration", "scope": 2578, "src": "1438:14:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2565, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1438:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 2568, "mutability": "mutable", "name": "err", "nameLocation": "1468:3:3", "nodeType": "VariableDeclaration", "scope": 2578, "src": "1454:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2567, "name": "string", "nodeType": "ElementaryTypeName", "src": "1454:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1421:51:3" }, "returnParameters": { "id": 2570, "nodeType": "ParameterList", "parameters": [], "src": "1490:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2620, "nodeType": "FunctionDefinition", "src": "1533:344:3", "nodes": [], "body": { "id": 2619, "nodeType": "Block", "src": "1608:269:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2599, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2590, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2581, "src": "1643:1:3", "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": 2588, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1632:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2589, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1636:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "1632:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2591, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1632:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2587, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "1622:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2592, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1622:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2596, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2584, "src": "1671:1:3", "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": 2594, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1660:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2595, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1664:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "1660:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1660:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2593, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "1650:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2598, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1650:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "1622:52:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2618, "nodeType": "IfStatement", "src": "1618:253:3", "trueBody": { "id": 2617, "nodeType": "Block", "src": "1676:195:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e745b5d5d", "id": 2601, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1699:38:3", "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": 2600, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "1695:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 2602, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1695:43:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2603, "nodeType": "EmitStatement", "src": "1690:48:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020204c656674", "id": 2605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1773:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 2606, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2581, "src": "1787:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "id": 2604, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2435, 2442, 2449 ], "referencedDeclaration": 2435, "src": "1757:15:3", "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": 2607, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1757:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2608, "nodeType": "EmitStatement", "src": "1752:37:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020205269676874", "id": 2610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1824:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 2611, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2584, "src": "1838:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "id": 2609, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2435, 2442, 2449 ], "referencedDeclaration": 2435, "src": "1808:15:3", "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": 2612, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1808:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2613, "nodeType": "EmitStatement", "src": "1803:37:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2614, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "1854:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2615, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1854:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2616, "nodeType": "ExpressionStatement", "src": "1854:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "1542:8:3", "parameters": { "id": 2585, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2581, "mutability": "mutable", "name": "a", "nameLocation": "1568:1:3", "nodeType": "VariableDeclaration", "scope": 2620, "src": "1551:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2579, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1551:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2580, "nodeType": "ArrayTypeName", "src": "1551:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2584, "mutability": "mutable", "name": "b", "nameLocation": "1588:1:3", "nodeType": "VariableDeclaration", "scope": 2620, "src": "1571:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2582, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1571:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2583, "nodeType": "ArrayTypeName", "src": "1571:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "src": "1550:40:3" }, "returnParameters": { "id": 2586, "nodeType": "ParameterList", "parameters": [], "src": "1608:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2662, "nodeType": "FunctionDefinition", "src": "1883:341:3", "nodes": [], "body": { "id": 2661, "nodeType": "Block", "src": "1956:268:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2632, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2623, "src": "1991:1:3", "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": 2630, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1980:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2631, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1984:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "1980:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2633, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1980:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2629, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "1970:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2634, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1970:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2638, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2626, "src": "2019:1:3", "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": 2636, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2008:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2637, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2012:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "2008:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2639, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2008:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2635, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "1998:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2640, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1998:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "1970:52:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2660, "nodeType": "IfStatement", "src": "1966:252:3", "trueBody": { "id": 2659, "nodeType": "Block", "src": "2024:194:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e745b5d5d", "id": 2643, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2047:37:3", "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": 2642, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "2043:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 2644, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2043:42:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2645, "nodeType": "EmitStatement", "src": "2038:47:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020204c656674", "id": 2647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2120:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 2648, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2623, "src": "2134:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } ], "id": 2646, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2435, 2442, 2449 ], "referencedDeclaration": 2442, "src": "2104:15:3", "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": 2649, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2104:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2650, "nodeType": "EmitStatement", "src": "2099:37:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020205269676874", "id": 2652, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2171:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 2653, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2626, "src": "2185:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } ], "id": 2651, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2435, 2442, 2449 ], "referencedDeclaration": 2442, "src": "2155:15:3", "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": 2654, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2155:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2655, "nodeType": "EmitStatement", "src": "2150:37:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2656, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "2201:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2657, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2201:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2658, "nodeType": "ExpressionStatement", "src": "2201:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "1892:8:3", "parameters": { "id": 2627, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2623, "mutability": "mutable", "name": "a", "nameLocation": "1917:1:3", "nodeType": "VariableDeclaration", "scope": 2662, "src": "1901:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2621, "name": "int256", "nodeType": "ElementaryTypeName", "src": "1901:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2622, "nodeType": "ArrayTypeName", "src": "1901:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2626, "mutability": "mutable", "name": "b", "nameLocation": "1936:1:3", "nodeType": "VariableDeclaration", "scope": 2662, "src": "1920:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2624, "name": "int256", "nodeType": "ElementaryTypeName", "src": "1920:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2625, "nodeType": "ArrayTypeName", "src": "1920:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" } ], "src": "1900:38:3" }, "returnParameters": { "id": 2628, "nodeType": "ParameterList", "parameters": [], "src": "1956:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2704, "nodeType": "FunctionDefinition", "src": "2230:347:3", "nodes": [], "body": { "id": 2703, "nodeType": "Block", "src": "2305:272:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2674, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2665, "src": "2340:1:3", "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": 2672, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2329:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2673, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2333:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "2329:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2675, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2329:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2671, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2319:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2676, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2319:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2680, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2668, "src": "2368:1:3", "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": 2678, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2357:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2679, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2361:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "2357:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2681, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2357:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2677, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2347:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2682, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2347:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2319:52:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2702, "nodeType": "IfStatement", "src": "2315:256:3", "trueBody": { "id": 2701, "nodeType": "Block", "src": "2373:198:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464726573735b5d5d", "id": 2685, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2396:41:3", "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": 2684, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "2392:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 2686, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2392:46:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2687, "nodeType": "EmitStatement", "src": "2387:51:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020204c656674", "id": 2689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2473:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 2690, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2665, "src": "2487:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } ], "id": 2688, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2435, 2442, 2449 ], "referencedDeclaration": 2449, "src": "2457:15:3", "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": 2691, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2457:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2692, "nodeType": "EmitStatement", "src": "2452:37:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020205269676874", "id": 2694, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2524:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 2695, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2668, "src": "2538:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } ], "id": 2693, "name": "log_named_array", "nodeType": "Identifier", "overloadedDeclarations": [ 2435, 2442, 2449 ], "referencedDeclaration": 2449, "src": "2508:15:3", "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": 2696, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2508:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2697, "nodeType": "EmitStatement", "src": "2503:37:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2698, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "2554:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2699, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2554:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2700, "nodeType": "ExpressionStatement", "src": "2554:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "2239:8:3", "parameters": { "id": 2669, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2665, "mutability": "mutable", "name": "a", "nameLocation": "2265:1:3", "nodeType": "VariableDeclaration", "scope": 2704, "src": "2248:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2663, "name": "address", "nodeType": "ElementaryTypeName", "src": "2248:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2664, "nodeType": "ArrayTypeName", "src": "2248:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 2668, "mutability": "mutable", "name": "b", "nameLocation": "2285:1:3", "nodeType": "VariableDeclaration", "scope": 2704, "src": "2268:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2666, "name": "address", "nodeType": "ElementaryTypeName", "src": "2268:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2667, "nodeType": "ArrayTypeName", "src": "2268:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "2247:40:3" }, "returnParameters": { "id": 2670, "nodeType": "ParameterList", "parameters": [], "src": "2305:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2741, "nodeType": "FunctionDefinition", "src": "2583:256:3", "nodes": [], "body": { "id": 2740, "nodeType": "Block", "src": "2677:162:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2718, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2707, "src": "2712:1:3", "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": 2716, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2701:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2705:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "2701:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2719, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2701:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2715, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2691:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2720, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2691:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2724, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2710, "src": "2740:1:3", "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": 2722, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2729:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2723, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2733:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "2729:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2725, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2729:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2721, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2719:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2726, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2719:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2691:52:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2739, "nodeType": "IfStatement", "src": "2687:146:3", "trueBody": { "id": 2738, "nodeType": "Block", "src": "2745:88:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2729, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2781:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2730, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2712, "src": "2790:3:3", "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": 2728, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "2764:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2731, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2764:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2732, "nodeType": "EmitStatement", "src": "2759:35:3" }, { "expression": { "arguments": [ { "id": 2734, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2707, "src": "2817:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, { "id": 2735, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2710, "src": "2820:1:3", "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": 2733, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 2620, "src": "2808:8:3", "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": 2736, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2808:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2737, "nodeType": "ExpressionStatement", "src": "2808:14:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "2592:8:3", "parameters": { "id": 2713, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2707, "mutability": "mutable", "name": "a", "nameLocation": "2618:1:3", "nodeType": "VariableDeclaration", "scope": 2741, "src": "2601:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2705, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2601:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2706, "nodeType": "ArrayTypeName", "src": "2601:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2710, "mutability": "mutable", "name": "b", "nameLocation": "2638:1:3", "nodeType": "VariableDeclaration", "scope": 2741, "src": "2621:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 2708, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2621:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2709, "nodeType": "ArrayTypeName", "src": "2621:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2712, "mutability": "mutable", "name": "err", "nameLocation": "2655:3:3", "nodeType": "VariableDeclaration", "scope": 2741, "src": "2641:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2711, "name": "string", "nodeType": "ElementaryTypeName", "src": "2641:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2600:59:3" }, "returnParameters": { "id": 2714, "nodeType": "ParameterList", "parameters": [], "src": "2677:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2778, "nodeType": "FunctionDefinition", "src": "2845:254:3", "nodes": [], "body": { "id": 2777, "nodeType": "Block", "src": "2937:162:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2755, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2744, "src": "2972:1:3", "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": 2753, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2961:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2754, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2965:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "2961:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2756, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2961:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2752, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2951:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2757, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2951:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2761, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2747, "src": "3000:1:3", "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": 2759, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2989:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2760, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2993:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "2989:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2762, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2989:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2758, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2979:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2763, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2979:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2951:52:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2776, "nodeType": "IfStatement", "src": "2947:146:3", "trueBody": { "id": 2775, "nodeType": "Block", "src": "3005:88:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3041:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2767, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2749, "src": "3050:3:3", "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": 2765, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "3024:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2768, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3024:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2769, "nodeType": "EmitStatement", "src": "3019:35:3" }, { "expression": { "arguments": [ { "id": 2771, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2744, "src": "3077:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } }, { "id": 2772, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2747, "src": "3080:1:3", "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": 2770, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 2662, "src": "3068:8:3", "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": 2773, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3068:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2774, "nodeType": "ExpressionStatement", "src": "3068:14:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "2854:8:3", "parameters": { "id": 2750, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2744, "mutability": "mutable", "name": "a", "nameLocation": "2879:1:3", "nodeType": "VariableDeclaration", "scope": 2778, "src": "2863:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2742, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2863:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2743, "nodeType": "ArrayTypeName", "src": "2863:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2747, "mutability": "mutable", "name": "b", "nameLocation": "2898:1:3", "nodeType": "VariableDeclaration", "scope": 2778, "src": "2882:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 2745, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2882:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 2746, "nodeType": "ArrayTypeName", "src": "2882:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "visibility": "internal" }, { "constant": false, "id": 2749, "mutability": "mutable", "name": "err", "nameLocation": "2915:3:3", "nodeType": "VariableDeclaration", "scope": 2778, "src": "2901:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2748, "name": "string", "nodeType": "ElementaryTypeName", "src": "2901:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2862:57:3" }, "returnParameters": { "id": 2751, "nodeType": "ParameterList", "parameters": [], "src": "2937:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2815, "nodeType": "FunctionDefinition", "src": "3105:256:3", "nodes": [], "body": { "id": 2814, "nodeType": "Block", "src": "3199:162:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 2801, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 2792, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2781, "src": "3234:1:3", "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": 2790, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3223:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2791, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3227:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "3223:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2793, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3223:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2789, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "3213:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2794, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3213:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 2798, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2784, "src": "3262:1:3", "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": 2796, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3251:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2797, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3255:6:3", "memberName": "encode", "nodeType": "MemberAccess", "src": "3251:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2799, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3251:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2795, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "3241:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2800, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3241:24:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "3213:52:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2813, "nodeType": "IfStatement", "src": "3209:146:3", "trueBody": { "id": 2812, "nodeType": "Block", "src": "3267:88:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3303:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2804, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2786, "src": "3312:3:3", "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": 2802, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "3286:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2805, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3286:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2806, "nodeType": "EmitStatement", "src": "3281:35:3" }, { "expression": { "arguments": [ { "id": 2808, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2781, "src": "3339:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { "id": 2809, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2784, "src": "3342:1:3", "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": 2807, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 2704, "src": "3330:8:3", "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": 2810, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3330:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2811, "nodeType": "ExpressionStatement", "src": "3330:14:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEq", "nameLocation": "3114:8:3", "parameters": { "id": 2787, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2781, "mutability": "mutable", "name": "a", "nameLocation": "3140:1:3", "nodeType": "VariableDeclaration", "scope": 2815, "src": "3123:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2779, "name": "address", "nodeType": "ElementaryTypeName", "src": "3123:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2780, "nodeType": "ArrayTypeName", "src": "3123:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 2784, "mutability": "mutable", "name": "b", "nameLocation": "3160:1:3", "nodeType": "VariableDeclaration", "scope": 2815, "src": "3143:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2782, "name": "address", "nodeType": "ElementaryTypeName", "src": "3143:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2783, "nodeType": "ArrayTypeName", "src": "3143:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 2786, "mutability": "mutable", "name": "err", "nameLocation": "3177:3:3", "nodeType": "VariableDeclaration", "scope": 2815, "src": "3163:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2785, "name": "string", "nodeType": "ElementaryTypeName", "src": "3163:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "3122:59:3" }, "returnParameters": { "id": 2788, "nodeType": "ParameterList", "parameters": [], "src": "3199:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2834, "nodeType": "FunctionDefinition", "src": "3388:110:3", "nodes": [], "body": { "id": 2833, "nodeType": "Block", "src": "3449:49:3", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [ { "id": 2825, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2817, "src": "3476:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2824, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3468:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 2823, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3468:7:3", "typeDescriptions": {} } }, "id": 2826, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3468:10:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "arguments": [ { "id": 2829, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2819, "src": "3488:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2828, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3480:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 2827, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3480:7:3", "typeDescriptions": {} } }, "id": 2830, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3480:10:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2822, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 514, "src": "3459:8:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, "id": 2831, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3459:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2832, "nodeType": "ExpressionStatement", "src": "3459:32:3" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEqUint", "nameLocation": "3397:12:3", "parameters": { "id": 2820, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2817, "mutability": "mutable", "name": "a", "nameLocation": "3418:1:3", "nodeType": "VariableDeclaration", "scope": 2834, "src": "3410:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2816, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3410:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2819, "mutability": "mutable", "name": "b", "nameLocation": "3429:1:3", "nodeType": "VariableDeclaration", "scope": 2834, "src": "3421:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2818, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3421:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3409:22:3" }, "returnParameters": { "id": 2821, "nodeType": "ParameterList", "parameters": [], "src": "3449:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2884, "nodeType": "FunctionDefinition", "src": "3504:470:3", "nodes": [], "body": { "id": 2883, "nodeType": "Block", "src": "3588:386:3", "nodes": [], "statements": [ { "assignments": [ 2844 ], "declarations": [ { "constant": false, "id": 2844, "mutability": "mutable", "name": "delta", "nameLocation": "3606:5:3", "nodeType": "VariableDeclaration", "scope": 2883, "src": "3598:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2843, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3598:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 2850, "initialValue": { "arguments": [ { "id": 2847, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2836, "src": "3628:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2848, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2838, "src": "3631:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 2845, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "3614:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 2846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3622:5:3", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 8253, "src": "3614:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 2849, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3614:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3598:35:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 2851, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2844, "src": "3648:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 2852, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2840, "src": "3656:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3648:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2882, "nodeType": "IfStatement", "src": "3644:324:3", "trueBody": { "id": 2881, "nodeType": "Block", "src": "3666:302:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d", "id": 2855, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3689:36:3", "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": 2854, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "3685:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 2856, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3685:41:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2857, "nodeType": "EmitStatement", "src": "3680:46:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020204c656674", "id": 2859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3760:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 2860, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2836, "src": "3774:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2858, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, "src": "3745:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 2861, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3745:31:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2862, "nodeType": "EmitStatement", "src": "3740:36:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020205269676874", "id": 2864, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3810:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 2865, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2838, "src": "3824:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2863, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, "src": "3795:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 2866, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3795:31:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2867, "nodeType": "EmitStatement", "src": "3790:36:3" }, { "eventCall": { "arguments": [ { "hexValue": "204d61782044656c7461", "id": 2869, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3860:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, "value": " Max Delta" }, { "id": 2870, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2840, "src": "3874:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2868, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, "src": "3845:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 2871, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3845:38:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2872, "nodeType": "EmitStatement", "src": "3840:43:3" }, { "eventCall": { "arguments": [ { "hexValue": "202020202044656c7461", "id": 2874, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3917:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, "value": " Delta" }, { "id": 2875, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2844, "src": "3931:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2873, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, "src": "3902:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 2876, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3902:35:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2877, "nodeType": "EmitStatement", "src": "3897:40:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2878, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "3951:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2879, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3951:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2880, "nodeType": "ExpressionStatement", "src": "3951:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbs", "nameLocation": "3513:17:3", "parameters": { "id": 2841, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2836, "mutability": "mutable", "name": "a", "nameLocation": "3539:1:3", "nodeType": "VariableDeclaration", "scope": 2884, "src": "3531:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2835, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3531:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2838, "mutability": "mutable", "name": "b", "nameLocation": "3550:1:3", "nodeType": "VariableDeclaration", "scope": 2884, "src": "3542:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2837, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3542:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2840, "mutability": "mutable", "name": "maxDelta", "nameLocation": "3561:8:3", "nodeType": "VariableDeclaration", "scope": 2884, "src": "3553:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2839, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3553:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3530:40:3" }, "returnParameters": { "id": 2842, "nodeType": "ParameterList", "parameters": [], "src": "3588:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2920, "nodeType": "FunctionDefinition", "src": "3980:294:3", "nodes": [], "body": { "id": 2919, "nodeType": "Block", "src": "4083:191:3", "nodes": [], "statements": [ { "assignments": [ 2896 ], "declarations": [ { "constant": false, "id": 2896, "mutability": "mutable", "name": "delta", "nameLocation": "4101:5:3", "nodeType": "VariableDeclaration", "scope": 2919, "src": "4093:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2895, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4093:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 2902, "initialValue": { "arguments": [ { "id": 2899, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2886, "src": "4123:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2900, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2888, "src": "4126:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 2897, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "4109:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 2898, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4117:5:3", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 8253, "src": "4109:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 2901, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4109:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4093:35:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2905, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 2903, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2896, "src": "4143:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 2904, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2890, "src": "4151:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4143:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2918, "nodeType": "IfStatement", "src": "4139:129:3", "trueBody": { "id": 2917, "nodeType": "Block", "src": "4161:107:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 2907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4197:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 2908, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2892, "src": "4206:3:3", "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": 2906, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "4180:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 2909, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4180:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2910, "nodeType": "EmitStatement", "src": "4175:35:3" }, { "expression": { "arguments": [ { "id": 2912, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2886, "src": "4242:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2913, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2888, "src": "4245:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2914, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2890, "src": "4248:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2911, "name": "assertApproxEqAbs", "nodeType": "Identifier", "overloadedDeclarations": [ 2884, 2920, 3065, 3101 ], "referencedDeclaration": 2884, "src": "4224:17:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256)" } }, "id": 2915, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4224:33:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2916, "nodeType": "ExpressionStatement", "src": "4224:33:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbs", "nameLocation": "3989:17:3", "parameters": { "id": 2893, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2886, "mutability": "mutable", "name": "a", "nameLocation": "4015:1:3", "nodeType": "VariableDeclaration", "scope": 2920, "src": "4007:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2885, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4007:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2888, "mutability": "mutable", "name": "b", "nameLocation": "4026:1:3", "nodeType": "VariableDeclaration", "scope": 2920, "src": "4018:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2887, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4018:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2890, "mutability": "mutable", "name": "maxDelta", "nameLocation": "4037:8:3", "nodeType": "VariableDeclaration", "scope": 2920, "src": "4029:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2889, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4029:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2892, "mutability": "mutable", "name": "err", "nameLocation": "4061:3:3", "nodeType": "VariableDeclaration", "scope": 2920, "src": "4047:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2891, "name": "string", "nodeType": "ElementaryTypeName", "src": "4047:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "4006:59:3" }, "returnParameters": { "id": 2894, "nodeType": "ParameterList", "parameters": [], "src": "4083:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 2976, "nodeType": "FunctionDefinition", "src": "4280:567:3", "nodes": [], "body": { "id": 2975, "nodeType": "Block", "src": "4389:458:3", "nodes": [], "statements": [ { "assignments": [ 2932 ], "declarations": [ { "constant": false, "id": 2932, "mutability": "mutable", "name": "delta", "nameLocation": "4407:5:3", "nodeType": "VariableDeclaration", "scope": 2975, "src": "4399:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2931, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4399:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 2938, "initialValue": { "arguments": [ { "id": 2935, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2922, "src": "4429:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2936, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2924, "src": "4432:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 2933, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "4415:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 2934, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4423:5:3", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 8253, "src": "4415:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 2937, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4415:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4399:35:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 2939, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2932, "src": "4449:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 2940, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2926, "src": "4457:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4449:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2974, "nodeType": "IfStatement", "src": "4445:396:3", "trueBody": { "id": 2973, "nodeType": "Block", "src": "4467:374:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d", "id": 2943, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4490:36:3", "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": 2942, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "4486:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 2944, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4486:41:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2945, "nodeType": "EmitStatement", "src": "4481:46:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020204c656674", "id": 2947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4569:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 2948, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2922, "src": "4583:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2949, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2928, "src": "4586:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2946, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "4546:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 2950, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4546:49:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2951, "nodeType": "EmitStatement", "src": "4541:54:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020205269676874", "id": 2953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4637:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 2954, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2924, "src": "4651:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2955, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2928, "src": "4654:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2952, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "4614:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 2956, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4614:49:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2957, "nodeType": "EmitStatement", "src": "4609:54:3" }, { "eventCall": { "arguments": [ { "hexValue": "204d61782044656c7461", "id": 2959, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4705:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, "value": " Max Delta" }, { "id": 2960, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2926, "src": "4719:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2961, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2928, "src": "4729:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2958, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "4682:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4682:56:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2963, "nodeType": "EmitStatement", "src": "4677:61:3" }, { "eventCall": { "arguments": [ { "hexValue": "202020202044656c7461", "id": 2965, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4780:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, "value": " Delta" }, { "id": 2966, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2932, "src": "4794:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2967, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2928, "src": "4801:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2964, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "4757:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 2968, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4757:53:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2969, "nodeType": "EmitStatement", "src": "4752:58:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 2970, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "4824:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2971, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4824:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2972, "nodeType": "ExpressionStatement", "src": "4824:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbsDecimal", "nameLocation": "4289:24:3", "parameters": { "id": 2929, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2922, "mutability": "mutable", "name": "a", "nameLocation": "4322:1:3", "nodeType": "VariableDeclaration", "scope": 2976, "src": "4314:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2921, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4314:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2924, "mutability": "mutable", "name": "b", "nameLocation": "4333:1:3", "nodeType": "VariableDeclaration", "scope": 2976, "src": "4325:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4325:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2926, "mutability": "mutable", "name": "maxDelta", "nameLocation": "4344:8:3", "nodeType": "VariableDeclaration", "scope": 2976, "src": "4336:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2925, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4336:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2928, "mutability": "mutable", "name": "decimals", "nameLocation": "4362:8:3", "nodeType": "VariableDeclaration", "scope": 2976, "src": "4354:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2927, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4354:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "4313:58:3" }, "returnParameters": { "id": 2930, "nodeType": "ParameterList", "parameters": [], "src": "4389:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3015, "nodeType": "FunctionDefinition", "src": "4853:356:3", "nodes": [], "body": { "id": 3014, "nodeType": "Block", "src": "5001:208:3", "nodes": [], "statements": [ { "assignments": [ 2990 ], "declarations": [ { "constant": false, "id": 2990, "mutability": "mutable", "name": "delta", "nameLocation": "5019:5:3", "nodeType": "VariableDeclaration", "scope": 3014, "src": "5011:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2989, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5011:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 2996, "initialValue": { "arguments": [ { "id": 2993, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2978, "src": "5041:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 2994, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2980, "src": "5044:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 2991, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "5027:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 2992, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5035:5:3", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 8253, "src": "5027:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 2995, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5027:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5011:35:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2999, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 2997, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2990, "src": "5061:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 2998, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2982, "src": "5069:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5061:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3013, "nodeType": "IfStatement", "src": "5057:146:3", "trueBody": { "id": 3012, "nodeType": "Block", "src": "5079:124:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3001, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5115:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3002, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2986, "src": "5124:3:3", "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": 3000, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "5098:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3003, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5098:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3004, "nodeType": "EmitStatement", "src": "5093:35:3" }, { "expression": { "arguments": [ { "id": 3006, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2978, "src": "5167:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3007, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2980, "src": "5170:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3008, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2982, "src": "5173:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3009, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2984, "src": "5183:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3005, "name": "assertApproxEqAbsDecimal", "nodeType": "Identifier", "overloadedDeclarations": [ 2976, 3015, 3157, 3196 ], "referencedDeclaration": 2976, "src": "5142:24:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256,uint256)" } }, "id": 3010, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5142:50:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3011, "nodeType": "ExpressionStatement", "src": "5142:50:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbsDecimal", "nameLocation": "4862:24:3", "parameters": { "id": 2987, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2978, "mutability": "mutable", "name": "a", "nameLocation": "4895:1:3", "nodeType": "VariableDeclaration", "scope": 3015, "src": "4887:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2977, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4887:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2980, "mutability": "mutable", "name": "b", "nameLocation": "4906:1:3", "nodeType": "VariableDeclaration", "scope": 3015, "src": "4898:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2979, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4898:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2982, "mutability": "mutable", "name": "maxDelta", "nameLocation": "4917:8:3", "nodeType": "VariableDeclaration", "scope": 3015, "src": "4909:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2981, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4909:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2984, "mutability": "mutable", "name": "decimals", "nameLocation": "4935:8:3", "nodeType": "VariableDeclaration", "scope": 3015, "src": "4927:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2983, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4927:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 2986, "mutability": "mutable", "name": "err", "nameLocation": "4959:3:3", "nodeType": "VariableDeclaration", "scope": 3015, "src": "4945:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2985, "name": "string", "nodeType": "ElementaryTypeName", "src": "4945:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "4886:77:3" }, "returnParameters": { "id": 2988, "nodeType": "ParameterList", "parameters": [], "src": "5001:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3065, "nodeType": "FunctionDefinition", "src": "5215:467:3", "nodes": [], "body": { "id": 3064, "nodeType": "Block", "src": "5297:385:3", "nodes": [], "statements": [ { "assignments": [ 3025 ], "declarations": [ { "constant": false, "id": 3025, "mutability": "mutable", "name": "delta", "nameLocation": "5315:5:3", "nodeType": "VariableDeclaration", "scope": 3064, "src": "5307:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3024, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5307:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3031, "initialValue": { "arguments": [ { "id": 3028, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3017, "src": "5337:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3029, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3019, "src": "5340:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3026, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "5323:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3027, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5331:5:3", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 8289, "src": "5323:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3030, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5323:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5307:35:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3034, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3032, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3025, "src": "5357:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3033, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3021, "src": "5365:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5357:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3063, "nodeType": "IfStatement", "src": "5353:323:3", "trueBody": { "id": 3062, "nodeType": "Block", "src": "5375:301:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d", "id": 3036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5398:35:3", "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": 3035, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "5394:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3037, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5394:40:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3038, "nodeType": "EmitStatement", "src": "5389:45:3" }, { "eventCall": { "arguments": [ { "hexValue": "202020202020204c656674", "id": 3040, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5467:13:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0d86233afabb8b3973e071db5489b096a3194445fead9d01245809171b4e3927", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 3041, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3017, "src": "5482:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0d86233afabb8b3973e071db5489b096a3194445fead9d01245809171b4e3927", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3039, "name": "log_named_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67, "src": "5453:13:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$", "typeString": "function (string memory,int256)" } }, "id": 3042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5453:31:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3043, "nodeType": "EmitStatement", "src": "5448:36:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020205269676874", "id": 3045, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5517:13:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_49df7c349e5ac2a2258473415d7a60c524ff5057a99dca9437d1a93b96f3739d", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 3046, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3019, "src": "5532:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_49df7c349e5ac2a2258473415d7a60c524ff5057a99dca9437d1a93b96f3739d", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3044, "name": "log_named_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67, "src": "5503:13:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$", "typeString": "function (string memory,int256)" } }, "id": 3047, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5503:31:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3048, "nodeType": "EmitStatement", "src": "5498:36:3" }, { "eventCall": { "arguments": [ { "hexValue": "204d61782044656c7461", "id": 3050, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5568:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, "value": " Max Delta" }, { "id": 3051, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3021, "src": "5582:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3049, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, "src": "5553:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3052, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5553:38:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3053, "nodeType": "EmitStatement", "src": "5548:43:3" }, { "eventCall": { "arguments": [ { "hexValue": "202020202044656c7461", "id": 3055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5625:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, "value": " Delta" }, { "id": 3056, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3025, "src": "5639:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3054, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, "src": "5610:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3057, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5610:35:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3058, "nodeType": "EmitStatement", "src": "5605:40:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3059, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "5659:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3060, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5659:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3061, "nodeType": "ExpressionStatement", "src": "5659:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbs", "nameLocation": "5224:17:3", "parameters": { "id": 3022, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3017, "mutability": "mutable", "name": "a", "nameLocation": "5249:1:3", "nodeType": "VariableDeclaration", "scope": 3065, "src": "5242:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3016, "name": "int256", "nodeType": "ElementaryTypeName", "src": "5242:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3019, "mutability": "mutable", "name": "b", "nameLocation": "5259:1:3", "nodeType": "VariableDeclaration", "scope": 3065, "src": "5252:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3018, "name": "int256", "nodeType": "ElementaryTypeName", "src": "5252:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3021, "mutability": "mutable", "name": "maxDelta", "nameLocation": "5270:8:3", "nodeType": "VariableDeclaration", "scope": 3065, "src": "5262:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3020, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5262:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "5241:38:3" }, "returnParameters": { "id": 3023, "nodeType": "ParameterList", "parameters": [], "src": "5297:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3101, "nodeType": "FunctionDefinition", "src": "5688:292:3", "nodes": [], "body": { "id": 3100, "nodeType": "Block", "src": "5789:191:3", "nodes": [], "statements": [ { "assignments": [ 3077 ], "declarations": [ { "constant": false, "id": 3077, "mutability": "mutable", "name": "delta", "nameLocation": "5807:5:3", "nodeType": "VariableDeclaration", "scope": 3100, "src": "5799:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3076, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5799:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3083, "initialValue": { "arguments": [ { "id": 3080, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3067, "src": "5829:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3081, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3069, "src": "5832:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3078, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "5815:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3079, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5823:5:3", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 8289, "src": "5815:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3082, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5815:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5799:35:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3086, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3084, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3077, "src": "5849:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3085, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3071, "src": "5857:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5849:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3099, "nodeType": "IfStatement", "src": "5845:129:3", "trueBody": { "id": 3098, "nodeType": "Block", "src": "5867:107:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5903:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3089, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3073, "src": "5912:3:3", "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": 3087, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "5886:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3090, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5886:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3091, "nodeType": "EmitStatement", "src": "5881:35:3" }, { "expression": { "arguments": [ { "id": 3093, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3067, "src": "5948:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3094, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3069, "src": "5951:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3095, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3071, "src": "5954:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3092, "name": "assertApproxEqAbs", "nodeType": "Identifier", "overloadedDeclarations": [ 2884, 2920, 3065, 3101 ], "referencedDeclaration": 3065, "src": "5930:17:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$", "typeString": "function (int256,int256,uint256)" } }, "id": 3096, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5930:33:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3097, "nodeType": "ExpressionStatement", "src": "5930:33:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbs", "nameLocation": "5697:17:3", "parameters": { "id": 3074, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3067, "mutability": "mutable", "name": "a", "nameLocation": "5722:1:3", "nodeType": "VariableDeclaration", "scope": 3101, "src": "5715:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3066, "name": "int256", "nodeType": "ElementaryTypeName", "src": "5715:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3069, "mutability": "mutable", "name": "b", "nameLocation": "5732:1:3", "nodeType": "VariableDeclaration", "scope": 3101, "src": "5725:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3068, "name": "int256", "nodeType": "ElementaryTypeName", "src": "5725:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3071, "mutability": "mutable", "name": "maxDelta", "nameLocation": "5743:8:3", "nodeType": "VariableDeclaration", "scope": 3101, "src": "5735:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3070, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5735:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3073, "mutability": "mutable", "name": "err", "nameLocation": "5767:3:3", "nodeType": "VariableDeclaration", "scope": 3101, "src": "5753:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3072, "name": "string", "nodeType": "ElementaryTypeName", "src": "5753:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "5714:57:3" }, "returnParameters": { "id": 3075, "nodeType": "ParameterList", "parameters": [], "src": "5789:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3157, "nodeType": "FunctionDefinition", "src": "5986:562:3", "nodes": [], "body": { "id": 3156, "nodeType": "Block", "src": "6093:455:3", "nodes": [], "statements": [ { "assignments": [ 3113 ], "declarations": [ { "constant": false, "id": 3113, "mutability": "mutable", "name": "delta", "nameLocation": "6111:5:3", "nodeType": "VariableDeclaration", "scope": 3156, "src": "6103:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3112, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6103:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3119, "initialValue": { "arguments": [ { "id": 3116, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3103, "src": "6133:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3117, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3105, "src": "6136:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3114, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "6119:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3115, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6127:5:3", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 8289, "src": "6119:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3118, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6119:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6103:35:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3120, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3113, "src": "6153:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3121, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3107, "src": "6161:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6153:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3155, "nodeType": "IfStatement", "src": "6149:393:3", "trueBody": { "id": 3154, "nodeType": "Block", "src": "6171:371:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d", "id": 3124, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6194:35:3", "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": 3123, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "6190:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3125, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6190:40:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3126, "nodeType": "EmitStatement", "src": "6185:45:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020204c656674", "id": 3128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6271:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 3129, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3103, "src": "6285:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3130, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3109, "src": "6288:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_bbf7c57905778f125dacfa4fd24c0b99a73d897099071adb94dd57d06b52ce31", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3127, "name": "log_named_decimal_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 53, "src": "6249:21:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$", "typeString": "function (string memory,int256,uint256)" } }, "id": 3131, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6249:48:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3132, "nodeType": "EmitStatement", "src": "6244:53:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020205269676874", "id": 3134, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6338:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 3135, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3105, "src": "6352:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3136, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3109, "src": "6355:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f594094f8f37a3e37fa75233058696f0caafa00827fc96f5c5afe6f0e2570053", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3133, "name": "log_named_decimal_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 53, "src": "6316:21:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$", "typeString": "function (string memory,int256,uint256)" } }, "id": 3137, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6316:48:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3138, "nodeType": "EmitStatement", "src": "6311:53:3" }, { "eventCall": { "arguments": [ { "hexValue": "204d61782044656c7461", "id": 3140, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6406:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, "value": " Max Delta" }, { "id": 3141, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3107, "src": "6420:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3142, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3109, "src": "6430:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5", "typeString": "literal_string \" Max Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3139, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "6383:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3143, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6383:56:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3144, "nodeType": "EmitStatement", "src": "6378:61:3" }, { "eventCall": { "arguments": [ { "hexValue": "202020202044656c7461", "id": 3146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6481:12:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, "value": " Delta" }, { "id": 3147, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3113, "src": "6495:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3148, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3109, "src": "6502:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f", "typeString": "literal_string \" Delta\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3145, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "6458:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3149, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6458:53:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3150, "nodeType": "EmitStatement", "src": "6453:58:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3151, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "6525:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3152, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6525:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3153, "nodeType": "ExpressionStatement", "src": "6525:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbsDecimal", "nameLocation": "5995:24:3", "parameters": { "id": 3110, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3103, "mutability": "mutable", "name": "a", "nameLocation": "6027:1:3", "nodeType": "VariableDeclaration", "scope": 3157, "src": "6020:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3102, "name": "int256", "nodeType": "ElementaryTypeName", "src": "6020:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3105, "mutability": "mutable", "name": "b", "nameLocation": "6037:1:3", "nodeType": "VariableDeclaration", "scope": 3157, "src": "6030:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3104, "name": "int256", "nodeType": "ElementaryTypeName", "src": "6030:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3107, "mutability": "mutable", "name": "maxDelta", "nameLocation": "6048:8:3", "nodeType": "VariableDeclaration", "scope": 3157, "src": "6040:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3106, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6040:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3109, "mutability": "mutable", "name": "decimals", "nameLocation": "6066:8:3", "nodeType": "VariableDeclaration", "scope": 3157, "src": "6058:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3108, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6058:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "6019:56:3" }, "returnParameters": { "id": 3111, "nodeType": "ParameterList", "parameters": [], "src": "6093:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3196, "nodeType": "FunctionDefinition", "src": "6554:354:3", "nodes": [], "body": { "id": 3195, "nodeType": "Block", "src": "6700:208:3", "nodes": [], "statements": [ { "assignments": [ 3171 ], "declarations": [ { "constant": false, "id": 3171, "mutability": "mutable", "name": "delta", "nameLocation": "6718:5:3", "nodeType": "VariableDeclaration", "scope": 3195, "src": "6710:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3170, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6710:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3177, "initialValue": { "arguments": [ { "id": 3174, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3159, "src": "6740:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3175, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3161, "src": "6743:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3172, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "6726:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6734:5:3", "memberName": "delta", "nodeType": "MemberAccess", "referencedDeclaration": 8289, "src": "6726:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3176, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6726:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6710:35:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3178, "name": "delta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3171, "src": "6760:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3179, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3163, "src": "6768:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6760:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3194, "nodeType": "IfStatement", "src": "6756:146:3", "trueBody": { "id": 3193, "nodeType": "Block", "src": "6778:124:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3182, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6814:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3183, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3167, "src": "6823:3:3", "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": 3181, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "6797:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3184, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6797:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3185, "nodeType": "EmitStatement", "src": "6792:35:3" }, { "expression": { "arguments": [ { "id": 3187, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3159, "src": "6866:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3188, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3161, "src": "6869:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3189, "name": "maxDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3163, "src": "6872:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3190, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3165, "src": "6882:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3186, "name": "assertApproxEqAbsDecimal", "nodeType": "Identifier", "overloadedDeclarations": [ 2976, 3015, 3157, 3196 ], "referencedDeclaration": 3157, "src": "6841:24:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (int256,int256,uint256,uint256)" } }, "id": 3191, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6841:50:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3192, "nodeType": "ExpressionStatement", "src": "6841:50:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqAbsDecimal", "nameLocation": "6563:24:3", "parameters": { "id": 3168, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3159, "mutability": "mutable", "name": "a", "nameLocation": "6595:1:3", "nodeType": "VariableDeclaration", "scope": 3196, "src": "6588:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3158, "name": "int256", "nodeType": "ElementaryTypeName", "src": "6588:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3161, "mutability": "mutable", "name": "b", "nameLocation": "6605:1:3", "nodeType": "VariableDeclaration", "scope": 3196, "src": "6598:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3160, "name": "int256", "nodeType": "ElementaryTypeName", "src": "6598:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3163, "mutability": "mutable", "name": "maxDelta", "nameLocation": "6616:8:3", "nodeType": "VariableDeclaration", "scope": 3196, "src": "6608:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3162, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6608:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3165, "mutability": "mutable", "name": "decimals", "nameLocation": "6634:8:3", "nodeType": "VariableDeclaration", "scope": 3196, "src": "6626:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3164, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6626:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3167, "mutability": "mutable", "name": "err", "nameLocation": "6658:3:3", "nodeType": "VariableDeclaration", "scope": 3196, "src": "6644:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3166, "name": "string", "nodeType": "ElementaryTypeName", "src": "6644:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "6587:75:3" }, "returnParameters": { "id": 3169, "nodeType": "ParameterList", "parameters": [], "src": "6700:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3261, "nodeType": "FunctionDefinition", "src": "6914:733:3", "nodes": [], "body": { "id": 3260, "nodeType": "Block", "src": "7091:556:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3205, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3200, "src": "7105:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3206, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7110:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7105:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3213, "nodeType": "IfStatement", "src": "7101:33:3", "trueBody": { "expression": { "arguments": [ { "id": 3209, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3198, "src": "7129:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3210, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3200, "src": "7132:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3208, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 514, "src": "7120:8:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, "id": 3211, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7120:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3204, "id": 3212, "nodeType": "Return", "src": "7113:21:3" } }, { "assignments": [ 3215 ], "declarations": [ { "constant": false, "id": 3215, "mutability": "mutable", "name": "percentDelta", "nameLocation": "7193:12:3", "nodeType": "VariableDeclaration", "scope": 3260, "src": "7185:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3214, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7185:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3221, "initialValue": { "arguments": [ { "id": 3218, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3198, "src": "7229:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3219, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3200, "src": "7232:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 3216, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "7208:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7216:12:3", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 8312, "src": "7208:20:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3220, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7208:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "7185:49:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3222, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3215, "src": "7249:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3223, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3202, "src": "7264:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7249:30:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3259, "nodeType": "IfStatement", "src": "7245:396:3", "trueBody": { "id": 3258, "nodeType": "Block", "src": "7281:360:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d", "id": 3226, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7304:36:3", "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": 3225, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "7300:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3227, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7300:41:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3228, "nodeType": "EmitStatement", "src": "7295:46:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020202020204c656674", "id": 3230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7375:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f6217da0e9e1e8e3afbc25e930358ad2d4e2a699b783f5770a33f4ed6b592df8", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 3231, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3198, "src": "7391:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f6217da0e9e1e8e3afbc25e930358ad2d4e2a699b783f5770a33f4ed6b592df8", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3229, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, "src": "7360:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3232, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7360:33:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3233, "nodeType": "EmitStatement", "src": "7355:38:3" }, { "eventCall": { "arguments": [ { "hexValue": "202020202020205269676874", "id": 3235, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7427:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d9b31153d6e7e750f2f69f035ad70ea4ecc1e34ecdfd4456407493e5f00fcc1d", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 3236, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3200, "src": "7443:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d9b31153d6e7e750f2f69f035ad70ea4ecc1e34ecdfd4456407493e5f00fcc1d", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3234, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, "src": "7412:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, "id": 3237, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7412:33:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3238, "nodeType": "EmitStatement", "src": "7407:38:3" }, { "eventCall": { "arguments": [ { "hexValue": "204d617820252044656c7461", "id": 3240, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7487:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d", "typeString": "literal_string \" Max % Delta\"" }, "value": " Max % Delta" }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3241, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3202, "src": "7503:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "313030", "id": 3242, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7521:3:3", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "7503:21:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3244, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7526:2:3", "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": 3239, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "7464:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3245, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7464:65:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3246, "nodeType": "EmitStatement", "src": "7459:70:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020252044656c7461", "id": 3248, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7571:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7", "typeString": "literal_string \" % Delta\"" }, "value": " % Delta" }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3249, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3215, "src": "7587:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "313030", "id": 3250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7602:3:3", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "7587:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7607:2:3", "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": 3247, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "7548:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3253, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7548:62:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3254, "nodeType": "EmitStatement", "src": "7543:67:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3255, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "7624:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3256, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7624:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3257, "nodeType": "ExpressionStatement", "src": "7624:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRel", "nameLocation": "6923:17:3", "parameters": { "id": 3203, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3198, "mutability": "mutable", "name": "a", "nameLocation": "6958:1:3", "nodeType": "VariableDeclaration", "scope": 3261, "src": "6950:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3197, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6950:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3200, "mutability": "mutable", "name": "b", "nameLocation": "6977:1:3", "nodeType": "VariableDeclaration", "scope": 3261, "src": "6969:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3199, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6969:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3202, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "6996:15:3", "nodeType": "VariableDeclaration", "scope": 3261, "src": "6988:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3201, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6988:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "6940:133:3" }, "returnParameters": { "id": 3204, "nodeType": "ParameterList", "parameters": [], "src": "7091:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3307, "nodeType": "FunctionDefinition", "src": "7653:519:3", "nodes": [], "body": { "id": 3306, "nodeType": "Block", "src": "7857:315:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3272, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3265, "src": "7871:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3273, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7876:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7871:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3281, "nodeType": "IfStatement", "src": "7867:38:3", "trueBody": { "expression": { "arguments": [ { "id": 3276, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3263, "src": "7895:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3277, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3265, "src": "7898:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3278, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3269, "src": "7901:3:3", "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": 3275, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 539, "src": "7886:8:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,uint256,string memory)" } }, "id": 3279, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7886:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3271, "id": 3280, "nodeType": "Return", "src": "7879:26:3" } }, { "assignments": [ 3283 ], "declarations": [ { "constant": false, "id": 3283, "mutability": "mutable", "name": "percentDelta", "nameLocation": "7964:12:3", "nodeType": "VariableDeclaration", "scope": 3306, "src": "7956:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3282, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7956:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3289, "initialValue": { "arguments": [ { "id": 3286, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3263, "src": "8000:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3287, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3265, "src": "8003:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 3284, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "7979:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7987:12:3", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 8312, "src": "7979:20:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3288, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7979:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "7956:49:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3292, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3290, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "8020:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3291, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3267, "src": "8035:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8020:30:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3305, "nodeType": "IfStatement", "src": "8016:150:3", "trueBody": { "id": 3304, "nodeType": "Block", "src": "8052:114:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8088:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3295, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3269, "src": "8097:3:3", "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": 3293, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "8071:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3296, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8071:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3297, "nodeType": "EmitStatement", "src": "8066:35:3" }, { "expression": { "arguments": [ { "id": 3299, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3263, "src": "8133:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3300, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3265, "src": "8136:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3301, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3267, "src": "8139:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3298, "name": "assertApproxEqRel", "nodeType": "Identifier", "overloadedDeclarations": [ 3261, 3307, 3490, 3536 ], "referencedDeclaration": 3261, "src": "8115:17:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256)" } }, "id": 3302, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8115:40:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3303, "nodeType": "ExpressionStatement", "src": "8115:40:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRel", "nameLocation": "7662:17:3", "parameters": { "id": 3270, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3263, "mutability": "mutable", "name": "a", "nameLocation": "7697:1:3", "nodeType": "VariableDeclaration", "scope": 3307, "src": "7689:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3262, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7689:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3265, "mutability": "mutable", "name": "b", "nameLocation": "7716:1:3", "nodeType": "VariableDeclaration", "scope": 3307, "src": "7708:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3264, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7708:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3267, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "7735:15:3", "nodeType": "VariableDeclaration", "scope": 3307, "src": "7727:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3266, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7727:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3269, "mutability": "mutable", "name": "err", "nameLocation": "7830:3:3", "nodeType": "VariableDeclaration", "scope": 3307, "src": "7816:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3268, "name": "string", "nodeType": "ElementaryTypeName", "src": "7816:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "7679:160:3" }, "returnParameters": { "id": 3271, "nodeType": "ParameterList", "parameters": [], "src": "7857:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3376, "nodeType": "FunctionDefinition", "src": "8178:802:3", "nodes": [], "body": { "id": 3375, "nodeType": "Block", "src": "8388:592:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3318, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3311, "src": "8402:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8407:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8402:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3326, "nodeType": "IfStatement", "src": "8398:33:3", "trueBody": { "expression": { "arguments": [ { "id": 3322, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3309, "src": "8426:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3323, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3311, "src": "8429:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3321, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 514, "src": "8417:8:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, "id": 3324, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8417:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3317, "id": 3325, "nodeType": "Return", "src": "8410:21:3" } }, { "assignments": [ 3328 ], "declarations": [ { "constant": false, "id": 3328, "mutability": "mutable", "name": "percentDelta", "nameLocation": "8490:12:3", "nodeType": "VariableDeclaration", "scope": 3375, "src": "8482:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3327, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8482:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3334, "initialValue": { "arguments": [ { "id": 3331, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3309, "src": "8526:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3332, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3311, "src": "8529:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 3329, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "8505:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "8513:12:3", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 8312, "src": "8505:20:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3333, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8505:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "8482:49:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3335, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3328, "src": "8546:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3336, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3313, "src": "8561:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8546:30:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3374, "nodeType": "IfStatement", "src": "8542:432:3", "trueBody": { "id": 3373, "nodeType": "Block", "src": "8578:396:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d", "id": 3339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8601:36:3", "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": 3338, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "8597:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8597:41:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3341, "nodeType": "EmitStatement", "src": "8592:46:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020202020204c656674", "id": 3343, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8680:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f6217da0e9e1e8e3afbc25e930358ad2d4e2a699b783f5770a33f4ed6b592df8", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 3344, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3309, "src": "8696:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3345, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3315, "src": "8699:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f6217da0e9e1e8e3afbc25e930358ad2d4e2a699b783f5770a33f4ed6b592df8", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3342, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "8657:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3346, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8657:51:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3347, "nodeType": "EmitStatement", "src": "8652:56:3" }, { "eventCall": { "arguments": [ { "hexValue": "202020202020205269676874", "id": 3349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8750:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d9b31153d6e7e750f2f69f035ad70ea4ecc1e34ecdfd4456407493e5f00fcc1d", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 3350, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3311, "src": "8766:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3351, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3315, "src": "8769:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d9b31153d6e7e750f2f69f035ad70ea4ecc1e34ecdfd4456407493e5f00fcc1d", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3348, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "8727:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3352, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8727:51:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3353, "nodeType": "EmitStatement", "src": "8722:56:3" }, { "eventCall": { "arguments": [ { "hexValue": "204d617820252044656c7461", "id": 3355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8820:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d", "typeString": "literal_string \" Max % Delta\"" }, "value": " Max % Delta" }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3356, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3313, "src": "8836:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "313030", "id": 3357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8854:3:3", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "8836:21:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8859:2:3", "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": 3354, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "8797:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3360, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8797:65:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3361, "nodeType": "EmitStatement", "src": "8792:70:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020252044656c7461", "id": 3363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8904:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7", "typeString": "literal_string \" % Delta\"" }, "value": " % Delta" }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3364, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3328, "src": "8920:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "313030", "id": 3365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8935:3:3", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "8920:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8940:2:3", "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": 3362, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "8881:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3368, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8881:62:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3369, "nodeType": "EmitStatement", "src": "8876:67:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3370, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "8957:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3371, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8957:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3372, "nodeType": "ExpressionStatement", "src": "8957:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRelDecimal", "nameLocation": "8187:24:3", "parameters": { "id": 3316, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3309, "mutability": "mutable", "name": "a", "nameLocation": "8229:1:3", "nodeType": "VariableDeclaration", "scope": 3376, "src": "8221:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3308, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8221:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3311, "mutability": "mutable", "name": "b", "nameLocation": "8248:1:3", "nodeType": "VariableDeclaration", "scope": 3376, "src": "8240:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3310, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8240:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3313, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "8267:15:3", "nodeType": "VariableDeclaration", "scope": 3376, "src": "8259:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3312, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8259:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3315, "mutability": "mutable", "name": "decimals", "nameLocation": "8356:8:3", "nodeType": "VariableDeclaration", "scope": 3376, "src": "8348:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3314, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8348:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "8211:159:3" }, "returnParameters": { "id": 3317, "nodeType": "ParameterList", "parameters": [], "src": "8388:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3425, "nodeType": "FunctionDefinition", "src": "8986:569:3", "nodes": [], "body": { "id": 3424, "nodeType": "Block", "src": "9223:332:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3389, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3380, "src": "9237:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3390, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9242:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "9237:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3398, "nodeType": "IfStatement", "src": "9233:38:3", "trueBody": { "expression": { "arguments": [ { "id": 3393, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3378, "src": "9261:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3394, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3380, "src": "9264:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3395, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3386, "src": "9267:3:3", "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": 3392, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 539, "src": "9252:8:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,uint256,string memory)" } }, "id": 3396, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9252:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3388, "id": 3397, "nodeType": "Return", "src": "9245:26:3" } }, { "assignments": [ 3400 ], "declarations": [ { "constant": false, "id": 3400, "mutability": "mutable", "name": "percentDelta", "nameLocation": "9330:12:3", "nodeType": "VariableDeclaration", "scope": 3424, "src": "9322:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3399, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9322:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3406, "initialValue": { "arguments": [ { "id": 3403, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3378, "src": "9366:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3404, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3380, "src": "9369:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 3401, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "9345:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "9353:12:3", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 8312, "src": "9345:20:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3405, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9345:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "9322:49:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3409, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3407, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3400, "src": "9386:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3408, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3382, "src": "9401:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9386:30:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3423, "nodeType": "IfStatement", "src": "9382:167:3", "trueBody": { "id": 3422, "nodeType": "Block", "src": "9418:131:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3411, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9454:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3412, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3386, "src": "9463:3:3", "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": 3410, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "9437:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3413, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9437:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3414, "nodeType": "EmitStatement", "src": "9432:35:3" }, { "expression": { "arguments": [ { "id": 3416, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3378, "src": "9506:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3417, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3380, "src": "9509:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3418, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3382, "src": "9512:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3419, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3384, "src": "9529:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3415, "name": "assertApproxEqRelDecimal", "nodeType": "Identifier", "overloadedDeclarations": [ 3376, 3425, 3605, 3654 ], "referencedDeclaration": 3376, "src": "9481:24:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256,uint256)" } }, "id": 3420, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9481:57:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3421, "nodeType": "ExpressionStatement", "src": "9481:57:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRelDecimal", "nameLocation": "8995:24:3", "parameters": { "id": 3387, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3378, "mutability": "mutable", "name": "a", "nameLocation": "9037:1:3", "nodeType": "VariableDeclaration", "scope": 3425, "src": "9029:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3377, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9029:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3380, "mutability": "mutable", "name": "b", "nameLocation": "9056:1:3", "nodeType": "VariableDeclaration", "scope": 3425, "src": "9048:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3379, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9048:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3382, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "9075:15:3", "nodeType": "VariableDeclaration", "scope": 3425, "src": "9067:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3381, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9067:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3384, "mutability": "mutable", "name": "decimals", "nameLocation": "9164:8:3", "nodeType": "VariableDeclaration", "scope": 3425, "src": "9156:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3383, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9156:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3386, "mutability": "mutable", "name": "err", "nameLocation": "9196:3:3", "nodeType": "VariableDeclaration", "scope": 3425, "src": "9182:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3385, "name": "string", "nodeType": "ElementaryTypeName", "src": "9182:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "9019:186:3" }, "returnParameters": { "id": 3388, "nodeType": "ParameterList", "parameters": [], "src": "9223:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3490, "nodeType": "FunctionDefinition", "src": "9561:642:3", "nodes": [], "body": { "id": 3489, "nodeType": "Block", "src": "9650:553:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3434, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3429, "src": "9664:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3435, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9669:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "9664:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3442, "nodeType": "IfStatement", "src": "9660:33:3", "trueBody": { "expression": { "arguments": [ { "id": 3438, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3427, "src": "9688:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3439, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3429, "src": "9691:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3437, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 459, "src": "9679:8:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$", "typeString": "function (int256,int256)" } }, "id": 3440, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9679:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3433, "id": 3441, "nodeType": "Return", "src": "9672:21:3" } }, { "assignments": [ 3444 ], "declarations": [ { "constant": false, "id": 3444, "mutability": "mutable", "name": "percentDelta", "nameLocation": "9752:12:3", "nodeType": "VariableDeclaration", "scope": 3489, "src": "9744:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3443, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9744:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3450, "initialValue": { "arguments": [ { "id": 3447, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3427, "src": "9788:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3448, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3429, "src": "9791:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3445, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "9767:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "9775:12:3", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 8341, "src": "9767:20:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3449, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9767:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "9744:49:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3451, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3444, "src": "9808:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3452, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3431, "src": "9823:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9808:30:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3488, "nodeType": "IfStatement", "src": "9804:393:3", "trueBody": { "id": 3487, "nodeType": "Block", "src": "9840:357:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d", "id": 3455, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9863:35:3", "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": 3454, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "9859:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3456, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9859:40:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3457, "nodeType": "EmitStatement", "src": "9854:45:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020202020204c656674", "id": 3459, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9932:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f6217da0e9e1e8e3afbc25e930358ad2d4e2a699b783f5770a33f4ed6b592df8", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 3460, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3427, "src": "9948:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f6217da0e9e1e8e3afbc25e930358ad2d4e2a699b783f5770a33f4ed6b592df8", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3458, "name": "log_named_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67, "src": "9918:13:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$", "typeString": "function (string memory,int256)" } }, "id": 3461, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9918:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3462, "nodeType": "EmitStatement", "src": "9913:37:3" }, { "eventCall": { "arguments": [ { "hexValue": "202020202020205269676874", "id": 3464, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9983:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d9b31153d6e7e750f2f69f035ad70ea4ecc1e34ecdfd4456407493e5f00fcc1d", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 3465, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3429, "src": "9999:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d9b31153d6e7e750f2f69f035ad70ea4ecc1e34ecdfd4456407493e5f00fcc1d", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3463, "name": "log_named_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67, "src": "9969:13:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$", "typeString": "function (string memory,int256)" } }, "id": 3466, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9969:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3467, "nodeType": "EmitStatement", "src": "9964:37:3" }, { "eventCall": { "arguments": [ { "hexValue": "204d617820252044656c7461", "id": 3469, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10043:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d", "typeString": "literal_string \" Max % Delta\"" }, "value": " Max % Delta" }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3470, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3431, "src": "10059:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "313030", "id": 3471, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10077:3:3", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "10059:21:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3473, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10082:2:3", "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": 3468, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "10020:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10020:65:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3475, "nodeType": "EmitStatement", "src": "10015:70:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020252044656c7461", "id": 3477, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10127:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7", "typeString": "literal_string \" % Delta\"" }, "value": " % Delta" }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3480, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3478, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3444, "src": "10143:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "313030", "id": 3479, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10158:3:3", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "10143:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10163:2:3", "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": 3476, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "10104:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10104:62:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3483, "nodeType": "EmitStatement", "src": "10099:67:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3484, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "10180:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10180:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3486, "nodeType": "ExpressionStatement", "src": "10180:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRel", "nameLocation": "9570:17:3", "parameters": { "id": 3432, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3427, "mutability": "mutable", "name": "a", "nameLocation": "9595:1:3", "nodeType": "VariableDeclaration", "scope": 3490, "src": "9588:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3426, "name": "int256", "nodeType": "ElementaryTypeName", "src": "9588:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3429, "mutability": "mutable", "name": "b", "nameLocation": "9605:1:3", "nodeType": "VariableDeclaration", "scope": 3490, "src": "9598:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3428, "name": "int256", "nodeType": "ElementaryTypeName", "src": "9598:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3431, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "9616:15:3", "nodeType": "VariableDeclaration", "scope": 3490, "src": "9608:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3430, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9608:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "9587:45:3" }, "returnParameters": { "id": 3433, "nodeType": "ParameterList", "parameters": [], "src": "9650:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3536, "nodeType": "FunctionDefinition", "src": "10209:423:3", "nodes": [], "body": { "id": 3535, "nodeType": "Block", "src": "10317:315:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 3503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3501, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3494, "src": "10331:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3502, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10336:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10331:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3510, "nodeType": "IfStatement", "src": "10327:38:3", "trueBody": { "expression": { "arguments": [ { "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3492, "src": "10355:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3494, "src": "10358:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3507, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3498, "src": "10361:3:3", "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": 3504, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 484, "src": "10346:8:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (int256,int256,string memory)" } }, "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10346:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3500, "id": 3509, "nodeType": "Return", "src": "10339:26:3" } }, { "assignments": [ 3512 ], "declarations": [ { "constant": false, "id": 3512, "mutability": "mutable", "name": "percentDelta", "nameLocation": "10424:12:3", "nodeType": "VariableDeclaration", "scope": 3535, "src": "10416:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3511, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10416:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3518, "initialValue": { "arguments": [ { "id": 3515, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3492, "src": "10460:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3516, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3494, "src": "10463:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3513, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "10439:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10447:12:3", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 8341, "src": "10439:20:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3517, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10439:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "10416:49:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3519, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3512, "src": "10480:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3520, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3496, "src": "10495:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10480:30:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3534, "nodeType": "IfStatement", "src": "10476:150:3", "trueBody": { "id": 3533, "nodeType": "Block", "src": "10512:114:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3523, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10548:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3524, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3498, "src": "10557:3:3", "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": 3522, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "10531:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3525, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10531:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3526, "nodeType": "EmitStatement", "src": "10526:35:3" }, { "expression": { "arguments": [ { "id": 3528, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3492, "src": "10593:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3529, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3494, "src": "10596:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3530, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3496, "src": "10599:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3527, "name": "assertApproxEqRel", "nodeType": "Identifier", "overloadedDeclarations": [ 3261, 3307, 3490, 3536 ], "referencedDeclaration": 3490, "src": "10575:17:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$", "typeString": "function (int256,int256,uint256)" } }, "id": 3531, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10575:40:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3532, "nodeType": "ExpressionStatement", "src": "10575:40:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRel", "nameLocation": "10218:17:3", "parameters": { "id": 3499, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3492, "mutability": "mutable", "name": "a", "nameLocation": "10243:1:3", "nodeType": "VariableDeclaration", "scope": 3536, "src": "10236:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3491, "name": "int256", "nodeType": "ElementaryTypeName", "src": "10236:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3494, "mutability": "mutable", "name": "b", "nameLocation": "10253:1:3", "nodeType": "VariableDeclaration", "scope": 3536, "src": "10246:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3493, "name": "int256", "nodeType": "ElementaryTypeName", "src": "10246:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3496, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "10264:15:3", "nodeType": "VariableDeclaration", "scope": 3536, "src": "10256:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3495, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10256:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3498, "mutability": "mutable", "name": "err", "nameLocation": "10295:3:3", "nodeType": "VariableDeclaration", "scope": 3536, "src": "10281:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3497, "name": "string", "nodeType": "ElementaryTypeName", "src": "10281:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "10235:64:3" }, "returnParameters": { "id": 3500, "nodeType": "ParameterList", "parameters": [], "src": "10317:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3605, "nodeType": "FunctionDefinition", "src": "10638:703:3", "nodes": [], "body": { "id": 3604, "nodeType": "Block", "src": "10752:589:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 3549, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3547, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3540, "src": "10766:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10771:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10766:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3555, "nodeType": "IfStatement", "src": "10762:33:3", "trueBody": { "expression": { "arguments": [ { "id": 3551, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3538, "src": "10790:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3552, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3540, "src": "10793:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 3550, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 459, "src": "10781:8:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$", "typeString": "function (int256,int256)" } }, "id": 3553, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10781:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3546, "id": 3554, "nodeType": "Return", "src": "10774:21:3" } }, { "assignments": [ 3557 ], "declarations": [ { "constant": false, "id": 3557, "mutability": "mutable", "name": "percentDelta", "nameLocation": "10854:12:3", "nodeType": "VariableDeclaration", "scope": 3604, "src": "10846:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3556, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10846:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3563, "initialValue": { "arguments": [ { "id": 3560, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3538, "src": "10890:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3561, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3540, "src": "10893:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3558, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "10869:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10877:12:3", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 8341, "src": "10869:20:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3562, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10869:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "10846:49:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3566, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3564, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3557, "src": "10910:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3565, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3542, "src": "10925:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10910:30:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3603, "nodeType": "IfStatement", "src": "10906:429:3", "trueBody": { "id": 3602, "nodeType": "Block", "src": "10942:393:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d", "id": 3568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10965:35:3", "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": 3567, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "10961:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3569, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10961:40:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3570, "nodeType": "EmitStatement", "src": "10956:45:3" }, { "eventCall": { "arguments": [ { "hexValue": "20202020202020204c656674", "id": 3572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11042:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f6217da0e9e1e8e3afbc25e930358ad2d4e2a699b783f5770a33f4ed6b592df8", "typeString": "literal_string \" Left\"" }, "value": " Left" }, { "id": 3573, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3538, "src": "11058:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3574, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3544, "src": "11061:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f6217da0e9e1e8e3afbc25e930358ad2d4e2a699b783f5770a33f4ed6b592df8", "typeString": "literal_string \" Left\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3571, "name": "log_named_decimal_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 53, "src": "11020:21:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$", "typeString": "function (string memory,int256,uint256)" } }, "id": 3575, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11020:50:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3576, "nodeType": "EmitStatement", "src": "11015:55:3" }, { "eventCall": { "arguments": [ { "hexValue": "202020202020205269676874", "id": 3578, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11111:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d9b31153d6e7e750f2f69f035ad70ea4ecc1e34ecdfd4456407493e5f00fcc1d", "typeString": "literal_string \" Right\"" }, "value": " Right" }, { "id": 3579, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3540, "src": "11127:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3580, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3544, "src": "11130:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d9b31153d6e7e750f2f69f035ad70ea4ecc1e34ecdfd4456407493e5f00fcc1d", "typeString": "literal_string \" Right\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3577, "name": "log_named_decimal_int", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 53, "src": "11089:21:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$", "typeString": "function (string memory,int256,uint256)" } }, "id": 3581, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11089:50:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3582, "nodeType": "EmitStatement", "src": "11084:55:3" }, { "eventCall": { "arguments": [ { "hexValue": "204d617820252044656c7461", "id": 3584, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11181:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d", "typeString": "literal_string \" Max % Delta\"" }, "value": " Max % Delta" }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3585, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3542, "src": "11197:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "313030", "id": 3586, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11215:3:3", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "11197:21:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3588, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11220:2:3", "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": 3583, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "11158:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3589, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11158:65:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3590, "nodeType": "EmitStatement", "src": "11153:70:3" }, { "eventCall": { "arguments": [ { "hexValue": "2020202020252044656c7461", "id": 3592, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11265:14:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7", "typeString": "literal_string \" % Delta\"" }, "value": " % Delta" }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3593, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3557, "src": "11281:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "313030", "id": 3594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11296:3:3", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "11281:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "3138", "id": 3596, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11301:2:3", "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": 3591, "name": "log_named_decimal_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "11242:22:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256,uint256)" } }, "id": 3597, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11242:62:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3598, "nodeType": "EmitStatement", "src": "11237:67:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3599, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "11318:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3600, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11318:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3601, "nodeType": "ExpressionStatement", "src": "11318:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRelDecimal", "nameLocation": "10647:24:3", "parameters": { "id": 3545, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3538, "mutability": "mutable", "name": "a", "nameLocation": "10679:1:3", "nodeType": "VariableDeclaration", "scope": 3605, "src": "10672:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3537, "name": "int256", "nodeType": "ElementaryTypeName", "src": "10672:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3540, "mutability": "mutable", "name": "b", "nameLocation": "10689:1:3", "nodeType": "VariableDeclaration", "scope": 3605, "src": "10682:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3539, "name": "int256", "nodeType": "ElementaryTypeName", "src": "10682:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3542, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "10700:15:3", "nodeType": "VariableDeclaration", "scope": 3605, "src": "10692:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3541, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10692:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3544, "mutability": "mutable", "name": "decimals", "nameLocation": "10725:8:3", "nodeType": "VariableDeclaration", "scope": 3605, "src": "10717:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3543, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10717:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "10671:63:3" }, "returnParameters": { "id": 3546, "nodeType": "ParameterList", "parameters": [], "src": "10752:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3654, "nodeType": "FunctionDefinition", "src": "11347:485:3", "nodes": [], "body": { "id": 3653, "nodeType": "Block", "src": "11500:332:3", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 3620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3618, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3609, "src": "11514:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 3619, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11519:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "11514:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3627, "nodeType": "IfStatement", "src": "11510:38:3", "trueBody": { "expression": { "arguments": [ { "id": 3622, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3607, "src": "11538:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3623, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3609, "src": "11541:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3624, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3615, "src": "11544:3:3", "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": 3621, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 484, "src": "11529:8:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (int256,int256,string memory)" } }, "id": 3625, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11529:19:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 3617, "id": 3626, "nodeType": "Return", "src": "11522:26:3" } }, { "assignments": [ 3629 ], "declarations": [ { "constant": false, "id": 3629, "mutability": "mutable", "name": "percentDelta", "nameLocation": "11607:12:3", "nodeType": "VariableDeclaration", "scope": 3653, "src": "11599:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3628, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11599:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 3635, "initialValue": { "arguments": [ { "id": 3632, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3607, "src": "11643:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3633, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3609, "src": "11646:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 3630, "name": "stdMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8342, "src": "11622:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_stdMath_$8342_$", "typeString": "type(library stdMath)" } }, "id": 3631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "11630:12:3", "memberName": "percentDelta", "nodeType": "MemberAccess", "referencedDeclaration": 8341, "src": "11622:20:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$", "typeString": "function (int256,int256) pure returns (uint256)" } }, "id": 3634, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11622:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "11599:49:3" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3636, "name": "percentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3629, "src": "11663:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 3637, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3611, "src": "11678:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11663:30:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3652, "nodeType": "IfStatement", "src": "11659:167:3", "trueBody": { "id": 3651, "nodeType": "Block", "src": "11695:131:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f72", "id": 3640, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11731:7:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" }, "value": "Error" }, { "id": 3641, "name": "err", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3615, "src": "11740:3:3", "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": 3639, "name": "log_named_string", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "11714:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" } }, "id": 3642, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11714:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3643, "nodeType": "EmitStatement", "src": "11709:35:3" }, { "expression": { "arguments": [ { "id": 3645, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3607, "src": "11783:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3646, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3609, "src": "11786:1:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 3647, "name": "maxPercentDelta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3611, "src": "11789:15:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 3648, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3613, "src": "11806:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3644, "name": "assertApproxEqRelDecimal", "nodeType": "Identifier", "overloadedDeclarations": [ 3376, 3425, 3605, 3654 ], "referencedDeclaration": 3605, "src": "11758:24:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (int256,int256,uint256,uint256)" } }, "id": 3649, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11758:57:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3650, "nodeType": "ExpressionStatement", "src": "11758:57:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertApproxEqRelDecimal", "nameLocation": "11356:24:3", "parameters": { "id": 3616, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3607, "mutability": "mutable", "name": "a", "nameLocation": "11388:1:3", "nodeType": "VariableDeclaration", "scope": 3654, "src": "11381:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3606, "name": "int256", "nodeType": "ElementaryTypeName", "src": "11381:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3609, "mutability": "mutable", "name": "b", "nameLocation": "11398:1:3", "nodeType": "VariableDeclaration", "scope": 3654, "src": "11391:8:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 3608, "name": "int256", "nodeType": "ElementaryTypeName", "src": "11391:6:3", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 3611, "mutability": "mutable", "name": "maxPercentDelta", "nameLocation": "11409:15:3", "nodeType": "VariableDeclaration", "scope": 3654, "src": "11401:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3610, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11401:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3613, "mutability": "mutable", "name": "decimals", "nameLocation": "11434:8:3", "nodeType": "VariableDeclaration", "scope": 3654, "src": "11426:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3612, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11426:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 3615, "mutability": "mutable", "name": "err", "nameLocation": "11458:3:3", "nodeType": "VariableDeclaration", "scope": 3654, "src": "11444:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3614, "name": "string", "nodeType": "ElementaryTypeName", "src": "11444:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "11380:82:3" }, "returnParameters": { "id": 3617, "nodeType": "ParameterList", "parameters": [], "src": "11500:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3672, "nodeType": "FunctionDefinition", "src": "11838:176:3", "nodes": [], "body": { "id": 3671, "nodeType": "Block", "src": "11941:73:3", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 3664, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3656, "src": "11964:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 3665, "name": "callDataA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3658, "src": "11972:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 3666, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3656, "src": "11983:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 3667, "name": "callDataB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3660, "src": "11991:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "hexValue": "74727565", "id": 3668, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "12002:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3663, "name": "assertEqCall", "nodeType": "Identifier", "overloadedDeclarations": [ 3672, 3692, 3712, 3822 ], "referencedDeclaration": 3822, "src": "11951:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", "typeString": "function (address,bytes memory,address,bytes memory,bool)" } }, "id": 3669, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11951:56:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3670, "nodeType": "ExpressionStatement", "src": "11951:56:3" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEqCall", "nameLocation": "11847:12:3", "parameters": { "id": 3661, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3656, "mutability": "mutable", "name": "target", "nameLocation": "11868:6:3", "nodeType": "VariableDeclaration", "scope": 3672, "src": "11860:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3655, "name": "address", "nodeType": "ElementaryTypeName", "src": "11860:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 3658, "mutability": "mutable", "name": "callDataA", "nameLocation": "11889:9:3", "nodeType": "VariableDeclaration", "scope": 3672, "src": "11876:22:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3657, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "11876:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 3660, "mutability": "mutable", "name": "callDataB", "nameLocation": "11913:9:3", "nodeType": "VariableDeclaration", "scope": 3672, "src": "11900:22:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3659, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "11900:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "11859:64:3" }, "returnParameters": { "id": 3662, "nodeType": "ParameterList", "parameters": [], "src": "11941:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3692, "nodeType": "FunctionDefinition", "src": "12020:216:3", "nodes": [], "body": { "id": 3691, "nodeType": "Block", "src": "12161:75:3", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 3684, "name": "targetA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3674, "src": "12184:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 3685, "name": "callDataA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3676, "src": "12193:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 3686, "name": "targetB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3678, "src": "12204:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 3687, "name": "callDataB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3680, "src": "12213:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "hexValue": "74727565", "id": 3688, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "12224:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3683, "name": "assertEqCall", "nodeType": "Identifier", "overloadedDeclarations": [ 3672, 3692, 3712, 3822 ], "referencedDeclaration": 3822, "src": "12171:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", "typeString": "function (address,bytes memory,address,bytes memory,bool)" } }, "id": 3689, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12171:58:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3690, "nodeType": "ExpressionStatement", "src": "12171:58:3" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEqCall", "nameLocation": "12029:12:3", "parameters": { "id": 3681, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3674, "mutability": "mutable", "name": "targetA", "nameLocation": "12050:7:3", "nodeType": "VariableDeclaration", "scope": 3692, "src": "12042:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3673, "name": "address", "nodeType": "ElementaryTypeName", "src": "12042:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 3676, "mutability": "mutable", "name": "callDataA", "nameLocation": "12072:9:3", "nodeType": "VariableDeclaration", "scope": 3692, "src": "12059:22:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3675, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12059:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 3678, "mutability": "mutable", "name": "targetB", "nameLocation": "12091:7:3", "nodeType": "VariableDeclaration", "scope": 3692, "src": "12083:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3677, "name": "address", "nodeType": "ElementaryTypeName", "src": "12083:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 3680, "mutability": "mutable", "name": "callDataB", "nameLocation": "12113:9:3", "nodeType": "VariableDeclaration", "scope": 3692, "src": "12100:22:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3679, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12100:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "12041:82:3" }, "returnParameters": { "id": 3682, "nodeType": "ParameterList", "parameters": [], "src": "12161:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3712, "nodeType": "FunctionDefinition", "src": "12242:231:3", "nodes": [], "body": { "id": 3711, "nodeType": "Block", "src": "12388:85:3", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 3704, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3694, "src": "12411:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 3705, "name": "callDataA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3696, "src": "12419:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 3706, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3694, "src": "12430:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 3707, "name": "callDataB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3698, "src": "12438:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 3708, "name": "strictRevertData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3700, "src": "12449:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3703, "name": "assertEqCall", "nodeType": "Identifier", "overloadedDeclarations": [ 3672, 3692, 3712, 3822 ], "referencedDeclaration": 3822, "src": "12398:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", "typeString": "function (address,bytes memory,address,bytes memory,bool)" } }, "id": 3709, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12398:68:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3710, "nodeType": "ExpressionStatement", "src": "12398:68:3" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEqCall", "nameLocation": "12251:12:3", "parameters": { "id": 3701, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3694, "mutability": "mutable", "name": "target", "nameLocation": "12272:6:3", "nodeType": "VariableDeclaration", "scope": 3712, "src": "12264:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3693, "name": "address", "nodeType": "ElementaryTypeName", "src": "12264:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 3696, "mutability": "mutable", "name": "callDataA", "nameLocation": "12293:9:3", "nodeType": "VariableDeclaration", "scope": 3712, "src": "12280:22:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3695, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12280:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 3698, "mutability": "mutable", "name": "callDataB", "nameLocation": "12317:9:3", "nodeType": "VariableDeclaration", "scope": 3712, "src": "12304:22:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3697, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12304:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 3700, "mutability": "mutable", "name": "strictRevertData", "nameLocation": "12333:16:3", "nodeType": "VariableDeclaration", "scope": 3712, "src": "12328:21:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3699, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12328:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "12263:87:3" }, "returnParameters": { "id": 3702, "nodeType": "ParameterList", "parameters": [], "src": "12388:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 3822, "nodeType": "FunctionDefinition", "src": "12479:1189:3", "nodes": [], "body": { "id": 3821, "nodeType": "Block", "src": "12669:999:3", "nodes": [], "statements": [ { "assignments": [ 3726, 3728 ], "declarations": [ { "constant": false, "id": 3726, "mutability": "mutable", "name": "successA", "nameLocation": "12685:8:3", "nodeType": "VariableDeclaration", "scope": 3821, "src": "12680:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3725, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12680:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 3728, "mutability": "mutable", "name": "returnDataA", "nameLocation": "12708:11:3", "nodeType": "VariableDeclaration", "scope": 3821, "src": "12695:24:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3727, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12695:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 3736, "initialValue": { "arguments": [ { "id": 3734, "name": "callDataA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3716, "src": "12745:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "arguments": [ { "id": 3731, "name": "targetA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3714, "src": "12731:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3730, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "12723:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 3729, "name": "address", "nodeType": "ElementaryTypeName", "src": "12723:7:3", "typeDescriptions": {} } }, "id": 3732, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12723:16:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12740:4:3", "memberName": "call", "nodeType": "MemberAccess", "src": "12723:21:3", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 3735, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12723:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "12679:76:3" }, { "assignments": [ 3738, 3740 ], "declarations": [ { "constant": false, "id": 3738, "mutability": "mutable", "name": "successB", "nameLocation": "12771:8:3", "nodeType": "VariableDeclaration", "scope": 3821, "src": "12766:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3737, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12766:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 3740, "mutability": "mutable", "name": "returnDataB", "nameLocation": "12794:11:3", "nodeType": "VariableDeclaration", "scope": 3821, "src": "12781:24:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3739, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12781:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 3748, "initialValue": { "arguments": [ { "id": 3746, "name": "callDataB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3720, "src": "12831:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "arguments": [ { "id": 3743, "name": "targetB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3718, "src": "12817:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3742, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "12809:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", "src": "12809:7:3", "typeDescriptions": {} } }, "id": 3744, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12809:16:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12826:4:3", "memberName": "call", "nodeType": "MemberAccess", "src": "12809:21:3", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 3747, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12809:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "12765:76:3" }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3751, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3749, "name": "successA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3726, "src": "12856:8:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "id": 3750, "name": "successB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3738, "src": "12868:8:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12856:20:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3759, "nodeType": "IfStatement", "src": "12852:120:3", "trueBody": { "id": 3758, "nodeType": "Block", "src": "12878:94:3", "statements": [ { "expression": { "arguments": [ { "id": 3753, "name": "returnDataA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3728, "src": "12901:11:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 3754, "name": "returnDataB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3740, "src": "12914:11:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "hexValue": "43616c6c2072657475726e206461746120646f6573206e6f74206d61746368", "id": 3755, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12927:33:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f3c9e4317c8eebc5635871f467354820a216f046f0a61b2ded371c2d507a555f", "typeString": "literal_string \"Call return data does not match\"" }, "value": "Call return data does not match" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_stringliteral_f3c9e4317c8eebc5635871f467354820a216f046f0a61b2ded371c2d507a555f", "typeString": "literal_string \"Call return data does not match\"" } ], "id": 3752, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 2578, "src": "12892:8:3", "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": 3756, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12892:69:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3757, "nodeType": "ExpressionStatement", "src": "12892:69:3" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "12986:9:3", "subExpression": { "id": 3760, "name": "successA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3726, "src": "12987:8:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "12999:9:3", "subExpression": { "id": 3762, "name": "successB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3738, "src": "13000:8:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12986:22:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "id": 3765, "name": "strictRevertData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3722, "src": "13012:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12986:42:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3774, "nodeType": "IfStatement", "src": "12982:142:3", "trueBody": { "id": 3773, "nodeType": "Block", "src": "13030:94:3", "statements": [ { "expression": { "arguments": [ { "id": 3768, "name": "returnDataA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3728, "src": "13053:11:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 3769, "name": "returnDataB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3740, "src": "13066:11:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "hexValue": "43616c6c20726576657274206461746120646f6573206e6f74206d61746368", "id": 3770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13079:33:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_428332fc36b72ecad0a5d9bab5b9a568a85eeb20fd69ffcfbf4cf91598a0c858", "typeString": "literal_string \"Call revert data does not match\"" }, "value": "Call revert data does not match" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_stringliteral_428332fc36b72ecad0a5d9bab5b9a568a85eeb20fd69ffcfbf4cf91598a0c858", "typeString": "literal_string \"Call revert data does not match\"" } ], "id": 3767, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ 2524, 2549, 2562, 2578, 2620, 2662, 2704, 2741, 2778, 2815, 320, 345, 375, 400, 459, 484, 514, 539, 2012, 2047 ], "referencedDeclaration": 2578, "src": "13044:8:3", "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": 3771, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13044:69:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3772, "nodeType": "ExpressionStatement", "src": "13044:69:3" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3776, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "13138:9:3", "subExpression": { "id": 3775, "name": "successA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3726, "src": "13139:8:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "id": 3777, "name": "successB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3738, "src": "13151:8:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "13138:21:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3797, "nodeType": "IfStatement", "src": "13134:259:3", "trueBody": { "id": 3796, "nodeType": "Block", "src": "13161:232:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2043616c6c732077657265206e6f7420657175616c", "id": 3780, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13184:29:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6693dff23bd870151cc1817cba0ac95847c6f34adf907b7a38759066cb467c90", "typeString": "literal_string \"Error: Calls were not equal\"" }, "value": "Error: Calls were not equal" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_6693dff23bd870151cc1817cba0ac95847c6f34adf907b7a38759066cb467c90", "typeString": "literal_string \"Error: Calls were not equal\"" } ], "id": 3779, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "13180:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3781, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13180:34:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3782, "nodeType": "EmitStatement", "src": "13175:39:3" }, { "eventCall": { "arguments": [ { "hexValue": "20204c6566742063616c6c207265766572742064617461", "id": 3784, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13249:25:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7308eff46cc177523801826a9076ec6e32f003b8da409c4d39812f8e534c573", "typeString": "literal_string \" Left call revert data\"" }, "value": " Left call revert data" }, { "id": 3785, "name": "returnDataA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3728, "src": "13276:11:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_d7308eff46cc177523801826a9076ec6e32f003b8da409c4d39812f8e534c573", "typeString": "literal_string \" Left call revert data\"" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 3783, "name": "log_named_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 79, "src": "13233:15:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (string memory,bytes memory)" } }, "id": 3786, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13233:55:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3787, "nodeType": "EmitStatement", "src": "13228:60:3" }, { "eventCall": { "arguments": [ { "hexValue": "2052696768742063616c6c2072657475726e2064617461", "id": 3789, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13323:25:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_688c5b0ecbf27f0fe1b748e920d97ecaaa6ff424050ac2e32936b79dcfbe27d9", "typeString": "literal_string \" Right call return data\"" }, "value": " Right call return data" }, { "id": 3790, "name": "returnDataB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3740, "src": "13350:11:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_688c5b0ecbf27f0fe1b748e920d97ecaaa6ff424050ac2e32936b79dcfbe27d9", "typeString": "literal_string \" Right call return data\"" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 3788, "name": "log_named_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 79, "src": "13307:15:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (string memory,bytes memory)" } }, "id": 3791, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13307:55:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3792, "nodeType": "EmitStatement", "src": "13302:60:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3793, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "13376:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3794, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13376:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3795, "nodeType": "ExpressionStatement", "src": "13376:6:3" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3801, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 3798, "name": "successA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3726, "src": "13407:8:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "id": 3800, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "13419:9:3", "subExpression": { "id": 3799, "name": "successB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3738, "src": "13420:8:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "13407:21:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3820, "nodeType": "IfStatement", "src": "13403:259:3", "trueBody": { "id": 3819, "nodeType": "Block", "src": "13430:232:3", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a2043616c6c732077657265206e6f7420657175616c", "id": 3803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13453:29:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6693dff23bd870151cc1817cba0ac95847c6f34adf907b7a38759066cb467c90", "typeString": "literal_string \"Error: Calls were not equal\"" }, "value": "Error: Calls were not equal" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_6693dff23bd870151cc1817cba0ac95847c6f34adf907b7a38759066cb467c90", "typeString": "literal_string \"Error: Calls were not equal\"" } ], "id": 3802, "name": "log", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "13449:3:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" } }, "id": 3804, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13449:34:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3805, "nodeType": "EmitStatement", "src": "13444:39:3" }, { "eventCall": { "arguments": [ { "hexValue": "20204c6566742063616c6c2072657475726e2064617461", "id": 3807, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13518:25:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_596a9779ba89cf63b8ee3ff9d9ab391dc33d379f762c747717807c6af488f86f", "typeString": "literal_string \" Left call return data\"" }, "value": " Left call return data" }, { "id": 3808, "name": "returnDataA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3728, "src": "13545:11:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_596a9779ba89cf63b8ee3ff9d9ab391dc33d379f762c747717807c6af488f86f", "typeString": "literal_string \" Left call return data\"" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 3806, "name": "log_named_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 79, "src": "13502:15:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (string memory,bytes memory)" } }, "id": 3809, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13502:55:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3810, "nodeType": "EmitStatement", "src": "13497:60:3" }, { "eventCall": { "arguments": [ { "hexValue": "2052696768742063616c6c207265766572742064617461", "id": 3812, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13592:25:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_07ebd1833884933dbc5d408273462f380b6eb526f9bb29a66115cfe3ede76145", "typeString": "literal_string \" Right call revert data\"" }, "value": " Right call revert data" }, { "id": 3813, "name": "returnDataB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3740, "src": "13619:11:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_07ebd1833884933dbc5d408273462f380b6eb526f9bb29a66115cfe3ede76145", "typeString": "literal_string \" Right call revert data\"" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 3811, "name": "log_named_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 79, "src": "13576:15:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (string memory,bytes memory)" } }, "id": 3814, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13576:55:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3815, "nodeType": "EmitStatement", "src": "13571:60:3" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 3816, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [ 2463, 216 ], "referencedDeclaration": 216, "src": "13645:4:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 3817, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13645:6:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3818, "nodeType": "ExpressionStatement", "src": "13645:6:3" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "assertEqCall", "nameLocation": "12488:12:3", "parameters": { "id": 3723, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3714, "mutability": "mutable", "name": "targetA", "nameLocation": "12518:7:3", "nodeType": "VariableDeclaration", "scope": 3822, "src": "12510:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3713, "name": "address", "nodeType": "ElementaryTypeName", "src": "12510:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 3716, "mutability": "mutable", "name": "callDataA", "nameLocation": "12548:9:3", "nodeType": "VariableDeclaration", "scope": 3822, "src": "12535:22:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3715, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12535:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 3718, "mutability": "mutable", "name": "targetB", "nameLocation": "12575:7:3", "nodeType": "VariableDeclaration", "scope": 3822, "src": "12567:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3717, "name": "address", "nodeType": "ElementaryTypeName", "src": "12567:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 3720, "mutability": "mutable", "name": "callDataB", "nameLocation": "12605:9:3", "nodeType": "VariableDeclaration", "scope": 3822, "src": "12592:22:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3719, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12592:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 3722, "mutability": "mutable", "name": "strictRevertData", "nameLocation": "12629:16:3", "nodeType": "VariableDeclaration", "scope": 3822, "src": "12624:21:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3721, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12624:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "12500:151:3" }, "returnParameters": { "id": 3724, "nodeType": "ParameterList", "parameters": [], "src": "12669:0:3" }, "scope": 3823, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], "abstract": true, "baseContracts": [ { "baseName": { "id": 2412, "name": "DSTest", "nameLocations": [ "181:6:3" ], "nodeType": "IdentifierPath", "referencedDeclaration": 2291, "src": "181:6:3" }, "id": 2413, "nodeType": "InheritanceSpecifier", "src": "181:6:3" } ], "canonicalName": "StdAssertions", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ 3823, 2291 ], "name": "StdAssertions", "nameLocation": "164:13:3", "scope": 3824, "usedErrors": [], "usedEvents": [ 5, 9, 13, 17, 21, 25, 29, 33, 39, 45, 53, 61, 67, 73, 79, 85, 2418, 2423, 2428, 2435, 2442, 2449 ] } ], "license": "MIT" }, "id": 3 }