UNPKG

252 kBJSONView Raw
1{
2 "contractName": "SampleOnChainOracle",
3 "abi": [
4 {
5 "constant": true,
6 "inputs": [],
7 "name": "owner",
8 "outputs": [
9 {
10 "name": "",
11 "type": "address"
12 }
13 ],
14 "payable": false,
15 "stateMutability": "view",
16 "type": "function"
17 },
18 {
19 "constant": false,
20 "inputs": [
21 {
22 "name": "newOwner",
23 "type": "address"
24 }
25 ],
26 "name": "transferOwnership",
27 "outputs": [],
28 "payable": false,
29 "stateMutability": "nonpayable",
30 "type": "function"
31 },
32 {
33 "inputs": [
34 {
35 "name": "coordinator",
36 "type": "address"
37 },
38 {
39 "name": "providerPubKey",
40 "type": "uint256"
41 },
42 {
43 "name": "providerTitle",
44 "type": "bytes32"
45 }
46 ],
47 "payable": false,
48 "stateMutability": "nonpayable",
49 "type": "constructor"
50 },
51 {
52 "anonymous": false,
53 "inputs": [
54 {
55 "indexed": false,
56 "name": "query",
57 "type": "string"
58 },
59 {
60 "indexed": false,
61 "name": "endpoint",
62 "type": "bytes32"
63 },
64 {
65 "indexed": false,
66 "name": "params",
67 "type": "bytes32[]"
68 }
69 ],
70 "name": "RecievedQuery",
71 "type": "event"
72 },
73 {
74 "anonymous": false,
75 "inputs": [
76 {
77 "indexed": true,
78 "name": "previousOwner",
79 "type": "address"
80 },
81 {
82 "indexed": true,
83 "name": "newOwner",
84 "type": "address"
85 }
86 ],
87 "name": "OwnershipTransferred",
88 "type": "event"
89 },
90 {
91 "constant": false,
92 "inputs": [
93 {
94 "name": "specifier",
95 "type": "bytes32"
96 },
97 {
98 "name": "curve",
99 "type": "int256[]"
100 }
101 ],
102 "name": "initializeCurve",
103 "outputs": [
104 {
105 "name": "",
106 "type": "bool"
107 }
108 ],
109 "payable": false,
110 "stateMutability": "nonpayable",
111 "type": "function"
112 },
113 {
114 "constant": false,
115 "inputs": [
116 {
117 "name": "key",
118 "type": "bytes32"
119 },
120 {
121 "name": "value",
122 "type": "bytes"
123 }
124 ],
125 "name": "setProviderParameter",
126 "outputs": [],
127 "payable": false,
128 "stateMutability": "nonpayable",
129 "type": "function"
130 },
131 {
132 "constant": false,
133 "inputs": [
134 {
135 "name": "endpoint",
136 "type": "bytes32"
137 },
138 {
139 "name": "endpointParams",
140 "type": "bytes32[]"
141 }
142 ],
143 "name": "setEndpointParams",
144 "outputs": [],
145 "payable": false,
146 "stateMutability": "nonpayable",
147 "type": "function"
148 },
149 {
150 "constant": false,
151 "inputs": [
152 {
153 "name": "id",
154 "type": "uint256"
155 },
156 {
157 "name": "userQuery",
158 "type": "string"
159 },
160 {
161 "name": "endpoint",
162 "type": "bytes32"
163 },
164 {
165 "name": "endpointParams",
166 "type": "bytes32[]"
167 },
168 {
169 "name": "onchainSubscriber",
170 "type": "bool"
171 }
172 ],
173 "name": "receive",
174 "outputs": [],
175 "payable": false,
176 "stateMutability": "nonpayable",
177 "type": "function"
178 }
179 ],
180 "bytecode": "0x608060405234801561001057600080fd5b506040516060806113a48339810180604052810190808051906020019092919080519060200190929190805190602001909291905050506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f5245474953545259000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561018c57600080fd5b505af11580156101a0573d6000803e3d6000fd5b505050506040513d60208110156101b657600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663af87c83384846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180838152602001826000191660001916815260200192505050602060405180830381600087803b15801561024857600080fd5b505af115801561025c573d6000803e3d6000fd5b505050506040513d602081101561027257600080fd5b8101908080519060200190929190505050505050505061110d806102976000396000f300608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680635750644a1461007d5780638da5cb5b146100f4578063c92433571461014b578063de261583146101d7578063f2fde38b1461024e578063fcf0c24814610291575b600080fd5b34801561008957600080fd5b506100f26004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610305565b005b34801561010057600080fd5b506101096105bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015757600080fd5b506101bd6004803603810190808035600019169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506105e4565b604051808215151515815260200191505060405180910390f35b3480156101e357600080fd5b5061024c6004803603810190808035906020019092919080359060200190820180359060200191909192939192939080356000191690602001909291908035906020019082018035906020019190919293919293908035151590602001909291905050506109c4565b005b34801561025a57600080fd5b5061028f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf6565b005b34801561029d57600080fd5b50610303600480360381019080803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610e4b565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561036057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f5245474953545259000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561042257600080fd5b505af1158015610436573d6000803e3d6000fd5b505050506040513d602081101561044c57600080fd5b8101908080519060200190929190505050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635750644a83836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561055657808201518184015260208101905061053b565b50505050905090810190601f1680156105835780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156105a357600080fd5b505af11580156105b7573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561064257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f5245474953545259000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561070457600080fd5b505af1158015610718573d6000803e3d6000fd5b505050506040513d602081101561072e57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663186b79c9306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156107dc57600080fd5b505af11580156107f0573d6000803e3d6000fd5b505050506040513d602081101561080657600080fd5b8101908080519060200190929190505050151561088b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f50726f7669646572206e6f7420696e746969616c697a6564000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663238b3aed858560006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019060200280838360005b8381101561095957808201518184015260208101905061093e565b50505050905001945050505050602060405180830381600087803b15801561098057600080fd5b505af1158015610994573d6000803e3d6000fd5b505050506040513d60208110156109aa57600080fd5b810190808051906020019092919050505091505092915050565b7fb1d30540f0019c1e94a292da7a6f164844c5d2e3dee75e0b3a6a66e4e9a4e15386868686866040518080602001856000191660001916815260200180602001838103835288888281815260200192508082843782019150508381038252858582818152602001925060200280828437820191505097505050505050505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f4449535041544348000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015610b0c57600080fd5b505af1158015610b20573d6000803e3d6000fd5b505050506040513d6020811015610b3657600080fd5b8101908080519060200190929190505050600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808015610be15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15610ced57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636843581c886040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001806020018281038252600b8152602001807f48656c6c6f20576f726c6400000000000000000000000000000000000000000081525060200192505050602060405180830381600087803b158015610cb057600080fd5b505af1158015610cc4573d6000803e3d6000fd5b505050506040513d6020811015610cda57600080fd5b8101908080519060200190929190505050505b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d5157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610d8d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ea657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f5245474953545259000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015610f6857600080fd5b505af1158015610f7c573d6000803e3d6000fd5b505050506040513d6020811015610f9257600080fd5b8101908080519060200190929190505050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fcf0c24883836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561109f578082015181840152602081019050611084565b505050509050019350505050600060405180830381600087803b1580156110c557600080fd5b505af11580156110d9573d6000803e3d6000fd5b5050505050505600a165627a7a723058200903b574feffe49f5631f94966d27ced358cb6b65931a33a6d1a47fedc67d0dd0029",
181 "deployedBytecode": "0x608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680635750644a1461007d5780638da5cb5b146100f4578063c92433571461014b578063de261583146101d7578063f2fde38b1461024e578063fcf0c24814610291575b600080fd5b34801561008957600080fd5b506100f26004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610305565b005b34801561010057600080fd5b506101096105bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015757600080fd5b506101bd6004803603810190808035600019169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506105e4565b604051808215151515815260200191505060405180910390f35b3480156101e357600080fd5b5061024c6004803603810190808035906020019092919080359060200190820180359060200191909192939192939080356000191690602001909291908035906020019082018035906020019190919293919293908035151590602001909291905050506109c4565b005b34801561025a57600080fd5b5061028f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf6565b005b34801561029d57600080fd5b50610303600480360381019080803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610e4b565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561036057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f5245474953545259000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561042257600080fd5b505af1158015610436573d6000803e3d6000fd5b505050506040513d602081101561044c57600080fd5b8101908080519060200190929190505050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635750644a83836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561055657808201518184015260208101905061053b565b50505050905090810190601f1680156105835780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156105a357600080fd5b505af11580156105b7573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561064257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f5245474953545259000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561070457600080fd5b505af1158015610718573d6000803e3d6000fd5b505050506040513d602081101561072e57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663186b79c9306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156107dc57600080fd5b505af11580156107f0573d6000803e3d6000fd5b505050506040513d602081101561080657600080fd5b8101908080519060200190929190505050151561088b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f50726f7669646572206e6f7420696e746969616c697a6564000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663238b3aed858560006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019060200280838360005b8381101561095957808201518184015260208101905061093e565b50505050905001945050505050602060405180830381600087803b15801561098057600080fd5b505af1158015610994573d6000803e3d6000fd5b505050506040513d60208110156109aa57600080fd5b810190808051906020019092919050505091505092915050565b7fb1d30540f0019c1e94a292da7a6f164844c5d2e3dee75e0b3a6a66e4e9a4e15386868686866040518080602001856000191660001916815260200180602001838103835288888281815260200192508082843782019150508381038252858582818152602001925060200280828437820191505097505050505050505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f4449535041544348000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015610b0c57600080fd5b505af1158015610b20573d6000803e3d6000fd5b505050506040513d6020811015610b3657600080fd5b8101908080519060200190929190505050600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808015610be15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15610ced57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636843581c886040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001806020018281038252600b8152602001807f48656c6c6f20576f726c6400000000000000000000000000000000000000000081525060200192505050602060405180830381600087803b158015610cb057600080fd5b505af1158015610cc4573d6000803e3d6000fd5b505050506040513d6020811015610cda57600080fd5b8101908080519060200190929190505050505b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d5157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610d8d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ea657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f5245474953545259000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015610f6857600080fd5b505af1158015610f7c573d6000803e3d6000fd5b505050506040513d6020811015610f9257600080fd5b8101908080519060200190929190505050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fcf0c24883836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561109f578082015181840152602081019050611084565b505050509050019350505050600060405180830381600087803b1580156110c557600080fd5b505af11580156110d9573d6000803e3d6000fd5b5050505050505600a165627a7a723058200903b574feffe49f5631f94966d27ced358cb6b65931a33a6d1a47fedc67d0dd0029",
182 "sourceMap": "223:1989:16:-;;;489:328;8:9:-1;5:2;;;30:1;27;20:12;5:2;489:328:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:26;297:10:3;289:5;;:18;;;;;;;;;;;;;;;;;;642:11:16;610:5;;:44;;;;;;;;;;;;;;;;;;713:5;;;;;;;;;;;:17;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;713:29:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;713:29:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;713:29:16;;;;;;;;;;;;;;;;666:77;;754:8;:25;;;780:14;796:13;754:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;754:56:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;754:56:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;754:56:16;;;;;;;;;;;;;;;;;489:328;;;;223:1989;;;;;;",
183 "deployedSourceMap": "223:1989:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1250:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:201:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:20:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;858:386:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;858:386:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1738:471;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1738:471:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;632:188:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;632:188:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;1457:227:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1457:227:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1250:201;451:5:3;;;;;;;;;;;437:19;;:10;:19;;;429:28;;;;;;;;1363:5:16;;;;;;;;;;;:17;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1363:29:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1363:29:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1363:29:16;;;;;;;;;;;;;;;;1334:8;;:59;;;;;;;;;;;;;;;;;;1403:8;;;;;;;;;;;:29;;;1433:3;1438:5;1403:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1403:41:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1403:41:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1403:41:16;;;;1250:201;;:::o;49:20:3:-;;;;;;;;;;;;;:::o;858:386:16:-;966:4;991:26;451:5:3;;;;;;;;;;;437:19;;:10;:19;;;429:28;;;;;;;;1038:5:16;;;;;;;;;;;:17;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1038:29:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1038:29:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1038:29:16;;;;;;;;;;;;;;;;991:77;;1087:8;:28;;;1124:4;1087:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1087:43:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1087:43:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1087:43:16;;;;;;;;;;;;;;;;1079:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1177:8;:30;;;1208:9;1219:5;1234:1;1177:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1177:60:16;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1177:60:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1177:60:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1177:60:16;;;;;;;;;;;;;;;;1170:67;;858:386;;;;;:::o;1738:471::-;1878:50;1892:9;;1903:8;1913:14;;1878:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1976:5;;;;;;;;;;;:17;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1976:29:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1976:29:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1976:29:16;;;;;;;;;;;;;;;;1947:8;;:59;;;;;;;;;;;;;;;;;;2019:17;:52;;;;;2062:8;;;;;;;;;;;2040:31;;:10;:31;;;2019:52;2016:143;;;2111:8;;;;;;;;;;;:17;;;2129:2;2111:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2111:36:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2111:36:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2111:36:16;;;;;;;;;;;;;;;;;2016:143;1738:471;;;;;;;:::o;632:188:3:-;451:5;;;;;;;;;;;437:19;;:10;:19;;;429:28;;;;;;;;732:1;712:22;;:8;:22;;;;704:31;;;;;;;;778:8;750:37;;771:5;;;;;;;;;;;750:37;;;;;;;;;;;;805:8;797:5;;:16;;;;;;;;;;;;;;;;;;632:188;:::o;1457:227:16:-;451:5:3;;;;;;;;;;;437:19;;:10;:19;;;429:28;;;;;;;;1585:5:16;;;;;;;;;;;:17;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1585:29:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1585:29:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1585:29:16;;;;;;;;;;;;;;;;1556:8;;:59;;;;;;;;;;;;;;;;;;1625:8;;;;;;;;;;;:26;;;1652:8;1662:14;1625:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1625:52:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1625:52:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1625:52:16;;;;1457:227;;:::o",
184 "source": "pragma solidity ^0.4.24;\n\nimport \"../ownership/ZapCoordinatorInterface.sol\";\nimport \"../../platform/dispatch/DispatchInterface.sol\";\nimport \"../../platform/registry/RegistryInterface.sol\";\nimport \"./OnChainProvider.sol\";\n\n\ncontract SampleOnChainOracle is OnChainProvider, Ownable {\n\n event RecievedQuery(string query, bytes32 endpoint, bytes32[] params);\n\n ZapCoordinatorInterface coord;\n RegistryInterface registry;\n DispatchInterface dispatch;\n\n //initialize provider\n constructor(\n address coordinator, \n uint256 providerPubKey,\n bytes32 providerTitle \n ){\n coord = ZapCoordinatorInterface(coordinator); \n\n RegistryInterface registry = RegistryInterface(coord.getContract(\"REGISTRY\")); \n registry.initiateProvider(providerPubKey, providerTitle);\n }\n\n //initialize an endpoint curve\n function initializeCurve(\n bytes32 specifier, \n int256[] curve\n ) onlyOwner public returns(bool) {\n \n RegistryInterface registry = RegistryInterface(coord.getContract(\"REGISTRY\")); \n require(registry.isProviderInitiated(address(this)), \"Provider not intiialized\");\n\n return registry.initiateProviderCurve(specifier, curve, address(0));\n }\n\n function setProviderParameter(bytes32 key, bytes value) onlyOwner public {\n\n registry = RegistryInterface(coord.getContract('REGISTRY'));\n registry.setProviderParameter(key, value);\n }\n\n function setEndpointParams(bytes32 endpoint, bytes32[] endpointParams) onlyOwner public {\n\n registry = RegistryInterface(coord.getContract('REGISTRY'));\n registry.setEndpointParams(endpoint, endpointParams);\n }\n\n // middleware function for handling queries\n function receive(uint256 id, string userQuery, bytes32 endpoint, bytes32[] endpointParams, bool onchainSubscriber) external {\n\n emit RecievedQuery(userQuery, endpoint, endpointParams);\n \n dispatch = DispatchInterface(coord.getContract('DISPATCH'));\n if(onchainSubscriber && msg.sender == address(dispatch)) {\n\n //Do something\n dispatch.respond1(id, \"Hello World\");\n\n } \n // else: Do nothing (onchain only)\n }\n\n}\n",
185 "sourcePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/SampleOnChainOracle.sol",
186 "ast": {
187 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/SampleOnChainOracle.sol",
188 "exportedSymbols": {
189 "SampleOnChainOracle": [
190 3453
191 ]
192 },
193 "id": 3454,
194 "nodeType": "SourceUnit",
195 "nodes": [
196 {
197 "id": 3256,
198 "literals": [
199 "solidity",
200 "^",
201 "0.4",
202 ".24"
203 ],
204 "nodeType": "PragmaDirective",
205 "src": "0:24:16"
206 },
207 {
208 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/ownership/ZapCoordinatorInterface.sol",
209 "file": "../ownership/ZapCoordinatorInterface.sol",
210 "id": 3257,
211 "nodeType": "ImportDirective",
212 "scope": 3454,
213 "sourceUnit": 494,
214 "src": "26:50:16",
215 "symbolAliases": [],
216 "unitAlias": ""
217 },
218 {
219 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/dispatch/DispatchInterface.sol",
220 "file": "../../platform/dispatch/DispatchInterface.sol",
221 "id": 3258,
222 "nodeType": "ImportDirective",
223 "scope": 3454,
224 "sourceUnit": 10148,
225 "src": "77:55:16",
226 "symbolAliases": [],
227 "unitAlias": ""
228 },
229 {
230 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/registry/RegistryInterface.sol",
231 "file": "../../platform/registry/RegistryInterface.sol",
232 "id": 3259,
233 "nodeType": "ImportDirective",
234 "scope": 3454,
235 "sourceUnit": 11304,
236 "src": "133:55:16",
237 "symbolAliases": [],
238 "unitAlias": ""
239 },
240 {
241 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/OnChainProvider.sol",
242 "file": "./OnChainProvider.sol",
243 "id": 3260,
244 "nodeType": "ImportDirective",
245 "scope": 3454,
246 "sourceUnit": 1827,
247 "src": "189:31:16",
248 "symbolAliases": [],
249 "unitAlias": ""
250 },
251 {
252 "baseContracts": [
253 {
254 "arguments": null,
255 "baseName": {
256 "contractScope": null,
257 "id": 3261,
258 "name": "OnChainProvider",
259 "nodeType": "UserDefinedTypeName",
260 "referencedDeclaration": 1826,
261 "src": "255:15:16",
262 "typeDescriptions": {
263 "typeIdentifier": "t_contract$_OnChainProvider_$1826",
264 "typeString": "contract OnChainProvider"
265 }
266 },
267 "id": 3262,
268 "nodeType": "InheritanceSpecifier",
269 "src": "255:15:16"
270 },
271 {
272 "arguments": null,
273 "baseName": {
274 "contractScope": null,
275 "id": 3263,
276 "name": "Ownable",
277 "nodeType": "UserDefinedTypeName",
278 "referencedDeclaration": 203,
279 "src": "272:7:16",
280 "typeDescriptions": {
281 "typeIdentifier": "t_contract$_Ownable_$203",
282 "typeString": "contract Ownable"
283 }
284 },
285 "id": 3264,
286 "nodeType": "InheritanceSpecifier",
287 "src": "272:7:16"
288 }
289 ],
290 "contractDependencies": [
291 203,
292 1826
293 ],
294 "contractKind": "contract",
295 "documentation": null,
296 "fullyImplemented": true,
297 "id": 3453,
298 "linearizedBaseContracts": [
299 3453,
300 203,
301 1826
302 ],
303 "name": "SampleOnChainOracle",
304 "nodeType": "ContractDefinition",
305 "nodes": [
306 {
307 "anonymous": false,
308 "documentation": null,
309 "id": 3273,
310 "name": "RecievedQuery",
311 "nodeType": "EventDefinition",
312 "parameters": {
313 "id": 3272,
314 "nodeType": "ParameterList",
315 "parameters": [
316 {
317 "constant": false,
318 "id": 3266,
319 "indexed": false,
320 "name": "query",
321 "nodeType": "VariableDeclaration",
322 "scope": 3273,
323 "src": "307:12:16",
324 "stateVariable": false,
325 "storageLocation": "default",
326 "typeDescriptions": {
327 "typeIdentifier": "t_string_memory_ptr",
328 "typeString": "string"
329 },
330 "typeName": {
331 "id": 3265,
332 "name": "string",
333 "nodeType": "ElementaryTypeName",
334 "src": "307:6:16",
335 "typeDescriptions": {
336 "typeIdentifier": "t_string_storage_ptr",
337 "typeString": "string"
338 }
339 },
340 "value": null,
341 "visibility": "internal"
342 },
343 {
344 "constant": false,
345 "id": 3268,
346 "indexed": false,
347 "name": "endpoint",
348 "nodeType": "VariableDeclaration",
349 "scope": 3273,
350 "src": "321:16:16",
351 "stateVariable": false,
352 "storageLocation": "default",
353 "typeDescriptions": {
354 "typeIdentifier": "t_bytes32",
355 "typeString": "bytes32"
356 },
357 "typeName": {
358 "id": 3267,
359 "name": "bytes32",
360 "nodeType": "ElementaryTypeName",
361 "src": "321:7:16",
362 "typeDescriptions": {
363 "typeIdentifier": "t_bytes32",
364 "typeString": "bytes32"
365 }
366 },
367 "value": null,
368 "visibility": "internal"
369 },
370 {
371 "constant": false,
372 "id": 3271,
373 "indexed": false,
374 "name": "params",
375 "nodeType": "VariableDeclaration",
376 "scope": 3273,
377 "src": "339:16:16",
378 "stateVariable": false,
379 "storageLocation": "default",
380 "typeDescriptions": {
381 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
382 "typeString": "bytes32[]"
383 },
384 "typeName": {
385 "baseType": {
386 "id": 3269,
387 "name": "bytes32",
388 "nodeType": "ElementaryTypeName",
389 "src": "339:7:16",
390 "typeDescriptions": {
391 "typeIdentifier": "t_bytes32",
392 "typeString": "bytes32"
393 }
394 },
395 "id": 3270,
396 "length": null,
397 "nodeType": "ArrayTypeName",
398 "src": "339:9:16",
399 "typeDescriptions": {
400 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
401 "typeString": "bytes32[]"
402 }
403 },
404 "value": null,
405 "visibility": "internal"
406 }
407 ],
408 "src": "306:50:16"
409 },
410 "src": "287:70:16"
411 },
412 {
413 "constant": false,
414 "id": 3275,
415 "name": "coord",
416 "nodeType": "VariableDeclaration",
417 "scope": 3453,
418 "src": "363:29:16",
419 "stateVariable": true,
420 "storageLocation": "default",
421 "typeDescriptions": {
422 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
423 "typeString": "contract ZapCoordinatorInterface"
424 },
425 "typeName": {
426 "contractScope": null,
427 "id": 3274,
428 "name": "ZapCoordinatorInterface",
429 "nodeType": "UserDefinedTypeName",
430 "referencedDeclaration": 493,
431 "src": "363:23:16",
432 "typeDescriptions": {
433 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
434 "typeString": "contract ZapCoordinatorInterface"
435 }
436 },
437 "value": null,
438 "visibility": "internal"
439 },
440 {
441 "constant": false,
442 "id": 3277,
443 "name": "registry",
444 "nodeType": "VariableDeclaration",
445 "scope": 3453,
446 "src": "398:26:16",
447 "stateVariable": true,
448 "storageLocation": "default",
449 "typeDescriptions": {
450 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
451 "typeString": "contract RegistryInterface"
452 },
453 "typeName": {
454 "contractScope": null,
455 "id": 3276,
456 "name": "RegistryInterface",
457 "nodeType": "UserDefinedTypeName",
458 "referencedDeclaration": 11303,
459 "src": "398:17:16",
460 "typeDescriptions": {
461 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
462 "typeString": "contract RegistryInterface"
463 }
464 },
465 "value": null,
466 "visibility": "internal"
467 },
468 {
469 "constant": false,
470 "id": 3279,
471 "name": "dispatch",
472 "nodeType": "VariableDeclaration",
473 "scope": 3453,
474 "src": "430:26:16",
475 "stateVariable": true,
476 "storageLocation": "default",
477 "typeDescriptions": {
478 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
479 "typeString": "contract DispatchInterface"
480 },
481 "typeName": {
482 "contractScope": null,
483 "id": 3278,
484 "name": "DispatchInterface",
485 "nodeType": "UserDefinedTypeName",
486 "referencedDeclaration": 10147,
487 "src": "430:17:16",
488 "typeDescriptions": {
489 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
490 "typeString": "contract DispatchInterface"
491 }
492 },
493 "value": null,
494 "visibility": "internal"
495 },
496 {
497 "body": {
498 "id": 3310,
499 "nodeType": "Block",
500 "src": "600:217:16",
501 "statements": [
502 {
503 "expression": {
504 "argumentTypes": null,
505 "id": 3292,
506 "isConstant": false,
507 "isLValue": false,
508 "isPure": false,
509 "lValueRequested": false,
510 "leftHandSide": {
511 "argumentTypes": null,
512 "id": 3288,
513 "name": "coord",
514 "nodeType": "Identifier",
515 "overloadedDeclarations": [],
516 "referencedDeclaration": 3275,
517 "src": "610:5:16",
518 "typeDescriptions": {
519 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
520 "typeString": "contract ZapCoordinatorInterface"
521 }
522 },
523 "nodeType": "Assignment",
524 "operator": "=",
525 "rightHandSide": {
526 "argumentTypes": null,
527 "arguments": [
528 {
529 "argumentTypes": null,
530 "id": 3290,
531 "name": "coordinator",
532 "nodeType": "Identifier",
533 "overloadedDeclarations": [],
534 "referencedDeclaration": 3281,
535 "src": "642:11:16",
536 "typeDescriptions": {
537 "typeIdentifier": "t_address",
538 "typeString": "address"
539 }
540 }
541 ],
542 "expression": {
543 "argumentTypes": [
544 {
545 "typeIdentifier": "t_address",
546 "typeString": "address"
547 }
548 ],
549 "id": 3289,
550 "name": "ZapCoordinatorInterface",
551 "nodeType": "Identifier",
552 "overloadedDeclarations": [],
553 "referencedDeclaration": 493,
554 "src": "618:23:16",
555 "typeDescriptions": {
556 "typeIdentifier": "t_type$_t_contract$_ZapCoordinatorInterface_$493_$",
557 "typeString": "type(contract ZapCoordinatorInterface)"
558 }
559 },
560 "id": 3291,
561 "isConstant": false,
562 "isLValue": false,
563 "isPure": false,
564 "kind": "typeConversion",
565 "lValueRequested": false,
566 "names": [],
567 "nodeType": "FunctionCall",
568 "src": "618:36:16",
569 "typeDescriptions": {
570 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
571 "typeString": "contract ZapCoordinatorInterface"
572 }
573 },
574 "src": "610:44:16",
575 "typeDescriptions": {
576 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
577 "typeString": "contract ZapCoordinatorInterface"
578 }
579 },
580 "id": 3293,
581 "nodeType": "ExpressionStatement",
582 "src": "610:44:16"
583 },
584 {
585 "assignments": [
586 3295
587 ],
588 "declarations": [
589 {
590 "constant": false,
591 "id": 3295,
592 "name": "registry",
593 "nodeType": "VariableDeclaration",
594 "scope": 3311,
595 "src": "666:26:16",
596 "stateVariable": false,
597 "storageLocation": "default",
598 "typeDescriptions": {
599 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
600 "typeString": "contract RegistryInterface"
601 },
602 "typeName": {
603 "contractScope": null,
604 "id": 3294,
605 "name": "RegistryInterface",
606 "nodeType": "UserDefinedTypeName",
607 "referencedDeclaration": 11303,
608 "src": "666:17:16",
609 "typeDescriptions": {
610 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
611 "typeString": "contract RegistryInterface"
612 }
613 },
614 "value": null,
615 "visibility": "internal"
616 }
617 ],
618 "id": 3302,
619 "initialValue": {
620 "argumentTypes": null,
621 "arguments": [
622 {
623 "argumentTypes": null,
624 "arguments": [
625 {
626 "argumentTypes": null,
627 "hexValue": "5245474953545259",
628 "id": 3299,
629 "isConstant": false,
630 "isLValue": false,
631 "isPure": true,
632 "kind": "string",
633 "lValueRequested": false,
634 "nodeType": "Literal",
635 "src": "731:10:16",
636 "subdenomination": null,
637 "typeDescriptions": {
638 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
639 "typeString": "literal_string \"REGISTRY\""
640 },
641 "value": "REGISTRY"
642 }
643 ],
644 "expression": {
645 "argumentTypes": [
646 {
647 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
648 "typeString": "literal_string \"REGISTRY\""
649 }
650 ],
651 "expression": {
652 "argumentTypes": null,
653 "id": 3297,
654 "name": "coord",
655 "nodeType": "Identifier",
656 "overloadedDeclarations": [],
657 "referencedDeclaration": 3275,
658 "src": "713:5:16",
659 "typeDescriptions": {
660 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
661 "typeString": "contract ZapCoordinatorInterface"
662 }
663 },
664 "id": 3298,
665 "isConstant": false,
666 "isLValue": false,
667 "isPure": false,
668 "lValueRequested": false,
669 "memberName": "getContract",
670 "nodeType": "MemberAccess",
671 "referencedDeclaration": 489,
672 "src": "713:17:16",
673 "typeDescriptions": {
674 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
675 "typeString": "function (string memory) view external returns (address)"
676 }
677 },
678 "id": 3300,
679 "isConstant": false,
680 "isLValue": false,
681 "isPure": false,
682 "kind": "functionCall",
683 "lValueRequested": false,
684 "names": [],
685 "nodeType": "FunctionCall",
686 "src": "713:29:16",
687 "typeDescriptions": {
688 "typeIdentifier": "t_address",
689 "typeString": "address"
690 }
691 }
692 ],
693 "expression": {
694 "argumentTypes": [
695 {
696 "typeIdentifier": "t_address",
697 "typeString": "address"
698 }
699 ],
700 "id": 3296,
701 "name": "RegistryInterface",
702 "nodeType": "Identifier",
703 "overloadedDeclarations": [],
704 "referencedDeclaration": 11303,
705 "src": "695:17:16",
706 "typeDescriptions": {
707 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
708 "typeString": "type(contract RegistryInterface)"
709 }
710 },
711 "id": 3301,
712 "isConstant": false,
713 "isLValue": false,
714 "isPure": false,
715 "kind": "typeConversion",
716 "lValueRequested": false,
717 "names": [],
718 "nodeType": "FunctionCall",
719 "src": "695:48:16",
720 "typeDescriptions": {
721 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
722 "typeString": "contract RegistryInterface"
723 }
724 },
725 "nodeType": "VariableDeclarationStatement",
726 "src": "666:77:16"
727 },
728 {
729 "expression": {
730 "argumentTypes": null,
731 "arguments": [
732 {
733 "argumentTypes": null,
734 "id": 3306,
735 "name": "providerPubKey",
736 "nodeType": "Identifier",
737 "overloadedDeclarations": [],
738 "referencedDeclaration": 3283,
739 "src": "780:14:16",
740 "typeDescriptions": {
741 "typeIdentifier": "t_uint256",
742 "typeString": "uint256"
743 }
744 },
745 {
746 "argumentTypes": null,
747 "id": 3307,
748 "name": "providerTitle",
749 "nodeType": "Identifier",
750 "overloadedDeclarations": [],
751 "referencedDeclaration": 3285,
752 "src": "796:13:16",
753 "typeDescriptions": {
754 "typeIdentifier": "t_bytes32",
755 "typeString": "bytes32"
756 }
757 }
758 ],
759 "expression": {
760 "argumentTypes": [
761 {
762 "typeIdentifier": "t_uint256",
763 "typeString": "uint256"
764 },
765 {
766 "typeIdentifier": "t_bytes32",
767 "typeString": "bytes32"
768 }
769 ],
770 "expression": {
771 "argumentTypes": null,
772 "id": 3303,
773 "name": "registry",
774 "nodeType": "Identifier",
775 "overloadedDeclarations": [],
776 "referencedDeclaration": 3295,
777 "src": "754:8:16",
778 "typeDescriptions": {
779 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
780 "typeString": "contract RegistryInterface"
781 }
782 },
783 "id": 3305,
784 "isConstant": false,
785 "isLValue": false,
786 "isPure": false,
787 "lValueRequested": false,
788 "memberName": "initiateProvider",
789 "nodeType": "MemberAccess",
790 "referencedDeclaration": 11175,
791 "src": "754:25:16",
792 "typeDescriptions": {
793 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
794 "typeString": "function (uint256,bytes32) external returns (bool)"
795 }
796 },
797 "id": 3308,
798 "isConstant": false,
799 "isLValue": false,
800 "isPure": false,
801 "kind": "functionCall",
802 "lValueRequested": false,
803 "names": [],
804 "nodeType": "FunctionCall",
805 "src": "754:56:16",
806 "typeDescriptions": {
807 "typeIdentifier": "t_bool",
808 "typeString": "bool"
809 }
810 },
811 "id": 3309,
812 "nodeType": "ExpressionStatement",
813 "src": "754:56:16"
814 }
815 ]
816 },
817 "documentation": null,
818 "id": 3311,
819 "implemented": true,
820 "isConstructor": true,
821 "isDeclaredConst": false,
822 "modifiers": [],
823 "name": "",
824 "nodeType": "FunctionDefinition",
825 "parameters": {
826 "id": 3286,
827 "nodeType": "ParameterList",
828 "parameters": [
829 {
830 "constant": false,
831 "id": 3281,
832 "name": "coordinator",
833 "nodeType": "VariableDeclaration",
834 "scope": 3311,
835 "src": "510:19:16",
836 "stateVariable": false,
837 "storageLocation": "default",
838 "typeDescriptions": {
839 "typeIdentifier": "t_address",
840 "typeString": "address"
841 },
842 "typeName": {
843 "id": 3280,
844 "name": "address",
845 "nodeType": "ElementaryTypeName",
846 "src": "510:7:16",
847 "typeDescriptions": {
848 "typeIdentifier": "t_address",
849 "typeString": "address"
850 }
851 },
852 "value": null,
853 "visibility": "internal"
854 },
855 {
856 "constant": false,
857 "id": 3283,
858 "name": "providerPubKey",
859 "nodeType": "VariableDeclaration",
860 "scope": 3311,
861 "src": "540:22:16",
862 "stateVariable": false,
863 "storageLocation": "default",
864 "typeDescriptions": {
865 "typeIdentifier": "t_uint256",
866 "typeString": "uint256"
867 },
868 "typeName": {
869 "id": 3282,
870 "name": "uint256",
871 "nodeType": "ElementaryTypeName",
872 "src": "540:7:16",
873 "typeDescriptions": {
874 "typeIdentifier": "t_uint256",
875 "typeString": "uint256"
876 }
877 },
878 "value": null,
879 "visibility": "internal"
880 },
881 {
882 "constant": false,
883 "id": 3285,
884 "name": "providerTitle",
885 "nodeType": "VariableDeclaration",
886 "scope": 3311,
887 "src": "572:21:16",
888 "stateVariable": false,
889 "storageLocation": "default",
890 "typeDescriptions": {
891 "typeIdentifier": "t_bytes32",
892 "typeString": "bytes32"
893 },
894 "typeName": {
895 "id": 3284,
896 "name": "bytes32",
897 "nodeType": "ElementaryTypeName",
898 "src": "572:7:16",
899 "typeDescriptions": {
900 "typeIdentifier": "t_bytes32",
901 "typeString": "bytes32"
902 }
903 },
904 "value": null,
905 "visibility": "internal"
906 }
907 ],
908 "src": "500:100:16"
909 },
910 "payable": false,
911 "returnParameters": {
912 "id": 3287,
913 "nodeType": "ParameterList",
914 "parameters": [],
915 "src": "600:0:16"
916 },
917 "scope": 3453,
918 "src": "489:328:16",
919 "stateMutability": "nonpayable",
920 "superFunction": null,
921 "visibility": "public"
922 },
923 {
924 "body": {
925 "id": 3351,
926 "nodeType": "Block",
927 "src": "972:272:16",
928 "statements": [
929 {
930 "assignments": [
931 3324
932 ],
933 "declarations": [
934 {
935 "constant": false,
936 "id": 3324,
937 "name": "registry",
938 "nodeType": "VariableDeclaration",
939 "scope": 3352,
940 "src": "991:26:16",
941 "stateVariable": false,
942 "storageLocation": "default",
943 "typeDescriptions": {
944 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
945 "typeString": "contract RegistryInterface"
946 },
947 "typeName": {
948 "contractScope": null,
949 "id": 3323,
950 "name": "RegistryInterface",
951 "nodeType": "UserDefinedTypeName",
952 "referencedDeclaration": 11303,
953 "src": "991:17:16",
954 "typeDescriptions": {
955 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
956 "typeString": "contract RegistryInterface"
957 }
958 },
959 "value": null,
960 "visibility": "internal"
961 }
962 ],
963 "id": 3331,
964 "initialValue": {
965 "argumentTypes": null,
966 "arguments": [
967 {
968 "argumentTypes": null,
969 "arguments": [
970 {
971 "argumentTypes": null,
972 "hexValue": "5245474953545259",
973 "id": 3328,
974 "isConstant": false,
975 "isLValue": false,
976 "isPure": true,
977 "kind": "string",
978 "lValueRequested": false,
979 "nodeType": "Literal",
980 "src": "1056:10:16",
981 "subdenomination": null,
982 "typeDescriptions": {
983 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
984 "typeString": "literal_string \"REGISTRY\""
985 },
986 "value": "REGISTRY"
987 }
988 ],
989 "expression": {
990 "argumentTypes": [
991 {
992 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
993 "typeString": "literal_string \"REGISTRY\""
994 }
995 ],
996 "expression": {
997 "argumentTypes": null,
998 "id": 3326,
999 "name": "coord",
1000 "nodeType": "Identifier",
1001 "overloadedDeclarations": [],
1002 "referencedDeclaration": 3275,
1003 "src": "1038:5:16",
1004 "typeDescriptions": {
1005 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
1006 "typeString": "contract ZapCoordinatorInterface"
1007 }
1008 },
1009 "id": 3327,
1010 "isConstant": false,
1011 "isLValue": false,
1012 "isPure": false,
1013 "lValueRequested": false,
1014 "memberName": "getContract",
1015 "nodeType": "MemberAccess",
1016 "referencedDeclaration": 489,
1017 "src": "1038:17:16",
1018 "typeDescriptions": {
1019 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
1020 "typeString": "function (string memory) view external returns (address)"
1021 }
1022 },
1023 "id": 3329,
1024 "isConstant": false,
1025 "isLValue": false,
1026 "isPure": false,
1027 "kind": "functionCall",
1028 "lValueRequested": false,
1029 "names": [],
1030 "nodeType": "FunctionCall",
1031 "src": "1038:29:16",
1032 "typeDescriptions": {
1033 "typeIdentifier": "t_address",
1034 "typeString": "address"
1035 }
1036 }
1037 ],
1038 "expression": {
1039 "argumentTypes": [
1040 {
1041 "typeIdentifier": "t_address",
1042 "typeString": "address"
1043 }
1044 ],
1045 "id": 3325,
1046 "name": "RegistryInterface",
1047 "nodeType": "Identifier",
1048 "overloadedDeclarations": [],
1049 "referencedDeclaration": 11303,
1050 "src": "1020:17:16",
1051 "typeDescriptions": {
1052 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
1053 "typeString": "type(contract RegistryInterface)"
1054 }
1055 },
1056 "id": 3330,
1057 "isConstant": false,
1058 "isLValue": false,
1059 "isPure": false,
1060 "kind": "typeConversion",
1061 "lValueRequested": false,
1062 "names": [],
1063 "nodeType": "FunctionCall",
1064 "src": "1020:48:16",
1065 "typeDescriptions": {
1066 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
1067 "typeString": "contract RegistryInterface"
1068 }
1069 },
1070 "nodeType": "VariableDeclarationStatement",
1071 "src": "991:77:16"
1072 },
1073 {
1074 "expression": {
1075 "argumentTypes": null,
1076 "arguments": [
1077 {
1078 "argumentTypes": null,
1079 "arguments": [
1080 {
1081 "argumentTypes": null,
1082 "arguments": [
1083 {
1084 "argumentTypes": null,
1085 "id": 3336,
1086 "name": "this",
1087 "nodeType": "Identifier",
1088 "overloadedDeclarations": [],
1089 "referencedDeclaration": 12165,
1090 "src": "1124:4:16",
1091 "typeDescriptions": {
1092 "typeIdentifier": "t_contract$_SampleOnChainOracle_$3453",
1093 "typeString": "contract SampleOnChainOracle"
1094 }
1095 }
1096 ],
1097 "expression": {
1098 "argumentTypes": [
1099 {
1100 "typeIdentifier": "t_contract$_SampleOnChainOracle_$3453",
1101 "typeString": "contract SampleOnChainOracle"
1102 }
1103 ],
1104 "id": 3335,
1105 "isConstant": false,
1106 "isLValue": false,
1107 "isPure": true,
1108 "lValueRequested": false,
1109 "nodeType": "ElementaryTypeNameExpression",
1110 "src": "1116:7:16",
1111 "typeDescriptions": {
1112 "typeIdentifier": "t_type$_t_address_$",
1113 "typeString": "type(address)"
1114 },
1115 "typeName": "address"
1116 },
1117 "id": 3337,
1118 "isConstant": false,
1119 "isLValue": false,
1120 "isPure": false,
1121 "kind": "typeConversion",
1122 "lValueRequested": false,
1123 "names": [],
1124 "nodeType": "FunctionCall",
1125 "src": "1116:13:16",
1126 "typeDescriptions": {
1127 "typeIdentifier": "t_address",
1128 "typeString": "address"
1129 }
1130 }
1131 ],
1132 "expression": {
1133 "argumentTypes": [
1134 {
1135 "typeIdentifier": "t_address",
1136 "typeString": "address"
1137 }
1138 ],
1139 "expression": {
1140 "argumentTypes": null,
1141 "id": 3333,
1142 "name": "registry",
1143 "nodeType": "Identifier",
1144 "overloadedDeclarations": [],
1145 "referencedDeclaration": 3324,
1146 "src": "1087:8:16",
1147 "typeDescriptions": {
1148 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
1149 "typeString": "contract RegistryInterface"
1150 }
1151 },
1152 "id": 3334,
1153 "isConstant": false,
1154 "isLValue": false,
1155 "isPure": false,
1156 "lValueRequested": false,
1157 "memberName": "isProviderInitiated",
1158 "nodeType": "MemberAccess",
1159 "referencedDeclaration": 11279,
1160 "src": "1087:28:16",
1161 "typeDescriptions": {
1162 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
1163 "typeString": "function (address) view external returns (bool)"
1164 }
1165 },
1166 "id": 3338,
1167 "isConstant": false,
1168 "isLValue": false,
1169 "isPure": false,
1170 "kind": "functionCall",
1171 "lValueRequested": false,
1172 "names": [],
1173 "nodeType": "FunctionCall",
1174 "src": "1087:43:16",
1175 "typeDescriptions": {
1176 "typeIdentifier": "t_bool",
1177 "typeString": "bool"
1178 }
1179 },
1180 {
1181 "argumentTypes": null,
1182 "hexValue": "50726f7669646572206e6f7420696e746969616c697a6564",
1183 "id": 3339,
1184 "isConstant": false,
1185 "isLValue": false,
1186 "isPure": true,
1187 "kind": "string",
1188 "lValueRequested": false,
1189 "nodeType": "Literal",
1190 "src": "1132:26:16",
1191 "subdenomination": null,
1192 "typeDescriptions": {
1193 "typeIdentifier": "t_stringliteral_676ee250bffab29cec343e244d7bae7b9d389827be24933caa07ae78fdbc26cc",
1194 "typeString": "literal_string \"Provider not intiialized\""
1195 },
1196 "value": "Provider not intiialized"
1197 }
1198 ],
1199 "expression": {
1200 "argumentTypes": [
1201 {
1202 "typeIdentifier": "t_bool",
1203 "typeString": "bool"
1204 },
1205 {
1206 "typeIdentifier": "t_stringliteral_676ee250bffab29cec343e244d7bae7b9d389827be24933caa07ae78fdbc26cc",
1207 "typeString": "literal_string \"Provider not intiialized\""
1208 }
1209 ],
1210 "id": 3332,
1211 "name": "require",
1212 "nodeType": "Identifier",
1213 "overloadedDeclarations": [
1214 12095,
1215 12096
1216 ],
1217 "referencedDeclaration": 12096,
1218 "src": "1079:7:16",
1219 "typeDescriptions": {
1220 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
1221 "typeString": "function (bool,string memory) pure"
1222 }
1223 },
1224 "id": 3340,
1225 "isConstant": false,
1226 "isLValue": false,
1227 "isPure": false,
1228 "kind": "functionCall",
1229 "lValueRequested": false,
1230 "names": [],
1231 "nodeType": "FunctionCall",
1232 "src": "1079:80:16",
1233 "typeDescriptions": {
1234 "typeIdentifier": "t_tuple$__$",
1235 "typeString": "tuple()"
1236 }
1237 },
1238 "id": 3341,
1239 "nodeType": "ExpressionStatement",
1240 "src": "1079:80:16"
1241 },
1242 {
1243 "expression": {
1244 "argumentTypes": null,
1245 "arguments": [
1246 {
1247 "argumentTypes": null,
1248 "id": 3344,
1249 "name": "specifier",
1250 "nodeType": "Identifier",
1251 "overloadedDeclarations": [],
1252 "referencedDeclaration": 3313,
1253 "src": "1208:9:16",
1254 "typeDescriptions": {
1255 "typeIdentifier": "t_bytes32",
1256 "typeString": "bytes32"
1257 }
1258 },
1259 {
1260 "argumentTypes": null,
1261 "id": 3345,
1262 "name": "curve",
1263 "nodeType": "Identifier",
1264 "overloadedDeclarations": [],
1265 "referencedDeclaration": 3316,
1266 "src": "1219:5:16",
1267 "typeDescriptions": {
1268 "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
1269 "typeString": "int256[] memory"
1270 }
1271 },
1272 {
1273 "argumentTypes": null,
1274 "arguments": [
1275 {
1276 "argumentTypes": null,
1277 "hexValue": "30",
1278 "id": 3347,
1279 "isConstant": false,
1280 "isLValue": false,
1281 "isPure": true,
1282 "kind": "number",
1283 "lValueRequested": false,
1284 "nodeType": "Literal",
1285 "src": "1234:1:16",
1286 "subdenomination": null,
1287 "typeDescriptions": {
1288 "typeIdentifier": "t_rational_0_by_1",
1289 "typeString": "int_const 0"
1290 },
1291 "value": "0"
1292 }
1293 ],
1294 "expression": {
1295 "argumentTypes": [
1296 {
1297 "typeIdentifier": "t_rational_0_by_1",
1298 "typeString": "int_const 0"
1299 }
1300 ],
1301 "id": 3346,
1302 "isConstant": false,
1303 "isLValue": false,
1304 "isPure": true,
1305 "lValueRequested": false,
1306 "nodeType": "ElementaryTypeNameExpression",
1307 "src": "1226:7:16",
1308 "typeDescriptions": {
1309 "typeIdentifier": "t_type$_t_address_$",
1310 "typeString": "type(address)"
1311 },
1312 "typeName": "address"
1313 },
1314 "id": 3348,
1315 "isConstant": false,
1316 "isLValue": false,
1317 "isPure": true,
1318 "kind": "typeConversion",
1319 "lValueRequested": false,
1320 "names": [],
1321 "nodeType": "FunctionCall",
1322 "src": "1226:10:16",
1323 "typeDescriptions": {
1324 "typeIdentifier": "t_address",
1325 "typeString": "address"
1326 }
1327 }
1328 ],
1329 "expression": {
1330 "argumentTypes": [
1331 {
1332 "typeIdentifier": "t_bytes32",
1333 "typeString": "bytes32"
1334 },
1335 {
1336 "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
1337 "typeString": "int256[] memory"
1338 },
1339 {
1340 "typeIdentifier": "t_address",
1341 "typeString": "address"
1342 }
1343 ],
1344 "expression": {
1345 "argumentTypes": null,
1346 "id": 3342,
1347 "name": "registry",
1348 "nodeType": "Identifier",
1349 "overloadedDeclarations": [],
1350 "referencedDeclaration": 3324,
1351 "src": "1177:8:16",
1352 "typeDescriptions": {
1353 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
1354 "typeString": "contract RegistryInterface"
1355 }
1356 },
1357 "id": 3343,
1358 "isConstant": false,
1359 "isLValue": false,
1360 "isPure": false,
1361 "lValueRequested": false,
1362 "memberName": "initiateProviderCurve",
1363 "nodeType": "MemberAccess",
1364 "referencedDeclaration": 11187,
1365 "src": "1177:30:16",
1366 "typeDescriptions": {
1367 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_int256_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$",
1368 "typeString": "function (bytes32,int256[] memory,address) external returns (bool)"
1369 }
1370 },
1371 "id": 3349,
1372 "isConstant": false,
1373 "isLValue": false,
1374 "isPure": false,
1375 "kind": "functionCall",
1376 "lValueRequested": false,
1377 "names": [],
1378 "nodeType": "FunctionCall",
1379 "src": "1177:60:16",
1380 "typeDescriptions": {
1381 "typeIdentifier": "t_bool",
1382 "typeString": "bool"
1383 }
1384 },
1385 "functionReturnParameters": 3322,
1386 "id": 3350,
1387 "nodeType": "Return",
1388 "src": "1170:67:16"
1389 }
1390 ]
1391 },
1392 "documentation": null,
1393 "id": 3352,
1394 "implemented": true,
1395 "isConstructor": false,
1396 "isDeclaredConst": false,
1397 "modifiers": [
1398 {
1399 "arguments": null,
1400 "id": 3319,
1401 "modifierName": {
1402 "argumentTypes": null,
1403 "id": 3318,
1404 "name": "onlyOwner",
1405 "nodeType": "Identifier",
1406 "overloadedDeclarations": [],
1407 "referencedDeclaration": 177,
1408 "src": "941:9:16",
1409 "typeDescriptions": {
1410 "typeIdentifier": "t_modifier$__$",
1411 "typeString": "modifier ()"
1412 }
1413 },
1414 "nodeType": "ModifierInvocation",
1415 "src": "941:9:16"
1416 }
1417 ],
1418 "name": "initializeCurve",
1419 "nodeType": "FunctionDefinition",
1420 "parameters": {
1421 "id": 3317,
1422 "nodeType": "ParameterList",
1423 "parameters": [
1424 {
1425 "constant": false,
1426 "id": 3313,
1427 "name": "specifier",
1428 "nodeType": "VariableDeclaration",
1429 "scope": 3352,
1430 "src": "892:17:16",
1431 "stateVariable": false,
1432 "storageLocation": "default",
1433 "typeDescriptions": {
1434 "typeIdentifier": "t_bytes32",
1435 "typeString": "bytes32"
1436 },
1437 "typeName": {
1438 "id": 3312,
1439 "name": "bytes32",
1440 "nodeType": "ElementaryTypeName",
1441 "src": "892:7:16",
1442 "typeDescriptions": {
1443 "typeIdentifier": "t_bytes32",
1444 "typeString": "bytes32"
1445 }
1446 },
1447 "value": null,
1448 "visibility": "internal"
1449 },
1450 {
1451 "constant": false,
1452 "id": 3316,
1453 "name": "curve",
1454 "nodeType": "VariableDeclaration",
1455 "scope": 3352,
1456 "src": "920:14:16",
1457 "stateVariable": false,
1458 "storageLocation": "default",
1459 "typeDescriptions": {
1460 "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
1461 "typeString": "int256[]"
1462 },
1463 "typeName": {
1464 "baseType": {
1465 "id": 3314,
1466 "name": "int256",
1467 "nodeType": "ElementaryTypeName",
1468 "src": "920:6:16",
1469 "typeDescriptions": {
1470 "typeIdentifier": "t_int256",
1471 "typeString": "int256"
1472 }
1473 },
1474 "id": 3315,
1475 "length": null,
1476 "nodeType": "ArrayTypeName",
1477 "src": "920:8:16",
1478 "typeDescriptions": {
1479 "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
1480 "typeString": "int256[]"
1481 }
1482 },
1483 "value": null,
1484 "visibility": "internal"
1485 }
1486 ],
1487 "src": "882:58:16"
1488 },
1489 "payable": false,
1490 "returnParameters": {
1491 "id": 3322,
1492 "nodeType": "ParameterList",
1493 "parameters": [
1494 {
1495 "constant": false,
1496 "id": 3321,
1497 "name": "",
1498 "nodeType": "VariableDeclaration",
1499 "scope": 3352,
1500 "src": "966:4:16",
1501 "stateVariable": false,
1502 "storageLocation": "default",
1503 "typeDescriptions": {
1504 "typeIdentifier": "t_bool",
1505 "typeString": "bool"
1506 },
1507 "typeName": {
1508 "id": 3320,
1509 "name": "bool",
1510 "nodeType": "ElementaryTypeName",
1511 "src": "966:4:16",
1512 "typeDescriptions": {
1513 "typeIdentifier": "t_bool",
1514 "typeString": "bool"
1515 }
1516 },
1517 "value": null,
1518 "visibility": "internal"
1519 }
1520 ],
1521 "src": "965:6:16"
1522 },
1523 "scope": 3453,
1524 "src": "858:386:16",
1525 "stateMutability": "nonpayable",
1526 "superFunction": null,
1527 "visibility": "public"
1528 },
1529 {
1530 "body": {
1531 "id": 3377,
1532 "nodeType": "Block",
1533 "src": "1323:128:16",
1534 "statements": [
1535 {
1536 "expression": {
1537 "argumentTypes": null,
1538 "id": 3368,
1539 "isConstant": false,
1540 "isLValue": false,
1541 "isPure": false,
1542 "lValueRequested": false,
1543 "leftHandSide": {
1544 "argumentTypes": null,
1545 "id": 3361,
1546 "name": "registry",
1547 "nodeType": "Identifier",
1548 "overloadedDeclarations": [],
1549 "referencedDeclaration": 3277,
1550 "src": "1334:8:16",
1551 "typeDescriptions": {
1552 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
1553 "typeString": "contract RegistryInterface"
1554 }
1555 },
1556 "nodeType": "Assignment",
1557 "operator": "=",
1558 "rightHandSide": {
1559 "argumentTypes": null,
1560 "arguments": [
1561 {
1562 "argumentTypes": null,
1563 "arguments": [
1564 {
1565 "argumentTypes": null,
1566 "hexValue": "5245474953545259",
1567 "id": 3365,
1568 "isConstant": false,
1569 "isLValue": false,
1570 "isPure": true,
1571 "kind": "string",
1572 "lValueRequested": false,
1573 "nodeType": "Literal",
1574 "src": "1381:10:16",
1575 "subdenomination": null,
1576 "typeDescriptions": {
1577 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
1578 "typeString": "literal_string \"REGISTRY\""
1579 },
1580 "value": "REGISTRY"
1581 }
1582 ],
1583 "expression": {
1584 "argumentTypes": [
1585 {
1586 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
1587 "typeString": "literal_string \"REGISTRY\""
1588 }
1589 ],
1590 "expression": {
1591 "argumentTypes": null,
1592 "id": 3363,
1593 "name": "coord",
1594 "nodeType": "Identifier",
1595 "overloadedDeclarations": [],
1596 "referencedDeclaration": 3275,
1597 "src": "1363:5:16",
1598 "typeDescriptions": {
1599 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
1600 "typeString": "contract ZapCoordinatorInterface"
1601 }
1602 },
1603 "id": 3364,
1604 "isConstant": false,
1605 "isLValue": false,
1606 "isPure": false,
1607 "lValueRequested": false,
1608 "memberName": "getContract",
1609 "nodeType": "MemberAccess",
1610 "referencedDeclaration": 489,
1611 "src": "1363:17:16",
1612 "typeDescriptions": {
1613 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
1614 "typeString": "function (string memory) view external returns (address)"
1615 }
1616 },
1617 "id": 3366,
1618 "isConstant": false,
1619 "isLValue": false,
1620 "isPure": false,
1621 "kind": "functionCall",
1622 "lValueRequested": false,
1623 "names": [],
1624 "nodeType": "FunctionCall",
1625 "src": "1363:29:16",
1626 "typeDescriptions": {
1627 "typeIdentifier": "t_address",
1628 "typeString": "address"
1629 }
1630 }
1631 ],
1632 "expression": {
1633 "argumentTypes": [
1634 {
1635 "typeIdentifier": "t_address",
1636 "typeString": "address"
1637 }
1638 ],
1639 "id": 3362,
1640 "name": "RegistryInterface",
1641 "nodeType": "Identifier",
1642 "overloadedDeclarations": [],
1643 "referencedDeclaration": 11303,
1644 "src": "1345:17:16",
1645 "typeDescriptions": {
1646 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
1647 "typeString": "type(contract RegistryInterface)"
1648 }
1649 },
1650 "id": 3367,
1651 "isConstant": false,
1652 "isLValue": false,
1653 "isPure": false,
1654 "kind": "typeConversion",
1655 "lValueRequested": false,
1656 "names": [],
1657 "nodeType": "FunctionCall",
1658 "src": "1345:48:16",
1659 "typeDescriptions": {
1660 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
1661 "typeString": "contract RegistryInterface"
1662 }
1663 },
1664 "src": "1334:59:16",
1665 "typeDescriptions": {
1666 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
1667 "typeString": "contract RegistryInterface"
1668 }
1669 },
1670 "id": 3369,
1671 "nodeType": "ExpressionStatement",
1672 "src": "1334:59:16"
1673 },
1674 {
1675 "expression": {
1676 "argumentTypes": null,
1677 "arguments": [
1678 {
1679 "argumentTypes": null,
1680 "id": 3373,
1681 "name": "key",
1682 "nodeType": "Identifier",
1683 "overloadedDeclarations": [],
1684 "referencedDeclaration": 3354,
1685 "src": "1433:3:16",
1686 "typeDescriptions": {
1687 "typeIdentifier": "t_bytes32",
1688 "typeString": "bytes32"
1689 }
1690 },
1691 {
1692 "argumentTypes": null,
1693 "id": 3374,
1694 "name": "value",
1695 "nodeType": "Identifier",
1696 "overloadedDeclarations": [],
1697 "referencedDeclaration": 3356,
1698 "src": "1438:5:16",
1699 "typeDescriptions": {
1700 "typeIdentifier": "t_bytes_memory_ptr",
1701 "typeString": "bytes memory"
1702 }
1703 }
1704 ],
1705 "expression": {
1706 "argumentTypes": [
1707 {
1708 "typeIdentifier": "t_bytes32",
1709 "typeString": "bytes32"
1710 },
1711 {
1712 "typeIdentifier": "t_bytes_memory_ptr",
1713 "typeString": "bytes memory"
1714 }
1715 ],
1716 "expression": {
1717 "argumentTypes": null,
1718 "id": 3370,
1719 "name": "registry",
1720 "nodeType": "Identifier",
1721 "overloadedDeclarations": [],
1722 "referencedDeclaration": 3277,
1723 "src": "1403:8:16",
1724 "typeDescriptions": {
1725 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
1726 "typeString": "contract RegistryInterface"
1727 }
1728 },
1729 "id": 3372,
1730 "isConstant": false,
1731 "isLValue": false,
1732 "isPure": false,
1733 "lValueRequested": false,
1734 "memberName": "setProviderParameter",
1735 "nodeType": "MemberAccess",
1736 "referencedDeclaration": 11226,
1737 "src": "1403:29:16",
1738 "typeDescriptions": {
1739 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
1740 "typeString": "function (bytes32,bytes memory) external"
1741 }
1742 },
1743 "id": 3375,
1744 "isConstant": false,
1745 "isLValue": false,
1746 "isPure": false,
1747 "kind": "functionCall",
1748 "lValueRequested": false,
1749 "names": [],
1750 "nodeType": "FunctionCall",
1751 "src": "1403:41:16",
1752 "typeDescriptions": {
1753 "typeIdentifier": "t_tuple$__$",
1754 "typeString": "tuple()"
1755 }
1756 },
1757 "id": 3376,
1758 "nodeType": "ExpressionStatement",
1759 "src": "1403:41:16"
1760 }
1761 ]
1762 },
1763 "documentation": null,
1764 "id": 3378,
1765 "implemented": true,
1766 "isConstructor": false,
1767 "isDeclaredConst": false,
1768 "modifiers": [
1769 {
1770 "arguments": null,
1771 "id": 3359,
1772 "modifierName": {
1773 "argumentTypes": null,
1774 "id": 3358,
1775 "name": "onlyOwner",
1776 "nodeType": "Identifier",
1777 "overloadedDeclarations": [],
1778 "referencedDeclaration": 177,
1779 "src": "1306:9:16",
1780 "typeDescriptions": {
1781 "typeIdentifier": "t_modifier$__$",
1782 "typeString": "modifier ()"
1783 }
1784 },
1785 "nodeType": "ModifierInvocation",
1786 "src": "1306:9:16"
1787 }
1788 ],
1789 "name": "setProviderParameter",
1790 "nodeType": "FunctionDefinition",
1791 "parameters": {
1792 "id": 3357,
1793 "nodeType": "ParameterList",
1794 "parameters": [
1795 {
1796 "constant": false,
1797 "id": 3354,
1798 "name": "key",
1799 "nodeType": "VariableDeclaration",
1800 "scope": 3378,
1801 "src": "1280:11:16",
1802 "stateVariable": false,
1803 "storageLocation": "default",
1804 "typeDescriptions": {
1805 "typeIdentifier": "t_bytes32",
1806 "typeString": "bytes32"
1807 },
1808 "typeName": {
1809 "id": 3353,
1810 "name": "bytes32",
1811 "nodeType": "ElementaryTypeName",
1812 "src": "1280:7:16",
1813 "typeDescriptions": {
1814 "typeIdentifier": "t_bytes32",
1815 "typeString": "bytes32"
1816 }
1817 },
1818 "value": null,
1819 "visibility": "internal"
1820 },
1821 {
1822 "constant": false,
1823 "id": 3356,
1824 "name": "value",
1825 "nodeType": "VariableDeclaration",
1826 "scope": 3378,
1827 "src": "1293:11:16",
1828 "stateVariable": false,
1829 "storageLocation": "default",
1830 "typeDescriptions": {
1831 "typeIdentifier": "t_bytes_memory_ptr",
1832 "typeString": "bytes"
1833 },
1834 "typeName": {
1835 "id": 3355,
1836 "name": "bytes",
1837 "nodeType": "ElementaryTypeName",
1838 "src": "1293:5:16",
1839 "typeDescriptions": {
1840 "typeIdentifier": "t_bytes_storage_ptr",
1841 "typeString": "bytes"
1842 }
1843 },
1844 "value": null,
1845 "visibility": "internal"
1846 }
1847 ],
1848 "src": "1279:26:16"
1849 },
1850 "payable": false,
1851 "returnParameters": {
1852 "id": 3360,
1853 "nodeType": "ParameterList",
1854 "parameters": [],
1855 "src": "1323:0:16"
1856 },
1857 "scope": 3453,
1858 "src": "1250:201:16",
1859 "stateMutability": "nonpayable",
1860 "superFunction": null,
1861 "visibility": "public"
1862 },
1863 {
1864 "body": {
1865 "id": 3404,
1866 "nodeType": "Block",
1867 "src": "1545:139:16",
1868 "statements": [
1869 {
1870 "expression": {
1871 "argumentTypes": null,
1872 "id": 3395,
1873 "isConstant": false,
1874 "isLValue": false,
1875 "isPure": false,
1876 "lValueRequested": false,
1877 "leftHandSide": {
1878 "argumentTypes": null,
1879 "id": 3388,
1880 "name": "registry",
1881 "nodeType": "Identifier",
1882 "overloadedDeclarations": [],
1883 "referencedDeclaration": 3277,
1884 "src": "1556:8:16",
1885 "typeDescriptions": {
1886 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
1887 "typeString": "contract RegistryInterface"
1888 }
1889 },
1890 "nodeType": "Assignment",
1891 "operator": "=",
1892 "rightHandSide": {
1893 "argumentTypes": null,
1894 "arguments": [
1895 {
1896 "argumentTypes": null,
1897 "arguments": [
1898 {
1899 "argumentTypes": null,
1900 "hexValue": "5245474953545259",
1901 "id": 3392,
1902 "isConstant": false,
1903 "isLValue": false,
1904 "isPure": true,
1905 "kind": "string",
1906 "lValueRequested": false,
1907 "nodeType": "Literal",
1908 "src": "1603:10:16",
1909 "subdenomination": null,
1910 "typeDescriptions": {
1911 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
1912 "typeString": "literal_string \"REGISTRY\""
1913 },
1914 "value": "REGISTRY"
1915 }
1916 ],
1917 "expression": {
1918 "argumentTypes": [
1919 {
1920 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
1921 "typeString": "literal_string \"REGISTRY\""
1922 }
1923 ],
1924 "expression": {
1925 "argumentTypes": null,
1926 "id": 3390,
1927 "name": "coord",
1928 "nodeType": "Identifier",
1929 "overloadedDeclarations": [],
1930 "referencedDeclaration": 3275,
1931 "src": "1585:5:16",
1932 "typeDescriptions": {
1933 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
1934 "typeString": "contract ZapCoordinatorInterface"
1935 }
1936 },
1937 "id": 3391,
1938 "isConstant": false,
1939 "isLValue": false,
1940 "isPure": false,
1941 "lValueRequested": false,
1942 "memberName": "getContract",
1943 "nodeType": "MemberAccess",
1944 "referencedDeclaration": 489,
1945 "src": "1585:17:16",
1946 "typeDescriptions": {
1947 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
1948 "typeString": "function (string memory) view external returns (address)"
1949 }
1950 },
1951 "id": 3393,
1952 "isConstant": false,
1953 "isLValue": false,
1954 "isPure": false,
1955 "kind": "functionCall",
1956 "lValueRequested": false,
1957 "names": [],
1958 "nodeType": "FunctionCall",
1959 "src": "1585:29:16",
1960 "typeDescriptions": {
1961 "typeIdentifier": "t_address",
1962 "typeString": "address"
1963 }
1964 }
1965 ],
1966 "expression": {
1967 "argumentTypes": [
1968 {
1969 "typeIdentifier": "t_address",
1970 "typeString": "address"
1971 }
1972 ],
1973 "id": 3389,
1974 "name": "RegistryInterface",
1975 "nodeType": "Identifier",
1976 "overloadedDeclarations": [],
1977 "referencedDeclaration": 11303,
1978 "src": "1567:17:16",
1979 "typeDescriptions": {
1980 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
1981 "typeString": "type(contract RegistryInterface)"
1982 }
1983 },
1984 "id": 3394,
1985 "isConstant": false,
1986 "isLValue": false,
1987 "isPure": false,
1988 "kind": "typeConversion",
1989 "lValueRequested": false,
1990 "names": [],
1991 "nodeType": "FunctionCall",
1992 "src": "1567:48:16",
1993 "typeDescriptions": {
1994 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
1995 "typeString": "contract RegistryInterface"
1996 }
1997 },
1998 "src": "1556:59:16",
1999 "typeDescriptions": {
2000 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
2001 "typeString": "contract RegistryInterface"
2002 }
2003 },
2004 "id": 3396,
2005 "nodeType": "ExpressionStatement",
2006 "src": "1556:59:16"
2007 },
2008 {
2009 "expression": {
2010 "argumentTypes": null,
2011 "arguments": [
2012 {
2013 "argumentTypes": null,
2014 "id": 3400,
2015 "name": "endpoint",
2016 "nodeType": "Identifier",
2017 "overloadedDeclarations": [],
2018 "referencedDeclaration": 3380,
2019 "src": "1652:8:16",
2020 "typeDescriptions": {
2021 "typeIdentifier": "t_bytes32",
2022 "typeString": "bytes32"
2023 }
2024 },
2025 {
2026 "argumentTypes": null,
2027 "id": 3401,
2028 "name": "endpointParams",
2029 "nodeType": "Identifier",
2030 "overloadedDeclarations": [],
2031 "referencedDeclaration": 3383,
2032 "src": "1662:14:16",
2033 "typeDescriptions": {
2034 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
2035 "typeString": "bytes32[] memory"
2036 }
2037 }
2038 ],
2039 "expression": {
2040 "argumentTypes": [
2041 {
2042 "typeIdentifier": "t_bytes32",
2043 "typeString": "bytes32"
2044 },
2045 {
2046 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
2047 "typeString": "bytes32[] memory"
2048 }
2049 ],
2050 "expression": {
2051 "argumentTypes": null,
2052 "id": 3397,
2053 "name": "registry",
2054 "nodeType": "Identifier",
2055 "overloadedDeclarations": [],
2056 "referencedDeclaration": 3277,
2057 "src": "1625:8:16",
2058 "typeDescriptions": {
2059 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
2060 "typeString": "contract RegistryInterface"
2061 }
2062 },
2063 "id": 3399,
2064 "isConstant": false,
2065 "isLValue": false,
2066 "isPure": false,
2067 "lValueRequested": false,
2068 "memberName": "setEndpointParams",
2069 "nodeType": "MemberAccess",
2070 "referencedDeclaration": 11195,
2071 "src": "1625:26:16",
2072 "typeDescriptions": {
2073 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
2074 "typeString": "function (bytes32,bytes32[] memory) external"
2075 }
2076 },
2077 "id": 3402,
2078 "isConstant": false,
2079 "isLValue": false,
2080 "isPure": false,
2081 "kind": "functionCall",
2082 "lValueRequested": false,
2083 "names": [],
2084 "nodeType": "FunctionCall",
2085 "src": "1625:52:16",
2086 "typeDescriptions": {
2087 "typeIdentifier": "t_tuple$__$",
2088 "typeString": "tuple()"
2089 }
2090 },
2091 "id": 3403,
2092 "nodeType": "ExpressionStatement",
2093 "src": "1625:52:16"
2094 }
2095 ]
2096 },
2097 "documentation": null,
2098 "id": 3405,
2099 "implemented": true,
2100 "isConstructor": false,
2101 "isDeclaredConst": false,
2102 "modifiers": [
2103 {
2104 "arguments": null,
2105 "id": 3386,
2106 "modifierName": {
2107 "argumentTypes": null,
2108 "id": 3385,
2109 "name": "onlyOwner",
2110 "nodeType": "Identifier",
2111 "overloadedDeclarations": [],
2112 "referencedDeclaration": 177,
2113 "src": "1528:9:16",
2114 "typeDescriptions": {
2115 "typeIdentifier": "t_modifier$__$",
2116 "typeString": "modifier ()"
2117 }
2118 },
2119 "nodeType": "ModifierInvocation",
2120 "src": "1528:9:16"
2121 }
2122 ],
2123 "name": "setEndpointParams",
2124 "nodeType": "FunctionDefinition",
2125 "parameters": {
2126 "id": 3384,
2127 "nodeType": "ParameterList",
2128 "parameters": [
2129 {
2130 "constant": false,
2131 "id": 3380,
2132 "name": "endpoint",
2133 "nodeType": "VariableDeclaration",
2134 "scope": 3405,
2135 "src": "1484:16:16",
2136 "stateVariable": false,
2137 "storageLocation": "default",
2138 "typeDescriptions": {
2139 "typeIdentifier": "t_bytes32",
2140 "typeString": "bytes32"
2141 },
2142 "typeName": {
2143 "id": 3379,
2144 "name": "bytes32",
2145 "nodeType": "ElementaryTypeName",
2146 "src": "1484:7:16",
2147 "typeDescriptions": {
2148 "typeIdentifier": "t_bytes32",
2149 "typeString": "bytes32"
2150 }
2151 },
2152 "value": null,
2153 "visibility": "internal"
2154 },
2155 {
2156 "constant": false,
2157 "id": 3383,
2158 "name": "endpointParams",
2159 "nodeType": "VariableDeclaration",
2160 "scope": 3405,
2161 "src": "1502:24:16",
2162 "stateVariable": false,
2163 "storageLocation": "default",
2164 "typeDescriptions": {
2165 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
2166 "typeString": "bytes32[]"
2167 },
2168 "typeName": {
2169 "baseType": {
2170 "id": 3381,
2171 "name": "bytes32",
2172 "nodeType": "ElementaryTypeName",
2173 "src": "1502:7:16",
2174 "typeDescriptions": {
2175 "typeIdentifier": "t_bytes32",
2176 "typeString": "bytes32"
2177 }
2178 },
2179 "id": 3382,
2180 "length": null,
2181 "nodeType": "ArrayTypeName",
2182 "src": "1502:9:16",
2183 "typeDescriptions": {
2184 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2185 "typeString": "bytes32[]"
2186 }
2187 },
2188 "value": null,
2189 "visibility": "internal"
2190 }
2191 ],
2192 "src": "1483:44:16"
2193 },
2194 "payable": false,
2195 "returnParameters": {
2196 "id": 3387,
2197 "nodeType": "ParameterList",
2198 "parameters": [],
2199 "src": "1545:0:16"
2200 },
2201 "scope": 3453,
2202 "src": "1457:227:16",
2203 "stateMutability": "nonpayable",
2204 "superFunction": null,
2205 "visibility": "public"
2206 },
2207 {
2208 "body": {
2209 "id": 3451,
2210 "nodeType": "Block",
2211 "src": "1862:347:16",
2212 "statements": [
2213 {
2214 "eventCall": {
2215 "argumentTypes": null,
2216 "arguments": [
2217 {
2218 "argumentTypes": null,
2219 "id": 3420,
2220 "name": "userQuery",
2221 "nodeType": "Identifier",
2222 "overloadedDeclarations": [],
2223 "referencedDeclaration": 3409,
2224 "src": "1892:9:16",
2225 "typeDescriptions": {
2226 "typeIdentifier": "t_string_calldata_ptr",
2227 "typeString": "string calldata"
2228 }
2229 },
2230 {
2231 "argumentTypes": null,
2232 "id": 3421,
2233 "name": "endpoint",
2234 "nodeType": "Identifier",
2235 "overloadedDeclarations": [],
2236 "referencedDeclaration": 3411,
2237 "src": "1903:8:16",
2238 "typeDescriptions": {
2239 "typeIdentifier": "t_bytes32",
2240 "typeString": "bytes32"
2241 }
2242 },
2243 {
2244 "argumentTypes": null,
2245 "id": 3422,
2246 "name": "endpointParams",
2247 "nodeType": "Identifier",
2248 "overloadedDeclarations": [],
2249 "referencedDeclaration": 3414,
2250 "src": "1913:14:16",
2251 "typeDescriptions": {
2252 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
2253 "typeString": "bytes32[] calldata"
2254 }
2255 }
2256 ],
2257 "expression": {
2258 "argumentTypes": [
2259 {
2260 "typeIdentifier": "t_string_calldata_ptr",
2261 "typeString": "string calldata"
2262 },
2263 {
2264 "typeIdentifier": "t_bytes32",
2265 "typeString": "bytes32"
2266 },
2267 {
2268 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
2269 "typeString": "bytes32[] calldata"
2270 }
2271 ],
2272 "id": 3419,
2273 "name": "RecievedQuery",
2274 "nodeType": "Identifier",
2275 "overloadedDeclarations": [],
2276 "referencedDeclaration": 3273,
2277 "src": "1878:13:16",
2278 "typeDescriptions": {
2279 "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
2280 "typeString": "function (string memory,bytes32,bytes32[] memory)"
2281 }
2282 },
2283 "id": 3423,
2284 "isConstant": false,
2285 "isLValue": false,
2286 "isPure": false,
2287 "kind": "functionCall",
2288 "lValueRequested": false,
2289 "names": [],
2290 "nodeType": "FunctionCall",
2291 "src": "1878:50:16",
2292 "typeDescriptions": {
2293 "typeIdentifier": "t_tuple$__$",
2294 "typeString": "tuple()"
2295 }
2296 },
2297 "id": 3424,
2298 "nodeType": "EmitStatement",
2299 "src": "1873:55:16"
2300 },
2301 {
2302 "expression": {
2303 "argumentTypes": null,
2304 "id": 3432,
2305 "isConstant": false,
2306 "isLValue": false,
2307 "isPure": false,
2308 "lValueRequested": false,
2309 "leftHandSide": {
2310 "argumentTypes": null,
2311 "id": 3425,
2312 "name": "dispatch",
2313 "nodeType": "Identifier",
2314 "overloadedDeclarations": [],
2315 "referencedDeclaration": 3279,
2316 "src": "1947:8:16",
2317 "typeDescriptions": {
2318 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
2319 "typeString": "contract DispatchInterface"
2320 }
2321 },
2322 "nodeType": "Assignment",
2323 "operator": "=",
2324 "rightHandSide": {
2325 "argumentTypes": null,
2326 "arguments": [
2327 {
2328 "argumentTypes": null,
2329 "arguments": [
2330 {
2331 "argumentTypes": null,
2332 "hexValue": "4449535041544348",
2333 "id": 3429,
2334 "isConstant": false,
2335 "isLValue": false,
2336 "isPure": true,
2337 "kind": "string",
2338 "lValueRequested": false,
2339 "nodeType": "Literal",
2340 "src": "1994:10:16",
2341 "subdenomination": null,
2342 "typeDescriptions": {
2343 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
2344 "typeString": "literal_string \"DISPATCH\""
2345 },
2346 "value": "DISPATCH"
2347 }
2348 ],
2349 "expression": {
2350 "argumentTypes": [
2351 {
2352 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
2353 "typeString": "literal_string \"DISPATCH\""
2354 }
2355 ],
2356 "expression": {
2357 "argumentTypes": null,
2358 "id": 3427,
2359 "name": "coord",
2360 "nodeType": "Identifier",
2361 "overloadedDeclarations": [],
2362 "referencedDeclaration": 3275,
2363 "src": "1976:5:16",
2364 "typeDescriptions": {
2365 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
2366 "typeString": "contract ZapCoordinatorInterface"
2367 }
2368 },
2369 "id": 3428,
2370 "isConstant": false,
2371 "isLValue": false,
2372 "isPure": false,
2373 "lValueRequested": false,
2374 "memberName": "getContract",
2375 "nodeType": "MemberAccess",
2376 "referencedDeclaration": 489,
2377 "src": "1976:17:16",
2378 "typeDescriptions": {
2379 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
2380 "typeString": "function (string memory) view external returns (address)"
2381 }
2382 },
2383 "id": 3430,
2384 "isConstant": false,
2385 "isLValue": false,
2386 "isPure": false,
2387 "kind": "functionCall",
2388 "lValueRequested": false,
2389 "names": [],
2390 "nodeType": "FunctionCall",
2391 "src": "1976:29:16",
2392 "typeDescriptions": {
2393 "typeIdentifier": "t_address",
2394 "typeString": "address"
2395 }
2396 }
2397 ],
2398 "expression": {
2399 "argumentTypes": [
2400 {
2401 "typeIdentifier": "t_address",
2402 "typeString": "address"
2403 }
2404 ],
2405 "id": 3426,
2406 "name": "DispatchInterface",
2407 "nodeType": "Identifier",
2408 "overloadedDeclarations": [],
2409 "referencedDeclaration": 10147,
2410 "src": "1958:17:16",
2411 "typeDescriptions": {
2412 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
2413 "typeString": "type(contract DispatchInterface)"
2414 }
2415 },
2416 "id": 3431,
2417 "isConstant": false,
2418 "isLValue": false,
2419 "isPure": false,
2420 "kind": "typeConversion",
2421 "lValueRequested": false,
2422 "names": [],
2423 "nodeType": "FunctionCall",
2424 "src": "1958:48:16",
2425 "typeDescriptions": {
2426 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
2427 "typeString": "contract DispatchInterface"
2428 }
2429 },
2430 "src": "1947:59:16",
2431 "typeDescriptions": {
2432 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
2433 "typeString": "contract DispatchInterface"
2434 }
2435 },
2436 "id": 3433,
2437 "nodeType": "ExpressionStatement",
2438 "src": "1947:59:16"
2439 },
2440 {
2441 "condition": {
2442 "argumentTypes": null,
2443 "commonType": {
2444 "typeIdentifier": "t_bool",
2445 "typeString": "bool"
2446 },
2447 "id": 3441,
2448 "isConstant": false,
2449 "isLValue": false,
2450 "isPure": false,
2451 "lValueRequested": false,
2452 "leftExpression": {
2453 "argumentTypes": null,
2454 "id": 3434,
2455 "name": "onchainSubscriber",
2456 "nodeType": "Identifier",
2457 "overloadedDeclarations": [],
2458 "referencedDeclaration": 3416,
2459 "src": "2019:17:16",
2460 "typeDescriptions": {
2461 "typeIdentifier": "t_bool",
2462 "typeString": "bool"
2463 }
2464 },
2465 "nodeType": "BinaryOperation",
2466 "operator": "&&",
2467 "rightExpression": {
2468 "argumentTypes": null,
2469 "commonType": {
2470 "typeIdentifier": "t_address",
2471 "typeString": "address"
2472 },
2473 "id": 3440,
2474 "isConstant": false,
2475 "isLValue": false,
2476 "isPure": false,
2477 "lValueRequested": false,
2478 "leftExpression": {
2479 "argumentTypes": null,
2480 "expression": {
2481 "argumentTypes": null,
2482 "id": 3435,
2483 "name": "msg",
2484 "nodeType": "Identifier",
2485 "overloadedDeclarations": [],
2486 "referencedDeclaration": 12092,
2487 "src": "2040:3:16",
2488 "typeDescriptions": {
2489 "typeIdentifier": "t_magic_message",
2490 "typeString": "msg"
2491 }
2492 },
2493 "id": 3436,
2494 "isConstant": false,
2495 "isLValue": false,
2496 "isPure": false,
2497 "lValueRequested": false,
2498 "memberName": "sender",
2499 "nodeType": "MemberAccess",
2500 "referencedDeclaration": null,
2501 "src": "2040:10:16",
2502 "typeDescriptions": {
2503 "typeIdentifier": "t_address",
2504 "typeString": "address"
2505 }
2506 },
2507 "nodeType": "BinaryOperation",
2508 "operator": "==",
2509 "rightExpression": {
2510 "argumentTypes": null,
2511 "arguments": [
2512 {
2513 "argumentTypes": null,
2514 "id": 3438,
2515 "name": "dispatch",
2516 "nodeType": "Identifier",
2517 "overloadedDeclarations": [],
2518 "referencedDeclaration": 3279,
2519 "src": "2062:8:16",
2520 "typeDescriptions": {
2521 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
2522 "typeString": "contract DispatchInterface"
2523 }
2524 }
2525 ],
2526 "expression": {
2527 "argumentTypes": [
2528 {
2529 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
2530 "typeString": "contract DispatchInterface"
2531 }
2532 ],
2533 "id": 3437,
2534 "isConstant": false,
2535 "isLValue": false,
2536 "isPure": true,
2537 "lValueRequested": false,
2538 "nodeType": "ElementaryTypeNameExpression",
2539 "src": "2054:7:16",
2540 "typeDescriptions": {
2541 "typeIdentifier": "t_type$_t_address_$",
2542 "typeString": "type(address)"
2543 },
2544 "typeName": "address"
2545 },
2546 "id": 3439,
2547 "isConstant": false,
2548 "isLValue": false,
2549 "isPure": false,
2550 "kind": "typeConversion",
2551 "lValueRequested": false,
2552 "names": [],
2553 "nodeType": "FunctionCall",
2554 "src": "2054:17:16",
2555 "typeDescriptions": {
2556 "typeIdentifier": "t_address",
2557 "typeString": "address"
2558 }
2559 },
2560 "src": "2040:31:16",
2561 "typeDescriptions": {
2562 "typeIdentifier": "t_bool",
2563 "typeString": "bool"
2564 }
2565 },
2566 "src": "2019:52:16",
2567 "typeDescriptions": {
2568 "typeIdentifier": "t_bool",
2569 "typeString": "bool"
2570 }
2571 },
2572 "falseBody": null,
2573 "id": 3450,
2574 "nodeType": "IfStatement",
2575 "src": "2016:143:16",
2576 "trueBody": {
2577 "id": 3449,
2578 "nodeType": "Block",
2579 "src": "2073:86:16",
2580 "statements": [
2581 {
2582 "expression": {
2583 "argumentTypes": null,
2584 "arguments": [
2585 {
2586 "argumentTypes": null,
2587 "id": 3445,
2588 "name": "id",
2589 "nodeType": "Identifier",
2590 "overloadedDeclarations": [],
2591 "referencedDeclaration": 3407,
2592 "src": "2129:2:16",
2593 "typeDescriptions": {
2594 "typeIdentifier": "t_uint256",
2595 "typeString": "uint256"
2596 }
2597 },
2598 {
2599 "argumentTypes": null,
2600 "hexValue": "48656c6c6f20576f726c64",
2601 "id": 3446,
2602 "isConstant": false,
2603 "isLValue": false,
2604 "isPure": true,
2605 "kind": "string",
2606 "lValueRequested": false,
2607 "nodeType": "Literal",
2608 "src": "2133:13:16",
2609 "subdenomination": null,
2610 "typeDescriptions": {
2611 "typeIdentifier": "t_stringliteral_592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba",
2612 "typeString": "literal_string \"Hello World\""
2613 },
2614 "value": "Hello World"
2615 }
2616 ],
2617 "expression": {
2618 "argumentTypes": [
2619 {
2620 "typeIdentifier": "t_uint256",
2621 "typeString": "uint256"
2622 },
2623 {
2624 "typeIdentifier": "t_stringliteral_592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba",
2625 "typeString": "literal_string \"Hello World\""
2626 }
2627 ],
2628 "expression": {
2629 "argumentTypes": null,
2630 "id": 3442,
2631 "name": "dispatch",
2632 "nodeType": "Identifier",
2633 "overloadedDeclarations": [],
2634 "referencedDeclaration": 3279,
2635 "src": "2111:8:16",
2636 "typeDescriptions": {
2637 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
2638 "typeString": "contract DispatchInterface"
2639 }
2640 },
2641 "id": 3444,
2642 "isConstant": false,
2643 "isLValue": false,
2644 "isPure": false,
2645 "lValueRequested": false,
2646 "memberName": "respond1",
2647 "nodeType": "MemberAccess",
2648 "referencedDeclaration": 10033,
2649 "src": "2111:17:16",
2650 "typeDescriptions": {
2651 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$_t_bool_$",
2652 "typeString": "function (uint256,string memory) external returns (bool)"
2653 }
2654 },
2655 "id": 3447,
2656 "isConstant": false,
2657 "isLValue": false,
2658 "isPure": false,
2659 "kind": "functionCall",
2660 "lValueRequested": false,
2661 "names": [],
2662 "nodeType": "FunctionCall",
2663 "src": "2111:36:16",
2664 "typeDescriptions": {
2665 "typeIdentifier": "t_bool",
2666 "typeString": "bool"
2667 }
2668 },
2669 "id": 3448,
2670 "nodeType": "ExpressionStatement",
2671 "src": "2111:36:16"
2672 }
2673 ]
2674 }
2675 }
2676 ]
2677 },
2678 "documentation": null,
2679 "id": 3452,
2680 "implemented": true,
2681 "isConstructor": false,
2682 "isDeclaredConst": false,
2683 "modifiers": [],
2684 "name": "receive",
2685 "nodeType": "FunctionDefinition",
2686 "parameters": {
2687 "id": 3417,
2688 "nodeType": "ParameterList",
2689 "parameters": [
2690 {
2691 "constant": false,
2692 "id": 3407,
2693 "name": "id",
2694 "nodeType": "VariableDeclaration",
2695 "scope": 3452,
2696 "src": "1755:10:16",
2697 "stateVariable": false,
2698 "storageLocation": "default",
2699 "typeDescriptions": {
2700 "typeIdentifier": "t_uint256",
2701 "typeString": "uint256"
2702 },
2703 "typeName": {
2704 "id": 3406,
2705 "name": "uint256",
2706 "nodeType": "ElementaryTypeName",
2707 "src": "1755:7:16",
2708 "typeDescriptions": {
2709 "typeIdentifier": "t_uint256",
2710 "typeString": "uint256"
2711 }
2712 },
2713 "value": null,
2714 "visibility": "internal"
2715 },
2716 {
2717 "constant": false,
2718 "id": 3409,
2719 "name": "userQuery",
2720 "nodeType": "VariableDeclaration",
2721 "scope": 3452,
2722 "src": "1767:16:16",
2723 "stateVariable": false,
2724 "storageLocation": "default",
2725 "typeDescriptions": {
2726 "typeIdentifier": "t_string_calldata_ptr",
2727 "typeString": "string"
2728 },
2729 "typeName": {
2730 "id": 3408,
2731 "name": "string",
2732 "nodeType": "ElementaryTypeName",
2733 "src": "1767:6:16",
2734 "typeDescriptions": {
2735 "typeIdentifier": "t_string_storage_ptr",
2736 "typeString": "string"
2737 }
2738 },
2739 "value": null,
2740 "visibility": "internal"
2741 },
2742 {
2743 "constant": false,
2744 "id": 3411,
2745 "name": "endpoint",
2746 "nodeType": "VariableDeclaration",
2747 "scope": 3452,
2748 "src": "1785:16:16",
2749 "stateVariable": false,
2750 "storageLocation": "default",
2751 "typeDescriptions": {
2752 "typeIdentifier": "t_bytes32",
2753 "typeString": "bytes32"
2754 },
2755 "typeName": {
2756 "id": 3410,
2757 "name": "bytes32",
2758 "nodeType": "ElementaryTypeName",
2759 "src": "1785:7:16",
2760 "typeDescriptions": {
2761 "typeIdentifier": "t_bytes32",
2762 "typeString": "bytes32"
2763 }
2764 },
2765 "value": null,
2766 "visibility": "internal"
2767 },
2768 {
2769 "constant": false,
2770 "id": 3414,
2771 "name": "endpointParams",
2772 "nodeType": "VariableDeclaration",
2773 "scope": 3452,
2774 "src": "1803:24:16",
2775 "stateVariable": false,
2776 "storageLocation": "default",
2777 "typeDescriptions": {
2778 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
2779 "typeString": "bytes32[]"
2780 },
2781 "typeName": {
2782 "baseType": {
2783 "id": 3412,
2784 "name": "bytes32",
2785 "nodeType": "ElementaryTypeName",
2786 "src": "1803:7:16",
2787 "typeDescriptions": {
2788 "typeIdentifier": "t_bytes32",
2789 "typeString": "bytes32"
2790 }
2791 },
2792 "id": 3413,
2793 "length": null,
2794 "nodeType": "ArrayTypeName",
2795 "src": "1803:9:16",
2796 "typeDescriptions": {
2797 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2798 "typeString": "bytes32[]"
2799 }
2800 },
2801 "value": null,
2802 "visibility": "internal"
2803 },
2804 {
2805 "constant": false,
2806 "id": 3416,
2807 "name": "onchainSubscriber",
2808 "nodeType": "VariableDeclaration",
2809 "scope": 3452,
2810 "src": "1829:22:16",
2811 "stateVariable": false,
2812 "storageLocation": "default",
2813 "typeDescriptions": {
2814 "typeIdentifier": "t_bool",
2815 "typeString": "bool"
2816 },
2817 "typeName": {
2818 "id": 3415,
2819 "name": "bool",
2820 "nodeType": "ElementaryTypeName",
2821 "src": "1829:4:16",
2822 "typeDescriptions": {
2823 "typeIdentifier": "t_bool",
2824 "typeString": "bool"
2825 }
2826 },
2827 "value": null,
2828 "visibility": "internal"
2829 }
2830 ],
2831 "src": "1754:98:16"
2832 },
2833 "payable": false,
2834 "returnParameters": {
2835 "id": 3418,
2836 "nodeType": "ParameterList",
2837 "parameters": [],
2838 "src": "1862:0:16"
2839 },
2840 "scope": 3453,
2841 "src": "1738:471:16",
2842 "stateMutability": "nonpayable",
2843 "superFunction": 1825,
2844 "visibility": "external"
2845 }
2846 ],
2847 "scope": 3454,
2848 "src": "223:1989:16"
2849 }
2850 ],
2851 "src": "0:2213:16"
2852 },
2853 "legacyAST": {
2854 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/SampleOnChainOracle.sol",
2855 "exportedSymbols": {
2856 "SampleOnChainOracle": [
2857 3453
2858 ]
2859 },
2860 "id": 3454,
2861 "nodeType": "SourceUnit",
2862 "nodes": [
2863 {
2864 "id": 3256,
2865 "literals": [
2866 "solidity",
2867 "^",
2868 "0.4",
2869 ".24"
2870 ],
2871 "nodeType": "PragmaDirective",
2872 "src": "0:24:16"
2873 },
2874 {
2875 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/ownership/ZapCoordinatorInterface.sol",
2876 "file": "../ownership/ZapCoordinatorInterface.sol",
2877 "id": 3257,
2878 "nodeType": "ImportDirective",
2879 "scope": 3454,
2880 "sourceUnit": 494,
2881 "src": "26:50:16",
2882 "symbolAliases": [],
2883 "unitAlias": ""
2884 },
2885 {
2886 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/dispatch/DispatchInterface.sol",
2887 "file": "../../platform/dispatch/DispatchInterface.sol",
2888 "id": 3258,
2889 "nodeType": "ImportDirective",
2890 "scope": 3454,
2891 "sourceUnit": 10148,
2892 "src": "77:55:16",
2893 "symbolAliases": [],
2894 "unitAlias": ""
2895 },
2896 {
2897 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/registry/RegistryInterface.sol",
2898 "file": "../../platform/registry/RegistryInterface.sol",
2899 "id": 3259,
2900 "nodeType": "ImportDirective",
2901 "scope": 3454,
2902 "sourceUnit": 11304,
2903 "src": "133:55:16",
2904 "symbolAliases": [],
2905 "unitAlias": ""
2906 },
2907 {
2908 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/OnChainProvider.sol",
2909 "file": "./OnChainProvider.sol",
2910 "id": 3260,
2911 "nodeType": "ImportDirective",
2912 "scope": 3454,
2913 "sourceUnit": 1827,
2914 "src": "189:31:16",
2915 "symbolAliases": [],
2916 "unitAlias": ""
2917 },
2918 {
2919 "baseContracts": [
2920 {
2921 "arguments": null,
2922 "baseName": {
2923 "contractScope": null,
2924 "id": 3261,
2925 "name": "OnChainProvider",
2926 "nodeType": "UserDefinedTypeName",
2927 "referencedDeclaration": 1826,
2928 "src": "255:15:16",
2929 "typeDescriptions": {
2930 "typeIdentifier": "t_contract$_OnChainProvider_$1826",
2931 "typeString": "contract OnChainProvider"
2932 }
2933 },
2934 "id": 3262,
2935 "nodeType": "InheritanceSpecifier",
2936 "src": "255:15:16"
2937 },
2938 {
2939 "arguments": null,
2940 "baseName": {
2941 "contractScope": null,
2942 "id": 3263,
2943 "name": "Ownable",
2944 "nodeType": "UserDefinedTypeName",
2945 "referencedDeclaration": 203,
2946 "src": "272:7:16",
2947 "typeDescriptions": {
2948 "typeIdentifier": "t_contract$_Ownable_$203",
2949 "typeString": "contract Ownable"
2950 }
2951 },
2952 "id": 3264,
2953 "nodeType": "InheritanceSpecifier",
2954 "src": "272:7:16"
2955 }
2956 ],
2957 "contractDependencies": [
2958 203,
2959 1826
2960 ],
2961 "contractKind": "contract",
2962 "documentation": null,
2963 "fullyImplemented": true,
2964 "id": 3453,
2965 "linearizedBaseContracts": [
2966 3453,
2967 203,
2968 1826
2969 ],
2970 "name": "SampleOnChainOracle",
2971 "nodeType": "ContractDefinition",
2972 "nodes": [
2973 {
2974 "anonymous": false,
2975 "documentation": null,
2976 "id": 3273,
2977 "name": "RecievedQuery",
2978 "nodeType": "EventDefinition",
2979 "parameters": {
2980 "id": 3272,
2981 "nodeType": "ParameterList",
2982 "parameters": [
2983 {
2984 "constant": false,
2985 "id": 3266,
2986 "indexed": false,
2987 "name": "query",
2988 "nodeType": "VariableDeclaration",
2989 "scope": 3273,
2990 "src": "307:12:16",
2991 "stateVariable": false,
2992 "storageLocation": "default",
2993 "typeDescriptions": {
2994 "typeIdentifier": "t_string_memory_ptr",
2995 "typeString": "string"
2996 },
2997 "typeName": {
2998 "id": 3265,
2999 "name": "string",
3000 "nodeType": "ElementaryTypeName",
3001 "src": "307:6:16",
3002 "typeDescriptions": {
3003 "typeIdentifier": "t_string_storage_ptr",
3004 "typeString": "string"
3005 }
3006 },
3007 "value": null,
3008 "visibility": "internal"
3009 },
3010 {
3011 "constant": false,
3012 "id": 3268,
3013 "indexed": false,
3014 "name": "endpoint",
3015 "nodeType": "VariableDeclaration",
3016 "scope": 3273,
3017 "src": "321:16:16",
3018 "stateVariable": false,
3019 "storageLocation": "default",
3020 "typeDescriptions": {
3021 "typeIdentifier": "t_bytes32",
3022 "typeString": "bytes32"
3023 },
3024 "typeName": {
3025 "id": 3267,
3026 "name": "bytes32",
3027 "nodeType": "ElementaryTypeName",
3028 "src": "321:7:16",
3029 "typeDescriptions": {
3030 "typeIdentifier": "t_bytes32",
3031 "typeString": "bytes32"
3032 }
3033 },
3034 "value": null,
3035 "visibility": "internal"
3036 },
3037 {
3038 "constant": false,
3039 "id": 3271,
3040 "indexed": false,
3041 "name": "params",
3042 "nodeType": "VariableDeclaration",
3043 "scope": 3273,
3044 "src": "339:16:16",
3045 "stateVariable": false,
3046 "storageLocation": "default",
3047 "typeDescriptions": {
3048 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
3049 "typeString": "bytes32[]"
3050 },
3051 "typeName": {
3052 "baseType": {
3053 "id": 3269,
3054 "name": "bytes32",
3055 "nodeType": "ElementaryTypeName",
3056 "src": "339:7:16",
3057 "typeDescriptions": {
3058 "typeIdentifier": "t_bytes32",
3059 "typeString": "bytes32"
3060 }
3061 },
3062 "id": 3270,
3063 "length": null,
3064 "nodeType": "ArrayTypeName",
3065 "src": "339:9:16",
3066 "typeDescriptions": {
3067 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
3068 "typeString": "bytes32[]"
3069 }
3070 },
3071 "value": null,
3072 "visibility": "internal"
3073 }
3074 ],
3075 "src": "306:50:16"
3076 },
3077 "src": "287:70:16"
3078 },
3079 {
3080 "constant": false,
3081 "id": 3275,
3082 "name": "coord",
3083 "nodeType": "VariableDeclaration",
3084 "scope": 3453,
3085 "src": "363:29:16",
3086 "stateVariable": true,
3087 "storageLocation": "default",
3088 "typeDescriptions": {
3089 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
3090 "typeString": "contract ZapCoordinatorInterface"
3091 },
3092 "typeName": {
3093 "contractScope": null,
3094 "id": 3274,
3095 "name": "ZapCoordinatorInterface",
3096 "nodeType": "UserDefinedTypeName",
3097 "referencedDeclaration": 493,
3098 "src": "363:23:16",
3099 "typeDescriptions": {
3100 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
3101 "typeString": "contract ZapCoordinatorInterface"
3102 }
3103 },
3104 "value": null,
3105 "visibility": "internal"
3106 },
3107 {
3108 "constant": false,
3109 "id": 3277,
3110 "name": "registry",
3111 "nodeType": "VariableDeclaration",
3112 "scope": 3453,
3113 "src": "398:26:16",
3114 "stateVariable": true,
3115 "storageLocation": "default",
3116 "typeDescriptions": {
3117 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3118 "typeString": "contract RegistryInterface"
3119 },
3120 "typeName": {
3121 "contractScope": null,
3122 "id": 3276,
3123 "name": "RegistryInterface",
3124 "nodeType": "UserDefinedTypeName",
3125 "referencedDeclaration": 11303,
3126 "src": "398:17:16",
3127 "typeDescriptions": {
3128 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3129 "typeString": "contract RegistryInterface"
3130 }
3131 },
3132 "value": null,
3133 "visibility": "internal"
3134 },
3135 {
3136 "constant": false,
3137 "id": 3279,
3138 "name": "dispatch",
3139 "nodeType": "VariableDeclaration",
3140 "scope": 3453,
3141 "src": "430:26:16",
3142 "stateVariable": true,
3143 "storageLocation": "default",
3144 "typeDescriptions": {
3145 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
3146 "typeString": "contract DispatchInterface"
3147 },
3148 "typeName": {
3149 "contractScope": null,
3150 "id": 3278,
3151 "name": "DispatchInterface",
3152 "nodeType": "UserDefinedTypeName",
3153 "referencedDeclaration": 10147,
3154 "src": "430:17:16",
3155 "typeDescriptions": {
3156 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
3157 "typeString": "contract DispatchInterface"
3158 }
3159 },
3160 "value": null,
3161 "visibility": "internal"
3162 },
3163 {
3164 "body": {
3165 "id": 3310,
3166 "nodeType": "Block",
3167 "src": "600:217:16",
3168 "statements": [
3169 {
3170 "expression": {
3171 "argumentTypes": null,
3172 "id": 3292,
3173 "isConstant": false,
3174 "isLValue": false,
3175 "isPure": false,
3176 "lValueRequested": false,
3177 "leftHandSide": {
3178 "argumentTypes": null,
3179 "id": 3288,
3180 "name": "coord",
3181 "nodeType": "Identifier",
3182 "overloadedDeclarations": [],
3183 "referencedDeclaration": 3275,
3184 "src": "610:5:16",
3185 "typeDescriptions": {
3186 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
3187 "typeString": "contract ZapCoordinatorInterface"
3188 }
3189 },
3190 "nodeType": "Assignment",
3191 "operator": "=",
3192 "rightHandSide": {
3193 "argumentTypes": null,
3194 "arguments": [
3195 {
3196 "argumentTypes": null,
3197 "id": 3290,
3198 "name": "coordinator",
3199 "nodeType": "Identifier",
3200 "overloadedDeclarations": [],
3201 "referencedDeclaration": 3281,
3202 "src": "642:11:16",
3203 "typeDescriptions": {
3204 "typeIdentifier": "t_address",
3205 "typeString": "address"
3206 }
3207 }
3208 ],
3209 "expression": {
3210 "argumentTypes": [
3211 {
3212 "typeIdentifier": "t_address",
3213 "typeString": "address"
3214 }
3215 ],
3216 "id": 3289,
3217 "name": "ZapCoordinatorInterface",
3218 "nodeType": "Identifier",
3219 "overloadedDeclarations": [],
3220 "referencedDeclaration": 493,
3221 "src": "618:23:16",
3222 "typeDescriptions": {
3223 "typeIdentifier": "t_type$_t_contract$_ZapCoordinatorInterface_$493_$",
3224 "typeString": "type(contract ZapCoordinatorInterface)"
3225 }
3226 },
3227 "id": 3291,
3228 "isConstant": false,
3229 "isLValue": false,
3230 "isPure": false,
3231 "kind": "typeConversion",
3232 "lValueRequested": false,
3233 "names": [],
3234 "nodeType": "FunctionCall",
3235 "src": "618:36:16",
3236 "typeDescriptions": {
3237 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
3238 "typeString": "contract ZapCoordinatorInterface"
3239 }
3240 },
3241 "src": "610:44:16",
3242 "typeDescriptions": {
3243 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
3244 "typeString": "contract ZapCoordinatorInterface"
3245 }
3246 },
3247 "id": 3293,
3248 "nodeType": "ExpressionStatement",
3249 "src": "610:44:16"
3250 },
3251 {
3252 "assignments": [
3253 3295
3254 ],
3255 "declarations": [
3256 {
3257 "constant": false,
3258 "id": 3295,
3259 "name": "registry",
3260 "nodeType": "VariableDeclaration",
3261 "scope": 3311,
3262 "src": "666:26:16",
3263 "stateVariable": false,
3264 "storageLocation": "default",
3265 "typeDescriptions": {
3266 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3267 "typeString": "contract RegistryInterface"
3268 },
3269 "typeName": {
3270 "contractScope": null,
3271 "id": 3294,
3272 "name": "RegistryInterface",
3273 "nodeType": "UserDefinedTypeName",
3274 "referencedDeclaration": 11303,
3275 "src": "666:17:16",
3276 "typeDescriptions": {
3277 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3278 "typeString": "contract RegistryInterface"
3279 }
3280 },
3281 "value": null,
3282 "visibility": "internal"
3283 }
3284 ],
3285 "id": 3302,
3286 "initialValue": {
3287 "argumentTypes": null,
3288 "arguments": [
3289 {
3290 "argumentTypes": null,
3291 "arguments": [
3292 {
3293 "argumentTypes": null,
3294 "hexValue": "5245474953545259",
3295 "id": 3299,
3296 "isConstant": false,
3297 "isLValue": false,
3298 "isPure": true,
3299 "kind": "string",
3300 "lValueRequested": false,
3301 "nodeType": "Literal",
3302 "src": "731:10:16",
3303 "subdenomination": null,
3304 "typeDescriptions": {
3305 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
3306 "typeString": "literal_string \"REGISTRY\""
3307 },
3308 "value": "REGISTRY"
3309 }
3310 ],
3311 "expression": {
3312 "argumentTypes": [
3313 {
3314 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
3315 "typeString": "literal_string \"REGISTRY\""
3316 }
3317 ],
3318 "expression": {
3319 "argumentTypes": null,
3320 "id": 3297,
3321 "name": "coord",
3322 "nodeType": "Identifier",
3323 "overloadedDeclarations": [],
3324 "referencedDeclaration": 3275,
3325 "src": "713:5:16",
3326 "typeDescriptions": {
3327 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
3328 "typeString": "contract ZapCoordinatorInterface"
3329 }
3330 },
3331 "id": 3298,
3332 "isConstant": false,
3333 "isLValue": false,
3334 "isPure": false,
3335 "lValueRequested": false,
3336 "memberName": "getContract",
3337 "nodeType": "MemberAccess",
3338 "referencedDeclaration": 489,
3339 "src": "713:17:16",
3340 "typeDescriptions": {
3341 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
3342 "typeString": "function (string memory) view external returns (address)"
3343 }
3344 },
3345 "id": 3300,
3346 "isConstant": false,
3347 "isLValue": false,
3348 "isPure": false,
3349 "kind": "functionCall",
3350 "lValueRequested": false,
3351 "names": [],
3352 "nodeType": "FunctionCall",
3353 "src": "713:29:16",
3354 "typeDescriptions": {
3355 "typeIdentifier": "t_address",
3356 "typeString": "address"
3357 }
3358 }
3359 ],
3360 "expression": {
3361 "argumentTypes": [
3362 {
3363 "typeIdentifier": "t_address",
3364 "typeString": "address"
3365 }
3366 ],
3367 "id": 3296,
3368 "name": "RegistryInterface",
3369 "nodeType": "Identifier",
3370 "overloadedDeclarations": [],
3371 "referencedDeclaration": 11303,
3372 "src": "695:17:16",
3373 "typeDescriptions": {
3374 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
3375 "typeString": "type(contract RegistryInterface)"
3376 }
3377 },
3378 "id": 3301,
3379 "isConstant": false,
3380 "isLValue": false,
3381 "isPure": false,
3382 "kind": "typeConversion",
3383 "lValueRequested": false,
3384 "names": [],
3385 "nodeType": "FunctionCall",
3386 "src": "695:48:16",
3387 "typeDescriptions": {
3388 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3389 "typeString": "contract RegistryInterface"
3390 }
3391 },
3392 "nodeType": "VariableDeclarationStatement",
3393 "src": "666:77:16"
3394 },
3395 {
3396 "expression": {
3397 "argumentTypes": null,
3398 "arguments": [
3399 {
3400 "argumentTypes": null,
3401 "id": 3306,
3402 "name": "providerPubKey",
3403 "nodeType": "Identifier",
3404 "overloadedDeclarations": [],
3405 "referencedDeclaration": 3283,
3406 "src": "780:14:16",
3407 "typeDescriptions": {
3408 "typeIdentifier": "t_uint256",
3409 "typeString": "uint256"
3410 }
3411 },
3412 {
3413 "argumentTypes": null,
3414 "id": 3307,
3415 "name": "providerTitle",
3416 "nodeType": "Identifier",
3417 "overloadedDeclarations": [],
3418 "referencedDeclaration": 3285,
3419 "src": "796:13:16",
3420 "typeDescriptions": {
3421 "typeIdentifier": "t_bytes32",
3422 "typeString": "bytes32"
3423 }
3424 }
3425 ],
3426 "expression": {
3427 "argumentTypes": [
3428 {
3429 "typeIdentifier": "t_uint256",
3430 "typeString": "uint256"
3431 },
3432 {
3433 "typeIdentifier": "t_bytes32",
3434 "typeString": "bytes32"
3435 }
3436 ],
3437 "expression": {
3438 "argumentTypes": null,
3439 "id": 3303,
3440 "name": "registry",
3441 "nodeType": "Identifier",
3442 "overloadedDeclarations": [],
3443 "referencedDeclaration": 3295,
3444 "src": "754:8:16",
3445 "typeDescriptions": {
3446 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3447 "typeString": "contract RegistryInterface"
3448 }
3449 },
3450 "id": 3305,
3451 "isConstant": false,
3452 "isLValue": false,
3453 "isPure": false,
3454 "lValueRequested": false,
3455 "memberName": "initiateProvider",
3456 "nodeType": "MemberAccess",
3457 "referencedDeclaration": 11175,
3458 "src": "754:25:16",
3459 "typeDescriptions": {
3460 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
3461 "typeString": "function (uint256,bytes32) external returns (bool)"
3462 }
3463 },
3464 "id": 3308,
3465 "isConstant": false,
3466 "isLValue": false,
3467 "isPure": false,
3468 "kind": "functionCall",
3469 "lValueRequested": false,
3470 "names": [],
3471 "nodeType": "FunctionCall",
3472 "src": "754:56:16",
3473 "typeDescriptions": {
3474 "typeIdentifier": "t_bool",
3475 "typeString": "bool"
3476 }
3477 },
3478 "id": 3309,
3479 "nodeType": "ExpressionStatement",
3480 "src": "754:56:16"
3481 }
3482 ]
3483 },
3484 "documentation": null,
3485 "id": 3311,
3486 "implemented": true,
3487 "isConstructor": true,
3488 "isDeclaredConst": false,
3489 "modifiers": [],
3490 "name": "",
3491 "nodeType": "FunctionDefinition",
3492 "parameters": {
3493 "id": 3286,
3494 "nodeType": "ParameterList",
3495 "parameters": [
3496 {
3497 "constant": false,
3498 "id": 3281,
3499 "name": "coordinator",
3500 "nodeType": "VariableDeclaration",
3501 "scope": 3311,
3502 "src": "510:19:16",
3503 "stateVariable": false,
3504 "storageLocation": "default",
3505 "typeDescriptions": {
3506 "typeIdentifier": "t_address",
3507 "typeString": "address"
3508 },
3509 "typeName": {
3510 "id": 3280,
3511 "name": "address",
3512 "nodeType": "ElementaryTypeName",
3513 "src": "510:7:16",
3514 "typeDescriptions": {
3515 "typeIdentifier": "t_address",
3516 "typeString": "address"
3517 }
3518 },
3519 "value": null,
3520 "visibility": "internal"
3521 },
3522 {
3523 "constant": false,
3524 "id": 3283,
3525 "name": "providerPubKey",
3526 "nodeType": "VariableDeclaration",
3527 "scope": 3311,
3528 "src": "540:22:16",
3529 "stateVariable": false,
3530 "storageLocation": "default",
3531 "typeDescriptions": {
3532 "typeIdentifier": "t_uint256",
3533 "typeString": "uint256"
3534 },
3535 "typeName": {
3536 "id": 3282,
3537 "name": "uint256",
3538 "nodeType": "ElementaryTypeName",
3539 "src": "540:7:16",
3540 "typeDescriptions": {
3541 "typeIdentifier": "t_uint256",
3542 "typeString": "uint256"
3543 }
3544 },
3545 "value": null,
3546 "visibility": "internal"
3547 },
3548 {
3549 "constant": false,
3550 "id": 3285,
3551 "name": "providerTitle",
3552 "nodeType": "VariableDeclaration",
3553 "scope": 3311,
3554 "src": "572:21:16",
3555 "stateVariable": false,
3556 "storageLocation": "default",
3557 "typeDescriptions": {
3558 "typeIdentifier": "t_bytes32",
3559 "typeString": "bytes32"
3560 },
3561 "typeName": {
3562 "id": 3284,
3563 "name": "bytes32",
3564 "nodeType": "ElementaryTypeName",
3565 "src": "572:7:16",
3566 "typeDescriptions": {
3567 "typeIdentifier": "t_bytes32",
3568 "typeString": "bytes32"
3569 }
3570 },
3571 "value": null,
3572 "visibility": "internal"
3573 }
3574 ],
3575 "src": "500:100:16"
3576 },
3577 "payable": false,
3578 "returnParameters": {
3579 "id": 3287,
3580 "nodeType": "ParameterList",
3581 "parameters": [],
3582 "src": "600:0:16"
3583 },
3584 "scope": 3453,
3585 "src": "489:328:16",
3586 "stateMutability": "nonpayable",
3587 "superFunction": null,
3588 "visibility": "public"
3589 },
3590 {
3591 "body": {
3592 "id": 3351,
3593 "nodeType": "Block",
3594 "src": "972:272:16",
3595 "statements": [
3596 {
3597 "assignments": [
3598 3324
3599 ],
3600 "declarations": [
3601 {
3602 "constant": false,
3603 "id": 3324,
3604 "name": "registry",
3605 "nodeType": "VariableDeclaration",
3606 "scope": 3352,
3607 "src": "991:26:16",
3608 "stateVariable": false,
3609 "storageLocation": "default",
3610 "typeDescriptions": {
3611 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3612 "typeString": "contract RegistryInterface"
3613 },
3614 "typeName": {
3615 "contractScope": null,
3616 "id": 3323,
3617 "name": "RegistryInterface",
3618 "nodeType": "UserDefinedTypeName",
3619 "referencedDeclaration": 11303,
3620 "src": "991:17:16",
3621 "typeDescriptions": {
3622 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3623 "typeString": "contract RegistryInterface"
3624 }
3625 },
3626 "value": null,
3627 "visibility": "internal"
3628 }
3629 ],
3630 "id": 3331,
3631 "initialValue": {
3632 "argumentTypes": null,
3633 "arguments": [
3634 {
3635 "argumentTypes": null,
3636 "arguments": [
3637 {
3638 "argumentTypes": null,
3639 "hexValue": "5245474953545259",
3640 "id": 3328,
3641 "isConstant": false,
3642 "isLValue": false,
3643 "isPure": true,
3644 "kind": "string",
3645 "lValueRequested": false,
3646 "nodeType": "Literal",
3647 "src": "1056:10:16",
3648 "subdenomination": null,
3649 "typeDescriptions": {
3650 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
3651 "typeString": "literal_string \"REGISTRY\""
3652 },
3653 "value": "REGISTRY"
3654 }
3655 ],
3656 "expression": {
3657 "argumentTypes": [
3658 {
3659 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
3660 "typeString": "literal_string \"REGISTRY\""
3661 }
3662 ],
3663 "expression": {
3664 "argumentTypes": null,
3665 "id": 3326,
3666 "name": "coord",
3667 "nodeType": "Identifier",
3668 "overloadedDeclarations": [],
3669 "referencedDeclaration": 3275,
3670 "src": "1038:5:16",
3671 "typeDescriptions": {
3672 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
3673 "typeString": "contract ZapCoordinatorInterface"
3674 }
3675 },
3676 "id": 3327,
3677 "isConstant": false,
3678 "isLValue": false,
3679 "isPure": false,
3680 "lValueRequested": false,
3681 "memberName": "getContract",
3682 "nodeType": "MemberAccess",
3683 "referencedDeclaration": 489,
3684 "src": "1038:17:16",
3685 "typeDescriptions": {
3686 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
3687 "typeString": "function (string memory) view external returns (address)"
3688 }
3689 },
3690 "id": 3329,
3691 "isConstant": false,
3692 "isLValue": false,
3693 "isPure": false,
3694 "kind": "functionCall",
3695 "lValueRequested": false,
3696 "names": [],
3697 "nodeType": "FunctionCall",
3698 "src": "1038:29:16",
3699 "typeDescriptions": {
3700 "typeIdentifier": "t_address",
3701 "typeString": "address"
3702 }
3703 }
3704 ],
3705 "expression": {
3706 "argumentTypes": [
3707 {
3708 "typeIdentifier": "t_address",
3709 "typeString": "address"
3710 }
3711 ],
3712 "id": 3325,
3713 "name": "RegistryInterface",
3714 "nodeType": "Identifier",
3715 "overloadedDeclarations": [],
3716 "referencedDeclaration": 11303,
3717 "src": "1020:17:16",
3718 "typeDescriptions": {
3719 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
3720 "typeString": "type(contract RegistryInterface)"
3721 }
3722 },
3723 "id": 3330,
3724 "isConstant": false,
3725 "isLValue": false,
3726 "isPure": false,
3727 "kind": "typeConversion",
3728 "lValueRequested": false,
3729 "names": [],
3730 "nodeType": "FunctionCall",
3731 "src": "1020:48:16",
3732 "typeDescriptions": {
3733 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3734 "typeString": "contract RegistryInterface"
3735 }
3736 },
3737 "nodeType": "VariableDeclarationStatement",
3738 "src": "991:77:16"
3739 },
3740 {
3741 "expression": {
3742 "argumentTypes": null,
3743 "arguments": [
3744 {
3745 "argumentTypes": null,
3746 "arguments": [
3747 {
3748 "argumentTypes": null,
3749 "arguments": [
3750 {
3751 "argumentTypes": null,
3752 "id": 3336,
3753 "name": "this",
3754 "nodeType": "Identifier",
3755 "overloadedDeclarations": [],
3756 "referencedDeclaration": 12165,
3757 "src": "1124:4:16",
3758 "typeDescriptions": {
3759 "typeIdentifier": "t_contract$_SampleOnChainOracle_$3453",
3760 "typeString": "contract SampleOnChainOracle"
3761 }
3762 }
3763 ],
3764 "expression": {
3765 "argumentTypes": [
3766 {
3767 "typeIdentifier": "t_contract$_SampleOnChainOracle_$3453",
3768 "typeString": "contract SampleOnChainOracle"
3769 }
3770 ],
3771 "id": 3335,
3772 "isConstant": false,
3773 "isLValue": false,
3774 "isPure": true,
3775 "lValueRequested": false,
3776 "nodeType": "ElementaryTypeNameExpression",
3777 "src": "1116:7:16",
3778 "typeDescriptions": {
3779 "typeIdentifier": "t_type$_t_address_$",
3780 "typeString": "type(address)"
3781 },
3782 "typeName": "address"
3783 },
3784 "id": 3337,
3785 "isConstant": false,
3786 "isLValue": false,
3787 "isPure": false,
3788 "kind": "typeConversion",
3789 "lValueRequested": false,
3790 "names": [],
3791 "nodeType": "FunctionCall",
3792 "src": "1116:13:16",
3793 "typeDescriptions": {
3794 "typeIdentifier": "t_address",
3795 "typeString": "address"
3796 }
3797 }
3798 ],
3799 "expression": {
3800 "argumentTypes": [
3801 {
3802 "typeIdentifier": "t_address",
3803 "typeString": "address"
3804 }
3805 ],
3806 "expression": {
3807 "argumentTypes": null,
3808 "id": 3333,
3809 "name": "registry",
3810 "nodeType": "Identifier",
3811 "overloadedDeclarations": [],
3812 "referencedDeclaration": 3324,
3813 "src": "1087:8:16",
3814 "typeDescriptions": {
3815 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
3816 "typeString": "contract RegistryInterface"
3817 }
3818 },
3819 "id": 3334,
3820 "isConstant": false,
3821 "isLValue": false,
3822 "isPure": false,
3823 "lValueRequested": false,
3824 "memberName": "isProviderInitiated",
3825 "nodeType": "MemberAccess",
3826 "referencedDeclaration": 11279,
3827 "src": "1087:28:16",
3828 "typeDescriptions": {
3829 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
3830 "typeString": "function (address) view external returns (bool)"
3831 }
3832 },
3833 "id": 3338,
3834 "isConstant": false,
3835 "isLValue": false,
3836 "isPure": false,
3837 "kind": "functionCall",
3838 "lValueRequested": false,
3839 "names": [],
3840 "nodeType": "FunctionCall",
3841 "src": "1087:43:16",
3842 "typeDescriptions": {
3843 "typeIdentifier": "t_bool",
3844 "typeString": "bool"
3845 }
3846 },
3847 {
3848 "argumentTypes": null,
3849 "hexValue": "50726f7669646572206e6f7420696e746969616c697a6564",
3850 "id": 3339,
3851 "isConstant": false,
3852 "isLValue": false,
3853 "isPure": true,
3854 "kind": "string",
3855 "lValueRequested": false,
3856 "nodeType": "Literal",
3857 "src": "1132:26:16",
3858 "subdenomination": null,
3859 "typeDescriptions": {
3860 "typeIdentifier": "t_stringliteral_676ee250bffab29cec343e244d7bae7b9d389827be24933caa07ae78fdbc26cc",
3861 "typeString": "literal_string \"Provider not intiialized\""
3862 },
3863 "value": "Provider not intiialized"
3864 }
3865 ],
3866 "expression": {
3867 "argumentTypes": [
3868 {
3869 "typeIdentifier": "t_bool",
3870 "typeString": "bool"
3871 },
3872 {
3873 "typeIdentifier": "t_stringliteral_676ee250bffab29cec343e244d7bae7b9d389827be24933caa07ae78fdbc26cc",
3874 "typeString": "literal_string \"Provider not intiialized\""
3875 }
3876 ],
3877 "id": 3332,
3878 "name": "require",
3879 "nodeType": "Identifier",
3880 "overloadedDeclarations": [
3881 12095,
3882 12096
3883 ],
3884 "referencedDeclaration": 12096,
3885 "src": "1079:7:16",
3886 "typeDescriptions": {
3887 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
3888 "typeString": "function (bool,string memory) pure"
3889 }
3890 },
3891 "id": 3340,
3892 "isConstant": false,
3893 "isLValue": false,
3894 "isPure": false,
3895 "kind": "functionCall",
3896 "lValueRequested": false,
3897 "names": [],
3898 "nodeType": "FunctionCall",
3899 "src": "1079:80:16",
3900 "typeDescriptions": {
3901 "typeIdentifier": "t_tuple$__$",
3902 "typeString": "tuple()"
3903 }
3904 },
3905 "id": 3341,
3906 "nodeType": "ExpressionStatement",
3907 "src": "1079:80:16"
3908 },
3909 {
3910 "expression": {
3911 "argumentTypes": null,
3912 "arguments": [
3913 {
3914 "argumentTypes": null,
3915 "id": 3344,
3916 "name": "specifier",
3917 "nodeType": "Identifier",
3918 "overloadedDeclarations": [],
3919 "referencedDeclaration": 3313,
3920 "src": "1208:9:16",
3921 "typeDescriptions": {
3922 "typeIdentifier": "t_bytes32",
3923 "typeString": "bytes32"
3924 }
3925 },
3926 {
3927 "argumentTypes": null,
3928 "id": 3345,
3929 "name": "curve",
3930 "nodeType": "Identifier",
3931 "overloadedDeclarations": [],
3932 "referencedDeclaration": 3316,
3933 "src": "1219:5:16",
3934 "typeDescriptions": {
3935 "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
3936 "typeString": "int256[] memory"
3937 }
3938 },
3939 {
3940 "argumentTypes": null,
3941 "arguments": [
3942 {
3943 "argumentTypes": null,
3944 "hexValue": "30",
3945 "id": 3347,
3946 "isConstant": false,
3947 "isLValue": false,
3948 "isPure": true,
3949 "kind": "number",
3950 "lValueRequested": false,
3951 "nodeType": "Literal",
3952 "src": "1234:1:16",
3953 "subdenomination": null,
3954 "typeDescriptions": {
3955 "typeIdentifier": "t_rational_0_by_1",
3956 "typeString": "int_const 0"
3957 },
3958 "value": "0"
3959 }
3960 ],
3961 "expression": {
3962 "argumentTypes": [
3963 {
3964 "typeIdentifier": "t_rational_0_by_1",
3965 "typeString": "int_const 0"
3966 }
3967 ],
3968 "id": 3346,
3969 "isConstant": false,
3970 "isLValue": false,
3971 "isPure": true,
3972 "lValueRequested": false,
3973 "nodeType": "ElementaryTypeNameExpression",
3974 "src": "1226:7:16",
3975 "typeDescriptions": {
3976 "typeIdentifier": "t_type$_t_address_$",
3977 "typeString": "type(address)"
3978 },
3979 "typeName": "address"
3980 },
3981 "id": 3348,
3982 "isConstant": false,
3983 "isLValue": false,
3984 "isPure": true,
3985 "kind": "typeConversion",
3986 "lValueRequested": false,
3987 "names": [],
3988 "nodeType": "FunctionCall",
3989 "src": "1226:10:16",
3990 "typeDescriptions": {
3991 "typeIdentifier": "t_address",
3992 "typeString": "address"
3993 }
3994 }
3995 ],
3996 "expression": {
3997 "argumentTypes": [
3998 {
3999 "typeIdentifier": "t_bytes32",
4000 "typeString": "bytes32"
4001 },
4002 {
4003 "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
4004 "typeString": "int256[] memory"
4005 },
4006 {
4007 "typeIdentifier": "t_address",
4008 "typeString": "address"
4009 }
4010 ],
4011 "expression": {
4012 "argumentTypes": null,
4013 "id": 3342,
4014 "name": "registry",
4015 "nodeType": "Identifier",
4016 "overloadedDeclarations": [],
4017 "referencedDeclaration": 3324,
4018 "src": "1177:8:16",
4019 "typeDescriptions": {
4020 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
4021 "typeString": "contract RegistryInterface"
4022 }
4023 },
4024 "id": 3343,
4025 "isConstant": false,
4026 "isLValue": false,
4027 "isPure": false,
4028 "lValueRequested": false,
4029 "memberName": "initiateProviderCurve",
4030 "nodeType": "MemberAccess",
4031 "referencedDeclaration": 11187,
4032 "src": "1177:30:16",
4033 "typeDescriptions": {
4034 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_int256_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$",
4035 "typeString": "function (bytes32,int256[] memory,address) external returns (bool)"
4036 }
4037 },
4038 "id": 3349,
4039 "isConstant": false,
4040 "isLValue": false,
4041 "isPure": false,
4042 "kind": "functionCall",
4043 "lValueRequested": false,
4044 "names": [],
4045 "nodeType": "FunctionCall",
4046 "src": "1177:60:16",
4047 "typeDescriptions": {
4048 "typeIdentifier": "t_bool",
4049 "typeString": "bool"
4050 }
4051 },
4052 "functionReturnParameters": 3322,
4053 "id": 3350,
4054 "nodeType": "Return",
4055 "src": "1170:67:16"
4056 }
4057 ]
4058 },
4059 "documentation": null,
4060 "id": 3352,
4061 "implemented": true,
4062 "isConstructor": false,
4063 "isDeclaredConst": false,
4064 "modifiers": [
4065 {
4066 "arguments": null,
4067 "id": 3319,
4068 "modifierName": {
4069 "argumentTypes": null,
4070 "id": 3318,
4071 "name": "onlyOwner",
4072 "nodeType": "Identifier",
4073 "overloadedDeclarations": [],
4074 "referencedDeclaration": 177,
4075 "src": "941:9:16",
4076 "typeDescriptions": {
4077 "typeIdentifier": "t_modifier$__$",
4078 "typeString": "modifier ()"
4079 }
4080 },
4081 "nodeType": "ModifierInvocation",
4082 "src": "941:9:16"
4083 }
4084 ],
4085 "name": "initializeCurve",
4086 "nodeType": "FunctionDefinition",
4087 "parameters": {
4088 "id": 3317,
4089 "nodeType": "ParameterList",
4090 "parameters": [
4091 {
4092 "constant": false,
4093 "id": 3313,
4094 "name": "specifier",
4095 "nodeType": "VariableDeclaration",
4096 "scope": 3352,
4097 "src": "892:17:16",
4098 "stateVariable": false,
4099 "storageLocation": "default",
4100 "typeDescriptions": {
4101 "typeIdentifier": "t_bytes32",
4102 "typeString": "bytes32"
4103 },
4104 "typeName": {
4105 "id": 3312,
4106 "name": "bytes32",
4107 "nodeType": "ElementaryTypeName",
4108 "src": "892:7:16",
4109 "typeDescriptions": {
4110 "typeIdentifier": "t_bytes32",
4111 "typeString": "bytes32"
4112 }
4113 },
4114 "value": null,
4115 "visibility": "internal"
4116 },
4117 {
4118 "constant": false,
4119 "id": 3316,
4120 "name": "curve",
4121 "nodeType": "VariableDeclaration",
4122 "scope": 3352,
4123 "src": "920:14:16",
4124 "stateVariable": false,
4125 "storageLocation": "default",
4126 "typeDescriptions": {
4127 "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
4128 "typeString": "int256[]"
4129 },
4130 "typeName": {
4131 "baseType": {
4132 "id": 3314,
4133 "name": "int256",
4134 "nodeType": "ElementaryTypeName",
4135 "src": "920:6:16",
4136 "typeDescriptions": {
4137 "typeIdentifier": "t_int256",
4138 "typeString": "int256"
4139 }
4140 },
4141 "id": 3315,
4142 "length": null,
4143 "nodeType": "ArrayTypeName",
4144 "src": "920:8:16",
4145 "typeDescriptions": {
4146 "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
4147 "typeString": "int256[]"
4148 }
4149 },
4150 "value": null,
4151 "visibility": "internal"
4152 }
4153 ],
4154 "src": "882:58:16"
4155 },
4156 "payable": false,
4157 "returnParameters": {
4158 "id": 3322,
4159 "nodeType": "ParameterList",
4160 "parameters": [
4161 {
4162 "constant": false,
4163 "id": 3321,
4164 "name": "",
4165 "nodeType": "VariableDeclaration",
4166 "scope": 3352,
4167 "src": "966:4:16",
4168 "stateVariable": false,
4169 "storageLocation": "default",
4170 "typeDescriptions": {
4171 "typeIdentifier": "t_bool",
4172 "typeString": "bool"
4173 },
4174 "typeName": {
4175 "id": 3320,
4176 "name": "bool",
4177 "nodeType": "ElementaryTypeName",
4178 "src": "966:4:16",
4179 "typeDescriptions": {
4180 "typeIdentifier": "t_bool",
4181 "typeString": "bool"
4182 }
4183 },
4184 "value": null,
4185 "visibility": "internal"
4186 }
4187 ],
4188 "src": "965:6:16"
4189 },
4190 "scope": 3453,
4191 "src": "858:386:16",
4192 "stateMutability": "nonpayable",
4193 "superFunction": null,
4194 "visibility": "public"
4195 },
4196 {
4197 "body": {
4198 "id": 3377,
4199 "nodeType": "Block",
4200 "src": "1323:128:16",
4201 "statements": [
4202 {
4203 "expression": {
4204 "argumentTypes": null,
4205 "id": 3368,
4206 "isConstant": false,
4207 "isLValue": false,
4208 "isPure": false,
4209 "lValueRequested": false,
4210 "leftHandSide": {
4211 "argumentTypes": null,
4212 "id": 3361,
4213 "name": "registry",
4214 "nodeType": "Identifier",
4215 "overloadedDeclarations": [],
4216 "referencedDeclaration": 3277,
4217 "src": "1334:8:16",
4218 "typeDescriptions": {
4219 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
4220 "typeString": "contract RegistryInterface"
4221 }
4222 },
4223 "nodeType": "Assignment",
4224 "operator": "=",
4225 "rightHandSide": {
4226 "argumentTypes": null,
4227 "arguments": [
4228 {
4229 "argumentTypes": null,
4230 "arguments": [
4231 {
4232 "argumentTypes": null,
4233 "hexValue": "5245474953545259",
4234 "id": 3365,
4235 "isConstant": false,
4236 "isLValue": false,
4237 "isPure": true,
4238 "kind": "string",
4239 "lValueRequested": false,
4240 "nodeType": "Literal",
4241 "src": "1381:10:16",
4242 "subdenomination": null,
4243 "typeDescriptions": {
4244 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
4245 "typeString": "literal_string \"REGISTRY\""
4246 },
4247 "value": "REGISTRY"
4248 }
4249 ],
4250 "expression": {
4251 "argumentTypes": [
4252 {
4253 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
4254 "typeString": "literal_string \"REGISTRY\""
4255 }
4256 ],
4257 "expression": {
4258 "argumentTypes": null,
4259 "id": 3363,
4260 "name": "coord",
4261 "nodeType": "Identifier",
4262 "overloadedDeclarations": [],
4263 "referencedDeclaration": 3275,
4264 "src": "1363:5:16",
4265 "typeDescriptions": {
4266 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
4267 "typeString": "contract ZapCoordinatorInterface"
4268 }
4269 },
4270 "id": 3364,
4271 "isConstant": false,
4272 "isLValue": false,
4273 "isPure": false,
4274 "lValueRequested": false,
4275 "memberName": "getContract",
4276 "nodeType": "MemberAccess",
4277 "referencedDeclaration": 489,
4278 "src": "1363:17:16",
4279 "typeDescriptions": {
4280 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
4281 "typeString": "function (string memory) view external returns (address)"
4282 }
4283 },
4284 "id": 3366,
4285 "isConstant": false,
4286 "isLValue": false,
4287 "isPure": false,
4288 "kind": "functionCall",
4289 "lValueRequested": false,
4290 "names": [],
4291 "nodeType": "FunctionCall",
4292 "src": "1363:29:16",
4293 "typeDescriptions": {
4294 "typeIdentifier": "t_address",
4295 "typeString": "address"
4296 }
4297 }
4298 ],
4299 "expression": {
4300 "argumentTypes": [
4301 {
4302 "typeIdentifier": "t_address",
4303 "typeString": "address"
4304 }
4305 ],
4306 "id": 3362,
4307 "name": "RegistryInterface",
4308 "nodeType": "Identifier",
4309 "overloadedDeclarations": [],
4310 "referencedDeclaration": 11303,
4311 "src": "1345:17:16",
4312 "typeDescriptions": {
4313 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
4314 "typeString": "type(contract RegistryInterface)"
4315 }
4316 },
4317 "id": 3367,
4318 "isConstant": false,
4319 "isLValue": false,
4320 "isPure": false,
4321 "kind": "typeConversion",
4322 "lValueRequested": false,
4323 "names": [],
4324 "nodeType": "FunctionCall",
4325 "src": "1345:48:16",
4326 "typeDescriptions": {
4327 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
4328 "typeString": "contract RegistryInterface"
4329 }
4330 },
4331 "src": "1334:59:16",
4332 "typeDescriptions": {
4333 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
4334 "typeString": "contract RegistryInterface"
4335 }
4336 },
4337 "id": 3369,
4338 "nodeType": "ExpressionStatement",
4339 "src": "1334:59:16"
4340 },
4341 {
4342 "expression": {
4343 "argumentTypes": null,
4344 "arguments": [
4345 {
4346 "argumentTypes": null,
4347 "id": 3373,
4348 "name": "key",
4349 "nodeType": "Identifier",
4350 "overloadedDeclarations": [],
4351 "referencedDeclaration": 3354,
4352 "src": "1433:3:16",
4353 "typeDescriptions": {
4354 "typeIdentifier": "t_bytes32",
4355 "typeString": "bytes32"
4356 }
4357 },
4358 {
4359 "argumentTypes": null,
4360 "id": 3374,
4361 "name": "value",
4362 "nodeType": "Identifier",
4363 "overloadedDeclarations": [],
4364 "referencedDeclaration": 3356,
4365 "src": "1438:5:16",
4366 "typeDescriptions": {
4367 "typeIdentifier": "t_bytes_memory_ptr",
4368 "typeString": "bytes memory"
4369 }
4370 }
4371 ],
4372 "expression": {
4373 "argumentTypes": [
4374 {
4375 "typeIdentifier": "t_bytes32",
4376 "typeString": "bytes32"
4377 },
4378 {
4379 "typeIdentifier": "t_bytes_memory_ptr",
4380 "typeString": "bytes memory"
4381 }
4382 ],
4383 "expression": {
4384 "argumentTypes": null,
4385 "id": 3370,
4386 "name": "registry",
4387 "nodeType": "Identifier",
4388 "overloadedDeclarations": [],
4389 "referencedDeclaration": 3277,
4390 "src": "1403:8:16",
4391 "typeDescriptions": {
4392 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
4393 "typeString": "contract RegistryInterface"
4394 }
4395 },
4396 "id": 3372,
4397 "isConstant": false,
4398 "isLValue": false,
4399 "isPure": false,
4400 "lValueRequested": false,
4401 "memberName": "setProviderParameter",
4402 "nodeType": "MemberAccess",
4403 "referencedDeclaration": 11226,
4404 "src": "1403:29:16",
4405 "typeDescriptions": {
4406 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
4407 "typeString": "function (bytes32,bytes memory) external"
4408 }
4409 },
4410 "id": 3375,
4411 "isConstant": false,
4412 "isLValue": false,
4413 "isPure": false,
4414 "kind": "functionCall",
4415 "lValueRequested": false,
4416 "names": [],
4417 "nodeType": "FunctionCall",
4418 "src": "1403:41:16",
4419 "typeDescriptions": {
4420 "typeIdentifier": "t_tuple$__$",
4421 "typeString": "tuple()"
4422 }
4423 },
4424 "id": 3376,
4425 "nodeType": "ExpressionStatement",
4426 "src": "1403:41:16"
4427 }
4428 ]
4429 },
4430 "documentation": null,
4431 "id": 3378,
4432 "implemented": true,
4433 "isConstructor": false,
4434 "isDeclaredConst": false,
4435 "modifiers": [
4436 {
4437 "arguments": null,
4438 "id": 3359,
4439 "modifierName": {
4440 "argumentTypes": null,
4441 "id": 3358,
4442 "name": "onlyOwner",
4443 "nodeType": "Identifier",
4444 "overloadedDeclarations": [],
4445 "referencedDeclaration": 177,
4446 "src": "1306:9:16",
4447 "typeDescriptions": {
4448 "typeIdentifier": "t_modifier$__$",
4449 "typeString": "modifier ()"
4450 }
4451 },
4452 "nodeType": "ModifierInvocation",
4453 "src": "1306:9:16"
4454 }
4455 ],
4456 "name": "setProviderParameter",
4457 "nodeType": "FunctionDefinition",
4458 "parameters": {
4459 "id": 3357,
4460 "nodeType": "ParameterList",
4461 "parameters": [
4462 {
4463 "constant": false,
4464 "id": 3354,
4465 "name": "key",
4466 "nodeType": "VariableDeclaration",
4467 "scope": 3378,
4468 "src": "1280:11:16",
4469 "stateVariable": false,
4470 "storageLocation": "default",
4471 "typeDescriptions": {
4472 "typeIdentifier": "t_bytes32",
4473 "typeString": "bytes32"
4474 },
4475 "typeName": {
4476 "id": 3353,
4477 "name": "bytes32",
4478 "nodeType": "ElementaryTypeName",
4479 "src": "1280:7:16",
4480 "typeDescriptions": {
4481 "typeIdentifier": "t_bytes32",
4482 "typeString": "bytes32"
4483 }
4484 },
4485 "value": null,
4486 "visibility": "internal"
4487 },
4488 {
4489 "constant": false,
4490 "id": 3356,
4491 "name": "value",
4492 "nodeType": "VariableDeclaration",
4493 "scope": 3378,
4494 "src": "1293:11:16",
4495 "stateVariable": false,
4496 "storageLocation": "default",
4497 "typeDescriptions": {
4498 "typeIdentifier": "t_bytes_memory_ptr",
4499 "typeString": "bytes"
4500 },
4501 "typeName": {
4502 "id": 3355,
4503 "name": "bytes",
4504 "nodeType": "ElementaryTypeName",
4505 "src": "1293:5:16",
4506 "typeDescriptions": {
4507 "typeIdentifier": "t_bytes_storage_ptr",
4508 "typeString": "bytes"
4509 }
4510 },
4511 "value": null,
4512 "visibility": "internal"
4513 }
4514 ],
4515 "src": "1279:26:16"
4516 },
4517 "payable": false,
4518 "returnParameters": {
4519 "id": 3360,
4520 "nodeType": "ParameterList",
4521 "parameters": [],
4522 "src": "1323:0:16"
4523 },
4524 "scope": 3453,
4525 "src": "1250:201:16",
4526 "stateMutability": "nonpayable",
4527 "superFunction": null,
4528 "visibility": "public"
4529 },
4530 {
4531 "body": {
4532 "id": 3404,
4533 "nodeType": "Block",
4534 "src": "1545:139:16",
4535 "statements": [
4536 {
4537 "expression": {
4538 "argumentTypes": null,
4539 "id": 3395,
4540 "isConstant": false,
4541 "isLValue": false,
4542 "isPure": false,
4543 "lValueRequested": false,
4544 "leftHandSide": {
4545 "argumentTypes": null,
4546 "id": 3388,
4547 "name": "registry",
4548 "nodeType": "Identifier",
4549 "overloadedDeclarations": [],
4550 "referencedDeclaration": 3277,
4551 "src": "1556:8:16",
4552 "typeDescriptions": {
4553 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
4554 "typeString": "contract RegistryInterface"
4555 }
4556 },
4557 "nodeType": "Assignment",
4558 "operator": "=",
4559 "rightHandSide": {
4560 "argumentTypes": null,
4561 "arguments": [
4562 {
4563 "argumentTypes": null,
4564 "arguments": [
4565 {
4566 "argumentTypes": null,
4567 "hexValue": "5245474953545259",
4568 "id": 3392,
4569 "isConstant": false,
4570 "isLValue": false,
4571 "isPure": true,
4572 "kind": "string",
4573 "lValueRequested": false,
4574 "nodeType": "Literal",
4575 "src": "1603:10:16",
4576 "subdenomination": null,
4577 "typeDescriptions": {
4578 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
4579 "typeString": "literal_string \"REGISTRY\""
4580 },
4581 "value": "REGISTRY"
4582 }
4583 ],
4584 "expression": {
4585 "argumentTypes": [
4586 {
4587 "typeIdentifier": "t_stringliteral_647f7c286926fbfa90ab890a66b66522dad9feca7ced0af9cf45c613acf13616",
4588 "typeString": "literal_string \"REGISTRY\""
4589 }
4590 ],
4591 "expression": {
4592 "argumentTypes": null,
4593 "id": 3390,
4594 "name": "coord",
4595 "nodeType": "Identifier",
4596 "overloadedDeclarations": [],
4597 "referencedDeclaration": 3275,
4598 "src": "1585:5:16",
4599 "typeDescriptions": {
4600 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
4601 "typeString": "contract ZapCoordinatorInterface"
4602 }
4603 },
4604 "id": 3391,
4605 "isConstant": false,
4606 "isLValue": false,
4607 "isPure": false,
4608 "lValueRequested": false,
4609 "memberName": "getContract",
4610 "nodeType": "MemberAccess",
4611 "referencedDeclaration": 489,
4612 "src": "1585:17:16",
4613 "typeDescriptions": {
4614 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
4615 "typeString": "function (string memory) view external returns (address)"
4616 }
4617 },
4618 "id": 3393,
4619 "isConstant": false,
4620 "isLValue": false,
4621 "isPure": false,
4622 "kind": "functionCall",
4623 "lValueRequested": false,
4624 "names": [],
4625 "nodeType": "FunctionCall",
4626 "src": "1585:29:16",
4627 "typeDescriptions": {
4628 "typeIdentifier": "t_address",
4629 "typeString": "address"
4630 }
4631 }
4632 ],
4633 "expression": {
4634 "argumentTypes": [
4635 {
4636 "typeIdentifier": "t_address",
4637 "typeString": "address"
4638 }
4639 ],
4640 "id": 3389,
4641 "name": "RegistryInterface",
4642 "nodeType": "Identifier",
4643 "overloadedDeclarations": [],
4644 "referencedDeclaration": 11303,
4645 "src": "1567:17:16",
4646 "typeDescriptions": {
4647 "typeIdentifier": "t_type$_t_contract$_RegistryInterface_$11303_$",
4648 "typeString": "type(contract RegistryInterface)"
4649 }
4650 },
4651 "id": 3394,
4652 "isConstant": false,
4653 "isLValue": false,
4654 "isPure": false,
4655 "kind": "typeConversion",
4656 "lValueRequested": false,
4657 "names": [],
4658 "nodeType": "FunctionCall",
4659 "src": "1567:48:16",
4660 "typeDescriptions": {
4661 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
4662 "typeString": "contract RegistryInterface"
4663 }
4664 },
4665 "src": "1556:59:16",
4666 "typeDescriptions": {
4667 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
4668 "typeString": "contract RegistryInterface"
4669 }
4670 },
4671 "id": 3396,
4672 "nodeType": "ExpressionStatement",
4673 "src": "1556:59:16"
4674 },
4675 {
4676 "expression": {
4677 "argumentTypes": null,
4678 "arguments": [
4679 {
4680 "argumentTypes": null,
4681 "id": 3400,
4682 "name": "endpoint",
4683 "nodeType": "Identifier",
4684 "overloadedDeclarations": [],
4685 "referencedDeclaration": 3380,
4686 "src": "1652:8:16",
4687 "typeDescriptions": {
4688 "typeIdentifier": "t_bytes32",
4689 "typeString": "bytes32"
4690 }
4691 },
4692 {
4693 "argumentTypes": null,
4694 "id": 3401,
4695 "name": "endpointParams",
4696 "nodeType": "Identifier",
4697 "overloadedDeclarations": [],
4698 "referencedDeclaration": 3383,
4699 "src": "1662:14:16",
4700 "typeDescriptions": {
4701 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4702 "typeString": "bytes32[] memory"
4703 }
4704 }
4705 ],
4706 "expression": {
4707 "argumentTypes": [
4708 {
4709 "typeIdentifier": "t_bytes32",
4710 "typeString": "bytes32"
4711 },
4712 {
4713 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4714 "typeString": "bytes32[] memory"
4715 }
4716 ],
4717 "expression": {
4718 "argumentTypes": null,
4719 "id": 3397,
4720 "name": "registry",
4721 "nodeType": "Identifier",
4722 "overloadedDeclarations": [],
4723 "referencedDeclaration": 3277,
4724 "src": "1625:8:16",
4725 "typeDescriptions": {
4726 "typeIdentifier": "t_contract$_RegistryInterface_$11303",
4727 "typeString": "contract RegistryInterface"
4728 }
4729 },
4730 "id": 3399,
4731 "isConstant": false,
4732 "isLValue": false,
4733 "isPure": false,
4734 "lValueRequested": false,
4735 "memberName": "setEndpointParams",
4736 "nodeType": "MemberAccess",
4737 "referencedDeclaration": 11195,
4738 "src": "1625:26:16",
4739 "typeDescriptions": {
4740 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
4741 "typeString": "function (bytes32,bytes32[] memory) external"
4742 }
4743 },
4744 "id": 3402,
4745 "isConstant": false,
4746 "isLValue": false,
4747 "isPure": false,
4748 "kind": "functionCall",
4749 "lValueRequested": false,
4750 "names": [],
4751 "nodeType": "FunctionCall",
4752 "src": "1625:52:16",
4753 "typeDescriptions": {
4754 "typeIdentifier": "t_tuple$__$",
4755 "typeString": "tuple()"
4756 }
4757 },
4758 "id": 3403,
4759 "nodeType": "ExpressionStatement",
4760 "src": "1625:52:16"
4761 }
4762 ]
4763 },
4764 "documentation": null,
4765 "id": 3405,
4766 "implemented": true,
4767 "isConstructor": false,
4768 "isDeclaredConst": false,
4769 "modifiers": [
4770 {
4771 "arguments": null,
4772 "id": 3386,
4773 "modifierName": {
4774 "argumentTypes": null,
4775 "id": 3385,
4776 "name": "onlyOwner",
4777 "nodeType": "Identifier",
4778 "overloadedDeclarations": [],
4779 "referencedDeclaration": 177,
4780 "src": "1528:9:16",
4781 "typeDescriptions": {
4782 "typeIdentifier": "t_modifier$__$",
4783 "typeString": "modifier ()"
4784 }
4785 },
4786 "nodeType": "ModifierInvocation",
4787 "src": "1528:9:16"
4788 }
4789 ],
4790 "name": "setEndpointParams",
4791 "nodeType": "FunctionDefinition",
4792 "parameters": {
4793 "id": 3384,
4794 "nodeType": "ParameterList",
4795 "parameters": [
4796 {
4797 "constant": false,
4798 "id": 3380,
4799 "name": "endpoint",
4800 "nodeType": "VariableDeclaration",
4801 "scope": 3405,
4802 "src": "1484:16:16",
4803 "stateVariable": false,
4804 "storageLocation": "default",
4805 "typeDescriptions": {
4806 "typeIdentifier": "t_bytes32",
4807 "typeString": "bytes32"
4808 },
4809 "typeName": {
4810 "id": 3379,
4811 "name": "bytes32",
4812 "nodeType": "ElementaryTypeName",
4813 "src": "1484:7:16",
4814 "typeDescriptions": {
4815 "typeIdentifier": "t_bytes32",
4816 "typeString": "bytes32"
4817 }
4818 },
4819 "value": null,
4820 "visibility": "internal"
4821 },
4822 {
4823 "constant": false,
4824 "id": 3383,
4825 "name": "endpointParams",
4826 "nodeType": "VariableDeclaration",
4827 "scope": 3405,
4828 "src": "1502:24:16",
4829 "stateVariable": false,
4830 "storageLocation": "default",
4831 "typeDescriptions": {
4832 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4833 "typeString": "bytes32[]"
4834 },
4835 "typeName": {
4836 "baseType": {
4837 "id": 3381,
4838 "name": "bytes32",
4839 "nodeType": "ElementaryTypeName",
4840 "src": "1502:7:16",
4841 "typeDescriptions": {
4842 "typeIdentifier": "t_bytes32",
4843 "typeString": "bytes32"
4844 }
4845 },
4846 "id": 3382,
4847 "length": null,
4848 "nodeType": "ArrayTypeName",
4849 "src": "1502:9:16",
4850 "typeDescriptions": {
4851 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
4852 "typeString": "bytes32[]"
4853 }
4854 },
4855 "value": null,
4856 "visibility": "internal"
4857 }
4858 ],
4859 "src": "1483:44:16"
4860 },
4861 "payable": false,
4862 "returnParameters": {
4863 "id": 3387,
4864 "nodeType": "ParameterList",
4865 "parameters": [],
4866 "src": "1545:0:16"
4867 },
4868 "scope": 3453,
4869 "src": "1457:227:16",
4870 "stateMutability": "nonpayable",
4871 "superFunction": null,
4872 "visibility": "public"
4873 },
4874 {
4875 "body": {
4876 "id": 3451,
4877 "nodeType": "Block",
4878 "src": "1862:347:16",
4879 "statements": [
4880 {
4881 "eventCall": {
4882 "argumentTypes": null,
4883 "arguments": [
4884 {
4885 "argumentTypes": null,
4886 "id": 3420,
4887 "name": "userQuery",
4888 "nodeType": "Identifier",
4889 "overloadedDeclarations": [],
4890 "referencedDeclaration": 3409,
4891 "src": "1892:9:16",
4892 "typeDescriptions": {
4893 "typeIdentifier": "t_string_calldata_ptr",
4894 "typeString": "string calldata"
4895 }
4896 },
4897 {
4898 "argumentTypes": null,
4899 "id": 3421,
4900 "name": "endpoint",
4901 "nodeType": "Identifier",
4902 "overloadedDeclarations": [],
4903 "referencedDeclaration": 3411,
4904 "src": "1903:8:16",
4905 "typeDescriptions": {
4906 "typeIdentifier": "t_bytes32",
4907 "typeString": "bytes32"
4908 }
4909 },
4910 {
4911 "argumentTypes": null,
4912 "id": 3422,
4913 "name": "endpointParams",
4914 "nodeType": "Identifier",
4915 "overloadedDeclarations": [],
4916 "referencedDeclaration": 3414,
4917 "src": "1913:14:16",
4918 "typeDescriptions": {
4919 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
4920 "typeString": "bytes32[] calldata"
4921 }
4922 }
4923 ],
4924 "expression": {
4925 "argumentTypes": [
4926 {
4927 "typeIdentifier": "t_string_calldata_ptr",
4928 "typeString": "string calldata"
4929 },
4930 {
4931 "typeIdentifier": "t_bytes32",
4932 "typeString": "bytes32"
4933 },
4934 {
4935 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
4936 "typeString": "bytes32[] calldata"
4937 }
4938 ],
4939 "id": 3419,
4940 "name": "RecievedQuery",
4941 "nodeType": "Identifier",
4942 "overloadedDeclarations": [],
4943 "referencedDeclaration": 3273,
4944 "src": "1878:13:16",
4945 "typeDescriptions": {
4946 "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
4947 "typeString": "function (string memory,bytes32,bytes32[] memory)"
4948 }
4949 },
4950 "id": 3423,
4951 "isConstant": false,
4952 "isLValue": false,
4953 "isPure": false,
4954 "kind": "functionCall",
4955 "lValueRequested": false,
4956 "names": [],
4957 "nodeType": "FunctionCall",
4958 "src": "1878:50:16",
4959 "typeDescriptions": {
4960 "typeIdentifier": "t_tuple$__$",
4961 "typeString": "tuple()"
4962 }
4963 },
4964 "id": 3424,
4965 "nodeType": "EmitStatement",
4966 "src": "1873:55:16"
4967 },
4968 {
4969 "expression": {
4970 "argumentTypes": null,
4971 "id": 3432,
4972 "isConstant": false,
4973 "isLValue": false,
4974 "isPure": false,
4975 "lValueRequested": false,
4976 "leftHandSide": {
4977 "argumentTypes": null,
4978 "id": 3425,
4979 "name": "dispatch",
4980 "nodeType": "Identifier",
4981 "overloadedDeclarations": [],
4982 "referencedDeclaration": 3279,
4983 "src": "1947:8:16",
4984 "typeDescriptions": {
4985 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
4986 "typeString": "contract DispatchInterface"
4987 }
4988 },
4989 "nodeType": "Assignment",
4990 "operator": "=",
4991 "rightHandSide": {
4992 "argumentTypes": null,
4993 "arguments": [
4994 {
4995 "argumentTypes": null,
4996 "arguments": [
4997 {
4998 "argumentTypes": null,
4999 "hexValue": "4449535041544348",
5000 "id": 3429,
5001 "isConstant": false,
5002 "isLValue": false,
5003 "isPure": true,
5004 "kind": "string",
5005 "lValueRequested": false,
5006 "nodeType": "Literal",
5007 "src": "1994:10:16",
5008 "subdenomination": null,
5009 "typeDescriptions": {
5010 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
5011 "typeString": "literal_string \"DISPATCH\""
5012 },
5013 "value": "DISPATCH"
5014 }
5015 ],
5016 "expression": {
5017 "argumentTypes": [
5018 {
5019 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
5020 "typeString": "literal_string \"DISPATCH\""
5021 }
5022 ],
5023 "expression": {
5024 "argumentTypes": null,
5025 "id": 3427,
5026 "name": "coord",
5027 "nodeType": "Identifier",
5028 "overloadedDeclarations": [],
5029 "referencedDeclaration": 3275,
5030 "src": "1976:5:16",
5031 "typeDescriptions": {
5032 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
5033 "typeString": "contract ZapCoordinatorInterface"
5034 }
5035 },
5036 "id": 3428,
5037 "isConstant": false,
5038 "isLValue": false,
5039 "isPure": false,
5040 "lValueRequested": false,
5041 "memberName": "getContract",
5042 "nodeType": "MemberAccess",
5043 "referencedDeclaration": 489,
5044 "src": "1976:17:16",
5045 "typeDescriptions": {
5046 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
5047 "typeString": "function (string memory) view external returns (address)"
5048 }
5049 },
5050 "id": 3430,
5051 "isConstant": false,
5052 "isLValue": false,
5053 "isPure": false,
5054 "kind": "functionCall",
5055 "lValueRequested": false,
5056 "names": [],
5057 "nodeType": "FunctionCall",
5058 "src": "1976:29:16",
5059 "typeDescriptions": {
5060 "typeIdentifier": "t_address",
5061 "typeString": "address"
5062 }
5063 }
5064 ],
5065 "expression": {
5066 "argumentTypes": [
5067 {
5068 "typeIdentifier": "t_address",
5069 "typeString": "address"
5070 }
5071 ],
5072 "id": 3426,
5073 "name": "DispatchInterface",
5074 "nodeType": "Identifier",
5075 "overloadedDeclarations": [],
5076 "referencedDeclaration": 10147,
5077 "src": "1958:17:16",
5078 "typeDescriptions": {
5079 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
5080 "typeString": "type(contract DispatchInterface)"
5081 }
5082 },
5083 "id": 3431,
5084 "isConstant": false,
5085 "isLValue": false,
5086 "isPure": false,
5087 "kind": "typeConversion",
5088 "lValueRequested": false,
5089 "names": [],
5090 "nodeType": "FunctionCall",
5091 "src": "1958:48:16",
5092 "typeDescriptions": {
5093 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
5094 "typeString": "contract DispatchInterface"
5095 }
5096 },
5097 "src": "1947:59:16",
5098 "typeDescriptions": {
5099 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
5100 "typeString": "contract DispatchInterface"
5101 }
5102 },
5103 "id": 3433,
5104 "nodeType": "ExpressionStatement",
5105 "src": "1947:59:16"
5106 },
5107 {
5108 "condition": {
5109 "argumentTypes": null,
5110 "commonType": {
5111 "typeIdentifier": "t_bool",
5112 "typeString": "bool"
5113 },
5114 "id": 3441,
5115 "isConstant": false,
5116 "isLValue": false,
5117 "isPure": false,
5118 "lValueRequested": false,
5119 "leftExpression": {
5120 "argumentTypes": null,
5121 "id": 3434,
5122 "name": "onchainSubscriber",
5123 "nodeType": "Identifier",
5124 "overloadedDeclarations": [],
5125 "referencedDeclaration": 3416,
5126 "src": "2019:17:16",
5127 "typeDescriptions": {
5128 "typeIdentifier": "t_bool",
5129 "typeString": "bool"
5130 }
5131 },
5132 "nodeType": "BinaryOperation",
5133 "operator": "&&",
5134 "rightExpression": {
5135 "argumentTypes": null,
5136 "commonType": {
5137 "typeIdentifier": "t_address",
5138 "typeString": "address"
5139 },
5140 "id": 3440,
5141 "isConstant": false,
5142 "isLValue": false,
5143 "isPure": false,
5144 "lValueRequested": false,
5145 "leftExpression": {
5146 "argumentTypes": null,
5147 "expression": {
5148 "argumentTypes": null,
5149 "id": 3435,
5150 "name": "msg",
5151 "nodeType": "Identifier",
5152 "overloadedDeclarations": [],
5153 "referencedDeclaration": 12092,
5154 "src": "2040:3:16",
5155 "typeDescriptions": {
5156 "typeIdentifier": "t_magic_message",
5157 "typeString": "msg"
5158 }
5159 },
5160 "id": 3436,
5161 "isConstant": false,
5162 "isLValue": false,
5163 "isPure": false,
5164 "lValueRequested": false,
5165 "memberName": "sender",
5166 "nodeType": "MemberAccess",
5167 "referencedDeclaration": null,
5168 "src": "2040:10:16",
5169 "typeDescriptions": {
5170 "typeIdentifier": "t_address",
5171 "typeString": "address"
5172 }
5173 },
5174 "nodeType": "BinaryOperation",
5175 "operator": "==",
5176 "rightExpression": {
5177 "argumentTypes": null,
5178 "arguments": [
5179 {
5180 "argumentTypes": null,
5181 "id": 3438,
5182 "name": "dispatch",
5183 "nodeType": "Identifier",
5184 "overloadedDeclarations": [],
5185 "referencedDeclaration": 3279,
5186 "src": "2062:8:16",
5187 "typeDescriptions": {
5188 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
5189 "typeString": "contract DispatchInterface"
5190 }
5191 }
5192 ],
5193 "expression": {
5194 "argumentTypes": [
5195 {
5196 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
5197 "typeString": "contract DispatchInterface"
5198 }
5199 ],
5200 "id": 3437,
5201 "isConstant": false,
5202 "isLValue": false,
5203 "isPure": true,
5204 "lValueRequested": false,
5205 "nodeType": "ElementaryTypeNameExpression",
5206 "src": "2054:7:16",
5207 "typeDescriptions": {
5208 "typeIdentifier": "t_type$_t_address_$",
5209 "typeString": "type(address)"
5210 },
5211 "typeName": "address"
5212 },
5213 "id": 3439,
5214 "isConstant": false,
5215 "isLValue": false,
5216 "isPure": false,
5217 "kind": "typeConversion",
5218 "lValueRequested": false,
5219 "names": [],
5220 "nodeType": "FunctionCall",
5221 "src": "2054:17:16",
5222 "typeDescriptions": {
5223 "typeIdentifier": "t_address",
5224 "typeString": "address"
5225 }
5226 },
5227 "src": "2040:31:16",
5228 "typeDescriptions": {
5229 "typeIdentifier": "t_bool",
5230 "typeString": "bool"
5231 }
5232 },
5233 "src": "2019:52:16",
5234 "typeDescriptions": {
5235 "typeIdentifier": "t_bool",
5236 "typeString": "bool"
5237 }
5238 },
5239 "falseBody": null,
5240 "id": 3450,
5241 "nodeType": "IfStatement",
5242 "src": "2016:143:16",
5243 "trueBody": {
5244 "id": 3449,
5245 "nodeType": "Block",
5246 "src": "2073:86:16",
5247 "statements": [
5248 {
5249 "expression": {
5250 "argumentTypes": null,
5251 "arguments": [
5252 {
5253 "argumentTypes": null,
5254 "id": 3445,
5255 "name": "id",
5256 "nodeType": "Identifier",
5257 "overloadedDeclarations": [],
5258 "referencedDeclaration": 3407,
5259 "src": "2129:2:16",
5260 "typeDescriptions": {
5261 "typeIdentifier": "t_uint256",
5262 "typeString": "uint256"
5263 }
5264 },
5265 {
5266 "argumentTypes": null,
5267 "hexValue": "48656c6c6f20576f726c64",
5268 "id": 3446,
5269 "isConstant": false,
5270 "isLValue": false,
5271 "isPure": true,
5272 "kind": "string",
5273 "lValueRequested": false,
5274 "nodeType": "Literal",
5275 "src": "2133:13:16",
5276 "subdenomination": null,
5277 "typeDescriptions": {
5278 "typeIdentifier": "t_stringliteral_592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba",
5279 "typeString": "literal_string \"Hello World\""
5280 },
5281 "value": "Hello World"
5282 }
5283 ],
5284 "expression": {
5285 "argumentTypes": [
5286 {
5287 "typeIdentifier": "t_uint256",
5288 "typeString": "uint256"
5289 },
5290 {
5291 "typeIdentifier": "t_stringliteral_592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba",
5292 "typeString": "literal_string \"Hello World\""
5293 }
5294 ],
5295 "expression": {
5296 "argumentTypes": null,
5297 "id": 3442,
5298 "name": "dispatch",
5299 "nodeType": "Identifier",
5300 "overloadedDeclarations": [],
5301 "referencedDeclaration": 3279,
5302 "src": "2111:8:16",
5303 "typeDescriptions": {
5304 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
5305 "typeString": "contract DispatchInterface"
5306 }
5307 },
5308 "id": 3444,
5309 "isConstant": false,
5310 "isLValue": false,
5311 "isPure": false,
5312 "lValueRequested": false,
5313 "memberName": "respond1",
5314 "nodeType": "MemberAccess",
5315 "referencedDeclaration": 10033,
5316 "src": "2111:17:16",
5317 "typeDescriptions": {
5318 "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$_t_bool_$",
5319 "typeString": "function (uint256,string memory) external returns (bool)"
5320 }
5321 },
5322 "id": 3447,
5323 "isConstant": false,
5324 "isLValue": false,
5325 "isPure": false,
5326 "kind": "functionCall",
5327 "lValueRequested": false,
5328 "names": [],
5329 "nodeType": "FunctionCall",
5330 "src": "2111:36:16",
5331 "typeDescriptions": {
5332 "typeIdentifier": "t_bool",
5333 "typeString": "bool"
5334 }
5335 },
5336 "id": 3448,
5337 "nodeType": "ExpressionStatement",
5338 "src": "2111:36:16"
5339 }
5340 ]
5341 }
5342 }
5343 ]
5344 },
5345 "documentation": null,
5346 "id": 3452,
5347 "implemented": true,
5348 "isConstructor": false,
5349 "isDeclaredConst": false,
5350 "modifiers": [],
5351 "name": "receive",
5352 "nodeType": "FunctionDefinition",
5353 "parameters": {
5354 "id": 3417,
5355 "nodeType": "ParameterList",
5356 "parameters": [
5357 {
5358 "constant": false,
5359 "id": 3407,
5360 "name": "id",
5361 "nodeType": "VariableDeclaration",
5362 "scope": 3452,
5363 "src": "1755:10:16",
5364 "stateVariable": false,
5365 "storageLocation": "default",
5366 "typeDescriptions": {
5367 "typeIdentifier": "t_uint256",
5368 "typeString": "uint256"
5369 },
5370 "typeName": {
5371 "id": 3406,
5372 "name": "uint256",
5373 "nodeType": "ElementaryTypeName",
5374 "src": "1755:7:16",
5375 "typeDescriptions": {
5376 "typeIdentifier": "t_uint256",
5377 "typeString": "uint256"
5378 }
5379 },
5380 "value": null,
5381 "visibility": "internal"
5382 },
5383 {
5384 "constant": false,
5385 "id": 3409,
5386 "name": "userQuery",
5387 "nodeType": "VariableDeclaration",
5388 "scope": 3452,
5389 "src": "1767:16:16",
5390 "stateVariable": false,
5391 "storageLocation": "default",
5392 "typeDescriptions": {
5393 "typeIdentifier": "t_string_calldata_ptr",
5394 "typeString": "string"
5395 },
5396 "typeName": {
5397 "id": 3408,
5398 "name": "string",
5399 "nodeType": "ElementaryTypeName",
5400 "src": "1767:6:16",
5401 "typeDescriptions": {
5402 "typeIdentifier": "t_string_storage_ptr",
5403 "typeString": "string"
5404 }
5405 },
5406 "value": null,
5407 "visibility": "internal"
5408 },
5409 {
5410 "constant": false,
5411 "id": 3411,
5412 "name": "endpoint",
5413 "nodeType": "VariableDeclaration",
5414 "scope": 3452,
5415 "src": "1785:16:16",
5416 "stateVariable": false,
5417 "storageLocation": "default",
5418 "typeDescriptions": {
5419 "typeIdentifier": "t_bytes32",
5420 "typeString": "bytes32"
5421 },
5422 "typeName": {
5423 "id": 3410,
5424 "name": "bytes32",
5425 "nodeType": "ElementaryTypeName",
5426 "src": "1785:7:16",
5427 "typeDescriptions": {
5428 "typeIdentifier": "t_bytes32",
5429 "typeString": "bytes32"
5430 }
5431 },
5432 "value": null,
5433 "visibility": "internal"
5434 },
5435 {
5436 "constant": false,
5437 "id": 3414,
5438 "name": "endpointParams",
5439 "nodeType": "VariableDeclaration",
5440 "scope": 3452,
5441 "src": "1803:24:16",
5442 "stateVariable": false,
5443 "storageLocation": "default",
5444 "typeDescriptions": {
5445 "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
5446 "typeString": "bytes32[]"
5447 },
5448 "typeName": {
5449 "baseType": {
5450 "id": 3412,
5451 "name": "bytes32",
5452 "nodeType": "ElementaryTypeName",
5453 "src": "1803:7:16",
5454 "typeDescriptions": {
5455 "typeIdentifier": "t_bytes32",
5456 "typeString": "bytes32"
5457 }
5458 },
5459 "id": 3413,
5460 "length": null,
5461 "nodeType": "ArrayTypeName",
5462 "src": "1803:9:16",
5463 "typeDescriptions": {
5464 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
5465 "typeString": "bytes32[]"
5466 }
5467 },
5468 "value": null,
5469 "visibility": "internal"
5470 },
5471 {
5472 "constant": false,
5473 "id": 3416,
5474 "name": "onchainSubscriber",
5475 "nodeType": "VariableDeclaration",
5476 "scope": 3452,
5477 "src": "1829:22:16",
5478 "stateVariable": false,
5479 "storageLocation": "default",
5480 "typeDescriptions": {
5481 "typeIdentifier": "t_bool",
5482 "typeString": "bool"
5483 },
5484 "typeName": {
5485 "id": 3415,
5486 "name": "bool",
5487 "nodeType": "ElementaryTypeName",
5488 "src": "1829:4:16",
5489 "typeDescriptions": {
5490 "typeIdentifier": "t_bool",
5491 "typeString": "bool"
5492 }
5493 },
5494 "value": null,
5495 "visibility": "internal"
5496 }
5497 ],
5498 "src": "1754:98:16"
5499 },
5500 "payable": false,
5501 "returnParameters": {
5502 "id": 3418,
5503 "nodeType": "ParameterList",
5504 "parameters": [],
5505 "src": "1862:0:16"
5506 },
5507 "scope": 3453,
5508 "src": "1738:471:16",
5509 "stateMutability": "nonpayable",
5510 "superFunction": 1825,
5511 "visibility": "external"
5512 }
5513 ],
5514 "scope": 3454,
5515 "src": "223:1989:16"
5516 }
5517 ],
5518 "src": "0:2213:16"
5519 },
5520 "compiler": {
5521 "name": "solc",
5522 "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
5523 },
5524 "networks": {},
5525 "schemaVersion": "2.0.2",
5526 "updatedAt": "2019-06-25T21:15:14.172Z"
5527}
\No newline at end of file