non-fungible-apps/out/StdAssertions.sol/StdAssertions.json

12037 lines
493 KiB
JSON

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