UNPKG

803 kBJSONView Raw
1{
2 "contractName": "TestClient",
3 "abi": [
4 {
5 "inputs": [
6 {
7 "name": "tokenAddress",
8 "type": "address"
9 },
10 {
11 "name": "dispatchAddress",
12 "type": "address"
13 },
14 {
15 "name": "bondageAddress",
16 "type": "address"
17 },
18 {
19 "name": "registryAddress",
20 "type": "address"
21 }
22 ],
23 "payable": false,
24 "stateMutability": "nonpayable",
25 "type": "constructor"
26 },
27 {
28 "anonymous": false,
29 "inputs": [
30 {
31 "indexed": false,
32 "name": "oracle",
33 "type": "address"
34 },
35 {
36 "indexed": false,
37 "name": "query",
38 "type": "string"
39 },
40 {
41 "indexed": false,
42 "name": "id",
43 "type": "uint256"
44 }
45 ],
46 "name": "MadeQuery",
47 "type": "event"
48 },
49 {
50 "anonymous": false,
51 "inputs": [
52 {
53 "indexed": false,
54 "name": "id",
55 "type": "uint256"
56 },
57 {
58 "indexed": false,
59 "name": "response1",
60 "type": "string"
61 }
62 ],
63 "name": "Result1",
64 "type": "event"
65 },
66 {
67 "anonymous": false,
68 "inputs": [
69 {
70 "indexed": false,
71 "name": "id",
72 "type": "uint256"
73 },
74 {
75 "indexed": false,
76 "name": "response1",
77 "type": "bytes32"
78 }
79 ],
80 "name": "Result1",
81 "type": "event"
82 },
83 {
84 "anonymous": false,
85 "inputs": [
86 {
87 "indexed": false,
88 "name": "id",
89 "type": "uint256"
90 },
91 {
92 "indexed": false,
93 "name": "response1",
94 "type": "string"
95 },
96 {
97 "indexed": false,
98 "name": "response2",
99 "type": "string"
100 }
101 ],
102 "name": "Result2",
103 "type": "event"
104 },
105 {
106 "constant": false,
107 "inputs": [
108 {
109 "name": "id",
110 "type": "uint256"
111 },
112 {
113 "name": "response",
114 "type": "bytes32[]"
115 }
116 ],
117 "name": "callback",
118 "outputs": [],
119 "payable": false,
120 "stateMutability": "nonpayable",
121 "type": "function"
122 },
123 {
124 "constant": false,
125 "inputs": [
126 {
127 "name": "id",
128 "type": "uint256"
129 },
130 {
131 "name": "response1",
132 "type": "string"
133 }
134 ],
135 "name": "callback",
136 "outputs": [],
137 "payable": false,
138 "stateMutability": "nonpayable",
139 "type": "function"
140 },
141 {
142 "constant": false,
143 "inputs": [
144 {
145 "name": "id",
146 "type": "uint256"
147 },
148 {
149 "name": "response1",
150 "type": "string"
151 },
152 {
153 "name": "response2",
154 "type": "string"
155 }
156 ],
157 "name": "callback",
158 "outputs": [],
159 "payable": false,
160 "stateMutability": "nonpayable",
161 "type": "function"
162 },
163 {
164 "constant": false,
165 "inputs": [
166 {
167 "name": "oracleAddr",
168 "type": "address"
169 },
170 {
171 "name": "query",
172 "type": "string"
173 },
174 {
175 "name": "specifier",
176 "type": "bytes32"
177 },
178 {
179 "name": "params",
180 "type": "bytes32[]"
181 }
182 ],
183 "name": "testQuery",
184 "outputs": [
185 {
186 "name": "",
187 "type": "uint256"
188 }
189 ],
190 "payable": false,
191 "stateMutability": "nonpayable",
192 "type": "function"
193 },
194 {
195 "constant": false,
196 "inputs": [
197 {
198 "name": "id",
199 "type": "uint256"
200 }
201 ],
202 "name": "cancelQuery",
203 "outputs": [],
204 "payable": false,
205 "stateMutability": "nonpayable",
206 "type": "function"
207 }
208 ],
209 "bytecode": "0x608060405234801561001057600080fd5b5060405160808061081183398101806040528101908080519060200190929190805190602001909291908051906020019092919080519060200190929190505050836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506106aa806101676000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806363b41fe9146100725780637237dc0b146100b7578063b69a375d146100e4578063d075f20f14610129578063f5795cd5146101be575b600080fd5b34801561007e57600080fd5b506100b56004803603810190808035906020019092919080359060200190820180359060200191909192939192939050505061021b565b005b3480156100c357600080fd5b506100e260048036038101908080359060200190929190505050610280565b005b3480156100f057600080fd5b506101276004803603810190808035906020019092919080359060200190820180359060200191909192939192939050505061032c565b005b34801561013557600080fd5b506101a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390803560001916906020019092919080359060200190820180359060200191909192939192939050505061040d565b6040518082815260200191505060405180910390f35b3480156101ca57600080fd5b50610219600480360381019080803590602001909291908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506105fc565b005b7f5eef7b8de70c44e7326d1d7baa155450f5b38fc8d41309c12b2fc81817606b818383836000818110151561024c57fe5b90506020020135600019166040518083815260200182600019166000191681526020019250505060405180910390a1505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637237dc0b826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561031157600080fd5b505af1158015610325573d6000803e3d6000fd5b5050505050565b606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505090507f5d599109d8427016e4c93bff9b5f27e4cd24a83316a010d9ef7e15b7105d30e784826040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103cc5780820151818401526020810190506103b1565b50505050905090810190601f1680156103f95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150505050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637de7cc668989898989896040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001856000191660001916815260200180602001838103835288888281815260200192508082843782019150508381038252858582818152602001925060200280828437820191505098505050505050505050602060405180830381600087803b15801561052457600080fd5b505af1158015610538573d6000803e3d6000fd5b505050506040513d602081101561054e57600080fd5b810190808051906020019092919050505090507f50b551167947510d4c64636aac23b675db7849e6e7c824e4cf5830c3400e98a088888884604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825285858281815260200192508082843782019150509550505050505060405180910390a1809150509695505050505050565b7f0c98c7262dfd083f4b7cd58bc095ed2ef00c31ad4e6859d16be4c2b0f7fadeae8585858585604051808681526020018060200180602001838103835287878281815260200192508082843782019150508381038252858582818152602001925080828437820191505097505050505050505060405180910390a150505050505600a165627a7a72305820241636f3aa33dd5ae2872f1de4d14622998fb7d2565a93b537a7db1f703102ed0029",
210 "deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806363b41fe9146100725780637237dc0b146100b7578063b69a375d146100e4578063d075f20f14610129578063f5795cd5146101be575b600080fd5b34801561007e57600080fd5b506100b56004803603810190808035906020019092919080359060200190820180359060200191909192939192939050505061021b565b005b3480156100c357600080fd5b506100e260048036038101908080359060200190929190505050610280565b005b3480156100f057600080fd5b506101276004803603810190808035906020019092919080359060200190820180359060200191909192939192939050505061032c565b005b34801561013557600080fd5b506101a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390803560001916906020019092919080359060200190820180359060200191909192939192939050505061040d565b6040518082815260200191505060405180910390f35b3480156101ca57600080fd5b50610219600480360381019080803590602001909291908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506105fc565b005b7f5eef7b8de70c44e7326d1d7baa155450f5b38fc8d41309c12b2fc81817606b818383836000818110151561024c57fe5b90506020020135600019166040518083815260200182600019166000191681526020019250505060405180910390a1505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637237dc0b826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561031157600080fd5b505af1158015610325573d6000803e3d6000fd5b5050505050565b606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505090507f5d599109d8427016e4c93bff9b5f27e4cd24a83316a010d9ef7e15b7105d30e784826040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103cc5780820151818401526020810190506103b1565b50505050905090810190601f1680156103f95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150505050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637de7cc668989898989896040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001856000191660001916815260200180602001838103835288888281815260200192508082843782019150508381038252858582818152602001925060200280828437820191505098505050505050505050602060405180830381600087803b15801561052457600080fd5b505af1158015610538573d6000803e3d6000fd5b505050506040513d602081101561054e57600080fd5b810190808051906020019092919050505090507f50b551167947510d4c64636aac23b675db7849e6e7c824e4cf5830c3400e98a088888884604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825285858281815260200192508082843782019150509550505050505060405180910390a1809150509695505050505050565b7f0c98c7262dfd083f4b7cd58bc095ed2ef00c31ad4e6859d16be4c2b0f7fadeae8585858585604051808681526020018060200180602001838103835287878281815260200192508082843782019150508381038252858582818152602001925080828437820191505097505050505050505060405180910390a150505050505600a165627a7a72305820241636f3aa33dd5ae2872f1de4d14622998fb7d2565a93b537a7db1f703102ed0029",
211 "sourceMap": "4607:2033:18:-;;;4995:321;8:9:-1;5:2;;;30:1;27;20:12;5:2;4995:321:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5134:12;5120:5;;:27;;;;;;;;;;;;;;;;;;5186:15;5157:8;;:45;;;;;;;;;;;;;;;;;;5239:14;5212:7;;:42;;;;;;;;;;;;;;;;;;5293:15;5264:8;;:45;;;;;;;;;;;;;;;;;;4995:321;;;;4607:2033;;;;;;",
212 "deployedSourceMap": "4607:2033:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5583:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5583:141:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6554:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6554:83:18;;;;;;;;;;;;;;;;;;;;;;;;;;5393:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5393:184:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5926:265;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5926:265:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5754:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5754:166:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5583:141;5657:24;5665:2;5669:8;;5678:1;5669:11;;;;;;;;;;;;;;;;;;5657:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5583:141;;;:::o;6554:83::-;6606:8;;;;;;;;;;;:20;;;6627:2;6606:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6606:24:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6606:24:18;;;;6554:83;:::o;5393:184::-;5460:24;5487:9;;5460:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5511:23;5519:2;5523:10;5511:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5511:23:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5393:184;;;;:::o;5926:265::-;6034:7;6053:10;6066:8;;;;;;;;;;;:14;;;6081:10;6093:5;;6100:9;6111:6;;6066:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6066:52:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6066:52:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6066:52:18;;;;;;;;;;;;;;;;6053:65;;6133:32;6143:10;6155:5;;6162:2;6133:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6182:2;6175:9;;5926:265;;;;;;;;;:::o;5754:166::-;5844:33;5852:2;5856:9;;5867;;5844:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5754:166;;;;;:::o",
213 "source": "pragma solidity ^0.4.24;\n\nimport \"./Client.sol\";\nimport \"../../platform/dispatch/DispatchInterface.sol\";\nimport \"../../platform/bondage/BondageInterface.sol\";\nimport \"../../platform/registry/RegistryInterface.sol\";\nimport \"./OnChainProvider.sol\";\nimport \"../ERC20.sol\";\n\ncontract TestProvider is OnChainProvider {\n event RecievedQuery(string query, bytes32 endpoint, bytes32[] params);\n\n event TEST(uint res, bytes32 b, string s);\n\n bytes32 public spec1 = \"Hello?\";\n bytes32 public spec2 = \"Reverse\";\n bytes32 public spec3 = \"Add\";\n bytes32 public spec4 = \"Double\";\n\n bool AM_A_BAD_ORACLE;\n\n /* Endpoints to Functions:\n spec1: Hello? -> returns \"Hello World\"\n spec2: Reverse -> returns the query string in reverse\n spec3: Add -> Adds up the values in endpointParams\n */\n\n // curve 2x^2\n int[] curve = [3, 0, 0, 2, 1000000000];\n\n RegistryInterface registry;\n\n // middleware function for handling queries\n function receive(uint256 id, string userQuery, bytes32 endpoint, bytes32[] endpointParams, bool onchainSubscriber) external {\n emit RecievedQuery(userQuery, endpoint, endpointParams);\n if(AM_A_BAD_ORACLE) return;\n bytes32 _endpoint = endpoint;\n if(onchainSubscriber) {\n bytes32 hash = keccak256(abi.encodePacked(_endpoint));\n\n if(hash == keccak256(abi.encodePacked(spec1))){\n endpoint1(id, userQuery, endpointParams);\n } else if (hash == keccak256(abi.encodePacked(spec2))){\n endpoint2(id, userQuery, endpointParams);\n } else if (hash == keccak256(abi.encodePacked(spec3))){\n endpoint3(id, userQuery, endpointParams);\n } else if (hash == keccak256(abi.encodePacked(spec4))){\n endpoint4(id, userQuery, endpointParams);\n } else {\n revert(\"Invalid endpoint\");\n }\n } // else: Do nothing (onchain only)\n }\n\n constructor(address registryAddress, bool isBad) public{\n registry = RegistryInterface(registryAddress);\n AM_A_BAD_ORACLE = isBad;\n\n // initialize in registry\n bytes32 title = \"TestContract\";\n\n bytes32[] memory params = new bytes32[](2);\n params[0] = \"p1\";\n params[1] = \"p2\";\n\n registry.initiateProvider(12345, title);\n\n registry.initiateProviderCurve(spec1, curve, address(0));\n registry.initiateProviderCurve(spec2, curve, address(0));\n registry.initiateProviderCurve(spec3, curve, address(0));\n registry.initiateProviderCurve(spec4, curve, address(0));\n }\n\n\n // return Hello World to query-maker\n function endpoint1(uint256 id, string /* userQuery */, bytes32[] /* endpointParams */) internal{\n DispatchInterface(msg.sender).respond1(id, \"Hello World\");\n }\n\n // return the hash of the query\n function endpoint2(uint256 id, string userQuery, bytes32[] /* endpointParams */) internal{\n // endpointParams\n string memory reversed = reverseString(userQuery);\n DispatchInterface(msg.sender).respond1(id, reversed);\n }\n\n // returns the sum of all values in endpointParams\n function endpoint3(uint256 id, string /* userQuery */, bytes32[] endpointParams) internal{\n uint sum = 0;\n for(uint i = 0; i<endpointParams.length; i++){\n uint value = uint(endpointParams[i]);\n sum += value;\n }\n\n bytes32[] memory res = new bytes32[](1);\n res[0] = bytes32(sum);\n\n DispatchInterface(msg.sender).respondBytes32Array(id, res);\n }\n\n // returns the sum of all values in endpointParams\n function endpoint4(uint256 id, string /* userQuery */, bytes32[] /* endpointParams */) internal{\n DispatchInterface(msg.sender).respond2(id, \"Hello\", \"World\");\n }\n\n function reverseString(string _base) internal pure returns (string){\n bytes memory _baseBytes = bytes(_base);\n string memory _tempValue = new string(_baseBytes.length);\n bytes memory _newValue = bytes(_tempValue);\n\n for(uint i=0;i<_baseBytes.length;i++){\n _newValue[ _baseBytes.length - i - 1] = _baseBytes[i];\n }\n\n return string(_newValue);\n }\n\n\n function bytes32ToString (bytes32 data) internal pure returns (string) {\n bytes memory bytesString = new bytes(32);\n for (uint j=0; j<32; j++) {\n byte char = byte(bytes32(uint(data) * 2 ** (8 * j)));\n if (char != 0) {\n bytesString[j] = char;\n }\n }\n return string(bytesString);\n }\n\n}\n\n/* Test Subscriber Client */\ncontract TestClient is Client1, Client2{\n\n event MadeQuery(address oracle, string query, uint256 id);\n event Result1(uint256 id, string response1);\n event Result1(uint256 id, bytes32 response1);\n event Result2(uint256 id, string response1, string response2);\n\n ERC20 token;\n DispatchInterface dispatch;\n BondageInterface bondage;\n RegistryInterface registry;\n\n constructor(address tokenAddress, address dispatchAddress, address bondageAddress, address registryAddress) public {\n token = ERC20(tokenAddress);\n dispatch = DispatchInterface(dispatchAddress);\n bondage = BondageInterface(bondageAddress);\n registry = RegistryInterface(registryAddress);\n }\n\n /*\n Implements overloaded callback functions for Client1\n */\n function callback(uint256 id, string response1) external {\n string memory _response1 = response1;\n emit Result1(id, _response1);\n // do something with result\n }\n\n function callback(uint256 id, bytes32[] response) external {\n emit Result1(id, response[0]);\n // do something with result\n }\n\n // Client2 callback\n function callback(uint256 id, string response1, string response2) external {\n emit Result2(id, response1, response2);\n // do something with result\n }\n\n function testQuery(address oracleAddr, string query, bytes32 specifier, bytes32[] params) external returns (uint256) {\n uint256 id = dispatch.query(oracleAddr, query, specifier, params);\n emit MadeQuery(oracleAddr, query, id);\n return id;\n }\n\n function stringToBytes32(string memory source) internal pure returns (bytes32 result) {\n bytes memory tempEmptyStringTest = bytes(source);\n\n if (tempEmptyStringTest.length == 0) {\n return 0x0;\n }\n assembly {\n result := mload(add(source, 32))\n }\n }\n\n // attempts to cancel an existing query\n function cancelQuery(uint256 id) external {\n dispatch.cancelQuery(id);\n }\n\n}\n",
214 "sourcePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/TestContracts.sol",
215 "ast": {
216 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/TestContracts.sol",
217 "exportedSymbols": {
218 "TestClient": [
219 4251
220 ],
221 "TestProvider": [
222 4057
223 ]
224 },
225 "id": 4252,
226 "nodeType": "SourceUnit",
227 "nodes": [
228 {
229 "id": 3555,
230 "literals": [
231 "solidity",
232 "^",
233 "0.4",
234 ".24"
235 ],
236 "nodeType": "PragmaDirective",
237 "src": "0:24:18"
238 },
239 {
240 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/Client.sol",
241 "file": "./Client.sol",
242 "id": 3556,
243 "nodeType": "ImportDirective",
244 "scope": 4252,
245 "sourceUnit": 870,
246 "src": "26:22:18",
247 "symbolAliases": [],
248 "unitAlias": ""
249 },
250 {
251 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/dispatch/DispatchInterface.sol",
252 "file": "../../platform/dispatch/DispatchInterface.sol",
253 "id": 3557,
254 "nodeType": "ImportDirective",
255 "scope": 4252,
256 "sourceUnit": 10148,
257 "src": "49:55:18",
258 "symbolAliases": [],
259 "unitAlias": ""
260 },
261 {
262 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/bondage/BondageInterface.sol",
263 "file": "../../platform/bondage/BondageInterface.sol",
264 "id": 3558,
265 "nodeType": "ImportDirective",
266 "scope": 4252,
267 "sourceUnit": 7927,
268 "src": "105:53:18",
269 "symbolAliases": [],
270 "unitAlias": ""
271 },
272 {
273 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/registry/RegistryInterface.sol",
274 "file": "../../platform/registry/RegistryInterface.sol",
275 "id": 3559,
276 "nodeType": "ImportDirective",
277 "scope": 4252,
278 "sourceUnit": 11304,
279 "src": "159:55:18",
280 "symbolAliases": [],
281 "unitAlias": ""
282 },
283 {
284 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/OnChainProvider.sol",
285 "file": "./OnChainProvider.sol",
286 "id": 3560,
287 "nodeType": "ImportDirective",
288 "scope": 4252,
289 "sourceUnit": 1827,
290 "src": "215:31:18",
291 "symbolAliases": [],
292 "unitAlias": ""
293 },
294 {
295 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/ERC20.sol",
296 "file": "../ERC20.sol",
297 "id": 3561,
298 "nodeType": "ImportDirective",
299 "scope": 4252,
300 "sourceUnit": 132,
301 "src": "247:22:18",
302 "symbolAliases": [],
303 "unitAlias": ""
304 },
305 {
306 "baseContracts": [
307 {
308 "arguments": null,
309 "baseName": {
310 "contractScope": null,
311 "id": 3562,
312 "name": "OnChainProvider",
313 "nodeType": "UserDefinedTypeName",
314 "referencedDeclaration": 1826,
315 "src": "296:15:18",
316 "typeDescriptions": {
317 "typeIdentifier": "t_contract$_OnChainProvider_$1826",
318 "typeString": "contract OnChainProvider"
319 }
320 },
321 "id": 3563,
322 "nodeType": "InheritanceSpecifier",
323 "src": "296:15:18"
324 }
325 ],
326 "contractDependencies": [
327 1826
328 ],
329 "contractKind": "contract",
330 "documentation": null,
331 "fullyImplemented": true,
332 "id": 4057,
333 "linearizedBaseContracts": [
334 4057,
335 1826
336 ],
337 "name": "TestProvider",
338 "nodeType": "ContractDefinition",
339 "nodes": [
340 {
341 "anonymous": false,
342 "documentation": null,
343 "id": 3572,
344 "name": "RecievedQuery",
345 "nodeType": "EventDefinition",
346 "parameters": {
347 "id": 3571,
348 "nodeType": "ParameterList",
349 "parameters": [
350 {
351 "constant": false,
352 "id": 3565,
353 "indexed": false,
354 "name": "query",
355 "nodeType": "VariableDeclaration",
356 "scope": 3572,
357 "src": "338:12:18",
358 "stateVariable": false,
359 "storageLocation": "default",
360 "typeDescriptions": {
361 "typeIdentifier": "t_string_memory_ptr",
362 "typeString": "string"
363 },
364 "typeName": {
365 "id": 3564,
366 "name": "string",
367 "nodeType": "ElementaryTypeName",
368 "src": "338:6:18",
369 "typeDescriptions": {
370 "typeIdentifier": "t_string_storage_ptr",
371 "typeString": "string"
372 }
373 },
374 "value": null,
375 "visibility": "internal"
376 },
377 {
378 "constant": false,
379 "id": 3567,
380 "indexed": false,
381 "name": "endpoint",
382 "nodeType": "VariableDeclaration",
383 "scope": 3572,
384 "src": "352:16:18",
385 "stateVariable": false,
386 "storageLocation": "default",
387 "typeDescriptions": {
388 "typeIdentifier": "t_bytes32",
389 "typeString": "bytes32"
390 },
391 "typeName": {
392 "id": 3566,
393 "name": "bytes32",
394 "nodeType": "ElementaryTypeName",
395 "src": "352:7:18",
396 "typeDescriptions": {
397 "typeIdentifier": "t_bytes32",
398 "typeString": "bytes32"
399 }
400 },
401 "value": null,
402 "visibility": "internal"
403 },
404 {
405 "constant": false,
406 "id": 3570,
407 "indexed": false,
408 "name": "params",
409 "nodeType": "VariableDeclaration",
410 "scope": 3572,
411 "src": "370:16:18",
412 "stateVariable": false,
413 "storageLocation": "default",
414 "typeDescriptions": {
415 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
416 "typeString": "bytes32[]"
417 },
418 "typeName": {
419 "baseType": {
420 "id": 3568,
421 "name": "bytes32",
422 "nodeType": "ElementaryTypeName",
423 "src": "370:7:18",
424 "typeDescriptions": {
425 "typeIdentifier": "t_bytes32",
426 "typeString": "bytes32"
427 }
428 },
429 "id": 3569,
430 "length": null,
431 "nodeType": "ArrayTypeName",
432 "src": "370:9:18",
433 "typeDescriptions": {
434 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
435 "typeString": "bytes32[]"
436 }
437 },
438 "value": null,
439 "visibility": "internal"
440 }
441 ],
442 "src": "337:50:18"
443 },
444 "src": "318:70:18"
445 },
446 {
447 "anonymous": false,
448 "documentation": null,
449 "id": 3580,
450 "name": "TEST",
451 "nodeType": "EventDefinition",
452 "parameters": {
453 "id": 3579,
454 "nodeType": "ParameterList",
455 "parameters": [
456 {
457 "constant": false,
458 "id": 3574,
459 "indexed": false,
460 "name": "res",
461 "nodeType": "VariableDeclaration",
462 "scope": 3580,
463 "src": "405:8:18",
464 "stateVariable": false,
465 "storageLocation": "default",
466 "typeDescriptions": {
467 "typeIdentifier": "t_uint256",
468 "typeString": "uint256"
469 },
470 "typeName": {
471 "id": 3573,
472 "name": "uint",
473 "nodeType": "ElementaryTypeName",
474 "src": "405:4:18",
475 "typeDescriptions": {
476 "typeIdentifier": "t_uint256",
477 "typeString": "uint256"
478 }
479 },
480 "value": null,
481 "visibility": "internal"
482 },
483 {
484 "constant": false,
485 "id": 3576,
486 "indexed": false,
487 "name": "b",
488 "nodeType": "VariableDeclaration",
489 "scope": 3580,
490 "src": "415:9:18",
491 "stateVariable": false,
492 "storageLocation": "default",
493 "typeDescriptions": {
494 "typeIdentifier": "t_bytes32",
495 "typeString": "bytes32"
496 },
497 "typeName": {
498 "id": 3575,
499 "name": "bytes32",
500 "nodeType": "ElementaryTypeName",
501 "src": "415:7:18",
502 "typeDescriptions": {
503 "typeIdentifier": "t_bytes32",
504 "typeString": "bytes32"
505 }
506 },
507 "value": null,
508 "visibility": "internal"
509 },
510 {
511 "constant": false,
512 "id": 3578,
513 "indexed": false,
514 "name": "s",
515 "nodeType": "VariableDeclaration",
516 "scope": 3580,
517 "src": "426:8:18",
518 "stateVariable": false,
519 "storageLocation": "default",
520 "typeDescriptions": {
521 "typeIdentifier": "t_string_memory_ptr",
522 "typeString": "string"
523 },
524 "typeName": {
525 "id": 3577,
526 "name": "string",
527 "nodeType": "ElementaryTypeName",
528 "src": "426:6:18",
529 "typeDescriptions": {
530 "typeIdentifier": "t_string_storage_ptr",
531 "typeString": "string"
532 }
533 },
534 "value": null,
535 "visibility": "internal"
536 }
537 ],
538 "src": "404:31:18"
539 },
540 "src": "394:42:18"
541 },
542 {
543 "constant": false,
544 "id": 3583,
545 "name": "spec1",
546 "nodeType": "VariableDeclaration",
547 "scope": 4057,
548 "src": "442:31:18",
549 "stateVariable": true,
550 "storageLocation": "default",
551 "typeDescriptions": {
552 "typeIdentifier": "t_bytes32",
553 "typeString": "bytes32"
554 },
555 "typeName": {
556 "id": 3581,
557 "name": "bytes32",
558 "nodeType": "ElementaryTypeName",
559 "src": "442:7:18",
560 "typeDescriptions": {
561 "typeIdentifier": "t_bytes32",
562 "typeString": "bytes32"
563 }
564 },
565 "value": {
566 "argumentTypes": null,
567 "hexValue": "48656c6c6f3f",
568 "id": 3582,
569 "isConstant": false,
570 "isLValue": false,
571 "isPure": true,
572 "kind": "string",
573 "lValueRequested": false,
574 "nodeType": "Literal",
575 "src": "465:8:18",
576 "subdenomination": null,
577 "typeDescriptions": {
578 "typeIdentifier": "t_stringliteral_c39a77d25e089200b4a840a5a610a0ce367e33ab74302bb68df43a53521f72eb",
579 "typeString": "literal_string \"Hello?\""
580 },
581 "value": "Hello?"
582 },
583 "visibility": "public"
584 },
585 {
586 "constant": false,
587 "id": 3586,
588 "name": "spec2",
589 "nodeType": "VariableDeclaration",
590 "scope": 4057,
591 "src": "479:32:18",
592 "stateVariable": true,
593 "storageLocation": "default",
594 "typeDescriptions": {
595 "typeIdentifier": "t_bytes32",
596 "typeString": "bytes32"
597 },
598 "typeName": {
599 "id": 3584,
600 "name": "bytes32",
601 "nodeType": "ElementaryTypeName",
602 "src": "479:7:18",
603 "typeDescriptions": {
604 "typeIdentifier": "t_bytes32",
605 "typeString": "bytes32"
606 }
607 },
608 "value": {
609 "argumentTypes": null,
610 "hexValue": "52657665727365",
611 "id": 3585,
612 "isConstant": false,
613 "isLValue": false,
614 "isPure": true,
615 "kind": "string",
616 "lValueRequested": false,
617 "nodeType": "Literal",
618 "src": "502:9:18",
619 "subdenomination": null,
620 "typeDescriptions": {
621 "typeIdentifier": "t_stringliteral_c2c0cb1b4604374a82e0052941d8e348d1122d7f0274235b9316d17590b576ed",
622 "typeString": "literal_string \"Reverse\""
623 },
624 "value": "Reverse"
625 },
626 "visibility": "public"
627 },
628 {
629 "constant": false,
630 "id": 3589,
631 "name": "spec3",
632 "nodeType": "VariableDeclaration",
633 "scope": 4057,
634 "src": "517:28:18",
635 "stateVariable": true,
636 "storageLocation": "default",
637 "typeDescriptions": {
638 "typeIdentifier": "t_bytes32",
639 "typeString": "bytes32"
640 },
641 "typeName": {
642 "id": 3587,
643 "name": "bytes32",
644 "nodeType": "ElementaryTypeName",
645 "src": "517:7:18",
646 "typeDescriptions": {
647 "typeIdentifier": "t_bytes32",
648 "typeString": "bytes32"
649 }
650 },
651 "value": {
652 "argumentTypes": null,
653 "hexValue": "416464",
654 "id": 3588,
655 "isConstant": false,
656 "isLValue": false,
657 "isPure": true,
658 "kind": "string",
659 "lValueRequested": false,
660 "nodeType": "Literal",
661 "src": "540:5:18",
662 "subdenomination": null,
663 "typeDescriptions": {
664 "typeIdentifier": "t_stringliteral_b807b8513c59d9a2c1aa8cbcd48bb7f8f7e31947017c04375037207be7b0485d",
665 "typeString": "literal_string \"Add\""
666 },
667 "value": "Add"
668 },
669 "visibility": "public"
670 },
671 {
672 "constant": false,
673 "id": 3592,
674 "name": "spec4",
675 "nodeType": "VariableDeclaration",
676 "scope": 4057,
677 "src": "551:31:18",
678 "stateVariable": true,
679 "storageLocation": "default",
680 "typeDescriptions": {
681 "typeIdentifier": "t_bytes32",
682 "typeString": "bytes32"
683 },
684 "typeName": {
685 "id": 3590,
686 "name": "bytes32",
687 "nodeType": "ElementaryTypeName",
688 "src": "551:7:18",
689 "typeDescriptions": {
690 "typeIdentifier": "t_bytes32",
691 "typeString": "bytes32"
692 }
693 },
694 "value": {
695 "argumentTypes": null,
696 "hexValue": "446f75626c65",
697 "id": 3591,
698 "isConstant": false,
699 "isLValue": false,
700 "isPure": true,
701 "kind": "string",
702 "lValueRequested": false,
703 "nodeType": "Literal",
704 "src": "574:8:18",
705 "subdenomination": null,
706 "typeDescriptions": {
707 "typeIdentifier": "t_stringliteral_c9b6476ed7f4a8c6bfc08d93f4d6436ef7d9ac2ed055056196a31c90e486179d",
708 "typeString": "literal_string \"Double\""
709 },
710 "value": "Double"
711 },
712 "visibility": "public"
713 },
714 {
715 "constant": false,
716 "id": 3594,
717 "name": "AM_A_BAD_ORACLE",
718 "nodeType": "VariableDeclaration",
719 "scope": 4057,
720 "src": "589:20:18",
721 "stateVariable": true,
722 "storageLocation": "default",
723 "typeDescriptions": {
724 "typeIdentifier": "t_bool",
725 "typeString": "bool"
726 },
727 "typeName": {
728 "id": 3593,
729 "name": "bool",
730 "nodeType": "ElementaryTypeName",
731 "src": "589:4:18",
732 "typeDescriptions": {
733 "typeIdentifier": "t_bool",
734 "typeString": "bool"
735 }
736 },
737 "value": null,
738 "visibility": "internal"
739 },
740 {
741 "constant": false,
742 "id": 3603,
743 "name": "curve",
744 "nodeType": "VariableDeclaration",
745 "scope": 4057,
746 "src": "829:38:18",
747 "stateVariable": true,
748 "storageLocation": "default",
749 "typeDescriptions": {
750 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
751 "typeString": "int256[]"
752 },
753 "typeName": {
754 "baseType": {
755 "id": 3595,
756 "name": "int",
757 "nodeType": "ElementaryTypeName",
758 "src": "829:3:18",
759 "typeDescriptions": {
760 "typeIdentifier": "t_int256",
761 "typeString": "int256"
762 }
763 },
764 "id": 3596,
765 "length": null,
766 "nodeType": "ArrayTypeName",
767 "src": "829:5:18",
768 "typeDescriptions": {
769 "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
770 "typeString": "int256[]"
771 }
772 },
773 "value": {
774 "argumentTypes": null,
775 "components": [
776 {
777 "argumentTypes": null,
778 "hexValue": "33",
779 "id": 3597,
780 "isConstant": false,
781 "isLValue": false,
782 "isPure": true,
783 "kind": "number",
784 "lValueRequested": false,
785 "nodeType": "Literal",
786 "src": "844:1:18",
787 "subdenomination": null,
788 "typeDescriptions": {
789 "typeIdentifier": "t_rational_3_by_1",
790 "typeString": "int_const 3"
791 },
792 "value": "3"
793 },
794 {
795 "argumentTypes": null,
796 "hexValue": "30",
797 "id": 3598,
798 "isConstant": false,
799 "isLValue": false,
800 "isPure": true,
801 "kind": "number",
802 "lValueRequested": false,
803 "nodeType": "Literal",
804 "src": "847:1:18",
805 "subdenomination": null,
806 "typeDescriptions": {
807 "typeIdentifier": "t_rational_0_by_1",
808 "typeString": "int_const 0"
809 },
810 "value": "0"
811 },
812 {
813 "argumentTypes": null,
814 "hexValue": "30",
815 "id": 3599,
816 "isConstant": false,
817 "isLValue": false,
818 "isPure": true,
819 "kind": "number",
820 "lValueRequested": false,
821 "nodeType": "Literal",
822 "src": "850:1:18",
823 "subdenomination": null,
824 "typeDescriptions": {
825 "typeIdentifier": "t_rational_0_by_1",
826 "typeString": "int_const 0"
827 },
828 "value": "0"
829 },
830 {
831 "argumentTypes": null,
832 "hexValue": "32",
833 "id": 3600,
834 "isConstant": false,
835 "isLValue": false,
836 "isPure": true,
837 "kind": "number",
838 "lValueRequested": false,
839 "nodeType": "Literal",
840 "src": "853:1:18",
841 "subdenomination": null,
842 "typeDescriptions": {
843 "typeIdentifier": "t_rational_2_by_1",
844 "typeString": "int_const 2"
845 },
846 "value": "2"
847 },
848 {
849 "argumentTypes": null,
850 "hexValue": "31303030303030303030",
851 "id": 3601,
852 "isConstant": false,
853 "isLValue": false,
854 "isPure": true,
855 "kind": "number",
856 "lValueRequested": false,
857 "nodeType": "Literal",
858 "src": "856:10:18",
859 "subdenomination": null,
860 "typeDescriptions": {
861 "typeIdentifier": "t_rational_1000000000_by_1",
862 "typeString": "int_const 1000000000"
863 },
864 "value": "1000000000"
865 }
866 ],
867 "id": 3602,
868 "isConstant": false,
869 "isInlineArray": true,
870 "isLValue": false,
871 "isPure": true,
872 "lValueRequested": false,
873 "nodeType": "TupleExpression",
874 "src": "843:24:18",
875 "typeDescriptions": {
876 "typeIdentifier": "t_array$_t_uint32_$5_memory_ptr",
877 "typeString": "uint32[5] memory"
878 }
879 },
880 "visibility": "internal"
881 },
882 {
883 "constant": false,
884 "id": 3605,
885 "name": "registry",
886 "nodeType": "VariableDeclaration",
887 "scope": 4057,
888 "src": "874:26:18",
889 "stateVariable": true,
890 "storageLocation": "default",
891 "typeDescriptions": {
892 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
893 "typeString": "contract RegistryInterface"
894 },
895 "typeName": {
896 "contractScope": null,
897 "id": 3604,
898 "name": "RegistryInterface",
899 "nodeType": "UserDefinedTypeName",
900 "referencedDeclaration": 11303,
901 "src": "874:17:18",
902 "typeDescriptions": {
903 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
904 "typeString": "contract RegistryInterface"
905 }
906 },
907 "value": null,
908 "visibility": "internal"
909 },
910 {
911 "body": {
912 "id": 3713,
913 "nodeType": "Block",
914 "src": "1079:866:18",
915 "statements": [
916 {
917 "eventCall": {
918 "argumentTypes": null,
919 "arguments": [
920 {
921 "argumentTypes": null,
922 "id": 3620,
923 "name": "userQuery",
924 "nodeType": "Identifier",
925 "overloadedDeclarations": [],
926 "referencedDeclaration": 3609,
927 "src": "1108:9:18",
928 "typeDescriptions": {
929 "typeIdentifier": "t_string_calldata_ptr",
930 "typeString": "string calldata"
931 }
932 },
933 {
934 "argumentTypes": null,
935 "id": 3621,
936 "name": "endpoint",
937 "nodeType": "Identifier",
938 "overloadedDeclarations": [],
939 "referencedDeclaration": 3611,
940 "src": "1119:8:18",
941 "typeDescriptions": {
942 "typeIdentifier": "t_bytes32",
943 "typeString": "bytes32"
944 }
945 },
946 {
947 "argumentTypes": null,
948 "id": 3622,
949 "name": "endpointParams",
950 "nodeType": "Identifier",
951 "overloadedDeclarations": [],
952 "referencedDeclaration": 3614,
953 "src": "1129:14:18",
954 "typeDescriptions": {
955 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
956 "typeString": "bytes32[] calldata"
957 }
958 }
959 ],
960 "expression": {
961 "argumentTypes": [
962 {
963 "typeIdentifier": "t_string_calldata_ptr",
964 "typeString": "string calldata"
965 },
966 {
967 "typeIdentifier": "t_bytes32",
968 "typeString": "bytes32"
969 },
970 {
971 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
972 "typeString": "bytes32[] calldata"
973 }
974 ],
975 "id": 3619,
976 "name": "RecievedQuery",
977 "nodeType": "Identifier",
978 "overloadedDeclarations": [],
979 "referencedDeclaration": 3572,
980 "src": "1094:13:18",
981 "typeDescriptions": {
982 "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
983 "typeString": "function (string memory,bytes32,bytes32[] memory)"
984 }
985 },
986 "id": 3623,
987 "isConstant": false,
988 "isLValue": false,
989 "isPure": false,
990 "kind": "functionCall",
991 "lValueRequested": false,
992 "names": [],
993 "nodeType": "FunctionCall",
994 "src": "1094:50:18",
995 "typeDescriptions": {
996 "typeIdentifier": "t_tuple$__$",
997 "typeString": "tuple()"
998 }
999 },
1000 "id": 3624,
1001 "nodeType": "EmitStatement",
1002 "src": "1089:55:18"
1003 },
1004 {
1005 "condition": {
1006 "argumentTypes": null,
1007 "id": 3625,
1008 "name": "AM_A_BAD_ORACLE",
1009 "nodeType": "Identifier",
1010 "overloadedDeclarations": [],
1011 "referencedDeclaration": 3594,
1012 "src": "1157:15:18",
1013 "typeDescriptions": {
1014 "typeIdentifier": "t_bool",
1015 "typeString": "bool"
1016 }
1017 },
1018 "falseBody": null,
1019 "id": 3627,
1020 "nodeType": "IfStatement",
1021 "src": "1154:27:18",
1022 "trueBody": {
1023 "expression": null,
1024 "functionReturnParameters": 3618,
1025 "id": 3626,
1026 "nodeType": "Return",
1027 "src": "1174:7:18"
1028 }
1029 },
1030 {
1031 "assignments": [
1032 3629
1033 ],
1034 "declarations": [
1035 {
1036 "constant": false,
1037 "id": 3629,
1038 "name": "_endpoint",
1039 "nodeType": "VariableDeclaration",
1040 "scope": 3714,
1041 "src": "1190:17:18",
1042 "stateVariable": false,
1043 "storageLocation": "default",
1044 "typeDescriptions": {
1045 "typeIdentifier": "t_bytes32",
1046 "typeString": "bytes32"
1047 },
1048 "typeName": {
1049 "id": 3628,
1050 "name": "bytes32",
1051 "nodeType": "ElementaryTypeName",
1052 "src": "1190:7:18",
1053 "typeDescriptions": {
1054 "typeIdentifier": "t_bytes32",
1055 "typeString": "bytes32"
1056 }
1057 },
1058 "value": null,
1059 "visibility": "internal"
1060 }
1061 ],
1062 "id": 3631,
1063 "initialValue": {
1064 "argumentTypes": null,
1065 "id": 3630,
1066 "name": "endpoint",
1067 "nodeType": "Identifier",
1068 "overloadedDeclarations": [],
1069 "referencedDeclaration": 3611,
1070 "src": "1210:8:18",
1071 "typeDescriptions": {
1072 "typeIdentifier": "t_bytes32",
1073 "typeString": "bytes32"
1074 }
1075 },
1076 "nodeType": "VariableDeclarationStatement",
1077 "src": "1190:28:18"
1078 },
1079 {
1080 "condition": {
1081 "argumentTypes": null,
1082 "id": 3632,
1083 "name": "onchainSubscriber",
1084 "nodeType": "Identifier",
1085 "overloadedDeclarations": [],
1086 "referencedDeclaration": 3616,
1087 "src": "1231:17:18",
1088 "typeDescriptions": {
1089 "typeIdentifier": "t_bool",
1090 "typeString": "bool"
1091 }
1092 },
1093 "falseBody": null,
1094 "id": 3712,
1095 "nodeType": "IfStatement",
1096 "src": "1228:676:18",
1097 "trueBody": {
1098 "id": 3711,
1099 "nodeType": "Block",
1100 "src": "1250:654:18",
1101 "statements": [
1102 {
1103 "assignments": [
1104 3634
1105 ],
1106 "declarations": [
1107 {
1108 "constant": false,
1109 "id": 3634,
1110 "name": "hash",
1111 "nodeType": "VariableDeclaration",
1112 "scope": 3714,
1113 "src": "1264:12:18",
1114 "stateVariable": false,
1115 "storageLocation": "default",
1116 "typeDescriptions": {
1117 "typeIdentifier": "t_bytes32",
1118 "typeString": "bytes32"
1119 },
1120 "typeName": {
1121 "id": 3633,
1122 "name": "bytes32",
1123 "nodeType": "ElementaryTypeName",
1124 "src": "1264:7:18",
1125 "typeDescriptions": {
1126 "typeIdentifier": "t_bytes32",
1127 "typeString": "bytes32"
1128 }
1129 },
1130 "value": null,
1131 "visibility": "internal"
1132 }
1133 ],
1134 "id": 3641,
1135 "initialValue": {
1136 "argumentTypes": null,
1137 "arguments": [
1138 {
1139 "argumentTypes": null,
1140 "arguments": [
1141 {
1142 "argumentTypes": null,
1143 "id": 3638,
1144 "name": "_endpoint",
1145 "nodeType": "Identifier",
1146 "overloadedDeclarations": [],
1147 "referencedDeclaration": 3629,
1148 "src": "1306:9:18",
1149 "typeDescriptions": {
1150 "typeIdentifier": "t_bytes32",
1151 "typeString": "bytes32"
1152 }
1153 }
1154 ],
1155 "expression": {
1156 "argumentTypes": [
1157 {
1158 "typeIdentifier": "t_bytes32",
1159 "typeString": "bytes32"
1160 }
1161 ],
1162 "expression": {
1163 "argumentTypes": null,
1164 "id": 3636,
1165 "name": "abi",
1166 "nodeType": "Identifier",
1167 "overloadedDeclarations": [],
1168 "referencedDeclaration": 12079,
1169 "src": "1289:3:18",
1170 "typeDescriptions": {
1171 "typeIdentifier": "t_magic_abi",
1172 "typeString": "abi"
1173 }
1174 },
1175 "id": 3637,
1176 "isConstant": false,
1177 "isLValue": false,
1178 "isPure": true,
1179 "lValueRequested": false,
1180 "memberName": "encodePacked",
1181 "nodeType": "MemberAccess",
1182 "referencedDeclaration": null,
1183 "src": "1289:16:18",
1184 "typeDescriptions": {
1185 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
1186 "typeString": "function () pure returns (bytes memory)"
1187 }
1188 },
1189 "id": 3639,
1190 "isConstant": false,
1191 "isLValue": false,
1192 "isPure": false,
1193 "kind": "functionCall",
1194 "lValueRequested": false,
1195 "names": [],
1196 "nodeType": "FunctionCall",
1197 "src": "1289:27:18",
1198 "typeDescriptions": {
1199 "typeIdentifier": "t_bytes_memory_ptr",
1200 "typeString": "bytes memory"
1201 }
1202 }
1203 ],
1204 "expression": {
1205 "argumentTypes": [
1206 {
1207 "typeIdentifier": "t_bytes_memory_ptr",
1208 "typeString": "bytes memory"
1209 }
1210 ],
1211 "id": 3635,
1212 "name": "keccak256",
1213 "nodeType": "Identifier",
1214 "overloadedDeclarations": [],
1215 "referencedDeclaration": 12086,
1216 "src": "1279:9:18",
1217 "typeDescriptions": {
1218 "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
1219 "typeString": "function () pure returns (bytes32)"
1220 }
1221 },
1222 "id": 3640,
1223 "isConstant": false,
1224 "isLValue": false,
1225 "isPure": false,
1226 "kind": "functionCall",
1227 "lValueRequested": false,
1228 "names": [],
1229 "nodeType": "FunctionCall",
1230 "src": "1279:38:18",
1231 "typeDescriptions": {
1232 "typeIdentifier": "t_bytes32",
1233 "typeString": "bytes32"
1234 }
1235 },
1236 "nodeType": "VariableDeclarationStatement",
1237 "src": "1264:53:18"
1238 },
1239 {
1240 "condition": {
1241 "argumentTypes": null,
1242 "commonType": {
1243 "typeIdentifier": "t_bytes32",
1244 "typeString": "bytes32"
1245 },
1246 "id": 3649,
1247 "isConstant": false,
1248 "isLValue": false,
1249 "isPure": false,
1250 "lValueRequested": false,
1251 "leftExpression": {
1252 "argumentTypes": null,
1253 "id": 3642,
1254 "name": "hash",
1255 "nodeType": "Identifier",
1256 "overloadedDeclarations": [],
1257 "referencedDeclaration": 3634,
1258 "src": "1335:4:18",
1259 "typeDescriptions": {
1260 "typeIdentifier": "t_bytes32",
1261 "typeString": "bytes32"
1262 }
1263 },
1264 "nodeType": "BinaryOperation",
1265 "operator": "==",
1266 "rightExpression": {
1267 "argumentTypes": null,
1268 "arguments": [
1269 {
1270 "argumentTypes": null,
1271 "arguments": [
1272 {
1273 "argumentTypes": null,
1274 "id": 3646,
1275 "name": "spec1",
1276 "nodeType": "Identifier",
1277 "overloadedDeclarations": [],
1278 "referencedDeclaration": 3583,
1279 "src": "1370:5:18",
1280 "typeDescriptions": {
1281 "typeIdentifier": "t_bytes32",
1282 "typeString": "bytes32"
1283 }
1284 }
1285 ],
1286 "expression": {
1287 "argumentTypes": [
1288 {
1289 "typeIdentifier": "t_bytes32",
1290 "typeString": "bytes32"
1291 }
1292 ],
1293 "expression": {
1294 "argumentTypes": null,
1295 "id": 3644,
1296 "name": "abi",
1297 "nodeType": "Identifier",
1298 "overloadedDeclarations": [],
1299 "referencedDeclaration": 12079,
1300 "src": "1353:3:18",
1301 "typeDescriptions": {
1302 "typeIdentifier": "t_magic_abi",
1303 "typeString": "abi"
1304 }
1305 },
1306 "id": 3645,
1307 "isConstant": false,
1308 "isLValue": false,
1309 "isPure": true,
1310 "lValueRequested": false,
1311 "memberName": "encodePacked",
1312 "nodeType": "MemberAccess",
1313 "referencedDeclaration": null,
1314 "src": "1353:16:18",
1315 "typeDescriptions": {
1316 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
1317 "typeString": "function () pure returns (bytes memory)"
1318 }
1319 },
1320 "id": 3647,
1321 "isConstant": false,
1322 "isLValue": false,
1323 "isPure": false,
1324 "kind": "functionCall",
1325 "lValueRequested": false,
1326 "names": [],
1327 "nodeType": "FunctionCall",
1328 "src": "1353:23:18",
1329 "typeDescriptions": {
1330 "typeIdentifier": "t_bytes_memory_ptr",
1331 "typeString": "bytes memory"
1332 }
1333 }
1334 ],
1335 "expression": {
1336 "argumentTypes": [
1337 {
1338 "typeIdentifier": "t_bytes_memory_ptr",
1339 "typeString": "bytes memory"
1340 }
1341 ],
1342 "id": 3643,
1343 "name": "keccak256",
1344 "nodeType": "Identifier",
1345 "overloadedDeclarations": [],
1346 "referencedDeclaration": 12086,
1347 "src": "1343:9:18",
1348 "typeDescriptions": {
1349 "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
1350 "typeString": "function () pure returns (bytes32)"
1351 }
1352 },
1353 "id": 3648,
1354 "isConstant": false,
1355 "isLValue": false,
1356 "isPure": false,
1357 "kind": "functionCall",
1358 "lValueRequested": false,
1359 "names": [],
1360 "nodeType": "FunctionCall",
1361 "src": "1343:34:18",
1362 "typeDescriptions": {
1363 "typeIdentifier": "t_bytes32",
1364 "typeString": "bytes32"
1365 }
1366 },
1367 "src": "1335:42:18",
1368 "typeDescriptions": {
1369 "typeIdentifier": "t_bool",
1370 "typeString": "bool"
1371 }
1372 },
1373 "falseBody": {
1374 "condition": {
1375 "argumentTypes": null,
1376 "commonType": {
1377 "typeIdentifier": "t_bytes32",
1378 "typeString": "bytes32"
1379 },
1380 "id": 3664,
1381 "isConstant": false,
1382 "isLValue": false,
1383 "isPure": false,
1384 "lValueRequested": false,
1385 "leftExpression": {
1386 "argumentTypes": null,
1387 "id": 3657,
1388 "name": "hash",
1389 "nodeType": "Identifier",
1390 "overloadedDeclarations": [],
1391 "referencedDeclaration": 3634,
1392 "src": "1461:4:18",
1393 "typeDescriptions": {
1394 "typeIdentifier": "t_bytes32",
1395 "typeString": "bytes32"
1396 }
1397 },
1398 "nodeType": "BinaryOperation",
1399 "operator": "==",
1400 "rightExpression": {
1401 "argumentTypes": null,
1402 "arguments": [
1403 {
1404 "argumentTypes": null,
1405 "arguments": [
1406 {
1407 "argumentTypes": null,
1408 "id": 3661,
1409 "name": "spec2",
1410 "nodeType": "Identifier",
1411 "overloadedDeclarations": [],
1412 "referencedDeclaration": 3586,
1413 "src": "1496:5:18",
1414 "typeDescriptions": {
1415 "typeIdentifier": "t_bytes32",
1416 "typeString": "bytes32"
1417 }
1418 }
1419 ],
1420 "expression": {
1421 "argumentTypes": [
1422 {
1423 "typeIdentifier": "t_bytes32",
1424 "typeString": "bytes32"
1425 }
1426 ],
1427 "expression": {
1428 "argumentTypes": null,
1429 "id": 3659,
1430 "name": "abi",
1431 "nodeType": "Identifier",
1432 "overloadedDeclarations": [],
1433 "referencedDeclaration": 12079,
1434 "src": "1479:3:18",
1435 "typeDescriptions": {
1436 "typeIdentifier": "t_magic_abi",
1437 "typeString": "abi"
1438 }
1439 },
1440 "id": 3660,
1441 "isConstant": false,
1442 "isLValue": false,
1443 "isPure": true,
1444 "lValueRequested": false,
1445 "memberName": "encodePacked",
1446 "nodeType": "MemberAccess",
1447 "referencedDeclaration": null,
1448 "src": "1479:16:18",
1449 "typeDescriptions": {
1450 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
1451 "typeString": "function () pure returns (bytes memory)"
1452 }
1453 },
1454 "id": 3662,
1455 "isConstant": false,
1456 "isLValue": false,
1457 "isPure": false,
1458 "kind": "functionCall",
1459 "lValueRequested": false,
1460 "names": [],
1461 "nodeType": "FunctionCall",
1462 "src": "1479:23:18",
1463 "typeDescriptions": {
1464 "typeIdentifier": "t_bytes_memory_ptr",
1465 "typeString": "bytes memory"
1466 }
1467 }
1468 ],
1469 "expression": {
1470 "argumentTypes": [
1471 {
1472 "typeIdentifier": "t_bytes_memory_ptr",
1473 "typeString": "bytes memory"
1474 }
1475 ],
1476 "id": 3658,
1477 "name": "keccak256",
1478 "nodeType": "Identifier",
1479 "overloadedDeclarations": [],
1480 "referencedDeclaration": 12086,
1481 "src": "1469:9:18",
1482 "typeDescriptions": {
1483 "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
1484 "typeString": "function () pure returns (bytes32)"
1485 }
1486 },
1487 "id": 3663,
1488 "isConstant": false,
1489 "isLValue": false,
1490 "isPure": false,
1491 "kind": "functionCall",
1492 "lValueRequested": false,
1493 "names": [],
1494 "nodeType": "FunctionCall",
1495 "src": "1469:34:18",
1496 "typeDescriptions": {
1497 "typeIdentifier": "t_bytes32",
1498 "typeString": "bytes32"
1499 }
1500 },
1501 "src": "1461:42:18",
1502 "typeDescriptions": {
1503 "typeIdentifier": "t_bool",
1504 "typeString": "bool"
1505 }
1506 },
1507 "falseBody": {
1508 "condition": {
1509 "argumentTypes": null,
1510 "commonType": {
1511 "typeIdentifier": "t_bytes32",
1512 "typeString": "bytes32"
1513 },
1514 "id": 3679,
1515 "isConstant": false,
1516 "isLValue": false,
1517 "isPure": false,
1518 "lValueRequested": false,
1519 "leftExpression": {
1520 "argumentTypes": null,
1521 "id": 3672,
1522 "name": "hash",
1523 "nodeType": "Identifier",
1524 "overloadedDeclarations": [],
1525 "referencedDeclaration": 3634,
1526 "src": "1587:4:18",
1527 "typeDescriptions": {
1528 "typeIdentifier": "t_bytes32",
1529 "typeString": "bytes32"
1530 }
1531 },
1532 "nodeType": "BinaryOperation",
1533 "operator": "==",
1534 "rightExpression": {
1535 "argumentTypes": null,
1536 "arguments": [
1537 {
1538 "argumentTypes": null,
1539 "arguments": [
1540 {
1541 "argumentTypes": null,
1542 "id": 3676,
1543 "name": "spec3",
1544 "nodeType": "Identifier",
1545 "overloadedDeclarations": [],
1546 "referencedDeclaration": 3589,
1547 "src": "1622:5:18",
1548 "typeDescriptions": {
1549 "typeIdentifier": "t_bytes32",
1550 "typeString": "bytes32"
1551 }
1552 }
1553 ],
1554 "expression": {
1555 "argumentTypes": [
1556 {
1557 "typeIdentifier": "t_bytes32",
1558 "typeString": "bytes32"
1559 }
1560 ],
1561 "expression": {
1562 "argumentTypes": null,
1563 "id": 3674,
1564 "name": "abi",
1565 "nodeType": "Identifier",
1566 "overloadedDeclarations": [],
1567 "referencedDeclaration": 12079,
1568 "src": "1605:3:18",
1569 "typeDescriptions": {
1570 "typeIdentifier": "t_magic_abi",
1571 "typeString": "abi"
1572 }
1573 },
1574 "id": 3675,
1575 "isConstant": false,
1576 "isLValue": false,
1577 "isPure": true,
1578 "lValueRequested": false,
1579 "memberName": "encodePacked",
1580 "nodeType": "MemberAccess",
1581 "referencedDeclaration": null,
1582 "src": "1605:16:18",
1583 "typeDescriptions": {
1584 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
1585 "typeString": "function () pure returns (bytes memory)"
1586 }
1587 },
1588 "id": 3677,
1589 "isConstant": false,
1590 "isLValue": false,
1591 "isPure": false,
1592 "kind": "functionCall",
1593 "lValueRequested": false,
1594 "names": [],
1595 "nodeType": "FunctionCall",
1596 "src": "1605:23:18",
1597 "typeDescriptions": {
1598 "typeIdentifier": "t_bytes_memory_ptr",
1599 "typeString": "bytes memory"
1600 }
1601 }
1602 ],
1603 "expression": {
1604 "argumentTypes": [
1605 {
1606 "typeIdentifier": "t_bytes_memory_ptr",
1607 "typeString": "bytes memory"
1608 }
1609 ],
1610 "id": 3673,
1611 "name": "keccak256",
1612 "nodeType": "Identifier",
1613 "overloadedDeclarations": [],
1614 "referencedDeclaration": 12086,
1615 "src": "1595:9:18",
1616 "typeDescriptions": {
1617 "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
1618 "typeString": "function () pure returns (bytes32)"
1619 }
1620 },
1621 "id": 3678,
1622 "isConstant": false,
1623 "isLValue": false,
1624 "isPure": false,
1625 "kind": "functionCall",
1626 "lValueRequested": false,
1627 "names": [],
1628 "nodeType": "FunctionCall",
1629 "src": "1595:34:18",
1630 "typeDescriptions": {
1631 "typeIdentifier": "t_bytes32",
1632 "typeString": "bytes32"
1633 }
1634 },
1635 "src": "1587:42:18",
1636 "typeDescriptions": {
1637 "typeIdentifier": "t_bool",
1638 "typeString": "bool"
1639 }
1640 },
1641 "falseBody": {
1642 "condition": {
1643 "argumentTypes": null,
1644 "commonType": {
1645 "typeIdentifier": "t_bytes32",
1646 "typeString": "bytes32"
1647 },
1648 "id": 3694,
1649 "isConstant": false,
1650 "isLValue": false,
1651 "isPure": false,
1652 "lValueRequested": false,
1653 "leftExpression": {
1654 "argumentTypes": null,
1655 "id": 3687,
1656 "name": "hash",
1657 "nodeType": "Identifier",
1658 "overloadedDeclarations": [],
1659 "referencedDeclaration": 3634,
1660 "src": "1713:4:18",
1661 "typeDescriptions": {
1662 "typeIdentifier": "t_bytes32",
1663 "typeString": "bytes32"
1664 }
1665 },
1666 "nodeType": "BinaryOperation",
1667 "operator": "==",
1668 "rightExpression": {
1669 "argumentTypes": null,
1670 "arguments": [
1671 {
1672 "argumentTypes": null,
1673 "arguments": [
1674 {
1675 "argumentTypes": null,
1676 "id": 3691,
1677 "name": "spec4",
1678 "nodeType": "Identifier",
1679 "overloadedDeclarations": [],
1680 "referencedDeclaration": 3592,
1681 "src": "1748:5:18",
1682 "typeDescriptions": {
1683 "typeIdentifier": "t_bytes32",
1684 "typeString": "bytes32"
1685 }
1686 }
1687 ],
1688 "expression": {
1689 "argumentTypes": [
1690 {
1691 "typeIdentifier": "t_bytes32",
1692 "typeString": "bytes32"
1693 }
1694 ],
1695 "expression": {
1696 "argumentTypes": null,
1697 "id": 3689,
1698 "name": "abi",
1699 "nodeType": "Identifier",
1700 "overloadedDeclarations": [],
1701 "referencedDeclaration": 12079,
1702 "src": "1731:3:18",
1703 "typeDescriptions": {
1704 "typeIdentifier": "t_magic_abi",
1705 "typeString": "abi"
1706 }
1707 },
1708 "id": 3690,
1709 "isConstant": false,
1710 "isLValue": false,
1711 "isPure": true,
1712 "lValueRequested": false,
1713 "memberName": "encodePacked",
1714 "nodeType": "MemberAccess",
1715 "referencedDeclaration": null,
1716 "src": "1731:16:18",
1717 "typeDescriptions": {
1718 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
1719 "typeString": "function () pure returns (bytes memory)"
1720 }
1721 },
1722 "id": 3692,
1723 "isConstant": false,
1724 "isLValue": false,
1725 "isPure": false,
1726 "kind": "functionCall",
1727 "lValueRequested": false,
1728 "names": [],
1729 "nodeType": "FunctionCall",
1730 "src": "1731:23:18",
1731 "typeDescriptions": {
1732 "typeIdentifier": "t_bytes_memory_ptr",
1733 "typeString": "bytes memory"
1734 }
1735 }
1736 ],
1737 "expression": {
1738 "argumentTypes": [
1739 {
1740 "typeIdentifier": "t_bytes_memory_ptr",
1741 "typeString": "bytes memory"
1742 }
1743 ],
1744 "id": 3688,
1745 "name": "keccak256",
1746 "nodeType": "Identifier",
1747 "overloadedDeclarations": [],
1748 "referencedDeclaration": 12086,
1749 "src": "1721:9:18",
1750 "typeDescriptions": {
1751 "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
1752 "typeString": "function () pure returns (bytes32)"
1753 }
1754 },
1755 "id": 3693,
1756 "isConstant": false,
1757 "isLValue": false,
1758 "isPure": false,
1759 "kind": "functionCall",
1760 "lValueRequested": false,
1761 "names": [],
1762 "nodeType": "FunctionCall",
1763 "src": "1721:34:18",
1764 "typeDescriptions": {
1765 "typeIdentifier": "t_bytes32",
1766 "typeString": "bytes32"
1767 }
1768 },
1769 "src": "1713:42:18",
1770 "typeDescriptions": {
1771 "typeIdentifier": "t_bool",
1772 "typeString": "bool"
1773 }
1774 },
1775 "falseBody": {
1776 "id": 3706,
1777 "nodeType": "Block",
1778 "src": "1835:59:18",
1779 "statements": [
1780 {
1781 "expression": {
1782 "argumentTypes": null,
1783 "arguments": [
1784 {
1785 "argumentTypes": null,
1786 "hexValue": "496e76616c696420656e64706f696e74",
1787 "id": 3703,
1788 "isConstant": false,
1789 "isLValue": false,
1790 "isPure": true,
1791 "kind": "string",
1792 "lValueRequested": false,
1793 "nodeType": "Literal",
1794 "src": "1860:18:18",
1795 "subdenomination": null,
1796 "typeDescriptions": {
1797 "typeIdentifier": "t_stringliteral_bc947d7e0e70d3c5da26b0576438605c56db95d6b14b534778e71dc822dec50f",
1798 "typeString": "literal_string \"Invalid endpoint\""
1799 },
1800 "value": "Invalid endpoint"
1801 }
1802 ],
1803 "expression": {
1804 "argumentTypes": [
1805 {
1806 "typeIdentifier": "t_stringliteral_bc947d7e0e70d3c5da26b0576438605c56db95d6b14b534778e71dc822dec50f",
1807 "typeString": "literal_string \"Invalid endpoint\""
1808 }
1809 ],
1810 "id": 3702,
1811 "name": "revert",
1812 "nodeType": "Identifier",
1813 "overloadedDeclarations": [
1814 12097,
1815 12098
1816 ],
1817 "referencedDeclaration": 12098,
1818 "src": "1853:6:18",
1819 "typeDescriptions": {
1820 "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
1821 "typeString": "function (string memory) pure"
1822 }
1823 },
1824 "id": 3704,
1825 "isConstant": false,
1826 "isLValue": false,
1827 "isPure": false,
1828 "kind": "functionCall",
1829 "lValueRequested": false,
1830 "names": [],
1831 "nodeType": "FunctionCall",
1832 "src": "1853:26:18",
1833 "typeDescriptions": {
1834 "typeIdentifier": "t_tuple$__$",
1835 "typeString": "tuple()"
1836 }
1837 },
1838 "id": 3705,
1839 "nodeType": "ExpressionStatement",
1840 "src": "1853:26:18"
1841 }
1842 ]
1843 },
1844 "id": 3707,
1845 "nodeType": "IfStatement",
1846 "src": "1709:185:18",
1847 "trueBody": {
1848 "id": 3701,
1849 "nodeType": "Block",
1850 "src": "1756:73:18",
1851 "statements": [
1852 {
1853 "expression": {
1854 "argumentTypes": null,
1855 "arguments": [
1856 {
1857 "argumentTypes": null,
1858 "id": 3696,
1859 "name": "id",
1860 "nodeType": "Identifier",
1861 "overloadedDeclarations": [],
1862 "referencedDeclaration": 3607,
1863 "src": "1784:2:18",
1864 "typeDescriptions": {
1865 "typeIdentifier": "t_uint256",
1866 "typeString": "uint256"
1867 }
1868 },
1869 {
1870 "argumentTypes": null,
1871 "id": 3697,
1872 "name": "userQuery",
1873 "nodeType": "Identifier",
1874 "overloadedDeclarations": [],
1875 "referencedDeclaration": 3609,
1876 "src": "1788:9:18",
1877 "typeDescriptions": {
1878 "typeIdentifier": "t_string_calldata_ptr",
1879 "typeString": "string calldata"
1880 }
1881 },
1882 {
1883 "argumentTypes": null,
1884 "id": 3698,
1885 "name": "endpointParams",
1886 "nodeType": "Identifier",
1887 "overloadedDeclarations": [],
1888 "referencedDeclaration": 3614,
1889 "src": "1799:14:18",
1890 "typeDescriptions": {
1891 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
1892 "typeString": "bytes32[] calldata"
1893 }
1894 }
1895 ],
1896 "expression": {
1897 "argumentTypes": [
1898 {
1899 "typeIdentifier": "t_uint256",
1900 "typeString": "uint256"
1901 },
1902 {
1903 "typeIdentifier": "t_string_calldata_ptr",
1904 "typeString": "string calldata"
1905 },
1906 {
1907 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
1908 "typeString": "bytes32[] calldata"
1909 }
1910 ],
1911 "id": 3695,
1912 "name": "endpoint4",
1913 "nodeType": "Identifier",
1914 "overloadedDeclarations": [],
1915 "referencedDeclaration": 3939,
1916 "src": "1774:9:18",
1917 "typeDescriptions": {
1918 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
1919 "typeString": "function (uint256,string memory,bytes32[] memory)"
1920 }
1921 },
1922 "id": 3699,
1923 "isConstant": false,
1924 "isLValue": false,
1925 "isPure": false,
1926 "kind": "functionCall",
1927 "lValueRequested": false,
1928 "names": [],
1929 "nodeType": "FunctionCall",
1930 "src": "1774:40:18",
1931 "typeDescriptions": {
1932 "typeIdentifier": "t_tuple$__$",
1933 "typeString": "tuple()"
1934 }
1935 },
1936 "id": 3700,
1937 "nodeType": "ExpressionStatement",
1938 "src": "1774:40:18"
1939 }
1940 ]
1941 }
1942 },
1943 "id": 3708,
1944 "nodeType": "IfStatement",
1945 "src": "1583:311:18",
1946 "trueBody": {
1947 "id": 3686,
1948 "nodeType": "Block",
1949 "src": "1630:73:18",
1950 "statements": [
1951 {
1952 "expression": {
1953 "argumentTypes": null,
1954 "arguments": [
1955 {
1956 "argumentTypes": null,
1957 "id": 3681,
1958 "name": "id",
1959 "nodeType": "Identifier",
1960 "overloadedDeclarations": [],
1961 "referencedDeclaration": 3607,
1962 "src": "1658:2:18",
1963 "typeDescriptions": {
1964 "typeIdentifier": "t_uint256",
1965 "typeString": "uint256"
1966 }
1967 },
1968 {
1969 "argumentTypes": null,
1970 "id": 3682,
1971 "name": "userQuery",
1972 "nodeType": "Identifier",
1973 "overloadedDeclarations": [],
1974 "referencedDeclaration": 3609,
1975 "src": "1662:9:18",
1976 "typeDescriptions": {
1977 "typeIdentifier": "t_string_calldata_ptr",
1978 "typeString": "string calldata"
1979 }
1980 },
1981 {
1982 "argumentTypes": null,
1983 "id": 3683,
1984 "name": "endpointParams",
1985 "nodeType": "Identifier",
1986 "overloadedDeclarations": [],
1987 "referencedDeclaration": 3614,
1988 "src": "1673:14:18",
1989 "typeDescriptions": {
1990 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
1991 "typeString": "bytes32[] calldata"
1992 }
1993 }
1994 ],
1995 "expression": {
1996 "argumentTypes": [
1997 {
1998 "typeIdentifier": "t_uint256",
1999 "typeString": "uint256"
2000 },
2001 {
2002 "typeIdentifier": "t_string_calldata_ptr",
2003 "typeString": "string calldata"
2004 },
2005 {
2006 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
2007 "typeString": "bytes32[] calldata"
2008 }
2009 ],
2010 "id": 3680,
2011 "name": "endpoint3",
2012 "nodeType": "Identifier",
2013 "overloadedDeclarations": [],
2014 "referencedDeclaration": 3918,
2015 "src": "1648:9:18",
2016 "typeDescriptions": {
2017 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
2018 "typeString": "function (uint256,string memory,bytes32[] memory)"
2019 }
2020 },
2021 "id": 3684,
2022 "isConstant": false,
2023 "isLValue": false,
2024 "isPure": false,
2025 "kind": "functionCall",
2026 "lValueRequested": false,
2027 "names": [],
2028 "nodeType": "FunctionCall",
2029 "src": "1648:40:18",
2030 "typeDescriptions": {
2031 "typeIdentifier": "t_tuple$__$",
2032 "typeString": "tuple()"
2033 }
2034 },
2035 "id": 3685,
2036 "nodeType": "ExpressionStatement",
2037 "src": "1648:40:18"
2038 }
2039 ]
2040 }
2041 },
2042 "id": 3709,
2043 "nodeType": "IfStatement",
2044 "src": "1457:437:18",
2045 "trueBody": {
2046 "id": 3671,
2047 "nodeType": "Block",
2048 "src": "1504:73:18",
2049 "statements": [
2050 {
2051 "expression": {
2052 "argumentTypes": null,
2053 "arguments": [
2054 {
2055 "argumentTypes": null,
2056 "id": 3666,
2057 "name": "id",
2058 "nodeType": "Identifier",
2059 "overloadedDeclarations": [],
2060 "referencedDeclaration": 3607,
2061 "src": "1532:2:18",
2062 "typeDescriptions": {
2063 "typeIdentifier": "t_uint256",
2064 "typeString": "uint256"
2065 }
2066 },
2067 {
2068 "argumentTypes": null,
2069 "id": 3667,
2070 "name": "userQuery",
2071 "nodeType": "Identifier",
2072 "overloadedDeclarations": [],
2073 "referencedDeclaration": 3609,
2074 "src": "1536:9:18",
2075 "typeDescriptions": {
2076 "typeIdentifier": "t_string_calldata_ptr",
2077 "typeString": "string calldata"
2078 }
2079 },
2080 {
2081 "argumentTypes": null,
2082 "id": 3668,
2083 "name": "endpointParams",
2084 "nodeType": "Identifier",
2085 "overloadedDeclarations": [],
2086 "referencedDeclaration": 3614,
2087 "src": "1547:14:18",
2088 "typeDescriptions": {
2089 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
2090 "typeString": "bytes32[] calldata"
2091 }
2092 }
2093 ],
2094 "expression": {
2095 "argumentTypes": [
2096 {
2097 "typeIdentifier": "t_uint256",
2098 "typeString": "uint256"
2099 },
2100 {
2101 "typeIdentifier": "t_string_calldata_ptr",
2102 "typeString": "string calldata"
2103 },
2104 {
2105 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
2106 "typeString": "bytes32[] calldata"
2107 }
2108 ],
2109 "id": 3665,
2110 "name": "endpoint2",
2111 "nodeType": "Identifier",
2112 "overloadedDeclarations": [],
2113 "referencedDeclaration": 3851,
2114 "src": "1522:9:18",
2115 "typeDescriptions": {
2116 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
2117 "typeString": "function (uint256,string memory,bytes32[] memory)"
2118 }
2119 },
2120 "id": 3669,
2121 "isConstant": false,
2122 "isLValue": false,
2123 "isPure": false,
2124 "kind": "functionCall",
2125 "lValueRequested": false,
2126 "names": [],
2127 "nodeType": "FunctionCall",
2128 "src": "1522:40:18",
2129 "typeDescriptions": {
2130 "typeIdentifier": "t_tuple$__$",
2131 "typeString": "tuple()"
2132 }
2133 },
2134 "id": 3670,
2135 "nodeType": "ExpressionStatement",
2136 "src": "1522:40:18"
2137 }
2138 ]
2139 }
2140 },
2141 "id": 3710,
2142 "nodeType": "IfStatement",
2143 "src": "1332:562:18",
2144 "trueBody": {
2145 "id": 3656,
2146 "nodeType": "Block",
2147 "src": "1378:73:18",
2148 "statements": [
2149 {
2150 "expression": {
2151 "argumentTypes": null,
2152 "arguments": [
2153 {
2154 "argumentTypes": null,
2155 "id": 3651,
2156 "name": "id",
2157 "nodeType": "Identifier",
2158 "overloadedDeclarations": [],
2159 "referencedDeclaration": 3607,
2160 "src": "1406:2:18",
2161 "typeDescriptions": {
2162 "typeIdentifier": "t_uint256",
2163 "typeString": "uint256"
2164 }
2165 },
2166 {
2167 "argumentTypes": null,
2168 "id": 3652,
2169 "name": "userQuery",
2170 "nodeType": "Identifier",
2171 "overloadedDeclarations": [],
2172 "referencedDeclaration": 3609,
2173 "src": "1410:9:18",
2174 "typeDescriptions": {
2175 "typeIdentifier": "t_string_calldata_ptr",
2176 "typeString": "string calldata"
2177 }
2178 },
2179 {
2180 "argumentTypes": null,
2181 "id": 3653,
2182 "name": "endpointParams",
2183 "nodeType": "Identifier",
2184 "overloadedDeclarations": [],
2185 "referencedDeclaration": 3614,
2186 "src": "1421:14:18",
2187 "typeDescriptions": {
2188 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
2189 "typeString": "bytes32[] calldata"
2190 }
2191 }
2192 ],
2193 "expression": {
2194 "argumentTypes": [
2195 {
2196 "typeIdentifier": "t_uint256",
2197 "typeString": "uint256"
2198 },
2199 {
2200 "typeIdentifier": "t_string_calldata_ptr",
2201 "typeString": "string calldata"
2202 },
2203 {
2204 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
2205 "typeString": "bytes32[] calldata"
2206 }
2207 ],
2208 "id": 3650,
2209 "name": "endpoint1",
2210 "nodeType": "Identifier",
2211 "overloadedDeclarations": [],
2212 "referencedDeclaration": 3825,
2213 "src": "1396:9:18",
2214 "typeDescriptions": {
2215 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
2216 "typeString": "function (uint256,string memory,bytes32[] memory)"
2217 }
2218 },
2219 "id": 3654,
2220 "isConstant": false,
2221 "isLValue": false,
2222 "isPure": false,
2223 "kind": "functionCall",
2224 "lValueRequested": false,
2225 "names": [],
2226 "nodeType": "FunctionCall",
2227 "src": "1396:40:18",
2228 "typeDescriptions": {
2229 "typeIdentifier": "t_tuple$__$",
2230 "typeString": "tuple()"
2231 }
2232 },
2233 "id": 3655,
2234 "nodeType": "ExpressionStatement",
2235 "src": "1396:40:18"
2236 }
2237 ]
2238 }
2239 }
2240 ]
2241 }
2242 }
2243 ]
2244 },
2245 "documentation": null,
2246 "id": 3714,
2247 "implemented": true,
2248 "isConstructor": false,
2249 "isDeclaredConst": false,
2250 "modifiers": [],
2251 "name": "receive",
2252 "nodeType": "FunctionDefinition",
2253 "parameters": {
2254 "id": 3617,
2255 "nodeType": "ParameterList",
2256 "parameters": [
2257 {
2258 "constant": false,
2259 "id": 3607,
2260 "name": "id",
2261 "nodeType": "VariableDeclaration",
2262 "scope": 3714,
2263 "src": "972:10:18",
2264 "stateVariable": false,
2265 "storageLocation": "default",
2266 "typeDescriptions": {
2267 "typeIdentifier": "t_uint256",
2268 "typeString": "uint256"
2269 },
2270 "typeName": {
2271 "id": 3606,
2272 "name": "uint256",
2273 "nodeType": "ElementaryTypeName",
2274 "src": "972:7:18",
2275 "typeDescriptions": {
2276 "typeIdentifier": "t_uint256",
2277 "typeString": "uint256"
2278 }
2279 },
2280 "value": null,
2281 "visibility": "internal"
2282 },
2283 {
2284 "constant": false,
2285 "id": 3609,
2286 "name": "userQuery",
2287 "nodeType": "VariableDeclaration",
2288 "scope": 3714,
2289 "src": "984:16:18",
2290 "stateVariable": false,
2291 "storageLocation": "default",
2292 "typeDescriptions": {
2293 "typeIdentifier": "t_string_calldata_ptr",
2294 "typeString": "string"
2295 },
2296 "typeName": {
2297 "id": 3608,
2298 "name": "string",
2299 "nodeType": "ElementaryTypeName",
2300 "src": "984:6:18",
2301 "typeDescriptions": {
2302 "typeIdentifier": "t_string_storage_ptr",
2303 "typeString": "string"
2304 }
2305 },
2306 "value": null,
2307 "visibility": "internal"
2308 },
2309 {
2310 "constant": false,
2311 "id": 3611,
2312 "name": "endpoint",
2313 "nodeType": "VariableDeclaration",
2314 "scope": 3714,
2315 "src": "1002:16:18",
2316 "stateVariable": false,
2317 "storageLocation": "default",
2318 "typeDescriptions": {
2319 "typeIdentifier": "t_bytes32",
2320 "typeString": "bytes32"
2321 },
2322 "typeName": {
2323 "id": 3610,
2324 "name": "bytes32",
2325 "nodeType": "ElementaryTypeName",
2326 "src": "1002:7:18",
2327 "typeDescriptions": {
2328 "typeIdentifier": "t_bytes32",
2329 "typeString": "bytes32"
2330 }
2331 },
2332 "value": null,
2333 "visibility": "internal"
2334 },
2335 {
2336 "constant": false,
2337 "id": 3614,
2338 "name": "endpointParams",
2339 "nodeType": "VariableDeclaration",
2340 "scope": 3714,
2341 "src": "1020:24:18",
2342 "stateVariable": false,
2343 "storageLocation": "default",
2344 "typeDescriptions": {
2345 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
2346 "typeString": "bytes32[]"
2347 },
2348 "typeName": {
2349 "baseType": {
2350 "id": 3612,
2351 "name": "bytes32",
2352 "nodeType": "ElementaryTypeName",
2353 "src": "1020:7:18",
2354 "typeDescriptions": {
2355 "typeIdentifier": "t_bytes32",
2356 "typeString": "bytes32"
2357 }
2358 },
2359 "id": 3613,
2360 "length": null,
2361 "nodeType": "ArrayTypeName",
2362 "src": "1020:9:18",
2363 "typeDescriptions": {
2364 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2365 "typeString": "bytes32[]"
2366 }
2367 },
2368 "value": null,
2369 "visibility": "internal"
2370 },
2371 {
2372 "constant": false,
2373 "id": 3616,
2374 "name": "onchainSubscriber",
2375 "nodeType": "VariableDeclaration",
2376 "scope": 3714,
2377 "src": "1046:22:18",
2378 "stateVariable": false,
2379 "storageLocation": "default",
2380 "typeDescriptions": {
2381 "typeIdentifier": "t_bool",
2382 "typeString": "bool"
2383 },
2384 "typeName": {
2385 "id": 3615,
2386 "name": "bool",
2387 "nodeType": "ElementaryTypeName",
2388 "src": "1046:4:18",
2389 "typeDescriptions": {
2390 "typeIdentifier": "t_bool",
2391 "typeString": "bool"
2392 }
2393 },
2394 "value": null,
2395 "visibility": "internal"
2396 }
2397 ],
2398 "src": "971:98:18"
2399 },
2400 "payable": false,
2401 "returnParameters": {
2402 "id": 3618,
2403 "nodeType": "ParameterList",
2404 "parameters": [],
2405 "src": "1079:0:18"
2406 },
2407 "scope": 4057,
2408 "src": "955:990:18",
2409 "stateMutability": "nonpayable",
2410 "superFunction": 1825,
2411 "visibility": "external"
2412 },
2413 {
2414 "body": {
2415 "id": 3804,
2416 "nodeType": "Block",
2417 "src": "2006:590:18",
2418 "statements": [
2419 {
2420 "expression": {
2421 "argumentTypes": null,
2422 "id": 3725,
2423 "isConstant": false,
2424 "isLValue": false,
2425 "isPure": false,
2426 "lValueRequested": false,
2427 "leftHandSide": {
2428 "argumentTypes": null,
2429 "id": 3721,
2430 "name": "registry",
2431 "nodeType": "Identifier",
2432 "overloadedDeclarations": [],
2433 "referencedDeclaration": 3605,
2434 "src": "2016:8:18",
2435 "typeDescriptions": {
2436 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
2437 "typeString": "contract RegistryInterface"
2438 }
2439 },
2440 "nodeType": "Assignment",
2441 "operator": "=",
2442 "rightHandSide": {
2443 "argumentTypes": null,
2444 "arguments": [
2445 {
2446 "argumentTypes": null,
2447 "id": 3723,
2448 "name": "registryAddress",
2449 "nodeType": "Identifier",
2450 "overloadedDeclarations": [],
2451 "referencedDeclaration": 3716,
2452 "src": "2045:15:18",
2453 "typeDescriptions": {
2454 "typeIdentifier": "t_address",
2455 "typeString": "address"
2456 }
2457 }
2458 ],
2459 "expression": {
2460 "argumentTypes": [
2461 {
2462 "typeIdentifier": "t_address",
2463 "typeString": "address"
2464 }
2465 ],
2466 "id": 3722,
2467 "name": "RegistryInterface",
2468 "nodeType": "Identifier",
2469 "overloadedDeclarations": [],
2470 "referencedDeclaration": 11303,
2471 "src": "2027:17:18",
2472 "typeDescriptions": {
2473 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
2474 "typeString": "type(contract RegistryInterface)"
2475 }
2476 },
2477 "id": 3724,
2478 "isConstant": false,
2479 "isLValue": false,
2480 "isPure": false,
2481 "kind": "typeConversion",
2482 "lValueRequested": false,
2483 "names": [],
2484 "nodeType": "FunctionCall",
2485 "src": "2027:34:18",
2486 "typeDescriptions": {
2487 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
2488 "typeString": "contract RegistryInterface"
2489 }
2490 },
2491 "src": "2016:45:18",
2492 "typeDescriptions": {
2493 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
2494 "typeString": "contract RegistryInterface"
2495 }
2496 },
2497 "id": 3726,
2498 "nodeType": "ExpressionStatement",
2499 "src": "2016:45:18"
2500 },
2501 {
2502 "expression": {
2503 "argumentTypes": null,
2504 "id": 3729,
2505 "isConstant": false,
2506 "isLValue": false,
2507 "isPure": false,
2508 "lValueRequested": false,
2509 "leftHandSide": {
2510 "argumentTypes": null,
2511 "id": 3727,
2512 "name": "AM_A_BAD_ORACLE",
2513 "nodeType": "Identifier",
2514 "overloadedDeclarations": [],
2515 "referencedDeclaration": 3594,
2516 "src": "2071:15:18",
2517 "typeDescriptions": {
2518 "typeIdentifier": "t_bool",
2519 "typeString": "bool"
2520 }
2521 },
2522 "nodeType": "Assignment",
2523 "operator": "=",
2524 "rightHandSide": {
2525 "argumentTypes": null,
2526 "id": 3728,
2527 "name": "isBad",
2528 "nodeType": "Identifier",
2529 "overloadedDeclarations": [],
2530 "referencedDeclaration": 3718,
2531 "src": "2089:5:18",
2532 "typeDescriptions": {
2533 "typeIdentifier": "t_bool",
2534 "typeString": "bool"
2535 }
2536 },
2537 "src": "2071:23:18",
2538 "typeDescriptions": {
2539 "typeIdentifier": "t_bool",
2540 "typeString": "bool"
2541 }
2542 },
2543 "id": 3730,
2544 "nodeType": "ExpressionStatement",
2545 "src": "2071:23:18"
2546 },
2547 {
2548 "assignments": [
2549 3732
2550 ],
2551 "declarations": [
2552 {
2553 "constant": false,
2554 "id": 3732,
2555 "name": "title",
2556 "nodeType": "VariableDeclaration",
2557 "scope": 3805,
2558 "src": "2139:13:18",
2559 "stateVariable": false,
2560 "storageLocation": "default",
2561 "typeDescriptions": {
2562 "typeIdentifier": "t_bytes32",
2563 "typeString": "bytes32"
2564 },
2565 "typeName": {
2566 "id": 3731,
2567 "name": "bytes32",
2568 "nodeType": "ElementaryTypeName",
2569 "src": "2139:7:18",
2570 "typeDescriptions": {
2571 "typeIdentifier": "t_bytes32",
2572 "typeString": "bytes32"
2573 }
2574 },
2575 "value": null,
2576 "visibility": "internal"
2577 }
2578 ],
2579 "id": 3734,
2580 "initialValue": {
2581 "argumentTypes": null,
2582 "hexValue": "54657374436f6e7472616374",
2583 "id": 3733,
2584 "isConstant": false,
2585 "isLValue": false,
2586 "isPure": true,
2587 "kind": "string",
2588 "lValueRequested": false,
2589 "nodeType": "Literal",
2590 "src": "2155:14:18",
2591 "subdenomination": null,
2592 "typeDescriptions": {
2593 "typeIdentifier": "t_stringliteral_a73e27b0b49bbadc47ee3a6b9956ab629edb7504b8133dc977c578ee563c5c84",
2594 "typeString": "literal_string \"TestContract\""
2595 },
2596 "value": "TestContract"
2597 },
2598 "nodeType": "VariableDeclarationStatement",
2599 "src": "2139:30:18"
2600 },
2601 {
2602 "assignments": [
2603 3738
2604 ],
2605 "declarations": [
2606 {
2607 "constant": false,
2608 "id": 3738,
2609 "name": "params",
2610 "nodeType": "VariableDeclaration",
2611 "scope": 3805,
2612 "src": "2180:23:18",
2613 "stateVariable": false,
2614 "storageLocation": "memory",
2615 "typeDescriptions": {
2616 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
2617 "typeString": "bytes32[]"
2618 },
2619 "typeName": {
2620 "baseType": {
2621 "id": 3736,
2622 "name": "bytes32",
2623 "nodeType": "ElementaryTypeName",
2624 "src": "2180:7:18",
2625 "typeDescriptions": {
2626 "typeIdentifier": "t_bytes32",
2627 "typeString": "bytes32"
2628 }
2629 },
2630 "id": 3737,
2631 "length": null,
2632 "nodeType": "ArrayTypeName",
2633 "src": "2180:9:18",
2634 "typeDescriptions": {
2635 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2636 "typeString": "bytes32[]"
2637 }
2638 },
2639 "value": null,
2640 "visibility": "internal"
2641 }
2642 ],
2643 "id": 3744,
2644 "initialValue": {
2645 "argumentTypes": null,
2646 "arguments": [
2647 {
2648 "argumentTypes": null,
2649 "hexValue": "32",
2650 "id": 3742,
2651 "isConstant": false,
2652 "isLValue": false,
2653 "isPure": true,
2654 "kind": "number",
2655 "lValueRequested": false,
2656 "nodeType": "Literal",
2657 "src": "2220:1:18",
2658 "subdenomination": null,
2659 "typeDescriptions": {
2660 "typeIdentifier": "t_rational_2_by_1",
2661 "typeString": "int_const 2"
2662 },
2663 "value": "2"
2664 }
2665 ],
2666 "expression": {
2667 "argumentTypes": [
2668 {
2669 "typeIdentifier": "t_rational_2_by_1",
2670 "typeString": "int_const 2"
2671 }
2672 ],
2673 "id": 3741,
2674 "isConstant": false,
2675 "isLValue": false,
2676 "isPure": true,
2677 "lValueRequested": false,
2678 "nodeType": "NewExpression",
2679 "src": "2206:13:18",
2680 "typeDescriptions": {
2681 "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
2682 "typeString": "function (uint256) pure returns (bytes32[] memory)"
2683 },
2684 "typeName": {
2685 "baseType": {
2686 "id": 3739,
2687 "name": "bytes32",
2688 "nodeType": "ElementaryTypeName",
2689 "src": "2210:7:18",
2690 "typeDescriptions": {
2691 "typeIdentifier": "t_bytes32",
2692 "typeString": "bytes32"
2693 }
2694 },
2695 "id": 3740,
2696 "length": null,
2697 "nodeType": "ArrayTypeName",
2698 "src": "2210:9:18",
2699 "typeDescriptions": {
2700 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2701 "typeString": "bytes32[]"
2702 }
2703 }
2704 },
2705 "id": 3743,
2706 "isConstant": false,
2707 "isLValue": false,
2708 "isPure": true,
2709 "kind": "functionCall",
2710 "lValueRequested": false,
2711 "names": [],
2712 "nodeType": "FunctionCall",
2713 "src": "2206:16:18",
2714 "typeDescriptions": {
2715 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
2716 "typeString": "bytes32[] memory"
2717 }
2718 },
2719 "nodeType": "VariableDeclarationStatement",
2720 "src": "2180:42:18"
2721 },
2722 {
2723 "expression": {
2724 "argumentTypes": null,
2725 "id": 3749,
2726 "isConstant": false,
2727 "isLValue": false,
2728 "isPure": false,
2729 "lValueRequested": false,
2730 "leftHandSide": {
2731 "argumentTypes": null,
2732 "baseExpression": {
2733 "argumentTypes": null,
2734 "id": 3745,
2735 "name": "params",
2736 "nodeType": "Identifier",
2737 "overloadedDeclarations": [],
2738 "referencedDeclaration": 3738,
2739 "src": "2232:6:18",
2740 "typeDescriptions": {
2741 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
2742 "typeString": "bytes32[] memory"
2743 }
2744 },
2745 "id": 3747,
2746 "indexExpression": {
2747 "argumentTypes": null,
2748 "hexValue": "30",
2749 "id": 3746,
2750 "isConstant": false,
2751 "isLValue": false,
2752 "isPure": true,
2753 "kind": "number",
2754 "lValueRequested": false,
2755 "nodeType": "Literal",
2756 "src": "2239:1:18",
2757 "subdenomination": null,
2758 "typeDescriptions": {
2759 "typeIdentifier": "t_rational_0_by_1",
2760 "typeString": "int_const 0"
2761 },
2762 "value": "0"
2763 },
2764 "isConstant": false,
2765 "isLValue": true,
2766 "isPure": false,
2767 "lValueRequested": true,
2768 "nodeType": "IndexAccess",
2769 "src": "2232:9:18",
2770 "typeDescriptions": {
2771 "typeIdentifier": "t_bytes32",
2772 "typeString": "bytes32"
2773 }
2774 },
2775 "nodeType": "Assignment",
2776 "operator": "=",
2777 "rightHandSide": {
2778 "argumentTypes": null,
2779 "hexValue": "7031",
2780 "id": 3748,
2781 "isConstant": false,
2782 "isLValue": false,
2783 "isPure": true,
2784 "kind": "string",
2785 "lValueRequested": false,
2786 "nodeType": "Literal",
2787 "src": "2244:4:18",
2788 "subdenomination": null,
2789 "typeDescriptions": {
2790 "typeIdentifier": "t_stringliteral_260e065801cba6ca065f28640c3d94ef235f67db5431448aae1a51af7214efaf",
2791 "typeString": "literal_string \"p1\""
2792 },
2793 "value": "p1"
2794 },
2795 "src": "2232:16:18",
2796 "typeDescriptions": {
2797 "typeIdentifier": "t_bytes32",
2798 "typeString": "bytes32"
2799 }
2800 },
2801 "id": 3750,
2802 "nodeType": "ExpressionStatement",
2803 "src": "2232:16:18"
2804 },
2805 {
2806 "expression": {
2807 "argumentTypes": null,
2808 "id": 3755,
2809 "isConstant": false,
2810 "isLValue": false,
2811 "isPure": false,
2812 "lValueRequested": false,
2813 "leftHandSide": {
2814 "argumentTypes": null,
2815 "baseExpression": {
2816 "argumentTypes": null,
2817 "id": 3751,
2818 "name": "params",
2819 "nodeType": "Identifier",
2820 "overloadedDeclarations": [],
2821 "referencedDeclaration": 3738,
2822 "src": "2258:6:18",
2823 "typeDescriptions": {
2824 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
2825 "typeString": "bytes32[] memory"
2826 }
2827 },
2828 "id": 3753,
2829 "indexExpression": {
2830 "argumentTypes": null,
2831 "hexValue": "31",
2832 "id": 3752,
2833 "isConstant": false,
2834 "isLValue": false,
2835 "isPure": true,
2836 "kind": "number",
2837 "lValueRequested": false,
2838 "nodeType": "Literal",
2839 "src": "2265:1:18",
2840 "subdenomination": null,
2841 "typeDescriptions": {
2842 "typeIdentifier": "t_rational_1_by_1",
2843 "typeString": "int_const 1"
2844 },
2845 "value": "1"
2846 },
2847 "isConstant": false,
2848 "isLValue": true,
2849 "isPure": false,
2850 "lValueRequested": true,
2851 "nodeType": "IndexAccess",
2852 "src": "2258:9:18",
2853 "typeDescriptions": {
2854 "typeIdentifier": "t_bytes32",
2855 "typeString": "bytes32"
2856 }
2857 },
2858 "nodeType": "Assignment",
2859 "operator": "=",
2860 "rightHandSide": {
2861 "argumentTypes": null,
2862 "hexValue": "7032",
2863 "id": 3754,
2864 "isConstant": false,
2865 "isLValue": false,
2866 "isPure": true,
2867 "kind": "string",
2868 "lValueRequested": false,
2869 "nodeType": "Literal",
2870 "src": "2270:4:18",
2871 "subdenomination": null,
2872 "typeDescriptions": {
2873 "typeIdentifier": "t_stringliteral_c30a3ae685bfcb917dceb41e4afed5342f332572d5b3a8212679077685c494cb",
2874 "typeString": "literal_string \"p2\""
2875 },
2876 "value": "p2"
2877 },
2878 "src": "2258:16:18",
2879 "typeDescriptions": {
2880 "typeIdentifier": "t_bytes32",
2881 "typeString": "bytes32"
2882 }
2883 },
2884 "id": 3756,
2885 "nodeType": "ExpressionStatement",
2886 "src": "2258:16:18"
2887 },
2888 {
2889 "expression": {
2890 "argumentTypes": null,
2891 "arguments": [
2892 {
2893 "argumentTypes": null,
2894 "hexValue": "3132333435",
2895 "id": 3760,
2896 "isConstant": false,
2897 "isLValue": false,
2898 "isPure": true,
2899 "kind": "number",
2900 "lValueRequested": false,
2901 "nodeType": "Literal",
2902 "src": "2311:5:18",
2903 "subdenomination": null,
2904 "typeDescriptions": {
2905 "typeIdentifier": "t_rational_12345_by_1",
2906 "typeString": "int_const 12345"
2907 },
2908 "value": "12345"
2909 },
2910 {
2911 "argumentTypes": null,
2912 "id": 3761,
2913 "name": "title",
2914 "nodeType": "Identifier",
2915 "overloadedDeclarations": [],
2916 "referencedDeclaration": 3732,
2917 "src": "2318:5:18",
2918 "typeDescriptions": {
2919 "typeIdentifier": "t_bytes32",
2920 "typeString": "bytes32"
2921 }
2922 }
2923 ],
2924 "expression": {
2925 "argumentTypes": [
2926 {
2927 "typeIdentifier": "t_rational_12345_by_1",
2928 "typeString": "int_const 12345"
2929 },
2930 {
2931 "typeIdentifier": "t_bytes32",
2932 "typeString": "bytes32"
2933 }
2934 ],
2935 "expression": {
2936 "argumentTypes": null,
2937 "id": 3757,
2938 "name": "registry",
2939 "nodeType": "Identifier",
2940 "overloadedDeclarations": [],
2941 "referencedDeclaration": 3605,
2942 "src": "2285:8:18",
2943 "typeDescriptions": {
2944 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
2945 "typeString": "contract RegistryInterface"
2946 }
2947 },
2948 "id": 3759,
2949 "isConstant": false,
2950 "isLValue": false,
2951 "isPure": false,
2952 "lValueRequested": false,
2953 "memberName": "initiateProvider",
2954 "nodeType": "MemberAccess",
2955 "referencedDeclaration": 11175,
2956 "src": "2285:25:18",
2957 "typeDescriptions": {
2958 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
2959 "typeString": "function (uint256,bytes32) external returns (bool)"
2960 }
2961 },
2962 "id": 3762,
2963 "isConstant": false,
2964 "isLValue": false,
2965 "isPure": false,
2966 "kind": "functionCall",
2967 "lValueRequested": false,
2968 "names": [],
2969 "nodeType": "FunctionCall",
2970 "src": "2285:39:18",
2971 "typeDescriptions": {
2972 "typeIdentifier": "t_bool",
2973 "typeString": "bool"
2974 }
2975 },
2976 "id": 3763,
2977 "nodeType": "ExpressionStatement",
2978 "src": "2285:39:18"
2979 },
2980 {
2981 "expression": {
2982 "argumentTypes": null,
2983 "arguments": [
2984 {
2985 "argumentTypes": null,
2986 "id": 3767,
2987 "name": "spec1",
2988 "nodeType": "Identifier",
2989 "overloadedDeclarations": [],
2990 "referencedDeclaration": 3583,
2991 "src": "2366:5:18",
2992 "typeDescriptions": {
2993 "typeIdentifier": "t_bytes32",
2994 "typeString": "bytes32"
2995 }
2996 },
2997 {
2998 "argumentTypes": null,
2999 "id": 3768,
3000 "name": "curve",
3001 "nodeType": "Identifier",
3002 "overloadedDeclarations": [],
3003 "referencedDeclaration": 3603,
3004 "src": "2373:5:18",
3005 "typeDescriptions": {
3006 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
3007 "typeString": "int256[] storage ref"
3008 }
3009 },
3010 {
3011 "argumentTypes": null,
3012 "arguments": [
3013 {
3014 "argumentTypes": null,
3015 "hexValue": "30",
3016 "id": 3770,
3017 "isConstant": false,
3018 "isLValue": false,
3019 "isPure": true,
3020 "kind": "number",
3021 "lValueRequested": false,
3022 "nodeType": "Literal",
3023 "src": "2388:1:18",
3024 "subdenomination": null,
3025 "typeDescriptions": {
3026 "typeIdentifier": "t_rational_0_by_1",
3027 "typeString": "int_const 0"
3028 },
3029 "value": "0"
3030 }
3031 ],
3032 "expression": {
3033 "argumentTypes": [
3034 {
3035 "typeIdentifier": "t_rational_0_by_1",
3036 "typeString": "int_const 0"
3037 }
3038 ],
3039 "id": 3769,
3040 "isConstant": false,
3041 "isLValue": false,
3042 "isPure": true,
3043 "lValueRequested": false,
3044 "nodeType": "ElementaryTypeNameExpression",
3045 "src": "2380:7:18",
3046 "typeDescriptions": {
3047 "typeIdentifier": "t_type$_t_address_$",
3048 "typeString": "type(address)"
3049 },
3050 "typeName": "address"
3051 },
3052 "id": 3771,
3053 "isConstant": false,
3054 "isLValue": false,
3055 "isPure": true,
3056 "kind": "typeConversion",
3057 "lValueRequested": false,
3058 "names": [],
3059 "nodeType": "FunctionCall",
3060 "src": "2380:10:18",
3061 "typeDescriptions": {
3062 "typeIdentifier": "t_address",
3063 "typeString": "address"
3064 }
3065 }
3066 ],
3067 "expression": {
3068 "argumentTypes": [
3069 {
3070 "typeIdentifier": "t_bytes32",
3071 "typeString": "bytes32"
3072 },
3073 {
3074 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
3075 "typeString": "int256[] storage ref"
3076 },
3077 {
3078 "typeIdentifier": "t_address",
3079 "typeString": "address"
3080 }
3081 ],
3082 "expression": {
3083 "argumentTypes": null,
3084 "id": 3764,
3085 "name": "registry",
3086 "nodeType": "Identifier",
3087 "overloadedDeclarations": [],
3088 "referencedDeclaration": 3605,
3089 "src": "2335:8:18",
3090 "typeDescriptions": {
3091 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3092 "typeString": "contract RegistryInterface"
3093 }
3094 },
3095 "id": 3766,
3096 "isConstant": false,
3097 "isLValue": false,
3098 "isPure": false,
3099 "lValueRequested": false,
3100 "memberName": "initiateProviderCurve",
3101 "nodeType": "MemberAccess",
3102 "referencedDeclaration": 11187,
3103 "src": "2335:30:18",
3104 "typeDescriptions": {
3105 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_int256_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$",
3106 "typeString": "function (bytes32,int256[] memory,address) external returns (bool)"
3107 }
3108 },
3109 "id": 3772,
3110 "isConstant": false,
3111 "isLValue": false,
3112 "isPure": false,
3113 "kind": "functionCall",
3114 "lValueRequested": false,
3115 "names": [],
3116 "nodeType": "FunctionCall",
3117 "src": "2335:56:18",
3118 "typeDescriptions": {
3119 "typeIdentifier": "t_bool",
3120 "typeString": "bool"
3121 }
3122 },
3123 "id": 3773,
3124 "nodeType": "ExpressionStatement",
3125 "src": "2335:56:18"
3126 },
3127 {
3128 "expression": {
3129 "argumentTypes": null,
3130 "arguments": [
3131 {
3132 "argumentTypes": null,
3133 "id": 3777,
3134 "name": "spec2",
3135 "nodeType": "Identifier",
3136 "overloadedDeclarations": [],
3137 "referencedDeclaration": 3586,
3138 "src": "2432:5:18",
3139 "typeDescriptions": {
3140 "typeIdentifier": "t_bytes32",
3141 "typeString": "bytes32"
3142 }
3143 },
3144 {
3145 "argumentTypes": null,
3146 "id": 3778,
3147 "name": "curve",
3148 "nodeType": "Identifier",
3149 "overloadedDeclarations": [],
3150 "referencedDeclaration": 3603,
3151 "src": "2439:5:18",
3152 "typeDescriptions": {
3153 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
3154 "typeString": "int256[] storage ref"
3155 }
3156 },
3157 {
3158 "argumentTypes": null,
3159 "arguments": [
3160 {
3161 "argumentTypes": null,
3162 "hexValue": "30",
3163 "id": 3780,
3164 "isConstant": false,
3165 "isLValue": false,
3166 "isPure": true,
3167 "kind": "number",
3168 "lValueRequested": false,
3169 "nodeType": "Literal",
3170 "src": "2454:1:18",
3171 "subdenomination": null,
3172 "typeDescriptions": {
3173 "typeIdentifier": "t_rational_0_by_1",
3174 "typeString": "int_const 0"
3175 },
3176 "value": "0"
3177 }
3178 ],
3179 "expression": {
3180 "argumentTypes": [
3181 {
3182 "typeIdentifier": "t_rational_0_by_1",
3183 "typeString": "int_const 0"
3184 }
3185 ],
3186 "id": 3779,
3187 "isConstant": false,
3188 "isLValue": false,
3189 "isPure": true,
3190 "lValueRequested": false,
3191 "nodeType": "ElementaryTypeNameExpression",
3192 "src": "2446:7:18",
3193 "typeDescriptions": {
3194 "typeIdentifier": "t_type$_t_address_$",
3195 "typeString": "type(address)"
3196 },
3197 "typeName": "address"
3198 },
3199 "id": 3781,
3200 "isConstant": false,
3201 "isLValue": false,
3202 "isPure": true,
3203 "kind": "typeConversion",
3204 "lValueRequested": false,
3205 "names": [],
3206 "nodeType": "FunctionCall",
3207 "src": "2446:10:18",
3208 "typeDescriptions": {
3209 "typeIdentifier": "t_address",
3210 "typeString": "address"
3211 }
3212 }
3213 ],
3214 "expression": {
3215 "argumentTypes": [
3216 {
3217 "typeIdentifier": "t_bytes32",
3218 "typeString": "bytes32"
3219 },
3220 {
3221 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
3222 "typeString": "int256[] storage ref"
3223 },
3224 {
3225 "typeIdentifier": "t_address",
3226 "typeString": "address"
3227 }
3228 ],
3229 "expression": {
3230 "argumentTypes": null,
3231 "id": 3774,
3232 "name": "registry",
3233 "nodeType": "Identifier",
3234 "overloadedDeclarations": [],
3235 "referencedDeclaration": 3605,
3236 "src": "2401:8:18",
3237 "typeDescriptions": {
3238 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3239 "typeString": "contract RegistryInterface"
3240 }
3241 },
3242 "id": 3776,
3243 "isConstant": false,
3244 "isLValue": false,
3245 "isPure": false,
3246 "lValueRequested": false,
3247 "memberName": "initiateProviderCurve",
3248 "nodeType": "MemberAccess",
3249 "referencedDeclaration": 11187,
3250 "src": "2401:30:18",
3251 "typeDescriptions": {
3252 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_int256_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$",
3253 "typeString": "function (bytes32,int256[] memory,address) external returns (bool)"
3254 }
3255 },
3256 "id": 3782,
3257 "isConstant": false,
3258 "isLValue": false,
3259 "isPure": false,
3260 "kind": "functionCall",
3261 "lValueRequested": false,
3262 "names": [],
3263 "nodeType": "FunctionCall",
3264 "src": "2401:56:18",
3265 "typeDescriptions": {
3266 "typeIdentifier": "t_bool",
3267 "typeString": "bool"
3268 }
3269 },
3270 "id": 3783,
3271 "nodeType": "ExpressionStatement",
3272 "src": "2401:56:18"
3273 },
3274 {
3275 "expression": {
3276 "argumentTypes": null,
3277 "arguments": [
3278 {
3279 "argumentTypes": null,
3280 "id": 3787,
3281 "name": "spec3",
3282 "nodeType": "Identifier",
3283 "overloadedDeclarations": [],
3284 "referencedDeclaration": 3589,
3285 "src": "2498:5:18",
3286 "typeDescriptions": {
3287 "typeIdentifier": "t_bytes32",
3288 "typeString": "bytes32"
3289 }
3290 },
3291 {
3292 "argumentTypes": null,
3293 "id": 3788,
3294 "name": "curve",
3295 "nodeType": "Identifier",
3296 "overloadedDeclarations": [],
3297 "referencedDeclaration": 3603,
3298 "src": "2505:5:18",
3299 "typeDescriptions": {
3300 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
3301 "typeString": "int256[] storage ref"
3302 }
3303 },
3304 {
3305 "argumentTypes": null,
3306 "arguments": [
3307 {
3308 "argumentTypes": null,
3309 "hexValue": "30",
3310 "id": 3790,
3311 "isConstant": false,
3312 "isLValue": false,
3313 "isPure": true,
3314 "kind": "number",
3315 "lValueRequested": false,
3316 "nodeType": "Literal",
3317 "src": "2520:1:18",
3318 "subdenomination": null,
3319 "typeDescriptions": {
3320 "typeIdentifier": "t_rational_0_by_1",
3321 "typeString": "int_const 0"
3322 },
3323 "value": "0"
3324 }
3325 ],
3326 "expression": {
3327 "argumentTypes": [
3328 {
3329 "typeIdentifier": "t_rational_0_by_1",
3330 "typeString": "int_const 0"
3331 }
3332 ],
3333 "id": 3789,
3334 "isConstant": false,
3335 "isLValue": false,
3336 "isPure": true,
3337 "lValueRequested": false,
3338 "nodeType": "ElementaryTypeNameExpression",
3339 "src": "2512:7:18",
3340 "typeDescriptions": {
3341 "typeIdentifier": "t_type$_t_address_$",
3342 "typeString": "type(address)"
3343 },
3344 "typeName": "address"
3345 },
3346 "id": 3791,
3347 "isConstant": false,
3348 "isLValue": false,
3349 "isPure": true,
3350 "kind": "typeConversion",
3351 "lValueRequested": false,
3352 "names": [],
3353 "nodeType": "FunctionCall",
3354 "src": "2512:10:18",
3355 "typeDescriptions": {
3356 "typeIdentifier": "t_address",
3357 "typeString": "address"
3358 }
3359 }
3360 ],
3361 "expression": {
3362 "argumentTypes": [
3363 {
3364 "typeIdentifier": "t_bytes32",
3365 "typeString": "bytes32"
3366 },
3367 {
3368 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
3369 "typeString": "int256[] storage ref"
3370 },
3371 {
3372 "typeIdentifier": "t_address",
3373 "typeString": "address"
3374 }
3375 ],
3376 "expression": {
3377 "argumentTypes": null,
3378 "id": 3784,
3379 "name": "registry",
3380 "nodeType": "Identifier",
3381 "overloadedDeclarations": [],
3382 "referencedDeclaration": 3605,
3383 "src": "2467:8:18",
3384 "typeDescriptions": {
3385 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3386 "typeString": "contract RegistryInterface"
3387 }
3388 },
3389 "id": 3786,
3390 "isConstant": false,
3391 "isLValue": false,
3392 "isPure": false,
3393 "lValueRequested": false,
3394 "memberName": "initiateProviderCurve",
3395 "nodeType": "MemberAccess",
3396 "referencedDeclaration": 11187,
3397 "src": "2467:30:18",
3398 "typeDescriptions": {
3399 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_int256_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$",
3400 "typeString": "function (bytes32,int256[] memory,address) external returns (bool)"
3401 }
3402 },
3403 "id": 3792,
3404 "isConstant": false,
3405 "isLValue": false,
3406 "isPure": false,
3407 "kind": "functionCall",
3408 "lValueRequested": false,
3409 "names": [],
3410 "nodeType": "FunctionCall",
3411 "src": "2467:56:18",
3412 "typeDescriptions": {
3413 "typeIdentifier": "t_bool",
3414 "typeString": "bool"
3415 }
3416 },
3417 "id": 3793,
3418 "nodeType": "ExpressionStatement",
3419 "src": "2467:56:18"
3420 },
3421 {
3422 "expression": {
3423 "argumentTypes": null,
3424 "arguments": [
3425 {
3426 "argumentTypes": null,
3427 "id": 3797,
3428 "name": "spec4",
3429 "nodeType": "Identifier",
3430 "overloadedDeclarations": [],
3431 "referencedDeclaration": 3592,
3432 "src": "2564:5:18",
3433 "typeDescriptions": {
3434 "typeIdentifier": "t_bytes32",
3435 "typeString": "bytes32"
3436 }
3437 },
3438 {
3439 "argumentTypes": null,
3440 "id": 3798,
3441 "name": "curve",
3442 "nodeType": "Identifier",
3443 "overloadedDeclarations": [],
3444 "referencedDeclaration": 3603,
3445 "src": "2571:5:18",
3446 "typeDescriptions": {
3447 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
3448 "typeString": "int256[] storage ref"
3449 }
3450 },
3451 {
3452 "argumentTypes": null,
3453 "arguments": [
3454 {
3455 "argumentTypes": null,
3456 "hexValue": "30",
3457 "id": 3800,
3458 "isConstant": false,
3459 "isLValue": false,
3460 "isPure": true,
3461 "kind": "number",
3462 "lValueRequested": false,
3463 "nodeType": "Literal",
3464 "src": "2586:1:18",
3465 "subdenomination": null,
3466 "typeDescriptions": {
3467 "typeIdentifier": "t_rational_0_by_1",
3468 "typeString": "int_const 0"
3469 },
3470 "value": "0"
3471 }
3472 ],
3473 "expression": {
3474 "argumentTypes": [
3475 {
3476 "typeIdentifier": "t_rational_0_by_1",
3477 "typeString": "int_const 0"
3478 }
3479 ],
3480 "id": 3799,
3481 "isConstant": false,
3482 "isLValue": false,
3483 "isPure": true,
3484 "lValueRequested": false,
3485 "nodeType": "ElementaryTypeNameExpression",
3486 "src": "2578:7:18",
3487 "typeDescriptions": {
3488 "typeIdentifier": "t_type$_t_address_$",
3489 "typeString": "type(address)"
3490 },
3491 "typeName": "address"
3492 },
3493 "id": 3801,
3494 "isConstant": false,
3495 "isLValue": false,
3496 "isPure": true,
3497 "kind": "typeConversion",
3498 "lValueRequested": false,
3499 "names": [],
3500 "nodeType": "FunctionCall",
3501 "src": "2578:10:18",
3502 "typeDescriptions": {
3503 "typeIdentifier": "t_address",
3504 "typeString": "address"
3505 }
3506 }
3507 ],
3508 "expression": {
3509 "argumentTypes": [
3510 {
3511 "typeIdentifier": "t_bytes32",
3512 "typeString": "bytes32"
3513 },
3514 {
3515 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
3516 "typeString": "int256[] storage ref"
3517 },
3518 {
3519 "typeIdentifier": "t_address",
3520 "typeString": "address"
3521 }
3522 ],
3523 "expression": {
3524 "argumentTypes": null,
3525 "id": 3794,
3526 "name": "registry",
3527 "nodeType": "Identifier",
3528 "overloadedDeclarations": [],
3529 "referencedDeclaration": 3605,
3530 "src": "2533:8:18",
3531 "typeDescriptions": {
3532 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3533 "typeString": "contract RegistryInterface"
3534 }
3535 },
3536 "id": 3796,
3537 "isConstant": false,
3538 "isLValue": false,
3539 "isPure": false,
3540 "lValueRequested": false,
3541 "memberName": "initiateProviderCurve",
3542 "nodeType": "MemberAccess",
3543 "referencedDeclaration": 11187,
3544 "src": "2533:30:18",
3545 "typeDescriptions": {
3546 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_int256_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$",
3547 "typeString": "function (bytes32,int256[] memory,address) external returns (bool)"
3548 }
3549 },
3550 "id": 3802,
3551 "isConstant": false,
3552 "isLValue": false,
3553 "isPure": false,
3554 "kind": "functionCall",
3555 "lValueRequested": false,
3556 "names": [],
3557 "nodeType": "FunctionCall",
3558 "src": "2533:56:18",
3559 "typeDescriptions": {
3560 "typeIdentifier": "t_bool",
3561 "typeString": "bool"
3562 }
3563 },
3564 "id": 3803,
3565 "nodeType": "ExpressionStatement",
3566 "src": "2533:56:18"
3567 }
3568 ]
3569 },
3570 "documentation": null,
3571 "id": 3805,
3572 "implemented": true,
3573 "isConstructor": true,
3574 "isDeclaredConst": false,
3575 "modifiers": [],
3576 "name": "",
3577 "nodeType": "FunctionDefinition",
3578 "parameters": {
3579 "id": 3719,
3580 "nodeType": "ParameterList",
3581 "parameters": [
3582 {
3583 "constant": false,
3584 "id": 3716,
3585 "name": "registryAddress",
3586 "nodeType": "VariableDeclaration",
3587 "scope": 3805,
3588 "src": "1963:23:18",
3589 "stateVariable": false,
3590 "storageLocation": "default",
3591 "typeDescriptions": {
3592 "typeIdentifier": "t_address",
3593 "typeString": "address"
3594 },
3595 "typeName": {
3596 "id": 3715,
3597 "name": "address",
3598 "nodeType": "ElementaryTypeName",
3599 "src": "1963:7:18",
3600 "typeDescriptions": {
3601 "typeIdentifier": "t_address",
3602 "typeString": "address"
3603 }
3604 },
3605 "value": null,
3606 "visibility": "internal"
3607 },
3608 {
3609 "constant": false,
3610 "id": 3718,
3611 "name": "isBad",
3612 "nodeType": "VariableDeclaration",
3613 "scope": 3805,
3614 "src": "1988:10:18",
3615 "stateVariable": false,
3616 "storageLocation": "default",
3617 "typeDescriptions": {
3618 "typeIdentifier": "t_bool",
3619 "typeString": "bool"
3620 },
3621 "typeName": {
3622 "id": 3717,
3623 "name": "bool",
3624 "nodeType": "ElementaryTypeName",
3625 "src": "1988:4:18",
3626 "typeDescriptions": {
3627 "typeIdentifier": "t_bool",
3628 "typeString": "bool"
3629 }
3630 },
3631 "value": null,
3632 "visibility": "internal"
3633 }
3634 ],
3635 "src": "1962:37:18"
3636 },
3637 "payable": false,
3638 "returnParameters": {
3639 "id": 3720,
3640 "nodeType": "ParameterList",
3641 "parameters": [],
3642 "src": "2006:0:18"
3643 },
3644 "scope": 4057,
3645 "src": "1951:645:18",
3646 "stateMutability": "nonpayable",
3647 "superFunction": null,
3648 "visibility": "public"
3649 },
3650 {
3651 "body": {
3652 "id": 3824,
3653 "nodeType": "Block",
3654 "src": "2739:74:18",
3655 "statements": [
3656 {
3657 "expression": {
3658 "argumentTypes": null,
3659 "arguments": [
3660 {
3661 "argumentTypes": null,
3662 "id": 3820,
3663 "name": "id",
3664 "nodeType": "Identifier",
3665 "overloadedDeclarations": [],
3666 "referencedDeclaration": 3807,
3667 "src": "2788:2:18",
3668 "typeDescriptions": {
3669 "typeIdentifier": "t_uint256",
3670 "typeString": "uint256"
3671 }
3672 },
3673 {
3674 "argumentTypes": null,
3675 "hexValue": "48656c6c6f20576f726c64",
3676 "id": 3821,
3677 "isConstant": false,
3678 "isLValue": false,
3679 "isPure": true,
3680 "kind": "string",
3681 "lValueRequested": false,
3682 "nodeType": "Literal",
3683 "src": "2792:13:18",
3684 "subdenomination": null,
3685 "typeDescriptions": {
3686 "typeIdentifier": "t_stringliteral_592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba",
3687 "typeString": "literal_string \"Hello World\""
3688 },
3689 "value": "Hello World"
3690 }
3691 ],
3692 "expression": {
3693 "argumentTypes": [
3694 {
3695 "typeIdentifier": "t_uint256",
3696 "typeString": "uint256"
3697 },
3698 {
3699 "typeIdentifier": "t_stringliteral_592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba",
3700 "typeString": "literal_string \"Hello World\""
3701 }
3702 ],
3703 "expression": {
3704 "argumentTypes": null,
3705 "arguments": [
3706 {
3707 "argumentTypes": null,
3708 "expression": {
3709 "argumentTypes": null,
3710 "id": 3816,
3711 "name": "msg",
3712 "nodeType": "Identifier",
3713 "overloadedDeclarations": [],
3714 "referencedDeclaration": 12092,
3715 "src": "2767:3:18",
3716 "typeDescriptions": {
3717 "typeIdentifier": "t_magic_message",
3718 "typeString": "msg"
3719 }
3720 },
3721 "id": 3817,
3722 "isConstant": false,
3723 "isLValue": false,
3724 "isPure": false,
3725 "lValueRequested": false,
3726 "memberName": "sender",
3727 "nodeType": "MemberAccess",
3728 "referencedDeclaration": null,
3729 "src": "2767:10:18",
3730 "typeDescriptions": {
3731 "typeIdentifier": "t_address",
3732 "typeString": "address"
3733 }
3734 }
3735 ],
3736 "expression": {
3737 "argumentTypes": [
3738 {
3739 "typeIdentifier": "t_address",
3740 "typeString": "address"
3741 }
3742 ],
3743 "id": 3815,
3744 "name": "DispatchInterface",
3745 "nodeType": "Identifier",
3746 "overloadedDeclarations": [],
3747 "referencedDeclaration": 10147,
3748 "src": "2749:17:18",
3749 "typeDescriptions": {
3750 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
3751 "typeString": "type(contract DispatchInterface)"
3752 }
3753 },
3754 "id": 3818,
3755 "isConstant": false,
3756 "isLValue": false,
3757 "isPure": false,
3758 "kind": "typeConversion",
3759 "lValueRequested": false,
3760 "names": [],
3761 "nodeType": "FunctionCall",
3762 "src": "2749:29:18",
3763 "typeDescriptions": {
3764 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
3765 "typeString": "contract DispatchInterface"
3766 }
3767 },
3768 "id": 3819,
3769 "isConstant": false,
3770 "isLValue": false,
3771 "isPure": false,
3772 "lValueRequested": false,
3773 "memberName": "respond1",
3774 "nodeType": "MemberAccess",
3775 "referencedDeclaration": 10033,
3776 "src": "2749:38:18",
3777 "typeDescriptions": {
3778 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$_t_bool_$",
3779 "typeString": "function (uint256,string memory) external returns (bool)"
3780 }
3781 },
3782 "id": 3822,
3783 "isConstant": false,
3784 "isLValue": false,
3785 "isPure": false,
3786 "kind": "functionCall",
3787 "lValueRequested": false,
3788 "names": [],
3789 "nodeType": "FunctionCall",
3790 "src": "2749:57:18",
3791 "typeDescriptions": {
3792 "typeIdentifier": "t_bool",
3793 "typeString": "bool"
3794 }
3795 },
3796 "id": 3823,
3797 "nodeType": "ExpressionStatement",
3798 "src": "2749:57:18"
3799 }
3800 ]
3801 },
3802 "documentation": null,
3803 "id": 3825,
3804 "implemented": true,
3805 "isConstructor": false,
3806 "isDeclaredConst": false,
3807 "modifiers": [],
3808 "name": "endpoint1",
3809 "nodeType": "FunctionDefinition",
3810 "parameters": {
3811 "id": 3813,
3812 "nodeType": "ParameterList",
3813 "parameters": [
3814 {
3815 "constant": false,
3816 "id": 3807,
3817 "name": "id",
3818 "nodeType": "VariableDeclaration",
3819 "scope": 3825,
3820 "src": "2663:10:18",
3821 "stateVariable": false,
3822 "storageLocation": "default",
3823 "typeDescriptions": {
3824 "typeIdentifier": "t_uint256",
3825 "typeString": "uint256"
3826 },
3827 "typeName": {
3828 "id": 3806,
3829 "name": "uint256",
3830 "nodeType": "ElementaryTypeName",
3831 "src": "2663:7:18",
3832 "typeDescriptions": {
3833 "typeIdentifier": "t_uint256",
3834 "typeString": "uint256"
3835 }
3836 },
3837 "value": null,
3838 "visibility": "internal"
3839 },
3840 {
3841 "constant": false,
3842 "id": 3809,
3843 "name": "",
3844 "nodeType": "VariableDeclaration",
3845 "scope": 3825,
3846 "src": "2675:6:18",
3847 "stateVariable": false,
3848 "storageLocation": "default",
3849 "typeDescriptions": {
3850 "typeIdentifier": "t_string_memory_ptr",
3851 "typeString": "string"
3852 },
3853 "typeName": {
3854 "id": 3808,
3855 "name": "string",
3856 "nodeType": "ElementaryTypeName",
3857 "src": "2675:6:18",
3858 "typeDescriptions": {
3859 "typeIdentifier": "t_string_storage_ptr",
3860 "typeString": "string"
3861 }
3862 },
3863 "value": null,
3864 "visibility": "internal"
3865 },
3866 {
3867 "constant": false,
3868 "id": 3812,
3869 "name": "",
3870 "nodeType": "VariableDeclaration",
3871 "scope": 3825,
3872 "src": "2699:9:18",
3873 "stateVariable": false,
3874 "storageLocation": "default",
3875 "typeDescriptions": {
3876 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
3877 "typeString": "bytes32[]"
3878 },
3879 "typeName": {
3880 "baseType": {
3881 "id": 3810,
3882 "name": "bytes32",
3883 "nodeType": "ElementaryTypeName",
3884 "src": "2699:7:18",
3885 "typeDescriptions": {
3886 "typeIdentifier": "t_bytes32",
3887 "typeString": "bytes32"
3888 }
3889 },
3890 "id": 3811,
3891 "length": null,
3892 "nodeType": "ArrayTypeName",
3893 "src": "2699:9:18",
3894 "typeDescriptions": {
3895 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
3896 "typeString": "bytes32[]"
3897 }
3898 },
3899 "value": null,
3900 "visibility": "internal"
3901 }
3902 ],
3903 "src": "2662:68:18"
3904 },
3905 "payable": false,
3906 "returnParameters": {
3907 "id": 3814,
3908 "nodeType": "ParameterList",
3909 "parameters": [],
3910 "src": "2739:0:18"
3911 },
3912 "scope": 4057,
3913 "src": "2644:169:18",
3914 "stateMutability": "nonpayable",
3915 "superFunction": null,
3916 "visibility": "internal"
3917 },
3918 {
3919 "body": {
3920 "id": 3850,
3921 "nodeType": "Block",
3922 "src": "2944:154:18",
3923 "statements": [
3924 {
3925 "assignments": [
3926 3836
3927 ],
3928 "declarations": [
3929 {
3930 "constant": false,
3931 "id": 3836,
3932 "name": "reversed",
3933 "nodeType": "VariableDeclaration",
3934 "scope": 3851,
3935 "src": "2980:22:18",
3936 "stateVariable": false,
3937 "storageLocation": "memory",
3938 "typeDescriptions": {
3939 "typeIdentifier": "t_string_memory_ptr",
3940 "typeString": "string"
3941 },
3942 "typeName": {
3943 "id": 3835,
3944 "name": "string",
3945 "nodeType": "ElementaryTypeName",
3946 "src": "2980:6:18",
3947 "typeDescriptions": {
3948 "typeIdentifier": "t_string_storage_ptr",
3949 "typeString": "string"
3950 }
3951 },
3952 "value": null,
3953 "visibility": "internal"
3954 }
3955 ],
3956 "id": 3840,
3957 "initialValue": {
3958 "argumentTypes": null,
3959 "arguments": [
3960 {
3961 "argumentTypes": null,
3962 "id": 3838,
3963 "name": "userQuery",
3964 "nodeType": "Identifier",
3965 "overloadedDeclarations": [],
3966 "referencedDeclaration": 3829,
3967 "src": "3019:9:18",
3968 "typeDescriptions": {
3969 "typeIdentifier": "t_string_memory_ptr",
3970 "typeString": "string memory"
3971 }
3972 }
3973 ],
3974 "expression": {
3975 "argumentTypes": [
3976 {
3977 "typeIdentifier": "t_string_memory_ptr",
3978 "typeString": "string memory"
3979 }
3980 ],
3981 "id": 3837,
3982 "name": "reverseString",
3983 "nodeType": "Identifier",
3984 "overloadedDeclarations": [],
3985 "referencedDeclaration": 3997,
3986 "src": "3005:13:18",
3987 "typeDescriptions": {
3988 "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
3989 "typeString": "function (string memory) pure returns (string memory)"
3990 }
3991 },
3992 "id": 3839,
3993 "isConstant": false,
3994 "isLValue": false,
3995 "isPure": false,
3996 "kind": "functionCall",
3997 "lValueRequested": false,
3998 "names": [],
3999 "nodeType": "FunctionCall",
4000 "src": "3005:24:18",
4001 "typeDescriptions": {
4002 "typeIdentifier": "t_string_memory_ptr",
4003 "typeString": "string memory"
4004 }
4005 },
4006 "nodeType": "VariableDeclarationStatement",
4007 "src": "2980:49:18"
4008 },
4009 {
4010 "expression": {
4011 "argumentTypes": null,
4012 "arguments": [
4013 {
4014 "argumentTypes": null,
4015 "id": 3846,
4016 "name": "id",
4017 "nodeType": "Identifier",
4018 "overloadedDeclarations": [],
4019 "referencedDeclaration": 3827,
4020 "src": "3078:2:18",
4021 "typeDescriptions": {
4022 "typeIdentifier": "t_uint256",
4023 "typeString": "uint256"
4024 }
4025 },
4026 {
4027 "argumentTypes": null,
4028 "id": 3847,
4029 "name": "reversed",
4030 "nodeType": "Identifier",
4031 "overloadedDeclarations": [],
4032 "referencedDeclaration": 3836,
4033 "src": "3082:8:18",
4034 "typeDescriptions": {
4035 "typeIdentifier": "t_string_memory_ptr",
4036 "typeString": "string memory"
4037 }
4038 }
4039 ],
4040 "expression": {
4041 "argumentTypes": [
4042 {
4043 "typeIdentifier": "t_uint256",
4044 "typeString": "uint256"
4045 },
4046 {
4047 "typeIdentifier": "t_string_memory_ptr",
4048 "typeString": "string memory"
4049 }
4050 ],
4051 "expression": {
4052 "argumentTypes": null,
4053 "arguments": [
4054 {
4055 "argumentTypes": null,
4056 "expression": {
4057 "argumentTypes": null,
4058 "id": 3842,
4059 "name": "msg",
4060 "nodeType": "Identifier",
4061 "overloadedDeclarations": [],
4062 "referencedDeclaration": 12092,
4063 "src": "3057:3:18",
4064 "typeDescriptions": {
4065 "typeIdentifier": "t_magic_message",
4066 "typeString": "msg"
4067 }
4068 },
4069 "id": 3843,
4070 "isConstant": false,
4071 "isLValue": false,
4072 "isPure": false,
4073 "lValueRequested": false,
4074 "memberName": "sender",
4075 "nodeType": "MemberAccess",
4076 "referencedDeclaration": null,
4077 "src": "3057:10:18",
4078 "typeDescriptions": {
4079 "typeIdentifier": "t_address",
4080 "typeString": "address"
4081 }
4082 }
4083 ],
4084 "expression": {
4085 "argumentTypes": [
4086 {
4087 "typeIdentifier": "t_address",
4088 "typeString": "address"
4089 }
4090 ],
4091 "id": 3841,
4092 "name": "DispatchInterface",
4093 "nodeType": "Identifier",
4094 "overloadedDeclarations": [],
4095 "referencedDeclaration": 10147,
4096 "src": "3039:17:18",
4097 "typeDescriptions": {
4098 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
4099 "typeString": "type(contract DispatchInterface)"
4100 }
4101 },
4102 "id": 3844,
4103 "isConstant": false,
4104 "isLValue": false,
4105 "isPure": false,
4106 "kind": "typeConversion",
4107 "lValueRequested": false,
4108 "names": [],
4109 "nodeType": "FunctionCall",
4110 "src": "3039:29:18",
4111 "typeDescriptions": {
4112 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
4113 "typeString": "contract DispatchInterface"
4114 }
4115 },
4116 "id": 3845,
4117 "isConstant": false,
4118 "isLValue": false,
4119 "isPure": false,
4120 "lValueRequested": false,
4121 "memberName": "respond1",
4122 "nodeType": "MemberAccess",
4123 "referencedDeclaration": 10033,
4124 "src": "3039:38:18",
4125 "typeDescriptions": {
4126 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$_t_bool_$",
4127 "typeString": "function (uint256,string memory) external returns (bool)"
4128 }
4129 },
4130 "id": 3848,
4131 "isConstant": false,
4132 "isLValue": false,
4133 "isPure": false,
4134 "kind": "functionCall",
4135 "lValueRequested": false,
4136 "names": [],
4137 "nodeType": "FunctionCall",
4138 "src": "3039:52:18",
4139 "typeDescriptions": {
4140 "typeIdentifier": "t_bool",
4141 "typeString": "bool"
4142 }
4143 },
4144 "id": 3849,
4145 "nodeType": "ExpressionStatement",
4146 "src": "3039:52:18"
4147 }
4148 ]
4149 },
4150 "documentation": null,
4151 "id": 3851,
4152 "implemented": true,
4153 "isConstructor": false,
4154 "isDeclaredConst": false,
4155 "modifiers": [],
4156 "name": "endpoint2",
4157 "nodeType": "FunctionDefinition",
4158 "parameters": {
4159 "id": 3833,
4160 "nodeType": "ParameterList",
4161 "parameters": [
4162 {
4163 "constant": false,
4164 "id": 3827,
4165 "name": "id",
4166 "nodeType": "VariableDeclaration",
4167 "scope": 3851,
4168 "src": "2874:10:18",
4169 "stateVariable": false,
4170 "storageLocation": "default",
4171 "typeDescriptions": {
4172 "typeIdentifier": "t_uint256",
4173 "typeString": "uint256"
4174 },
4175 "typeName": {
4176 "id": 3826,
4177 "name": "uint256",
4178 "nodeType": "ElementaryTypeName",
4179 "src": "2874:7:18",
4180 "typeDescriptions": {
4181 "typeIdentifier": "t_uint256",
4182 "typeString": "uint256"
4183 }
4184 },
4185 "value": null,
4186 "visibility": "internal"
4187 },
4188 {
4189 "constant": false,
4190 "id": 3829,
4191 "name": "userQuery",
4192 "nodeType": "VariableDeclaration",
4193 "scope": 3851,
4194 "src": "2886:16:18",
4195 "stateVariable": false,
4196 "storageLocation": "default",
4197 "typeDescriptions": {
4198 "typeIdentifier": "t_string_memory_ptr",
4199 "typeString": "string"
4200 },
4201 "typeName": {
4202 "id": 3828,
4203 "name": "string",
4204 "nodeType": "ElementaryTypeName",
4205 "src": "2886:6:18",
4206 "typeDescriptions": {
4207 "typeIdentifier": "t_string_storage_ptr",
4208 "typeString": "string"
4209 }
4210 },
4211 "value": null,
4212 "visibility": "internal"
4213 },
4214 {
4215 "constant": false,
4216 "id": 3832,
4217 "name": "",
4218 "nodeType": "VariableDeclaration",
4219 "scope": 3851,
4220 "src": "2904:9:18",
4221 "stateVariable": false,
4222 "storageLocation": "default",
4223 "typeDescriptions": {
4224 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4225 "typeString": "bytes32[]"
4226 },
4227 "typeName": {
4228 "baseType": {
4229 "id": 3830,
4230 "name": "bytes32",
4231 "nodeType": "ElementaryTypeName",
4232 "src": "2904:7:18",
4233 "typeDescriptions": {
4234 "typeIdentifier": "t_bytes32",
4235 "typeString": "bytes32"
4236 }
4237 },
4238 "id": 3831,
4239 "length": null,
4240 "nodeType": "ArrayTypeName",
4241 "src": "2904:9:18",
4242 "typeDescriptions": {
4243 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
4244 "typeString": "bytes32[]"
4245 }
4246 },
4247 "value": null,
4248 "visibility": "internal"
4249 }
4250 ],
4251 "src": "2873:62:18"
4252 },
4253 "payable": false,
4254 "returnParameters": {
4255 "id": 3834,
4256 "nodeType": "ParameterList",
4257 "parameters": [],
4258 "src": "2944:0:18"
4259 },
4260 "scope": 4057,
4261 "src": "2855:243:18",
4262 "stateMutability": "nonpayable",
4263 "superFunction": null,
4264 "visibility": "internal"
4265 },
4266 {
4267 "body": {
4268 "id": 3917,
4269 "nodeType": "Block",
4270 "src": "3249:320:18",
4271 "statements": [
4272 {
4273 "assignments": [
4274 3862
4275 ],
4276 "declarations": [
4277 {
4278 "constant": false,
4279 "id": 3862,
4280 "name": "sum",
4281 "nodeType": "VariableDeclaration",
4282 "scope": 3918,
4283 "src": "3259:8:18",
4284 "stateVariable": false,
4285 "storageLocation": "default",
4286 "typeDescriptions": {
4287 "typeIdentifier": "t_uint256",
4288 "typeString": "uint256"
4289 },
4290 "typeName": {
4291 "id": 3861,
4292 "name": "uint",
4293 "nodeType": "ElementaryTypeName",
4294 "src": "3259:4:18",
4295 "typeDescriptions": {
4296 "typeIdentifier": "t_uint256",
4297 "typeString": "uint256"
4298 }
4299 },
4300 "value": null,
4301 "visibility": "internal"
4302 }
4303 ],
4304 "id": 3864,
4305 "initialValue": {
4306 "argumentTypes": null,
4307 "hexValue": "30",
4308 "id": 3863,
4309 "isConstant": false,
4310 "isLValue": false,
4311 "isPure": true,
4312 "kind": "number",
4313 "lValueRequested": false,
4314 "nodeType": "Literal",
4315 "src": "3270:1:18",
4316 "subdenomination": null,
4317 "typeDescriptions": {
4318 "typeIdentifier": "t_rational_0_by_1",
4319 "typeString": "int_const 0"
4320 },
4321 "value": "0"
4322 },
4323 "nodeType": "VariableDeclarationStatement",
4324 "src": "3259:12:18"
4325 },
4326 {
4327 "body": {
4328 "id": 3888,
4329 "nodeType": "Block",
4330 "src": "3326:87:18",
4331 "statements": [
4332 {
4333 "assignments": [
4334 3877
4335 ],
4336 "declarations": [
4337 {
4338 "constant": false,
4339 "id": 3877,
4340 "name": "value",
4341 "nodeType": "VariableDeclaration",
4342 "scope": 3918,
4343 "src": "3340:10:18",
4344 "stateVariable": false,
4345 "storageLocation": "default",
4346 "typeDescriptions": {
4347 "typeIdentifier": "t_uint256",
4348 "typeString": "uint256"
4349 },
4350 "typeName": {
4351 "id": 3876,
4352 "name": "uint",
4353 "nodeType": "ElementaryTypeName",
4354 "src": "3340:4:18",
4355 "typeDescriptions": {
4356 "typeIdentifier": "t_uint256",
4357 "typeString": "uint256"
4358 }
4359 },
4360 "value": null,
4361 "visibility": "internal"
4362 }
4363 ],
4364 "id": 3883,
4365 "initialValue": {
4366 "argumentTypes": null,
4367 "arguments": [
4368 {
4369 "argumentTypes": null,
4370 "baseExpression": {
4371 "argumentTypes": null,
4372 "id": 3879,
4373 "name": "endpointParams",
4374 "nodeType": "Identifier",
4375 "overloadedDeclarations": [],
4376 "referencedDeclaration": 3858,
4377 "src": "3358:14:18",
4378 "typeDescriptions": {
4379 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4380 "typeString": "bytes32[] memory"
4381 }
4382 },
4383 "id": 3881,
4384 "indexExpression": {
4385 "argumentTypes": null,
4386 "id": 3880,
4387 "name": "i",
4388 "nodeType": "Identifier",
4389 "overloadedDeclarations": [],
4390 "referencedDeclaration": 3866,
4391 "src": "3373:1:18",
4392 "typeDescriptions": {
4393 "typeIdentifier": "t_uint256",
4394 "typeString": "uint256"
4395 }
4396 },
4397 "isConstant": false,
4398 "isLValue": true,
4399 "isPure": false,
4400 "lValueRequested": false,
4401 "nodeType": "IndexAccess",
4402 "src": "3358:17:18",
4403 "typeDescriptions": {
4404 "typeIdentifier": "t_bytes32",
4405 "typeString": "bytes32"
4406 }
4407 }
4408 ],
4409 "expression": {
4410 "argumentTypes": [
4411 {
4412 "typeIdentifier": "t_bytes32",
4413 "typeString": "bytes32"
4414 }
4415 ],
4416 "id": 3878,
4417 "isConstant": false,
4418 "isLValue": false,
4419 "isPure": true,
4420 "lValueRequested": false,
4421 "nodeType": "ElementaryTypeNameExpression",
4422 "src": "3353:4:18",
4423 "typeDescriptions": {
4424 "typeIdentifier": "t_type$_t_uint256_$",
4425 "typeString": "type(uint256)"
4426 },
4427 "typeName": "uint"
4428 },
4429 "id": 3882,
4430 "isConstant": false,
4431 "isLValue": false,
4432 "isPure": false,
4433 "kind": "typeConversion",
4434 "lValueRequested": false,
4435 "names": [],
4436 "nodeType": "FunctionCall",
4437 "src": "3353:23:18",
4438 "typeDescriptions": {
4439 "typeIdentifier": "t_uint256",
4440 "typeString": "uint256"
4441 }
4442 },
4443 "nodeType": "VariableDeclarationStatement",
4444 "src": "3340:36:18"
4445 },
4446 {
4447 "expression": {
4448 "argumentTypes": null,
4449 "id": 3886,
4450 "isConstant": false,
4451 "isLValue": false,
4452 "isPure": false,
4453 "lValueRequested": false,
4454 "leftHandSide": {
4455 "argumentTypes": null,
4456 "id": 3884,
4457 "name": "sum",
4458 "nodeType": "Identifier",
4459 "overloadedDeclarations": [],
4460 "referencedDeclaration": 3862,
4461 "src": "3390:3:18",
4462 "typeDescriptions": {
4463 "typeIdentifier": "t_uint256",
4464 "typeString": "uint256"
4465 }
4466 },
4467 "nodeType": "Assignment",
4468 "operator": "+=",
4469 "rightHandSide": {
4470 "argumentTypes": null,
4471 "id": 3885,
4472 "name": "value",
4473 "nodeType": "Identifier",
4474 "overloadedDeclarations": [],
4475 "referencedDeclaration": 3877,
4476 "src": "3397:5:18",
4477 "typeDescriptions": {
4478 "typeIdentifier": "t_uint256",
4479 "typeString": "uint256"
4480 }
4481 },
4482 "src": "3390:12:18",
4483 "typeDescriptions": {
4484 "typeIdentifier": "t_uint256",
4485 "typeString": "uint256"
4486 }
4487 },
4488 "id": 3887,
4489 "nodeType": "ExpressionStatement",
4490 "src": "3390:12:18"
4491 }
4492 ]
4493 },
4494 "condition": {
4495 "argumentTypes": null,
4496 "commonType": {
4497 "typeIdentifier": "t_uint256",
4498 "typeString": "uint256"
4499 },
4500 "id": 3872,
4501 "isConstant": false,
4502 "isLValue": false,
4503 "isPure": false,
4504 "lValueRequested": false,
4505 "leftExpression": {
4506 "argumentTypes": null,
4507 "id": 3869,
4508 "name": "i",
4509 "nodeType": "Identifier",
4510 "overloadedDeclarations": [],
4511 "referencedDeclaration": 3866,
4512 "src": "3297:1:18",
4513 "typeDescriptions": {
4514 "typeIdentifier": "t_uint256",
4515 "typeString": "uint256"
4516 }
4517 },
4518 "nodeType": "BinaryOperation",
4519 "operator": "<",
4520 "rightExpression": {
4521 "argumentTypes": null,
4522 "expression": {
4523 "argumentTypes": null,
4524 "id": 3870,
4525 "name": "endpointParams",
4526 "nodeType": "Identifier",
4527 "overloadedDeclarations": [],
4528 "referencedDeclaration": 3858,
4529 "src": "3299:14:18",
4530 "typeDescriptions": {
4531 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4532 "typeString": "bytes32[] memory"
4533 }
4534 },
4535 "id": 3871,
4536 "isConstant": false,
4537 "isLValue": false,
4538 "isPure": false,
4539 "lValueRequested": false,
4540 "memberName": "length",
4541 "nodeType": "MemberAccess",
4542 "referencedDeclaration": null,
4543 "src": "3299:21:18",
4544 "typeDescriptions": {
4545 "typeIdentifier": "t_uint256",
4546 "typeString": "uint256"
4547 }
4548 },
4549 "src": "3297:23:18",
4550 "typeDescriptions": {
4551 "typeIdentifier": "t_bool",
4552 "typeString": "bool"
4553 }
4554 },
4555 "id": 3889,
4556 "initializationExpression": {
4557 "assignments": [
4558 3866
4559 ],
4560 "declarations": [
4561 {
4562 "constant": false,
4563 "id": 3866,
4564 "name": "i",
4565 "nodeType": "VariableDeclaration",
4566 "scope": 3918,
4567 "src": "3285:6:18",
4568 "stateVariable": false,
4569 "storageLocation": "default",
4570 "typeDescriptions": {
4571 "typeIdentifier": "t_uint256",
4572 "typeString": "uint256"
4573 },
4574 "typeName": {
4575 "id": 3865,
4576 "name": "uint",
4577 "nodeType": "ElementaryTypeName",
4578 "src": "3285:4:18",
4579 "typeDescriptions": {
4580 "typeIdentifier": "t_uint256",
4581 "typeString": "uint256"
4582 }
4583 },
4584 "value": null,
4585 "visibility": "internal"
4586 }
4587 ],
4588 "id": 3868,
4589 "initialValue": {
4590 "argumentTypes": null,
4591 "hexValue": "30",
4592 "id": 3867,
4593 "isConstant": false,
4594 "isLValue": false,
4595 "isPure": true,
4596 "kind": "number",
4597 "lValueRequested": false,
4598 "nodeType": "Literal",
4599 "src": "3294:1:18",
4600 "subdenomination": null,
4601 "typeDescriptions": {
4602 "typeIdentifier": "t_rational_0_by_1",
4603 "typeString": "int_const 0"
4604 },
4605 "value": "0"
4606 },
4607 "nodeType": "VariableDeclarationStatement",
4608 "src": "3285:10:18"
4609 },
4610 "loopExpression": {
4611 "expression": {
4612 "argumentTypes": null,
4613 "id": 3874,
4614 "isConstant": false,
4615 "isLValue": false,
4616 "isPure": false,
4617 "lValueRequested": false,
4618 "nodeType": "UnaryOperation",
4619 "operator": "++",
4620 "prefix": false,
4621 "src": "3322:3:18",
4622 "subExpression": {
4623 "argumentTypes": null,
4624 "id": 3873,
4625 "name": "i",
4626 "nodeType": "Identifier",
4627 "overloadedDeclarations": [],
4628 "referencedDeclaration": 3866,
4629 "src": "3322:1:18",
4630 "typeDescriptions": {
4631 "typeIdentifier": "t_uint256",
4632 "typeString": "uint256"
4633 }
4634 },
4635 "typeDescriptions": {
4636 "typeIdentifier": "t_uint256",
4637 "typeString": "uint256"
4638 }
4639 },
4640 "id": 3875,
4641 "nodeType": "ExpressionStatement",
4642 "src": "3322:3:18"
4643 },
4644 "nodeType": "ForStatement",
4645 "src": "3281:132:18"
4646 },
4647 {
4648 "assignments": [
4649 3893
4650 ],
4651 "declarations": [
4652 {
4653 "constant": false,
4654 "id": 3893,
4655 "name": "res",
4656 "nodeType": "VariableDeclaration",
4657 "scope": 3918,
4658 "src": "3423:20:18",
4659 "stateVariable": false,
4660 "storageLocation": "memory",
4661 "typeDescriptions": {
4662 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4663 "typeString": "bytes32[]"
4664 },
4665 "typeName": {
4666 "baseType": {
4667 "id": 3891,
4668 "name": "bytes32",
4669 "nodeType": "ElementaryTypeName",
4670 "src": "3423:7:18",
4671 "typeDescriptions": {
4672 "typeIdentifier": "t_bytes32",
4673 "typeString": "bytes32"
4674 }
4675 },
4676 "id": 3892,
4677 "length": null,
4678 "nodeType": "ArrayTypeName",
4679 "src": "3423:9:18",
4680 "typeDescriptions": {
4681 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
4682 "typeString": "bytes32[]"
4683 }
4684 },
4685 "value": null,
4686 "visibility": "internal"
4687 }
4688 ],
4689 "id": 3899,
4690 "initialValue": {
4691 "argumentTypes": null,
4692 "arguments": [
4693 {
4694 "argumentTypes": null,
4695 "hexValue": "31",
4696 "id": 3897,
4697 "isConstant": false,
4698 "isLValue": false,
4699 "isPure": true,
4700 "kind": "number",
4701 "lValueRequested": false,
4702 "nodeType": "Literal",
4703 "src": "3460:1:18",
4704 "subdenomination": null,
4705 "typeDescriptions": {
4706 "typeIdentifier": "t_rational_1_by_1",
4707 "typeString": "int_const 1"
4708 },
4709 "value": "1"
4710 }
4711 ],
4712 "expression": {
4713 "argumentTypes": [
4714 {
4715 "typeIdentifier": "t_rational_1_by_1",
4716 "typeString": "int_const 1"
4717 }
4718 ],
4719 "id": 3896,
4720 "isConstant": false,
4721 "isLValue": false,
4722 "isPure": true,
4723 "lValueRequested": false,
4724 "nodeType": "NewExpression",
4725 "src": "3446:13:18",
4726 "typeDescriptions": {
4727 "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
4728 "typeString": "function (uint256) pure returns (bytes32[] memory)"
4729 },
4730 "typeName": {
4731 "baseType": {
4732 "id": 3894,
4733 "name": "bytes32",
4734 "nodeType": "ElementaryTypeName",
4735 "src": "3450:7:18",
4736 "typeDescriptions": {
4737 "typeIdentifier": "t_bytes32",
4738 "typeString": "bytes32"
4739 }
4740 },
4741 "id": 3895,
4742 "length": null,
4743 "nodeType": "ArrayTypeName",
4744 "src": "3450:9:18",
4745 "typeDescriptions": {
4746 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
4747 "typeString": "bytes32[]"
4748 }
4749 }
4750 },
4751 "id": 3898,
4752 "isConstant": false,
4753 "isLValue": false,
4754 "isPure": true,
4755 "kind": "functionCall",
4756 "lValueRequested": false,
4757 "names": [],
4758 "nodeType": "FunctionCall",
4759 "src": "3446:16:18",
4760 "typeDescriptions": {
4761 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
4762 "typeString": "bytes32[] memory"
4763 }
4764 },
4765 "nodeType": "VariableDeclarationStatement",
4766 "src": "3423:39:18"
4767 },
4768 {
4769 "expression": {
4770 "argumentTypes": null,
4771 "id": 3906,
4772 "isConstant": false,
4773 "isLValue": false,
4774 "isPure": false,
4775 "lValueRequested": false,
4776 "leftHandSide": {
4777 "argumentTypes": null,
4778 "baseExpression": {
4779 "argumentTypes": null,
4780 "id": 3900,
4781 "name": "res",
4782 "nodeType": "Identifier",
4783 "overloadedDeclarations": [],
4784 "referencedDeclaration": 3893,
4785 "src": "3472:3:18",
4786 "typeDescriptions": {
4787 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4788 "typeString": "bytes32[] memory"
4789 }
4790 },
4791 "id": 3902,
4792 "indexExpression": {
4793 "argumentTypes": null,
4794 "hexValue": "30",
4795 "id": 3901,
4796 "isConstant": false,
4797 "isLValue": false,
4798 "isPure": true,
4799 "kind": "number",
4800 "lValueRequested": false,
4801 "nodeType": "Literal",
4802 "src": "3476:1:18",
4803 "subdenomination": null,
4804 "typeDescriptions": {
4805 "typeIdentifier": "t_rational_0_by_1",
4806 "typeString": "int_const 0"
4807 },
4808 "value": "0"
4809 },
4810 "isConstant": false,
4811 "isLValue": true,
4812 "isPure": false,
4813 "lValueRequested": true,
4814 "nodeType": "IndexAccess",
4815 "src": "3472:6:18",
4816 "typeDescriptions": {
4817 "typeIdentifier": "t_bytes32",
4818 "typeString": "bytes32"
4819 }
4820 },
4821 "nodeType": "Assignment",
4822 "operator": "=",
4823 "rightHandSide": {
4824 "argumentTypes": null,
4825 "arguments": [
4826 {
4827 "argumentTypes": null,
4828 "id": 3904,
4829 "name": "sum",
4830 "nodeType": "Identifier",
4831 "overloadedDeclarations": [],
4832 "referencedDeclaration": 3862,
4833 "src": "3489:3:18",
4834 "typeDescriptions": {
4835 "typeIdentifier": "t_uint256",
4836 "typeString": "uint256"
4837 }
4838 }
4839 ],
4840 "expression": {
4841 "argumentTypes": [
4842 {
4843 "typeIdentifier": "t_uint256",
4844 "typeString": "uint256"
4845 }
4846 ],
4847 "id": 3903,
4848 "isConstant": false,
4849 "isLValue": false,
4850 "isPure": true,
4851 "lValueRequested": false,
4852 "nodeType": "ElementaryTypeNameExpression",
4853 "src": "3481:7:18",
4854 "typeDescriptions": {
4855 "typeIdentifier": "t_type$_t_bytes32_$",
4856 "typeString": "type(bytes32)"
4857 },
4858 "typeName": "bytes32"
4859 },
4860 "id": 3905,
4861 "isConstant": false,
4862 "isLValue": false,
4863 "isPure": false,
4864 "kind": "typeConversion",
4865 "lValueRequested": false,
4866 "names": [],
4867 "nodeType": "FunctionCall",
4868 "src": "3481:12:18",
4869 "typeDescriptions": {
4870 "typeIdentifier": "t_bytes32",
4871 "typeString": "bytes32"
4872 }
4873 },
4874 "src": "3472:21:18",
4875 "typeDescriptions": {
4876 "typeIdentifier": "t_bytes32",
4877 "typeString": "bytes32"
4878 }
4879 },
4880 "id": 3907,
4881 "nodeType": "ExpressionStatement",
4882 "src": "3472:21:18"
4883 },
4884 {
4885 "expression": {
4886 "argumentTypes": null,
4887 "arguments": [
4888 {
4889 "argumentTypes": null,
4890 "id": 3913,
4891 "name": "id",
4892 "nodeType": "Identifier",
4893 "overloadedDeclarations": [],
4894 "referencedDeclaration": 3853,
4895 "src": "3554:2:18",
4896 "typeDescriptions": {
4897 "typeIdentifier": "t_uint256",
4898 "typeString": "uint256"
4899 }
4900 },
4901 {
4902 "argumentTypes": null,
4903 "id": 3914,
4904 "name": "res",
4905 "nodeType": "Identifier",
4906 "overloadedDeclarations": [],
4907 "referencedDeclaration": 3893,
4908 "src": "3558:3:18",
4909 "typeDescriptions": {
4910 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4911 "typeString": "bytes32[] memory"
4912 }
4913 }
4914 ],
4915 "expression": {
4916 "argumentTypes": [
4917 {
4918 "typeIdentifier": "t_uint256",
4919 "typeString": "uint256"
4920 },
4921 {
4922 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4923 "typeString": "bytes32[] memory"
4924 }
4925 ],
4926 "expression": {
4927 "argumentTypes": null,
4928 "arguments": [
4929 {
4930 "argumentTypes": null,
4931 "expression": {
4932 "argumentTypes": null,
4933 "id": 3909,
4934 "name": "msg",
4935 "nodeType": "Identifier",
4936 "overloadedDeclarations": [],
4937 "referencedDeclaration": 12092,
4938 "src": "3522:3:18",
4939 "typeDescriptions": {
4940 "typeIdentifier": "t_magic_message",
4941 "typeString": "msg"
4942 }
4943 },
4944 "id": 3910,
4945 "isConstant": false,
4946 "isLValue": false,
4947 "isPure": false,
4948 "lValueRequested": false,
4949 "memberName": "sender",
4950 "nodeType": "MemberAccess",
4951 "referencedDeclaration": null,
4952 "src": "3522:10:18",
4953 "typeDescriptions": {
4954 "typeIdentifier": "t_address",
4955 "typeString": "address"
4956 }
4957 }
4958 ],
4959 "expression": {
4960 "argumentTypes": [
4961 {
4962 "typeIdentifier": "t_address",
4963 "typeString": "address"
4964 }
4965 ],
4966 "id": 3908,
4967 "name": "DispatchInterface",
4968 "nodeType": "Identifier",
4969 "overloadedDeclarations": [],
4970 "referencedDeclaration": 10147,
4971 "src": "3504:17:18",
4972 "typeDescriptions": {
4973 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
4974 "typeString": "type(contract DispatchInterface)"
4975 }
4976 },
4977 "id": 3911,
4978 "isConstant": false,
4979 "isLValue": false,
4980 "isPure": false,
4981 "kind": "typeConversion",
4982 "lValueRequested": false,
4983 "names": [],
4984 "nodeType": "FunctionCall",
4985 "src": "3504:29:18",
4986 "typeDescriptions": {
4987 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
4988 "typeString": "contract DispatchInterface"
4989 }
4990 },
4991 "id": 3912,
4992 "isConstant": false,
4993 "isLValue": false,
4994 "isPure": false,
4995 "lValueRequested": false,
4996 "memberName": "respondBytes32Array",
4997 "nodeType": "MemberAccess",
4998 "referencedDeclaration": 10082,
4999 "src": "3504:49:18",
5000 "typeDescriptions": {
5001 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bool_$",
5002 "typeString": "function (uint256,bytes32[] memory) external returns (bool)"
5003 }
5004 },
5005 "id": 3915,
5006 "isConstant": false,
5007 "isLValue": false,
5008 "isPure": false,
5009 "kind": "functionCall",
5010 "lValueRequested": false,
5011 "names": [],
5012 "nodeType": "FunctionCall",
5013 "src": "3504:58:18",
5014 "typeDescriptions": {
5015 "typeIdentifier": "t_bool",
5016 "typeString": "bool"
5017 }
5018 },
5019 "id": 3916,
5020 "nodeType": "ExpressionStatement",
5021 "src": "3504:58:18"
5022 }
5023 ]
5024 },
5025 "documentation": null,
5026 "id": 3918,
5027 "implemented": true,
5028 "isConstructor": false,
5029 "isDeclaredConst": false,
5030 "modifiers": [],
5031 "name": "endpoint3",
5032 "nodeType": "FunctionDefinition",
5033 "parameters": {
5034 "id": 3859,
5035 "nodeType": "ParameterList",
5036 "parameters": [
5037 {
5038 "constant": false,
5039 "id": 3853,
5040 "name": "id",
5041 "nodeType": "VariableDeclaration",
5042 "scope": 3918,
5043 "src": "3179:10:18",
5044 "stateVariable": false,
5045 "storageLocation": "default",
5046 "typeDescriptions": {
5047 "typeIdentifier": "t_uint256",
5048 "typeString": "uint256"
5049 },
5050 "typeName": {
5051 "id": 3852,
5052 "name": "uint256",
5053 "nodeType": "ElementaryTypeName",
5054 "src": "3179:7:18",
5055 "typeDescriptions": {
5056 "typeIdentifier": "t_uint256",
5057 "typeString": "uint256"
5058 }
5059 },
5060 "value": null,
5061 "visibility": "internal"
5062 },
5063 {
5064 "constant": false,
5065 "id": 3855,
5066 "name": "",
5067 "nodeType": "VariableDeclaration",
5068 "scope": 3918,
5069 "src": "3191:6:18",
5070 "stateVariable": false,
5071 "storageLocation": "default",
5072 "typeDescriptions": {
5073 "typeIdentifier": "t_string_memory_ptr",
5074 "typeString": "string"
5075 },
5076 "typeName": {
5077 "id": 3854,
5078 "name": "string",
5079 "nodeType": "ElementaryTypeName",
5080 "src": "3191:6:18",
5081 "typeDescriptions": {
5082 "typeIdentifier": "t_string_storage_ptr",
5083 "typeString": "string"
5084 }
5085 },
5086 "value": null,
5087 "visibility": "internal"
5088 },
5089 {
5090 "constant": false,
5091 "id": 3858,
5092 "name": "endpointParams",
5093 "nodeType": "VariableDeclaration",
5094 "scope": 3918,
5095 "src": "3215:24:18",
5096 "stateVariable": false,
5097 "storageLocation": "default",
5098 "typeDescriptions": {
5099 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
5100 "typeString": "bytes32[]"
5101 },
5102 "typeName": {
5103 "baseType": {
5104 "id": 3856,
5105 "name": "bytes32",
5106 "nodeType": "ElementaryTypeName",
5107 "src": "3215:7:18",
5108 "typeDescriptions": {
5109 "typeIdentifier": "t_bytes32",
5110 "typeString": "bytes32"
5111 }
5112 },
5113 "id": 3857,
5114 "length": null,
5115 "nodeType": "ArrayTypeName",
5116 "src": "3215:9:18",
5117 "typeDescriptions": {
5118 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
5119 "typeString": "bytes32[]"
5120 }
5121 },
5122 "value": null,
5123 "visibility": "internal"
5124 }
5125 ],
5126 "src": "3178:62:18"
5127 },
5128 "payable": false,
5129 "returnParameters": {
5130 "id": 3860,
5131 "nodeType": "ParameterList",
5132 "parameters": [],
5133 "src": "3249:0:18"
5134 },
5135 "scope": 4057,
5136 "src": "3160:409:18",
5137 "stateMutability": "nonpayable",
5138 "superFunction": null,
5139 "visibility": "internal"
5140 },
5141 {
5142 "body": {
5143 "id": 3938,
5144 "nodeType": "Block",
5145 "src": "3725:77:18",
5146 "statements": [
5147 {
5148 "expression": {
5149 "argumentTypes": null,
5150 "arguments": [
5151 {
5152 "argumentTypes": null,
5153 "id": 3933,
5154 "name": "id",
5155 "nodeType": "Identifier",
5156 "overloadedDeclarations": [],
5157 "referencedDeclaration": 3920,
5158 "src": "3774:2:18",
5159 "typeDescriptions": {
5160 "typeIdentifier": "t_uint256",
5161 "typeString": "uint256"
5162 }
5163 },
5164 {
5165 "argumentTypes": null,
5166 "hexValue": "48656c6c6f",
5167 "id": 3934,
5168 "isConstant": false,
5169 "isLValue": false,
5170 "isPure": true,
5171 "kind": "string",
5172 "lValueRequested": false,
5173 "nodeType": "Literal",
5174 "src": "3778:7:18",
5175 "subdenomination": null,
5176 "typeDescriptions": {
5177 "typeIdentifier": "t_stringliteral_06b3dfaec148fb1bb2b066f10ec285e7c9bf402ab32aa78a5d38e34566810cd2",
5178 "typeString": "literal_string \"Hello\""
5179 },
5180 "value": "Hello"
5181 },
5182 {
5183 "argumentTypes": null,
5184 "hexValue": "576f726c64",
5185 "id": 3935,
5186 "isConstant": false,
5187 "isLValue": false,
5188 "isPure": true,
5189 "kind": "string",
5190 "lValueRequested": false,
5191 "nodeType": "Literal",
5192 "src": "3787:7:18",
5193 "subdenomination": null,
5194 "typeDescriptions": {
5195 "typeIdentifier": "t_stringliteral_f2208c967df089f60420785795c0a9ba8896b0f6f1867fa7f1f12ad6f79c1a18",
5196 "typeString": "literal_string \"World\""
5197 },
5198 "value": "World"
5199 }
5200 ],
5201 "expression": {
5202 "argumentTypes": [
5203 {
5204 "typeIdentifier": "t_uint256",
5205 "typeString": "uint256"
5206 },
5207 {
5208 "typeIdentifier": "t_stringliteral_06b3dfaec148fb1bb2b066f10ec285e7c9bf402ab32aa78a5d38e34566810cd2",
5209 "typeString": "literal_string \"Hello\""
5210 },
5211 {
5212 "typeIdentifier": "t_stringliteral_f2208c967df089f60420785795c0a9ba8896b0f6f1867fa7f1f12ad6f79c1a18",
5213 "typeString": "literal_string \"World\""
5214 }
5215 ],
5216 "expression": {
5217 "argumentTypes": null,
5218 "arguments": [
5219 {
5220 "argumentTypes": null,
5221 "expression": {
5222 "argumentTypes": null,
5223 "id": 3929,
5224 "name": "msg",
5225 "nodeType": "Identifier",
5226 "overloadedDeclarations": [],
5227 "referencedDeclaration": 12092,
5228 "src": "3753:3:18",
5229 "typeDescriptions": {
5230 "typeIdentifier": "t_magic_message",
5231 "typeString": "msg"
5232 }
5233 },
5234 "id": 3930,
5235 "isConstant": false,
5236 "isLValue": false,
5237 "isPure": false,
5238 "lValueRequested": false,
5239 "memberName": "sender",
5240 "nodeType": "MemberAccess",
5241 "referencedDeclaration": null,
5242 "src": "3753:10:18",
5243 "typeDescriptions": {
5244 "typeIdentifier": "t_address",
5245 "typeString": "address"
5246 }
5247 }
5248 ],
5249 "expression": {
5250 "argumentTypes": [
5251 {
5252 "typeIdentifier": "t_address",
5253 "typeString": "address"
5254 }
5255 ],
5256 "id": 3928,
5257 "name": "DispatchInterface",
5258 "nodeType": "Identifier",
5259 "overloadedDeclarations": [],
5260 "referencedDeclaration": 10147,
5261 "src": "3735:17:18",
5262 "typeDescriptions": {
5263 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
5264 "typeString": "type(contract DispatchInterface)"
5265 }
5266 },
5267 "id": 3931,
5268 "isConstant": false,
5269 "isLValue": false,
5270 "isPure": false,
5271 "kind": "typeConversion",
5272 "lValueRequested": false,
5273 "names": [],
5274 "nodeType": "FunctionCall",
5275 "src": "3735:29:18",
5276 "typeDescriptions": {
5277 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
5278 "typeString": "contract DispatchInterface"
5279 }
5280 },
5281 "id": 3932,
5282 "isConstant": false,
5283 "isLValue": false,
5284 "isPure": false,
5285 "lValueRequested": false,
5286 "memberName": "respond2",
5287 "nodeType": "MemberAccess",
5288 "referencedDeclaration": 10044,
5289 "src": "3735:38:18",
5290 "typeDescriptions": {
5291 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$",
5292 "typeString": "function (uint256,string memory,string memory) external returns (bool)"
5293 }
5294 },
5295 "id": 3936,
5296 "isConstant": false,
5297 "isLValue": false,
5298 "isPure": false,
5299 "kind": "functionCall",
5300 "lValueRequested": false,
5301 "names": [],
5302 "nodeType": "FunctionCall",
5303 "src": "3735:60:18",
5304 "typeDescriptions": {
5305 "typeIdentifier": "t_bool",
5306 "typeString": "bool"
5307 }
5308 },
5309 "id": 3937,
5310 "nodeType": "ExpressionStatement",
5311 "src": "3735:60:18"
5312 }
5313 ]
5314 },
5315 "documentation": null,
5316 "id": 3939,
5317 "implemented": true,
5318 "isConstructor": false,
5319 "isDeclaredConst": false,
5320 "modifiers": [],
5321 "name": "endpoint4",
5322 "nodeType": "FunctionDefinition",
5323 "parameters": {
5324 "id": 3926,
5325 "nodeType": "ParameterList",
5326 "parameters": [
5327 {
5328 "constant": false,
5329 "id": 3920,
5330 "name": "id",
5331 "nodeType": "VariableDeclaration",
5332 "scope": 3939,
5333 "src": "3649:10:18",
5334 "stateVariable": false,
5335 "storageLocation": "default",
5336 "typeDescriptions": {
5337 "typeIdentifier": "t_uint256",
5338 "typeString": "uint256"
5339 },
5340 "typeName": {
5341 "id": 3919,
5342 "name": "uint256",
5343 "nodeType": "ElementaryTypeName",
5344 "src": "3649:7:18",
5345 "typeDescriptions": {
5346 "typeIdentifier": "t_uint256",
5347 "typeString": "uint256"
5348 }
5349 },
5350 "value": null,
5351 "visibility": "internal"
5352 },
5353 {
5354 "constant": false,
5355 "id": 3922,
5356 "name": "",
5357 "nodeType": "VariableDeclaration",
5358 "scope": 3939,
5359 "src": "3661:6:18",
5360 "stateVariable": false,
5361 "storageLocation": "default",
5362 "typeDescriptions": {
5363 "typeIdentifier": "t_string_memory_ptr",
5364 "typeString": "string"
5365 },
5366 "typeName": {
5367 "id": 3921,
5368 "name": "string",
5369 "nodeType": "ElementaryTypeName",
5370 "src": "3661:6:18",
5371 "typeDescriptions": {
5372 "typeIdentifier": "t_string_storage_ptr",
5373 "typeString": "string"
5374 }
5375 },
5376 "value": null,
5377 "visibility": "internal"
5378 },
5379 {
5380 "constant": false,
5381 "id": 3925,
5382 "name": "",
5383 "nodeType": "VariableDeclaration",
5384 "scope": 3939,
5385 "src": "3685:9:18",
5386 "stateVariable": false,
5387 "storageLocation": "default",
5388 "typeDescriptions": {
5389 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
5390 "typeString": "bytes32[]"
5391 },
5392 "typeName": {
5393 "baseType": {
5394 "id": 3923,
5395 "name": "bytes32",
5396 "nodeType": "ElementaryTypeName",
5397 "src": "3685:7:18",
5398 "typeDescriptions": {
5399 "typeIdentifier": "t_bytes32",
5400 "typeString": "bytes32"
5401 }
5402 },
5403 "id": 3924,
5404 "length": null,
5405 "nodeType": "ArrayTypeName",
5406 "src": "3685:9:18",
5407 "typeDescriptions": {
5408 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
5409 "typeString": "bytes32[]"
5410 }
5411 },
5412 "value": null,
5413 "visibility": "internal"
5414 }
5415 ],
5416 "src": "3648:68:18"
5417 },
5418 "payable": false,
5419 "returnParameters": {
5420 "id": 3927,
5421 "nodeType": "ParameterList",
5422 "parameters": [],
5423 "src": "3725:0:18"
5424 },
5425 "scope": 4057,
5426 "src": "3630:172:18",
5427 "stateMutability": "nonpayable",
5428 "superFunction": null,
5429 "visibility": "internal"
5430 },
5431 {
5432 "body": {
5433 "id": 3996,
5434 "nodeType": "Block",
5435 "src": "3875:333:18",
5436 "statements": [
5437 {
5438 "assignments": [
5439 3947
5440 ],
5441 "declarations": [
5442 {
5443 "constant": false,
5444 "id": 3947,
5445 "name": "_baseBytes",
5446 "nodeType": "VariableDeclaration",
5447 "scope": 3997,
5448 "src": "3885:23:18",
5449 "stateVariable": false,
5450 "storageLocation": "memory",
5451 "typeDescriptions": {
5452 "typeIdentifier": "t_bytes_memory_ptr",
5453 "typeString": "bytes"
5454 },
5455 "typeName": {
5456 "id": 3946,
5457 "name": "bytes",
5458 "nodeType": "ElementaryTypeName",
5459 "src": "3885:5:18",
5460 "typeDescriptions": {
5461 "typeIdentifier": "t_bytes_storage_ptr",
5462 "typeString": "bytes"
5463 }
5464 },
5465 "value": null,
5466 "visibility": "internal"
5467 }
5468 ],
5469 "id": 3951,
5470 "initialValue": {
5471 "argumentTypes": null,
5472 "arguments": [
5473 {
5474 "argumentTypes": null,
5475 "id": 3949,
5476 "name": "_base",
5477 "nodeType": "Identifier",
5478 "overloadedDeclarations": [],
5479 "referencedDeclaration": 3941,
5480 "src": "3917:5:18",
5481 "typeDescriptions": {
5482 "typeIdentifier": "t_string_memory_ptr",
5483 "typeString": "string memory"
5484 }
5485 }
5486 ],
5487 "expression": {
5488 "argumentTypes": [
5489 {
5490 "typeIdentifier": "t_string_memory_ptr",
5491 "typeString": "string memory"
5492 }
5493 ],
5494 "id": 3948,
5495 "isConstant": false,
5496 "isLValue": false,
5497 "isPure": true,
5498 "lValueRequested": false,
5499 "nodeType": "ElementaryTypeNameExpression",
5500 "src": "3911:5:18",
5501 "typeDescriptions": {
5502 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
5503 "typeString": "type(bytes storage pointer)"
5504 },
5505 "typeName": "bytes"
5506 },
5507 "id": 3950,
5508 "isConstant": false,
5509 "isLValue": false,
5510 "isPure": false,
5511 "kind": "typeConversion",
5512 "lValueRequested": false,
5513 "names": [],
5514 "nodeType": "FunctionCall",
5515 "src": "3911:12:18",
5516 "typeDescriptions": {
5517 "typeIdentifier": "t_bytes_memory",
5518 "typeString": "bytes memory"
5519 }
5520 },
5521 "nodeType": "VariableDeclarationStatement",
5522 "src": "3885:38:18"
5523 },
5524 {
5525 "assignments": [
5526 3953
5527 ],
5528 "declarations": [
5529 {
5530 "constant": false,
5531 "id": 3953,
5532 "name": "_tempValue",
5533 "nodeType": "VariableDeclaration",
5534 "scope": 3997,
5535 "src": "3933:24:18",
5536 "stateVariable": false,
5537 "storageLocation": "memory",
5538 "typeDescriptions": {
5539 "typeIdentifier": "t_string_memory_ptr",
5540 "typeString": "string"
5541 },
5542 "typeName": {
5543 "id": 3952,
5544 "name": "string",
5545 "nodeType": "ElementaryTypeName",
5546 "src": "3933:6:18",
5547 "typeDescriptions": {
5548 "typeIdentifier": "t_string_storage_ptr",
5549 "typeString": "string"
5550 }
5551 },
5552 "value": null,
5553 "visibility": "internal"
5554 }
5555 ],
5556 "id": 3959,
5557 "initialValue": {
5558 "argumentTypes": null,
5559 "arguments": [
5560 {
5561 "argumentTypes": null,
5562 "expression": {
5563 "argumentTypes": null,
5564 "id": 3956,
5565 "name": "_baseBytes",
5566 "nodeType": "Identifier",
5567 "overloadedDeclarations": [],
5568 "referencedDeclaration": 3947,
5569 "src": "3971:10:18",
5570 "typeDescriptions": {
5571 "typeIdentifier": "t_bytes_memory_ptr",
5572 "typeString": "bytes memory"
5573 }
5574 },
5575 "id": 3957,
5576 "isConstant": false,
5577 "isLValue": false,
5578 "isPure": false,
5579 "lValueRequested": false,
5580 "memberName": "length",
5581 "nodeType": "MemberAccess",
5582 "referencedDeclaration": null,
5583 "src": "3971:17:18",
5584 "typeDescriptions": {
5585 "typeIdentifier": "t_uint256",
5586 "typeString": "uint256"
5587 }
5588 }
5589 ],
5590 "expression": {
5591 "argumentTypes": [
5592 {
5593 "typeIdentifier": "t_uint256",
5594 "typeString": "uint256"
5595 }
5596 ],
5597 "id": 3955,
5598 "isConstant": false,
5599 "isLValue": false,
5600 "isPure": true,
5601 "lValueRequested": false,
5602 "nodeType": "NewExpression",
5603 "src": "3960:10:18",
5604 "typeDescriptions": {
5605 "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_$",
5606 "typeString": "function (uint256) pure returns (string memory)"
5607 },
5608 "typeName": {
5609 "id": 3954,
5610 "name": "string",
5611 "nodeType": "ElementaryTypeName",
5612 "src": "3964:6:18",
5613 "typeDescriptions": {
5614 "typeIdentifier": "t_string_storage_ptr",
5615 "typeString": "string"
5616 }
5617 }
5618 },
5619 "id": 3958,
5620 "isConstant": false,
5621 "isLValue": false,
5622 "isPure": false,
5623 "kind": "functionCall",
5624 "lValueRequested": false,
5625 "names": [],
5626 "nodeType": "FunctionCall",
5627 "src": "3960:29:18",
5628 "typeDescriptions": {
5629 "typeIdentifier": "t_string_memory",
5630 "typeString": "string memory"
5631 }
5632 },
5633 "nodeType": "VariableDeclarationStatement",
5634 "src": "3933:56:18"
5635 },
5636 {
5637 "assignments": [
5638 3961
5639 ],
5640 "declarations": [
5641 {
5642 "constant": false,
5643 "id": 3961,
5644 "name": "_newValue",
5645 "nodeType": "VariableDeclaration",
5646 "scope": 3997,
5647 "src": "3999:22:18",
5648 "stateVariable": false,
5649 "storageLocation": "memory",
5650 "typeDescriptions": {
5651 "typeIdentifier": "t_bytes_memory_ptr",
5652 "typeString": "bytes"
5653 },
5654 "typeName": {
5655 "id": 3960,
5656 "name": "bytes",
5657 "nodeType": "ElementaryTypeName",
5658 "src": "3999:5:18",
5659 "typeDescriptions": {
5660 "typeIdentifier": "t_bytes_storage_ptr",
5661 "typeString": "bytes"
5662 }
5663 },
5664 "value": null,
5665 "visibility": "internal"
5666 }
5667 ],
5668 "id": 3965,
5669 "initialValue": {
5670 "argumentTypes": null,
5671 "arguments": [
5672 {
5673 "argumentTypes": null,
5674 "id": 3963,
5675 "name": "_tempValue",
5676 "nodeType": "Identifier",
5677 "overloadedDeclarations": [],
5678 "referencedDeclaration": 3953,
5679 "src": "4030:10:18",
5680 "typeDescriptions": {
5681 "typeIdentifier": "t_string_memory_ptr",
5682 "typeString": "string memory"
5683 }
5684 }
5685 ],
5686 "expression": {
5687 "argumentTypes": [
5688 {
5689 "typeIdentifier": "t_string_memory_ptr",
5690 "typeString": "string memory"
5691 }
5692 ],
5693 "id": 3962,
5694 "isConstant": false,
5695 "isLValue": false,
5696 "isPure": true,
5697 "lValueRequested": false,
5698 "nodeType": "ElementaryTypeNameExpression",
5699 "src": "4024:5:18",
5700 "typeDescriptions": {
5701 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
5702 "typeString": "type(bytes storage pointer)"
5703 },
5704 "typeName": "bytes"
5705 },
5706 "id": 3964,
5707 "isConstant": false,
5708 "isLValue": false,
5709 "isPure": false,
5710 "kind": "typeConversion",
5711 "lValueRequested": false,
5712 "names": [],
5713 "nodeType": "FunctionCall",
5714 "src": "4024:17:18",
5715 "typeDescriptions": {
5716 "typeIdentifier": "t_bytes_memory",
5717 "typeString": "bytes memory"
5718 }
5719 },
5720 "nodeType": "VariableDeclarationStatement",
5721 "src": "3999:42:18"
5722 },
5723 {
5724 "body": {
5725 "id": 3990,
5726 "nodeType": "Block",
5727 "src": "4089:78:18",
5728 "statements": [
5729 {
5730 "expression": {
5731 "argumentTypes": null,
5732 "id": 3988,
5733 "isConstant": false,
5734 "isLValue": false,
5735 "isPure": false,
5736 "lValueRequested": false,
5737 "leftHandSide": {
5738 "argumentTypes": null,
5739 "baseExpression": {
5740 "argumentTypes": null,
5741 "id": 3977,
5742 "name": "_newValue",
5743 "nodeType": "Identifier",
5744 "overloadedDeclarations": [],
5745 "referencedDeclaration": 3961,
5746 "src": "4103:9:18",
5747 "typeDescriptions": {
5748 "typeIdentifier": "t_bytes_memory_ptr",
5749 "typeString": "bytes memory"
5750 }
5751 },
5752 "id": 3984,
5753 "indexExpression": {
5754 "argumentTypes": null,
5755 "commonType": {
5756 "typeIdentifier": "t_uint256",
5757 "typeString": "uint256"
5758 },
5759 "id": 3983,
5760 "isConstant": false,
5761 "isLValue": false,
5762 "isPure": false,
5763 "lValueRequested": false,
5764 "leftExpression": {
5765 "argumentTypes": null,
5766 "commonType": {
5767 "typeIdentifier": "t_uint256",
5768 "typeString": "uint256"
5769 },
5770 "id": 3981,
5771 "isConstant": false,
5772 "isLValue": false,
5773 "isPure": false,
5774 "lValueRequested": false,
5775 "leftExpression": {
5776 "argumentTypes": null,
5777 "expression": {
5778 "argumentTypes": null,
5779 "id": 3978,
5780 "name": "_baseBytes",
5781 "nodeType": "Identifier",
5782 "overloadedDeclarations": [],
5783 "referencedDeclaration": 3947,
5784 "src": "4114:10:18",
5785 "typeDescriptions": {
5786 "typeIdentifier": "t_bytes_memory_ptr",
5787 "typeString": "bytes memory"
5788 }
5789 },
5790 "id": 3979,
5791 "isConstant": false,
5792 "isLValue": false,
5793 "isPure": false,
5794 "lValueRequested": false,
5795 "memberName": "length",
5796 "nodeType": "MemberAccess",
5797 "referencedDeclaration": null,
5798 "src": "4114:17:18",
5799 "typeDescriptions": {
5800 "typeIdentifier": "t_uint256",
5801 "typeString": "uint256"
5802 }
5803 },
5804 "nodeType": "BinaryOperation",
5805 "operator": "-",
5806 "rightExpression": {
5807 "argumentTypes": null,
5808 "id": 3980,
5809 "name": "i",
5810 "nodeType": "Identifier",
5811 "overloadedDeclarations": [],
5812 "referencedDeclaration": 3967,
5813 "src": "4134:1:18",
5814 "typeDescriptions": {
5815 "typeIdentifier": "t_uint256",
5816 "typeString": "uint256"
5817 }
5818 },
5819 "src": "4114:21:18",
5820 "typeDescriptions": {
5821 "typeIdentifier": "t_uint256",
5822 "typeString": "uint256"
5823 }
5824 },
5825 "nodeType": "BinaryOperation",
5826 "operator": "-",
5827 "rightExpression": {
5828 "argumentTypes": null,
5829 "hexValue": "31",
5830 "id": 3982,
5831 "isConstant": false,
5832 "isLValue": false,
5833 "isPure": true,
5834 "kind": "number",
5835 "lValueRequested": false,
5836 "nodeType": "Literal",
5837 "src": "4138:1:18",
5838 "subdenomination": null,
5839 "typeDescriptions": {
5840 "typeIdentifier": "t_rational_1_by_1",
5841 "typeString": "int_const 1"
5842 },
5843 "value": "1"
5844 },
5845 "src": "4114:25:18",
5846 "typeDescriptions": {
5847 "typeIdentifier": "t_uint256",
5848 "typeString": "uint256"
5849 }
5850 },
5851 "isConstant": false,
5852 "isLValue": true,
5853 "isPure": false,
5854 "lValueRequested": true,
5855 "nodeType": "IndexAccess",
5856 "src": "4103:37:18",
5857 "typeDescriptions": {
5858 "typeIdentifier": "t_bytes1",
5859 "typeString": "bytes1"
5860 }
5861 },
5862 "nodeType": "Assignment",
5863 "operator": "=",
5864 "rightHandSide": {
5865 "argumentTypes": null,
5866 "baseExpression": {
5867 "argumentTypes": null,
5868 "id": 3985,
5869 "name": "_baseBytes",
5870 "nodeType": "Identifier",
5871 "overloadedDeclarations": [],
5872 "referencedDeclaration": 3947,
5873 "src": "4143:10:18",
5874 "typeDescriptions": {
5875 "typeIdentifier": "t_bytes_memory_ptr",
5876 "typeString": "bytes memory"
5877 }
5878 },
5879 "id": 3987,
5880 "indexExpression": {
5881 "argumentTypes": null,
5882 "id": 3986,
5883 "name": "i",
5884 "nodeType": "Identifier",
5885 "overloadedDeclarations": [],
5886 "referencedDeclaration": 3967,
5887 "src": "4154:1:18",
5888 "typeDescriptions": {
5889 "typeIdentifier": "t_uint256",
5890 "typeString": "uint256"
5891 }
5892 },
5893 "isConstant": false,
5894 "isLValue": true,
5895 "isPure": false,
5896 "lValueRequested": false,
5897 "nodeType": "IndexAccess",
5898 "src": "4143:13:18",
5899 "typeDescriptions": {
5900 "typeIdentifier": "t_bytes1",
5901 "typeString": "bytes1"
5902 }
5903 },
5904 "src": "4103:53:18",
5905 "typeDescriptions": {
5906 "typeIdentifier": "t_bytes1",
5907 "typeString": "bytes1"
5908 }
5909 },
5910 "id": 3989,
5911 "nodeType": "ExpressionStatement",
5912 "src": "4103:53:18"
5913 }
5914 ]
5915 },
5916 "condition": {
5917 "argumentTypes": null,
5918 "commonType": {
5919 "typeIdentifier": "t_uint256",
5920 "typeString": "uint256"
5921 },
5922 "id": 3973,
5923 "isConstant": false,
5924 "isLValue": false,
5925 "isPure": false,
5926 "lValueRequested": false,
5927 "leftExpression": {
5928 "argumentTypes": null,
5929 "id": 3970,
5930 "name": "i",
5931 "nodeType": "Identifier",
5932 "overloadedDeclarations": [],
5933 "referencedDeclaration": 3967,
5934 "src": "4065:1:18",
5935 "typeDescriptions": {
5936 "typeIdentifier": "t_uint256",
5937 "typeString": "uint256"
5938 }
5939 },
5940 "nodeType": "BinaryOperation",
5941 "operator": "<",
5942 "rightExpression": {
5943 "argumentTypes": null,
5944 "expression": {
5945 "argumentTypes": null,
5946 "id": 3971,
5947 "name": "_baseBytes",
5948 "nodeType": "Identifier",
5949 "overloadedDeclarations": [],
5950 "referencedDeclaration": 3947,
5951 "src": "4067:10:18",
5952 "typeDescriptions": {
5953 "typeIdentifier": "t_bytes_memory_ptr",
5954 "typeString": "bytes memory"
5955 }
5956 },
5957 "id": 3972,
5958 "isConstant": false,
5959 "isLValue": false,
5960 "isPure": false,
5961 "lValueRequested": false,
5962 "memberName": "length",
5963 "nodeType": "MemberAccess",
5964 "referencedDeclaration": null,
5965 "src": "4067:17:18",
5966 "typeDescriptions": {
5967 "typeIdentifier": "t_uint256",
5968 "typeString": "uint256"
5969 }
5970 },
5971 "src": "4065:19:18",
5972 "typeDescriptions": {
5973 "typeIdentifier": "t_bool",
5974 "typeString": "bool"
5975 }
5976 },
5977 "id": 3991,
5978 "initializationExpression": {
5979 "assignments": [
5980 3967
5981 ],
5982 "declarations": [
5983 {
5984 "constant": false,
5985 "id": 3967,
5986 "name": "i",
5987 "nodeType": "VariableDeclaration",
5988 "scope": 3997,
5989 "src": "4056:6:18",
5990 "stateVariable": false,
5991 "storageLocation": "default",
5992 "typeDescriptions": {
5993 "typeIdentifier": "t_uint256",
5994 "typeString": "uint256"
5995 },
5996 "typeName": {
5997 "id": 3966,
5998 "name": "uint",
5999 "nodeType": "ElementaryTypeName",
6000 "src": "4056:4:18",
6001 "typeDescriptions": {
6002 "typeIdentifier": "t_uint256",
6003 "typeString": "uint256"
6004 }
6005 },
6006 "value": null,
6007 "visibility": "internal"
6008 }
6009 ],
6010 "id": 3969,
6011 "initialValue": {
6012 "argumentTypes": null,
6013 "hexValue": "30",
6014 "id": 3968,
6015 "isConstant": false,
6016 "isLValue": false,
6017 "isPure": true,
6018 "kind": "number",
6019 "lValueRequested": false,
6020 "nodeType": "Literal",
6021 "src": "4063:1:18",
6022 "subdenomination": null,
6023 "typeDescriptions": {
6024 "typeIdentifier": "t_rational_0_by_1",
6025 "typeString": "int_const 0"
6026 },
6027 "value": "0"
6028 },
6029 "nodeType": "VariableDeclarationStatement",
6030 "src": "4056:8:18"
6031 },
6032 "loopExpression": {
6033 "expression": {
6034 "argumentTypes": null,
6035 "id": 3975,
6036 "isConstant": false,
6037 "isLValue": false,
6038 "isPure": false,
6039 "lValueRequested": false,
6040 "nodeType": "UnaryOperation",
6041 "operator": "++",
6042 "prefix": false,
6043 "src": "4085:3:18",
6044 "subExpression": {
6045 "argumentTypes": null,
6046 "id": 3974,
6047 "name": "i",
6048 "nodeType": "Identifier",
6049 "overloadedDeclarations": [],
6050 "referencedDeclaration": 3967,
6051 "src": "4085:1:18",
6052 "typeDescriptions": {
6053 "typeIdentifier": "t_uint256",
6054 "typeString": "uint256"
6055 }
6056 },
6057 "typeDescriptions": {
6058 "typeIdentifier": "t_uint256",
6059 "typeString": "uint256"
6060 }
6061 },
6062 "id": 3976,
6063 "nodeType": "ExpressionStatement",
6064 "src": "4085:3:18"
6065 },
6066 "nodeType": "ForStatement",
6067 "src": "4052:115:18"
6068 },
6069 {
6070 "expression": {
6071 "argumentTypes": null,
6072 "arguments": [
6073 {
6074 "argumentTypes": null,
6075 "id": 3993,
6076 "name": "_newValue",
6077 "nodeType": "Identifier",
6078 "overloadedDeclarations": [],
6079 "referencedDeclaration": 3961,
6080 "src": "4191:9:18",
6081 "typeDescriptions": {
6082 "typeIdentifier": "t_bytes_memory_ptr",
6083 "typeString": "bytes memory"
6084 }
6085 }
6086 ],
6087 "expression": {
6088 "argumentTypes": [
6089 {
6090 "typeIdentifier": "t_bytes_memory_ptr",
6091 "typeString": "bytes memory"
6092 }
6093 ],
6094 "id": 3992,
6095 "isConstant": false,
6096 "isLValue": false,
6097 "isPure": true,
6098 "lValueRequested": false,
6099 "nodeType": "ElementaryTypeNameExpression",
6100 "src": "4184:6:18",
6101 "typeDescriptions": {
6102 "typeIdentifier": "t_type$_t_string_storage_ptr_$",
6103 "typeString": "type(string storage pointer)"
6104 },
6105 "typeName": "string"
6106 },
6107 "id": 3994,
6108 "isConstant": false,
6109 "isLValue": false,
6110 "isPure": false,
6111 "kind": "typeConversion",
6112 "lValueRequested": false,
6113 "names": [],
6114 "nodeType": "FunctionCall",
6115 "src": "4184:17:18",
6116 "typeDescriptions": {
6117 "typeIdentifier": "t_string_memory",
6118 "typeString": "string memory"
6119 }
6120 },
6121 "functionReturnParameters": 3945,
6122 "id": 3995,
6123 "nodeType": "Return",
6124 "src": "4177:24:18"
6125 }
6126 ]
6127 },
6128 "documentation": null,
6129 "id": 3997,
6130 "implemented": true,
6131 "isConstructor": false,
6132 "isDeclaredConst": true,
6133 "modifiers": [],
6134 "name": "reverseString",
6135 "nodeType": "FunctionDefinition",
6136 "parameters": {
6137 "id": 3942,
6138 "nodeType": "ParameterList",
6139 "parameters": [
6140 {
6141 "constant": false,
6142 "id": 3941,
6143 "name": "_base",
6144 "nodeType": "VariableDeclaration",
6145 "scope": 3997,
6146 "src": "3831:12:18",
6147 "stateVariable": false,
6148 "storageLocation": "default",
6149 "typeDescriptions": {
6150 "typeIdentifier": "t_string_memory_ptr",
6151 "typeString": "string"
6152 },
6153 "typeName": {
6154 "id": 3940,
6155 "name": "string",
6156 "nodeType": "ElementaryTypeName",
6157 "src": "3831:6:18",
6158 "typeDescriptions": {
6159 "typeIdentifier": "t_string_storage_ptr",
6160 "typeString": "string"
6161 }
6162 },
6163 "value": null,
6164 "visibility": "internal"
6165 }
6166 ],
6167 "src": "3830:14:18"
6168 },
6169 "payable": false,
6170 "returnParameters": {
6171 "id": 3945,
6172 "nodeType": "ParameterList",
6173 "parameters": [
6174 {
6175 "constant": false,
6176 "id": 3944,
6177 "name": "",
6178 "nodeType": "VariableDeclaration",
6179 "scope": 3997,
6180 "src": "3868:6:18",
6181 "stateVariable": false,
6182 "storageLocation": "default",
6183 "typeDescriptions": {
6184 "typeIdentifier": "t_string_memory_ptr",
6185 "typeString": "string"
6186 },
6187 "typeName": {
6188 "id": 3943,
6189 "name": "string",
6190 "nodeType": "ElementaryTypeName",
6191 "src": "3868:6:18",
6192 "typeDescriptions": {
6193 "typeIdentifier": "t_string_storage_ptr",
6194 "typeString": "string"
6195 }
6196 },
6197 "value": null,
6198 "visibility": "internal"
6199 }
6200 ],
6201 "src": "3867:8:18"
6202 },
6203 "scope": 4057,
6204 "src": "3808:400:18",
6205 "stateMutability": "pure",
6206 "superFunction": null,
6207 "visibility": "internal"
6208 },
6209 {
6210 "body": {
6211 "id": 4055,
6212 "nodeType": "Block",
6213 "src": "4286:287:18",
6214 "statements": [
6215 {
6216 "assignments": [
6217 4005
6218 ],
6219 "declarations": [
6220 {
6221 "constant": false,
6222 "id": 4005,
6223 "name": "bytesString",
6224 "nodeType": "VariableDeclaration",
6225 "scope": 4056,
6226 "src": "4296:24:18",
6227 "stateVariable": false,
6228 "storageLocation": "memory",
6229 "typeDescriptions": {
6230 "typeIdentifier": "t_bytes_memory_ptr",
6231 "typeString": "bytes"
6232 },
6233 "typeName": {
6234 "id": 4004,
6235 "name": "bytes",
6236 "nodeType": "ElementaryTypeName",
6237 "src": "4296:5:18",
6238 "typeDescriptions": {
6239 "typeIdentifier": "t_bytes_storage_ptr",
6240 "typeString": "bytes"
6241 }
6242 },
6243 "value": null,
6244 "visibility": "internal"
6245 }
6246 ],
6247 "id": 4010,
6248 "initialValue": {
6249 "argumentTypes": null,
6250 "arguments": [
6251 {
6252 "argumentTypes": null,
6253 "hexValue": "3332",
6254 "id": 4008,
6255 "isConstant": false,
6256 "isLValue": false,
6257 "isPure": true,
6258 "kind": "number",
6259 "lValueRequested": false,
6260 "nodeType": "Literal",
6261 "src": "4333:2:18",
6262 "subdenomination": null,
6263 "typeDescriptions": {
6264 "typeIdentifier": "t_rational_32_by_1",
6265 "typeString": "int_const 32"
6266 },
6267 "value": "32"
6268 }
6269 ],
6270 "expression": {
6271 "argumentTypes": [
6272 {
6273 "typeIdentifier": "t_rational_32_by_1",
6274 "typeString": "int_const 32"
6275 }
6276 ],
6277 "id": 4007,
6278 "isConstant": false,
6279 "isLValue": false,
6280 "isPure": true,
6281 "lValueRequested": false,
6282 "nodeType": "NewExpression",
6283 "src": "4323:9:18",
6284 "typeDescriptions": {
6285 "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$",
6286 "typeString": "function (uint256) pure returns (bytes memory)"
6287 },
6288 "typeName": {
6289 "id": 4006,
6290 "name": "bytes",
6291 "nodeType": "ElementaryTypeName",
6292 "src": "4327:5:18",
6293 "typeDescriptions": {
6294 "typeIdentifier": "t_bytes_storage_ptr",
6295 "typeString": "bytes"
6296 }
6297 }
6298 },
6299 "id": 4009,
6300 "isConstant": false,
6301 "isLValue": false,
6302 "isPure": true,
6303 "kind": "functionCall",
6304 "lValueRequested": false,
6305 "names": [],
6306 "nodeType": "FunctionCall",
6307 "src": "4323:13:18",
6308 "typeDescriptions": {
6309 "typeIdentifier": "t_bytes_memory",
6310 "typeString": "bytes memory"
6311 }
6312 },
6313 "nodeType": "VariableDeclarationStatement",
6314 "src": "4296:40:18"
6315 },
6316 {
6317 "body": {
6318 "id": 4049,
6319 "nodeType": "Block",
6320 "src": "4372:159:18",
6321 "statements": [
6322 {
6323 "assignments": [
6324 4022
6325 ],
6326 "declarations": [
6327 {
6328 "constant": false,
6329 "id": 4022,
6330 "name": "char",
6331 "nodeType": "VariableDeclaration",
6332 "scope": 4056,
6333 "src": "4386:9:18",
6334 "stateVariable": false,
6335 "storageLocation": "default",
6336 "typeDescriptions": {
6337 "typeIdentifier": "t_bytes1",
6338 "typeString": "bytes1"
6339 },
6340 "typeName": {
6341 "id": 4021,
6342 "name": "byte",
6343 "nodeType": "ElementaryTypeName",
6344 "src": "4386:4:18",
6345 "typeDescriptions": {
6346 "typeIdentifier": "t_bytes1",
6347 "typeString": "bytes1"
6348 }
6349 },
6350 "value": null,
6351 "visibility": "internal"
6352 }
6353 ],
6354 "id": 4037,
6355 "initialValue": {
6356 "argumentTypes": null,
6357 "arguments": [
6358 {
6359 "argumentTypes": null,
6360 "arguments": [
6361 {
6362 "argumentTypes": null,
6363 "commonType": {
6364 "typeIdentifier": "t_uint256",
6365 "typeString": "uint256"
6366 },
6367 "id": 4034,
6368 "isConstant": false,
6369 "isLValue": false,
6370 "isPure": false,
6371 "lValueRequested": false,
6372 "leftExpression": {
6373 "argumentTypes": null,
6374 "arguments": [
6375 {
6376 "argumentTypes": null,
6377 "id": 4026,
6378 "name": "data",
6379 "nodeType": "Identifier",
6380 "overloadedDeclarations": [],
6381 "referencedDeclaration": 3999,
6382 "src": "4416:4:18",
6383 "typeDescriptions": {
6384 "typeIdentifier": "t_bytes32",
6385 "typeString": "bytes32"
6386 }
6387 }
6388 ],
6389 "expression": {
6390 "argumentTypes": [
6391 {
6392 "typeIdentifier": "t_bytes32",
6393 "typeString": "bytes32"
6394 }
6395 ],
6396 "id": 4025,
6397 "isConstant": false,
6398 "isLValue": false,
6399 "isPure": true,
6400 "lValueRequested": false,
6401 "nodeType": "ElementaryTypeNameExpression",
6402 "src": "4411:4:18",
6403 "typeDescriptions": {
6404 "typeIdentifier": "t_type$_t_uint256_$",
6405 "typeString": "type(uint256)"
6406 },
6407 "typeName": "uint"
6408 },
6409 "id": 4027,
6410 "isConstant": false,
6411 "isLValue": false,
6412 "isPure": false,
6413 "kind": "typeConversion",
6414 "lValueRequested": false,
6415 "names": [],
6416 "nodeType": "FunctionCall",
6417 "src": "4411:10:18",
6418 "typeDescriptions": {
6419 "typeIdentifier": "t_uint256",
6420 "typeString": "uint256"
6421 }
6422 },
6423 "nodeType": "BinaryOperation",
6424 "operator": "*",
6425 "rightExpression": {
6426 "argumentTypes": null,
6427 "commonType": {
6428 "typeIdentifier": "t_uint256",
6429 "typeString": "uint256"
6430 },
6431 "id": 4033,
6432 "isConstant": false,
6433 "isLValue": false,
6434 "isPure": false,
6435 "lValueRequested": false,
6436 "leftExpression": {
6437 "argumentTypes": null,
6438 "hexValue": "32",
6439 "id": 4028,
6440 "isConstant": false,
6441 "isLValue": false,
6442 "isPure": true,
6443 "kind": "number",
6444 "lValueRequested": false,
6445 "nodeType": "Literal",
6446 "src": "4424:1:18",
6447 "subdenomination": null,
6448 "typeDescriptions": {
6449 "typeIdentifier": "t_rational_2_by_1",
6450 "typeString": "int_const 2"
6451 },
6452 "value": "2"
6453 },
6454 "nodeType": "BinaryOperation",
6455 "operator": "**",
6456 "rightExpression": {
6457 "argumentTypes": null,
6458 "components": [
6459 {
6460 "argumentTypes": null,
6461 "commonType": {
6462 "typeIdentifier": "t_uint256",
6463 "typeString": "uint256"
6464 },
6465 "id": 4031,
6466 "isConstant": false,
6467 "isLValue": false,
6468 "isPure": false,
6469 "lValueRequested": false,
6470 "leftExpression": {
6471 "argumentTypes": null,
6472 "hexValue": "38",
6473 "id": 4029,
6474 "isConstant": false,
6475 "isLValue": false,
6476 "isPure": true,
6477 "kind": "number",
6478 "lValueRequested": false,
6479 "nodeType": "Literal",
6480 "src": "4430:1:18",
6481 "subdenomination": null,
6482 "typeDescriptions": {
6483 "typeIdentifier": "t_rational_8_by_1",
6484 "typeString": "int_const 8"
6485 },
6486 "value": "8"
6487 },
6488 "nodeType": "BinaryOperation",
6489 "operator": "*",
6490 "rightExpression": {
6491 "argumentTypes": null,
6492 "id": 4030,
6493 "name": "j",
6494 "nodeType": "Identifier",
6495 "overloadedDeclarations": [],
6496 "referencedDeclaration": 4012,
6497 "src": "4434:1:18",
6498 "typeDescriptions": {
6499 "typeIdentifier": "t_uint256",
6500 "typeString": "uint256"
6501 }
6502 },
6503 "src": "4430:5:18",
6504 "typeDescriptions": {
6505 "typeIdentifier": "t_uint256",
6506 "typeString": "uint256"
6507 }
6508 }
6509 ],
6510 "id": 4032,
6511 "isConstant": false,
6512 "isInlineArray": false,
6513 "isLValue": false,
6514 "isPure": false,
6515 "lValueRequested": false,
6516 "nodeType": "TupleExpression",
6517 "src": "4429:7:18",
6518 "typeDescriptions": {
6519 "typeIdentifier": "t_uint256",
6520 "typeString": "uint256"
6521 }
6522 },
6523 "src": "4424:12:18",
6524 "typeDescriptions": {
6525 "typeIdentifier": "t_uint256",
6526 "typeString": "uint256"
6527 }
6528 },
6529 "src": "4411:25:18",
6530 "typeDescriptions": {
6531 "typeIdentifier": "t_uint256",
6532 "typeString": "uint256"
6533 }
6534 }
6535 ],
6536 "expression": {
6537 "argumentTypes": [
6538 {
6539 "typeIdentifier": "t_uint256",
6540 "typeString": "uint256"
6541 }
6542 ],
6543 "id": 4024,
6544 "isConstant": false,
6545 "isLValue": false,
6546 "isPure": true,
6547 "lValueRequested": false,
6548 "nodeType": "ElementaryTypeNameExpression",
6549 "src": "4403:7:18",
6550 "typeDescriptions": {
6551 "typeIdentifier": "t_type$_t_bytes32_$",
6552 "typeString": "type(bytes32)"
6553 },
6554 "typeName": "bytes32"
6555 },
6556 "id": 4035,
6557 "isConstant": false,
6558 "isLValue": false,
6559 "isPure": false,
6560 "kind": "typeConversion",
6561 "lValueRequested": false,
6562 "names": [],
6563 "nodeType": "FunctionCall",
6564 "src": "4403:34:18",
6565 "typeDescriptions": {
6566 "typeIdentifier": "t_bytes32",
6567 "typeString": "bytes32"
6568 }
6569 }
6570 ],
6571 "expression": {
6572 "argumentTypes": [
6573 {
6574 "typeIdentifier": "t_bytes32",
6575 "typeString": "bytes32"
6576 }
6577 ],
6578 "id": 4023,
6579 "isConstant": false,
6580 "isLValue": false,
6581 "isPure": true,
6582 "lValueRequested": false,
6583 "nodeType": "ElementaryTypeNameExpression",
6584 "src": "4398:4:18",
6585 "typeDescriptions": {
6586 "typeIdentifier": "t_type$_t_bytes1_$",
6587 "typeString": "type(bytes1)"
6588 },
6589 "typeName": "byte"
6590 },
6591 "id": 4036,
6592 "isConstant": false,
6593 "isLValue": false,
6594 "isPure": false,
6595 "kind": "typeConversion",
6596 "lValueRequested": false,
6597 "names": [],
6598 "nodeType": "FunctionCall",
6599 "src": "4398:40:18",
6600 "typeDescriptions": {
6601 "typeIdentifier": "t_bytes1",
6602 "typeString": "bytes1"
6603 }
6604 },
6605 "nodeType": "VariableDeclarationStatement",
6606 "src": "4386:52:18"
6607 },
6608 {
6609 "condition": {
6610 "argumentTypes": null,
6611 "commonType": {
6612 "typeIdentifier": "t_bytes1",
6613 "typeString": "bytes1"
6614 },
6615 "id": 4040,
6616 "isConstant": false,
6617 "isLValue": false,
6618 "isPure": false,
6619 "lValueRequested": false,
6620 "leftExpression": {
6621 "argumentTypes": null,
6622 "id": 4038,
6623 "name": "char",
6624 "nodeType": "Identifier",
6625 "overloadedDeclarations": [],
6626 "referencedDeclaration": 4022,
6627 "src": "4456:4:18",
6628 "typeDescriptions": {
6629 "typeIdentifier": "t_bytes1",
6630 "typeString": "bytes1"
6631 }
6632 },
6633 "nodeType": "BinaryOperation",
6634 "operator": "!=",
6635 "rightExpression": {
6636 "argumentTypes": null,
6637 "hexValue": "30",
6638 "id": 4039,
6639 "isConstant": false,
6640 "isLValue": false,
6641 "isPure": true,
6642 "kind": "number",
6643 "lValueRequested": false,
6644 "nodeType": "Literal",
6645 "src": "4464:1:18",
6646 "subdenomination": null,
6647 "typeDescriptions": {
6648 "typeIdentifier": "t_rational_0_by_1",
6649 "typeString": "int_const 0"
6650 },
6651 "value": "0"
6652 },
6653 "src": "4456:9:18",
6654 "typeDescriptions": {
6655 "typeIdentifier": "t_bool",
6656 "typeString": "bool"
6657 }
6658 },
6659 "falseBody": null,
6660 "id": 4048,
6661 "nodeType": "IfStatement",
6662 "src": "4452:69:18",
6663 "trueBody": {
6664 "id": 4047,
6665 "nodeType": "Block",
6666 "src": "4467:54:18",
6667 "statements": [
6668 {
6669 "expression": {
6670 "argumentTypes": null,
6671 "id": 4045,
6672 "isConstant": false,
6673 "isLValue": false,
6674 "isPure": false,
6675 "lValueRequested": false,
6676 "leftHandSide": {
6677 "argumentTypes": null,
6678 "baseExpression": {
6679 "argumentTypes": null,
6680 "id": 4041,
6681 "name": "bytesString",
6682 "nodeType": "Identifier",
6683 "overloadedDeclarations": [],
6684 "referencedDeclaration": 4005,
6685 "src": "4485:11:18",
6686 "typeDescriptions": {
6687 "typeIdentifier": "t_bytes_memory_ptr",
6688 "typeString": "bytes memory"
6689 }
6690 },
6691 "id": 4043,
6692 "indexExpression": {
6693 "argumentTypes": null,
6694 "id": 4042,
6695 "name": "j",
6696 "nodeType": "Identifier",
6697 "overloadedDeclarations": [],
6698 "referencedDeclaration": 4012,
6699 "src": "4497:1:18",
6700 "typeDescriptions": {
6701 "typeIdentifier": "t_uint256",
6702 "typeString": "uint256"
6703 }
6704 },
6705 "isConstant": false,
6706 "isLValue": true,
6707 "isPure": false,
6708 "lValueRequested": true,
6709 "nodeType": "IndexAccess",
6710 "src": "4485:14:18",
6711 "typeDescriptions": {
6712 "typeIdentifier": "t_bytes1",
6713 "typeString": "bytes1"
6714 }
6715 },
6716 "nodeType": "Assignment",
6717 "operator": "=",
6718 "rightHandSide": {
6719 "argumentTypes": null,
6720 "id": 4044,
6721 "name": "char",
6722 "nodeType": "Identifier",
6723 "overloadedDeclarations": [],
6724 "referencedDeclaration": 4022,
6725 "src": "4502:4:18",
6726 "typeDescriptions": {
6727 "typeIdentifier": "t_bytes1",
6728 "typeString": "bytes1"
6729 }
6730 },
6731 "src": "4485:21:18",
6732 "typeDescriptions": {
6733 "typeIdentifier": "t_bytes1",
6734 "typeString": "bytes1"
6735 }
6736 },
6737 "id": 4046,
6738 "nodeType": "ExpressionStatement",
6739 "src": "4485:21:18"
6740 }
6741 ]
6742 }
6743 }
6744 ]
6745 },
6746 "condition": {
6747 "argumentTypes": null,
6748 "commonType": {
6749 "typeIdentifier": "t_uint256",
6750 "typeString": "uint256"
6751 },
6752 "id": 4017,
6753 "isConstant": false,
6754 "isLValue": false,
6755 "isPure": false,
6756 "lValueRequested": false,
6757 "leftExpression": {
6758 "argumentTypes": null,
6759 "id": 4015,
6760 "name": "j",
6761 "nodeType": "Identifier",
6762 "overloadedDeclarations": [],
6763 "referencedDeclaration": 4012,
6764 "src": "4361:1:18",
6765 "typeDescriptions": {
6766 "typeIdentifier": "t_uint256",
6767 "typeString": "uint256"
6768 }
6769 },
6770 "nodeType": "BinaryOperation",
6771 "operator": "<",
6772 "rightExpression": {
6773 "argumentTypes": null,
6774 "hexValue": "3332",
6775 "id": 4016,
6776 "isConstant": false,
6777 "isLValue": false,
6778 "isPure": true,
6779 "kind": "number",
6780 "lValueRequested": false,
6781 "nodeType": "Literal",
6782 "src": "4363:2:18",
6783 "subdenomination": null,
6784 "typeDescriptions": {
6785 "typeIdentifier": "t_rational_32_by_1",
6786 "typeString": "int_const 32"
6787 },
6788 "value": "32"
6789 },
6790 "src": "4361:4:18",
6791 "typeDescriptions": {
6792 "typeIdentifier": "t_bool",
6793 "typeString": "bool"
6794 }
6795 },
6796 "id": 4050,
6797 "initializationExpression": {
6798 "assignments": [
6799 4012
6800 ],
6801 "declarations": [
6802 {
6803 "constant": false,
6804 "id": 4012,
6805 "name": "j",
6806 "nodeType": "VariableDeclaration",
6807 "scope": 4056,
6808 "src": "4351:6:18",
6809 "stateVariable": false,
6810 "storageLocation": "default",
6811 "typeDescriptions": {
6812 "typeIdentifier": "t_uint256",
6813 "typeString": "uint256"
6814 },
6815 "typeName": {
6816 "id": 4011,
6817 "name": "uint",
6818 "nodeType": "ElementaryTypeName",
6819 "src": "4351:4:18",
6820 "typeDescriptions": {
6821 "typeIdentifier": "t_uint256",
6822 "typeString": "uint256"
6823 }
6824 },
6825 "value": null,
6826 "visibility": "internal"
6827 }
6828 ],
6829 "id": 4014,
6830 "initialValue": {
6831 "argumentTypes": null,
6832 "hexValue": "30",
6833 "id": 4013,
6834 "isConstant": false,
6835 "isLValue": false,
6836 "isPure": true,
6837 "kind": "number",
6838 "lValueRequested": false,
6839 "nodeType": "Literal",
6840 "src": "4358:1:18",
6841 "subdenomination": null,
6842 "typeDescriptions": {
6843 "typeIdentifier": "t_rational_0_by_1",
6844 "typeString": "int_const 0"
6845 },
6846 "value": "0"
6847 },
6848 "nodeType": "VariableDeclarationStatement",
6849 "src": "4351:8:18"
6850 },
6851 "loopExpression": {
6852 "expression": {
6853 "argumentTypes": null,
6854 "id": 4019,
6855 "isConstant": false,
6856 "isLValue": false,
6857 "isPure": false,
6858 "lValueRequested": false,
6859 "nodeType": "UnaryOperation",
6860 "operator": "++",
6861 "prefix": false,
6862 "src": "4367:3:18",
6863 "subExpression": {
6864 "argumentTypes": null,
6865 "id": 4018,
6866 "name": "j",
6867 "nodeType": "Identifier",
6868 "overloadedDeclarations": [],
6869 "referencedDeclaration": 4012,
6870 "src": "4367:1:18",
6871 "typeDescriptions": {
6872 "typeIdentifier": "t_uint256",
6873 "typeString": "uint256"
6874 }
6875 },
6876 "typeDescriptions": {
6877 "typeIdentifier": "t_uint256",
6878 "typeString": "uint256"
6879 }
6880 },
6881 "id": 4020,
6882 "nodeType": "ExpressionStatement",
6883 "src": "4367:3:18"
6884 },
6885 "nodeType": "ForStatement",
6886 "src": "4346:185:18"
6887 },
6888 {
6889 "expression": {
6890 "argumentTypes": null,
6891 "arguments": [
6892 {
6893 "argumentTypes": null,
6894 "id": 4052,
6895 "name": "bytesString",
6896 "nodeType": "Identifier",
6897 "overloadedDeclarations": [],
6898 "referencedDeclaration": 4005,
6899 "src": "4554:11:18",
6900 "typeDescriptions": {
6901 "typeIdentifier": "t_bytes_memory_ptr",
6902 "typeString": "bytes memory"
6903 }
6904 }
6905 ],
6906 "expression": {
6907 "argumentTypes": [
6908 {
6909 "typeIdentifier": "t_bytes_memory_ptr",
6910 "typeString": "bytes memory"
6911 }
6912 ],
6913 "id": 4051,
6914 "isConstant": false,
6915 "isLValue": false,
6916 "isPure": true,
6917 "lValueRequested": false,
6918 "nodeType": "ElementaryTypeNameExpression",
6919 "src": "4547:6:18",
6920 "typeDescriptions": {
6921 "typeIdentifier": "t_type$_t_string_storage_ptr_$",
6922 "typeString": "type(string storage pointer)"
6923 },
6924 "typeName": "string"
6925 },
6926 "id": 4053,
6927 "isConstant": false,
6928 "isLValue": false,
6929 "isPure": false,
6930 "kind": "typeConversion",
6931 "lValueRequested": false,
6932 "names": [],
6933 "nodeType": "FunctionCall",
6934 "src": "4547:19:18",
6935 "typeDescriptions": {
6936 "typeIdentifier": "t_string_memory",
6937 "typeString": "string memory"
6938 }
6939 },
6940 "functionReturnParameters": 4003,
6941 "id": 4054,
6942 "nodeType": "Return",
6943 "src": "4540:26:18"
6944 }
6945 ]
6946 },
6947 "documentation": null,
6948 "id": 4056,
6949 "implemented": true,
6950 "isConstructor": false,
6951 "isDeclaredConst": true,
6952 "modifiers": [],
6953 "name": "bytes32ToString",
6954 "nodeType": "FunctionDefinition",
6955 "parameters": {
6956 "id": 4000,
6957 "nodeType": "ParameterList",
6958 "parameters": [
6959 {
6960 "constant": false,
6961 "id": 3999,
6962 "name": "data",
6963 "nodeType": "VariableDeclaration",
6964 "scope": 4056,
6965 "src": "4241:12:18",
6966 "stateVariable": false,
6967 "storageLocation": "default",
6968 "typeDescriptions": {
6969 "typeIdentifier": "t_bytes32",
6970 "typeString": "bytes32"
6971 },
6972 "typeName": {
6973 "id": 3998,
6974 "name": "bytes32",
6975 "nodeType": "ElementaryTypeName",
6976 "src": "4241:7:18",
6977 "typeDescriptions": {
6978 "typeIdentifier": "t_bytes32",
6979 "typeString": "bytes32"
6980 }
6981 },
6982 "value": null,
6983 "visibility": "internal"
6984 }
6985 ],
6986 "src": "4240:14:18"
6987 },
6988 "payable": false,
6989 "returnParameters": {
6990 "id": 4003,
6991 "nodeType": "ParameterList",
6992 "parameters": [
6993 {
6994 "constant": false,
6995 "id": 4002,
6996 "name": "",
6997 "nodeType": "VariableDeclaration",
6998 "scope": 4056,
6999 "src": "4278:6:18",
7000 "stateVariable": false,
7001 "storageLocation": "default",
7002 "typeDescriptions": {
7003 "typeIdentifier": "t_string_memory_ptr",
7004 "typeString": "string"
7005 },
7006 "typeName": {
7007 "id": 4001,
7008 "name": "string",
7009 "nodeType": "ElementaryTypeName",
7010 "src": "4278:6:18",
7011 "typeDescriptions": {
7012 "typeIdentifier": "t_string_storage_ptr",
7013 "typeString": "string"
7014 }
7015 },
7016 "value": null,
7017 "visibility": "internal"
7018 }
7019 ],
7020 "src": "4277:8:18"
7021 },
7022 "scope": 4057,
7023 "src": "4215:358:18",
7024 "stateMutability": "pure",
7025 "superFunction": null,
7026 "visibility": "internal"
7027 }
7028 ],
7029 "scope": 4252,
7030 "src": "271:4305:18"
7031 },
7032 {
7033 "baseContracts": [
7034 {
7035 "arguments": null,
7036 "baseName": {
7037 "contractScope": null,
7038 "id": 4058,
7039 "name": "Client1",
7040 "nodeType": "UserDefinedTypeName",
7041 "referencedDeclaration": 815,
7042 "src": "4630:7:18",
7043 "typeDescriptions": {
7044 "typeIdentifier": "t_contract$_Client1_$815",
7045 "typeString": "contract Client1"
7046 }
7047 },
7048 "id": 4059,
7049 "nodeType": "InheritanceSpecifier",
7050 "src": "4630:7:18"
7051 },
7052 {
7053 "arguments": null,
7054 "baseName": {
7055 "contractScope": null,
7056 "id": 4060,
7057 "name": "Client2",
7058 "nodeType": "UserDefinedTypeName",
7059 "referencedDeclaration": 825,
7060 "src": "4639:7:18",
7061 "typeDescriptions": {
7062 "typeIdentifier": "t_contract$_Client2_$825",
7063 "typeString": "contract Client2"
7064 }
7065 },
7066 "id": 4061,
7067 "nodeType": "InheritanceSpecifier",
7068 "src": "4639:7:18"
7069 }
7070 ],
7071 "contractDependencies": [
7072 815,
7073 825
7074 ],
7075 "contractKind": "contract",
7076 "documentation": null,
7077 "fullyImplemented": true,
7078 "id": 4251,
7079 "linearizedBaseContracts": [
7080 4251,
7081 825,
7082 815
7083 ],
7084 "name": "TestClient",
7085 "nodeType": "ContractDefinition",
7086 "nodes": [
7087 {
7088 "anonymous": false,
7089 "documentation": null,
7090 "id": 4069,
7091 "name": "MadeQuery",
7092 "nodeType": "EventDefinition",
7093 "parameters": {
7094 "id": 4068,
7095 "nodeType": "ParameterList",
7096 "parameters": [
7097 {
7098 "constant": false,
7099 "id": 4063,
7100 "indexed": false,
7101 "name": "oracle",
7102 "nodeType": "VariableDeclaration",
7103 "scope": 4069,
7104 "src": "4669:14:18",
7105 "stateVariable": false,
7106 "storageLocation": "default",
7107 "typeDescriptions": {
7108 "typeIdentifier": "t_address",
7109 "typeString": "address"
7110 },
7111 "typeName": {
7112 "id": 4062,
7113 "name": "address",
7114 "nodeType": "ElementaryTypeName",
7115 "src": "4669:7:18",
7116 "typeDescriptions": {
7117 "typeIdentifier": "t_address",
7118 "typeString": "address"
7119 }
7120 },
7121 "value": null,
7122 "visibility": "internal"
7123 },
7124 {
7125 "constant": false,
7126 "id": 4065,
7127 "indexed": false,
7128 "name": "query",
7129 "nodeType": "VariableDeclaration",
7130 "scope": 4069,
7131 "src": "4685:12:18",
7132 "stateVariable": false,
7133 "storageLocation": "default",
7134 "typeDescriptions": {
7135 "typeIdentifier": "t_string_memory_ptr",
7136 "typeString": "string"
7137 },
7138 "typeName": {
7139 "id": 4064,
7140 "name": "string",
7141 "nodeType": "ElementaryTypeName",
7142 "src": "4685:6:18",
7143 "typeDescriptions": {
7144 "typeIdentifier": "t_string_storage_ptr",
7145 "typeString": "string"
7146 }
7147 },
7148 "value": null,
7149 "visibility": "internal"
7150 },
7151 {
7152 "constant": false,
7153 "id": 4067,
7154 "indexed": false,
7155 "name": "id",
7156 "nodeType": "VariableDeclaration",
7157 "scope": 4069,
7158 "src": "4699:10:18",
7159 "stateVariable": false,
7160 "storageLocation": "default",
7161 "typeDescriptions": {
7162 "typeIdentifier": "t_uint256",
7163 "typeString": "uint256"
7164 },
7165 "typeName": {
7166 "id": 4066,
7167 "name": "uint256",
7168 "nodeType": "ElementaryTypeName",
7169 "src": "4699:7:18",
7170 "typeDescriptions": {
7171 "typeIdentifier": "t_uint256",
7172 "typeString": "uint256"
7173 }
7174 },
7175 "value": null,
7176 "visibility": "internal"
7177 }
7178 ],
7179 "src": "4668:42:18"
7180 },
7181 "src": "4653:58:18"
7182 },
7183 {
7184 "anonymous": false,
7185 "documentation": null,
7186 "id": 4075,
7187 "name": "Result1",
7188 "nodeType": "EventDefinition",
7189 "parameters": {
7190 "id": 4074,
7191 "nodeType": "ParameterList",
7192 "parameters": [
7193 {
7194 "constant": false,
7195 "id": 4071,
7196 "indexed": false,
7197 "name": "id",
7198 "nodeType": "VariableDeclaration",
7199 "scope": 4075,
7200 "src": "4730:10:18",
7201 "stateVariable": false,
7202 "storageLocation": "default",
7203 "typeDescriptions": {
7204 "typeIdentifier": "t_uint256",
7205 "typeString": "uint256"
7206 },
7207 "typeName": {
7208 "id": 4070,
7209 "name": "uint256",
7210 "nodeType": "ElementaryTypeName",
7211 "src": "4730:7:18",
7212 "typeDescriptions": {
7213 "typeIdentifier": "t_uint256",
7214 "typeString": "uint256"
7215 }
7216 },
7217 "value": null,
7218 "visibility": "internal"
7219 },
7220 {
7221 "constant": false,
7222 "id": 4073,
7223 "indexed": false,
7224 "name": "response1",
7225 "nodeType": "VariableDeclaration",
7226 "scope": 4075,
7227 "src": "4742:16:18",
7228 "stateVariable": false,
7229 "storageLocation": "default",
7230 "typeDescriptions": {
7231 "typeIdentifier": "t_string_memory_ptr",
7232 "typeString": "string"
7233 },
7234 "typeName": {
7235 "id": 4072,
7236 "name": "string",
7237 "nodeType": "ElementaryTypeName",
7238 "src": "4742:6:18",
7239 "typeDescriptions": {
7240 "typeIdentifier": "t_string_storage_ptr",
7241 "typeString": "string"
7242 }
7243 },
7244 "value": null,
7245 "visibility": "internal"
7246 }
7247 ],
7248 "src": "4729:30:18"
7249 },
7250 "src": "4716:44:18"
7251 },
7252 {
7253 "anonymous": false,
7254 "documentation": null,
7255 "id": 4081,
7256 "name": "Result1",
7257 "nodeType": "EventDefinition",
7258 "parameters": {
7259 "id": 4080,
7260 "nodeType": "ParameterList",
7261 "parameters": [
7262 {
7263 "constant": false,
7264 "id": 4077,
7265 "indexed": false,
7266 "name": "id",
7267 "nodeType": "VariableDeclaration",
7268 "scope": 4081,
7269 "src": "4779:10:18",
7270 "stateVariable": false,
7271 "storageLocation": "default",
7272 "typeDescriptions": {
7273 "typeIdentifier": "t_uint256",
7274 "typeString": "uint256"
7275 },
7276 "typeName": {
7277 "id": 4076,
7278 "name": "uint256",
7279 "nodeType": "ElementaryTypeName",
7280 "src": "4779:7:18",
7281 "typeDescriptions": {
7282 "typeIdentifier": "t_uint256",
7283 "typeString": "uint256"
7284 }
7285 },
7286 "value": null,
7287 "visibility": "internal"
7288 },
7289 {
7290 "constant": false,
7291 "id": 4079,
7292 "indexed": false,
7293 "name": "response1",
7294 "nodeType": "VariableDeclaration",
7295 "scope": 4081,
7296 "src": "4791:17:18",
7297 "stateVariable": false,
7298 "storageLocation": "default",
7299 "typeDescriptions": {
7300 "typeIdentifier": "t_bytes32",
7301 "typeString": "bytes32"
7302 },
7303 "typeName": {
7304 "id": 4078,
7305 "name": "bytes32",
7306 "nodeType": "ElementaryTypeName",
7307 "src": "4791:7:18",
7308 "typeDescriptions": {
7309 "typeIdentifier": "t_bytes32",
7310 "typeString": "bytes32"
7311 }
7312 },
7313 "value": null,
7314 "visibility": "internal"
7315 }
7316 ],
7317 "src": "4778:31:18"
7318 },
7319 "src": "4765:45:18"
7320 },
7321 {
7322 "anonymous": false,
7323 "documentation": null,
7324 "id": 4089,
7325 "name": "Result2",
7326 "nodeType": "EventDefinition",
7327 "parameters": {
7328 "id": 4088,
7329 "nodeType": "ParameterList",
7330 "parameters": [
7331 {
7332 "constant": false,
7333 "id": 4083,
7334 "indexed": false,
7335 "name": "id",
7336 "nodeType": "VariableDeclaration",
7337 "scope": 4089,
7338 "src": "4829:10:18",
7339 "stateVariable": false,
7340 "storageLocation": "default",
7341 "typeDescriptions": {
7342 "typeIdentifier": "t_uint256",
7343 "typeString": "uint256"
7344 },
7345 "typeName": {
7346 "id": 4082,
7347 "name": "uint256",
7348 "nodeType": "ElementaryTypeName",
7349 "src": "4829:7:18",
7350 "typeDescriptions": {
7351 "typeIdentifier": "t_uint256",
7352 "typeString": "uint256"
7353 }
7354 },
7355 "value": null,
7356 "visibility": "internal"
7357 },
7358 {
7359 "constant": false,
7360 "id": 4085,
7361 "indexed": false,
7362 "name": "response1",
7363 "nodeType": "VariableDeclaration",
7364 "scope": 4089,
7365 "src": "4841:16:18",
7366 "stateVariable": false,
7367 "storageLocation": "default",
7368 "typeDescriptions": {
7369 "typeIdentifier": "t_string_memory_ptr",
7370 "typeString": "string"
7371 },
7372 "typeName": {
7373 "id": 4084,
7374 "name": "string",
7375 "nodeType": "ElementaryTypeName",
7376 "src": "4841:6:18",
7377 "typeDescriptions": {
7378 "typeIdentifier": "t_string_storage_ptr",
7379 "typeString": "string"
7380 }
7381 },
7382 "value": null,
7383 "visibility": "internal"
7384 },
7385 {
7386 "constant": false,
7387 "id": 4087,
7388 "indexed": false,
7389 "name": "response2",
7390 "nodeType": "VariableDeclaration",
7391 "scope": 4089,
7392 "src": "4859:16:18",
7393 "stateVariable": false,
7394 "storageLocation": "default",
7395 "typeDescriptions": {
7396 "typeIdentifier": "t_string_memory_ptr",
7397 "typeString": "string"
7398 },
7399 "typeName": {
7400 "id": 4086,
7401 "name": "string",
7402 "nodeType": "ElementaryTypeName",
7403 "src": "4859:6:18",
7404 "typeDescriptions": {
7405 "typeIdentifier": "t_string_storage_ptr",
7406 "typeString": "string"
7407 }
7408 },
7409 "value": null,
7410 "visibility": "internal"
7411 }
7412 ],
7413 "src": "4828:48:18"
7414 },
7415 "src": "4815:62:18"
7416 },
7417 {
7418 "constant": false,
7419 "id": 4091,
7420 "name": "token",
7421 "nodeType": "VariableDeclaration",
7422 "scope": 4251,
7423 "src": "4883:11:18",
7424 "stateVariable": true,
7425 "storageLocation": "default",
7426 "typeDescriptions": {
7427 "typeIdentifier": "t_contract$_ERC20_$131",
7428 "typeString": "contract ERC20"
7429 },
7430 "typeName": {
7431 "contractScope": null,
7432 "id": 4090,
7433 "name": "ERC20",
7434 "nodeType": "UserDefinedTypeName",
7435 "referencedDeclaration": 131,
7436 "src": "4883:5:18",
7437 "typeDescriptions": {
7438 "typeIdentifier": "t_contract$_ERC20_$131",
7439 "typeString": "contract ERC20"
7440 }
7441 },
7442 "value": null,
7443 "visibility": "internal"
7444 },
7445 {
7446 "constant": false,
7447 "id": 4093,
7448 "name": "dispatch",
7449 "nodeType": "VariableDeclaration",
7450 "scope": 4251,
7451 "src": "4900:26:18",
7452 "stateVariable": true,
7453 "storageLocation": "default",
7454 "typeDescriptions": {
7455 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
7456 "typeString": "contract DispatchInterface"
7457 },
7458 "typeName": {
7459 "contractScope": null,
7460 "id": 4092,
7461 "name": "DispatchInterface",
7462 "nodeType": "UserDefinedTypeName",
7463 "referencedDeclaration": 10147,
7464 "src": "4900:17:18",
7465 "typeDescriptions": {
7466 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
7467 "typeString": "contract DispatchInterface"
7468 }
7469 },
7470 "value": null,
7471 "visibility": "internal"
7472 },
7473 {
7474 "constant": false,
7475 "id": 4095,
7476 "name": "bondage",
7477 "nodeType": "VariableDeclaration",
7478 "scope": 4251,
7479 "src": "4932:24:18",
7480 "stateVariable": true,
7481 "storageLocation": "default",
7482 "typeDescriptions": {
7483 "typeIdentifier": "t_contract$_BondageInterface_$7926",
7484 "typeString": "contract BondageInterface"
7485 },
7486 "typeName": {
7487 "contractScope": null,
7488 "id": 4094,
7489 "name": "BondageInterface",
7490 "nodeType": "UserDefinedTypeName",
7491 "referencedDeclaration": 7926,
7492 "src": "4932:16:18",
7493 "typeDescriptions": {
7494 "typeIdentifier": "t_contract$_BondageInterface_$7926",
7495 "typeString": "contract BondageInterface"
7496 }
7497 },
7498 "value": null,
7499 "visibility": "internal"
7500 },
7501 {
7502 "constant": false,
7503 "id": 4097,
7504 "name": "registry",
7505 "nodeType": "VariableDeclaration",
7506 "scope": 4251,
7507 "src": "4962:26:18",
7508 "stateVariable": true,
7509 "storageLocation": "default",
7510 "typeDescriptions": {
7511 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
7512 "typeString": "contract RegistryInterface"
7513 },
7514 "typeName": {
7515 "contractScope": null,
7516 "id": 4096,
7517 "name": "RegistryInterface",
7518 "nodeType": "UserDefinedTypeName",
7519 "referencedDeclaration": 11303,
7520 "src": "4962:17:18",
7521 "typeDescriptions": {
7522 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
7523 "typeString": "contract RegistryInterface"
7524 }
7525 },
7526 "value": null,
7527 "visibility": "internal"
7528 },
7529 {
7530 "body": {
7531 "id": 4132,
7532 "nodeType": "Block",
7533 "src": "5110:206:18",
7534 "statements": [
7535 {
7536 "expression": {
7537 "argumentTypes": null,
7538 "id": 4112,
7539 "isConstant": false,
7540 "isLValue": false,
7541 "isPure": false,
7542 "lValueRequested": false,
7543 "leftHandSide": {
7544 "argumentTypes": null,
7545 "id": 4108,
7546 "name": "token",
7547 "nodeType": "Identifier",
7548 "overloadedDeclarations": [],
7549 "referencedDeclaration": 4091,
7550 "src": "5120:5:18",
7551 "typeDescriptions": {
7552 "typeIdentifier": "t_contract$_ERC20_$131",
7553 "typeString": "contract ERC20"
7554 }
7555 },
7556 "nodeType": "Assignment",
7557 "operator": "=",
7558 "rightHandSide": {
7559 "argumentTypes": null,
7560 "arguments": [
7561 {
7562 "argumentTypes": null,
7563 "id": 4110,
7564 "name": "tokenAddress",
7565 "nodeType": "Identifier",
7566 "overloadedDeclarations": [],
7567 "referencedDeclaration": 4099,
7568 "src": "5134:12:18",
7569 "typeDescriptions": {
7570 "typeIdentifier": "t_address",
7571 "typeString": "address"
7572 }
7573 }
7574 ],
7575 "expression": {
7576 "argumentTypes": [
7577 {
7578 "typeIdentifier": "t_address",
7579 "typeString": "address"
7580 }
7581 ],
7582 "id": 4109,
7583 "name": "ERC20",
7584 "nodeType": "Identifier",
7585 "overloadedDeclarations": [],
7586 "referencedDeclaration": 131,
7587 "src": "5128:5:18",
7588 "typeDescriptions": {
7589 "typeIdentifier": "t_type$_t_contract$_ERC20_$131_$",
7590 "typeString": "type(contract ERC20)"
7591 }
7592 },
7593 "id": 4111,
7594 "isConstant": false,
7595 "isLValue": false,
7596 "isPure": false,
7597 "kind": "typeConversion",
7598 "lValueRequested": false,
7599 "names": [],
7600 "nodeType": "FunctionCall",
7601 "src": "5128:19:18",
7602 "typeDescriptions": {
7603 "typeIdentifier": "t_contract$_ERC20_$131",
7604 "typeString": "contract ERC20"
7605 }
7606 },
7607 "src": "5120:27:18",
7608 "typeDescriptions": {
7609 "typeIdentifier": "t_contract$_ERC20_$131",
7610 "typeString": "contract ERC20"
7611 }
7612 },
7613 "id": 4113,
7614 "nodeType": "ExpressionStatement",
7615 "src": "5120:27:18"
7616 },
7617 {
7618 "expression": {
7619 "argumentTypes": null,
7620 "id": 4118,
7621 "isConstant": false,
7622 "isLValue": false,
7623 "isPure": false,
7624 "lValueRequested": false,
7625 "leftHandSide": {
7626 "argumentTypes": null,
7627 "id": 4114,
7628 "name": "dispatch",
7629 "nodeType": "Identifier",
7630 "overloadedDeclarations": [],
7631 "referencedDeclaration": 4093,
7632 "src": "5157:8:18",
7633 "typeDescriptions": {
7634 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
7635 "typeString": "contract DispatchInterface"
7636 }
7637 },
7638 "nodeType": "Assignment",
7639 "operator": "=",
7640 "rightHandSide": {
7641 "argumentTypes": null,
7642 "arguments": [
7643 {
7644 "argumentTypes": null,
7645 "id": 4116,
7646 "name": "dispatchAddress",
7647 "nodeType": "Identifier",
7648 "overloadedDeclarations": [],
7649 "referencedDeclaration": 4101,
7650 "src": "5186:15:18",
7651 "typeDescriptions": {
7652 "typeIdentifier": "t_address",
7653 "typeString": "address"
7654 }
7655 }
7656 ],
7657 "expression": {
7658 "argumentTypes": [
7659 {
7660 "typeIdentifier": "t_address",
7661 "typeString": "address"
7662 }
7663 ],
7664 "id": 4115,
7665 "name": "DispatchInterface",
7666 "nodeType": "Identifier",
7667 "overloadedDeclarations": [],
7668 "referencedDeclaration": 10147,
7669 "src": "5168:17:18",
7670 "typeDescriptions": {
7671 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
7672 "typeString": "type(contract DispatchInterface)"
7673 }
7674 },
7675 "id": 4117,
7676 "isConstant": false,
7677 "isLValue": false,
7678 "isPure": false,
7679 "kind": "typeConversion",
7680 "lValueRequested": false,
7681 "names": [],
7682 "nodeType": "FunctionCall",
7683 "src": "5168:34:18",
7684 "typeDescriptions": {
7685 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
7686 "typeString": "contract DispatchInterface"
7687 }
7688 },
7689 "src": "5157:45:18",
7690 "typeDescriptions": {
7691 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
7692 "typeString": "contract DispatchInterface"
7693 }
7694 },
7695 "id": 4119,
7696 "nodeType": "ExpressionStatement",
7697 "src": "5157:45:18"
7698 },
7699 {
7700 "expression": {
7701 "argumentTypes": null,
7702 "id": 4124,
7703 "isConstant": false,
7704 "isLValue": false,
7705 "isPure": false,
7706 "lValueRequested": false,
7707 "leftHandSide": {
7708 "argumentTypes": null,
7709 "id": 4120,
7710 "name": "bondage",
7711 "nodeType": "Identifier",
7712 "overloadedDeclarations": [],
7713 "referencedDeclaration": 4095,
7714 "src": "5212:7:18",
7715 "typeDescriptions": {
7716 "typeIdentifier": "t_contract$_BondageInterface_$7926",
7717 "typeString": "contract BondageInterface"
7718 }
7719 },
7720 "nodeType": "Assignment",
7721 "operator": "=",
7722 "rightHandSide": {
7723 "argumentTypes": null,
7724 "arguments": [
7725 {
7726 "argumentTypes": null,
7727 "id": 4122,
7728 "name": "bondageAddress",
7729 "nodeType": "Identifier",
7730 "overloadedDeclarations": [],
7731 "referencedDeclaration": 4103,
7732 "src": "5239:14:18",
7733 "typeDescriptions": {
7734 "typeIdentifier": "t_address",
7735 "typeString": "address"
7736 }
7737 }
7738 ],
7739 "expression": {
7740 "argumentTypes": [
7741 {
7742 "typeIdentifier": "t_address",
7743 "typeString": "address"
7744 }
7745 ],
7746 "id": 4121,
7747 "name": "BondageInterface",
7748 "nodeType": "Identifier",
7749 "overloadedDeclarations": [],
7750 "referencedDeclaration": 7926,
7751 "src": "5222:16:18",
7752 "typeDescriptions": {
7753 "typeIdentifier": "t_type$_t_contract$_BondageInterface_$7926_$",
7754 "typeString": "type(contract BondageInterface)"
7755 }
7756 },
7757 "id": 4123,
7758 "isConstant": false,
7759 "isLValue": false,
7760 "isPure": false,
7761 "kind": "typeConversion",
7762 "lValueRequested": false,
7763 "names": [],
7764 "nodeType": "FunctionCall",
7765 "src": "5222:32:18",
7766 "typeDescriptions": {
7767 "typeIdentifier": "t_contract$_BondageInterface_$7926",
7768 "typeString": "contract BondageInterface"
7769 }
7770 },
7771 "src": "5212:42:18",
7772 "typeDescriptions": {
7773 "typeIdentifier": "t_contract$_BondageInterface_$7926",
7774 "typeString": "contract BondageInterface"
7775 }
7776 },
7777 "id": 4125,
7778 "nodeType": "ExpressionStatement",
7779 "src": "5212:42:18"
7780 },
7781 {
7782 "expression": {
7783 "argumentTypes": null,
7784 "id": 4130,
7785 "isConstant": false,
7786 "isLValue": false,
7787 "isPure": false,
7788 "lValueRequested": false,
7789 "leftHandSide": {
7790 "argumentTypes": null,
7791 "id": 4126,
7792 "name": "registry",
7793 "nodeType": "Identifier",
7794 "overloadedDeclarations": [],
7795 "referencedDeclaration": 4097,
7796 "src": "5264:8:18",
7797 "typeDescriptions": {
7798 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
7799 "typeString": "contract RegistryInterface"
7800 }
7801 },
7802 "nodeType": "Assignment",
7803 "operator": "=",
7804 "rightHandSide": {
7805 "argumentTypes": null,
7806 "arguments": [
7807 {
7808 "argumentTypes": null,
7809 "id": 4128,
7810 "name": "registryAddress",
7811 "nodeType": "Identifier",
7812 "overloadedDeclarations": [],
7813 "referencedDeclaration": 4105,
7814 "src": "5293:15:18",
7815 "typeDescriptions": {
7816 "typeIdentifier": "t_address",
7817 "typeString": "address"
7818 }
7819 }
7820 ],
7821 "expression": {
7822 "argumentTypes": [
7823 {
7824 "typeIdentifier": "t_address",
7825 "typeString": "address"
7826 }
7827 ],
7828 "id": 4127,
7829 "name": "RegistryInterface",
7830 "nodeType": "Identifier",
7831 "overloadedDeclarations": [],
7832 "referencedDeclaration": 11303,
7833 "src": "5275:17:18",
7834 "typeDescriptions": {
7835 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
7836 "typeString": "type(contract RegistryInterface)"
7837 }
7838 },
7839 "id": 4129,
7840 "isConstant": false,
7841 "isLValue": false,
7842 "isPure": false,
7843 "kind": "typeConversion",
7844 "lValueRequested": false,
7845 "names": [],
7846 "nodeType": "FunctionCall",
7847 "src": "5275:34:18",
7848 "typeDescriptions": {
7849 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
7850 "typeString": "contract RegistryInterface"
7851 }
7852 },
7853 "src": "5264:45:18",
7854 "typeDescriptions": {
7855 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
7856 "typeString": "contract RegistryInterface"
7857 }
7858 },
7859 "id": 4131,
7860 "nodeType": "ExpressionStatement",
7861 "src": "5264:45:18"
7862 }
7863 ]
7864 },
7865 "documentation": null,
7866 "id": 4133,
7867 "implemented": true,
7868 "isConstructor": true,
7869 "isDeclaredConst": false,
7870 "modifiers": [],
7871 "name": "",
7872 "nodeType": "FunctionDefinition",
7873 "parameters": {
7874 "id": 4106,
7875 "nodeType": "ParameterList",
7876 "parameters": [
7877 {
7878 "constant": false,
7879 "id": 4099,
7880 "name": "tokenAddress",
7881 "nodeType": "VariableDeclaration",
7882 "scope": 4133,
7883 "src": "5007:20:18",
7884 "stateVariable": false,
7885 "storageLocation": "default",
7886 "typeDescriptions": {
7887 "typeIdentifier": "t_address",
7888 "typeString": "address"
7889 },
7890 "typeName": {
7891 "id": 4098,
7892 "name": "address",
7893 "nodeType": "ElementaryTypeName",
7894 "src": "5007:7:18",
7895 "typeDescriptions": {
7896 "typeIdentifier": "t_address",
7897 "typeString": "address"
7898 }
7899 },
7900 "value": null,
7901 "visibility": "internal"
7902 },
7903 {
7904 "constant": false,
7905 "id": 4101,
7906 "name": "dispatchAddress",
7907 "nodeType": "VariableDeclaration",
7908 "scope": 4133,
7909 "src": "5029:23:18",
7910 "stateVariable": false,
7911 "storageLocation": "default",
7912 "typeDescriptions": {
7913 "typeIdentifier": "t_address",
7914 "typeString": "address"
7915 },
7916 "typeName": {
7917 "id": 4100,
7918 "name": "address",
7919 "nodeType": "ElementaryTypeName",
7920 "src": "5029:7:18",
7921 "typeDescriptions": {
7922 "typeIdentifier": "t_address",
7923 "typeString": "address"
7924 }
7925 },
7926 "value": null,
7927 "visibility": "internal"
7928 },
7929 {
7930 "constant": false,
7931 "id": 4103,
7932 "name": "bondageAddress",
7933 "nodeType": "VariableDeclaration",
7934 "scope": 4133,
7935 "src": "5054:22:18",
7936 "stateVariable": false,
7937 "storageLocation": "default",
7938 "typeDescriptions": {
7939 "typeIdentifier": "t_address",
7940 "typeString": "address"
7941 },
7942 "typeName": {
7943 "id": 4102,
7944 "name": "address",
7945 "nodeType": "ElementaryTypeName",
7946 "src": "5054:7:18",
7947 "typeDescriptions": {
7948 "typeIdentifier": "t_address",
7949 "typeString": "address"
7950 }
7951 },
7952 "value": null,
7953 "visibility": "internal"
7954 },
7955 {
7956 "constant": false,
7957 "id": 4105,
7958 "name": "registryAddress",
7959 "nodeType": "VariableDeclaration",
7960 "scope": 4133,
7961 "src": "5078:23:18",
7962 "stateVariable": false,
7963 "storageLocation": "default",
7964 "typeDescriptions": {
7965 "typeIdentifier": "t_address",
7966 "typeString": "address"
7967 },
7968 "typeName": {
7969 "id": 4104,
7970 "name": "address",
7971 "nodeType": "ElementaryTypeName",
7972 "src": "5078:7:18",
7973 "typeDescriptions": {
7974 "typeIdentifier": "t_address",
7975 "typeString": "address"
7976 }
7977 },
7978 "value": null,
7979 "visibility": "internal"
7980 }
7981 ],
7982 "src": "5006:96:18"
7983 },
7984 "payable": false,
7985 "returnParameters": {
7986 "id": 4107,
7987 "nodeType": "ParameterList",
7988 "parameters": [],
7989 "src": "5110:0:18"
7990 },
7991 "scope": 4251,
7992 "src": "4995:321:18",
7993 "stateMutability": "nonpayable",
7994 "superFunction": null,
7995 "visibility": "public"
7996 },
7997 {
7998 "body": {
7999 "id": 4149,
8000 "nodeType": "Block",
8001 "src": "5450:127:18",
8002 "statements": [
8003 {
8004 "assignments": [
8005 4141
8006 ],
8007 "declarations": [
8008 {
8009 "constant": false,
8010 "id": 4141,
8011 "name": "_response1",
8012 "nodeType": "VariableDeclaration",
8013 "scope": 4150,
8014 "src": "5460:24:18",
8015 "stateVariable": false,
8016 "storageLocation": "memory",
8017 "typeDescriptions": {
8018 "typeIdentifier": "t_string_memory_ptr",
8019 "typeString": "string"
8020 },
8021 "typeName": {
8022 "id": 4140,
8023 "name": "string",
8024 "nodeType": "ElementaryTypeName",
8025 "src": "5460:6:18",
8026 "typeDescriptions": {
8027 "typeIdentifier": "t_string_storage_ptr",
8028 "typeString": "string"
8029 }
8030 },
8031 "value": null,
8032 "visibility": "internal"
8033 }
8034 ],
8035 "id": 4143,
8036 "initialValue": {
8037 "argumentTypes": null,
8038 "id": 4142,
8039 "name": "response1",
8040 "nodeType": "Identifier",
8041 "overloadedDeclarations": [],
8042 "referencedDeclaration": 4137,
8043 "src": "5487:9:18",
8044 "typeDescriptions": {
8045 "typeIdentifier": "t_string_calldata_ptr",
8046 "typeString": "string calldata"
8047 }
8048 },
8049 "nodeType": "VariableDeclarationStatement",
8050 "src": "5460:36:18"
8051 },
8052 {
8053 "eventCall": {
8054 "argumentTypes": null,
8055 "arguments": [
8056 {
8057 "argumentTypes": null,
8058 "id": 4145,
8059 "name": "id",
8060 "nodeType": "Identifier",
8061 "overloadedDeclarations": [],
8062 "referencedDeclaration": 4135,
8063 "src": "5519:2:18",
8064 "typeDescriptions": {
8065 "typeIdentifier": "t_uint256",
8066 "typeString": "uint256"
8067 }
8068 },
8069 {
8070 "argumentTypes": null,
8071 "id": 4146,
8072 "name": "_response1",
8073 "nodeType": "Identifier",
8074 "overloadedDeclarations": [],
8075 "referencedDeclaration": 4141,
8076 "src": "5523:10:18",
8077 "typeDescriptions": {
8078 "typeIdentifier": "t_string_memory_ptr",
8079 "typeString": "string memory"
8080 }
8081 }
8082 ],
8083 "expression": {
8084 "argumentTypes": [
8085 {
8086 "typeIdentifier": "t_uint256",
8087 "typeString": "uint256"
8088 },
8089 {
8090 "typeIdentifier": "t_string_memory_ptr",
8091 "typeString": "string memory"
8092 }
8093 ],
8094 "id": 4144,
8095 "name": "Result1",
8096 "nodeType": "Identifier",
8097 "overloadedDeclarations": [
8098 4075,
8099 4081
8100 ],
8101 "referencedDeclaration": 4075,
8102 "src": "5511:7:18",
8103 "typeDescriptions": {
8104 "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
8105 "typeString": "function (uint256,string memory)"
8106 }
8107 },
8108 "id": 4147,
8109 "isConstant": false,
8110 "isLValue": false,
8111 "isPure": false,
8112 "kind": "functionCall",
8113 "lValueRequested": false,
8114 "names": [],
8115 "nodeType": "FunctionCall",
8116 "src": "5511:23:18",
8117 "typeDescriptions": {
8118 "typeIdentifier": "t_tuple$__$",
8119 "typeString": "tuple()"
8120 }
8121 },
8122 "id": 4148,
8123 "nodeType": "EmitStatement",
8124 "src": "5506:28:18"
8125 }
8126 ]
8127 },
8128 "documentation": null,
8129 "id": 4150,
8130 "implemented": true,
8131 "isConstructor": false,
8132 "isDeclaredConst": false,
8133 "modifiers": [],
8134 "name": "callback",
8135 "nodeType": "FunctionDefinition",
8136 "parameters": {
8137 "id": 4138,
8138 "nodeType": "ParameterList",
8139 "parameters": [
8140 {
8141 "constant": false,
8142 "id": 4135,
8143 "name": "id",
8144 "nodeType": "VariableDeclaration",
8145 "scope": 4150,
8146 "src": "5411:10:18",
8147 "stateVariable": false,
8148 "storageLocation": "default",
8149 "typeDescriptions": {
8150 "typeIdentifier": "t_uint256",
8151 "typeString": "uint256"
8152 },
8153 "typeName": {
8154 "id": 4134,
8155 "name": "uint256",
8156 "nodeType": "ElementaryTypeName",
8157 "src": "5411:7:18",
8158 "typeDescriptions": {
8159 "typeIdentifier": "t_uint256",
8160 "typeString": "uint256"
8161 }
8162 },
8163 "value": null,
8164 "visibility": "internal"
8165 },
8166 {
8167 "constant": false,
8168 "id": 4137,
8169 "name": "response1",
8170 "nodeType": "VariableDeclaration",
8171 "scope": 4150,
8172 "src": "5423:16:18",
8173 "stateVariable": false,
8174 "storageLocation": "default",
8175 "typeDescriptions": {
8176 "typeIdentifier": "t_string_calldata_ptr",
8177 "typeString": "string"
8178 },
8179 "typeName": {
8180 "id": 4136,
8181 "name": "string",
8182 "nodeType": "ElementaryTypeName",
8183 "src": "5423:6:18",
8184 "typeDescriptions": {
8185 "typeIdentifier": "t_string_storage_ptr",
8186 "typeString": "string"
8187 }
8188 },
8189 "value": null,
8190 "visibility": "internal"
8191 }
8192 ],
8193 "src": "5410:30:18"
8194 },
8195 "payable": false,
8196 "returnParameters": {
8197 "id": 4139,
8198 "nodeType": "ParameterList",
8199 "parameters": [],
8200 "src": "5450:0:18"
8201 },
8202 "scope": 4251,
8203 "src": "5393:184:18",
8204 "stateMutability": "nonpayable",
8205 "superFunction": 814,
8206 "visibility": "external"
8207 },
8208 {
8209 "body": {
8210 "id": 4165,
8211 "nodeType": "Block",
8212 "src": "5642:82:18",
8213 "statements": [
8214 {
8215 "eventCall": {
8216 "argumentTypes": null,
8217 "arguments": [
8218 {
8219 "argumentTypes": null,
8220 "id": 4159,
8221 "name": "id",
8222 "nodeType": "Identifier",
8223 "overloadedDeclarations": [],
8224 "referencedDeclaration": 4152,
8225 "src": "5665:2:18",
8226 "typeDescriptions": {
8227 "typeIdentifier": "t_uint256",
8228 "typeString": "uint256"
8229 }
8230 },
8231 {
8232 "argumentTypes": null,
8233 "baseExpression": {
8234 "argumentTypes": null,
8235 "id": 4160,
8236 "name": "response",
8237 "nodeType": "Identifier",
8238 "overloadedDeclarations": [],
8239 "referencedDeclaration": 4155,
8240 "src": "5669:8:18",
8241 "typeDescriptions": {
8242 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
8243 "typeString": "bytes32[] calldata"
8244 }
8245 },
8246 "id": 4162,
8247 "indexExpression": {
8248 "argumentTypes": null,
8249 "hexValue": "30",
8250 "id": 4161,
8251 "isConstant": false,
8252 "isLValue": false,
8253 "isPure": true,
8254 "kind": "number",
8255 "lValueRequested": false,
8256 "nodeType": "Literal",
8257 "src": "5678:1:18",
8258 "subdenomination": null,
8259 "typeDescriptions": {
8260 "typeIdentifier": "t_rational_0_by_1",
8261 "typeString": "int_const 0"
8262 },
8263 "value": "0"
8264 },
8265 "isConstant": false,
8266 "isLValue": false,
8267 "isPure": false,
8268 "lValueRequested": false,
8269 "nodeType": "IndexAccess",
8270 "src": "5669:11:18",
8271 "typeDescriptions": {
8272 "typeIdentifier": "t_bytes32",
8273 "typeString": "bytes32"
8274 }
8275 }
8276 ],
8277 "expression": {
8278 "argumentTypes": [
8279 {
8280 "typeIdentifier": "t_uint256",
8281 "typeString": "uint256"
8282 },
8283 {
8284 "typeIdentifier": "t_bytes32",
8285 "typeString": "bytes32"
8286 }
8287 ],
8288 "id": 4158,
8289 "name": "Result1",
8290 "nodeType": "Identifier",
8291 "overloadedDeclarations": [
8292 4075,
8293 4081
8294 ],
8295 "referencedDeclaration": 4081,
8296 "src": "5657:7:18",
8297 "typeDescriptions": {
8298 "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$",
8299 "typeString": "function (uint256,bytes32)"
8300 }
8301 },
8302 "id": 4163,
8303 "isConstant": false,
8304 "isLValue": false,
8305 "isPure": false,
8306 "kind": "functionCall",
8307 "lValueRequested": false,
8308 "names": [],
8309 "nodeType": "FunctionCall",
8310 "src": "5657:24:18",
8311 "typeDescriptions": {
8312 "typeIdentifier": "t_tuple$__$",
8313 "typeString": "tuple()"
8314 }
8315 },
8316 "id": 4164,
8317 "nodeType": "EmitStatement",
8318 "src": "5652:29:18"
8319 }
8320 ]
8321 },
8322 "documentation": null,
8323 "id": 4166,
8324 "implemented": true,
8325 "isConstructor": false,
8326 "isDeclaredConst": false,
8327 "modifiers": [],
8328 "name": "callback",
8329 "nodeType": "FunctionDefinition",
8330 "parameters": {
8331 "id": 4156,
8332 "nodeType": "ParameterList",
8333 "parameters": [
8334 {
8335 "constant": false,
8336 "id": 4152,
8337 "name": "id",
8338 "nodeType": "VariableDeclaration",
8339 "scope": 4166,
8340 "src": "5601:10:18",
8341 "stateVariable": false,
8342 "storageLocation": "default",
8343 "typeDescriptions": {
8344 "typeIdentifier": "t_uint256",
8345 "typeString": "uint256"
8346 },
8347 "typeName": {
8348 "id": 4151,
8349 "name": "uint256",
8350 "nodeType": "ElementaryTypeName",
8351 "src": "5601:7:18",
8352 "typeDescriptions": {
8353 "typeIdentifier": "t_uint256",
8354 "typeString": "uint256"
8355 }
8356 },
8357 "value": null,
8358 "visibility": "internal"
8359 },
8360 {
8361 "constant": false,
8362 "id": 4155,
8363 "name": "response",
8364 "nodeType": "VariableDeclaration",
8365 "scope": 4166,
8366 "src": "5613:18:18",
8367 "stateVariable": false,
8368 "storageLocation": "default",
8369 "typeDescriptions": {
8370 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
8371 "typeString": "bytes32[]"
8372 },
8373 "typeName": {
8374 "baseType": {
8375 "id": 4153,
8376 "name": "bytes32",
8377 "nodeType": "ElementaryTypeName",
8378 "src": "5613:7:18",
8379 "typeDescriptions": {
8380 "typeIdentifier": "t_bytes32",
8381 "typeString": "bytes32"
8382 }
8383 },
8384 "id": 4154,
8385 "length": null,
8386 "nodeType": "ArrayTypeName",
8387 "src": "5613:9:18",
8388 "typeDescriptions": {
8389 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
8390 "typeString": "bytes32[]"
8391 }
8392 },
8393 "value": null,
8394 "visibility": "internal"
8395 }
8396 ],
8397 "src": "5600:32:18"
8398 },
8399 "payable": false,
8400 "returnParameters": {
8401 "id": 4157,
8402 "nodeType": "ParameterList",
8403 "parameters": [],
8404 "src": "5642:0:18"
8405 },
8406 "scope": 4251,
8407 "src": "5583:141:18",
8408 "stateMutability": "nonpayable",
8409 "superFunction": null,
8410 "visibility": "external"
8411 },
8412 {
8413 "body": {
8414 "id": 4181,
8415 "nodeType": "Block",
8416 "src": "5829:91:18",
8417 "statements": [
8418 {
8419 "eventCall": {
8420 "argumentTypes": null,
8421 "arguments": [
8422 {
8423 "argumentTypes": null,
8424 "id": 4176,
8425 "name": "id",
8426 "nodeType": "Identifier",
8427 "overloadedDeclarations": [],
8428 "referencedDeclaration": 4168,
8429 "src": "5852:2:18",
8430 "typeDescriptions": {
8431 "typeIdentifier": "t_uint256",
8432 "typeString": "uint256"
8433 }
8434 },
8435 {
8436 "argumentTypes": null,
8437 "id": 4177,
8438 "name": "response1",
8439 "nodeType": "Identifier",
8440 "overloadedDeclarations": [],
8441 "referencedDeclaration": 4170,
8442 "src": "5856:9:18",
8443 "typeDescriptions": {
8444 "typeIdentifier": "t_string_calldata_ptr",
8445 "typeString": "string calldata"
8446 }
8447 },
8448 {
8449 "argumentTypes": null,
8450 "id": 4178,
8451 "name": "response2",
8452 "nodeType": "Identifier",
8453 "overloadedDeclarations": [],
8454 "referencedDeclaration": 4172,
8455 "src": "5867:9:18",
8456 "typeDescriptions": {
8457 "typeIdentifier": "t_string_calldata_ptr",
8458 "typeString": "string calldata"
8459 }
8460 }
8461 ],
8462 "expression": {
8463 "argumentTypes": [
8464 {
8465 "typeIdentifier": "t_uint256",
8466 "typeString": "uint256"
8467 },
8468 {
8469 "typeIdentifier": "t_string_calldata_ptr",
8470 "typeString": "string calldata"
8471 },
8472 {
8473 "typeIdentifier": "t_string_calldata_ptr",
8474 "typeString": "string calldata"
8475 }
8476 ],
8477 "id": 4175,
8478 "name": "Result2",
8479 "nodeType": "Identifier",
8480 "overloadedDeclarations": [],
8481 "referencedDeclaration": 4089,
8482 "src": "5844:7:18",
8483 "typeDescriptions": {
8484 "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
8485 "typeString": "function (uint256,string memory,string memory)"
8486 }
8487 },
8488 "id": 4179,
8489 "isConstant": false,
8490 "isLValue": false,
8491 "isPure": false,
8492 "kind": "functionCall",
8493 "lValueRequested": false,
8494 "names": [],
8495 "nodeType": "FunctionCall",
8496 "src": "5844:33:18",
8497 "typeDescriptions": {
8498 "typeIdentifier": "t_tuple$__$",
8499 "typeString": "tuple()"
8500 }
8501 },
8502 "id": 4180,
8503 "nodeType": "EmitStatement",
8504 "src": "5839:38:18"
8505 }
8506 ]
8507 },
8508 "documentation": null,
8509 "id": 4182,
8510 "implemented": true,
8511 "isConstructor": false,
8512 "isDeclaredConst": false,
8513 "modifiers": [],
8514 "name": "callback",
8515 "nodeType": "FunctionDefinition",
8516 "parameters": {
8517 "id": 4173,
8518 "nodeType": "ParameterList",
8519 "parameters": [
8520 {
8521 "constant": false,
8522 "id": 4168,
8523 "name": "id",
8524 "nodeType": "VariableDeclaration",
8525 "scope": 4182,
8526 "src": "5772:10:18",
8527 "stateVariable": false,
8528 "storageLocation": "default",
8529 "typeDescriptions": {
8530 "typeIdentifier": "t_uint256",
8531 "typeString": "uint256"
8532 },
8533 "typeName": {
8534 "id": 4167,
8535 "name": "uint256",
8536 "nodeType": "ElementaryTypeName",
8537 "src": "5772:7:18",
8538 "typeDescriptions": {
8539 "typeIdentifier": "t_uint256",
8540 "typeString": "uint256"
8541 }
8542 },
8543 "value": null,
8544 "visibility": "internal"
8545 },
8546 {
8547 "constant": false,
8548 "id": 4170,
8549 "name": "response1",
8550 "nodeType": "VariableDeclaration",
8551 "scope": 4182,
8552 "src": "5784:16:18",
8553 "stateVariable": false,
8554 "storageLocation": "default",
8555 "typeDescriptions": {
8556 "typeIdentifier": "t_string_calldata_ptr",
8557 "typeString": "string"
8558 },
8559 "typeName": {
8560 "id": 4169,
8561 "name": "string",
8562 "nodeType": "ElementaryTypeName",
8563 "src": "5784:6:18",
8564 "typeDescriptions": {
8565 "typeIdentifier": "t_string_storage_ptr",
8566 "typeString": "string"
8567 }
8568 },
8569 "value": null,
8570 "visibility": "internal"
8571 },
8572 {
8573 "constant": false,
8574 "id": 4172,
8575 "name": "response2",
8576 "nodeType": "VariableDeclaration",
8577 "scope": 4182,
8578 "src": "5802:16:18",
8579 "stateVariable": false,
8580 "storageLocation": "default",
8581 "typeDescriptions": {
8582 "typeIdentifier": "t_string_calldata_ptr",
8583 "typeString": "string"
8584 },
8585 "typeName": {
8586 "id": 4171,
8587 "name": "string",
8588 "nodeType": "ElementaryTypeName",
8589 "src": "5802:6:18",
8590 "typeDescriptions": {
8591 "typeIdentifier": "t_string_storage_ptr",
8592 "typeString": "string"
8593 }
8594 },
8595 "value": null,
8596 "visibility": "internal"
8597 }
8598 ],
8599 "src": "5771:48:18"
8600 },
8601 "payable": false,
8602 "returnParameters": {
8603 "id": 4174,
8604 "nodeType": "ParameterList",
8605 "parameters": [],
8606 "src": "5829:0:18"
8607 },
8608 "scope": 4251,
8609 "src": "5754:166:18",
8610 "stateMutability": "nonpayable",
8611 "superFunction": 824,
8612 "visibility": "external"
8613 },
8614 {
8615 "body": {
8616 "id": 4214,
8617 "nodeType": "Block",
8618 "src": "6043:148:18",
8619 "statements": [
8620 {
8621 "assignments": [
8622 4197
8623 ],
8624 "declarations": [
8625 {
8626 "constant": false,
8627 "id": 4197,
8628 "name": "id",
8629 "nodeType": "VariableDeclaration",
8630 "scope": 4215,
8631 "src": "6053:10:18",
8632 "stateVariable": false,
8633 "storageLocation": "default",
8634 "typeDescriptions": {
8635 "typeIdentifier": "t_uint256",
8636 "typeString": "uint256"
8637 },
8638 "typeName": {
8639 "id": 4196,
8640 "name": "uint256",
8641 "nodeType": "ElementaryTypeName",
8642 "src": "6053:7:18",
8643 "typeDescriptions": {
8644 "typeIdentifier": "t_uint256",
8645 "typeString": "uint256"
8646 }
8647 },
8648 "value": null,
8649 "visibility": "internal"
8650 }
8651 ],
8652 "id": 4205,
8653 "initialValue": {
8654 "argumentTypes": null,
8655 "arguments": [
8656 {
8657 "argumentTypes": null,
8658 "id": 4200,
8659 "name": "oracleAddr",
8660 "nodeType": "Identifier",
8661 "overloadedDeclarations": [],
8662 "referencedDeclaration": 4184,
8663 "src": "6081:10:18",
8664 "typeDescriptions": {
8665 "typeIdentifier": "t_address",
8666 "typeString": "address"
8667 }
8668 },
8669 {
8670 "argumentTypes": null,
8671 "id": 4201,
8672 "name": "query",
8673 "nodeType": "Identifier",
8674 "overloadedDeclarations": [],
8675 "referencedDeclaration": 4186,
8676 "src": "6093:5:18",
8677 "typeDescriptions": {
8678 "typeIdentifier": "t_string_calldata_ptr",
8679 "typeString": "string calldata"
8680 }
8681 },
8682 {
8683 "argumentTypes": null,
8684 "id": 4202,
8685 "name": "specifier",
8686 "nodeType": "Identifier",
8687 "overloadedDeclarations": [],
8688 "referencedDeclaration": 4188,
8689 "src": "6100:9:18",
8690 "typeDescriptions": {
8691 "typeIdentifier": "t_bytes32",
8692 "typeString": "bytes32"
8693 }
8694 },
8695 {
8696 "argumentTypes": null,
8697 "id": 4203,
8698 "name": "params",
8699 "nodeType": "Identifier",
8700 "overloadedDeclarations": [],
8701 "referencedDeclaration": 4191,
8702 "src": "6111:6:18",
8703 "typeDescriptions": {
8704 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
8705 "typeString": "bytes32[] calldata"
8706 }
8707 }
8708 ],
8709 "expression": {
8710 "argumentTypes": [
8711 {
8712 "typeIdentifier": "t_address",
8713 "typeString": "address"
8714 },
8715 {
8716 "typeIdentifier": "t_string_calldata_ptr",
8717 "typeString": "string calldata"
8718 },
8719 {
8720 "typeIdentifier": "t_bytes32",
8721 "typeString": "bytes32"
8722 },
8723 {
8724 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
8725 "typeString": "bytes32[] calldata"
8726 }
8727 ],
8728 "expression": {
8729 "argumentTypes": null,
8730 "id": 4198,
8731 "name": "dispatch",
8732 "nodeType": "Identifier",
8733 "overloadedDeclarations": [],
8734 "referencedDeclaration": 4093,
8735 "src": "6066:8:18",
8736 "typeDescriptions": {
8737 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
8738 "typeString": "contract DispatchInterface"
8739 }
8740 },
8741 "id": 4199,
8742 "isConstant": false,
8743 "isLValue": false,
8744 "isPure": false,
8745 "lValueRequested": false,
8746 "memberName": "query",
8747 "nodeType": "MemberAccess",
8748 "referencedDeclaration": 10024,
8749 "src": "6066:14:18",
8750 "typeDescriptions": {
8751 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$",
8752 "typeString": "function (address,string memory,bytes32,bytes32[] memory) external returns (uint256)"
8753 }
8754 },
8755 "id": 4204,
8756 "isConstant": false,
8757 "isLValue": false,
8758 "isPure": false,
8759 "kind": "functionCall",
8760 "lValueRequested": false,
8761 "names": [],
8762 "nodeType": "FunctionCall",
8763 "src": "6066:52:18",
8764 "typeDescriptions": {
8765 "typeIdentifier": "t_uint256",
8766 "typeString": "uint256"
8767 }
8768 },
8769 "nodeType": "VariableDeclarationStatement",
8770 "src": "6053:65:18"
8771 },
8772 {
8773 "eventCall": {
8774 "argumentTypes": null,
8775 "arguments": [
8776 {
8777 "argumentTypes": null,
8778 "id": 4207,
8779 "name": "oracleAddr",
8780 "nodeType": "Identifier",
8781 "overloadedDeclarations": [],
8782 "referencedDeclaration": 4184,
8783 "src": "6143:10:18",
8784 "typeDescriptions": {
8785 "typeIdentifier": "t_address",
8786 "typeString": "address"
8787 }
8788 },
8789 {
8790 "argumentTypes": null,
8791 "id": 4208,
8792 "name": "query",
8793 "nodeType": "Identifier",
8794 "overloadedDeclarations": [],
8795 "referencedDeclaration": 4186,
8796 "src": "6155:5:18",
8797 "typeDescriptions": {
8798 "typeIdentifier": "t_string_calldata_ptr",
8799 "typeString": "string calldata"
8800 }
8801 },
8802 {
8803 "argumentTypes": null,
8804 "id": 4209,
8805 "name": "id",
8806 "nodeType": "Identifier",
8807 "overloadedDeclarations": [],
8808 "referencedDeclaration": 4197,
8809 "src": "6162:2:18",
8810 "typeDescriptions": {
8811 "typeIdentifier": "t_uint256",
8812 "typeString": "uint256"
8813 }
8814 }
8815 ],
8816 "expression": {
8817 "argumentTypes": [
8818 {
8819 "typeIdentifier": "t_address",
8820 "typeString": "address"
8821 },
8822 {
8823 "typeIdentifier": "t_string_calldata_ptr",
8824 "typeString": "string calldata"
8825 },
8826 {
8827 "typeIdentifier": "t_uint256",
8828 "typeString": "uint256"
8829 }
8830 ],
8831 "id": 4206,
8832 "name": "MadeQuery",
8833 "nodeType": "Identifier",
8834 "overloadedDeclarations": [],
8835 "referencedDeclaration": 4069,
8836 "src": "6133:9:18",
8837 "typeDescriptions": {
8838 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$__$",
8839 "typeString": "function (address,string memory,uint256)"
8840 }
8841 },
8842 "id": 4210,
8843 "isConstant": false,
8844 "isLValue": false,
8845 "isPure": false,
8846 "kind": "functionCall",
8847 "lValueRequested": false,
8848 "names": [],
8849 "nodeType": "FunctionCall",
8850 "src": "6133:32:18",
8851 "typeDescriptions": {
8852 "typeIdentifier": "t_tuple$__$",
8853 "typeString": "tuple()"
8854 }
8855 },
8856 "id": 4211,
8857 "nodeType": "EmitStatement",
8858 "src": "6128:37:18"
8859 },
8860 {
8861 "expression": {
8862 "argumentTypes": null,
8863 "id": 4212,
8864 "name": "id",
8865 "nodeType": "Identifier",
8866 "overloadedDeclarations": [],
8867 "referencedDeclaration": 4197,
8868 "src": "6182:2:18",
8869 "typeDescriptions": {
8870 "typeIdentifier": "t_uint256",
8871 "typeString": "uint256"
8872 }
8873 },
8874 "functionReturnParameters": 4195,
8875 "id": 4213,
8876 "nodeType": "Return",
8877 "src": "6175:9:18"
8878 }
8879 ]
8880 },
8881 "documentation": null,
8882 "id": 4215,
8883 "implemented": true,
8884 "isConstructor": false,
8885 "isDeclaredConst": false,
8886 "modifiers": [],
8887 "name": "testQuery",
8888 "nodeType": "FunctionDefinition",
8889 "parameters": {
8890 "id": 4192,
8891 "nodeType": "ParameterList",
8892 "parameters": [
8893 {
8894 "constant": false,
8895 "id": 4184,
8896 "name": "oracleAddr",
8897 "nodeType": "VariableDeclaration",
8898 "scope": 4215,
8899 "src": "5945:18:18",
8900 "stateVariable": false,
8901 "storageLocation": "default",
8902 "typeDescriptions": {
8903 "typeIdentifier": "t_address",
8904 "typeString": "address"
8905 },
8906 "typeName": {
8907 "id": 4183,
8908 "name": "address",
8909 "nodeType": "ElementaryTypeName",
8910 "src": "5945:7:18",
8911 "typeDescriptions": {
8912 "typeIdentifier": "t_address",
8913 "typeString": "address"
8914 }
8915 },
8916 "value": null,
8917 "visibility": "internal"
8918 },
8919 {
8920 "constant": false,
8921 "id": 4186,
8922 "name": "query",
8923 "nodeType": "VariableDeclaration",
8924 "scope": 4215,
8925 "src": "5965:12:18",
8926 "stateVariable": false,
8927 "storageLocation": "default",
8928 "typeDescriptions": {
8929 "typeIdentifier": "t_string_calldata_ptr",
8930 "typeString": "string"
8931 },
8932 "typeName": {
8933 "id": 4185,
8934 "name": "string",
8935 "nodeType": "ElementaryTypeName",
8936 "src": "5965:6:18",
8937 "typeDescriptions": {
8938 "typeIdentifier": "t_string_storage_ptr",
8939 "typeString": "string"
8940 }
8941 },
8942 "value": null,
8943 "visibility": "internal"
8944 },
8945 {
8946 "constant": false,
8947 "id": 4188,
8948 "name": "specifier",
8949 "nodeType": "VariableDeclaration",
8950 "scope": 4215,
8951 "src": "5979:17:18",
8952 "stateVariable": false,
8953 "storageLocation": "default",
8954 "typeDescriptions": {
8955 "typeIdentifier": "t_bytes32",
8956 "typeString": "bytes32"
8957 },
8958 "typeName": {
8959 "id": 4187,
8960 "name": "bytes32",
8961 "nodeType": "ElementaryTypeName",
8962 "src": "5979:7:18",
8963 "typeDescriptions": {
8964 "typeIdentifier": "t_bytes32",
8965 "typeString": "bytes32"
8966 }
8967 },
8968 "value": null,
8969 "visibility": "internal"
8970 },
8971 {
8972 "constant": false,
8973 "id": 4191,
8974 "name": "params",
8975 "nodeType": "VariableDeclaration",
8976 "scope": 4215,
8977 "src": "5998:16:18",
8978 "stateVariable": false,
8979 "storageLocation": "default",
8980 "typeDescriptions": {
8981 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
8982 "typeString": "bytes32[]"
8983 },
8984 "typeName": {
8985 "baseType": {
8986 "id": 4189,
8987 "name": "bytes32",
8988 "nodeType": "ElementaryTypeName",
8989 "src": "5998:7:18",
8990 "typeDescriptions": {
8991 "typeIdentifier": "t_bytes32",
8992 "typeString": "bytes32"
8993 }
8994 },
8995 "id": 4190,
8996 "length": null,
8997 "nodeType": "ArrayTypeName",
8998 "src": "5998:9:18",
8999 "typeDescriptions": {
9000 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
9001 "typeString": "bytes32[]"
9002 }
9003 },
9004 "value": null,
9005 "visibility": "internal"
9006 }
9007 ],
9008 "src": "5944:71:18"
9009 },
9010 "payable": false,
9011 "returnParameters": {
9012 "id": 4195,
9013 "nodeType": "ParameterList",
9014 "parameters": [
9015 {
9016 "constant": false,
9017 "id": 4194,
9018 "name": "",
9019 "nodeType": "VariableDeclaration",
9020 "scope": 4215,
9021 "src": "6034:7:18",
9022 "stateVariable": false,
9023 "storageLocation": "default",
9024 "typeDescriptions": {
9025 "typeIdentifier": "t_uint256",
9026 "typeString": "uint256"
9027 },
9028 "typeName": {
9029 "id": 4193,
9030 "name": "uint256",
9031 "nodeType": "ElementaryTypeName",
9032 "src": "6034:7:18",
9033 "typeDescriptions": {
9034 "typeIdentifier": "t_uint256",
9035 "typeString": "uint256"
9036 }
9037 },
9038 "value": null,
9039 "visibility": "internal"
9040 }
9041 ],
9042 "src": "6033:9:18"
9043 },
9044 "scope": 4251,
9045 "src": "5926:265:18",
9046 "stateMutability": "nonpayable",
9047 "superFunction": null,
9048 "visibility": "external"
9049 },
9050 {
9051 "body": {
9052 "id": 4237,
9053 "nodeType": "Block",
9054 "src": "6283:221:18",
9055 "statements": [
9056 {
9057 "assignments": [
9058 4223
9059 ],
9060 "declarations": [
9061 {
9062 "constant": false,
9063 "id": 4223,
9064 "name": "tempEmptyStringTest",
9065 "nodeType": "VariableDeclaration",
9066 "scope": 4238,
9067 "src": "6293:32:18",
9068 "stateVariable": false,
9069 "storageLocation": "memory",
9070 "typeDescriptions": {
9071 "typeIdentifier": "t_bytes_memory_ptr",
9072 "typeString": "bytes"
9073 },
9074 "typeName": {
9075 "id": 4222,
9076 "name": "bytes",
9077 "nodeType": "ElementaryTypeName",
9078 "src": "6293:5:18",
9079 "typeDescriptions": {
9080 "typeIdentifier": "t_bytes_storage_ptr",
9081 "typeString": "bytes"
9082 }
9083 },
9084 "value": null,
9085 "visibility": "internal"
9086 }
9087 ],
9088 "id": 4227,
9089 "initialValue": {
9090 "argumentTypes": null,
9091 "arguments": [
9092 {
9093 "argumentTypes": null,
9094 "id": 4225,
9095 "name": "source",
9096 "nodeType": "Identifier",
9097 "overloadedDeclarations": [],
9098 "referencedDeclaration": 4217,
9099 "src": "6334:6:18",
9100 "typeDescriptions": {
9101 "typeIdentifier": "t_string_memory_ptr",
9102 "typeString": "string memory"
9103 }
9104 }
9105 ],
9106 "expression": {
9107 "argumentTypes": [
9108 {
9109 "typeIdentifier": "t_string_memory_ptr",
9110 "typeString": "string memory"
9111 }
9112 ],
9113 "id": 4224,
9114 "isConstant": false,
9115 "isLValue": false,
9116 "isPure": true,
9117 "lValueRequested": false,
9118 "nodeType": "ElementaryTypeNameExpression",
9119 "src": "6328:5:18",
9120 "typeDescriptions": {
9121 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
9122 "typeString": "type(bytes storage pointer)"
9123 },
9124 "typeName": "bytes"
9125 },
9126 "id": 4226,
9127 "isConstant": false,
9128 "isLValue": false,
9129 "isPure": false,
9130 "kind": "typeConversion",
9131 "lValueRequested": false,
9132 "names": [],
9133 "nodeType": "FunctionCall",
9134 "src": "6328:13:18",
9135 "typeDescriptions": {
9136 "typeIdentifier": "t_bytes_memory",
9137 "typeString": "bytes memory"
9138 }
9139 },
9140 "nodeType": "VariableDeclarationStatement",
9141 "src": "6293:48:18"
9142 },
9143 {
9144 "condition": {
9145 "argumentTypes": null,
9146 "commonType": {
9147 "typeIdentifier": "t_uint256",
9148 "typeString": "uint256"
9149 },
9150 "id": 4231,
9151 "isConstant": false,
9152 "isLValue": false,
9153 "isPure": false,
9154 "lValueRequested": false,
9155 "leftExpression": {
9156 "argumentTypes": null,
9157 "expression": {
9158 "argumentTypes": null,
9159 "id": 4228,
9160 "name": "tempEmptyStringTest",
9161 "nodeType": "Identifier",
9162 "overloadedDeclarations": [],
9163 "referencedDeclaration": 4223,
9164 "src": "6356:19:18",
9165 "typeDescriptions": {
9166 "typeIdentifier": "t_bytes_memory_ptr",
9167 "typeString": "bytes memory"
9168 }
9169 },
9170 "id": 4229,
9171 "isConstant": false,
9172 "isLValue": false,
9173 "isPure": false,
9174 "lValueRequested": false,
9175 "memberName": "length",
9176 "nodeType": "MemberAccess",
9177 "referencedDeclaration": null,
9178 "src": "6356:26:18",
9179 "typeDescriptions": {
9180 "typeIdentifier": "t_uint256",
9181 "typeString": "uint256"
9182 }
9183 },
9184 "nodeType": "BinaryOperation",
9185 "operator": "==",
9186 "rightExpression": {
9187 "argumentTypes": null,
9188 "hexValue": "30",
9189 "id": 4230,
9190 "isConstant": false,
9191 "isLValue": false,
9192 "isPure": true,
9193 "kind": "number",
9194 "lValueRequested": false,
9195 "nodeType": "Literal",
9196 "src": "6386:1:18",
9197 "subdenomination": null,
9198 "typeDescriptions": {
9199 "typeIdentifier": "t_rational_0_by_1",
9200 "typeString": "int_const 0"
9201 },
9202 "value": "0"
9203 },
9204 "src": "6356:31:18",
9205 "typeDescriptions": {
9206 "typeIdentifier": "t_bool",
9207 "typeString": "bool"
9208 }
9209 },
9210 "falseBody": null,
9211 "id": 4235,
9212 "nodeType": "IfStatement",
9213 "src": "6352:72:18",
9214 "trueBody": {
9215 "id": 4234,
9216 "nodeType": "Block",
9217 "src": "6389:35:18",
9218 "statements": [
9219 {
9220 "expression": {
9221 "argumentTypes": null,
9222 "hexValue": "307830",
9223 "id": 4232,
9224 "isConstant": false,
9225 "isLValue": false,
9226 "isPure": true,
9227 "kind": "number",
9228 "lValueRequested": false,
9229 "nodeType": "Literal",
9230 "src": "6410:3:18",
9231 "subdenomination": null,
9232 "typeDescriptions": {
9233 "typeIdentifier": "t_rational_0_by_1",
9234 "typeString": "int_const 0"
9235 },
9236 "value": "0x0"
9237 },
9238 "functionReturnParameters": 4221,
9239 "id": 4233,
9240 "nodeType": "Return",
9241 "src": "6403:10:18"
9242 }
9243 ]
9244 }
9245 },
9246 {
9247 "externalReferences": [
9248 {
9249 "result": {
9250 "declaration": 4220,
9251 "isOffset": false,
9252 "isSlot": false,
9253 "src": "6456:6:18",
9254 "valueSize": 1
9255 }
9256 },
9257 {
9258 "source": {
9259 "declaration": 4217,
9260 "isOffset": false,
9261 "isSlot": false,
9262 "src": "6476:6:18",
9263 "valueSize": 1
9264 }
9265 }
9266 ],
9267 "id": 4236,
9268 "nodeType": "InlineAssembly",
9269 "operations": "{\n result := mload(add(source, 32))\n}",
9270 "src": "6433:71:18"
9271 }
9272 ]
9273 },
9274 "documentation": null,
9275 "id": 4238,
9276 "implemented": true,
9277 "isConstructor": false,
9278 "isDeclaredConst": true,
9279 "modifiers": [],
9280 "name": "stringToBytes32",
9281 "nodeType": "FunctionDefinition",
9282 "parameters": {
9283 "id": 4218,
9284 "nodeType": "ParameterList",
9285 "parameters": [
9286 {
9287 "constant": false,
9288 "id": 4217,
9289 "name": "source",
9290 "nodeType": "VariableDeclaration",
9291 "scope": 4238,
9292 "src": "6222:20:18",
9293 "stateVariable": false,
9294 "storageLocation": "memory",
9295 "typeDescriptions": {
9296 "typeIdentifier": "t_string_memory_ptr",
9297 "typeString": "string"
9298 },
9299 "typeName": {
9300 "id": 4216,
9301 "name": "string",
9302 "nodeType": "ElementaryTypeName",
9303 "src": "6222:6:18",
9304 "typeDescriptions": {
9305 "typeIdentifier": "t_string_storage_ptr",
9306 "typeString": "string"
9307 }
9308 },
9309 "value": null,
9310 "visibility": "internal"
9311 }
9312 ],
9313 "src": "6221:22:18"
9314 },
9315 "payable": false,
9316 "returnParameters": {
9317 "id": 4221,
9318 "nodeType": "ParameterList",
9319 "parameters": [
9320 {
9321 "constant": false,
9322 "id": 4220,
9323 "name": "result",
9324 "nodeType": "VariableDeclaration",
9325 "scope": 4238,
9326 "src": "6267:14:18",
9327 "stateVariable": false,
9328 "storageLocation": "default",
9329 "typeDescriptions": {
9330 "typeIdentifier": "t_bytes32",
9331 "typeString": "bytes32"
9332 },
9333 "typeName": {
9334 "id": 4219,
9335 "name": "bytes32",
9336 "nodeType": "ElementaryTypeName",
9337 "src": "6267:7:18",
9338 "typeDescriptions": {
9339 "typeIdentifier": "t_bytes32",
9340 "typeString": "bytes32"
9341 }
9342 },
9343 "value": null,
9344 "visibility": "internal"
9345 }
9346 ],
9347 "src": "6266:16:18"
9348 },
9349 "scope": 4251,
9350 "src": "6197:307:18",
9351 "stateMutability": "pure",
9352 "superFunction": null,
9353 "visibility": "internal"
9354 },
9355 {
9356 "body": {
9357 "id": 4249,
9358 "nodeType": "Block",
9359 "src": "6596:41:18",
9360 "statements": [
9361 {
9362 "expression": {
9363 "argumentTypes": null,
9364 "arguments": [
9365 {
9366 "argumentTypes": null,
9367 "id": 4246,
9368 "name": "id",
9369 "nodeType": "Identifier",
9370 "overloadedDeclarations": [],
9371 "referencedDeclaration": 4240,
9372 "src": "6627:2:18",
9373 "typeDescriptions": {
9374 "typeIdentifier": "t_uint256",
9375 "typeString": "uint256"
9376 }
9377 }
9378 ],
9379 "expression": {
9380 "argumentTypes": [
9381 {
9382 "typeIdentifier": "t_uint256",
9383 "typeString": "uint256"
9384 }
9385 ],
9386 "expression": {
9387 "argumentTypes": null,
9388 "id": 4243,
9389 "name": "dispatch",
9390 "nodeType": "Identifier",
9391 "overloadedDeclarations": [],
9392 "referencedDeclaration": 4093,
9393 "src": "6606:8:18",
9394 "typeDescriptions": {
9395 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
9396 "typeString": "contract DispatchInterface"
9397 }
9398 },
9399 "id": 4245,
9400 "isConstant": false,
9401 "isLValue": false,
9402 "isPure": false,
9403 "lValueRequested": false,
9404 "memberName": "cancelQuery",
9405 "nodeType": "MemberAccess",
9406 "referencedDeclaration": 10097,
9407 "src": "6606:20:18",
9408 "typeDescriptions": {
9409 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
9410 "typeString": "function (uint256) external"
9411 }
9412 },
9413 "id": 4247,
9414 "isConstant": false,
9415 "isLValue": false,
9416 "isPure": false,
9417 "kind": "functionCall",
9418 "lValueRequested": false,
9419 "names": [],
9420 "nodeType": "FunctionCall",
9421 "src": "6606:24:18",
9422 "typeDescriptions": {
9423 "typeIdentifier": "t_tuple$__$",
9424 "typeString": "tuple()"
9425 }
9426 },
9427 "id": 4248,
9428 "nodeType": "ExpressionStatement",
9429 "src": "6606:24:18"
9430 }
9431 ]
9432 },
9433 "documentation": null,
9434 "id": 4250,
9435 "implemented": true,
9436 "isConstructor": false,
9437 "isDeclaredConst": false,
9438 "modifiers": [],
9439 "name": "cancelQuery",
9440 "nodeType": "FunctionDefinition",
9441 "parameters": {
9442 "id": 4241,
9443 "nodeType": "ParameterList",
9444 "parameters": [
9445 {
9446 "constant": false,
9447 "id": 4240,
9448 "name": "id",
9449 "nodeType": "VariableDeclaration",
9450 "scope": 4250,
9451 "src": "6575:10:18",
9452 "stateVariable": false,
9453 "storageLocation": "default",
9454 "typeDescriptions": {
9455 "typeIdentifier": "t_uint256",
9456 "typeString": "uint256"
9457 },
9458 "typeName": {
9459 "id": 4239,
9460 "name": "uint256",
9461 "nodeType": "ElementaryTypeName",
9462 "src": "6575:7:18",
9463 "typeDescriptions": {
9464 "typeIdentifier": "t_uint256",
9465 "typeString": "uint256"
9466 }
9467 },
9468 "value": null,
9469 "visibility": "internal"
9470 }
9471 ],
9472 "src": "6574:12:18"
9473 },
9474 "payable": false,
9475 "returnParameters": {
9476 "id": 4242,
9477 "nodeType": "ParameterList",
9478 "parameters": [],
9479 "src": "6596:0:18"
9480 },
9481 "scope": 4251,
9482 "src": "6554:83:18",
9483 "stateMutability": "nonpayable",
9484 "superFunction": null,
9485 "visibility": "external"
9486 }
9487 ],
9488 "scope": 4252,
9489 "src": "4607:2033:18"
9490 }
9491 ],
9492 "src": "0:6641:18"
9493 },
9494 "legacyAST": {
9495 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/TestContracts.sol",
9496 "exportedSymbols": {
9497 "TestClient": [
9498 4251
9499 ],
9500 "TestProvider": [
9501 4057
9502 ]
9503 },
9504 "id": 4252,
9505 "nodeType": "SourceUnit",
9506 "nodes": [
9507 {
9508 "id": 3555,
9509 "literals": [
9510 "solidity",
9511 "^",
9512 "0.4",
9513 ".24"
9514 ],
9515 "nodeType": "PragmaDirective",
9516 "src": "0:24:18"
9517 },
9518 {
9519 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/Client.sol",
9520 "file": "./Client.sol",
9521 "id": 3556,
9522 "nodeType": "ImportDirective",
9523 "scope": 4252,
9524 "sourceUnit": 870,
9525 "src": "26:22:18",
9526 "symbolAliases": [],
9527 "unitAlias": ""
9528 },
9529 {
9530 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/dispatch/DispatchInterface.sol",
9531 "file": "../../platform/dispatch/DispatchInterface.sol",
9532 "id": 3557,
9533 "nodeType": "ImportDirective",
9534 "scope": 4252,
9535 "sourceUnit": 10148,
9536 "src": "49:55:18",
9537 "symbolAliases": [],
9538 "unitAlias": ""
9539 },
9540 {
9541 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/bondage/BondageInterface.sol",
9542 "file": "../../platform/bondage/BondageInterface.sol",
9543 "id": 3558,
9544 "nodeType": "ImportDirective",
9545 "scope": 4252,
9546 "sourceUnit": 7927,
9547 "src": "105:53:18",
9548 "symbolAliases": [],
9549 "unitAlias": ""
9550 },
9551 {
9552 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/registry/RegistryInterface.sol",
9553 "file": "../../platform/registry/RegistryInterface.sol",
9554 "id": 3559,
9555 "nodeType": "ImportDirective",
9556 "scope": 4252,
9557 "sourceUnit": 11304,
9558 "src": "159:55:18",
9559 "symbolAliases": [],
9560 "unitAlias": ""
9561 },
9562 {
9563 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/OnChainProvider.sol",
9564 "file": "./OnChainProvider.sol",
9565 "id": 3560,
9566 "nodeType": "ImportDirective",
9567 "scope": 4252,
9568 "sourceUnit": 1827,
9569 "src": "215:31:18",
9570 "symbolAliases": [],
9571 "unitAlias": ""
9572 },
9573 {
9574 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/ERC20.sol",
9575 "file": "../ERC20.sol",
9576 "id": 3561,
9577 "nodeType": "ImportDirective",
9578 "scope": 4252,
9579 "sourceUnit": 132,
9580 "src": "247:22:18",
9581 "symbolAliases": [],
9582 "unitAlias": ""
9583 },
9584 {
9585 "baseContracts": [
9586 {
9587 "arguments": null,
9588 "baseName": {
9589 "contractScope": null,
9590 "id": 3562,
9591 "name": "OnChainProvider",
9592 "nodeType": "UserDefinedTypeName",
9593 "referencedDeclaration": 1826,
9594 "src": "296:15:18",
9595 "typeDescriptions": {
9596 "typeIdentifier": "t_contract$_OnChainProvider_$1826",
9597 "typeString": "contract OnChainProvider"
9598 }
9599 },
9600 "id": 3563,
9601 "nodeType": "InheritanceSpecifier",
9602 "src": "296:15:18"
9603 }
9604 ],
9605 "contractDependencies": [
9606 1826
9607 ],
9608 "contractKind": "contract",
9609 "documentation": null,
9610 "fullyImplemented": true,
9611 "id": 4057,
9612 "linearizedBaseContracts": [
9613 4057,
9614 1826
9615 ],
9616 "name": "TestProvider",
9617 "nodeType": "ContractDefinition",
9618 "nodes": [
9619 {
9620 "anonymous": false,
9621 "documentation": null,
9622 "id": 3572,
9623 "name": "RecievedQuery",
9624 "nodeType": "EventDefinition",
9625 "parameters": {
9626 "id": 3571,
9627 "nodeType": "ParameterList",
9628 "parameters": [
9629 {
9630 "constant": false,
9631 "id": 3565,
9632 "indexed": false,
9633 "name": "query",
9634 "nodeType": "VariableDeclaration",
9635 "scope": 3572,
9636 "src": "338:12:18",
9637 "stateVariable": false,
9638 "storageLocation": "default",
9639 "typeDescriptions": {
9640 "typeIdentifier": "t_string_memory_ptr",
9641 "typeString": "string"
9642 },
9643 "typeName": {
9644 "id": 3564,
9645 "name": "string",
9646 "nodeType": "ElementaryTypeName",
9647 "src": "338:6:18",
9648 "typeDescriptions": {
9649 "typeIdentifier": "t_string_storage_ptr",
9650 "typeString": "string"
9651 }
9652 },
9653 "value": null,
9654 "visibility": "internal"
9655 },
9656 {
9657 "constant": false,
9658 "id": 3567,
9659 "indexed": false,
9660 "name": "endpoint",
9661 "nodeType": "VariableDeclaration",
9662 "scope": 3572,
9663 "src": "352:16:18",
9664 "stateVariable": false,
9665 "storageLocation": "default",
9666 "typeDescriptions": {
9667 "typeIdentifier": "t_bytes32",
9668 "typeString": "bytes32"
9669 },
9670 "typeName": {
9671 "id": 3566,
9672 "name": "bytes32",
9673 "nodeType": "ElementaryTypeName",
9674 "src": "352:7:18",
9675 "typeDescriptions": {
9676 "typeIdentifier": "t_bytes32",
9677 "typeString": "bytes32"
9678 }
9679 },
9680 "value": null,
9681 "visibility": "internal"
9682 },
9683 {
9684 "constant": false,
9685 "id": 3570,
9686 "indexed": false,
9687 "name": "params",
9688 "nodeType": "VariableDeclaration",
9689 "scope": 3572,
9690 "src": "370:16:18",
9691 "stateVariable": false,
9692 "storageLocation": "default",
9693 "typeDescriptions": {
9694 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
9695 "typeString": "bytes32[]"
9696 },
9697 "typeName": {
9698 "baseType": {
9699 "id": 3568,
9700 "name": "bytes32",
9701 "nodeType": "ElementaryTypeName",
9702 "src": "370:7:18",
9703 "typeDescriptions": {
9704 "typeIdentifier": "t_bytes32",
9705 "typeString": "bytes32"
9706 }
9707 },
9708 "id": 3569,
9709 "length": null,
9710 "nodeType": "ArrayTypeName",
9711 "src": "370:9:18",
9712 "typeDescriptions": {
9713 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
9714 "typeString": "bytes32[]"
9715 }
9716 },
9717 "value": null,
9718 "visibility": "internal"
9719 }
9720 ],
9721 "src": "337:50:18"
9722 },
9723 "src": "318:70:18"
9724 },
9725 {
9726 "anonymous": false,
9727 "documentation": null,
9728 "id": 3580,
9729 "name": "TEST",
9730 "nodeType": "EventDefinition",
9731 "parameters": {
9732 "id": 3579,
9733 "nodeType": "ParameterList",
9734 "parameters": [
9735 {
9736 "constant": false,
9737 "id": 3574,
9738 "indexed": false,
9739 "name": "res",
9740 "nodeType": "VariableDeclaration",
9741 "scope": 3580,
9742 "src": "405:8:18",
9743 "stateVariable": false,
9744 "storageLocation": "default",
9745 "typeDescriptions": {
9746 "typeIdentifier": "t_uint256",
9747 "typeString": "uint256"
9748 },
9749 "typeName": {
9750 "id": 3573,
9751 "name": "uint",
9752 "nodeType": "ElementaryTypeName",
9753 "src": "405:4:18",
9754 "typeDescriptions": {
9755 "typeIdentifier": "t_uint256",
9756 "typeString": "uint256"
9757 }
9758 },
9759 "value": null,
9760 "visibility": "internal"
9761 },
9762 {
9763 "constant": false,
9764 "id": 3576,
9765 "indexed": false,
9766 "name": "b",
9767 "nodeType": "VariableDeclaration",
9768 "scope": 3580,
9769 "src": "415:9:18",
9770 "stateVariable": false,
9771 "storageLocation": "default",
9772 "typeDescriptions": {
9773 "typeIdentifier": "t_bytes32",
9774 "typeString": "bytes32"
9775 },
9776 "typeName": {
9777 "id": 3575,
9778 "name": "bytes32",
9779 "nodeType": "ElementaryTypeName",
9780 "src": "415:7:18",
9781 "typeDescriptions": {
9782 "typeIdentifier": "t_bytes32",
9783 "typeString": "bytes32"
9784 }
9785 },
9786 "value": null,
9787 "visibility": "internal"
9788 },
9789 {
9790 "constant": false,
9791 "id": 3578,
9792 "indexed": false,
9793 "name": "s",
9794 "nodeType": "VariableDeclaration",
9795 "scope": 3580,
9796 "src": "426:8:18",
9797 "stateVariable": false,
9798 "storageLocation": "default",
9799 "typeDescriptions": {
9800 "typeIdentifier": "t_string_memory_ptr",
9801 "typeString": "string"
9802 },
9803 "typeName": {
9804 "id": 3577,
9805 "name": "string",
9806 "nodeType": "ElementaryTypeName",
9807 "src": "426:6:18",
9808 "typeDescriptions": {
9809 "typeIdentifier": "t_string_storage_ptr",
9810 "typeString": "string"
9811 }
9812 },
9813 "value": null,
9814 "visibility": "internal"
9815 }
9816 ],
9817 "src": "404:31:18"
9818 },
9819 "src": "394:42:18"
9820 },
9821 {
9822 "constant": false,
9823 "id": 3583,
9824 "name": "spec1",
9825 "nodeType": "VariableDeclaration",
9826 "scope": 4057,
9827 "src": "442:31:18",
9828 "stateVariable": true,
9829 "storageLocation": "default",
9830 "typeDescriptions": {
9831 "typeIdentifier": "t_bytes32",
9832 "typeString": "bytes32"
9833 },
9834 "typeName": {
9835 "id": 3581,
9836 "name": "bytes32",
9837 "nodeType": "ElementaryTypeName",
9838 "src": "442:7:18",
9839 "typeDescriptions": {
9840 "typeIdentifier": "t_bytes32",
9841 "typeString": "bytes32"
9842 }
9843 },
9844 "value": {
9845 "argumentTypes": null,
9846 "hexValue": "48656c6c6f3f",
9847 "id": 3582,
9848 "isConstant": false,
9849 "isLValue": false,
9850 "isPure": true,
9851 "kind": "string",
9852 "lValueRequested": false,
9853 "nodeType": "Literal",
9854 "src": "465:8:18",
9855 "subdenomination": null,
9856 "typeDescriptions": {
9857 "typeIdentifier": "t_stringliteral_c39a77d25e089200b4a840a5a610a0ce367e33ab74302bb68df43a53521f72eb",
9858 "typeString": "literal_string \"Hello?\""
9859 },
9860 "value": "Hello?"
9861 },
9862 "visibility": "public"
9863 },
9864 {
9865 "constant": false,
9866 "id": 3586,
9867 "name": "spec2",
9868 "nodeType": "VariableDeclaration",
9869 "scope": 4057,
9870 "src": "479:32:18",
9871 "stateVariable": true,
9872 "storageLocation": "default",
9873 "typeDescriptions": {
9874 "typeIdentifier": "t_bytes32",
9875 "typeString": "bytes32"
9876 },
9877 "typeName": {
9878 "id": 3584,
9879 "name": "bytes32",
9880 "nodeType": "ElementaryTypeName",
9881 "src": "479:7:18",
9882 "typeDescriptions": {
9883 "typeIdentifier": "t_bytes32",
9884 "typeString": "bytes32"
9885 }
9886 },
9887 "value": {
9888 "argumentTypes": null,
9889 "hexValue": "52657665727365",
9890 "id": 3585,
9891 "isConstant": false,
9892 "isLValue": false,
9893 "isPure": true,
9894 "kind": "string",
9895 "lValueRequested": false,
9896 "nodeType": "Literal",
9897 "src": "502:9:18",
9898 "subdenomination": null,
9899 "typeDescriptions": {
9900 "typeIdentifier": "t_stringliteral_c2c0cb1b4604374a82e0052941d8e348d1122d7f0274235b9316d17590b576ed",
9901 "typeString": "literal_string \"Reverse\""
9902 },
9903 "value": "Reverse"
9904 },
9905 "visibility": "public"
9906 },
9907 {
9908 "constant": false,
9909 "id": 3589,
9910 "name": "spec3",
9911 "nodeType": "VariableDeclaration",
9912 "scope": 4057,
9913 "src": "517:28:18",
9914 "stateVariable": true,
9915 "storageLocation": "default",
9916 "typeDescriptions": {
9917 "typeIdentifier": "t_bytes32",
9918 "typeString": "bytes32"
9919 },
9920 "typeName": {
9921 "id": 3587,
9922 "name": "bytes32",
9923 "nodeType": "ElementaryTypeName",
9924 "src": "517:7:18",
9925 "typeDescriptions": {
9926 "typeIdentifier": "t_bytes32",
9927 "typeString": "bytes32"
9928 }
9929 },
9930 "value": {
9931 "argumentTypes": null,
9932 "hexValue": "416464",
9933 "id": 3588,
9934 "isConstant": false,
9935 "isLValue": false,
9936 "isPure": true,
9937 "kind": "string",
9938 "lValueRequested": false,
9939 "nodeType": "Literal",
9940 "src": "540:5:18",
9941 "subdenomination": null,
9942 "typeDescriptions": {
9943 "typeIdentifier": "t_stringliteral_b807b8513c59d9a2c1aa8cbcd48bb7f8f7e31947017c04375037207be7b0485d",
9944 "typeString": "literal_string \"Add\""
9945 },
9946 "value": "Add"
9947 },
9948 "visibility": "public"
9949 },
9950 {
9951 "constant": false,
9952 "id": 3592,
9953 "name": "spec4",
9954 "nodeType": "VariableDeclaration",
9955 "scope": 4057,
9956 "src": "551:31:18",
9957 "stateVariable": true,
9958 "storageLocation": "default",
9959 "typeDescriptions": {
9960 "typeIdentifier": "t_bytes32",
9961 "typeString": "bytes32"
9962 },
9963 "typeName": {
9964 "id": 3590,
9965 "name": "bytes32",
9966 "nodeType": "ElementaryTypeName",
9967 "src": "551:7:18",
9968 "typeDescriptions": {
9969 "typeIdentifier": "t_bytes32",
9970 "typeString": "bytes32"
9971 }
9972 },
9973 "value": {
9974 "argumentTypes": null,
9975 "hexValue": "446f75626c65",
9976 "id": 3591,
9977 "isConstant": false,
9978 "isLValue": false,
9979 "isPure": true,
9980 "kind": "string",
9981 "lValueRequested": false,
9982 "nodeType": "Literal",
9983 "src": "574:8:18",
9984 "subdenomination": null,
9985 "typeDescriptions": {
9986 "typeIdentifier": "t_stringliteral_c9b6476ed7f4a8c6bfc08d93f4d6436ef7d9ac2ed055056196a31c90e486179d",
9987 "typeString": "literal_string \"Double\""
9988 },
9989 "value": "Double"
9990 },
9991 "visibility": "public"
9992 },
9993 {
9994 "constant": false,
9995 "id": 3594,
9996 "name": "AM_A_BAD_ORACLE",
9997 "nodeType": "VariableDeclaration",
9998 "scope": 4057,
9999 "src": "589:20:18",
10000 "stateVariable": true,
10001 "storageLocation": "default",
10002 "typeDescriptions": {
10003 "typeIdentifier": "t_bool",
10004 "typeString": "bool"
10005 },
10006 "typeName": {
10007 "id": 3593,
10008 "name": "bool",
10009 "nodeType": "ElementaryTypeName",
10010 "src": "589:4:18",
10011 "typeDescriptions": {
10012 "typeIdentifier": "t_bool",
10013 "typeString": "bool"
10014 }
10015 },
10016 "value": null,
10017 "visibility": "internal"
10018 },
10019 {
10020 "constant": false,
10021 "id": 3603,
10022 "name": "curve",
10023 "nodeType": "VariableDeclaration",
10024 "scope": 4057,
10025 "src": "829:38:18",
10026 "stateVariable": true,
10027 "storageLocation": "default",
10028 "typeDescriptions": {
10029 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
10030 "typeString": "int256[]"
10031 },
10032 "typeName": {
10033 "baseType": {
10034 "id": 3595,
10035 "name": "int",
10036 "nodeType": "ElementaryTypeName",
10037 "src": "829:3:18",
10038 "typeDescriptions": {
10039 "typeIdentifier": "t_int256",
10040 "typeString": "int256"
10041 }
10042 },
10043 "id": 3596,
10044 "length": null,
10045 "nodeType": "ArrayTypeName",
10046 "src": "829:5:18",
10047 "typeDescriptions": {
10048 "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
10049 "typeString": "int256[]"
10050 }
10051 },
10052 "value": {
10053 "argumentTypes": null,
10054 "components": [
10055 {
10056 "argumentTypes": null,
10057 "hexValue": "33",
10058 "id": 3597,
10059 "isConstant": false,
10060 "isLValue": false,
10061 "isPure": true,
10062 "kind": "number",
10063 "lValueRequested": false,
10064 "nodeType": "Literal",
10065 "src": "844:1:18",
10066 "subdenomination": null,
10067 "typeDescriptions": {
10068 "typeIdentifier": "t_rational_3_by_1",
10069 "typeString": "int_const 3"
10070 },
10071 "value": "3"
10072 },
10073 {
10074 "argumentTypes": null,
10075 "hexValue": "30",
10076 "id": 3598,
10077 "isConstant": false,
10078 "isLValue": false,
10079 "isPure": true,
10080 "kind": "number",
10081 "lValueRequested": false,
10082 "nodeType": "Literal",
10083 "src": "847:1:18",
10084 "subdenomination": null,
10085 "typeDescriptions": {
10086 "typeIdentifier": "t_rational_0_by_1",
10087 "typeString": "int_const 0"
10088 },
10089 "value": "0"
10090 },
10091 {
10092 "argumentTypes": null,
10093 "hexValue": "30",
10094 "id": 3599,
10095 "isConstant": false,
10096 "isLValue": false,
10097 "isPure": true,
10098 "kind": "number",
10099 "lValueRequested": false,
10100 "nodeType": "Literal",
10101 "src": "850:1:18",
10102 "subdenomination": null,
10103 "typeDescriptions": {
10104 "typeIdentifier": "t_rational_0_by_1",
10105 "typeString": "int_const 0"
10106 },
10107 "value": "0"
10108 },
10109 {
10110 "argumentTypes": null,
10111 "hexValue": "32",
10112 "id": 3600,
10113 "isConstant": false,
10114 "isLValue": false,
10115 "isPure": true,
10116 "kind": "number",
10117 "lValueRequested": false,
10118 "nodeType": "Literal",
10119 "src": "853:1:18",
10120 "subdenomination": null,
10121 "typeDescriptions": {
10122 "typeIdentifier": "t_rational_2_by_1",
10123 "typeString": "int_const 2"
10124 },
10125 "value": "2"
10126 },
10127 {
10128 "argumentTypes": null,
10129 "hexValue": "31303030303030303030",
10130 "id": 3601,
10131 "isConstant": false,
10132 "isLValue": false,
10133 "isPure": true,
10134 "kind": "number",
10135 "lValueRequested": false,
10136 "nodeType": "Literal",
10137 "src": "856:10:18",
10138 "subdenomination": null,
10139 "typeDescriptions": {
10140 "typeIdentifier": "t_rational_1000000000_by_1",
10141 "typeString": "int_const 1000000000"
10142 },
10143 "value": "1000000000"
10144 }
10145 ],
10146 "id": 3602,
10147 "isConstant": false,
10148 "isInlineArray": true,
10149 "isLValue": false,
10150 "isPure": true,
10151 "lValueRequested": false,
10152 "nodeType": "TupleExpression",
10153 "src": "843:24:18",
10154 "typeDescriptions": {
10155 "typeIdentifier": "t_array$_t_uint32_$5_memory_ptr",
10156 "typeString": "uint32[5] memory"
10157 }
10158 },
10159 "visibility": "internal"
10160 },
10161 {
10162 "constant": false,
10163 "id": 3605,
10164 "name": "registry",
10165 "nodeType": "VariableDeclaration",
10166 "scope": 4057,
10167 "src": "874:26:18",
10168 "stateVariable": true,
10169 "storageLocation": "default",
10170 "typeDescriptions": {
10171 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
10172 "typeString": "contract RegistryInterface"
10173 },
10174 "typeName": {
10175 "contractScope": null,
10176 "id": 3604,
10177 "name": "RegistryInterface",
10178 "nodeType": "UserDefinedTypeName",
10179 "referencedDeclaration": 11303,
10180 "src": "874:17:18",
10181 "typeDescriptions": {
10182 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
10183 "typeString": "contract RegistryInterface"
10184 }
10185 },
10186 "value": null,
10187 "visibility": "internal"
10188 },
10189 {
10190 "body": {
10191 "id": 3713,
10192 "nodeType": "Block",
10193 "src": "1079:866:18",
10194 "statements": [
10195 {
10196 "eventCall": {
10197 "argumentTypes": null,
10198 "arguments": [
10199 {
10200 "argumentTypes": null,
10201 "id": 3620,
10202 "name": "userQuery",
10203 "nodeType": "Identifier",
10204 "overloadedDeclarations": [],
10205 "referencedDeclaration": 3609,
10206 "src": "1108:9:18",
10207 "typeDescriptions": {
10208 "typeIdentifier": "t_string_calldata_ptr",
10209 "typeString": "string calldata"
10210 }
10211 },
10212 {
10213 "argumentTypes": null,
10214 "id": 3621,
10215 "name": "endpoint",
10216 "nodeType": "Identifier",
10217 "overloadedDeclarations": [],
10218 "referencedDeclaration": 3611,
10219 "src": "1119:8:18",
10220 "typeDescriptions": {
10221 "typeIdentifier": "t_bytes32",
10222 "typeString": "bytes32"
10223 }
10224 },
10225 {
10226 "argumentTypes": null,
10227 "id": 3622,
10228 "name": "endpointParams",
10229 "nodeType": "Identifier",
10230 "overloadedDeclarations": [],
10231 "referencedDeclaration": 3614,
10232 "src": "1129:14:18",
10233 "typeDescriptions": {
10234 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
10235 "typeString": "bytes32[] calldata"
10236 }
10237 }
10238 ],
10239 "expression": {
10240 "argumentTypes": [
10241 {
10242 "typeIdentifier": "t_string_calldata_ptr",
10243 "typeString": "string calldata"
10244 },
10245 {
10246 "typeIdentifier": "t_bytes32",
10247 "typeString": "bytes32"
10248 },
10249 {
10250 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
10251 "typeString": "bytes32[] calldata"
10252 }
10253 ],
10254 "id": 3619,
10255 "name": "RecievedQuery",
10256 "nodeType": "Identifier",
10257 "overloadedDeclarations": [],
10258 "referencedDeclaration": 3572,
10259 "src": "1094:13:18",
10260 "typeDescriptions": {
10261 "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
10262 "typeString": "function (string memory,bytes32,bytes32[] memory)"
10263 }
10264 },
10265 "id": 3623,
10266 "isConstant": false,
10267 "isLValue": false,
10268 "isPure": false,
10269 "kind": "functionCall",
10270 "lValueRequested": false,
10271 "names": [],
10272 "nodeType": "FunctionCall",
10273 "src": "1094:50:18",
10274 "typeDescriptions": {
10275 "typeIdentifier": "t_tuple$__$",
10276 "typeString": "tuple()"
10277 }
10278 },
10279 "id": 3624,
10280 "nodeType": "EmitStatement",
10281 "src": "1089:55:18"
10282 },
10283 {
10284 "condition": {
10285 "argumentTypes": null,
10286 "id": 3625,
10287 "name": "AM_A_BAD_ORACLE",
10288 "nodeType": "Identifier",
10289 "overloadedDeclarations": [],
10290 "referencedDeclaration": 3594,
10291 "src": "1157:15:18",
10292 "typeDescriptions": {
10293 "typeIdentifier": "t_bool",
10294 "typeString": "bool"
10295 }
10296 },
10297 "falseBody": null,
10298 "id": 3627,
10299 "nodeType": "IfStatement",
10300 "src": "1154:27:18",
10301 "trueBody": {
10302 "expression": null,
10303 "functionReturnParameters": 3618,
10304 "id": 3626,
10305 "nodeType": "Return",
10306 "src": "1174:7:18"
10307 }
10308 },
10309 {
10310 "assignments": [
10311 3629
10312 ],
10313 "declarations": [
10314 {
10315 "constant": false,
10316 "id": 3629,
10317 "name": "_endpoint",
10318 "nodeType": "VariableDeclaration",
10319 "scope": 3714,
10320 "src": "1190:17:18",
10321 "stateVariable": false,
10322 "storageLocation": "default",
10323 "typeDescriptions": {
10324 "typeIdentifier": "t_bytes32",
10325 "typeString": "bytes32"
10326 },
10327 "typeName": {
10328 "id": 3628,
10329 "name": "bytes32",
10330 "nodeType": "ElementaryTypeName",
10331 "src": "1190:7:18",
10332 "typeDescriptions": {
10333 "typeIdentifier": "t_bytes32",
10334 "typeString": "bytes32"
10335 }
10336 },
10337 "value": null,
10338 "visibility": "internal"
10339 }
10340 ],
10341 "id": 3631,
10342 "initialValue": {
10343 "argumentTypes": null,
10344 "id": 3630,
10345 "name": "endpoint",
10346 "nodeType": "Identifier",
10347 "overloadedDeclarations": [],
10348 "referencedDeclaration": 3611,
10349 "src": "1210:8:18",
10350 "typeDescriptions": {
10351 "typeIdentifier": "t_bytes32",
10352 "typeString": "bytes32"
10353 }
10354 },
10355 "nodeType": "VariableDeclarationStatement",
10356 "src": "1190:28:18"
10357 },
10358 {
10359 "condition": {
10360 "argumentTypes": null,
10361 "id": 3632,
10362 "name": "onchainSubscriber",
10363 "nodeType": "Identifier",
10364 "overloadedDeclarations": [],
10365 "referencedDeclaration": 3616,
10366 "src": "1231:17:18",
10367 "typeDescriptions": {
10368 "typeIdentifier": "t_bool",
10369 "typeString": "bool"
10370 }
10371 },
10372 "falseBody": null,
10373 "id": 3712,
10374 "nodeType": "IfStatement",
10375 "src": "1228:676:18",
10376 "trueBody": {
10377 "id": 3711,
10378 "nodeType": "Block",
10379 "src": "1250:654:18",
10380 "statements": [
10381 {
10382 "assignments": [
10383 3634
10384 ],
10385 "declarations": [
10386 {
10387 "constant": false,
10388 "id": 3634,
10389 "name": "hash",
10390 "nodeType": "VariableDeclaration",
10391 "scope": 3714,
10392 "src": "1264:12:18",
10393 "stateVariable": false,
10394 "storageLocation": "default",
10395 "typeDescriptions": {
10396 "typeIdentifier": "t_bytes32",
10397 "typeString": "bytes32"
10398 },
10399 "typeName": {
10400 "id": 3633,
10401 "name": "bytes32",
10402 "nodeType": "ElementaryTypeName",
10403 "src": "1264:7:18",
10404 "typeDescriptions": {
10405 "typeIdentifier": "t_bytes32",
10406 "typeString": "bytes32"
10407 }
10408 },
10409 "value": null,
10410 "visibility": "internal"
10411 }
10412 ],
10413 "id": 3641,
10414 "initialValue": {
10415 "argumentTypes": null,
10416 "arguments": [
10417 {
10418 "argumentTypes": null,
10419 "arguments": [
10420 {
10421 "argumentTypes": null,
10422 "id": 3638,
10423 "name": "_endpoint",
10424 "nodeType": "Identifier",
10425 "overloadedDeclarations": [],
10426 "referencedDeclaration": 3629,
10427 "src": "1306:9:18",
10428 "typeDescriptions": {
10429 "typeIdentifier": "t_bytes32",
10430 "typeString": "bytes32"
10431 }
10432 }
10433 ],
10434 "expression": {
10435 "argumentTypes": [
10436 {
10437 "typeIdentifier": "t_bytes32",
10438 "typeString": "bytes32"
10439 }
10440 ],
10441 "expression": {
10442 "argumentTypes": null,
10443 "id": 3636,
10444 "name": "abi",
10445 "nodeType": "Identifier",
10446 "overloadedDeclarations": [],
10447 "referencedDeclaration": 12079,
10448 "src": "1289:3:18",
10449 "typeDescriptions": {
10450 "typeIdentifier": "t_magic_abi",
10451 "typeString": "abi"
10452 }
10453 },
10454 "id": 3637,
10455 "isConstant": false,
10456 "isLValue": false,
10457 "isPure": true,
10458 "lValueRequested": false,
10459 "memberName": "encodePacked",
10460 "nodeType": "MemberAccess",
10461 "referencedDeclaration": null,
10462 "src": "1289:16:18",
10463 "typeDescriptions": {
10464 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
10465 "typeString": "function () pure returns (bytes memory)"
10466 }
10467 },
10468 "id": 3639,
10469 "isConstant": false,
10470 "isLValue": false,
10471 "isPure": false,
10472 "kind": "functionCall",
10473 "lValueRequested": false,
10474 "names": [],
10475 "nodeType": "FunctionCall",
10476 "src": "1289:27:18",
10477 "typeDescriptions": {
10478 "typeIdentifier": "t_bytes_memory_ptr",
10479 "typeString": "bytes memory"
10480 }
10481 }
10482 ],
10483 "expression": {
10484 "argumentTypes": [
10485 {
10486 "typeIdentifier": "t_bytes_memory_ptr",
10487 "typeString": "bytes memory"
10488 }
10489 ],
10490 "id": 3635,
10491 "name": "keccak256",
10492 "nodeType": "Identifier",
10493 "overloadedDeclarations": [],
10494 "referencedDeclaration": 12086,
10495 "src": "1279:9:18",
10496 "typeDescriptions": {
10497 "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
10498 "typeString": "function () pure returns (bytes32)"
10499 }
10500 },
10501 "id": 3640,
10502 "isConstant": false,
10503 "isLValue": false,
10504 "isPure": false,
10505 "kind": "functionCall",
10506 "lValueRequested": false,
10507 "names": [],
10508 "nodeType": "FunctionCall",
10509 "src": "1279:38:18",
10510 "typeDescriptions": {
10511 "typeIdentifier": "t_bytes32",
10512 "typeString": "bytes32"
10513 }
10514 },
10515 "nodeType": "VariableDeclarationStatement",
10516 "src": "1264:53:18"
10517 },
10518 {
10519 "condition": {
10520 "argumentTypes": null,
10521 "commonType": {
10522 "typeIdentifier": "t_bytes32",
10523 "typeString": "bytes32"
10524 },
10525 "id": 3649,
10526 "isConstant": false,
10527 "isLValue": false,
10528 "isPure": false,
10529 "lValueRequested": false,
10530 "leftExpression": {
10531 "argumentTypes": null,
10532 "id": 3642,
10533 "name": "hash",
10534 "nodeType": "Identifier",
10535 "overloadedDeclarations": [],
10536 "referencedDeclaration": 3634,
10537 "src": "1335:4:18",
10538 "typeDescriptions": {
10539 "typeIdentifier": "t_bytes32",
10540 "typeString": "bytes32"
10541 }
10542 },
10543 "nodeType": "BinaryOperation",
10544 "operator": "==",
10545 "rightExpression": {
10546 "argumentTypes": null,
10547 "arguments": [
10548 {
10549 "argumentTypes": null,
10550 "arguments": [
10551 {
10552 "argumentTypes": null,
10553 "id": 3646,
10554 "name": "spec1",
10555 "nodeType": "Identifier",
10556 "overloadedDeclarations": [],
10557 "referencedDeclaration": 3583,
10558 "src": "1370:5:18",
10559 "typeDescriptions": {
10560 "typeIdentifier": "t_bytes32",
10561 "typeString": "bytes32"
10562 }
10563 }
10564 ],
10565 "expression": {
10566 "argumentTypes": [
10567 {
10568 "typeIdentifier": "t_bytes32",
10569 "typeString": "bytes32"
10570 }
10571 ],
10572 "expression": {
10573 "argumentTypes": null,
10574 "id": 3644,
10575 "name": "abi",
10576 "nodeType": "Identifier",
10577 "overloadedDeclarations": [],
10578 "referencedDeclaration": 12079,
10579 "src": "1353:3:18",
10580 "typeDescriptions": {
10581 "typeIdentifier": "t_magic_abi",
10582 "typeString": "abi"
10583 }
10584 },
10585 "id": 3645,
10586 "isConstant": false,
10587 "isLValue": false,
10588 "isPure": true,
10589 "lValueRequested": false,
10590 "memberName": "encodePacked",
10591 "nodeType": "MemberAccess",
10592 "referencedDeclaration": null,
10593 "src": "1353:16:18",
10594 "typeDescriptions": {
10595 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
10596 "typeString": "function () pure returns (bytes memory)"
10597 }
10598 },
10599 "id": 3647,
10600 "isConstant": false,
10601 "isLValue": false,
10602 "isPure": false,
10603 "kind": "functionCall",
10604 "lValueRequested": false,
10605 "names": [],
10606 "nodeType": "FunctionCall",
10607 "src": "1353:23:18",
10608 "typeDescriptions": {
10609 "typeIdentifier": "t_bytes_memory_ptr",
10610 "typeString": "bytes memory"
10611 }
10612 }
10613 ],
10614 "expression": {
10615 "argumentTypes": [
10616 {
10617 "typeIdentifier": "t_bytes_memory_ptr",
10618 "typeString": "bytes memory"
10619 }
10620 ],
10621 "id": 3643,
10622 "name": "keccak256",
10623 "nodeType": "Identifier",
10624 "overloadedDeclarations": [],
10625 "referencedDeclaration": 12086,
10626 "src": "1343:9:18",
10627 "typeDescriptions": {
10628 "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
10629 "typeString": "function () pure returns (bytes32)"
10630 }
10631 },
10632 "id": 3648,
10633 "isConstant": false,
10634 "isLValue": false,
10635 "isPure": false,
10636 "kind": "functionCall",
10637 "lValueRequested": false,
10638 "names": [],
10639 "nodeType": "FunctionCall",
10640 "src": "1343:34:18",
10641 "typeDescriptions": {
10642 "typeIdentifier": "t_bytes32",
10643 "typeString": "bytes32"
10644 }
10645 },
10646 "src": "1335:42:18",
10647 "typeDescriptions": {
10648 "typeIdentifier": "t_bool",
10649 "typeString": "bool"
10650 }
10651 },
10652 "falseBody": {
10653 "condition": {
10654 "argumentTypes": null,
10655 "commonType": {
10656 "typeIdentifier": "t_bytes32",
10657 "typeString": "bytes32"
10658 },
10659 "id": 3664,
10660 "isConstant": false,
10661 "isLValue": false,
10662 "isPure": false,
10663 "lValueRequested": false,
10664 "leftExpression": {
10665 "argumentTypes": null,
10666 "id": 3657,
10667 "name": "hash",
10668 "nodeType": "Identifier",
10669 "overloadedDeclarations": [],
10670 "referencedDeclaration": 3634,
10671 "src": "1461:4:18",
10672 "typeDescriptions": {
10673 "typeIdentifier": "t_bytes32",
10674 "typeString": "bytes32"
10675 }
10676 },
10677 "nodeType": "BinaryOperation",
10678 "operator": "==",
10679 "rightExpression": {
10680 "argumentTypes": null,
10681 "arguments": [
10682 {
10683 "argumentTypes": null,
10684 "arguments": [
10685 {
10686 "argumentTypes": null,
10687 "id": 3661,
10688 "name": "spec2",
10689 "nodeType": "Identifier",
10690 "overloadedDeclarations": [],
10691 "referencedDeclaration": 3586,
10692 "src": "1496:5:18",
10693 "typeDescriptions": {
10694 "typeIdentifier": "t_bytes32",
10695 "typeString": "bytes32"
10696 }
10697 }
10698 ],
10699 "expression": {
10700 "argumentTypes": [
10701 {
10702 "typeIdentifier": "t_bytes32",
10703 "typeString": "bytes32"
10704 }
10705 ],
10706 "expression": {
10707 "argumentTypes": null,
10708 "id": 3659,
10709 "name": "abi",
10710 "nodeType": "Identifier",
10711 "overloadedDeclarations": [],
10712 "referencedDeclaration": 12079,
10713 "src": "1479:3:18",
10714 "typeDescriptions": {
10715 "typeIdentifier": "t_magic_abi",
10716 "typeString": "abi"
10717 }
10718 },
10719 "id": 3660,
10720 "isConstant": false,
10721 "isLValue": false,
10722 "isPure": true,
10723 "lValueRequested": false,
10724 "memberName": "encodePacked",
10725 "nodeType": "MemberAccess",
10726 "referencedDeclaration": null,
10727 "src": "1479:16:18",
10728 "typeDescriptions": {
10729 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
10730 "typeString": "function () pure returns (bytes memory)"
10731 }
10732 },
10733 "id": 3662,
10734 "isConstant": false,
10735 "isLValue": false,
10736 "isPure": false,
10737 "kind": "functionCall",
10738 "lValueRequested": false,
10739 "names": [],
10740 "nodeType": "FunctionCall",
10741 "src": "1479:23:18",
10742 "typeDescriptions": {
10743 "typeIdentifier": "t_bytes_memory_ptr",
10744 "typeString": "bytes memory"
10745 }
10746 }
10747 ],
10748 "expression": {
10749 "argumentTypes": [
10750 {
10751 "typeIdentifier": "t_bytes_memory_ptr",
10752 "typeString": "bytes memory"
10753 }
10754 ],
10755 "id": 3658,
10756 "name": "keccak256",
10757 "nodeType": "Identifier",
10758 "overloadedDeclarations": [],
10759 "referencedDeclaration": 12086,
10760 "src": "1469:9:18",
10761 "typeDescriptions": {
10762 "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
10763 "typeString": "function () pure returns (bytes32)"
10764 }
10765 },
10766 "id": 3663,
10767 "isConstant": false,
10768 "isLValue": false,
10769 "isPure": false,
10770 "kind": "functionCall",
10771 "lValueRequested": false,
10772 "names": [],
10773 "nodeType": "FunctionCall",
10774 "src": "1469:34:18",
10775 "typeDescriptions": {
10776 "typeIdentifier": "t_bytes32",
10777 "typeString": "bytes32"
10778 }
10779 },
10780 "src": "1461:42:18",
10781 "typeDescriptions": {
10782 "typeIdentifier": "t_bool",
10783 "typeString": "bool"
10784 }
10785 },
10786 "falseBody": {
10787 "condition": {
10788 "argumentTypes": null,
10789 "commonType": {
10790 "typeIdentifier": "t_bytes32",
10791 "typeString": "bytes32"
10792 },
10793 "id": 3679,
10794 "isConstant": false,
10795 "isLValue": false,
10796 "isPure": false,
10797 "lValueRequested": false,
10798 "leftExpression": {
10799 "argumentTypes": null,
10800 "id": 3672,
10801 "name": "hash",
10802 "nodeType": "Identifier",
10803 "overloadedDeclarations": [],
10804 "referencedDeclaration": 3634,
10805 "src": "1587:4:18",
10806 "typeDescriptions": {
10807 "typeIdentifier": "t_bytes32",
10808 "typeString": "bytes32"
10809 }
10810 },
10811 "nodeType": "BinaryOperation",
10812 "operator": "==",
10813 "rightExpression": {
10814 "argumentTypes": null,
10815 "arguments": [
10816 {
10817 "argumentTypes": null,
10818 "arguments": [
10819 {
10820 "argumentTypes": null,
10821 "id": 3676,
10822 "name": "spec3",
10823 "nodeType": "Identifier",
10824 "overloadedDeclarations": [],
10825 "referencedDeclaration": 3589,
10826 "src": "1622:5:18",
10827 "typeDescriptions": {
10828 "typeIdentifier": "t_bytes32",
10829 "typeString": "bytes32"
10830 }
10831 }
10832 ],
10833 "expression": {
10834 "argumentTypes": [
10835 {
10836 "typeIdentifier": "t_bytes32",
10837 "typeString": "bytes32"
10838 }
10839 ],
10840 "expression": {
10841 "argumentTypes": null,
10842 "id": 3674,
10843 "name": "abi",
10844 "nodeType": "Identifier",
10845 "overloadedDeclarations": [],
10846 "referencedDeclaration": 12079,
10847 "src": "1605:3:18",
10848 "typeDescriptions": {
10849 "typeIdentifier": "t_magic_abi",
10850 "typeString": "abi"
10851 }
10852 },
10853 "id": 3675,
10854 "isConstant": false,
10855 "isLValue": false,
10856 "isPure": true,
10857 "lValueRequested": false,
10858 "memberName": "encodePacked",
10859 "nodeType": "MemberAccess",
10860 "referencedDeclaration": null,
10861 "src": "1605:16:18",
10862 "typeDescriptions": {
10863 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
10864 "typeString": "function () pure returns (bytes memory)"
10865 }
10866 },
10867 "id": 3677,
10868 "isConstant": false,
10869 "isLValue": false,
10870 "isPure": false,
10871 "kind": "functionCall",
10872 "lValueRequested": false,
10873 "names": [],
10874 "nodeType": "FunctionCall",
10875 "src": "1605:23:18",
10876 "typeDescriptions": {
10877 "typeIdentifier": "t_bytes_memory_ptr",
10878 "typeString": "bytes memory"
10879 }
10880 }
10881 ],
10882 "expression": {
10883 "argumentTypes": [
10884 {
10885 "typeIdentifier": "t_bytes_memory_ptr",
10886 "typeString": "bytes memory"
10887 }
10888 ],
10889 "id": 3673,
10890 "name": "keccak256",
10891 "nodeType": "Identifier",
10892 "overloadedDeclarations": [],
10893 "referencedDeclaration": 12086,
10894 "src": "1595:9:18",
10895 "typeDescriptions": {
10896 "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
10897 "typeString": "function () pure returns (bytes32)"
10898 }
10899 },
10900 "id": 3678,
10901 "isConstant": false,
10902 "isLValue": false,
10903 "isPure": false,
10904 "kind": "functionCall",
10905 "lValueRequested": false,
10906 "names": [],
10907 "nodeType": "FunctionCall",
10908 "src": "1595:34:18",
10909 "typeDescriptions": {
10910 "typeIdentifier": "t_bytes32",
10911 "typeString": "bytes32"
10912 }
10913 },
10914 "src": "1587:42:18",
10915 "typeDescriptions": {
10916 "typeIdentifier": "t_bool",
10917 "typeString": "bool"
10918 }
10919 },
10920 "falseBody": {
10921 "condition": {
10922 "argumentTypes": null,
10923 "commonType": {
10924 "typeIdentifier": "t_bytes32",
10925 "typeString": "bytes32"
10926 },
10927 "id": 3694,
10928 "isConstant": false,
10929 "isLValue": false,
10930 "isPure": false,
10931 "lValueRequested": false,
10932 "leftExpression": {
10933 "argumentTypes": null,
10934 "id": 3687,
10935 "name": "hash",
10936 "nodeType": "Identifier",
10937 "overloadedDeclarations": [],
10938 "referencedDeclaration": 3634,
10939 "src": "1713:4:18",
10940 "typeDescriptions": {
10941 "typeIdentifier": "t_bytes32",
10942 "typeString": "bytes32"
10943 }
10944 },
10945 "nodeType": "BinaryOperation",
10946 "operator": "==",
10947 "rightExpression": {
10948 "argumentTypes": null,
10949 "arguments": [
10950 {
10951 "argumentTypes": null,
10952 "arguments": [
10953 {
10954 "argumentTypes": null,
10955 "id": 3691,
10956 "name": "spec4",
10957 "nodeType": "Identifier",
10958 "overloadedDeclarations": [],
10959 "referencedDeclaration": 3592,
10960 "src": "1748:5:18",
10961 "typeDescriptions": {
10962 "typeIdentifier": "t_bytes32",
10963 "typeString": "bytes32"
10964 }
10965 }
10966 ],
10967 "expression": {
10968 "argumentTypes": [
10969 {
10970 "typeIdentifier": "t_bytes32",
10971 "typeString": "bytes32"
10972 }
10973 ],
10974 "expression": {
10975 "argumentTypes": null,
10976 "id": 3689,
10977 "name": "abi",
10978 "nodeType": "Identifier",
10979 "overloadedDeclarations": [],
10980 "referencedDeclaration": 12079,
10981 "src": "1731:3:18",
10982 "typeDescriptions": {
10983 "typeIdentifier": "t_magic_abi",
10984 "typeString": "abi"
10985 }
10986 },
10987 "id": 3690,
10988 "isConstant": false,
10989 "isLValue": false,
10990 "isPure": true,
10991 "lValueRequested": false,
10992 "memberName": "encodePacked",
10993 "nodeType": "MemberAccess",
10994 "referencedDeclaration": null,
10995 "src": "1731:16:18",
10996 "typeDescriptions": {
10997 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
10998 "typeString": "function () pure returns (bytes memory)"
10999 }
11000 },
11001 "id": 3692,
11002 "isConstant": false,
11003 "isLValue": false,
11004 "isPure": false,
11005 "kind": "functionCall",
11006 "lValueRequested": false,
11007 "names": [],
11008 "nodeType": "FunctionCall",
11009 "src": "1731:23:18",
11010 "typeDescriptions": {
11011 "typeIdentifier": "t_bytes_memory_ptr",
11012 "typeString": "bytes memory"
11013 }
11014 }
11015 ],
11016 "expression": {
11017 "argumentTypes": [
11018 {
11019 "typeIdentifier": "t_bytes_memory_ptr",
11020 "typeString": "bytes memory"
11021 }
11022 ],
11023 "id": 3688,
11024 "name": "keccak256",
11025 "nodeType": "Identifier",
11026 "overloadedDeclarations": [],
11027 "referencedDeclaration": 12086,
11028 "src": "1721:9:18",
11029 "typeDescriptions": {
11030 "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
11031 "typeString": "function () pure returns (bytes32)"
11032 }
11033 },
11034 "id": 3693,
11035 "isConstant": false,
11036 "isLValue": false,
11037 "isPure": false,
11038 "kind": "functionCall",
11039 "lValueRequested": false,
11040 "names": [],
11041 "nodeType": "FunctionCall",
11042 "src": "1721:34:18",
11043 "typeDescriptions": {
11044 "typeIdentifier": "t_bytes32",
11045 "typeString": "bytes32"
11046 }
11047 },
11048 "src": "1713:42:18",
11049 "typeDescriptions": {
11050 "typeIdentifier": "t_bool",
11051 "typeString": "bool"
11052 }
11053 },
11054 "falseBody": {
11055 "id": 3706,
11056 "nodeType": "Block",
11057 "src": "1835:59:18",
11058 "statements": [
11059 {
11060 "expression": {
11061 "argumentTypes": null,
11062 "arguments": [
11063 {
11064 "argumentTypes": null,
11065 "hexValue": "496e76616c696420656e64706f696e74",
11066 "id": 3703,
11067 "isConstant": false,
11068 "isLValue": false,
11069 "isPure": true,
11070 "kind": "string",
11071 "lValueRequested": false,
11072 "nodeType": "Literal",
11073 "src": "1860:18:18",
11074 "subdenomination": null,
11075 "typeDescriptions": {
11076 "typeIdentifier": "t_stringliteral_bc947d7e0e70d3c5da26b0576438605c56db95d6b14b534778e71dc822dec50f",
11077 "typeString": "literal_string \"Invalid endpoint\""
11078 },
11079 "value": "Invalid endpoint"
11080 }
11081 ],
11082 "expression": {
11083 "argumentTypes": [
11084 {
11085 "typeIdentifier": "t_stringliteral_bc947d7e0e70d3c5da26b0576438605c56db95d6b14b534778e71dc822dec50f",
11086 "typeString": "literal_string \"Invalid endpoint\""
11087 }
11088 ],
11089 "id": 3702,
11090 "name": "revert",
11091 "nodeType": "Identifier",
11092 "overloadedDeclarations": [
11093 12097,
11094 12098
11095 ],
11096 "referencedDeclaration": 12098,
11097 "src": "1853:6:18",
11098 "typeDescriptions": {
11099 "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
11100 "typeString": "function (string memory) pure"
11101 }
11102 },
11103 "id": 3704,
11104 "isConstant": false,
11105 "isLValue": false,
11106 "isPure": false,
11107 "kind": "functionCall",
11108 "lValueRequested": false,
11109 "names": [],
11110 "nodeType": "FunctionCall",
11111 "src": "1853:26:18",
11112 "typeDescriptions": {
11113 "typeIdentifier": "t_tuple$__$",
11114 "typeString": "tuple()"
11115 }
11116 },
11117 "id": 3705,
11118 "nodeType": "ExpressionStatement",
11119 "src": "1853:26:18"
11120 }
11121 ]
11122 },
11123 "id": 3707,
11124 "nodeType": "IfStatement",
11125 "src": "1709:185:18",
11126 "trueBody": {
11127 "id": 3701,
11128 "nodeType": "Block",
11129 "src": "1756:73:18",
11130 "statements": [
11131 {
11132 "expression": {
11133 "argumentTypes": null,
11134 "arguments": [
11135 {
11136 "argumentTypes": null,
11137 "id": 3696,
11138 "name": "id",
11139 "nodeType": "Identifier",
11140 "overloadedDeclarations": [],
11141 "referencedDeclaration": 3607,
11142 "src": "1784:2:18",
11143 "typeDescriptions": {
11144 "typeIdentifier": "t_uint256",
11145 "typeString": "uint256"
11146 }
11147 },
11148 {
11149 "argumentTypes": null,
11150 "id": 3697,
11151 "name": "userQuery",
11152 "nodeType": "Identifier",
11153 "overloadedDeclarations": [],
11154 "referencedDeclaration": 3609,
11155 "src": "1788:9:18",
11156 "typeDescriptions": {
11157 "typeIdentifier": "t_string_calldata_ptr",
11158 "typeString": "string calldata"
11159 }
11160 },
11161 {
11162 "argumentTypes": null,
11163 "id": 3698,
11164 "name": "endpointParams",
11165 "nodeType": "Identifier",
11166 "overloadedDeclarations": [],
11167 "referencedDeclaration": 3614,
11168 "src": "1799:14:18",
11169 "typeDescriptions": {
11170 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
11171 "typeString": "bytes32[] calldata"
11172 }
11173 }
11174 ],
11175 "expression": {
11176 "argumentTypes": [
11177 {
11178 "typeIdentifier": "t_uint256",
11179 "typeString": "uint256"
11180 },
11181 {
11182 "typeIdentifier": "t_string_calldata_ptr",
11183 "typeString": "string calldata"
11184 },
11185 {
11186 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
11187 "typeString": "bytes32[] calldata"
11188 }
11189 ],
11190 "id": 3695,
11191 "name": "endpoint4",
11192 "nodeType": "Identifier",
11193 "overloadedDeclarations": [],
11194 "referencedDeclaration": 3939,
11195 "src": "1774:9:18",
11196 "typeDescriptions": {
11197 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
11198 "typeString": "function (uint256,string memory,bytes32[] memory)"
11199 }
11200 },
11201 "id": 3699,
11202 "isConstant": false,
11203 "isLValue": false,
11204 "isPure": false,
11205 "kind": "functionCall",
11206 "lValueRequested": false,
11207 "names": [],
11208 "nodeType": "FunctionCall",
11209 "src": "1774:40:18",
11210 "typeDescriptions": {
11211 "typeIdentifier": "t_tuple$__$",
11212 "typeString": "tuple()"
11213 }
11214 },
11215 "id": 3700,
11216 "nodeType": "ExpressionStatement",
11217 "src": "1774:40:18"
11218 }
11219 ]
11220 }
11221 },
11222 "id": 3708,
11223 "nodeType": "IfStatement",
11224 "src": "1583:311:18",
11225 "trueBody": {
11226 "id": 3686,
11227 "nodeType": "Block",
11228 "src": "1630:73:18",
11229 "statements": [
11230 {
11231 "expression": {
11232 "argumentTypes": null,
11233 "arguments": [
11234 {
11235 "argumentTypes": null,
11236 "id": 3681,
11237 "name": "id",
11238 "nodeType": "Identifier",
11239 "overloadedDeclarations": [],
11240 "referencedDeclaration": 3607,
11241 "src": "1658:2:18",
11242 "typeDescriptions": {
11243 "typeIdentifier": "t_uint256",
11244 "typeString": "uint256"
11245 }
11246 },
11247 {
11248 "argumentTypes": null,
11249 "id": 3682,
11250 "name": "userQuery",
11251 "nodeType": "Identifier",
11252 "overloadedDeclarations": [],
11253 "referencedDeclaration": 3609,
11254 "src": "1662:9:18",
11255 "typeDescriptions": {
11256 "typeIdentifier": "t_string_calldata_ptr",
11257 "typeString": "string calldata"
11258 }
11259 },
11260 {
11261 "argumentTypes": null,
11262 "id": 3683,
11263 "name": "endpointParams",
11264 "nodeType": "Identifier",
11265 "overloadedDeclarations": [],
11266 "referencedDeclaration": 3614,
11267 "src": "1673:14:18",
11268 "typeDescriptions": {
11269 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
11270 "typeString": "bytes32[] calldata"
11271 }
11272 }
11273 ],
11274 "expression": {
11275 "argumentTypes": [
11276 {
11277 "typeIdentifier": "t_uint256",
11278 "typeString": "uint256"
11279 },
11280 {
11281 "typeIdentifier": "t_string_calldata_ptr",
11282 "typeString": "string calldata"
11283 },
11284 {
11285 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
11286 "typeString": "bytes32[] calldata"
11287 }
11288 ],
11289 "id": 3680,
11290 "name": "endpoint3",
11291 "nodeType": "Identifier",
11292 "overloadedDeclarations": [],
11293 "referencedDeclaration": 3918,
11294 "src": "1648:9:18",
11295 "typeDescriptions": {
11296 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
11297 "typeString": "function (uint256,string memory,bytes32[] memory)"
11298 }
11299 },
11300 "id": 3684,
11301 "isConstant": false,
11302 "isLValue": false,
11303 "isPure": false,
11304 "kind": "functionCall",
11305 "lValueRequested": false,
11306 "names": [],
11307 "nodeType": "FunctionCall",
11308 "src": "1648:40:18",
11309 "typeDescriptions": {
11310 "typeIdentifier": "t_tuple$__$",
11311 "typeString": "tuple()"
11312 }
11313 },
11314 "id": 3685,
11315 "nodeType": "ExpressionStatement",
11316 "src": "1648:40:18"
11317 }
11318 ]
11319 }
11320 },
11321 "id": 3709,
11322 "nodeType": "IfStatement",
11323 "src": "1457:437:18",
11324 "trueBody": {
11325 "id": 3671,
11326 "nodeType": "Block",
11327 "src": "1504:73:18",
11328 "statements": [
11329 {
11330 "expression": {
11331 "argumentTypes": null,
11332 "arguments": [
11333 {
11334 "argumentTypes": null,
11335 "id": 3666,
11336 "name": "id",
11337 "nodeType": "Identifier",
11338 "overloadedDeclarations": [],
11339 "referencedDeclaration": 3607,
11340 "src": "1532:2:18",
11341 "typeDescriptions": {
11342 "typeIdentifier": "t_uint256",
11343 "typeString": "uint256"
11344 }
11345 },
11346 {
11347 "argumentTypes": null,
11348 "id": 3667,
11349 "name": "userQuery",
11350 "nodeType": "Identifier",
11351 "overloadedDeclarations": [],
11352 "referencedDeclaration": 3609,
11353 "src": "1536:9:18",
11354 "typeDescriptions": {
11355 "typeIdentifier": "t_string_calldata_ptr",
11356 "typeString": "string calldata"
11357 }
11358 },
11359 {
11360 "argumentTypes": null,
11361 "id": 3668,
11362 "name": "endpointParams",
11363 "nodeType": "Identifier",
11364 "overloadedDeclarations": [],
11365 "referencedDeclaration": 3614,
11366 "src": "1547:14:18",
11367 "typeDescriptions": {
11368 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
11369 "typeString": "bytes32[] calldata"
11370 }
11371 }
11372 ],
11373 "expression": {
11374 "argumentTypes": [
11375 {
11376 "typeIdentifier": "t_uint256",
11377 "typeString": "uint256"
11378 },
11379 {
11380 "typeIdentifier": "t_string_calldata_ptr",
11381 "typeString": "string calldata"
11382 },
11383 {
11384 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
11385 "typeString": "bytes32[] calldata"
11386 }
11387 ],
11388 "id": 3665,
11389 "name": "endpoint2",
11390 "nodeType": "Identifier",
11391 "overloadedDeclarations": [],
11392 "referencedDeclaration": 3851,
11393 "src": "1522:9:18",
11394 "typeDescriptions": {
11395 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
11396 "typeString": "function (uint256,string memory,bytes32[] memory)"
11397 }
11398 },
11399 "id": 3669,
11400 "isConstant": false,
11401 "isLValue": false,
11402 "isPure": false,
11403 "kind": "functionCall",
11404 "lValueRequested": false,
11405 "names": [],
11406 "nodeType": "FunctionCall",
11407 "src": "1522:40:18",
11408 "typeDescriptions": {
11409 "typeIdentifier": "t_tuple$__$",
11410 "typeString": "tuple()"
11411 }
11412 },
11413 "id": 3670,
11414 "nodeType": "ExpressionStatement",
11415 "src": "1522:40:18"
11416 }
11417 ]
11418 }
11419 },
11420 "id": 3710,
11421 "nodeType": "IfStatement",
11422 "src": "1332:562:18",
11423 "trueBody": {
11424 "id": 3656,
11425 "nodeType": "Block",
11426 "src": "1378:73:18",
11427 "statements": [
11428 {
11429 "expression": {
11430 "argumentTypes": null,
11431 "arguments": [
11432 {
11433 "argumentTypes": null,
11434 "id": 3651,
11435 "name": "id",
11436 "nodeType": "Identifier",
11437 "overloadedDeclarations": [],
11438 "referencedDeclaration": 3607,
11439 "src": "1406:2:18",
11440 "typeDescriptions": {
11441 "typeIdentifier": "t_uint256",
11442 "typeString": "uint256"
11443 }
11444 },
11445 {
11446 "argumentTypes": null,
11447 "id": 3652,
11448 "name": "userQuery",
11449 "nodeType": "Identifier",
11450 "overloadedDeclarations": [],
11451 "referencedDeclaration": 3609,
11452 "src": "1410:9:18",
11453 "typeDescriptions": {
11454 "typeIdentifier": "t_string_calldata_ptr",
11455 "typeString": "string calldata"
11456 }
11457 },
11458 {
11459 "argumentTypes": null,
11460 "id": 3653,
11461 "name": "endpointParams",
11462 "nodeType": "Identifier",
11463 "overloadedDeclarations": [],
11464 "referencedDeclaration": 3614,
11465 "src": "1421:14:18",
11466 "typeDescriptions": {
11467 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
11468 "typeString": "bytes32[] calldata"
11469 }
11470 }
11471 ],
11472 "expression": {
11473 "argumentTypes": [
11474 {
11475 "typeIdentifier": "t_uint256",
11476 "typeString": "uint256"
11477 },
11478 {
11479 "typeIdentifier": "t_string_calldata_ptr",
11480 "typeString": "string calldata"
11481 },
11482 {
11483 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
11484 "typeString": "bytes32[] calldata"
11485 }
11486 ],
11487 "id": 3650,
11488 "name": "endpoint1",
11489 "nodeType": "Identifier",
11490 "overloadedDeclarations": [],
11491 "referencedDeclaration": 3825,
11492 "src": "1396:9:18",
11493 "typeDescriptions": {
11494 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
11495 "typeString": "function (uint256,string memory,bytes32[] memory)"
11496 }
11497 },
11498 "id": 3654,
11499 "isConstant": false,
11500 "isLValue": false,
11501 "isPure": false,
11502 "kind": "functionCall",
11503 "lValueRequested": false,
11504 "names": [],
11505 "nodeType": "FunctionCall",
11506 "src": "1396:40:18",
11507 "typeDescriptions": {
11508 "typeIdentifier": "t_tuple$__$",
11509 "typeString": "tuple()"
11510 }
11511 },
11512 "id": 3655,
11513 "nodeType": "ExpressionStatement",
11514 "src": "1396:40:18"
11515 }
11516 ]
11517 }
11518 }
11519 ]
11520 }
11521 }
11522 ]
11523 },
11524 "documentation": null,
11525 "id": 3714,
11526 "implemented": true,
11527 "isConstructor": false,
11528 "isDeclaredConst": false,
11529 "modifiers": [],
11530 "name": "receive",
11531 "nodeType": "FunctionDefinition",
11532 "parameters": {
11533 "id": 3617,
11534 "nodeType": "ParameterList",
11535 "parameters": [
11536 {
11537 "constant": false,
11538 "id": 3607,
11539 "name": "id",
11540 "nodeType": "VariableDeclaration",
11541 "scope": 3714,
11542 "src": "972:10:18",
11543 "stateVariable": false,
11544 "storageLocation": "default",
11545 "typeDescriptions": {
11546 "typeIdentifier": "t_uint256",
11547 "typeString": "uint256"
11548 },
11549 "typeName": {
11550 "id": 3606,
11551 "name": "uint256",
11552 "nodeType": "ElementaryTypeName",
11553 "src": "972:7:18",
11554 "typeDescriptions": {
11555 "typeIdentifier": "t_uint256",
11556 "typeString": "uint256"
11557 }
11558 },
11559 "value": null,
11560 "visibility": "internal"
11561 },
11562 {
11563 "constant": false,
11564 "id": 3609,
11565 "name": "userQuery",
11566 "nodeType": "VariableDeclaration",
11567 "scope": 3714,
11568 "src": "984:16:18",
11569 "stateVariable": false,
11570 "storageLocation": "default",
11571 "typeDescriptions": {
11572 "typeIdentifier": "t_string_calldata_ptr",
11573 "typeString": "string"
11574 },
11575 "typeName": {
11576 "id": 3608,
11577 "name": "string",
11578 "nodeType": "ElementaryTypeName",
11579 "src": "984:6:18",
11580 "typeDescriptions": {
11581 "typeIdentifier": "t_string_storage_ptr",
11582 "typeString": "string"
11583 }
11584 },
11585 "value": null,
11586 "visibility": "internal"
11587 },
11588 {
11589 "constant": false,
11590 "id": 3611,
11591 "name": "endpoint",
11592 "nodeType": "VariableDeclaration",
11593 "scope": 3714,
11594 "src": "1002:16:18",
11595 "stateVariable": false,
11596 "storageLocation": "default",
11597 "typeDescriptions": {
11598 "typeIdentifier": "t_bytes32",
11599 "typeString": "bytes32"
11600 },
11601 "typeName": {
11602 "id": 3610,
11603 "name": "bytes32",
11604 "nodeType": "ElementaryTypeName",
11605 "src": "1002:7:18",
11606 "typeDescriptions": {
11607 "typeIdentifier": "t_bytes32",
11608 "typeString": "bytes32"
11609 }
11610 },
11611 "value": null,
11612 "visibility": "internal"
11613 },
11614 {
11615 "constant": false,
11616 "id": 3614,
11617 "name": "endpointParams",
11618 "nodeType": "VariableDeclaration",
11619 "scope": 3714,
11620 "src": "1020:24:18",
11621 "stateVariable": false,
11622 "storageLocation": "default",
11623 "typeDescriptions": {
11624 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
11625 "typeString": "bytes32[]"
11626 },
11627 "typeName": {
11628 "baseType": {
11629 "id": 3612,
11630 "name": "bytes32",
11631 "nodeType": "ElementaryTypeName",
11632 "src": "1020:7:18",
11633 "typeDescriptions": {
11634 "typeIdentifier": "t_bytes32",
11635 "typeString": "bytes32"
11636 }
11637 },
11638 "id": 3613,
11639 "length": null,
11640 "nodeType": "ArrayTypeName",
11641 "src": "1020:9:18",
11642 "typeDescriptions": {
11643 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
11644 "typeString": "bytes32[]"
11645 }
11646 },
11647 "value": null,
11648 "visibility": "internal"
11649 },
11650 {
11651 "constant": false,
11652 "id": 3616,
11653 "name": "onchainSubscriber",
11654 "nodeType": "VariableDeclaration",
11655 "scope": 3714,
11656 "src": "1046:22:18",
11657 "stateVariable": false,
11658 "storageLocation": "default",
11659 "typeDescriptions": {
11660 "typeIdentifier": "t_bool",
11661 "typeString": "bool"
11662 },
11663 "typeName": {
11664 "id": 3615,
11665 "name": "bool",
11666 "nodeType": "ElementaryTypeName",
11667 "src": "1046:4:18",
11668 "typeDescriptions": {
11669 "typeIdentifier": "t_bool",
11670 "typeString": "bool"
11671 }
11672 },
11673 "value": null,
11674 "visibility": "internal"
11675 }
11676 ],
11677 "src": "971:98:18"
11678 },
11679 "payable": false,
11680 "returnParameters": {
11681 "id": 3618,
11682 "nodeType": "ParameterList",
11683 "parameters": [],
11684 "src": "1079:0:18"
11685 },
11686 "scope": 4057,
11687 "src": "955:990:18",
11688 "stateMutability": "nonpayable",
11689 "superFunction": 1825,
11690 "visibility": "external"
11691 },
11692 {
11693 "body": {
11694 "id": 3804,
11695 "nodeType": "Block",
11696 "src": "2006:590:18",
11697 "statements": [
11698 {
11699 "expression": {
11700 "argumentTypes": null,
11701 "id": 3725,
11702 "isConstant": false,
11703 "isLValue": false,
11704 "isPure": false,
11705 "lValueRequested": false,
11706 "leftHandSide": {
11707 "argumentTypes": null,
11708 "id": 3721,
11709 "name": "registry",
11710 "nodeType": "Identifier",
11711 "overloadedDeclarations": [],
11712 "referencedDeclaration": 3605,
11713 "src": "2016:8:18",
11714 "typeDescriptions": {
11715 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
11716 "typeString": "contract RegistryInterface"
11717 }
11718 },
11719 "nodeType": "Assignment",
11720 "operator": "=",
11721 "rightHandSide": {
11722 "argumentTypes": null,
11723 "arguments": [
11724 {
11725 "argumentTypes": null,
11726 "id": 3723,
11727 "name": "registryAddress",
11728 "nodeType": "Identifier",
11729 "overloadedDeclarations": [],
11730 "referencedDeclaration": 3716,
11731 "src": "2045:15:18",
11732 "typeDescriptions": {
11733 "typeIdentifier": "t_address",
11734 "typeString": "address"
11735 }
11736 }
11737 ],
11738 "expression": {
11739 "argumentTypes": [
11740 {
11741 "typeIdentifier": "t_address",
11742 "typeString": "address"
11743 }
11744 ],
11745 "id": 3722,
11746 "name": "RegistryInterface",
11747 "nodeType": "Identifier",
11748 "overloadedDeclarations": [],
11749 "referencedDeclaration": 11303,
11750 "src": "2027:17:18",
11751 "typeDescriptions": {
11752 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
11753 "typeString": "type(contract RegistryInterface)"
11754 }
11755 },
11756 "id": 3724,
11757 "isConstant": false,
11758 "isLValue": false,
11759 "isPure": false,
11760 "kind": "typeConversion",
11761 "lValueRequested": false,
11762 "names": [],
11763 "nodeType": "FunctionCall",
11764 "src": "2027:34:18",
11765 "typeDescriptions": {
11766 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
11767 "typeString": "contract RegistryInterface"
11768 }
11769 },
11770 "src": "2016:45:18",
11771 "typeDescriptions": {
11772 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
11773 "typeString": "contract RegistryInterface"
11774 }
11775 },
11776 "id": 3726,
11777 "nodeType": "ExpressionStatement",
11778 "src": "2016:45:18"
11779 },
11780 {
11781 "expression": {
11782 "argumentTypes": null,
11783 "id": 3729,
11784 "isConstant": false,
11785 "isLValue": false,
11786 "isPure": false,
11787 "lValueRequested": false,
11788 "leftHandSide": {
11789 "argumentTypes": null,
11790 "id": 3727,
11791 "name": "AM_A_BAD_ORACLE",
11792 "nodeType": "Identifier",
11793 "overloadedDeclarations": [],
11794 "referencedDeclaration": 3594,
11795 "src": "2071:15:18",
11796 "typeDescriptions": {
11797 "typeIdentifier": "t_bool",
11798 "typeString": "bool"
11799 }
11800 },
11801 "nodeType": "Assignment",
11802 "operator": "=",
11803 "rightHandSide": {
11804 "argumentTypes": null,
11805 "id": 3728,
11806 "name": "isBad",
11807 "nodeType": "Identifier",
11808 "overloadedDeclarations": [],
11809 "referencedDeclaration": 3718,
11810 "src": "2089:5:18",
11811 "typeDescriptions": {
11812 "typeIdentifier": "t_bool",
11813 "typeString": "bool"
11814 }
11815 },
11816 "src": "2071:23:18",
11817 "typeDescriptions": {
11818 "typeIdentifier": "t_bool",
11819 "typeString": "bool"
11820 }
11821 },
11822 "id": 3730,
11823 "nodeType": "ExpressionStatement",
11824 "src": "2071:23:18"
11825 },
11826 {
11827 "assignments": [
11828 3732
11829 ],
11830 "declarations": [
11831 {
11832 "constant": false,
11833 "id": 3732,
11834 "name": "title",
11835 "nodeType": "VariableDeclaration",
11836 "scope": 3805,
11837 "src": "2139:13:18",
11838 "stateVariable": false,
11839 "storageLocation": "default",
11840 "typeDescriptions": {
11841 "typeIdentifier": "t_bytes32",
11842 "typeString": "bytes32"
11843 },
11844 "typeName": {
11845 "id": 3731,
11846 "name": "bytes32",
11847 "nodeType": "ElementaryTypeName",
11848 "src": "2139:7:18",
11849 "typeDescriptions": {
11850 "typeIdentifier": "t_bytes32",
11851 "typeString": "bytes32"
11852 }
11853 },
11854 "value": null,
11855 "visibility": "internal"
11856 }
11857 ],
11858 "id": 3734,
11859 "initialValue": {
11860 "argumentTypes": null,
11861 "hexValue": "54657374436f6e7472616374",
11862 "id": 3733,
11863 "isConstant": false,
11864 "isLValue": false,
11865 "isPure": true,
11866 "kind": "string",
11867 "lValueRequested": false,
11868 "nodeType": "Literal",
11869 "src": "2155:14:18",
11870 "subdenomination": null,
11871 "typeDescriptions": {
11872 "typeIdentifier": "t_stringliteral_a73e27b0b49bbadc47ee3a6b9956ab629edb7504b8133dc977c578ee563c5c84",
11873 "typeString": "literal_string \"TestContract\""
11874 },
11875 "value": "TestContract"
11876 },
11877 "nodeType": "VariableDeclarationStatement",
11878 "src": "2139:30:18"
11879 },
11880 {
11881 "assignments": [
11882 3738
11883 ],
11884 "declarations": [
11885 {
11886 "constant": false,
11887 "id": 3738,
11888 "name": "params",
11889 "nodeType": "VariableDeclaration",
11890 "scope": 3805,
11891 "src": "2180:23:18",
11892 "stateVariable": false,
11893 "storageLocation": "memory",
11894 "typeDescriptions": {
11895 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
11896 "typeString": "bytes32[]"
11897 },
11898 "typeName": {
11899 "baseType": {
11900 "id": 3736,
11901 "name": "bytes32",
11902 "nodeType": "ElementaryTypeName",
11903 "src": "2180:7:18",
11904 "typeDescriptions": {
11905 "typeIdentifier": "t_bytes32",
11906 "typeString": "bytes32"
11907 }
11908 },
11909 "id": 3737,
11910 "length": null,
11911 "nodeType": "ArrayTypeName",
11912 "src": "2180:9:18",
11913 "typeDescriptions": {
11914 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
11915 "typeString": "bytes32[]"
11916 }
11917 },
11918 "value": null,
11919 "visibility": "internal"
11920 }
11921 ],
11922 "id": 3744,
11923 "initialValue": {
11924 "argumentTypes": null,
11925 "arguments": [
11926 {
11927 "argumentTypes": null,
11928 "hexValue": "32",
11929 "id": 3742,
11930 "isConstant": false,
11931 "isLValue": false,
11932 "isPure": true,
11933 "kind": "number",
11934 "lValueRequested": false,
11935 "nodeType": "Literal",
11936 "src": "2220:1:18",
11937 "subdenomination": null,
11938 "typeDescriptions": {
11939 "typeIdentifier": "t_rational_2_by_1",
11940 "typeString": "int_const 2"
11941 },
11942 "value": "2"
11943 }
11944 ],
11945 "expression": {
11946 "argumentTypes": [
11947 {
11948 "typeIdentifier": "t_rational_2_by_1",
11949 "typeString": "int_const 2"
11950 }
11951 ],
11952 "id": 3741,
11953 "isConstant": false,
11954 "isLValue": false,
11955 "isPure": true,
11956 "lValueRequested": false,
11957 "nodeType": "NewExpression",
11958 "src": "2206:13:18",
11959 "typeDescriptions": {
11960 "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
11961 "typeString": "function (uint256) pure returns (bytes32[] memory)"
11962 },
11963 "typeName": {
11964 "baseType": {
11965 "id": 3739,
11966 "name": "bytes32",
11967 "nodeType": "ElementaryTypeName",
11968 "src": "2210:7:18",
11969 "typeDescriptions": {
11970 "typeIdentifier": "t_bytes32",
11971 "typeString": "bytes32"
11972 }
11973 },
11974 "id": 3740,
11975 "length": null,
11976 "nodeType": "ArrayTypeName",
11977 "src": "2210:9:18",
11978 "typeDescriptions": {
11979 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
11980 "typeString": "bytes32[]"
11981 }
11982 }
11983 },
11984 "id": 3743,
11985 "isConstant": false,
11986 "isLValue": false,
11987 "isPure": true,
11988 "kind": "functionCall",
11989 "lValueRequested": false,
11990 "names": [],
11991 "nodeType": "FunctionCall",
11992 "src": "2206:16:18",
11993 "typeDescriptions": {
11994 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
11995 "typeString": "bytes32[] memory"
11996 }
11997 },
11998 "nodeType": "VariableDeclarationStatement",
11999 "src": "2180:42:18"
12000 },
12001 {
12002 "expression": {
12003 "argumentTypes": null,
12004 "id": 3749,
12005 "isConstant": false,
12006 "isLValue": false,
12007 "isPure": false,
12008 "lValueRequested": false,
12009 "leftHandSide": {
12010 "argumentTypes": null,
12011 "baseExpression": {
12012 "argumentTypes": null,
12013 "id": 3745,
12014 "name": "params",
12015 "nodeType": "Identifier",
12016 "overloadedDeclarations": [],
12017 "referencedDeclaration": 3738,
12018 "src": "2232:6:18",
12019 "typeDescriptions": {
12020 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
12021 "typeString": "bytes32[] memory"
12022 }
12023 },
12024 "id": 3747,
12025 "indexExpression": {
12026 "argumentTypes": null,
12027 "hexValue": "30",
12028 "id": 3746,
12029 "isConstant": false,
12030 "isLValue": false,
12031 "isPure": true,
12032 "kind": "number",
12033 "lValueRequested": false,
12034 "nodeType": "Literal",
12035 "src": "2239:1:18",
12036 "subdenomination": null,
12037 "typeDescriptions": {
12038 "typeIdentifier": "t_rational_0_by_1",
12039 "typeString": "int_const 0"
12040 },
12041 "value": "0"
12042 },
12043 "isConstant": false,
12044 "isLValue": true,
12045 "isPure": false,
12046 "lValueRequested": true,
12047 "nodeType": "IndexAccess",
12048 "src": "2232:9:18",
12049 "typeDescriptions": {
12050 "typeIdentifier": "t_bytes32",
12051 "typeString": "bytes32"
12052 }
12053 },
12054 "nodeType": "Assignment",
12055 "operator": "=",
12056 "rightHandSide": {
12057 "argumentTypes": null,
12058 "hexValue": "7031",
12059 "id": 3748,
12060 "isConstant": false,
12061 "isLValue": false,
12062 "isPure": true,
12063 "kind": "string",
12064 "lValueRequested": false,
12065 "nodeType": "Literal",
12066 "src": "2244:4:18",
12067 "subdenomination": null,
12068 "typeDescriptions": {
12069 "typeIdentifier": "t_stringliteral_260e065801cba6ca065f28640c3d94ef235f67db5431448aae1a51af7214efaf",
12070 "typeString": "literal_string \"p1\""
12071 },
12072 "value": "p1"
12073 },
12074 "src": "2232:16:18",
12075 "typeDescriptions": {
12076 "typeIdentifier": "t_bytes32",
12077 "typeString": "bytes32"
12078 }
12079 },
12080 "id": 3750,
12081 "nodeType": "ExpressionStatement",
12082 "src": "2232:16:18"
12083 },
12084 {
12085 "expression": {
12086 "argumentTypes": null,
12087 "id": 3755,
12088 "isConstant": false,
12089 "isLValue": false,
12090 "isPure": false,
12091 "lValueRequested": false,
12092 "leftHandSide": {
12093 "argumentTypes": null,
12094 "baseExpression": {
12095 "argumentTypes": null,
12096 "id": 3751,
12097 "name": "params",
12098 "nodeType": "Identifier",
12099 "overloadedDeclarations": [],
12100 "referencedDeclaration": 3738,
12101 "src": "2258:6:18",
12102 "typeDescriptions": {
12103 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
12104 "typeString": "bytes32[] memory"
12105 }
12106 },
12107 "id": 3753,
12108 "indexExpression": {
12109 "argumentTypes": null,
12110 "hexValue": "31",
12111 "id": 3752,
12112 "isConstant": false,
12113 "isLValue": false,
12114 "isPure": true,
12115 "kind": "number",
12116 "lValueRequested": false,
12117 "nodeType": "Literal",
12118 "src": "2265:1:18",
12119 "subdenomination": null,
12120 "typeDescriptions": {
12121 "typeIdentifier": "t_rational_1_by_1",
12122 "typeString": "int_const 1"
12123 },
12124 "value": "1"
12125 },
12126 "isConstant": false,
12127 "isLValue": true,
12128 "isPure": false,
12129 "lValueRequested": true,
12130 "nodeType": "IndexAccess",
12131 "src": "2258:9:18",
12132 "typeDescriptions": {
12133 "typeIdentifier": "t_bytes32",
12134 "typeString": "bytes32"
12135 }
12136 },
12137 "nodeType": "Assignment",
12138 "operator": "=",
12139 "rightHandSide": {
12140 "argumentTypes": null,
12141 "hexValue": "7032",
12142 "id": 3754,
12143 "isConstant": false,
12144 "isLValue": false,
12145 "isPure": true,
12146 "kind": "string",
12147 "lValueRequested": false,
12148 "nodeType": "Literal",
12149 "src": "2270:4:18",
12150 "subdenomination": null,
12151 "typeDescriptions": {
12152 "typeIdentifier": "t_stringliteral_c30a3ae685bfcb917dceb41e4afed5342f332572d5b3a8212679077685c494cb",
12153 "typeString": "literal_string \"p2\""
12154 },
12155 "value": "p2"
12156 },
12157 "src": "2258:16:18",
12158 "typeDescriptions": {
12159 "typeIdentifier": "t_bytes32",
12160 "typeString": "bytes32"
12161 }
12162 },
12163 "id": 3756,
12164 "nodeType": "ExpressionStatement",
12165 "src": "2258:16:18"
12166 },
12167 {
12168 "expression": {
12169 "argumentTypes": null,
12170 "arguments": [
12171 {
12172 "argumentTypes": null,
12173 "hexValue": "3132333435",
12174 "id": 3760,
12175 "isConstant": false,
12176 "isLValue": false,
12177 "isPure": true,
12178 "kind": "number",
12179 "lValueRequested": false,
12180 "nodeType": "Literal",
12181 "src": "2311:5:18",
12182 "subdenomination": null,
12183 "typeDescriptions": {
12184 "typeIdentifier": "t_rational_12345_by_1",
12185 "typeString": "int_const 12345"
12186 },
12187 "value": "12345"
12188 },
12189 {
12190 "argumentTypes": null,
12191 "id": 3761,
12192 "name": "title",
12193 "nodeType": "Identifier",
12194 "overloadedDeclarations": [],
12195 "referencedDeclaration": 3732,
12196 "src": "2318:5:18",
12197 "typeDescriptions": {
12198 "typeIdentifier": "t_bytes32",
12199 "typeString": "bytes32"
12200 }
12201 }
12202 ],
12203 "expression": {
12204 "argumentTypes": [
12205 {
12206 "typeIdentifier": "t_rational_12345_by_1",
12207 "typeString": "int_const 12345"
12208 },
12209 {
12210 "typeIdentifier": "t_bytes32",
12211 "typeString": "bytes32"
12212 }
12213 ],
12214 "expression": {
12215 "argumentTypes": null,
12216 "id": 3757,
12217 "name": "registry",
12218 "nodeType": "Identifier",
12219 "overloadedDeclarations": [],
12220 "referencedDeclaration": 3605,
12221 "src": "2285:8:18",
12222 "typeDescriptions": {
12223 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
12224 "typeString": "contract RegistryInterface"
12225 }
12226 },
12227 "id": 3759,
12228 "isConstant": false,
12229 "isLValue": false,
12230 "isPure": false,
12231 "lValueRequested": false,
12232 "memberName": "initiateProvider",
12233 "nodeType": "MemberAccess",
12234 "referencedDeclaration": 11175,
12235 "src": "2285:25:18",
12236 "typeDescriptions": {
12237 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
12238 "typeString": "function (uint256,bytes32) external returns (bool)"
12239 }
12240 },
12241 "id": 3762,
12242 "isConstant": false,
12243 "isLValue": false,
12244 "isPure": false,
12245 "kind": "functionCall",
12246 "lValueRequested": false,
12247 "names": [],
12248 "nodeType": "FunctionCall",
12249 "src": "2285:39:18",
12250 "typeDescriptions": {
12251 "typeIdentifier": "t_bool",
12252 "typeString": "bool"
12253 }
12254 },
12255 "id": 3763,
12256 "nodeType": "ExpressionStatement",
12257 "src": "2285:39:18"
12258 },
12259 {
12260 "expression": {
12261 "argumentTypes": null,
12262 "arguments": [
12263 {
12264 "argumentTypes": null,
12265 "id": 3767,
12266 "name": "spec1",
12267 "nodeType": "Identifier",
12268 "overloadedDeclarations": [],
12269 "referencedDeclaration": 3583,
12270 "src": "2366:5:18",
12271 "typeDescriptions": {
12272 "typeIdentifier": "t_bytes32",
12273 "typeString": "bytes32"
12274 }
12275 },
12276 {
12277 "argumentTypes": null,
12278 "id": 3768,
12279 "name": "curve",
12280 "nodeType": "Identifier",
12281 "overloadedDeclarations": [],
12282 "referencedDeclaration": 3603,
12283 "src": "2373:5:18",
12284 "typeDescriptions": {
12285 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
12286 "typeString": "int256[] storage ref"
12287 }
12288 },
12289 {
12290 "argumentTypes": null,
12291 "arguments": [
12292 {
12293 "argumentTypes": null,
12294 "hexValue": "30",
12295 "id": 3770,
12296 "isConstant": false,
12297 "isLValue": false,
12298 "isPure": true,
12299 "kind": "number",
12300 "lValueRequested": false,
12301 "nodeType": "Literal",
12302 "src": "2388:1:18",
12303 "subdenomination": null,
12304 "typeDescriptions": {
12305 "typeIdentifier": "t_rational_0_by_1",
12306 "typeString": "int_const 0"
12307 },
12308 "value": "0"
12309 }
12310 ],
12311 "expression": {
12312 "argumentTypes": [
12313 {
12314 "typeIdentifier": "t_rational_0_by_1",
12315 "typeString": "int_const 0"
12316 }
12317 ],
12318 "id": 3769,
12319 "isConstant": false,
12320 "isLValue": false,
12321 "isPure": true,
12322 "lValueRequested": false,
12323 "nodeType": "ElementaryTypeNameExpression",
12324 "src": "2380:7:18",
12325 "typeDescriptions": {
12326 "typeIdentifier": "t_type$_t_address_$",
12327 "typeString": "type(address)"
12328 },
12329 "typeName": "address"
12330 },
12331 "id": 3771,
12332 "isConstant": false,
12333 "isLValue": false,
12334 "isPure": true,
12335 "kind": "typeConversion",
12336 "lValueRequested": false,
12337 "names": [],
12338 "nodeType": "FunctionCall",
12339 "src": "2380:10:18",
12340 "typeDescriptions": {
12341 "typeIdentifier": "t_address",
12342 "typeString": "address"
12343 }
12344 }
12345 ],
12346 "expression": {
12347 "argumentTypes": [
12348 {
12349 "typeIdentifier": "t_bytes32",
12350 "typeString": "bytes32"
12351 },
12352 {
12353 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
12354 "typeString": "int256[] storage ref"
12355 },
12356 {
12357 "typeIdentifier": "t_address",
12358 "typeString": "address"
12359 }
12360 ],
12361 "expression": {
12362 "argumentTypes": null,
12363 "id": 3764,
12364 "name": "registry",
12365 "nodeType": "Identifier",
12366 "overloadedDeclarations": [],
12367 "referencedDeclaration": 3605,
12368 "src": "2335:8:18",
12369 "typeDescriptions": {
12370 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
12371 "typeString": "contract RegistryInterface"
12372 }
12373 },
12374 "id": 3766,
12375 "isConstant": false,
12376 "isLValue": false,
12377 "isPure": false,
12378 "lValueRequested": false,
12379 "memberName": "initiateProviderCurve",
12380 "nodeType": "MemberAccess",
12381 "referencedDeclaration": 11187,
12382 "src": "2335:30:18",
12383 "typeDescriptions": {
12384 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_int256_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$",
12385 "typeString": "function (bytes32,int256[] memory,address) external returns (bool)"
12386 }
12387 },
12388 "id": 3772,
12389 "isConstant": false,
12390 "isLValue": false,
12391 "isPure": false,
12392 "kind": "functionCall",
12393 "lValueRequested": false,
12394 "names": [],
12395 "nodeType": "FunctionCall",
12396 "src": "2335:56:18",
12397 "typeDescriptions": {
12398 "typeIdentifier": "t_bool",
12399 "typeString": "bool"
12400 }
12401 },
12402 "id": 3773,
12403 "nodeType": "ExpressionStatement",
12404 "src": "2335:56:18"
12405 },
12406 {
12407 "expression": {
12408 "argumentTypes": null,
12409 "arguments": [
12410 {
12411 "argumentTypes": null,
12412 "id": 3777,
12413 "name": "spec2",
12414 "nodeType": "Identifier",
12415 "overloadedDeclarations": [],
12416 "referencedDeclaration": 3586,
12417 "src": "2432:5:18",
12418 "typeDescriptions": {
12419 "typeIdentifier": "t_bytes32",
12420 "typeString": "bytes32"
12421 }
12422 },
12423 {
12424 "argumentTypes": null,
12425 "id": 3778,
12426 "name": "curve",
12427 "nodeType": "Identifier",
12428 "overloadedDeclarations": [],
12429 "referencedDeclaration": 3603,
12430 "src": "2439:5:18",
12431 "typeDescriptions": {
12432 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
12433 "typeString": "int256[] storage ref"
12434 }
12435 },
12436 {
12437 "argumentTypes": null,
12438 "arguments": [
12439 {
12440 "argumentTypes": null,
12441 "hexValue": "30",
12442 "id": 3780,
12443 "isConstant": false,
12444 "isLValue": false,
12445 "isPure": true,
12446 "kind": "number",
12447 "lValueRequested": false,
12448 "nodeType": "Literal",
12449 "src": "2454:1:18",
12450 "subdenomination": null,
12451 "typeDescriptions": {
12452 "typeIdentifier": "t_rational_0_by_1",
12453 "typeString": "int_const 0"
12454 },
12455 "value": "0"
12456 }
12457 ],
12458 "expression": {
12459 "argumentTypes": [
12460 {
12461 "typeIdentifier": "t_rational_0_by_1",
12462 "typeString": "int_const 0"
12463 }
12464 ],
12465 "id": 3779,
12466 "isConstant": false,
12467 "isLValue": false,
12468 "isPure": true,
12469 "lValueRequested": false,
12470 "nodeType": "ElementaryTypeNameExpression",
12471 "src": "2446:7:18",
12472 "typeDescriptions": {
12473 "typeIdentifier": "t_type$_t_address_$",
12474 "typeString": "type(address)"
12475 },
12476 "typeName": "address"
12477 },
12478 "id": 3781,
12479 "isConstant": false,
12480 "isLValue": false,
12481 "isPure": true,
12482 "kind": "typeConversion",
12483 "lValueRequested": false,
12484 "names": [],
12485 "nodeType": "FunctionCall",
12486 "src": "2446:10:18",
12487 "typeDescriptions": {
12488 "typeIdentifier": "t_address",
12489 "typeString": "address"
12490 }
12491 }
12492 ],
12493 "expression": {
12494 "argumentTypes": [
12495 {
12496 "typeIdentifier": "t_bytes32",
12497 "typeString": "bytes32"
12498 },
12499 {
12500 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
12501 "typeString": "int256[] storage ref"
12502 },
12503 {
12504 "typeIdentifier": "t_address",
12505 "typeString": "address"
12506 }
12507 ],
12508 "expression": {
12509 "argumentTypes": null,
12510 "id": 3774,
12511 "name": "registry",
12512 "nodeType": "Identifier",
12513 "overloadedDeclarations": [],
12514 "referencedDeclaration": 3605,
12515 "src": "2401:8:18",
12516 "typeDescriptions": {
12517 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
12518 "typeString": "contract RegistryInterface"
12519 }
12520 },
12521 "id": 3776,
12522 "isConstant": false,
12523 "isLValue": false,
12524 "isPure": false,
12525 "lValueRequested": false,
12526 "memberName": "initiateProviderCurve",
12527 "nodeType": "MemberAccess",
12528 "referencedDeclaration": 11187,
12529 "src": "2401:30:18",
12530 "typeDescriptions": {
12531 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_int256_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$",
12532 "typeString": "function (bytes32,int256[] memory,address) external returns (bool)"
12533 }
12534 },
12535 "id": 3782,
12536 "isConstant": false,
12537 "isLValue": false,
12538 "isPure": false,
12539 "kind": "functionCall",
12540 "lValueRequested": false,
12541 "names": [],
12542 "nodeType": "FunctionCall",
12543 "src": "2401:56:18",
12544 "typeDescriptions": {
12545 "typeIdentifier": "t_bool",
12546 "typeString": "bool"
12547 }
12548 },
12549 "id": 3783,
12550 "nodeType": "ExpressionStatement",
12551 "src": "2401:56:18"
12552 },
12553 {
12554 "expression": {
12555 "argumentTypes": null,
12556 "arguments": [
12557 {
12558 "argumentTypes": null,
12559 "id": 3787,
12560 "name": "spec3",
12561 "nodeType": "Identifier",
12562 "overloadedDeclarations": [],
12563 "referencedDeclaration": 3589,
12564 "src": "2498:5:18",
12565 "typeDescriptions": {
12566 "typeIdentifier": "t_bytes32",
12567 "typeString": "bytes32"
12568 }
12569 },
12570 {
12571 "argumentTypes": null,
12572 "id": 3788,
12573 "name": "curve",
12574 "nodeType": "Identifier",
12575 "overloadedDeclarations": [],
12576 "referencedDeclaration": 3603,
12577 "src": "2505:5:18",
12578 "typeDescriptions": {
12579 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
12580 "typeString": "int256[] storage ref"
12581 }
12582 },
12583 {
12584 "argumentTypes": null,
12585 "arguments": [
12586 {
12587 "argumentTypes": null,
12588 "hexValue": "30",
12589 "id": 3790,
12590 "isConstant": false,
12591 "isLValue": false,
12592 "isPure": true,
12593 "kind": "number",
12594 "lValueRequested": false,
12595 "nodeType": "Literal",
12596 "src": "2520:1:18",
12597 "subdenomination": null,
12598 "typeDescriptions": {
12599 "typeIdentifier": "t_rational_0_by_1",
12600 "typeString": "int_const 0"
12601 },
12602 "value": "0"
12603 }
12604 ],
12605 "expression": {
12606 "argumentTypes": [
12607 {
12608 "typeIdentifier": "t_rational_0_by_1",
12609 "typeString": "int_const 0"
12610 }
12611 ],
12612 "id": 3789,
12613 "isConstant": false,
12614 "isLValue": false,
12615 "isPure": true,
12616 "lValueRequested": false,
12617 "nodeType": "ElementaryTypeNameExpression",
12618 "src": "2512:7:18",
12619 "typeDescriptions": {
12620 "typeIdentifier": "t_type$_t_address_$",
12621 "typeString": "type(address)"
12622 },
12623 "typeName": "address"
12624 },
12625 "id": 3791,
12626 "isConstant": false,
12627 "isLValue": false,
12628 "isPure": true,
12629 "kind": "typeConversion",
12630 "lValueRequested": false,
12631 "names": [],
12632 "nodeType": "FunctionCall",
12633 "src": "2512:10:18",
12634 "typeDescriptions": {
12635 "typeIdentifier": "t_address",
12636 "typeString": "address"
12637 }
12638 }
12639 ],
12640 "expression": {
12641 "argumentTypes": [
12642 {
12643 "typeIdentifier": "t_bytes32",
12644 "typeString": "bytes32"
12645 },
12646 {
12647 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
12648 "typeString": "int256[] storage ref"
12649 },
12650 {
12651 "typeIdentifier": "t_address",
12652 "typeString": "address"
12653 }
12654 ],
12655 "expression": {
12656 "argumentTypes": null,
12657 "id": 3784,
12658 "name": "registry",
12659 "nodeType": "Identifier",
12660 "overloadedDeclarations": [],
12661 "referencedDeclaration": 3605,
12662 "src": "2467:8:18",
12663 "typeDescriptions": {
12664 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
12665 "typeString": "contract RegistryInterface"
12666 }
12667 },
12668 "id": 3786,
12669 "isConstant": false,
12670 "isLValue": false,
12671 "isPure": false,
12672 "lValueRequested": false,
12673 "memberName": "initiateProviderCurve",
12674 "nodeType": "MemberAccess",
12675 "referencedDeclaration": 11187,
12676 "src": "2467:30:18",
12677 "typeDescriptions": {
12678 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_int256_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$",
12679 "typeString": "function (bytes32,int256[] memory,address) external returns (bool)"
12680 }
12681 },
12682 "id": 3792,
12683 "isConstant": false,
12684 "isLValue": false,
12685 "isPure": false,
12686 "kind": "functionCall",
12687 "lValueRequested": false,
12688 "names": [],
12689 "nodeType": "FunctionCall",
12690 "src": "2467:56:18",
12691 "typeDescriptions": {
12692 "typeIdentifier": "t_bool",
12693 "typeString": "bool"
12694 }
12695 },
12696 "id": 3793,
12697 "nodeType": "ExpressionStatement",
12698 "src": "2467:56:18"
12699 },
12700 {
12701 "expression": {
12702 "argumentTypes": null,
12703 "arguments": [
12704 {
12705 "argumentTypes": null,
12706 "id": 3797,
12707 "name": "spec4",
12708 "nodeType": "Identifier",
12709 "overloadedDeclarations": [],
12710 "referencedDeclaration": 3592,
12711 "src": "2564:5:18",
12712 "typeDescriptions": {
12713 "typeIdentifier": "t_bytes32",
12714 "typeString": "bytes32"
12715 }
12716 },
12717 {
12718 "argumentTypes": null,
12719 "id": 3798,
12720 "name": "curve",
12721 "nodeType": "Identifier",
12722 "overloadedDeclarations": [],
12723 "referencedDeclaration": 3603,
12724 "src": "2571:5:18",
12725 "typeDescriptions": {
12726 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
12727 "typeString": "int256[] storage ref"
12728 }
12729 },
12730 {
12731 "argumentTypes": null,
12732 "arguments": [
12733 {
12734 "argumentTypes": null,
12735 "hexValue": "30",
12736 "id": 3800,
12737 "isConstant": false,
12738 "isLValue": false,
12739 "isPure": true,
12740 "kind": "number",
12741 "lValueRequested": false,
12742 "nodeType": "Literal",
12743 "src": "2586:1:18",
12744 "subdenomination": null,
12745 "typeDescriptions": {
12746 "typeIdentifier": "t_rational_0_by_1",
12747 "typeString": "int_const 0"
12748 },
12749 "value": "0"
12750 }
12751 ],
12752 "expression": {
12753 "argumentTypes": [
12754 {
12755 "typeIdentifier": "t_rational_0_by_1",
12756 "typeString": "int_const 0"
12757 }
12758 ],
12759 "id": 3799,
12760 "isConstant": false,
12761 "isLValue": false,
12762 "isPure": true,
12763 "lValueRequested": false,
12764 "nodeType": "ElementaryTypeNameExpression",
12765 "src": "2578:7:18",
12766 "typeDescriptions": {
12767 "typeIdentifier": "t_type$_t_address_$",
12768 "typeString": "type(address)"
12769 },
12770 "typeName": "address"
12771 },
12772 "id": 3801,
12773 "isConstant": false,
12774 "isLValue": false,
12775 "isPure": true,
12776 "kind": "typeConversion",
12777 "lValueRequested": false,
12778 "names": [],
12779 "nodeType": "FunctionCall",
12780 "src": "2578:10:18",
12781 "typeDescriptions": {
12782 "typeIdentifier": "t_address",
12783 "typeString": "address"
12784 }
12785 }
12786 ],
12787 "expression": {
12788 "argumentTypes": [
12789 {
12790 "typeIdentifier": "t_bytes32",
12791 "typeString": "bytes32"
12792 },
12793 {
12794 "typeIdentifier": "t_array$_t_int256_$dyn_storage",
12795 "typeString": "int256[] storage ref"
12796 },
12797 {
12798 "typeIdentifier": "t_address",
12799 "typeString": "address"
12800 }
12801 ],
12802 "expression": {
12803 "argumentTypes": null,
12804 "id": 3794,
12805 "name": "registry",
12806 "nodeType": "Identifier",
12807 "overloadedDeclarations": [],
12808 "referencedDeclaration": 3605,
12809 "src": "2533:8:18",
12810 "typeDescriptions": {
12811 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
12812 "typeString": "contract RegistryInterface"
12813 }
12814 },
12815 "id": 3796,
12816 "isConstant": false,
12817 "isLValue": false,
12818 "isPure": false,
12819 "lValueRequested": false,
12820 "memberName": "initiateProviderCurve",
12821 "nodeType": "MemberAccess",
12822 "referencedDeclaration": 11187,
12823 "src": "2533:30:18",
12824 "typeDescriptions": {
12825 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_int256_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$",
12826 "typeString": "function (bytes32,int256[] memory,address) external returns (bool)"
12827 }
12828 },
12829 "id": 3802,
12830 "isConstant": false,
12831 "isLValue": false,
12832 "isPure": false,
12833 "kind": "functionCall",
12834 "lValueRequested": false,
12835 "names": [],
12836 "nodeType": "FunctionCall",
12837 "src": "2533:56:18",
12838 "typeDescriptions": {
12839 "typeIdentifier": "t_bool",
12840 "typeString": "bool"
12841 }
12842 },
12843 "id": 3803,
12844 "nodeType": "ExpressionStatement",
12845 "src": "2533:56:18"
12846 }
12847 ]
12848 },
12849 "documentation": null,
12850 "id": 3805,
12851 "implemented": true,
12852 "isConstructor": true,
12853 "isDeclaredConst": false,
12854 "modifiers": [],
12855 "name": "",
12856 "nodeType": "FunctionDefinition",
12857 "parameters": {
12858 "id": 3719,
12859 "nodeType": "ParameterList",
12860 "parameters": [
12861 {
12862 "constant": false,
12863 "id": 3716,
12864 "name": "registryAddress",
12865 "nodeType": "VariableDeclaration",
12866 "scope": 3805,
12867 "src": "1963:23:18",
12868 "stateVariable": false,
12869 "storageLocation": "default",
12870 "typeDescriptions": {
12871 "typeIdentifier": "t_address",
12872 "typeString": "address"
12873 },
12874 "typeName": {
12875 "id": 3715,
12876 "name": "address",
12877 "nodeType": "ElementaryTypeName",
12878 "src": "1963:7:18",
12879 "typeDescriptions": {
12880 "typeIdentifier": "t_address",
12881 "typeString": "address"
12882 }
12883 },
12884 "value": null,
12885 "visibility": "internal"
12886 },
12887 {
12888 "constant": false,
12889 "id": 3718,
12890 "name": "isBad",
12891 "nodeType": "VariableDeclaration",
12892 "scope": 3805,
12893 "src": "1988:10:18",
12894 "stateVariable": false,
12895 "storageLocation": "default",
12896 "typeDescriptions": {
12897 "typeIdentifier": "t_bool",
12898 "typeString": "bool"
12899 },
12900 "typeName": {
12901 "id": 3717,
12902 "name": "bool",
12903 "nodeType": "ElementaryTypeName",
12904 "src": "1988:4:18",
12905 "typeDescriptions": {
12906 "typeIdentifier": "t_bool",
12907 "typeString": "bool"
12908 }
12909 },
12910 "value": null,
12911 "visibility": "internal"
12912 }
12913 ],
12914 "src": "1962:37:18"
12915 },
12916 "payable": false,
12917 "returnParameters": {
12918 "id": 3720,
12919 "nodeType": "ParameterList",
12920 "parameters": [],
12921 "src": "2006:0:18"
12922 },
12923 "scope": 4057,
12924 "src": "1951:645:18",
12925 "stateMutability": "nonpayable",
12926 "superFunction": null,
12927 "visibility": "public"
12928 },
12929 {
12930 "body": {
12931 "id": 3824,
12932 "nodeType": "Block",
12933 "src": "2739:74:18",
12934 "statements": [
12935 {
12936 "expression": {
12937 "argumentTypes": null,
12938 "arguments": [
12939 {
12940 "argumentTypes": null,
12941 "id": 3820,
12942 "name": "id",
12943 "nodeType": "Identifier",
12944 "overloadedDeclarations": [],
12945 "referencedDeclaration": 3807,
12946 "src": "2788:2:18",
12947 "typeDescriptions": {
12948 "typeIdentifier": "t_uint256",
12949 "typeString": "uint256"
12950 }
12951 },
12952 {
12953 "argumentTypes": null,
12954 "hexValue": "48656c6c6f20576f726c64",
12955 "id": 3821,
12956 "isConstant": false,
12957 "isLValue": false,
12958 "isPure": true,
12959 "kind": "string",
12960 "lValueRequested": false,
12961 "nodeType": "Literal",
12962 "src": "2792:13:18",
12963 "subdenomination": null,
12964 "typeDescriptions": {
12965 "typeIdentifier": "t_stringliteral_592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba",
12966 "typeString": "literal_string \"Hello World\""
12967 },
12968 "value": "Hello World"
12969 }
12970 ],
12971 "expression": {
12972 "argumentTypes": [
12973 {
12974 "typeIdentifier": "t_uint256",
12975 "typeString": "uint256"
12976 },
12977 {
12978 "typeIdentifier": "t_stringliteral_592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba",
12979 "typeString": "literal_string \"Hello World\""
12980 }
12981 ],
12982 "expression": {
12983 "argumentTypes": null,
12984 "arguments": [
12985 {
12986 "argumentTypes": null,
12987 "expression": {
12988 "argumentTypes": null,
12989 "id": 3816,
12990 "name": "msg",
12991 "nodeType": "Identifier",
12992 "overloadedDeclarations": [],
12993 "referencedDeclaration": 12092,
12994 "src": "2767:3:18",
12995 "typeDescriptions": {
12996 "typeIdentifier": "t_magic_message",
12997 "typeString": "msg"
12998 }
12999 },
13000 "id": 3817,
13001 "isConstant": false,
13002 "isLValue": false,
13003 "isPure": false,
13004 "lValueRequested": false,
13005 "memberName": "sender",
13006 "nodeType": "MemberAccess",
13007 "referencedDeclaration": null,
13008 "src": "2767:10:18",
13009 "typeDescriptions": {
13010 "typeIdentifier": "t_address",
13011 "typeString": "address"
13012 }
13013 }
13014 ],
13015 "expression": {
13016 "argumentTypes": [
13017 {
13018 "typeIdentifier": "t_address",
13019 "typeString": "address"
13020 }
13021 ],
13022 "id": 3815,
13023 "name": "DispatchInterface",
13024 "nodeType": "Identifier",
13025 "overloadedDeclarations": [],
13026 "referencedDeclaration": 10147,
13027 "src": "2749:17:18",
13028 "typeDescriptions": {
13029 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
13030 "typeString": "type(contract DispatchInterface)"
13031 }
13032 },
13033 "id": 3818,
13034 "isConstant": false,
13035 "isLValue": false,
13036 "isPure": false,
13037 "kind": "typeConversion",
13038 "lValueRequested": false,
13039 "names": [],
13040 "nodeType": "FunctionCall",
13041 "src": "2749:29:18",
13042 "typeDescriptions": {
13043 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
13044 "typeString": "contract DispatchInterface"
13045 }
13046 },
13047 "id": 3819,
13048 "isConstant": false,
13049 "isLValue": false,
13050 "isPure": false,
13051 "lValueRequested": false,
13052 "memberName": "respond1",
13053 "nodeType": "MemberAccess",
13054 "referencedDeclaration": 10033,
13055 "src": "2749:38:18",
13056 "typeDescriptions": {
13057 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$_t_bool_$",
13058 "typeString": "function (uint256,string memory) external returns (bool)"
13059 }
13060 },
13061 "id": 3822,
13062 "isConstant": false,
13063 "isLValue": false,
13064 "isPure": false,
13065 "kind": "functionCall",
13066 "lValueRequested": false,
13067 "names": [],
13068 "nodeType": "FunctionCall",
13069 "src": "2749:57:18",
13070 "typeDescriptions": {
13071 "typeIdentifier": "t_bool",
13072 "typeString": "bool"
13073 }
13074 },
13075 "id": 3823,
13076 "nodeType": "ExpressionStatement",
13077 "src": "2749:57:18"
13078 }
13079 ]
13080 },
13081 "documentation": null,
13082 "id": 3825,
13083 "implemented": true,
13084 "isConstructor": false,
13085 "isDeclaredConst": false,
13086 "modifiers": [],
13087 "name": "endpoint1",
13088 "nodeType": "FunctionDefinition",
13089 "parameters": {
13090 "id": 3813,
13091 "nodeType": "ParameterList",
13092 "parameters": [
13093 {
13094 "constant": false,
13095 "id": 3807,
13096 "name": "id",
13097 "nodeType": "VariableDeclaration",
13098 "scope": 3825,
13099 "src": "2663:10:18",
13100 "stateVariable": false,
13101 "storageLocation": "default",
13102 "typeDescriptions": {
13103 "typeIdentifier": "t_uint256",
13104 "typeString": "uint256"
13105 },
13106 "typeName": {
13107 "id": 3806,
13108 "name": "uint256",
13109 "nodeType": "ElementaryTypeName",
13110 "src": "2663:7:18",
13111 "typeDescriptions": {
13112 "typeIdentifier": "t_uint256",
13113 "typeString": "uint256"
13114 }
13115 },
13116 "value": null,
13117 "visibility": "internal"
13118 },
13119 {
13120 "constant": false,
13121 "id": 3809,
13122 "name": "",
13123 "nodeType": "VariableDeclaration",
13124 "scope": 3825,
13125 "src": "2675:6:18",
13126 "stateVariable": false,
13127 "storageLocation": "default",
13128 "typeDescriptions": {
13129 "typeIdentifier": "t_string_memory_ptr",
13130 "typeString": "string"
13131 },
13132 "typeName": {
13133 "id": 3808,
13134 "name": "string",
13135 "nodeType": "ElementaryTypeName",
13136 "src": "2675:6:18",
13137 "typeDescriptions": {
13138 "typeIdentifier": "t_string_storage_ptr",
13139 "typeString": "string"
13140 }
13141 },
13142 "value": null,
13143 "visibility": "internal"
13144 },
13145 {
13146 "constant": false,
13147 "id": 3812,
13148 "name": "",
13149 "nodeType": "VariableDeclaration",
13150 "scope": 3825,
13151 "src": "2699:9:18",
13152 "stateVariable": false,
13153 "storageLocation": "default",
13154 "typeDescriptions": {
13155 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
13156 "typeString": "bytes32[]"
13157 },
13158 "typeName": {
13159 "baseType": {
13160 "id": 3810,
13161 "name": "bytes32",
13162 "nodeType": "ElementaryTypeName",
13163 "src": "2699:7:18",
13164 "typeDescriptions": {
13165 "typeIdentifier": "t_bytes32",
13166 "typeString": "bytes32"
13167 }
13168 },
13169 "id": 3811,
13170 "length": null,
13171 "nodeType": "ArrayTypeName",
13172 "src": "2699:9:18",
13173 "typeDescriptions": {
13174 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
13175 "typeString": "bytes32[]"
13176 }
13177 },
13178 "value": null,
13179 "visibility": "internal"
13180 }
13181 ],
13182 "src": "2662:68:18"
13183 },
13184 "payable": false,
13185 "returnParameters": {
13186 "id": 3814,
13187 "nodeType": "ParameterList",
13188 "parameters": [],
13189 "src": "2739:0:18"
13190 },
13191 "scope": 4057,
13192 "src": "2644:169:18",
13193 "stateMutability": "nonpayable",
13194 "superFunction": null,
13195 "visibility": "internal"
13196 },
13197 {
13198 "body": {
13199 "id": 3850,
13200 "nodeType": "Block",
13201 "src": "2944:154:18",
13202 "statements": [
13203 {
13204 "assignments": [
13205 3836
13206 ],
13207 "declarations": [
13208 {
13209 "constant": false,
13210 "id": 3836,
13211 "name": "reversed",
13212 "nodeType": "VariableDeclaration",
13213 "scope": 3851,
13214 "src": "2980:22:18",
13215 "stateVariable": false,
13216 "storageLocation": "memory",
13217 "typeDescriptions": {
13218 "typeIdentifier": "t_string_memory_ptr",
13219 "typeString": "string"
13220 },
13221 "typeName": {
13222 "id": 3835,
13223 "name": "string",
13224 "nodeType": "ElementaryTypeName",
13225 "src": "2980:6:18",
13226 "typeDescriptions": {
13227 "typeIdentifier": "t_string_storage_ptr",
13228 "typeString": "string"
13229 }
13230 },
13231 "value": null,
13232 "visibility": "internal"
13233 }
13234 ],
13235 "id": 3840,
13236 "initialValue": {
13237 "argumentTypes": null,
13238 "arguments": [
13239 {
13240 "argumentTypes": null,
13241 "id": 3838,
13242 "name": "userQuery",
13243 "nodeType": "Identifier",
13244 "overloadedDeclarations": [],
13245 "referencedDeclaration": 3829,
13246 "src": "3019:9:18",
13247 "typeDescriptions": {
13248 "typeIdentifier": "t_string_memory_ptr",
13249 "typeString": "string memory"
13250 }
13251 }
13252 ],
13253 "expression": {
13254 "argumentTypes": [
13255 {
13256 "typeIdentifier": "t_string_memory_ptr",
13257 "typeString": "string memory"
13258 }
13259 ],
13260 "id": 3837,
13261 "name": "reverseString",
13262 "nodeType": "Identifier",
13263 "overloadedDeclarations": [],
13264 "referencedDeclaration": 3997,
13265 "src": "3005:13:18",
13266 "typeDescriptions": {
13267 "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
13268 "typeString": "function (string memory) pure returns (string memory)"
13269 }
13270 },
13271 "id": 3839,
13272 "isConstant": false,
13273 "isLValue": false,
13274 "isPure": false,
13275 "kind": "functionCall",
13276 "lValueRequested": false,
13277 "names": [],
13278 "nodeType": "FunctionCall",
13279 "src": "3005:24:18",
13280 "typeDescriptions": {
13281 "typeIdentifier": "t_string_memory_ptr",
13282 "typeString": "string memory"
13283 }
13284 },
13285 "nodeType": "VariableDeclarationStatement",
13286 "src": "2980:49:18"
13287 },
13288 {
13289 "expression": {
13290 "argumentTypes": null,
13291 "arguments": [
13292 {
13293 "argumentTypes": null,
13294 "id": 3846,
13295 "name": "id",
13296 "nodeType": "Identifier",
13297 "overloadedDeclarations": [],
13298 "referencedDeclaration": 3827,
13299 "src": "3078:2:18",
13300 "typeDescriptions": {
13301 "typeIdentifier": "t_uint256",
13302 "typeString": "uint256"
13303 }
13304 },
13305 {
13306 "argumentTypes": null,
13307 "id": 3847,
13308 "name": "reversed",
13309 "nodeType": "Identifier",
13310 "overloadedDeclarations": [],
13311 "referencedDeclaration": 3836,
13312 "src": "3082:8:18",
13313 "typeDescriptions": {
13314 "typeIdentifier": "t_string_memory_ptr",
13315 "typeString": "string memory"
13316 }
13317 }
13318 ],
13319 "expression": {
13320 "argumentTypes": [
13321 {
13322 "typeIdentifier": "t_uint256",
13323 "typeString": "uint256"
13324 },
13325 {
13326 "typeIdentifier": "t_string_memory_ptr",
13327 "typeString": "string memory"
13328 }
13329 ],
13330 "expression": {
13331 "argumentTypes": null,
13332 "arguments": [
13333 {
13334 "argumentTypes": null,
13335 "expression": {
13336 "argumentTypes": null,
13337 "id": 3842,
13338 "name": "msg",
13339 "nodeType": "Identifier",
13340 "overloadedDeclarations": [],
13341 "referencedDeclaration": 12092,
13342 "src": "3057:3:18",
13343 "typeDescriptions": {
13344 "typeIdentifier": "t_magic_message",
13345 "typeString": "msg"
13346 }
13347 },
13348 "id": 3843,
13349 "isConstant": false,
13350 "isLValue": false,
13351 "isPure": false,
13352 "lValueRequested": false,
13353 "memberName": "sender",
13354 "nodeType": "MemberAccess",
13355 "referencedDeclaration": null,
13356 "src": "3057:10:18",
13357 "typeDescriptions": {
13358 "typeIdentifier": "t_address",
13359 "typeString": "address"
13360 }
13361 }
13362 ],
13363 "expression": {
13364 "argumentTypes": [
13365 {
13366 "typeIdentifier": "t_address",
13367 "typeString": "address"
13368 }
13369 ],
13370 "id": 3841,
13371 "name": "DispatchInterface",
13372 "nodeType": "Identifier",
13373 "overloadedDeclarations": [],
13374 "referencedDeclaration": 10147,
13375 "src": "3039:17:18",
13376 "typeDescriptions": {
13377 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
13378 "typeString": "type(contract DispatchInterface)"
13379 }
13380 },
13381 "id": 3844,
13382 "isConstant": false,
13383 "isLValue": false,
13384 "isPure": false,
13385 "kind": "typeConversion",
13386 "lValueRequested": false,
13387 "names": [],
13388 "nodeType": "FunctionCall",
13389 "src": "3039:29:18",
13390 "typeDescriptions": {
13391 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
13392 "typeString": "contract DispatchInterface"
13393 }
13394 },
13395 "id": 3845,
13396 "isConstant": false,
13397 "isLValue": false,
13398 "isPure": false,
13399 "lValueRequested": false,
13400 "memberName": "respond1",
13401 "nodeType": "MemberAccess",
13402 "referencedDeclaration": 10033,
13403 "src": "3039:38:18",
13404 "typeDescriptions": {
13405 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$_t_bool_$",
13406 "typeString": "function (uint256,string memory) external returns (bool)"
13407 }
13408 },
13409 "id": 3848,
13410 "isConstant": false,
13411 "isLValue": false,
13412 "isPure": false,
13413 "kind": "functionCall",
13414 "lValueRequested": false,
13415 "names": [],
13416 "nodeType": "FunctionCall",
13417 "src": "3039:52:18",
13418 "typeDescriptions": {
13419 "typeIdentifier": "t_bool",
13420 "typeString": "bool"
13421 }
13422 },
13423 "id": 3849,
13424 "nodeType": "ExpressionStatement",
13425 "src": "3039:52:18"
13426 }
13427 ]
13428 },
13429 "documentation": null,
13430 "id": 3851,
13431 "implemented": true,
13432 "isConstructor": false,
13433 "isDeclaredConst": false,
13434 "modifiers": [],
13435 "name": "endpoint2",
13436 "nodeType": "FunctionDefinition",
13437 "parameters": {
13438 "id": 3833,
13439 "nodeType": "ParameterList",
13440 "parameters": [
13441 {
13442 "constant": false,
13443 "id": 3827,
13444 "name": "id",
13445 "nodeType": "VariableDeclaration",
13446 "scope": 3851,
13447 "src": "2874:10:18",
13448 "stateVariable": false,
13449 "storageLocation": "default",
13450 "typeDescriptions": {
13451 "typeIdentifier": "t_uint256",
13452 "typeString": "uint256"
13453 },
13454 "typeName": {
13455 "id": 3826,
13456 "name": "uint256",
13457 "nodeType": "ElementaryTypeName",
13458 "src": "2874:7:18",
13459 "typeDescriptions": {
13460 "typeIdentifier": "t_uint256",
13461 "typeString": "uint256"
13462 }
13463 },
13464 "value": null,
13465 "visibility": "internal"
13466 },
13467 {
13468 "constant": false,
13469 "id": 3829,
13470 "name": "userQuery",
13471 "nodeType": "VariableDeclaration",
13472 "scope": 3851,
13473 "src": "2886:16:18",
13474 "stateVariable": false,
13475 "storageLocation": "default",
13476 "typeDescriptions": {
13477 "typeIdentifier": "t_string_memory_ptr",
13478 "typeString": "string"
13479 },
13480 "typeName": {
13481 "id": 3828,
13482 "name": "string",
13483 "nodeType": "ElementaryTypeName",
13484 "src": "2886:6:18",
13485 "typeDescriptions": {
13486 "typeIdentifier": "t_string_storage_ptr",
13487 "typeString": "string"
13488 }
13489 },
13490 "value": null,
13491 "visibility": "internal"
13492 },
13493 {
13494 "constant": false,
13495 "id": 3832,
13496 "name": "",
13497 "nodeType": "VariableDeclaration",
13498 "scope": 3851,
13499 "src": "2904:9:18",
13500 "stateVariable": false,
13501 "storageLocation": "default",
13502 "typeDescriptions": {
13503 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
13504 "typeString": "bytes32[]"
13505 },
13506 "typeName": {
13507 "baseType": {
13508 "id": 3830,
13509 "name": "bytes32",
13510 "nodeType": "ElementaryTypeName",
13511 "src": "2904:7:18",
13512 "typeDescriptions": {
13513 "typeIdentifier": "t_bytes32",
13514 "typeString": "bytes32"
13515 }
13516 },
13517 "id": 3831,
13518 "length": null,
13519 "nodeType": "ArrayTypeName",
13520 "src": "2904:9:18",
13521 "typeDescriptions": {
13522 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
13523 "typeString": "bytes32[]"
13524 }
13525 },
13526 "value": null,
13527 "visibility": "internal"
13528 }
13529 ],
13530 "src": "2873:62:18"
13531 },
13532 "payable": false,
13533 "returnParameters": {
13534 "id": 3834,
13535 "nodeType": "ParameterList",
13536 "parameters": [],
13537 "src": "2944:0:18"
13538 },
13539 "scope": 4057,
13540 "src": "2855:243:18",
13541 "stateMutability": "nonpayable",
13542 "superFunction": null,
13543 "visibility": "internal"
13544 },
13545 {
13546 "body": {
13547 "id": 3917,
13548 "nodeType": "Block",
13549 "src": "3249:320:18",
13550 "statements": [
13551 {
13552 "assignments": [
13553 3862
13554 ],
13555 "declarations": [
13556 {
13557 "constant": false,
13558 "id": 3862,
13559 "name": "sum",
13560 "nodeType": "VariableDeclaration",
13561 "scope": 3918,
13562 "src": "3259:8:18",
13563 "stateVariable": false,
13564 "storageLocation": "default",
13565 "typeDescriptions": {
13566 "typeIdentifier": "t_uint256",
13567 "typeString": "uint256"
13568 },
13569 "typeName": {
13570 "id": 3861,
13571 "name": "uint",
13572 "nodeType": "ElementaryTypeName",
13573 "src": "3259:4:18",
13574 "typeDescriptions": {
13575 "typeIdentifier": "t_uint256",
13576 "typeString": "uint256"
13577 }
13578 },
13579 "value": null,
13580 "visibility": "internal"
13581 }
13582 ],
13583 "id": 3864,
13584 "initialValue": {
13585 "argumentTypes": null,
13586 "hexValue": "30",
13587 "id": 3863,
13588 "isConstant": false,
13589 "isLValue": false,
13590 "isPure": true,
13591 "kind": "number",
13592 "lValueRequested": false,
13593 "nodeType": "Literal",
13594 "src": "3270:1:18",
13595 "subdenomination": null,
13596 "typeDescriptions": {
13597 "typeIdentifier": "t_rational_0_by_1",
13598 "typeString": "int_const 0"
13599 },
13600 "value": "0"
13601 },
13602 "nodeType": "VariableDeclarationStatement",
13603 "src": "3259:12:18"
13604 },
13605 {
13606 "body": {
13607 "id": 3888,
13608 "nodeType": "Block",
13609 "src": "3326:87:18",
13610 "statements": [
13611 {
13612 "assignments": [
13613 3877
13614 ],
13615 "declarations": [
13616 {
13617 "constant": false,
13618 "id": 3877,
13619 "name": "value",
13620 "nodeType": "VariableDeclaration",
13621 "scope": 3918,
13622 "src": "3340:10:18",
13623 "stateVariable": false,
13624 "storageLocation": "default",
13625 "typeDescriptions": {
13626 "typeIdentifier": "t_uint256",
13627 "typeString": "uint256"
13628 },
13629 "typeName": {
13630 "id": 3876,
13631 "name": "uint",
13632 "nodeType": "ElementaryTypeName",
13633 "src": "3340:4:18",
13634 "typeDescriptions": {
13635 "typeIdentifier": "t_uint256",
13636 "typeString": "uint256"
13637 }
13638 },
13639 "value": null,
13640 "visibility": "internal"
13641 }
13642 ],
13643 "id": 3883,
13644 "initialValue": {
13645 "argumentTypes": null,
13646 "arguments": [
13647 {
13648 "argumentTypes": null,
13649 "baseExpression": {
13650 "argumentTypes": null,
13651 "id": 3879,
13652 "name": "endpointParams",
13653 "nodeType": "Identifier",
13654 "overloadedDeclarations": [],
13655 "referencedDeclaration": 3858,
13656 "src": "3358:14:18",
13657 "typeDescriptions": {
13658 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
13659 "typeString": "bytes32[] memory"
13660 }
13661 },
13662 "id": 3881,
13663 "indexExpression": {
13664 "argumentTypes": null,
13665 "id": 3880,
13666 "name": "i",
13667 "nodeType": "Identifier",
13668 "overloadedDeclarations": [],
13669 "referencedDeclaration": 3866,
13670 "src": "3373:1:18",
13671 "typeDescriptions": {
13672 "typeIdentifier": "t_uint256",
13673 "typeString": "uint256"
13674 }
13675 },
13676 "isConstant": false,
13677 "isLValue": true,
13678 "isPure": false,
13679 "lValueRequested": false,
13680 "nodeType": "IndexAccess",
13681 "src": "3358:17:18",
13682 "typeDescriptions": {
13683 "typeIdentifier": "t_bytes32",
13684 "typeString": "bytes32"
13685 }
13686 }
13687 ],
13688 "expression": {
13689 "argumentTypes": [
13690 {
13691 "typeIdentifier": "t_bytes32",
13692 "typeString": "bytes32"
13693 }
13694 ],
13695 "id": 3878,
13696 "isConstant": false,
13697 "isLValue": false,
13698 "isPure": true,
13699 "lValueRequested": false,
13700 "nodeType": "ElementaryTypeNameExpression",
13701 "src": "3353:4:18",
13702 "typeDescriptions": {
13703 "typeIdentifier": "t_type$_t_uint256_$",
13704 "typeString": "type(uint256)"
13705 },
13706 "typeName": "uint"
13707 },
13708 "id": 3882,
13709 "isConstant": false,
13710 "isLValue": false,
13711 "isPure": false,
13712 "kind": "typeConversion",
13713 "lValueRequested": false,
13714 "names": [],
13715 "nodeType": "FunctionCall",
13716 "src": "3353:23:18",
13717 "typeDescriptions": {
13718 "typeIdentifier": "t_uint256",
13719 "typeString": "uint256"
13720 }
13721 },
13722 "nodeType": "VariableDeclarationStatement",
13723 "src": "3340:36:18"
13724 },
13725 {
13726 "expression": {
13727 "argumentTypes": null,
13728 "id": 3886,
13729 "isConstant": false,
13730 "isLValue": false,
13731 "isPure": false,
13732 "lValueRequested": false,
13733 "leftHandSide": {
13734 "argumentTypes": null,
13735 "id": 3884,
13736 "name": "sum",
13737 "nodeType": "Identifier",
13738 "overloadedDeclarations": [],
13739 "referencedDeclaration": 3862,
13740 "src": "3390:3:18",
13741 "typeDescriptions": {
13742 "typeIdentifier": "t_uint256",
13743 "typeString": "uint256"
13744 }
13745 },
13746 "nodeType": "Assignment",
13747 "operator": "+=",
13748 "rightHandSide": {
13749 "argumentTypes": null,
13750 "id": 3885,
13751 "name": "value",
13752 "nodeType": "Identifier",
13753 "overloadedDeclarations": [],
13754 "referencedDeclaration": 3877,
13755 "src": "3397:5:18",
13756 "typeDescriptions": {
13757 "typeIdentifier": "t_uint256",
13758 "typeString": "uint256"
13759 }
13760 },
13761 "src": "3390:12:18",
13762 "typeDescriptions": {
13763 "typeIdentifier": "t_uint256",
13764 "typeString": "uint256"
13765 }
13766 },
13767 "id": 3887,
13768 "nodeType": "ExpressionStatement",
13769 "src": "3390:12:18"
13770 }
13771 ]
13772 },
13773 "condition": {
13774 "argumentTypes": null,
13775 "commonType": {
13776 "typeIdentifier": "t_uint256",
13777 "typeString": "uint256"
13778 },
13779 "id": 3872,
13780 "isConstant": false,
13781 "isLValue": false,
13782 "isPure": false,
13783 "lValueRequested": false,
13784 "leftExpression": {
13785 "argumentTypes": null,
13786 "id": 3869,
13787 "name": "i",
13788 "nodeType": "Identifier",
13789 "overloadedDeclarations": [],
13790 "referencedDeclaration": 3866,
13791 "src": "3297:1:18",
13792 "typeDescriptions": {
13793 "typeIdentifier": "t_uint256",
13794 "typeString": "uint256"
13795 }
13796 },
13797 "nodeType": "BinaryOperation",
13798 "operator": "<",
13799 "rightExpression": {
13800 "argumentTypes": null,
13801 "expression": {
13802 "argumentTypes": null,
13803 "id": 3870,
13804 "name": "endpointParams",
13805 "nodeType": "Identifier",
13806 "overloadedDeclarations": [],
13807 "referencedDeclaration": 3858,
13808 "src": "3299:14:18",
13809 "typeDescriptions": {
13810 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
13811 "typeString": "bytes32[] memory"
13812 }
13813 },
13814 "id": 3871,
13815 "isConstant": false,
13816 "isLValue": false,
13817 "isPure": false,
13818 "lValueRequested": false,
13819 "memberName": "length",
13820 "nodeType": "MemberAccess",
13821 "referencedDeclaration": null,
13822 "src": "3299:21:18",
13823 "typeDescriptions": {
13824 "typeIdentifier": "t_uint256",
13825 "typeString": "uint256"
13826 }
13827 },
13828 "src": "3297:23:18",
13829 "typeDescriptions": {
13830 "typeIdentifier": "t_bool",
13831 "typeString": "bool"
13832 }
13833 },
13834 "id": 3889,
13835 "initializationExpression": {
13836 "assignments": [
13837 3866
13838 ],
13839 "declarations": [
13840 {
13841 "constant": false,
13842 "id": 3866,
13843 "name": "i",
13844 "nodeType": "VariableDeclaration",
13845 "scope": 3918,
13846 "src": "3285:6:18",
13847 "stateVariable": false,
13848 "storageLocation": "default",
13849 "typeDescriptions": {
13850 "typeIdentifier": "t_uint256",
13851 "typeString": "uint256"
13852 },
13853 "typeName": {
13854 "id": 3865,
13855 "name": "uint",
13856 "nodeType": "ElementaryTypeName",
13857 "src": "3285:4:18",
13858 "typeDescriptions": {
13859 "typeIdentifier": "t_uint256",
13860 "typeString": "uint256"
13861 }
13862 },
13863 "value": null,
13864 "visibility": "internal"
13865 }
13866 ],
13867 "id": 3868,
13868 "initialValue": {
13869 "argumentTypes": null,
13870 "hexValue": "30",
13871 "id": 3867,
13872 "isConstant": false,
13873 "isLValue": false,
13874 "isPure": true,
13875 "kind": "number",
13876 "lValueRequested": false,
13877 "nodeType": "Literal",
13878 "src": "3294:1:18",
13879 "subdenomination": null,
13880 "typeDescriptions": {
13881 "typeIdentifier": "t_rational_0_by_1",
13882 "typeString": "int_const 0"
13883 },
13884 "value": "0"
13885 },
13886 "nodeType": "VariableDeclarationStatement",
13887 "src": "3285:10:18"
13888 },
13889 "loopExpression": {
13890 "expression": {
13891 "argumentTypes": null,
13892 "id": 3874,
13893 "isConstant": false,
13894 "isLValue": false,
13895 "isPure": false,
13896 "lValueRequested": false,
13897 "nodeType": "UnaryOperation",
13898 "operator": "++",
13899 "prefix": false,
13900 "src": "3322:3:18",
13901 "subExpression": {
13902 "argumentTypes": null,
13903 "id": 3873,
13904 "name": "i",
13905 "nodeType": "Identifier",
13906 "overloadedDeclarations": [],
13907 "referencedDeclaration": 3866,
13908 "src": "3322:1:18",
13909 "typeDescriptions": {
13910 "typeIdentifier": "t_uint256",
13911 "typeString": "uint256"
13912 }
13913 },
13914 "typeDescriptions": {
13915 "typeIdentifier": "t_uint256",
13916 "typeString": "uint256"
13917 }
13918 },
13919 "id": 3875,
13920 "nodeType": "ExpressionStatement",
13921 "src": "3322:3:18"
13922 },
13923 "nodeType": "ForStatement",
13924 "src": "3281:132:18"
13925 },
13926 {
13927 "assignments": [
13928 3893
13929 ],
13930 "declarations": [
13931 {
13932 "constant": false,
13933 "id": 3893,
13934 "name": "res",
13935 "nodeType": "VariableDeclaration",
13936 "scope": 3918,
13937 "src": "3423:20:18",
13938 "stateVariable": false,
13939 "storageLocation": "memory",
13940 "typeDescriptions": {
13941 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
13942 "typeString": "bytes32[]"
13943 },
13944 "typeName": {
13945 "baseType": {
13946 "id": 3891,
13947 "name": "bytes32",
13948 "nodeType": "ElementaryTypeName",
13949 "src": "3423:7:18",
13950 "typeDescriptions": {
13951 "typeIdentifier": "t_bytes32",
13952 "typeString": "bytes32"
13953 }
13954 },
13955 "id": 3892,
13956 "length": null,
13957 "nodeType": "ArrayTypeName",
13958 "src": "3423:9:18",
13959 "typeDescriptions": {
13960 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
13961 "typeString": "bytes32[]"
13962 }
13963 },
13964 "value": null,
13965 "visibility": "internal"
13966 }
13967 ],
13968 "id": 3899,
13969 "initialValue": {
13970 "argumentTypes": null,
13971 "arguments": [
13972 {
13973 "argumentTypes": null,
13974 "hexValue": "31",
13975 "id": 3897,
13976 "isConstant": false,
13977 "isLValue": false,
13978 "isPure": true,
13979 "kind": "number",
13980 "lValueRequested": false,
13981 "nodeType": "Literal",
13982 "src": "3460:1:18",
13983 "subdenomination": null,
13984 "typeDescriptions": {
13985 "typeIdentifier": "t_rational_1_by_1",
13986 "typeString": "int_const 1"
13987 },
13988 "value": "1"
13989 }
13990 ],
13991 "expression": {
13992 "argumentTypes": [
13993 {
13994 "typeIdentifier": "t_rational_1_by_1",
13995 "typeString": "int_const 1"
13996 }
13997 ],
13998 "id": 3896,
13999 "isConstant": false,
14000 "isLValue": false,
14001 "isPure": true,
14002 "lValueRequested": false,
14003 "nodeType": "NewExpression",
14004 "src": "3446:13:18",
14005 "typeDescriptions": {
14006 "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
14007 "typeString": "function (uint256) pure returns (bytes32[] memory)"
14008 },
14009 "typeName": {
14010 "baseType": {
14011 "id": 3894,
14012 "name": "bytes32",
14013 "nodeType": "ElementaryTypeName",
14014 "src": "3450:7:18",
14015 "typeDescriptions": {
14016 "typeIdentifier": "t_bytes32",
14017 "typeString": "bytes32"
14018 }
14019 },
14020 "id": 3895,
14021 "length": null,
14022 "nodeType": "ArrayTypeName",
14023 "src": "3450:9:18",
14024 "typeDescriptions": {
14025 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
14026 "typeString": "bytes32[]"
14027 }
14028 }
14029 },
14030 "id": 3898,
14031 "isConstant": false,
14032 "isLValue": false,
14033 "isPure": true,
14034 "kind": "functionCall",
14035 "lValueRequested": false,
14036 "names": [],
14037 "nodeType": "FunctionCall",
14038 "src": "3446:16:18",
14039 "typeDescriptions": {
14040 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
14041 "typeString": "bytes32[] memory"
14042 }
14043 },
14044 "nodeType": "VariableDeclarationStatement",
14045 "src": "3423:39:18"
14046 },
14047 {
14048 "expression": {
14049 "argumentTypes": null,
14050 "id": 3906,
14051 "isConstant": false,
14052 "isLValue": false,
14053 "isPure": false,
14054 "lValueRequested": false,
14055 "leftHandSide": {
14056 "argumentTypes": null,
14057 "baseExpression": {
14058 "argumentTypes": null,
14059 "id": 3900,
14060 "name": "res",
14061 "nodeType": "Identifier",
14062 "overloadedDeclarations": [],
14063 "referencedDeclaration": 3893,
14064 "src": "3472:3:18",
14065 "typeDescriptions": {
14066 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
14067 "typeString": "bytes32[] memory"
14068 }
14069 },
14070 "id": 3902,
14071 "indexExpression": {
14072 "argumentTypes": null,
14073 "hexValue": "30",
14074 "id": 3901,
14075 "isConstant": false,
14076 "isLValue": false,
14077 "isPure": true,
14078 "kind": "number",
14079 "lValueRequested": false,
14080 "nodeType": "Literal",
14081 "src": "3476:1:18",
14082 "subdenomination": null,
14083 "typeDescriptions": {
14084 "typeIdentifier": "t_rational_0_by_1",
14085 "typeString": "int_const 0"
14086 },
14087 "value": "0"
14088 },
14089 "isConstant": false,
14090 "isLValue": true,
14091 "isPure": false,
14092 "lValueRequested": true,
14093 "nodeType": "IndexAccess",
14094 "src": "3472:6:18",
14095 "typeDescriptions": {
14096 "typeIdentifier": "t_bytes32",
14097 "typeString": "bytes32"
14098 }
14099 },
14100 "nodeType": "Assignment",
14101 "operator": "=",
14102 "rightHandSide": {
14103 "argumentTypes": null,
14104 "arguments": [
14105 {
14106 "argumentTypes": null,
14107 "id": 3904,
14108 "name": "sum",
14109 "nodeType": "Identifier",
14110 "overloadedDeclarations": [],
14111 "referencedDeclaration": 3862,
14112 "src": "3489:3:18",
14113 "typeDescriptions": {
14114 "typeIdentifier": "t_uint256",
14115 "typeString": "uint256"
14116 }
14117 }
14118 ],
14119 "expression": {
14120 "argumentTypes": [
14121 {
14122 "typeIdentifier": "t_uint256",
14123 "typeString": "uint256"
14124 }
14125 ],
14126 "id": 3903,
14127 "isConstant": false,
14128 "isLValue": false,
14129 "isPure": true,
14130 "lValueRequested": false,
14131 "nodeType": "ElementaryTypeNameExpression",
14132 "src": "3481:7:18",
14133 "typeDescriptions": {
14134 "typeIdentifier": "t_type$_t_bytes32_$",
14135 "typeString": "type(bytes32)"
14136 },
14137 "typeName": "bytes32"
14138 },
14139 "id": 3905,
14140 "isConstant": false,
14141 "isLValue": false,
14142 "isPure": false,
14143 "kind": "typeConversion",
14144 "lValueRequested": false,
14145 "names": [],
14146 "nodeType": "FunctionCall",
14147 "src": "3481:12:18",
14148 "typeDescriptions": {
14149 "typeIdentifier": "t_bytes32",
14150 "typeString": "bytes32"
14151 }
14152 },
14153 "src": "3472:21:18",
14154 "typeDescriptions": {
14155 "typeIdentifier": "t_bytes32",
14156 "typeString": "bytes32"
14157 }
14158 },
14159 "id": 3907,
14160 "nodeType": "ExpressionStatement",
14161 "src": "3472:21:18"
14162 },
14163 {
14164 "expression": {
14165 "argumentTypes": null,
14166 "arguments": [
14167 {
14168 "argumentTypes": null,
14169 "id": 3913,
14170 "name": "id",
14171 "nodeType": "Identifier",
14172 "overloadedDeclarations": [],
14173 "referencedDeclaration": 3853,
14174 "src": "3554:2:18",
14175 "typeDescriptions": {
14176 "typeIdentifier": "t_uint256",
14177 "typeString": "uint256"
14178 }
14179 },
14180 {
14181 "argumentTypes": null,
14182 "id": 3914,
14183 "name": "res",
14184 "nodeType": "Identifier",
14185 "overloadedDeclarations": [],
14186 "referencedDeclaration": 3893,
14187 "src": "3558:3:18",
14188 "typeDescriptions": {
14189 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
14190 "typeString": "bytes32[] memory"
14191 }
14192 }
14193 ],
14194 "expression": {
14195 "argumentTypes": [
14196 {
14197 "typeIdentifier": "t_uint256",
14198 "typeString": "uint256"
14199 },
14200 {
14201 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
14202 "typeString": "bytes32[] memory"
14203 }
14204 ],
14205 "expression": {
14206 "argumentTypes": null,
14207 "arguments": [
14208 {
14209 "argumentTypes": null,
14210 "expression": {
14211 "argumentTypes": null,
14212 "id": 3909,
14213 "name": "msg",
14214 "nodeType": "Identifier",
14215 "overloadedDeclarations": [],
14216 "referencedDeclaration": 12092,
14217 "src": "3522:3:18",
14218 "typeDescriptions": {
14219 "typeIdentifier": "t_magic_message",
14220 "typeString": "msg"
14221 }
14222 },
14223 "id": 3910,
14224 "isConstant": false,
14225 "isLValue": false,
14226 "isPure": false,
14227 "lValueRequested": false,
14228 "memberName": "sender",
14229 "nodeType": "MemberAccess",
14230 "referencedDeclaration": null,
14231 "src": "3522:10:18",
14232 "typeDescriptions": {
14233 "typeIdentifier": "t_address",
14234 "typeString": "address"
14235 }
14236 }
14237 ],
14238 "expression": {
14239 "argumentTypes": [
14240 {
14241 "typeIdentifier": "t_address",
14242 "typeString": "address"
14243 }
14244 ],
14245 "id": 3908,
14246 "name": "DispatchInterface",
14247 "nodeType": "Identifier",
14248 "overloadedDeclarations": [],
14249 "referencedDeclaration": 10147,
14250 "src": "3504:17:18",
14251 "typeDescriptions": {
14252 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
14253 "typeString": "type(contract DispatchInterface)"
14254 }
14255 },
14256 "id": 3911,
14257 "isConstant": false,
14258 "isLValue": false,
14259 "isPure": false,
14260 "kind": "typeConversion",
14261 "lValueRequested": false,
14262 "names": [],
14263 "nodeType": "FunctionCall",
14264 "src": "3504:29:18",
14265 "typeDescriptions": {
14266 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
14267 "typeString": "contract DispatchInterface"
14268 }
14269 },
14270 "id": 3912,
14271 "isConstant": false,
14272 "isLValue": false,
14273 "isPure": false,
14274 "lValueRequested": false,
14275 "memberName": "respondBytes32Array",
14276 "nodeType": "MemberAccess",
14277 "referencedDeclaration": 10082,
14278 "src": "3504:49:18",
14279 "typeDescriptions": {
14280 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bool_$",
14281 "typeString": "function (uint256,bytes32[] memory) external returns (bool)"
14282 }
14283 },
14284 "id": 3915,
14285 "isConstant": false,
14286 "isLValue": false,
14287 "isPure": false,
14288 "kind": "functionCall",
14289 "lValueRequested": false,
14290 "names": [],
14291 "nodeType": "FunctionCall",
14292 "src": "3504:58:18",
14293 "typeDescriptions": {
14294 "typeIdentifier": "t_bool",
14295 "typeString": "bool"
14296 }
14297 },
14298 "id": 3916,
14299 "nodeType": "ExpressionStatement",
14300 "src": "3504:58:18"
14301 }
14302 ]
14303 },
14304 "documentation": null,
14305 "id": 3918,
14306 "implemented": true,
14307 "isConstructor": false,
14308 "isDeclaredConst": false,
14309 "modifiers": [],
14310 "name": "endpoint3",
14311 "nodeType": "FunctionDefinition",
14312 "parameters": {
14313 "id": 3859,
14314 "nodeType": "ParameterList",
14315 "parameters": [
14316 {
14317 "constant": false,
14318 "id": 3853,
14319 "name": "id",
14320 "nodeType": "VariableDeclaration",
14321 "scope": 3918,
14322 "src": "3179:10:18",
14323 "stateVariable": false,
14324 "storageLocation": "default",
14325 "typeDescriptions": {
14326 "typeIdentifier": "t_uint256",
14327 "typeString": "uint256"
14328 },
14329 "typeName": {
14330 "id": 3852,
14331 "name": "uint256",
14332 "nodeType": "ElementaryTypeName",
14333 "src": "3179:7:18",
14334 "typeDescriptions": {
14335 "typeIdentifier": "t_uint256",
14336 "typeString": "uint256"
14337 }
14338 },
14339 "value": null,
14340 "visibility": "internal"
14341 },
14342 {
14343 "constant": false,
14344 "id": 3855,
14345 "name": "",
14346 "nodeType": "VariableDeclaration",
14347 "scope": 3918,
14348 "src": "3191:6:18",
14349 "stateVariable": false,
14350 "storageLocation": "default",
14351 "typeDescriptions": {
14352 "typeIdentifier": "t_string_memory_ptr",
14353 "typeString": "string"
14354 },
14355 "typeName": {
14356 "id": 3854,
14357 "name": "string",
14358 "nodeType": "ElementaryTypeName",
14359 "src": "3191:6:18",
14360 "typeDescriptions": {
14361 "typeIdentifier": "t_string_storage_ptr",
14362 "typeString": "string"
14363 }
14364 },
14365 "value": null,
14366 "visibility": "internal"
14367 },
14368 {
14369 "constant": false,
14370 "id": 3858,
14371 "name": "endpointParams",
14372 "nodeType": "VariableDeclaration",
14373 "scope": 3918,
14374 "src": "3215:24:18",
14375 "stateVariable": false,
14376 "storageLocation": "default",
14377 "typeDescriptions": {
14378 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
14379 "typeString": "bytes32[]"
14380 },
14381 "typeName": {
14382 "baseType": {
14383 "id": 3856,
14384 "name": "bytes32",
14385 "nodeType": "ElementaryTypeName",
14386 "src": "3215:7:18",
14387 "typeDescriptions": {
14388 "typeIdentifier": "t_bytes32",
14389 "typeString": "bytes32"
14390 }
14391 },
14392 "id": 3857,
14393 "length": null,
14394 "nodeType": "ArrayTypeName",
14395 "src": "3215:9:18",
14396 "typeDescriptions": {
14397 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
14398 "typeString": "bytes32[]"
14399 }
14400 },
14401 "value": null,
14402 "visibility": "internal"
14403 }
14404 ],
14405 "src": "3178:62:18"
14406 },
14407 "payable": false,
14408 "returnParameters": {
14409 "id": 3860,
14410 "nodeType": "ParameterList",
14411 "parameters": [],
14412 "src": "3249:0:18"
14413 },
14414 "scope": 4057,
14415 "src": "3160:409:18",
14416 "stateMutability": "nonpayable",
14417 "superFunction": null,
14418 "visibility": "internal"
14419 },
14420 {
14421 "body": {
14422 "id": 3938,
14423 "nodeType": "Block",
14424 "src": "3725:77:18",
14425 "statements": [
14426 {
14427 "expression": {
14428 "argumentTypes": null,
14429 "arguments": [
14430 {
14431 "argumentTypes": null,
14432 "id": 3933,
14433 "name": "id",
14434 "nodeType": "Identifier",
14435 "overloadedDeclarations": [],
14436 "referencedDeclaration": 3920,
14437 "src": "3774:2:18",
14438 "typeDescriptions": {
14439 "typeIdentifier": "t_uint256",
14440 "typeString": "uint256"
14441 }
14442 },
14443 {
14444 "argumentTypes": null,
14445 "hexValue": "48656c6c6f",
14446 "id": 3934,
14447 "isConstant": false,
14448 "isLValue": false,
14449 "isPure": true,
14450 "kind": "string",
14451 "lValueRequested": false,
14452 "nodeType": "Literal",
14453 "src": "3778:7:18",
14454 "subdenomination": null,
14455 "typeDescriptions": {
14456 "typeIdentifier": "t_stringliteral_06b3dfaec148fb1bb2b066f10ec285e7c9bf402ab32aa78a5d38e34566810cd2",
14457 "typeString": "literal_string \"Hello\""
14458 },
14459 "value": "Hello"
14460 },
14461 {
14462 "argumentTypes": null,
14463 "hexValue": "576f726c64",
14464 "id": 3935,
14465 "isConstant": false,
14466 "isLValue": false,
14467 "isPure": true,
14468 "kind": "string",
14469 "lValueRequested": false,
14470 "nodeType": "Literal",
14471 "src": "3787:7:18",
14472 "subdenomination": null,
14473 "typeDescriptions": {
14474 "typeIdentifier": "t_stringliteral_f2208c967df089f60420785795c0a9ba8896b0f6f1867fa7f1f12ad6f79c1a18",
14475 "typeString": "literal_string \"World\""
14476 },
14477 "value": "World"
14478 }
14479 ],
14480 "expression": {
14481 "argumentTypes": [
14482 {
14483 "typeIdentifier": "t_uint256",
14484 "typeString": "uint256"
14485 },
14486 {
14487 "typeIdentifier": "t_stringliteral_06b3dfaec148fb1bb2b066f10ec285e7c9bf402ab32aa78a5d38e34566810cd2",
14488 "typeString": "literal_string \"Hello\""
14489 },
14490 {
14491 "typeIdentifier": "t_stringliteral_f2208c967df089f60420785795c0a9ba8896b0f6f1867fa7f1f12ad6f79c1a18",
14492 "typeString": "literal_string \"World\""
14493 }
14494 ],
14495 "expression": {
14496 "argumentTypes": null,
14497 "arguments": [
14498 {
14499 "argumentTypes": null,
14500 "expression": {
14501 "argumentTypes": null,
14502 "id": 3929,
14503 "name": "msg",
14504 "nodeType": "Identifier",
14505 "overloadedDeclarations": [],
14506 "referencedDeclaration": 12092,
14507 "src": "3753:3:18",
14508 "typeDescriptions": {
14509 "typeIdentifier": "t_magic_message",
14510 "typeString": "msg"
14511 }
14512 },
14513 "id": 3930,
14514 "isConstant": false,
14515 "isLValue": false,
14516 "isPure": false,
14517 "lValueRequested": false,
14518 "memberName": "sender",
14519 "nodeType": "MemberAccess",
14520 "referencedDeclaration": null,
14521 "src": "3753:10:18",
14522 "typeDescriptions": {
14523 "typeIdentifier": "t_address",
14524 "typeString": "address"
14525 }
14526 }
14527 ],
14528 "expression": {
14529 "argumentTypes": [
14530 {
14531 "typeIdentifier": "t_address",
14532 "typeString": "address"
14533 }
14534 ],
14535 "id": 3928,
14536 "name": "DispatchInterface",
14537 "nodeType": "Identifier",
14538 "overloadedDeclarations": [],
14539 "referencedDeclaration": 10147,
14540 "src": "3735:17:18",
14541 "typeDescriptions": {
14542 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
14543 "typeString": "type(contract DispatchInterface)"
14544 }
14545 },
14546 "id": 3931,
14547 "isConstant": false,
14548 "isLValue": false,
14549 "isPure": false,
14550 "kind": "typeConversion",
14551 "lValueRequested": false,
14552 "names": [],
14553 "nodeType": "FunctionCall",
14554 "src": "3735:29:18",
14555 "typeDescriptions": {
14556 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
14557 "typeString": "contract DispatchInterface"
14558 }
14559 },
14560 "id": 3932,
14561 "isConstant": false,
14562 "isLValue": false,
14563 "isPure": false,
14564 "lValueRequested": false,
14565 "memberName": "respond2",
14566 "nodeType": "MemberAccess",
14567 "referencedDeclaration": 10044,
14568 "src": "3735:38:18",
14569 "typeDescriptions": {
14570 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$",
14571 "typeString": "function (uint256,string memory,string memory) external returns (bool)"
14572 }
14573 },
14574 "id": 3936,
14575 "isConstant": false,
14576 "isLValue": false,
14577 "isPure": false,
14578 "kind": "functionCall",
14579 "lValueRequested": false,
14580 "names": [],
14581 "nodeType": "FunctionCall",
14582 "src": "3735:60:18",
14583 "typeDescriptions": {
14584 "typeIdentifier": "t_bool",
14585 "typeString": "bool"
14586 }
14587 },
14588 "id": 3937,
14589 "nodeType": "ExpressionStatement",
14590 "src": "3735:60:18"
14591 }
14592 ]
14593 },
14594 "documentation": null,
14595 "id": 3939,
14596 "implemented": true,
14597 "isConstructor": false,
14598 "isDeclaredConst": false,
14599 "modifiers": [],
14600 "name": "endpoint4",
14601 "nodeType": "FunctionDefinition",
14602 "parameters": {
14603 "id": 3926,
14604 "nodeType": "ParameterList",
14605 "parameters": [
14606 {
14607 "constant": false,
14608 "id": 3920,
14609 "name": "id",
14610 "nodeType": "VariableDeclaration",
14611 "scope": 3939,
14612 "src": "3649:10:18",
14613 "stateVariable": false,
14614 "storageLocation": "default",
14615 "typeDescriptions": {
14616 "typeIdentifier": "t_uint256",
14617 "typeString": "uint256"
14618 },
14619 "typeName": {
14620 "id": 3919,
14621 "name": "uint256",
14622 "nodeType": "ElementaryTypeName",
14623 "src": "3649:7:18",
14624 "typeDescriptions": {
14625 "typeIdentifier": "t_uint256",
14626 "typeString": "uint256"
14627 }
14628 },
14629 "value": null,
14630 "visibility": "internal"
14631 },
14632 {
14633 "constant": false,
14634 "id": 3922,
14635 "name": "",
14636 "nodeType": "VariableDeclaration",
14637 "scope": 3939,
14638 "src": "3661:6:18",
14639 "stateVariable": false,
14640 "storageLocation": "default",
14641 "typeDescriptions": {
14642 "typeIdentifier": "t_string_memory_ptr",
14643 "typeString": "string"
14644 },
14645 "typeName": {
14646 "id": 3921,
14647 "name": "string",
14648 "nodeType": "ElementaryTypeName",
14649 "src": "3661:6:18",
14650 "typeDescriptions": {
14651 "typeIdentifier": "t_string_storage_ptr",
14652 "typeString": "string"
14653 }
14654 },
14655 "value": null,
14656 "visibility": "internal"
14657 },
14658 {
14659 "constant": false,
14660 "id": 3925,
14661 "name": "",
14662 "nodeType": "VariableDeclaration",
14663 "scope": 3939,
14664 "src": "3685:9:18",
14665 "stateVariable": false,
14666 "storageLocation": "default",
14667 "typeDescriptions": {
14668 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
14669 "typeString": "bytes32[]"
14670 },
14671 "typeName": {
14672 "baseType": {
14673 "id": 3923,
14674 "name": "bytes32",
14675 "nodeType": "ElementaryTypeName",
14676 "src": "3685:7:18",
14677 "typeDescriptions": {
14678 "typeIdentifier": "t_bytes32",
14679 "typeString": "bytes32"
14680 }
14681 },
14682 "id": 3924,
14683 "length": null,
14684 "nodeType": "ArrayTypeName",
14685 "src": "3685:9:18",
14686 "typeDescriptions": {
14687 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
14688 "typeString": "bytes32[]"
14689 }
14690 },
14691 "value": null,
14692 "visibility": "internal"
14693 }
14694 ],
14695 "src": "3648:68:18"
14696 },
14697 "payable": false,
14698 "returnParameters": {
14699 "id": 3927,
14700 "nodeType": "ParameterList",
14701 "parameters": [],
14702 "src": "3725:0:18"
14703 },
14704 "scope": 4057,
14705 "src": "3630:172:18",
14706 "stateMutability": "nonpayable",
14707 "superFunction": null,
14708 "visibility": "internal"
14709 },
14710 {
14711 "body": {
14712 "id": 3996,
14713 "nodeType": "Block",
14714 "src": "3875:333:18",
14715 "statements": [
14716 {
14717 "assignments": [
14718 3947
14719 ],
14720 "declarations": [
14721 {
14722 "constant": false,
14723 "id": 3947,
14724 "name": "_baseBytes",
14725 "nodeType": "VariableDeclaration",
14726 "scope": 3997,
14727 "src": "3885:23:18",
14728 "stateVariable": false,
14729 "storageLocation": "memory",
14730 "typeDescriptions": {
14731 "typeIdentifier": "t_bytes_memory_ptr",
14732 "typeString": "bytes"
14733 },
14734 "typeName": {
14735 "id": 3946,
14736 "name": "bytes",
14737 "nodeType": "ElementaryTypeName",
14738 "src": "3885:5:18",
14739 "typeDescriptions": {
14740 "typeIdentifier": "t_bytes_storage_ptr",
14741 "typeString": "bytes"
14742 }
14743 },
14744 "value": null,
14745 "visibility": "internal"
14746 }
14747 ],
14748 "id": 3951,
14749 "initialValue": {
14750 "argumentTypes": null,
14751 "arguments": [
14752 {
14753 "argumentTypes": null,
14754 "id": 3949,
14755 "name": "_base",
14756 "nodeType": "Identifier",
14757 "overloadedDeclarations": [],
14758 "referencedDeclaration": 3941,
14759 "src": "3917:5:18",
14760 "typeDescriptions": {
14761 "typeIdentifier": "t_string_memory_ptr",
14762 "typeString": "string memory"
14763 }
14764 }
14765 ],
14766 "expression": {
14767 "argumentTypes": [
14768 {
14769 "typeIdentifier": "t_string_memory_ptr",
14770 "typeString": "string memory"
14771 }
14772 ],
14773 "id": 3948,
14774 "isConstant": false,
14775 "isLValue": false,
14776 "isPure": true,
14777 "lValueRequested": false,
14778 "nodeType": "ElementaryTypeNameExpression",
14779 "src": "3911:5:18",
14780 "typeDescriptions": {
14781 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
14782 "typeString": "type(bytes storage pointer)"
14783 },
14784 "typeName": "bytes"
14785 },
14786 "id": 3950,
14787 "isConstant": false,
14788 "isLValue": false,
14789 "isPure": false,
14790 "kind": "typeConversion",
14791 "lValueRequested": false,
14792 "names": [],
14793 "nodeType": "FunctionCall",
14794 "src": "3911:12:18",
14795 "typeDescriptions": {
14796 "typeIdentifier": "t_bytes_memory",
14797 "typeString": "bytes memory"
14798 }
14799 },
14800 "nodeType": "VariableDeclarationStatement",
14801 "src": "3885:38:18"
14802 },
14803 {
14804 "assignments": [
14805 3953
14806 ],
14807 "declarations": [
14808 {
14809 "constant": false,
14810 "id": 3953,
14811 "name": "_tempValue",
14812 "nodeType": "VariableDeclaration",
14813 "scope": 3997,
14814 "src": "3933:24:18",
14815 "stateVariable": false,
14816 "storageLocation": "memory",
14817 "typeDescriptions": {
14818 "typeIdentifier": "t_string_memory_ptr",
14819 "typeString": "string"
14820 },
14821 "typeName": {
14822 "id": 3952,
14823 "name": "string",
14824 "nodeType": "ElementaryTypeName",
14825 "src": "3933:6:18",
14826 "typeDescriptions": {
14827 "typeIdentifier": "t_string_storage_ptr",
14828 "typeString": "string"
14829 }
14830 },
14831 "value": null,
14832 "visibility": "internal"
14833 }
14834 ],
14835 "id": 3959,
14836 "initialValue": {
14837 "argumentTypes": null,
14838 "arguments": [
14839 {
14840 "argumentTypes": null,
14841 "expression": {
14842 "argumentTypes": null,
14843 "id": 3956,
14844 "name": "_baseBytes",
14845 "nodeType": "Identifier",
14846 "overloadedDeclarations": [],
14847 "referencedDeclaration": 3947,
14848 "src": "3971:10:18",
14849 "typeDescriptions": {
14850 "typeIdentifier": "t_bytes_memory_ptr",
14851 "typeString": "bytes memory"
14852 }
14853 },
14854 "id": 3957,
14855 "isConstant": false,
14856 "isLValue": false,
14857 "isPure": false,
14858 "lValueRequested": false,
14859 "memberName": "length",
14860 "nodeType": "MemberAccess",
14861 "referencedDeclaration": null,
14862 "src": "3971:17:18",
14863 "typeDescriptions": {
14864 "typeIdentifier": "t_uint256",
14865 "typeString": "uint256"
14866 }
14867 }
14868 ],
14869 "expression": {
14870 "argumentTypes": [
14871 {
14872 "typeIdentifier": "t_uint256",
14873 "typeString": "uint256"
14874 }
14875 ],
14876 "id": 3955,
14877 "isConstant": false,
14878 "isLValue": false,
14879 "isPure": true,
14880 "lValueRequested": false,
14881 "nodeType": "NewExpression",
14882 "src": "3960:10:18",
14883 "typeDescriptions": {
14884 "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_$",
14885 "typeString": "function (uint256) pure returns (string memory)"
14886 },
14887 "typeName": {
14888 "id": 3954,
14889 "name": "string",
14890 "nodeType": "ElementaryTypeName",
14891 "src": "3964:6:18",
14892 "typeDescriptions": {
14893 "typeIdentifier": "t_string_storage_ptr",
14894 "typeString": "string"
14895 }
14896 }
14897 },
14898 "id": 3958,
14899 "isConstant": false,
14900 "isLValue": false,
14901 "isPure": false,
14902 "kind": "functionCall",
14903 "lValueRequested": false,
14904 "names": [],
14905 "nodeType": "FunctionCall",
14906 "src": "3960:29:18",
14907 "typeDescriptions": {
14908 "typeIdentifier": "t_string_memory",
14909 "typeString": "string memory"
14910 }
14911 },
14912 "nodeType": "VariableDeclarationStatement",
14913 "src": "3933:56:18"
14914 },
14915 {
14916 "assignments": [
14917 3961
14918 ],
14919 "declarations": [
14920 {
14921 "constant": false,
14922 "id": 3961,
14923 "name": "_newValue",
14924 "nodeType": "VariableDeclaration",
14925 "scope": 3997,
14926 "src": "3999:22:18",
14927 "stateVariable": false,
14928 "storageLocation": "memory",
14929 "typeDescriptions": {
14930 "typeIdentifier": "t_bytes_memory_ptr",
14931 "typeString": "bytes"
14932 },
14933 "typeName": {
14934 "id": 3960,
14935 "name": "bytes",
14936 "nodeType": "ElementaryTypeName",
14937 "src": "3999:5:18",
14938 "typeDescriptions": {
14939 "typeIdentifier": "t_bytes_storage_ptr",
14940 "typeString": "bytes"
14941 }
14942 },
14943 "value": null,
14944 "visibility": "internal"
14945 }
14946 ],
14947 "id": 3965,
14948 "initialValue": {
14949 "argumentTypes": null,
14950 "arguments": [
14951 {
14952 "argumentTypes": null,
14953 "id": 3963,
14954 "name": "_tempValue",
14955 "nodeType": "Identifier",
14956 "overloadedDeclarations": [],
14957 "referencedDeclaration": 3953,
14958 "src": "4030:10:18",
14959 "typeDescriptions": {
14960 "typeIdentifier": "t_string_memory_ptr",
14961 "typeString": "string memory"
14962 }
14963 }
14964 ],
14965 "expression": {
14966 "argumentTypes": [
14967 {
14968 "typeIdentifier": "t_string_memory_ptr",
14969 "typeString": "string memory"
14970 }
14971 ],
14972 "id": 3962,
14973 "isConstant": false,
14974 "isLValue": false,
14975 "isPure": true,
14976 "lValueRequested": false,
14977 "nodeType": "ElementaryTypeNameExpression",
14978 "src": "4024:5:18",
14979 "typeDescriptions": {
14980 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
14981 "typeString": "type(bytes storage pointer)"
14982 },
14983 "typeName": "bytes"
14984 },
14985 "id": 3964,
14986 "isConstant": false,
14987 "isLValue": false,
14988 "isPure": false,
14989 "kind": "typeConversion",
14990 "lValueRequested": false,
14991 "names": [],
14992 "nodeType": "FunctionCall",
14993 "src": "4024:17:18",
14994 "typeDescriptions": {
14995 "typeIdentifier": "t_bytes_memory",
14996 "typeString": "bytes memory"
14997 }
14998 },
14999 "nodeType": "VariableDeclarationStatement",
15000 "src": "3999:42:18"
15001 },
15002 {
15003 "body": {
15004 "id": 3990,
15005 "nodeType": "Block",
15006 "src": "4089:78:18",
15007 "statements": [
15008 {
15009 "expression": {
15010 "argumentTypes": null,
15011 "id": 3988,
15012 "isConstant": false,
15013 "isLValue": false,
15014 "isPure": false,
15015 "lValueRequested": false,
15016 "leftHandSide": {
15017 "argumentTypes": null,
15018 "baseExpression": {
15019 "argumentTypes": null,
15020 "id": 3977,
15021 "name": "_newValue",
15022 "nodeType": "Identifier",
15023 "overloadedDeclarations": [],
15024 "referencedDeclaration": 3961,
15025 "src": "4103:9:18",
15026 "typeDescriptions": {
15027 "typeIdentifier": "t_bytes_memory_ptr",
15028 "typeString": "bytes memory"
15029 }
15030 },
15031 "id": 3984,
15032 "indexExpression": {
15033 "argumentTypes": null,
15034 "commonType": {
15035 "typeIdentifier": "t_uint256",
15036 "typeString": "uint256"
15037 },
15038 "id": 3983,
15039 "isConstant": false,
15040 "isLValue": false,
15041 "isPure": false,
15042 "lValueRequested": false,
15043 "leftExpression": {
15044 "argumentTypes": null,
15045 "commonType": {
15046 "typeIdentifier": "t_uint256",
15047 "typeString": "uint256"
15048 },
15049 "id": 3981,
15050 "isConstant": false,
15051 "isLValue": false,
15052 "isPure": false,
15053 "lValueRequested": false,
15054 "leftExpression": {
15055 "argumentTypes": null,
15056 "expression": {
15057 "argumentTypes": null,
15058 "id": 3978,
15059 "name": "_baseBytes",
15060 "nodeType": "Identifier",
15061 "overloadedDeclarations": [],
15062 "referencedDeclaration": 3947,
15063 "src": "4114:10:18",
15064 "typeDescriptions": {
15065 "typeIdentifier": "t_bytes_memory_ptr",
15066 "typeString": "bytes memory"
15067 }
15068 },
15069 "id": 3979,
15070 "isConstant": false,
15071 "isLValue": false,
15072 "isPure": false,
15073 "lValueRequested": false,
15074 "memberName": "length",
15075 "nodeType": "MemberAccess",
15076 "referencedDeclaration": null,
15077 "src": "4114:17:18",
15078 "typeDescriptions": {
15079 "typeIdentifier": "t_uint256",
15080 "typeString": "uint256"
15081 }
15082 },
15083 "nodeType": "BinaryOperation",
15084 "operator": "-",
15085 "rightExpression": {
15086 "argumentTypes": null,
15087 "id": 3980,
15088 "name": "i",
15089 "nodeType": "Identifier",
15090 "overloadedDeclarations": [],
15091 "referencedDeclaration": 3967,
15092 "src": "4134:1:18",
15093 "typeDescriptions": {
15094 "typeIdentifier": "t_uint256",
15095 "typeString": "uint256"
15096 }
15097 },
15098 "src": "4114:21:18",
15099 "typeDescriptions": {
15100 "typeIdentifier": "t_uint256",
15101 "typeString": "uint256"
15102 }
15103 },
15104 "nodeType": "BinaryOperation",
15105 "operator": "-",
15106 "rightExpression": {
15107 "argumentTypes": null,
15108 "hexValue": "31",
15109 "id": 3982,
15110 "isConstant": false,
15111 "isLValue": false,
15112 "isPure": true,
15113 "kind": "number",
15114 "lValueRequested": false,
15115 "nodeType": "Literal",
15116 "src": "4138:1:18",
15117 "subdenomination": null,
15118 "typeDescriptions": {
15119 "typeIdentifier": "t_rational_1_by_1",
15120 "typeString": "int_const 1"
15121 },
15122 "value": "1"
15123 },
15124 "src": "4114:25:18",
15125 "typeDescriptions": {
15126 "typeIdentifier": "t_uint256",
15127 "typeString": "uint256"
15128 }
15129 },
15130 "isConstant": false,
15131 "isLValue": true,
15132 "isPure": false,
15133 "lValueRequested": true,
15134 "nodeType": "IndexAccess",
15135 "src": "4103:37:18",
15136 "typeDescriptions": {
15137 "typeIdentifier": "t_bytes1",
15138 "typeString": "bytes1"
15139 }
15140 },
15141 "nodeType": "Assignment",
15142 "operator": "=",
15143 "rightHandSide": {
15144 "argumentTypes": null,
15145 "baseExpression": {
15146 "argumentTypes": null,
15147 "id": 3985,
15148 "name": "_baseBytes",
15149 "nodeType": "Identifier",
15150 "overloadedDeclarations": [],
15151 "referencedDeclaration": 3947,
15152 "src": "4143:10:18",
15153 "typeDescriptions": {
15154 "typeIdentifier": "t_bytes_memory_ptr",
15155 "typeString": "bytes memory"
15156 }
15157 },
15158 "id": 3987,
15159 "indexExpression": {
15160 "argumentTypes": null,
15161 "id": 3986,
15162 "name": "i",
15163 "nodeType": "Identifier",
15164 "overloadedDeclarations": [],
15165 "referencedDeclaration": 3967,
15166 "src": "4154:1:18",
15167 "typeDescriptions": {
15168 "typeIdentifier": "t_uint256",
15169 "typeString": "uint256"
15170 }
15171 },
15172 "isConstant": false,
15173 "isLValue": true,
15174 "isPure": false,
15175 "lValueRequested": false,
15176 "nodeType": "IndexAccess",
15177 "src": "4143:13:18",
15178 "typeDescriptions": {
15179 "typeIdentifier": "t_bytes1",
15180 "typeString": "bytes1"
15181 }
15182 },
15183 "src": "4103:53:18",
15184 "typeDescriptions": {
15185 "typeIdentifier": "t_bytes1",
15186 "typeString": "bytes1"
15187 }
15188 },
15189 "id": 3989,
15190 "nodeType": "ExpressionStatement",
15191 "src": "4103:53:18"
15192 }
15193 ]
15194 },
15195 "condition": {
15196 "argumentTypes": null,
15197 "commonType": {
15198 "typeIdentifier": "t_uint256",
15199 "typeString": "uint256"
15200 },
15201 "id": 3973,
15202 "isConstant": false,
15203 "isLValue": false,
15204 "isPure": false,
15205 "lValueRequested": false,
15206 "leftExpression": {
15207 "argumentTypes": null,
15208 "id": 3970,
15209 "name": "i",
15210 "nodeType": "Identifier",
15211 "overloadedDeclarations": [],
15212 "referencedDeclaration": 3967,
15213 "src": "4065:1:18",
15214 "typeDescriptions": {
15215 "typeIdentifier": "t_uint256",
15216 "typeString": "uint256"
15217 }
15218 },
15219 "nodeType": "BinaryOperation",
15220 "operator": "<",
15221 "rightExpression": {
15222 "argumentTypes": null,
15223 "expression": {
15224 "argumentTypes": null,
15225 "id": 3971,
15226 "name": "_baseBytes",
15227 "nodeType": "Identifier",
15228 "overloadedDeclarations": [],
15229 "referencedDeclaration": 3947,
15230 "src": "4067:10:18",
15231 "typeDescriptions": {
15232 "typeIdentifier": "t_bytes_memory_ptr",
15233 "typeString": "bytes memory"
15234 }
15235 },
15236 "id": 3972,
15237 "isConstant": false,
15238 "isLValue": false,
15239 "isPure": false,
15240 "lValueRequested": false,
15241 "memberName": "length",
15242 "nodeType": "MemberAccess",
15243 "referencedDeclaration": null,
15244 "src": "4067:17:18",
15245 "typeDescriptions": {
15246 "typeIdentifier": "t_uint256",
15247 "typeString": "uint256"
15248 }
15249 },
15250 "src": "4065:19:18",
15251 "typeDescriptions": {
15252 "typeIdentifier": "t_bool",
15253 "typeString": "bool"
15254 }
15255 },
15256 "id": 3991,
15257 "initializationExpression": {
15258 "assignments": [
15259 3967
15260 ],
15261 "declarations": [
15262 {
15263 "constant": false,
15264 "id": 3967,
15265 "name": "i",
15266 "nodeType": "VariableDeclaration",
15267 "scope": 3997,
15268 "src": "4056:6:18",
15269 "stateVariable": false,
15270 "storageLocation": "default",
15271 "typeDescriptions": {
15272 "typeIdentifier": "t_uint256",
15273 "typeString": "uint256"
15274 },
15275 "typeName": {
15276 "id": 3966,
15277 "name": "uint",
15278 "nodeType": "ElementaryTypeName",
15279 "src": "4056:4:18",
15280 "typeDescriptions": {
15281 "typeIdentifier": "t_uint256",
15282 "typeString": "uint256"
15283 }
15284 },
15285 "value": null,
15286 "visibility": "internal"
15287 }
15288 ],
15289 "id": 3969,
15290 "initialValue": {
15291 "argumentTypes": null,
15292 "hexValue": "30",
15293 "id": 3968,
15294 "isConstant": false,
15295 "isLValue": false,
15296 "isPure": true,
15297 "kind": "number",
15298 "lValueRequested": false,
15299 "nodeType": "Literal",
15300 "src": "4063:1:18",
15301 "subdenomination": null,
15302 "typeDescriptions": {
15303 "typeIdentifier": "t_rational_0_by_1",
15304 "typeString": "int_const 0"
15305 },
15306 "value": "0"
15307 },
15308 "nodeType": "VariableDeclarationStatement",
15309 "src": "4056:8:18"
15310 },
15311 "loopExpression": {
15312 "expression": {
15313 "argumentTypes": null,
15314 "id": 3975,
15315 "isConstant": false,
15316 "isLValue": false,
15317 "isPure": false,
15318 "lValueRequested": false,
15319 "nodeType": "UnaryOperation",
15320 "operator": "++",
15321 "prefix": false,
15322 "src": "4085:3:18",
15323 "subExpression": {
15324 "argumentTypes": null,
15325 "id": 3974,
15326 "name": "i",
15327 "nodeType": "Identifier",
15328 "overloadedDeclarations": [],
15329 "referencedDeclaration": 3967,
15330 "src": "4085:1:18",
15331 "typeDescriptions": {
15332 "typeIdentifier": "t_uint256",
15333 "typeString": "uint256"
15334 }
15335 },
15336 "typeDescriptions": {
15337 "typeIdentifier": "t_uint256",
15338 "typeString": "uint256"
15339 }
15340 },
15341 "id": 3976,
15342 "nodeType": "ExpressionStatement",
15343 "src": "4085:3:18"
15344 },
15345 "nodeType": "ForStatement",
15346 "src": "4052:115:18"
15347 },
15348 {
15349 "expression": {
15350 "argumentTypes": null,
15351 "arguments": [
15352 {
15353 "argumentTypes": null,
15354 "id": 3993,
15355 "name": "_newValue",
15356 "nodeType": "Identifier",
15357 "overloadedDeclarations": [],
15358 "referencedDeclaration": 3961,
15359 "src": "4191:9:18",
15360 "typeDescriptions": {
15361 "typeIdentifier": "t_bytes_memory_ptr",
15362 "typeString": "bytes memory"
15363 }
15364 }
15365 ],
15366 "expression": {
15367 "argumentTypes": [
15368 {
15369 "typeIdentifier": "t_bytes_memory_ptr",
15370 "typeString": "bytes memory"
15371 }
15372 ],
15373 "id": 3992,
15374 "isConstant": false,
15375 "isLValue": false,
15376 "isPure": true,
15377 "lValueRequested": false,
15378 "nodeType": "ElementaryTypeNameExpression",
15379 "src": "4184:6:18",
15380 "typeDescriptions": {
15381 "typeIdentifier": "t_type$_t_string_storage_ptr_$",
15382 "typeString": "type(string storage pointer)"
15383 },
15384 "typeName": "string"
15385 },
15386 "id": 3994,
15387 "isConstant": false,
15388 "isLValue": false,
15389 "isPure": false,
15390 "kind": "typeConversion",
15391 "lValueRequested": false,
15392 "names": [],
15393 "nodeType": "FunctionCall",
15394 "src": "4184:17:18",
15395 "typeDescriptions": {
15396 "typeIdentifier": "t_string_memory",
15397 "typeString": "string memory"
15398 }
15399 },
15400 "functionReturnParameters": 3945,
15401 "id": 3995,
15402 "nodeType": "Return",
15403 "src": "4177:24:18"
15404 }
15405 ]
15406 },
15407 "documentation": null,
15408 "id": 3997,
15409 "implemented": true,
15410 "isConstructor": false,
15411 "isDeclaredConst": true,
15412 "modifiers": [],
15413 "name": "reverseString",
15414 "nodeType": "FunctionDefinition",
15415 "parameters": {
15416 "id": 3942,
15417 "nodeType": "ParameterList",
15418 "parameters": [
15419 {
15420 "constant": false,
15421 "id": 3941,
15422 "name": "_base",
15423 "nodeType": "VariableDeclaration",
15424 "scope": 3997,
15425 "src": "3831:12:18",
15426 "stateVariable": false,
15427 "storageLocation": "default",
15428 "typeDescriptions": {
15429 "typeIdentifier": "t_string_memory_ptr",
15430 "typeString": "string"
15431 },
15432 "typeName": {
15433 "id": 3940,
15434 "name": "string",
15435 "nodeType": "ElementaryTypeName",
15436 "src": "3831:6:18",
15437 "typeDescriptions": {
15438 "typeIdentifier": "t_string_storage_ptr",
15439 "typeString": "string"
15440 }
15441 },
15442 "value": null,
15443 "visibility": "internal"
15444 }
15445 ],
15446 "src": "3830:14:18"
15447 },
15448 "payable": false,
15449 "returnParameters": {
15450 "id": 3945,
15451 "nodeType": "ParameterList",
15452 "parameters": [
15453 {
15454 "constant": false,
15455 "id": 3944,
15456 "name": "",
15457 "nodeType": "VariableDeclaration",
15458 "scope": 3997,
15459 "src": "3868:6:18",
15460 "stateVariable": false,
15461 "storageLocation": "default",
15462 "typeDescriptions": {
15463 "typeIdentifier": "t_string_memory_ptr",
15464 "typeString": "string"
15465 },
15466 "typeName": {
15467 "id": 3943,
15468 "name": "string",
15469 "nodeType": "ElementaryTypeName",
15470 "src": "3868:6:18",
15471 "typeDescriptions": {
15472 "typeIdentifier": "t_string_storage_ptr",
15473 "typeString": "string"
15474 }
15475 },
15476 "value": null,
15477 "visibility": "internal"
15478 }
15479 ],
15480 "src": "3867:8:18"
15481 },
15482 "scope": 4057,
15483 "src": "3808:400:18",
15484 "stateMutability": "pure",
15485 "superFunction": null,
15486 "visibility": "internal"
15487 },
15488 {
15489 "body": {
15490 "id": 4055,
15491 "nodeType": "Block",
15492 "src": "4286:287:18",
15493 "statements": [
15494 {
15495 "assignments": [
15496 4005
15497 ],
15498 "declarations": [
15499 {
15500 "constant": false,
15501 "id": 4005,
15502 "name": "bytesString",
15503 "nodeType": "VariableDeclaration",
15504 "scope": 4056,
15505 "src": "4296:24:18",
15506 "stateVariable": false,
15507 "storageLocation": "memory",
15508 "typeDescriptions": {
15509 "typeIdentifier": "t_bytes_memory_ptr",
15510 "typeString": "bytes"
15511 },
15512 "typeName": {
15513 "id": 4004,
15514 "name": "bytes",
15515 "nodeType": "ElementaryTypeName",
15516 "src": "4296:5:18",
15517 "typeDescriptions": {
15518 "typeIdentifier": "t_bytes_storage_ptr",
15519 "typeString": "bytes"
15520 }
15521 },
15522 "value": null,
15523 "visibility": "internal"
15524 }
15525 ],
15526 "id": 4010,
15527 "initialValue": {
15528 "argumentTypes": null,
15529 "arguments": [
15530 {
15531 "argumentTypes": null,
15532 "hexValue": "3332",
15533 "id": 4008,
15534 "isConstant": false,
15535 "isLValue": false,
15536 "isPure": true,
15537 "kind": "number",
15538 "lValueRequested": false,
15539 "nodeType": "Literal",
15540 "src": "4333:2:18",
15541 "subdenomination": null,
15542 "typeDescriptions": {
15543 "typeIdentifier": "t_rational_32_by_1",
15544 "typeString": "int_const 32"
15545 },
15546 "value": "32"
15547 }
15548 ],
15549 "expression": {
15550 "argumentTypes": [
15551 {
15552 "typeIdentifier": "t_rational_32_by_1",
15553 "typeString": "int_const 32"
15554 }
15555 ],
15556 "id": 4007,
15557 "isConstant": false,
15558 "isLValue": false,
15559 "isPure": true,
15560 "lValueRequested": false,
15561 "nodeType": "NewExpression",
15562 "src": "4323:9:18",
15563 "typeDescriptions": {
15564 "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$",
15565 "typeString": "function (uint256) pure returns (bytes memory)"
15566 },
15567 "typeName": {
15568 "id": 4006,
15569 "name": "bytes",
15570 "nodeType": "ElementaryTypeName",
15571 "src": "4327:5:18",
15572 "typeDescriptions": {
15573 "typeIdentifier": "t_bytes_storage_ptr",
15574 "typeString": "bytes"
15575 }
15576 }
15577 },
15578 "id": 4009,
15579 "isConstant": false,
15580 "isLValue": false,
15581 "isPure": true,
15582 "kind": "functionCall",
15583 "lValueRequested": false,
15584 "names": [],
15585 "nodeType": "FunctionCall",
15586 "src": "4323:13:18",
15587 "typeDescriptions": {
15588 "typeIdentifier": "t_bytes_memory",
15589 "typeString": "bytes memory"
15590 }
15591 },
15592 "nodeType": "VariableDeclarationStatement",
15593 "src": "4296:40:18"
15594 },
15595 {
15596 "body": {
15597 "id": 4049,
15598 "nodeType": "Block",
15599 "src": "4372:159:18",
15600 "statements": [
15601 {
15602 "assignments": [
15603 4022
15604 ],
15605 "declarations": [
15606 {
15607 "constant": false,
15608 "id": 4022,
15609 "name": "char",
15610 "nodeType": "VariableDeclaration",
15611 "scope": 4056,
15612 "src": "4386:9:18",
15613 "stateVariable": false,
15614 "storageLocation": "default",
15615 "typeDescriptions": {
15616 "typeIdentifier": "t_bytes1",
15617 "typeString": "bytes1"
15618 },
15619 "typeName": {
15620 "id": 4021,
15621 "name": "byte",
15622 "nodeType": "ElementaryTypeName",
15623 "src": "4386:4:18",
15624 "typeDescriptions": {
15625 "typeIdentifier": "t_bytes1",
15626 "typeString": "bytes1"
15627 }
15628 },
15629 "value": null,
15630 "visibility": "internal"
15631 }
15632 ],
15633 "id": 4037,
15634 "initialValue": {
15635 "argumentTypes": null,
15636 "arguments": [
15637 {
15638 "argumentTypes": null,
15639 "arguments": [
15640 {
15641 "argumentTypes": null,
15642 "commonType": {
15643 "typeIdentifier": "t_uint256",
15644 "typeString": "uint256"
15645 },
15646 "id": 4034,
15647 "isConstant": false,
15648 "isLValue": false,
15649 "isPure": false,
15650 "lValueRequested": false,
15651 "leftExpression": {
15652 "argumentTypes": null,
15653 "arguments": [
15654 {
15655 "argumentTypes": null,
15656 "id": 4026,
15657 "name": "data",
15658 "nodeType": "Identifier",
15659 "overloadedDeclarations": [],
15660 "referencedDeclaration": 3999,
15661 "src": "4416:4:18",
15662 "typeDescriptions": {
15663 "typeIdentifier": "t_bytes32",
15664 "typeString": "bytes32"
15665 }
15666 }
15667 ],
15668 "expression": {
15669 "argumentTypes": [
15670 {
15671 "typeIdentifier": "t_bytes32",
15672 "typeString": "bytes32"
15673 }
15674 ],
15675 "id": 4025,
15676 "isConstant": false,
15677 "isLValue": false,
15678 "isPure": true,
15679 "lValueRequested": false,
15680 "nodeType": "ElementaryTypeNameExpression",
15681 "src": "4411:4:18",
15682 "typeDescriptions": {
15683 "typeIdentifier": "t_type$_t_uint256_$",
15684 "typeString": "type(uint256)"
15685 },
15686 "typeName": "uint"
15687 },
15688 "id": 4027,
15689 "isConstant": false,
15690 "isLValue": false,
15691 "isPure": false,
15692 "kind": "typeConversion",
15693 "lValueRequested": false,
15694 "names": [],
15695 "nodeType": "FunctionCall",
15696 "src": "4411:10:18",
15697 "typeDescriptions": {
15698 "typeIdentifier": "t_uint256",
15699 "typeString": "uint256"
15700 }
15701 },
15702 "nodeType": "BinaryOperation",
15703 "operator": "*",
15704 "rightExpression": {
15705 "argumentTypes": null,
15706 "commonType": {
15707 "typeIdentifier": "t_uint256",
15708 "typeString": "uint256"
15709 },
15710 "id": 4033,
15711 "isConstant": false,
15712 "isLValue": false,
15713 "isPure": false,
15714 "lValueRequested": false,
15715 "leftExpression": {
15716 "argumentTypes": null,
15717 "hexValue": "32",
15718 "id": 4028,
15719 "isConstant": false,
15720 "isLValue": false,
15721 "isPure": true,
15722 "kind": "number",
15723 "lValueRequested": false,
15724 "nodeType": "Literal",
15725 "src": "4424:1:18",
15726 "subdenomination": null,
15727 "typeDescriptions": {
15728 "typeIdentifier": "t_rational_2_by_1",
15729 "typeString": "int_const 2"
15730 },
15731 "value": "2"
15732 },
15733 "nodeType": "BinaryOperation",
15734 "operator": "**",
15735 "rightExpression": {
15736 "argumentTypes": null,
15737 "components": [
15738 {
15739 "argumentTypes": null,
15740 "commonType": {
15741 "typeIdentifier": "t_uint256",
15742 "typeString": "uint256"
15743 },
15744 "id": 4031,
15745 "isConstant": false,
15746 "isLValue": false,
15747 "isPure": false,
15748 "lValueRequested": false,
15749 "leftExpression": {
15750 "argumentTypes": null,
15751 "hexValue": "38",
15752 "id": 4029,
15753 "isConstant": false,
15754 "isLValue": false,
15755 "isPure": true,
15756 "kind": "number",
15757 "lValueRequested": false,
15758 "nodeType": "Literal",
15759 "src": "4430:1:18",
15760 "subdenomination": null,
15761 "typeDescriptions": {
15762 "typeIdentifier": "t_rational_8_by_1",
15763 "typeString": "int_const 8"
15764 },
15765 "value": "8"
15766 },
15767 "nodeType": "BinaryOperation",
15768 "operator": "*",
15769 "rightExpression": {
15770 "argumentTypes": null,
15771 "id": 4030,
15772 "name": "j",
15773 "nodeType": "Identifier",
15774 "overloadedDeclarations": [],
15775 "referencedDeclaration": 4012,
15776 "src": "4434:1:18",
15777 "typeDescriptions": {
15778 "typeIdentifier": "t_uint256",
15779 "typeString": "uint256"
15780 }
15781 },
15782 "src": "4430:5:18",
15783 "typeDescriptions": {
15784 "typeIdentifier": "t_uint256",
15785 "typeString": "uint256"
15786 }
15787 }
15788 ],
15789 "id": 4032,
15790 "isConstant": false,
15791 "isInlineArray": false,
15792 "isLValue": false,
15793 "isPure": false,
15794 "lValueRequested": false,
15795 "nodeType": "TupleExpression",
15796 "src": "4429:7:18",
15797 "typeDescriptions": {
15798 "typeIdentifier": "t_uint256",
15799 "typeString": "uint256"
15800 }
15801 },
15802 "src": "4424:12:18",
15803 "typeDescriptions": {
15804 "typeIdentifier": "t_uint256",
15805 "typeString": "uint256"
15806 }
15807 },
15808 "src": "4411:25:18",
15809 "typeDescriptions": {
15810 "typeIdentifier": "t_uint256",
15811 "typeString": "uint256"
15812 }
15813 }
15814 ],
15815 "expression": {
15816 "argumentTypes": [
15817 {
15818 "typeIdentifier": "t_uint256",
15819 "typeString": "uint256"
15820 }
15821 ],
15822 "id": 4024,
15823 "isConstant": false,
15824 "isLValue": false,
15825 "isPure": true,
15826 "lValueRequested": false,
15827 "nodeType": "ElementaryTypeNameExpression",
15828 "src": "4403:7:18",
15829 "typeDescriptions": {
15830 "typeIdentifier": "t_type$_t_bytes32_$",
15831 "typeString": "type(bytes32)"
15832 },
15833 "typeName": "bytes32"
15834 },
15835 "id": 4035,
15836 "isConstant": false,
15837 "isLValue": false,
15838 "isPure": false,
15839 "kind": "typeConversion",
15840 "lValueRequested": false,
15841 "names": [],
15842 "nodeType": "FunctionCall",
15843 "src": "4403:34:18",
15844 "typeDescriptions": {
15845 "typeIdentifier": "t_bytes32",
15846 "typeString": "bytes32"
15847 }
15848 }
15849 ],
15850 "expression": {
15851 "argumentTypes": [
15852 {
15853 "typeIdentifier": "t_bytes32",
15854 "typeString": "bytes32"
15855 }
15856 ],
15857 "id": 4023,
15858 "isConstant": false,
15859 "isLValue": false,
15860 "isPure": true,
15861 "lValueRequested": false,
15862 "nodeType": "ElementaryTypeNameExpression",
15863 "src": "4398:4:18",
15864 "typeDescriptions": {
15865 "typeIdentifier": "t_type$_t_bytes1_$",
15866 "typeString": "type(bytes1)"
15867 },
15868 "typeName": "byte"
15869 },
15870 "id": 4036,
15871 "isConstant": false,
15872 "isLValue": false,
15873 "isPure": false,
15874 "kind": "typeConversion",
15875 "lValueRequested": false,
15876 "names": [],
15877 "nodeType": "FunctionCall",
15878 "src": "4398:40:18",
15879 "typeDescriptions": {
15880 "typeIdentifier": "t_bytes1",
15881 "typeString": "bytes1"
15882 }
15883 },
15884 "nodeType": "VariableDeclarationStatement",
15885 "src": "4386:52:18"
15886 },
15887 {
15888 "condition": {
15889 "argumentTypes": null,
15890 "commonType": {
15891 "typeIdentifier": "t_bytes1",
15892 "typeString": "bytes1"
15893 },
15894 "id": 4040,
15895 "isConstant": false,
15896 "isLValue": false,
15897 "isPure": false,
15898 "lValueRequested": false,
15899 "leftExpression": {
15900 "argumentTypes": null,
15901 "id": 4038,
15902 "name": "char",
15903 "nodeType": "Identifier",
15904 "overloadedDeclarations": [],
15905 "referencedDeclaration": 4022,
15906 "src": "4456:4:18",
15907 "typeDescriptions": {
15908 "typeIdentifier": "t_bytes1",
15909 "typeString": "bytes1"
15910 }
15911 },
15912 "nodeType": "BinaryOperation",
15913 "operator": "!=",
15914 "rightExpression": {
15915 "argumentTypes": null,
15916 "hexValue": "30",
15917 "id": 4039,
15918 "isConstant": false,
15919 "isLValue": false,
15920 "isPure": true,
15921 "kind": "number",
15922 "lValueRequested": false,
15923 "nodeType": "Literal",
15924 "src": "4464:1:18",
15925 "subdenomination": null,
15926 "typeDescriptions": {
15927 "typeIdentifier": "t_rational_0_by_1",
15928 "typeString": "int_const 0"
15929 },
15930 "value": "0"
15931 },
15932 "src": "4456:9:18",
15933 "typeDescriptions": {
15934 "typeIdentifier": "t_bool",
15935 "typeString": "bool"
15936 }
15937 },
15938 "falseBody": null,
15939 "id": 4048,
15940 "nodeType": "IfStatement",
15941 "src": "4452:69:18",
15942 "trueBody": {
15943 "id": 4047,
15944 "nodeType": "Block",
15945 "src": "4467:54:18",
15946 "statements": [
15947 {
15948 "expression": {
15949 "argumentTypes": null,
15950 "id": 4045,
15951 "isConstant": false,
15952 "isLValue": false,
15953 "isPure": false,
15954 "lValueRequested": false,
15955 "leftHandSide": {
15956 "argumentTypes": null,
15957 "baseExpression": {
15958 "argumentTypes": null,
15959 "id": 4041,
15960 "name": "bytesString",
15961 "nodeType": "Identifier",
15962 "overloadedDeclarations": [],
15963 "referencedDeclaration": 4005,
15964 "src": "4485:11:18",
15965 "typeDescriptions": {
15966 "typeIdentifier": "t_bytes_memory_ptr",
15967 "typeString": "bytes memory"
15968 }
15969 },
15970 "id": 4043,
15971 "indexExpression": {
15972 "argumentTypes": null,
15973 "id": 4042,
15974 "name": "j",
15975 "nodeType": "Identifier",
15976 "overloadedDeclarations": [],
15977 "referencedDeclaration": 4012,
15978 "src": "4497:1:18",
15979 "typeDescriptions": {
15980 "typeIdentifier": "t_uint256",
15981 "typeString": "uint256"
15982 }
15983 },
15984 "isConstant": false,
15985 "isLValue": true,
15986 "isPure": false,
15987 "lValueRequested": true,
15988 "nodeType": "IndexAccess",
15989 "src": "4485:14:18",
15990 "typeDescriptions": {
15991 "typeIdentifier": "t_bytes1",
15992 "typeString": "bytes1"
15993 }
15994 },
15995 "nodeType": "Assignment",
15996 "operator": "=",
15997 "rightHandSide": {
15998 "argumentTypes": null,
15999 "id": 4044,
16000 "name": "char",
16001 "nodeType": "Identifier",
16002 "overloadedDeclarations": [],
16003 "referencedDeclaration": 4022,
16004 "src": "4502:4:18",
16005 "typeDescriptions": {
16006 "typeIdentifier": "t_bytes1",
16007 "typeString": "bytes1"
16008 }
16009 },
16010 "src": "4485:21:18",
16011 "typeDescriptions": {
16012 "typeIdentifier": "t_bytes1",
16013 "typeString": "bytes1"
16014 }
16015 },
16016 "id": 4046,
16017 "nodeType": "ExpressionStatement",
16018 "src": "4485:21:18"
16019 }
16020 ]
16021 }
16022 }
16023 ]
16024 },
16025 "condition": {
16026 "argumentTypes": null,
16027 "commonType": {
16028 "typeIdentifier": "t_uint256",
16029 "typeString": "uint256"
16030 },
16031 "id": 4017,
16032 "isConstant": false,
16033 "isLValue": false,
16034 "isPure": false,
16035 "lValueRequested": false,
16036 "leftExpression": {
16037 "argumentTypes": null,
16038 "id": 4015,
16039 "name": "j",
16040 "nodeType": "Identifier",
16041 "overloadedDeclarations": [],
16042 "referencedDeclaration": 4012,
16043 "src": "4361:1:18",
16044 "typeDescriptions": {
16045 "typeIdentifier": "t_uint256",
16046 "typeString": "uint256"
16047 }
16048 },
16049 "nodeType": "BinaryOperation",
16050 "operator": "<",
16051 "rightExpression": {
16052 "argumentTypes": null,
16053 "hexValue": "3332",
16054 "id": 4016,
16055 "isConstant": false,
16056 "isLValue": false,
16057 "isPure": true,
16058 "kind": "number",
16059 "lValueRequested": false,
16060 "nodeType": "Literal",
16061 "src": "4363:2:18",
16062 "subdenomination": null,
16063 "typeDescriptions": {
16064 "typeIdentifier": "t_rational_32_by_1",
16065 "typeString": "int_const 32"
16066 },
16067 "value": "32"
16068 },
16069 "src": "4361:4:18",
16070 "typeDescriptions": {
16071 "typeIdentifier": "t_bool",
16072 "typeString": "bool"
16073 }
16074 },
16075 "id": 4050,
16076 "initializationExpression": {
16077 "assignments": [
16078 4012
16079 ],
16080 "declarations": [
16081 {
16082 "constant": false,
16083 "id": 4012,
16084 "name": "j",
16085 "nodeType": "VariableDeclaration",
16086 "scope": 4056,
16087 "src": "4351:6:18",
16088 "stateVariable": false,
16089 "storageLocation": "default",
16090 "typeDescriptions": {
16091 "typeIdentifier": "t_uint256",
16092 "typeString": "uint256"
16093 },
16094 "typeName": {
16095 "id": 4011,
16096 "name": "uint",
16097 "nodeType": "ElementaryTypeName",
16098 "src": "4351:4:18",
16099 "typeDescriptions": {
16100 "typeIdentifier": "t_uint256",
16101 "typeString": "uint256"
16102 }
16103 },
16104 "value": null,
16105 "visibility": "internal"
16106 }
16107 ],
16108 "id": 4014,
16109 "initialValue": {
16110 "argumentTypes": null,
16111 "hexValue": "30",
16112 "id": 4013,
16113 "isConstant": false,
16114 "isLValue": false,
16115 "isPure": true,
16116 "kind": "number",
16117 "lValueRequested": false,
16118 "nodeType": "Literal",
16119 "src": "4358:1:18",
16120 "subdenomination": null,
16121 "typeDescriptions": {
16122 "typeIdentifier": "t_rational_0_by_1",
16123 "typeString": "int_const 0"
16124 },
16125 "value": "0"
16126 },
16127 "nodeType": "VariableDeclarationStatement",
16128 "src": "4351:8:18"
16129 },
16130 "loopExpression": {
16131 "expression": {
16132 "argumentTypes": null,
16133 "id": 4019,
16134 "isConstant": false,
16135 "isLValue": false,
16136 "isPure": false,
16137 "lValueRequested": false,
16138 "nodeType": "UnaryOperation",
16139 "operator": "++",
16140 "prefix": false,
16141 "src": "4367:3:18",
16142 "subExpression": {
16143 "argumentTypes": null,
16144 "id": 4018,
16145 "name": "j",
16146 "nodeType": "Identifier",
16147 "overloadedDeclarations": [],
16148 "referencedDeclaration": 4012,
16149 "src": "4367:1:18",
16150 "typeDescriptions": {
16151 "typeIdentifier": "t_uint256",
16152 "typeString": "uint256"
16153 }
16154 },
16155 "typeDescriptions": {
16156 "typeIdentifier": "t_uint256",
16157 "typeString": "uint256"
16158 }
16159 },
16160 "id": 4020,
16161 "nodeType": "ExpressionStatement",
16162 "src": "4367:3:18"
16163 },
16164 "nodeType": "ForStatement",
16165 "src": "4346:185:18"
16166 },
16167 {
16168 "expression": {
16169 "argumentTypes": null,
16170 "arguments": [
16171 {
16172 "argumentTypes": null,
16173 "id": 4052,
16174 "name": "bytesString",
16175 "nodeType": "Identifier",
16176 "overloadedDeclarations": [],
16177 "referencedDeclaration": 4005,
16178 "src": "4554:11:18",
16179 "typeDescriptions": {
16180 "typeIdentifier": "t_bytes_memory_ptr",
16181 "typeString": "bytes memory"
16182 }
16183 }
16184 ],
16185 "expression": {
16186 "argumentTypes": [
16187 {
16188 "typeIdentifier": "t_bytes_memory_ptr",
16189 "typeString": "bytes memory"
16190 }
16191 ],
16192 "id": 4051,
16193 "isConstant": false,
16194 "isLValue": false,
16195 "isPure": true,
16196 "lValueRequested": false,
16197 "nodeType": "ElementaryTypeNameExpression",
16198 "src": "4547:6:18",
16199 "typeDescriptions": {
16200 "typeIdentifier": "t_type$_t_string_storage_ptr_$",
16201 "typeString": "type(string storage pointer)"
16202 },
16203 "typeName": "string"
16204 },
16205 "id": 4053,
16206 "isConstant": false,
16207 "isLValue": false,
16208 "isPure": false,
16209 "kind": "typeConversion",
16210 "lValueRequested": false,
16211 "names": [],
16212 "nodeType": "FunctionCall",
16213 "src": "4547:19:18",
16214 "typeDescriptions": {
16215 "typeIdentifier": "t_string_memory",
16216 "typeString": "string memory"
16217 }
16218 },
16219 "functionReturnParameters": 4003,
16220 "id": 4054,
16221 "nodeType": "Return",
16222 "src": "4540:26:18"
16223 }
16224 ]
16225 },
16226 "documentation": null,
16227 "id": 4056,
16228 "implemented": true,
16229 "isConstructor": false,
16230 "isDeclaredConst": true,
16231 "modifiers": [],
16232 "name": "bytes32ToString",
16233 "nodeType": "FunctionDefinition",
16234 "parameters": {
16235 "id": 4000,
16236 "nodeType": "ParameterList",
16237 "parameters": [
16238 {
16239 "constant": false,
16240 "id": 3999,
16241 "name": "data",
16242 "nodeType": "VariableDeclaration",
16243 "scope": 4056,
16244 "src": "4241:12:18",
16245 "stateVariable": false,
16246 "storageLocation": "default",
16247 "typeDescriptions": {
16248 "typeIdentifier": "t_bytes32",
16249 "typeString": "bytes32"
16250 },
16251 "typeName": {
16252 "id": 3998,
16253 "name": "bytes32",
16254 "nodeType": "ElementaryTypeName",
16255 "src": "4241:7:18",
16256 "typeDescriptions": {
16257 "typeIdentifier": "t_bytes32",
16258 "typeString": "bytes32"
16259 }
16260 },
16261 "value": null,
16262 "visibility": "internal"
16263 }
16264 ],
16265 "src": "4240:14:18"
16266 },
16267 "payable": false,
16268 "returnParameters": {
16269 "id": 4003,
16270 "nodeType": "ParameterList",
16271 "parameters": [
16272 {
16273 "constant": false,
16274 "id": 4002,
16275 "name": "",
16276 "nodeType": "VariableDeclaration",
16277 "scope": 4056,
16278 "src": "4278:6:18",
16279 "stateVariable": false,
16280 "storageLocation": "default",
16281 "typeDescriptions": {
16282 "typeIdentifier": "t_string_memory_ptr",
16283 "typeString": "string"
16284 },
16285 "typeName": {
16286 "id": 4001,
16287 "name": "string",
16288 "nodeType": "ElementaryTypeName",
16289 "src": "4278:6:18",
16290 "typeDescriptions": {
16291 "typeIdentifier": "t_string_storage_ptr",
16292 "typeString": "string"
16293 }
16294 },
16295 "value": null,
16296 "visibility": "internal"
16297 }
16298 ],
16299 "src": "4277:8:18"
16300 },
16301 "scope": 4057,
16302 "src": "4215:358:18",
16303 "stateMutability": "pure",
16304 "superFunction": null,
16305 "visibility": "internal"
16306 }
16307 ],
16308 "scope": 4252,
16309 "src": "271:4305:18"
16310 },
16311 {
16312 "baseContracts": [
16313 {
16314 "arguments": null,
16315 "baseName": {
16316 "contractScope": null,
16317 "id": 4058,
16318 "name": "Client1",
16319 "nodeType": "UserDefinedTypeName",
16320 "referencedDeclaration": 815,
16321 "src": "4630:7:18",
16322 "typeDescriptions": {
16323 "typeIdentifier": "t_contract$_Client1_$815",
16324 "typeString": "contract Client1"
16325 }
16326 },
16327 "id": 4059,
16328 "nodeType": "InheritanceSpecifier",
16329 "src": "4630:7:18"
16330 },
16331 {
16332 "arguments": null,
16333 "baseName": {
16334 "contractScope": null,
16335 "id": 4060,
16336 "name": "Client2",
16337 "nodeType": "UserDefinedTypeName",
16338 "referencedDeclaration": 825,
16339 "src": "4639:7:18",
16340 "typeDescriptions": {
16341 "typeIdentifier": "t_contract$_Client2_$825",
16342 "typeString": "contract Client2"
16343 }
16344 },
16345 "id": 4061,
16346 "nodeType": "InheritanceSpecifier",
16347 "src": "4639:7:18"
16348 }
16349 ],
16350 "contractDependencies": [
16351 815,
16352 825
16353 ],
16354 "contractKind": "contract",
16355 "documentation": null,
16356 "fullyImplemented": true,
16357 "id": 4251,
16358 "linearizedBaseContracts": [
16359 4251,
16360 825,
16361 815
16362 ],
16363 "name": "TestClient",
16364 "nodeType": "ContractDefinition",
16365 "nodes": [
16366 {
16367 "anonymous": false,
16368 "documentation": null,
16369 "id": 4069,
16370 "name": "MadeQuery",
16371 "nodeType": "EventDefinition",
16372 "parameters": {
16373 "id": 4068,
16374 "nodeType": "ParameterList",
16375 "parameters": [
16376 {
16377 "constant": false,
16378 "id": 4063,
16379 "indexed": false,
16380 "name": "oracle",
16381 "nodeType": "VariableDeclaration",
16382 "scope": 4069,
16383 "src": "4669:14:18",
16384 "stateVariable": false,
16385 "storageLocation": "default",
16386 "typeDescriptions": {
16387 "typeIdentifier": "t_address",
16388 "typeString": "address"
16389 },
16390 "typeName": {
16391 "id": 4062,
16392 "name": "address",
16393 "nodeType": "ElementaryTypeName",
16394 "src": "4669:7:18",
16395 "typeDescriptions": {
16396 "typeIdentifier": "t_address",
16397 "typeString": "address"
16398 }
16399 },
16400 "value": null,
16401 "visibility": "internal"
16402 },
16403 {
16404 "constant": false,
16405 "id": 4065,
16406 "indexed": false,
16407 "name": "query",
16408 "nodeType": "VariableDeclaration",
16409 "scope": 4069,
16410 "src": "4685:12:18",
16411 "stateVariable": false,
16412 "storageLocation": "default",
16413 "typeDescriptions": {
16414 "typeIdentifier": "t_string_memory_ptr",
16415 "typeString": "string"
16416 },
16417 "typeName": {
16418 "id": 4064,
16419 "name": "string",
16420 "nodeType": "ElementaryTypeName",
16421 "src": "4685:6:18",
16422 "typeDescriptions": {
16423 "typeIdentifier": "t_string_storage_ptr",
16424 "typeString": "string"
16425 }
16426 },
16427 "value": null,
16428 "visibility": "internal"
16429 },
16430 {
16431 "constant": false,
16432 "id": 4067,
16433 "indexed": false,
16434 "name": "id",
16435 "nodeType": "VariableDeclaration",
16436 "scope": 4069,
16437 "src": "4699:10:18",
16438 "stateVariable": false,
16439 "storageLocation": "default",
16440 "typeDescriptions": {
16441 "typeIdentifier": "t_uint256",
16442 "typeString": "uint256"
16443 },
16444 "typeName": {
16445 "id": 4066,
16446 "name": "uint256",
16447 "nodeType": "ElementaryTypeName",
16448 "src": "4699:7:18",
16449 "typeDescriptions": {
16450 "typeIdentifier": "t_uint256",
16451 "typeString": "uint256"
16452 }
16453 },
16454 "value": null,
16455 "visibility": "internal"
16456 }
16457 ],
16458 "src": "4668:42:18"
16459 },
16460 "src": "4653:58:18"
16461 },
16462 {
16463 "anonymous": false,
16464 "documentation": null,
16465 "id": 4075,
16466 "name": "Result1",
16467 "nodeType": "EventDefinition",
16468 "parameters": {
16469 "id": 4074,
16470 "nodeType": "ParameterList",
16471 "parameters": [
16472 {
16473 "constant": false,
16474 "id": 4071,
16475 "indexed": false,
16476 "name": "id",
16477 "nodeType": "VariableDeclaration",
16478 "scope": 4075,
16479 "src": "4730:10:18",
16480 "stateVariable": false,
16481 "storageLocation": "default",
16482 "typeDescriptions": {
16483 "typeIdentifier": "t_uint256",
16484 "typeString": "uint256"
16485 },
16486 "typeName": {
16487 "id": 4070,
16488 "name": "uint256",
16489 "nodeType": "ElementaryTypeName",
16490 "src": "4730:7:18",
16491 "typeDescriptions": {
16492 "typeIdentifier": "t_uint256",
16493 "typeString": "uint256"
16494 }
16495 },
16496 "value": null,
16497 "visibility": "internal"
16498 },
16499 {
16500 "constant": false,
16501 "id": 4073,
16502 "indexed": false,
16503 "name": "response1",
16504 "nodeType": "VariableDeclaration",
16505 "scope": 4075,
16506 "src": "4742:16:18",
16507 "stateVariable": false,
16508 "storageLocation": "default",
16509 "typeDescriptions": {
16510 "typeIdentifier": "t_string_memory_ptr",
16511 "typeString": "string"
16512 },
16513 "typeName": {
16514 "id": 4072,
16515 "name": "string",
16516 "nodeType": "ElementaryTypeName",
16517 "src": "4742:6:18",
16518 "typeDescriptions": {
16519 "typeIdentifier": "t_string_storage_ptr",
16520 "typeString": "string"
16521 }
16522 },
16523 "value": null,
16524 "visibility": "internal"
16525 }
16526 ],
16527 "src": "4729:30:18"
16528 },
16529 "src": "4716:44:18"
16530 },
16531 {
16532 "anonymous": false,
16533 "documentation": null,
16534 "id": 4081,
16535 "name": "Result1",
16536 "nodeType": "EventDefinition",
16537 "parameters": {
16538 "id": 4080,
16539 "nodeType": "ParameterList",
16540 "parameters": [
16541 {
16542 "constant": false,
16543 "id": 4077,
16544 "indexed": false,
16545 "name": "id",
16546 "nodeType": "VariableDeclaration",
16547 "scope": 4081,
16548 "src": "4779:10:18",
16549 "stateVariable": false,
16550 "storageLocation": "default",
16551 "typeDescriptions": {
16552 "typeIdentifier": "t_uint256",
16553 "typeString": "uint256"
16554 },
16555 "typeName": {
16556 "id": 4076,
16557 "name": "uint256",
16558 "nodeType": "ElementaryTypeName",
16559 "src": "4779:7:18",
16560 "typeDescriptions": {
16561 "typeIdentifier": "t_uint256",
16562 "typeString": "uint256"
16563 }
16564 },
16565 "value": null,
16566 "visibility": "internal"
16567 },
16568 {
16569 "constant": false,
16570 "id": 4079,
16571 "indexed": false,
16572 "name": "response1",
16573 "nodeType": "VariableDeclaration",
16574 "scope": 4081,
16575 "src": "4791:17:18",
16576 "stateVariable": false,
16577 "storageLocation": "default",
16578 "typeDescriptions": {
16579 "typeIdentifier": "t_bytes32",
16580 "typeString": "bytes32"
16581 },
16582 "typeName": {
16583 "id": 4078,
16584 "name": "bytes32",
16585 "nodeType": "ElementaryTypeName",
16586 "src": "4791:7:18",
16587 "typeDescriptions": {
16588 "typeIdentifier": "t_bytes32",
16589 "typeString": "bytes32"
16590 }
16591 },
16592 "value": null,
16593 "visibility": "internal"
16594 }
16595 ],
16596 "src": "4778:31:18"
16597 },
16598 "src": "4765:45:18"
16599 },
16600 {
16601 "anonymous": false,
16602 "documentation": null,
16603 "id": 4089,
16604 "name": "Result2",
16605 "nodeType": "EventDefinition",
16606 "parameters": {
16607 "id": 4088,
16608 "nodeType": "ParameterList",
16609 "parameters": [
16610 {
16611 "constant": false,
16612 "id": 4083,
16613 "indexed": false,
16614 "name": "id",
16615 "nodeType": "VariableDeclaration",
16616 "scope": 4089,
16617 "src": "4829:10:18",
16618 "stateVariable": false,
16619 "storageLocation": "default",
16620 "typeDescriptions": {
16621 "typeIdentifier": "t_uint256",
16622 "typeString": "uint256"
16623 },
16624 "typeName": {
16625 "id": 4082,
16626 "name": "uint256",
16627 "nodeType": "ElementaryTypeName",
16628 "src": "4829:7:18",
16629 "typeDescriptions": {
16630 "typeIdentifier": "t_uint256",
16631 "typeString": "uint256"
16632 }
16633 },
16634 "value": null,
16635 "visibility": "internal"
16636 },
16637 {
16638 "constant": false,
16639 "id": 4085,
16640 "indexed": false,
16641 "name": "response1",
16642 "nodeType": "VariableDeclaration",
16643 "scope": 4089,
16644 "src": "4841:16:18",
16645 "stateVariable": false,
16646 "storageLocation": "default",
16647 "typeDescriptions": {
16648 "typeIdentifier": "t_string_memory_ptr",
16649 "typeString": "string"
16650 },
16651 "typeName": {
16652 "id": 4084,
16653 "name": "string",
16654 "nodeType": "ElementaryTypeName",
16655 "src": "4841:6:18",
16656 "typeDescriptions": {
16657 "typeIdentifier": "t_string_storage_ptr",
16658 "typeString": "string"
16659 }
16660 },
16661 "value": null,
16662 "visibility": "internal"
16663 },
16664 {
16665 "constant": false,
16666 "id": 4087,
16667 "indexed": false,
16668 "name": "response2",
16669 "nodeType": "VariableDeclaration",
16670 "scope": 4089,
16671 "src": "4859:16:18",
16672 "stateVariable": false,
16673 "storageLocation": "default",
16674 "typeDescriptions": {
16675 "typeIdentifier": "t_string_memory_ptr",
16676 "typeString": "string"
16677 },
16678 "typeName": {
16679 "id": 4086,
16680 "name": "string",
16681 "nodeType": "ElementaryTypeName",
16682 "src": "4859:6:18",
16683 "typeDescriptions": {
16684 "typeIdentifier": "t_string_storage_ptr",
16685 "typeString": "string"
16686 }
16687 },
16688 "value": null,
16689 "visibility": "internal"
16690 }
16691 ],
16692 "src": "4828:48:18"
16693 },
16694 "src": "4815:62:18"
16695 },
16696 {
16697 "constant": false,
16698 "id": 4091,
16699 "name": "token",
16700 "nodeType": "VariableDeclaration",
16701 "scope": 4251,
16702 "src": "4883:11:18",
16703 "stateVariable": true,
16704 "storageLocation": "default",
16705 "typeDescriptions": {
16706 "typeIdentifier": "t_contract$_ERC20_$131",
16707 "typeString": "contract ERC20"
16708 },
16709 "typeName": {
16710 "contractScope": null,
16711 "id": 4090,
16712 "name": "ERC20",
16713 "nodeType": "UserDefinedTypeName",
16714 "referencedDeclaration": 131,
16715 "src": "4883:5:18",
16716 "typeDescriptions": {
16717 "typeIdentifier": "t_contract$_ERC20_$131",
16718 "typeString": "contract ERC20"
16719 }
16720 },
16721 "value": null,
16722 "visibility": "internal"
16723 },
16724 {
16725 "constant": false,
16726 "id": 4093,
16727 "name": "dispatch",
16728 "nodeType": "VariableDeclaration",
16729 "scope": 4251,
16730 "src": "4900:26:18",
16731 "stateVariable": true,
16732 "storageLocation": "default",
16733 "typeDescriptions": {
16734 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
16735 "typeString": "contract DispatchInterface"
16736 },
16737 "typeName": {
16738 "contractScope": null,
16739 "id": 4092,
16740 "name": "DispatchInterface",
16741 "nodeType": "UserDefinedTypeName",
16742 "referencedDeclaration": 10147,
16743 "src": "4900:17:18",
16744 "typeDescriptions": {
16745 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
16746 "typeString": "contract DispatchInterface"
16747 }
16748 },
16749 "value": null,
16750 "visibility": "internal"
16751 },
16752 {
16753 "constant": false,
16754 "id": 4095,
16755 "name": "bondage",
16756 "nodeType": "VariableDeclaration",
16757 "scope": 4251,
16758 "src": "4932:24:18",
16759 "stateVariable": true,
16760 "storageLocation": "default",
16761 "typeDescriptions": {
16762 "typeIdentifier": "t_contract$_BondageInterface_$7926",
16763 "typeString": "contract BondageInterface"
16764 },
16765 "typeName": {
16766 "contractScope": null,
16767 "id": 4094,
16768 "name": "BondageInterface",
16769 "nodeType": "UserDefinedTypeName",
16770 "referencedDeclaration": 7926,
16771 "src": "4932:16:18",
16772 "typeDescriptions": {
16773 "typeIdentifier": "t_contract$_BondageInterface_$7926",
16774 "typeString": "contract BondageInterface"
16775 }
16776 },
16777 "value": null,
16778 "visibility": "internal"
16779 },
16780 {
16781 "constant": false,
16782 "id": 4097,
16783 "name": "registry",
16784 "nodeType": "VariableDeclaration",
16785 "scope": 4251,
16786 "src": "4962:26:18",
16787 "stateVariable": true,
16788 "storageLocation": "default",
16789 "typeDescriptions": {
16790 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
16791 "typeString": "contract RegistryInterface"
16792 },
16793 "typeName": {
16794 "contractScope": null,
16795 "id": 4096,
16796 "name": "RegistryInterface",
16797 "nodeType": "UserDefinedTypeName",
16798 "referencedDeclaration": 11303,
16799 "src": "4962:17:18",
16800 "typeDescriptions": {
16801 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
16802 "typeString": "contract RegistryInterface"
16803 }
16804 },
16805 "value": null,
16806 "visibility": "internal"
16807 },
16808 {
16809 "body": {
16810 "id": 4132,
16811 "nodeType": "Block",
16812 "src": "5110:206:18",
16813 "statements": [
16814 {
16815 "expression": {
16816 "argumentTypes": null,
16817 "id": 4112,
16818 "isConstant": false,
16819 "isLValue": false,
16820 "isPure": false,
16821 "lValueRequested": false,
16822 "leftHandSide": {
16823 "argumentTypes": null,
16824 "id": 4108,
16825 "name": "token",
16826 "nodeType": "Identifier",
16827 "overloadedDeclarations": [],
16828 "referencedDeclaration": 4091,
16829 "src": "5120:5:18",
16830 "typeDescriptions": {
16831 "typeIdentifier": "t_contract$_ERC20_$131",
16832 "typeString": "contract ERC20"
16833 }
16834 },
16835 "nodeType": "Assignment",
16836 "operator": "=",
16837 "rightHandSide": {
16838 "argumentTypes": null,
16839 "arguments": [
16840 {
16841 "argumentTypes": null,
16842 "id": 4110,
16843 "name": "tokenAddress",
16844 "nodeType": "Identifier",
16845 "overloadedDeclarations": [],
16846 "referencedDeclaration": 4099,
16847 "src": "5134:12:18",
16848 "typeDescriptions": {
16849 "typeIdentifier": "t_address",
16850 "typeString": "address"
16851 }
16852 }
16853 ],
16854 "expression": {
16855 "argumentTypes": [
16856 {
16857 "typeIdentifier": "t_address",
16858 "typeString": "address"
16859 }
16860 ],
16861 "id": 4109,
16862 "name": "ERC20",
16863 "nodeType": "Identifier",
16864 "overloadedDeclarations": [],
16865 "referencedDeclaration": 131,
16866 "src": "5128:5:18",
16867 "typeDescriptions": {
16868 "typeIdentifier": "t_type$_t_contract$_ERC20_$131_$",
16869 "typeString": "type(contract ERC20)"
16870 }
16871 },
16872 "id": 4111,
16873 "isConstant": false,
16874 "isLValue": false,
16875 "isPure": false,
16876 "kind": "typeConversion",
16877 "lValueRequested": false,
16878 "names": [],
16879 "nodeType": "FunctionCall",
16880 "src": "5128:19:18",
16881 "typeDescriptions": {
16882 "typeIdentifier": "t_contract$_ERC20_$131",
16883 "typeString": "contract ERC20"
16884 }
16885 },
16886 "src": "5120:27:18",
16887 "typeDescriptions": {
16888 "typeIdentifier": "t_contract$_ERC20_$131",
16889 "typeString": "contract ERC20"
16890 }
16891 },
16892 "id": 4113,
16893 "nodeType": "ExpressionStatement",
16894 "src": "5120:27:18"
16895 },
16896 {
16897 "expression": {
16898 "argumentTypes": null,
16899 "id": 4118,
16900 "isConstant": false,
16901 "isLValue": false,
16902 "isPure": false,
16903 "lValueRequested": false,
16904 "leftHandSide": {
16905 "argumentTypes": null,
16906 "id": 4114,
16907 "name": "dispatch",
16908 "nodeType": "Identifier",
16909 "overloadedDeclarations": [],
16910 "referencedDeclaration": 4093,
16911 "src": "5157:8:18",
16912 "typeDescriptions": {
16913 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
16914 "typeString": "contract DispatchInterface"
16915 }
16916 },
16917 "nodeType": "Assignment",
16918 "operator": "=",
16919 "rightHandSide": {
16920 "argumentTypes": null,
16921 "arguments": [
16922 {
16923 "argumentTypes": null,
16924 "id": 4116,
16925 "name": "dispatchAddress",
16926 "nodeType": "Identifier",
16927 "overloadedDeclarations": [],
16928 "referencedDeclaration": 4101,
16929 "src": "5186:15:18",
16930 "typeDescriptions": {
16931 "typeIdentifier": "t_address",
16932 "typeString": "address"
16933 }
16934 }
16935 ],
16936 "expression": {
16937 "argumentTypes": [
16938 {
16939 "typeIdentifier": "t_address",
16940 "typeString": "address"
16941 }
16942 ],
16943 "id": 4115,
16944 "name": "DispatchInterface",
16945 "nodeType": "Identifier",
16946 "overloadedDeclarations": [],
16947 "referencedDeclaration": 10147,
16948 "src": "5168:17:18",
16949 "typeDescriptions": {
16950 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
16951 "typeString": "type(contract DispatchInterface)"
16952 }
16953 },
16954 "id": 4117,
16955 "isConstant": false,
16956 "isLValue": false,
16957 "isPure": false,
16958 "kind": "typeConversion",
16959 "lValueRequested": false,
16960 "names": [],
16961 "nodeType": "FunctionCall",
16962 "src": "5168:34:18",
16963 "typeDescriptions": {
16964 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
16965 "typeString": "contract DispatchInterface"
16966 }
16967 },
16968 "src": "5157:45:18",
16969 "typeDescriptions": {
16970 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
16971 "typeString": "contract DispatchInterface"
16972 }
16973 },
16974 "id": 4119,
16975 "nodeType": "ExpressionStatement",
16976 "src": "5157:45:18"
16977 },
16978 {
16979 "expression": {
16980 "argumentTypes": null,
16981 "id": 4124,
16982 "isConstant": false,
16983 "isLValue": false,
16984 "isPure": false,
16985 "lValueRequested": false,
16986 "leftHandSide": {
16987 "argumentTypes": null,
16988 "id": 4120,
16989 "name": "bondage",
16990 "nodeType": "Identifier",
16991 "overloadedDeclarations": [],
16992 "referencedDeclaration": 4095,
16993 "src": "5212:7:18",
16994 "typeDescriptions": {
16995 "typeIdentifier": "t_contract$_BondageInterface_$7926",
16996 "typeString": "contract BondageInterface"
16997 }
16998 },
16999 "nodeType": "Assignment",
17000 "operator": "=",
17001 "rightHandSide": {
17002 "argumentTypes": null,
17003 "arguments": [
17004 {
17005 "argumentTypes": null,
17006 "id": 4122,
17007 "name": "bondageAddress",
17008 "nodeType": "Identifier",
17009 "overloadedDeclarations": [],
17010 "referencedDeclaration": 4103,
17011 "src": "5239:14:18",
17012 "typeDescriptions": {
17013 "typeIdentifier": "t_address",
17014 "typeString": "address"
17015 }
17016 }
17017 ],
17018 "expression": {
17019 "argumentTypes": [
17020 {
17021 "typeIdentifier": "t_address",
17022 "typeString": "address"
17023 }
17024 ],
17025 "id": 4121,
17026 "name": "BondageInterface",
17027 "nodeType": "Identifier",
17028 "overloadedDeclarations": [],
17029 "referencedDeclaration": 7926,
17030 "src": "5222:16:18",
17031 "typeDescriptions": {
17032 "typeIdentifier": "t_type$_t_contract$_BondageInterface_$7926_$",
17033 "typeString": "type(contract BondageInterface)"
17034 }
17035 },
17036 "id": 4123,
17037 "isConstant": false,
17038 "isLValue": false,
17039 "isPure": false,
17040 "kind": "typeConversion",
17041 "lValueRequested": false,
17042 "names": [],
17043 "nodeType": "FunctionCall",
17044 "src": "5222:32:18",
17045 "typeDescriptions": {
17046 "typeIdentifier": "t_contract$_BondageInterface_$7926",
17047 "typeString": "contract BondageInterface"
17048 }
17049 },
17050 "src": "5212:42:18",
17051 "typeDescriptions": {
17052 "typeIdentifier": "t_contract$_BondageInterface_$7926",
17053 "typeString": "contract BondageInterface"
17054 }
17055 },
17056 "id": 4125,
17057 "nodeType": "ExpressionStatement",
17058 "src": "5212:42:18"
17059 },
17060 {
17061 "expression": {
17062 "argumentTypes": null,
17063 "id": 4130,
17064 "isConstant": false,
17065 "isLValue": false,
17066 "isPure": false,
17067 "lValueRequested": false,
17068 "leftHandSide": {
17069 "argumentTypes": null,
17070 "id": 4126,
17071 "name": "registry",
17072 "nodeType": "Identifier",
17073 "overloadedDeclarations": [],
17074 "referencedDeclaration": 4097,
17075 "src": "5264:8:18",
17076 "typeDescriptions": {
17077 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
17078 "typeString": "contract RegistryInterface"
17079 }
17080 },
17081 "nodeType": "Assignment",
17082 "operator": "=",
17083 "rightHandSide": {
17084 "argumentTypes": null,
17085 "arguments": [
17086 {
17087 "argumentTypes": null,
17088 "id": 4128,
17089 "name": "registryAddress",
17090 "nodeType": "Identifier",
17091 "overloadedDeclarations": [],
17092 "referencedDeclaration": 4105,
17093 "src": "5293:15:18",
17094 "typeDescriptions": {
17095 "typeIdentifier": "t_address",
17096 "typeString": "address"
17097 }
17098 }
17099 ],
17100 "expression": {
17101 "argumentTypes": [
17102 {
17103 "typeIdentifier": "t_address",
17104 "typeString": "address"
17105 }
17106 ],
17107 "id": 4127,
17108 "name": "RegistryInterface",
17109 "nodeType": "Identifier",
17110 "overloadedDeclarations": [],
17111 "referencedDeclaration": 11303,
17112 "src": "5275:17:18",
17113 "typeDescriptions": {
17114 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
17115 "typeString": "type(contract RegistryInterface)"
17116 }
17117 },
17118 "id": 4129,
17119 "isConstant": false,
17120 "isLValue": false,
17121 "isPure": false,
17122 "kind": "typeConversion",
17123 "lValueRequested": false,
17124 "names": [],
17125 "nodeType": "FunctionCall",
17126 "src": "5275:34:18",
17127 "typeDescriptions": {
17128 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
17129 "typeString": "contract RegistryInterface"
17130 }
17131 },
17132 "src": "5264:45:18",
17133 "typeDescriptions": {
17134 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
17135 "typeString": "contract RegistryInterface"
17136 }
17137 },
17138 "id": 4131,
17139 "nodeType": "ExpressionStatement",
17140 "src": "5264:45:18"
17141 }
17142 ]
17143 },
17144 "documentation": null,
17145 "id": 4133,
17146 "implemented": true,
17147 "isConstructor": true,
17148 "isDeclaredConst": false,
17149 "modifiers": [],
17150 "name": "",
17151 "nodeType": "FunctionDefinition",
17152 "parameters": {
17153 "id": 4106,
17154 "nodeType": "ParameterList",
17155 "parameters": [
17156 {
17157 "constant": false,
17158 "id": 4099,
17159 "name": "tokenAddress",
17160 "nodeType": "VariableDeclaration",
17161 "scope": 4133,
17162 "src": "5007:20:18",
17163 "stateVariable": false,
17164 "storageLocation": "default",
17165 "typeDescriptions": {
17166 "typeIdentifier": "t_address",
17167 "typeString": "address"
17168 },
17169 "typeName": {
17170 "id": 4098,
17171 "name": "address",
17172 "nodeType": "ElementaryTypeName",
17173 "src": "5007:7:18",
17174 "typeDescriptions": {
17175 "typeIdentifier": "t_address",
17176 "typeString": "address"
17177 }
17178 },
17179 "value": null,
17180 "visibility": "internal"
17181 },
17182 {
17183 "constant": false,
17184 "id": 4101,
17185 "name": "dispatchAddress",
17186 "nodeType": "VariableDeclaration",
17187 "scope": 4133,
17188 "src": "5029:23:18",
17189 "stateVariable": false,
17190 "storageLocation": "default",
17191 "typeDescriptions": {
17192 "typeIdentifier": "t_address",
17193 "typeString": "address"
17194 },
17195 "typeName": {
17196 "id": 4100,
17197 "name": "address",
17198 "nodeType": "ElementaryTypeName",
17199 "src": "5029:7:18",
17200 "typeDescriptions": {
17201 "typeIdentifier": "t_address",
17202 "typeString": "address"
17203 }
17204 },
17205 "value": null,
17206 "visibility": "internal"
17207 },
17208 {
17209 "constant": false,
17210 "id": 4103,
17211 "name": "bondageAddress",
17212 "nodeType": "VariableDeclaration",
17213 "scope": 4133,
17214 "src": "5054:22:18",
17215 "stateVariable": false,
17216 "storageLocation": "default",
17217 "typeDescriptions": {
17218 "typeIdentifier": "t_address",
17219 "typeString": "address"
17220 },
17221 "typeName": {
17222 "id": 4102,
17223 "name": "address",
17224 "nodeType": "ElementaryTypeName",
17225 "src": "5054:7:18",
17226 "typeDescriptions": {
17227 "typeIdentifier": "t_address",
17228 "typeString": "address"
17229 }
17230 },
17231 "value": null,
17232 "visibility": "internal"
17233 },
17234 {
17235 "constant": false,
17236 "id": 4105,
17237 "name": "registryAddress",
17238 "nodeType": "VariableDeclaration",
17239 "scope": 4133,
17240 "src": "5078:23:18",
17241 "stateVariable": false,
17242 "storageLocation": "default",
17243 "typeDescriptions": {
17244 "typeIdentifier": "t_address",
17245 "typeString": "address"
17246 },
17247 "typeName": {
17248 "id": 4104,
17249 "name": "address",
17250 "nodeType": "ElementaryTypeName",
17251 "src": "5078:7:18",
17252 "typeDescriptions": {
17253 "typeIdentifier": "t_address",
17254 "typeString": "address"
17255 }
17256 },
17257 "value": null,
17258 "visibility": "internal"
17259 }
17260 ],
17261 "src": "5006:96:18"
17262 },
17263 "payable": false,
17264 "returnParameters": {
17265 "id": 4107,
17266 "nodeType": "ParameterList",
17267 "parameters": [],
17268 "src": "5110:0:18"
17269 },
17270 "scope": 4251,
17271 "src": "4995:321:18",
17272 "stateMutability": "nonpayable",
17273 "superFunction": null,
17274 "visibility": "public"
17275 },
17276 {
17277 "body": {
17278 "id": 4149,
17279 "nodeType": "Block",
17280 "src": "5450:127:18",
17281 "statements": [
17282 {
17283 "assignments": [
17284 4141
17285 ],
17286 "declarations": [
17287 {
17288 "constant": false,
17289 "id": 4141,
17290 "name": "_response1",
17291 "nodeType": "VariableDeclaration",
17292 "scope": 4150,
17293 "src": "5460:24:18",
17294 "stateVariable": false,
17295 "storageLocation": "memory",
17296 "typeDescriptions": {
17297 "typeIdentifier": "t_string_memory_ptr",
17298 "typeString": "string"
17299 },
17300 "typeName": {
17301 "id": 4140,
17302 "name": "string",
17303 "nodeType": "ElementaryTypeName",
17304 "src": "5460:6:18",
17305 "typeDescriptions": {
17306 "typeIdentifier": "t_string_storage_ptr",
17307 "typeString": "string"
17308 }
17309 },
17310 "value": null,
17311 "visibility": "internal"
17312 }
17313 ],
17314 "id": 4143,
17315 "initialValue": {
17316 "argumentTypes": null,
17317 "id": 4142,
17318 "name": "response1",
17319 "nodeType": "Identifier",
17320 "overloadedDeclarations": [],
17321 "referencedDeclaration": 4137,
17322 "src": "5487:9:18",
17323 "typeDescriptions": {
17324 "typeIdentifier": "t_string_calldata_ptr",
17325 "typeString": "string calldata"
17326 }
17327 },
17328 "nodeType": "VariableDeclarationStatement",
17329 "src": "5460:36:18"
17330 },
17331 {
17332 "eventCall": {
17333 "argumentTypes": null,
17334 "arguments": [
17335 {
17336 "argumentTypes": null,
17337 "id": 4145,
17338 "name": "id",
17339 "nodeType": "Identifier",
17340 "overloadedDeclarations": [],
17341 "referencedDeclaration": 4135,
17342 "src": "5519:2:18",
17343 "typeDescriptions": {
17344 "typeIdentifier": "t_uint256",
17345 "typeString": "uint256"
17346 }
17347 },
17348 {
17349 "argumentTypes": null,
17350 "id": 4146,
17351 "name": "_response1",
17352 "nodeType": "Identifier",
17353 "overloadedDeclarations": [],
17354 "referencedDeclaration": 4141,
17355 "src": "5523:10:18",
17356 "typeDescriptions": {
17357 "typeIdentifier": "t_string_memory_ptr",
17358 "typeString": "string memory"
17359 }
17360 }
17361 ],
17362 "expression": {
17363 "argumentTypes": [
17364 {
17365 "typeIdentifier": "t_uint256",
17366 "typeString": "uint256"
17367 },
17368 {
17369 "typeIdentifier": "t_string_memory_ptr",
17370 "typeString": "string memory"
17371 }
17372 ],
17373 "id": 4144,
17374 "name": "Result1",
17375 "nodeType": "Identifier",
17376 "overloadedDeclarations": [
17377 4075,
17378 4081
17379 ],
17380 "referencedDeclaration": 4075,
17381 "src": "5511:7:18",
17382 "typeDescriptions": {
17383 "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
17384 "typeString": "function (uint256,string memory)"
17385 }
17386 },
17387 "id": 4147,
17388 "isConstant": false,
17389 "isLValue": false,
17390 "isPure": false,
17391 "kind": "functionCall",
17392 "lValueRequested": false,
17393 "names": [],
17394 "nodeType": "FunctionCall",
17395 "src": "5511:23:18",
17396 "typeDescriptions": {
17397 "typeIdentifier": "t_tuple$__$",
17398 "typeString": "tuple()"
17399 }
17400 },
17401 "id": 4148,
17402 "nodeType": "EmitStatement",
17403 "src": "5506:28:18"
17404 }
17405 ]
17406 },
17407 "documentation": null,
17408 "id": 4150,
17409 "implemented": true,
17410 "isConstructor": false,
17411 "isDeclaredConst": false,
17412 "modifiers": [],
17413 "name": "callback",
17414 "nodeType": "FunctionDefinition",
17415 "parameters": {
17416 "id": 4138,
17417 "nodeType": "ParameterList",
17418 "parameters": [
17419 {
17420 "constant": false,
17421 "id": 4135,
17422 "name": "id",
17423 "nodeType": "VariableDeclaration",
17424 "scope": 4150,
17425 "src": "5411:10:18",
17426 "stateVariable": false,
17427 "storageLocation": "default",
17428 "typeDescriptions": {
17429 "typeIdentifier": "t_uint256",
17430 "typeString": "uint256"
17431 },
17432 "typeName": {
17433 "id": 4134,
17434 "name": "uint256",
17435 "nodeType": "ElementaryTypeName",
17436 "src": "5411:7:18",
17437 "typeDescriptions": {
17438 "typeIdentifier": "t_uint256",
17439 "typeString": "uint256"
17440 }
17441 },
17442 "value": null,
17443 "visibility": "internal"
17444 },
17445 {
17446 "constant": false,
17447 "id": 4137,
17448 "name": "response1",
17449 "nodeType": "VariableDeclaration",
17450 "scope": 4150,
17451 "src": "5423:16:18",
17452 "stateVariable": false,
17453 "storageLocation": "default",
17454 "typeDescriptions": {
17455 "typeIdentifier": "t_string_calldata_ptr",
17456 "typeString": "string"
17457 },
17458 "typeName": {
17459 "id": 4136,
17460 "name": "string",
17461 "nodeType": "ElementaryTypeName",
17462 "src": "5423:6:18",
17463 "typeDescriptions": {
17464 "typeIdentifier": "t_string_storage_ptr",
17465 "typeString": "string"
17466 }
17467 },
17468 "value": null,
17469 "visibility": "internal"
17470 }
17471 ],
17472 "src": "5410:30:18"
17473 },
17474 "payable": false,
17475 "returnParameters": {
17476 "id": 4139,
17477 "nodeType": "ParameterList",
17478 "parameters": [],
17479 "src": "5450:0:18"
17480 },
17481 "scope": 4251,
17482 "src": "5393:184:18",
17483 "stateMutability": "nonpayable",
17484 "superFunction": 814,
17485 "visibility": "external"
17486 },
17487 {
17488 "body": {
17489 "id": 4165,
17490 "nodeType": "Block",
17491 "src": "5642:82:18",
17492 "statements": [
17493 {
17494 "eventCall": {
17495 "argumentTypes": null,
17496 "arguments": [
17497 {
17498 "argumentTypes": null,
17499 "id": 4159,
17500 "name": "id",
17501 "nodeType": "Identifier",
17502 "overloadedDeclarations": [],
17503 "referencedDeclaration": 4152,
17504 "src": "5665:2:18",
17505 "typeDescriptions": {
17506 "typeIdentifier": "t_uint256",
17507 "typeString": "uint256"
17508 }
17509 },
17510 {
17511 "argumentTypes": null,
17512 "baseExpression": {
17513 "argumentTypes": null,
17514 "id": 4160,
17515 "name": "response",
17516 "nodeType": "Identifier",
17517 "overloadedDeclarations": [],
17518 "referencedDeclaration": 4155,
17519 "src": "5669:8:18",
17520 "typeDescriptions": {
17521 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
17522 "typeString": "bytes32[] calldata"
17523 }
17524 },
17525 "id": 4162,
17526 "indexExpression": {
17527 "argumentTypes": null,
17528 "hexValue": "30",
17529 "id": 4161,
17530 "isConstant": false,
17531 "isLValue": false,
17532 "isPure": true,
17533 "kind": "number",
17534 "lValueRequested": false,
17535 "nodeType": "Literal",
17536 "src": "5678:1:18",
17537 "subdenomination": null,
17538 "typeDescriptions": {
17539 "typeIdentifier": "t_rational_0_by_1",
17540 "typeString": "int_const 0"
17541 },
17542 "value": "0"
17543 },
17544 "isConstant": false,
17545 "isLValue": false,
17546 "isPure": false,
17547 "lValueRequested": false,
17548 "nodeType": "IndexAccess",
17549 "src": "5669:11:18",
17550 "typeDescriptions": {
17551 "typeIdentifier": "t_bytes32",
17552 "typeString": "bytes32"
17553 }
17554 }
17555 ],
17556 "expression": {
17557 "argumentTypes": [
17558 {
17559 "typeIdentifier": "t_uint256",
17560 "typeString": "uint256"
17561 },
17562 {
17563 "typeIdentifier": "t_bytes32",
17564 "typeString": "bytes32"
17565 }
17566 ],
17567 "id": 4158,
17568 "name": "Result1",
17569 "nodeType": "Identifier",
17570 "overloadedDeclarations": [
17571 4075,
17572 4081
17573 ],
17574 "referencedDeclaration": 4081,
17575 "src": "5657:7:18",
17576 "typeDescriptions": {
17577 "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$",
17578 "typeString": "function (uint256,bytes32)"
17579 }
17580 },
17581 "id": 4163,
17582 "isConstant": false,
17583 "isLValue": false,
17584 "isPure": false,
17585 "kind": "functionCall",
17586 "lValueRequested": false,
17587 "names": [],
17588 "nodeType": "FunctionCall",
17589 "src": "5657:24:18",
17590 "typeDescriptions": {
17591 "typeIdentifier": "t_tuple$__$",
17592 "typeString": "tuple()"
17593 }
17594 },
17595 "id": 4164,
17596 "nodeType": "EmitStatement",
17597 "src": "5652:29:18"
17598 }
17599 ]
17600 },
17601 "documentation": null,
17602 "id": 4166,
17603 "implemented": true,
17604 "isConstructor": false,
17605 "isDeclaredConst": false,
17606 "modifiers": [],
17607 "name": "callback",
17608 "nodeType": "FunctionDefinition",
17609 "parameters": {
17610 "id": 4156,
17611 "nodeType": "ParameterList",
17612 "parameters": [
17613 {
17614 "constant": false,
17615 "id": 4152,
17616 "name": "id",
17617 "nodeType": "VariableDeclaration",
17618 "scope": 4166,
17619 "src": "5601:10:18",
17620 "stateVariable": false,
17621 "storageLocation": "default",
17622 "typeDescriptions": {
17623 "typeIdentifier": "t_uint256",
17624 "typeString": "uint256"
17625 },
17626 "typeName": {
17627 "id": 4151,
17628 "name": "uint256",
17629 "nodeType": "ElementaryTypeName",
17630 "src": "5601:7:18",
17631 "typeDescriptions": {
17632 "typeIdentifier": "t_uint256",
17633 "typeString": "uint256"
17634 }
17635 },
17636 "value": null,
17637 "visibility": "internal"
17638 },
17639 {
17640 "constant": false,
17641 "id": 4155,
17642 "name": "response",
17643 "nodeType": "VariableDeclaration",
17644 "scope": 4166,
17645 "src": "5613:18:18",
17646 "stateVariable": false,
17647 "storageLocation": "default",
17648 "typeDescriptions": {
17649 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
17650 "typeString": "bytes32[]"
17651 },
17652 "typeName": {
17653 "baseType": {
17654 "id": 4153,
17655 "name": "bytes32",
17656 "nodeType": "ElementaryTypeName",
17657 "src": "5613:7:18",
17658 "typeDescriptions": {
17659 "typeIdentifier": "t_bytes32",
17660 "typeString": "bytes32"
17661 }
17662 },
17663 "id": 4154,
17664 "length": null,
17665 "nodeType": "ArrayTypeName",
17666 "src": "5613:9:18",
17667 "typeDescriptions": {
17668 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
17669 "typeString": "bytes32[]"
17670 }
17671 },
17672 "value": null,
17673 "visibility": "internal"
17674 }
17675 ],
17676 "src": "5600:32:18"
17677 },
17678 "payable": false,
17679 "returnParameters": {
17680 "id": 4157,
17681 "nodeType": "ParameterList",
17682 "parameters": [],
17683 "src": "5642:0:18"
17684 },
17685 "scope": 4251,
17686 "src": "5583:141:18",
17687 "stateMutability": "nonpayable",
17688 "superFunction": null,
17689 "visibility": "external"
17690 },
17691 {
17692 "body": {
17693 "id": 4181,
17694 "nodeType": "Block",
17695 "src": "5829:91:18",
17696 "statements": [
17697 {
17698 "eventCall": {
17699 "argumentTypes": null,
17700 "arguments": [
17701 {
17702 "argumentTypes": null,
17703 "id": 4176,
17704 "name": "id",
17705 "nodeType": "Identifier",
17706 "overloadedDeclarations": [],
17707 "referencedDeclaration": 4168,
17708 "src": "5852:2:18",
17709 "typeDescriptions": {
17710 "typeIdentifier": "t_uint256",
17711 "typeString": "uint256"
17712 }
17713 },
17714 {
17715 "argumentTypes": null,
17716 "id": 4177,
17717 "name": "response1",
17718 "nodeType": "Identifier",
17719 "overloadedDeclarations": [],
17720 "referencedDeclaration": 4170,
17721 "src": "5856:9:18",
17722 "typeDescriptions": {
17723 "typeIdentifier": "t_string_calldata_ptr",
17724 "typeString": "string calldata"
17725 }
17726 },
17727 {
17728 "argumentTypes": null,
17729 "id": 4178,
17730 "name": "response2",
17731 "nodeType": "Identifier",
17732 "overloadedDeclarations": [],
17733 "referencedDeclaration": 4172,
17734 "src": "5867:9:18",
17735 "typeDescriptions": {
17736 "typeIdentifier": "t_string_calldata_ptr",
17737 "typeString": "string calldata"
17738 }
17739 }
17740 ],
17741 "expression": {
17742 "argumentTypes": [
17743 {
17744 "typeIdentifier": "t_uint256",
17745 "typeString": "uint256"
17746 },
17747 {
17748 "typeIdentifier": "t_string_calldata_ptr",
17749 "typeString": "string calldata"
17750 },
17751 {
17752 "typeIdentifier": "t_string_calldata_ptr",
17753 "typeString": "string calldata"
17754 }
17755 ],
17756 "id": 4175,
17757 "name": "Result2",
17758 "nodeType": "Identifier",
17759 "overloadedDeclarations": [],
17760 "referencedDeclaration": 4089,
17761 "src": "5844:7:18",
17762 "typeDescriptions": {
17763 "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
17764 "typeString": "function (uint256,string memory,string memory)"
17765 }
17766 },
17767 "id": 4179,
17768 "isConstant": false,
17769 "isLValue": false,
17770 "isPure": false,
17771 "kind": "functionCall",
17772 "lValueRequested": false,
17773 "names": [],
17774 "nodeType": "FunctionCall",
17775 "src": "5844:33:18",
17776 "typeDescriptions": {
17777 "typeIdentifier": "t_tuple$__$",
17778 "typeString": "tuple()"
17779 }
17780 },
17781 "id": 4180,
17782 "nodeType": "EmitStatement",
17783 "src": "5839:38:18"
17784 }
17785 ]
17786 },
17787 "documentation": null,
17788 "id": 4182,
17789 "implemented": true,
17790 "isConstructor": false,
17791 "isDeclaredConst": false,
17792 "modifiers": [],
17793 "name": "callback",
17794 "nodeType": "FunctionDefinition",
17795 "parameters": {
17796 "id": 4173,
17797 "nodeType": "ParameterList",
17798 "parameters": [
17799 {
17800 "constant": false,
17801 "id": 4168,
17802 "name": "id",
17803 "nodeType": "VariableDeclaration",
17804 "scope": 4182,
17805 "src": "5772:10:18",
17806 "stateVariable": false,
17807 "storageLocation": "default",
17808 "typeDescriptions": {
17809 "typeIdentifier": "t_uint256",
17810 "typeString": "uint256"
17811 },
17812 "typeName": {
17813 "id": 4167,
17814 "name": "uint256",
17815 "nodeType": "ElementaryTypeName",
17816 "src": "5772:7:18",
17817 "typeDescriptions": {
17818 "typeIdentifier": "t_uint256",
17819 "typeString": "uint256"
17820 }
17821 },
17822 "value": null,
17823 "visibility": "internal"
17824 },
17825 {
17826 "constant": false,
17827 "id": 4170,
17828 "name": "response1",
17829 "nodeType": "VariableDeclaration",
17830 "scope": 4182,
17831 "src": "5784:16:18",
17832 "stateVariable": false,
17833 "storageLocation": "default",
17834 "typeDescriptions": {
17835 "typeIdentifier": "t_string_calldata_ptr",
17836 "typeString": "string"
17837 },
17838 "typeName": {
17839 "id": 4169,
17840 "name": "string",
17841 "nodeType": "ElementaryTypeName",
17842 "src": "5784:6:18",
17843 "typeDescriptions": {
17844 "typeIdentifier": "t_string_storage_ptr",
17845 "typeString": "string"
17846 }
17847 },
17848 "value": null,
17849 "visibility": "internal"
17850 },
17851 {
17852 "constant": false,
17853 "id": 4172,
17854 "name": "response2",
17855 "nodeType": "VariableDeclaration",
17856 "scope": 4182,
17857 "src": "5802:16:18",
17858 "stateVariable": false,
17859 "storageLocation": "default",
17860 "typeDescriptions": {
17861 "typeIdentifier": "t_string_calldata_ptr",
17862 "typeString": "string"
17863 },
17864 "typeName": {
17865 "id": 4171,
17866 "name": "string",
17867 "nodeType": "ElementaryTypeName",
17868 "src": "5802:6:18",
17869 "typeDescriptions": {
17870 "typeIdentifier": "t_string_storage_ptr",
17871 "typeString": "string"
17872 }
17873 },
17874 "value": null,
17875 "visibility": "internal"
17876 }
17877 ],
17878 "src": "5771:48:18"
17879 },
17880 "payable": false,
17881 "returnParameters": {
17882 "id": 4174,
17883 "nodeType": "ParameterList",
17884 "parameters": [],
17885 "src": "5829:0:18"
17886 },
17887 "scope": 4251,
17888 "src": "5754:166:18",
17889 "stateMutability": "nonpayable",
17890 "superFunction": 824,
17891 "visibility": "external"
17892 },
17893 {
17894 "body": {
17895 "id": 4214,
17896 "nodeType": "Block",
17897 "src": "6043:148:18",
17898 "statements": [
17899 {
17900 "assignments": [
17901 4197
17902 ],
17903 "declarations": [
17904 {
17905 "constant": false,
17906 "id": 4197,
17907 "name": "id",
17908 "nodeType": "VariableDeclaration",
17909 "scope": 4215,
17910 "src": "6053:10:18",
17911 "stateVariable": false,
17912 "storageLocation": "default",
17913 "typeDescriptions": {
17914 "typeIdentifier": "t_uint256",
17915 "typeString": "uint256"
17916 },
17917 "typeName": {
17918 "id": 4196,
17919 "name": "uint256",
17920 "nodeType": "ElementaryTypeName",
17921 "src": "6053:7:18",
17922 "typeDescriptions": {
17923 "typeIdentifier": "t_uint256",
17924 "typeString": "uint256"
17925 }
17926 },
17927 "value": null,
17928 "visibility": "internal"
17929 }
17930 ],
17931 "id": 4205,
17932 "initialValue": {
17933 "argumentTypes": null,
17934 "arguments": [
17935 {
17936 "argumentTypes": null,
17937 "id": 4200,
17938 "name": "oracleAddr",
17939 "nodeType": "Identifier",
17940 "overloadedDeclarations": [],
17941 "referencedDeclaration": 4184,
17942 "src": "6081:10:18",
17943 "typeDescriptions": {
17944 "typeIdentifier": "t_address",
17945 "typeString": "address"
17946 }
17947 },
17948 {
17949 "argumentTypes": null,
17950 "id": 4201,
17951 "name": "query",
17952 "nodeType": "Identifier",
17953 "overloadedDeclarations": [],
17954 "referencedDeclaration": 4186,
17955 "src": "6093:5:18",
17956 "typeDescriptions": {
17957 "typeIdentifier": "t_string_calldata_ptr",
17958 "typeString": "string calldata"
17959 }
17960 },
17961 {
17962 "argumentTypes": null,
17963 "id": 4202,
17964 "name": "specifier",
17965 "nodeType": "Identifier",
17966 "overloadedDeclarations": [],
17967 "referencedDeclaration": 4188,
17968 "src": "6100:9:18",
17969 "typeDescriptions": {
17970 "typeIdentifier": "t_bytes32",
17971 "typeString": "bytes32"
17972 }
17973 },
17974 {
17975 "argumentTypes": null,
17976 "id": 4203,
17977 "name": "params",
17978 "nodeType": "Identifier",
17979 "overloadedDeclarations": [],
17980 "referencedDeclaration": 4191,
17981 "src": "6111:6:18",
17982 "typeDescriptions": {
17983 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
17984 "typeString": "bytes32[] calldata"
17985 }
17986 }
17987 ],
17988 "expression": {
17989 "argumentTypes": [
17990 {
17991 "typeIdentifier": "t_address",
17992 "typeString": "address"
17993 },
17994 {
17995 "typeIdentifier": "t_string_calldata_ptr",
17996 "typeString": "string calldata"
17997 },
17998 {
17999 "typeIdentifier": "t_bytes32",
18000 "typeString": "bytes32"
18001 },
18002 {
18003 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
18004 "typeString": "bytes32[] calldata"
18005 }
18006 ],
18007 "expression": {
18008 "argumentTypes": null,
18009 "id": 4198,
18010 "name": "dispatch",
18011 "nodeType": "Identifier",
18012 "overloadedDeclarations": [],
18013 "referencedDeclaration": 4093,
18014 "src": "6066:8:18",
18015 "typeDescriptions": {
18016 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
18017 "typeString": "contract DispatchInterface"
18018 }
18019 },
18020 "id": 4199,
18021 "isConstant": false,
18022 "isLValue": false,
18023 "isPure": false,
18024 "lValueRequested": false,
18025 "memberName": "query",
18026 "nodeType": "MemberAccess",
18027 "referencedDeclaration": 10024,
18028 "src": "6066:14:18",
18029 "typeDescriptions": {
18030 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$",
18031 "typeString": "function (address,string memory,bytes32,bytes32[] memory) external returns (uint256)"
18032 }
18033 },
18034 "id": 4204,
18035 "isConstant": false,
18036 "isLValue": false,
18037 "isPure": false,
18038 "kind": "functionCall",
18039 "lValueRequested": false,
18040 "names": [],
18041 "nodeType": "FunctionCall",
18042 "src": "6066:52:18",
18043 "typeDescriptions": {
18044 "typeIdentifier": "t_uint256",
18045 "typeString": "uint256"
18046 }
18047 },
18048 "nodeType": "VariableDeclarationStatement",
18049 "src": "6053:65:18"
18050 },
18051 {
18052 "eventCall": {
18053 "argumentTypes": null,
18054 "arguments": [
18055 {
18056 "argumentTypes": null,
18057 "id": 4207,
18058 "name": "oracleAddr",
18059 "nodeType": "Identifier",
18060 "overloadedDeclarations": [],
18061 "referencedDeclaration": 4184,
18062 "src": "6143:10:18",
18063 "typeDescriptions": {
18064 "typeIdentifier": "t_address",
18065 "typeString": "address"
18066 }
18067 },
18068 {
18069 "argumentTypes": null,
18070 "id": 4208,
18071 "name": "query",
18072 "nodeType": "Identifier",
18073 "overloadedDeclarations": [],
18074 "referencedDeclaration": 4186,
18075 "src": "6155:5:18",
18076 "typeDescriptions": {
18077 "typeIdentifier": "t_string_calldata_ptr",
18078 "typeString": "string calldata"
18079 }
18080 },
18081 {
18082 "argumentTypes": null,
18083 "id": 4209,
18084 "name": "id",
18085 "nodeType": "Identifier",
18086 "overloadedDeclarations": [],
18087 "referencedDeclaration": 4197,
18088 "src": "6162:2:18",
18089 "typeDescriptions": {
18090 "typeIdentifier": "t_uint256",
18091 "typeString": "uint256"
18092 }
18093 }
18094 ],
18095 "expression": {
18096 "argumentTypes": [
18097 {
18098 "typeIdentifier": "t_address",
18099 "typeString": "address"
18100 },
18101 {
18102 "typeIdentifier": "t_string_calldata_ptr",
18103 "typeString": "string calldata"
18104 },
18105 {
18106 "typeIdentifier": "t_uint256",
18107 "typeString": "uint256"
18108 }
18109 ],
18110 "id": 4206,
18111 "name": "MadeQuery",
18112 "nodeType": "Identifier",
18113 "overloadedDeclarations": [],
18114 "referencedDeclaration": 4069,
18115 "src": "6133:9:18",
18116 "typeDescriptions": {
18117 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$__$",
18118 "typeString": "function (address,string memory,uint256)"
18119 }
18120 },
18121 "id": 4210,
18122 "isConstant": false,
18123 "isLValue": false,
18124 "isPure": false,
18125 "kind": "functionCall",
18126 "lValueRequested": false,
18127 "names": [],
18128 "nodeType": "FunctionCall",
18129 "src": "6133:32:18",
18130 "typeDescriptions": {
18131 "typeIdentifier": "t_tuple$__$",
18132 "typeString": "tuple()"
18133 }
18134 },
18135 "id": 4211,
18136 "nodeType": "EmitStatement",
18137 "src": "6128:37:18"
18138 },
18139 {
18140 "expression": {
18141 "argumentTypes": null,
18142 "id": 4212,
18143 "name": "id",
18144 "nodeType": "Identifier",
18145 "overloadedDeclarations": [],
18146 "referencedDeclaration": 4197,
18147 "src": "6182:2:18",
18148 "typeDescriptions": {
18149 "typeIdentifier": "t_uint256",
18150 "typeString": "uint256"
18151 }
18152 },
18153 "functionReturnParameters": 4195,
18154 "id": 4213,
18155 "nodeType": "Return",
18156 "src": "6175:9:18"
18157 }
18158 ]
18159 },
18160 "documentation": null,
18161 "id": 4215,
18162 "implemented": true,
18163 "isConstructor": false,
18164 "isDeclaredConst": false,
18165 "modifiers": [],
18166 "name": "testQuery",
18167 "nodeType": "FunctionDefinition",
18168 "parameters": {
18169 "id": 4192,
18170 "nodeType": "ParameterList",
18171 "parameters": [
18172 {
18173 "constant": false,
18174 "id": 4184,
18175 "name": "oracleAddr",
18176 "nodeType": "VariableDeclaration",
18177 "scope": 4215,
18178 "src": "5945:18:18",
18179 "stateVariable": false,
18180 "storageLocation": "default",
18181 "typeDescriptions": {
18182 "typeIdentifier": "t_address",
18183 "typeString": "address"
18184 },
18185 "typeName": {
18186 "id": 4183,
18187 "name": "address",
18188 "nodeType": "ElementaryTypeName",
18189 "src": "5945:7:18",
18190 "typeDescriptions": {
18191 "typeIdentifier": "t_address",
18192 "typeString": "address"
18193 }
18194 },
18195 "value": null,
18196 "visibility": "internal"
18197 },
18198 {
18199 "constant": false,
18200 "id": 4186,
18201 "name": "query",
18202 "nodeType": "VariableDeclaration",
18203 "scope": 4215,
18204 "src": "5965:12:18",
18205 "stateVariable": false,
18206 "storageLocation": "default",
18207 "typeDescriptions": {
18208 "typeIdentifier": "t_string_calldata_ptr",
18209 "typeString": "string"
18210 },
18211 "typeName": {
18212 "id": 4185,
18213 "name": "string",
18214 "nodeType": "ElementaryTypeName",
18215 "src": "5965:6:18",
18216 "typeDescriptions": {
18217 "typeIdentifier": "t_string_storage_ptr",
18218 "typeString": "string"
18219 }
18220 },
18221 "value": null,
18222 "visibility": "internal"
18223 },
18224 {
18225 "constant": false,
18226 "id": 4188,
18227 "name": "specifier",
18228 "nodeType": "VariableDeclaration",
18229 "scope": 4215,
18230 "src": "5979:17:18",
18231 "stateVariable": false,
18232 "storageLocation": "default",
18233 "typeDescriptions": {
18234 "typeIdentifier": "t_bytes32",
18235 "typeString": "bytes32"
18236 },
18237 "typeName": {
18238 "id": 4187,
18239 "name": "bytes32",
18240 "nodeType": "ElementaryTypeName",
18241 "src": "5979:7:18",
18242 "typeDescriptions": {
18243 "typeIdentifier": "t_bytes32",
18244 "typeString": "bytes32"
18245 }
18246 },
18247 "value": null,
18248 "visibility": "internal"
18249 },
18250 {
18251 "constant": false,
18252 "id": 4191,
18253 "name": "params",
18254 "nodeType": "VariableDeclaration",
18255 "scope": 4215,
18256 "src": "5998:16:18",
18257 "stateVariable": false,
18258 "storageLocation": "default",
18259 "typeDescriptions": {
18260 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
18261 "typeString": "bytes32[]"
18262 },
18263 "typeName": {
18264 "baseType": {
18265 "id": 4189,
18266 "name": "bytes32",
18267 "nodeType": "ElementaryTypeName",
18268 "src": "5998:7:18",
18269 "typeDescriptions": {
18270 "typeIdentifier": "t_bytes32",
18271 "typeString": "bytes32"
18272 }
18273 },
18274 "id": 4190,
18275 "length": null,
18276 "nodeType": "ArrayTypeName",
18277 "src": "5998:9:18",
18278 "typeDescriptions": {
18279 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
18280 "typeString": "bytes32[]"
18281 }
18282 },
18283 "value": null,
18284 "visibility": "internal"
18285 }
18286 ],
18287 "src": "5944:71:18"
18288 },
18289 "payable": false,
18290 "returnParameters": {
18291 "id": 4195,
18292 "nodeType": "ParameterList",
18293 "parameters": [
18294 {
18295 "constant": false,
18296 "id": 4194,
18297 "name": "",
18298 "nodeType": "VariableDeclaration",
18299 "scope": 4215,
18300 "src": "6034:7:18",
18301 "stateVariable": false,
18302 "storageLocation": "default",
18303 "typeDescriptions": {
18304 "typeIdentifier": "t_uint256",
18305 "typeString": "uint256"
18306 },
18307 "typeName": {
18308 "id": 4193,
18309 "name": "uint256",
18310 "nodeType": "ElementaryTypeName",
18311 "src": "6034:7:18",
18312 "typeDescriptions": {
18313 "typeIdentifier": "t_uint256",
18314 "typeString": "uint256"
18315 }
18316 },
18317 "value": null,
18318 "visibility": "internal"
18319 }
18320 ],
18321 "src": "6033:9:18"
18322 },
18323 "scope": 4251,
18324 "src": "5926:265:18",
18325 "stateMutability": "nonpayable",
18326 "superFunction": null,
18327 "visibility": "external"
18328 },
18329 {
18330 "body": {
18331 "id": 4237,
18332 "nodeType": "Block",
18333 "src": "6283:221:18",
18334 "statements": [
18335 {
18336 "assignments": [
18337 4223
18338 ],
18339 "declarations": [
18340 {
18341 "constant": false,
18342 "id": 4223,
18343 "name": "tempEmptyStringTest",
18344 "nodeType": "VariableDeclaration",
18345 "scope": 4238,
18346 "src": "6293:32:18",
18347 "stateVariable": false,
18348 "storageLocation": "memory",
18349 "typeDescriptions": {
18350 "typeIdentifier": "t_bytes_memory_ptr",
18351 "typeString": "bytes"
18352 },
18353 "typeName": {
18354 "id": 4222,
18355 "name": "bytes",
18356 "nodeType": "ElementaryTypeName",
18357 "src": "6293:5:18",
18358 "typeDescriptions": {
18359 "typeIdentifier": "t_bytes_storage_ptr",
18360 "typeString": "bytes"
18361 }
18362 },
18363 "value": null,
18364 "visibility": "internal"
18365 }
18366 ],
18367 "id": 4227,
18368 "initialValue": {
18369 "argumentTypes": null,
18370 "arguments": [
18371 {
18372 "argumentTypes": null,
18373 "id": 4225,
18374 "name": "source",
18375 "nodeType": "Identifier",
18376 "overloadedDeclarations": [],
18377 "referencedDeclaration": 4217,
18378 "src": "6334:6:18",
18379 "typeDescriptions": {
18380 "typeIdentifier": "t_string_memory_ptr",
18381 "typeString": "string memory"
18382 }
18383 }
18384 ],
18385 "expression": {
18386 "argumentTypes": [
18387 {
18388 "typeIdentifier": "t_string_memory_ptr",
18389 "typeString": "string memory"
18390 }
18391 ],
18392 "id": 4224,
18393 "isConstant": false,
18394 "isLValue": false,
18395 "isPure": true,
18396 "lValueRequested": false,
18397 "nodeType": "ElementaryTypeNameExpression",
18398 "src": "6328:5:18",
18399 "typeDescriptions": {
18400 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
18401 "typeString": "type(bytes storage pointer)"
18402 },
18403 "typeName": "bytes"
18404 },
18405 "id": 4226,
18406 "isConstant": false,
18407 "isLValue": false,
18408 "isPure": false,
18409 "kind": "typeConversion",
18410 "lValueRequested": false,
18411 "names": [],
18412 "nodeType": "FunctionCall",
18413 "src": "6328:13:18",
18414 "typeDescriptions": {
18415 "typeIdentifier": "t_bytes_memory",
18416 "typeString": "bytes memory"
18417 }
18418 },
18419 "nodeType": "VariableDeclarationStatement",
18420 "src": "6293:48:18"
18421 },
18422 {
18423 "condition": {
18424 "argumentTypes": null,
18425 "commonType": {
18426 "typeIdentifier": "t_uint256",
18427 "typeString": "uint256"
18428 },
18429 "id": 4231,
18430 "isConstant": false,
18431 "isLValue": false,
18432 "isPure": false,
18433 "lValueRequested": false,
18434 "leftExpression": {
18435 "argumentTypes": null,
18436 "expression": {
18437 "argumentTypes": null,
18438 "id": 4228,
18439 "name": "tempEmptyStringTest",
18440 "nodeType": "Identifier",
18441 "overloadedDeclarations": [],
18442 "referencedDeclaration": 4223,
18443 "src": "6356:19:18",
18444 "typeDescriptions": {
18445 "typeIdentifier": "t_bytes_memory_ptr",
18446 "typeString": "bytes memory"
18447 }
18448 },
18449 "id": 4229,
18450 "isConstant": false,
18451 "isLValue": false,
18452 "isPure": false,
18453 "lValueRequested": false,
18454 "memberName": "length",
18455 "nodeType": "MemberAccess",
18456 "referencedDeclaration": null,
18457 "src": "6356:26:18",
18458 "typeDescriptions": {
18459 "typeIdentifier": "t_uint256",
18460 "typeString": "uint256"
18461 }
18462 },
18463 "nodeType": "BinaryOperation",
18464 "operator": "==",
18465 "rightExpression": {
18466 "argumentTypes": null,
18467 "hexValue": "30",
18468 "id": 4230,
18469 "isConstant": false,
18470 "isLValue": false,
18471 "isPure": true,
18472 "kind": "number",
18473 "lValueRequested": false,
18474 "nodeType": "Literal",
18475 "src": "6386:1:18",
18476 "subdenomination": null,
18477 "typeDescriptions": {
18478 "typeIdentifier": "t_rational_0_by_1",
18479 "typeString": "int_const 0"
18480 },
18481 "value": "0"
18482 },
18483 "src": "6356:31:18",
18484 "typeDescriptions": {
18485 "typeIdentifier": "t_bool",
18486 "typeString": "bool"
18487 }
18488 },
18489 "falseBody": null,
18490 "id": 4235,
18491 "nodeType": "IfStatement",
18492 "src": "6352:72:18",
18493 "trueBody": {
18494 "id": 4234,
18495 "nodeType": "Block",
18496 "src": "6389:35:18",
18497 "statements": [
18498 {
18499 "expression": {
18500 "argumentTypes": null,
18501 "hexValue": "307830",
18502 "id": 4232,
18503 "isConstant": false,
18504 "isLValue": false,
18505 "isPure": true,
18506 "kind": "number",
18507 "lValueRequested": false,
18508 "nodeType": "Literal",
18509 "src": "6410:3:18",
18510 "subdenomination": null,
18511 "typeDescriptions": {
18512 "typeIdentifier": "t_rational_0_by_1",
18513 "typeString": "int_const 0"
18514 },
18515 "value": "0x0"
18516 },
18517 "functionReturnParameters": 4221,
18518 "id": 4233,
18519 "nodeType": "Return",
18520 "src": "6403:10:18"
18521 }
18522 ]
18523 }
18524 },
18525 {
18526 "externalReferences": [
18527 {
18528 "result": {
18529 "declaration": 4220,
18530 "isOffset": false,
18531 "isSlot": false,
18532 "src": "6456:6:18",
18533 "valueSize": 1
18534 }
18535 },
18536 {
18537 "source": {
18538 "declaration": 4217,
18539 "isOffset": false,
18540 "isSlot": false,
18541 "src": "6476:6:18",
18542 "valueSize": 1
18543 }
18544 }
18545 ],
18546 "id": 4236,
18547 "nodeType": "InlineAssembly",
18548 "operations": "{\n result := mload(add(source, 32))\n}",
18549 "src": "6433:71:18"
18550 }
18551 ]
18552 },
18553 "documentation": null,
18554 "id": 4238,
18555 "implemented": true,
18556 "isConstructor": false,
18557 "isDeclaredConst": true,
18558 "modifiers": [],
18559 "name": "stringToBytes32",
18560 "nodeType": "FunctionDefinition",
18561 "parameters": {
18562 "id": 4218,
18563 "nodeType": "ParameterList",
18564 "parameters": [
18565 {
18566 "constant": false,
18567 "id": 4217,
18568 "name": "source",
18569 "nodeType": "VariableDeclaration",
18570 "scope": 4238,
18571 "src": "6222:20:18",
18572 "stateVariable": false,
18573 "storageLocation": "memory",
18574 "typeDescriptions": {
18575 "typeIdentifier": "t_string_memory_ptr",
18576 "typeString": "string"
18577 },
18578 "typeName": {
18579 "id": 4216,
18580 "name": "string",
18581 "nodeType": "ElementaryTypeName",
18582 "src": "6222:6:18",
18583 "typeDescriptions": {
18584 "typeIdentifier": "t_string_storage_ptr",
18585 "typeString": "string"
18586 }
18587 },
18588 "value": null,
18589 "visibility": "internal"
18590 }
18591 ],
18592 "src": "6221:22:18"
18593 },
18594 "payable": false,
18595 "returnParameters": {
18596 "id": 4221,
18597 "nodeType": "ParameterList",
18598 "parameters": [
18599 {
18600 "constant": false,
18601 "id": 4220,
18602 "name": "result",
18603 "nodeType": "VariableDeclaration",
18604 "scope": 4238,
18605 "src": "6267:14:18",
18606 "stateVariable": false,
18607 "storageLocation": "default",
18608 "typeDescriptions": {
18609 "typeIdentifier": "t_bytes32",
18610 "typeString": "bytes32"
18611 },
18612 "typeName": {
18613 "id": 4219,
18614 "name": "bytes32",
18615 "nodeType": "ElementaryTypeName",
18616 "src": "6267:7:18",
18617 "typeDescriptions": {
18618 "typeIdentifier": "t_bytes32",
18619 "typeString": "bytes32"
18620 }
18621 },
18622 "value": null,
18623 "visibility": "internal"
18624 }
18625 ],
18626 "src": "6266:16:18"
18627 },
18628 "scope": 4251,
18629 "src": "6197:307:18",
18630 "stateMutability": "pure",
18631 "superFunction": null,
18632 "visibility": "internal"
18633 },
18634 {
18635 "body": {
18636 "id": 4249,
18637 "nodeType": "Block",
18638 "src": "6596:41:18",
18639 "statements": [
18640 {
18641 "expression": {
18642 "argumentTypes": null,
18643 "arguments": [
18644 {
18645 "argumentTypes": null,
18646 "id": 4246,
18647 "name": "id",
18648 "nodeType": "Identifier",
18649 "overloadedDeclarations": [],
18650 "referencedDeclaration": 4240,
18651 "src": "6627:2:18",
18652 "typeDescriptions": {
18653 "typeIdentifier": "t_uint256",
18654 "typeString": "uint256"
18655 }
18656 }
18657 ],
18658 "expression": {
18659 "argumentTypes": [
18660 {
18661 "typeIdentifier": "t_uint256",
18662 "typeString": "uint256"
18663 }
18664 ],
18665 "expression": {
18666 "argumentTypes": null,
18667 "id": 4243,
18668 "name": "dispatch",
18669 "nodeType": "Identifier",
18670 "overloadedDeclarations": [],
18671 "referencedDeclaration": 4093,
18672 "src": "6606:8:18",
18673 "typeDescriptions": {
18674 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
18675 "typeString": "contract DispatchInterface"
18676 }
18677 },
18678 "id": 4245,
18679 "isConstant": false,
18680 "isLValue": false,
18681 "isPure": false,
18682 "lValueRequested": false,
18683 "memberName": "cancelQuery",
18684 "nodeType": "MemberAccess",
18685 "referencedDeclaration": 10097,
18686 "src": "6606:20:18",
18687 "typeDescriptions": {
18688 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
18689 "typeString": "function (uint256) external"
18690 }
18691 },
18692 "id": 4247,
18693 "isConstant": false,
18694 "isLValue": false,
18695 "isPure": false,
18696 "kind": "functionCall",
18697 "lValueRequested": false,
18698 "names": [],
18699 "nodeType": "FunctionCall",
18700 "src": "6606:24:18",
18701 "typeDescriptions": {
18702 "typeIdentifier": "t_tuple$__$",
18703 "typeString": "tuple()"
18704 }
18705 },
18706 "id": 4248,
18707 "nodeType": "ExpressionStatement",
18708 "src": "6606:24:18"
18709 }
18710 ]
18711 },
18712 "documentation": null,
18713 "id": 4250,
18714 "implemented": true,
18715 "isConstructor": false,
18716 "isDeclaredConst": false,
18717 "modifiers": [],
18718 "name": "cancelQuery",
18719 "nodeType": "FunctionDefinition",
18720 "parameters": {
18721 "id": 4241,
18722 "nodeType": "ParameterList",
18723 "parameters": [
18724 {
18725 "constant": false,
18726 "id": 4240,
18727 "name": "id",
18728 "nodeType": "VariableDeclaration",
18729 "scope": 4250,
18730 "src": "6575:10:18",
18731 "stateVariable": false,
18732 "storageLocation": "default",
18733 "typeDescriptions": {
18734 "typeIdentifier": "t_uint256",
18735 "typeString": "uint256"
18736 },
18737 "typeName": {
18738 "id": 4239,
18739 "name": "uint256",
18740 "nodeType": "ElementaryTypeName",
18741 "src": "6575:7:18",
18742 "typeDescriptions": {
18743 "typeIdentifier": "t_uint256",
18744 "typeString": "uint256"
18745 }
18746 },
18747 "value": null,
18748 "visibility": "internal"
18749 }
18750 ],
18751 "src": "6574:12:18"
18752 },
18753 "payable": false,
18754 "returnParameters": {
18755 "id": 4242,
18756 "nodeType": "ParameterList",
18757 "parameters": [],
18758 "src": "6596:0:18"
18759 },
18760 "scope": 4251,
18761 "src": "6554:83:18",
18762 "stateMutability": "nonpayable",
18763 "superFunction": null,
18764 "visibility": "external"
18765 }
18766 ],
18767 "scope": 4252,
18768 "src": "4607:2033:18"
18769 }
18770 ],
18771 "src": "0:6641:18"
18772 },
18773 "compiler": {
18774 "name": "solc",
18775 "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
18776 },
18777 "networks": {},
18778 "schemaVersion": "2.0.2",
18779 "updatedAt": "2019-06-25T21:15:14.176Z"
18780}
\No newline at end of file