UNPKG

404 kBJSONView Raw
1{
2 "contractName": "BTCcontest",
3 "abi": [
4 {
5 "constant": true,
6 "inputs": [],
7 "name": "coordinator",
8 "outputs": [
9 {
10 "name": "",
11 "type": "address"
12 }
13 ],
14 "payable": false,
15 "stateMutability": "view",
16 "type": "function"
17 },
18 {
19 "constant": true,
20 "inputs": [],
21 "name": "downEndpoint",
22 "outputs": [
23 {
24 "name": "",
25 "type": "bytes32"
26 }
27 ],
28 "payable": false,
29 "stateMutability": "view",
30 "type": "function"
31 },
32 {
33 "constant": true,
34 "inputs": [],
35 "name": "oracle",
36 "outputs": [
37 {
38 "name": "",
39 "type": "address"
40 }
41 ],
42 "payable": false,
43 "stateMutability": "view",
44 "type": "function"
45 },
46 {
47 "constant": true,
48 "inputs": [],
49 "name": "owner",
50 "outputs": [
51 {
52 "name": "",
53 "type": "address"
54 }
55 ],
56 "payable": false,
57 "stateMutability": "view",
58 "type": "function"
59 },
60 {
61 "constant": true,
62 "inputs": [],
63 "name": "upEndpoint",
64 "outputs": [
65 {
66 "name": "",
67 "type": "bytes32"
68 }
69 ],
70 "payable": false,
71 "stateMutability": "view",
72 "type": "function"
73 },
74 {
75 "constant": true,
76 "inputs": [],
77 "name": "contest",
78 "outputs": [
79 {
80 "name": "",
81 "type": "address"
82 }
83 ],
84 "payable": false,
85 "stateMutability": "view",
86 "type": "function"
87 },
88 {
89 "constant": true,
90 "inputs": [],
91 "name": "query_id",
92 "outputs": [
93 {
94 "name": "",
95 "type": "uint256"
96 }
97 ],
98 "payable": false,
99 "stateMutability": "view",
100 "type": "function"
101 },
102 {
103 "constant": true,
104 "inputs": [],
105 "name": "startPrice",
106 "outputs": [
107 {
108 "name": "",
109 "type": "uint256"
110 }
111 ],
112 "payable": false,
113 "stateMutability": "view",
114 "type": "function"
115 },
116 {
117 "constant": false,
118 "inputs": [
119 {
120 "name": "newOwner",
121 "type": "address"
122 }
123 ],
124 "name": "transferOwnership",
125 "outputs": [],
126 "payable": false,
127 "stateMutability": "nonpayable",
128 "type": "function"
129 },
130 {
131 "inputs": [
132 {
133 "name": "_cord",
134 "type": "address"
135 },
136 {
137 "name": "_contest",
138 "type": "address"
139 },
140 {
141 "name": "_startPrice",
142 "type": "uint256"
143 },
144 {
145 "name": "_upEndpoint",
146 "type": "bytes32"
147 },
148 {
149 "name": "_downEndpoint",
150 "type": "bytes32"
151 }
152 ],
153 "payable": false,
154 "stateMutability": "nonpayable",
155 "type": "constructor"
156 },
157 {
158 "anonymous": false,
159 "inputs": [
160 {
161 "indexed": true,
162 "name": "previousOwner",
163 "type": "address"
164 },
165 {
166 "indexed": true,
167 "name": "newOwner",
168 "type": "address"
169 }
170 ],
171 "name": "OwnershipTransferred",
172 "type": "event"
173 },
174 {
175 "constant": false,
176 "inputs": [
177 {
178 "name": "_coincap",
179 "type": "address"
180 },
181 {
182 "name": "_endpoint",
183 "type": "bytes32"
184 },
185 {
186 "name": "_numDots",
187 "type": "uint256"
188 }
189 ],
190 "name": "bondToCoincap",
191 "outputs": [
192 {
193 "name": "",
194 "type": "bool"
195 }
196 ],
197 "payable": false,
198 "stateMutability": "nonpayable",
199 "type": "function"
200 },
201 {
202 "constant": false,
203 "inputs": [
204 {
205 "name": "_coincap",
206 "type": "address"
207 },
208 {
209 "name": "_endpoint",
210 "type": "bytes32"
211 }
212 ],
213 "name": "queryToSettle",
214 "outputs": [
215 {
216 "name": "",
217 "type": "uint256"
218 }
219 ],
220 "payable": false,
221 "stateMutability": "nonpayable",
222 "type": "function"
223 },
224 {
225 "constant": false,
226 "inputs": [
227 {
228 "name": "_id",
229 "type": "uint256"
230 },
231 {
232 "name": "responses",
233 "type": "int256[]"
234 }
235 ],
236 "name": "callback",
237 "outputs": [],
238 "payable": false,
239 "stateMutability": "nonpayable",
240 "type": "function"
241 }
242 ],
243 "bytecode": "0x60806040523480156200001157600080fd5b5060405160a08062001a3e83398101806040528101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050506000806000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560058190555087600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ba3dbee866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156200020657600080fd5b505af11580156200021b573d6000803e3d6000fd5b505050506040513d60208110156200023257600080fd5b81019080805190602001909291905050508015620003235750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ba3dbee856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015620002e557600080fd5b505af1158015620002fa573d6000803e3d6000fd5b505050506040513d60208110156200031157600080fd5b81019080805190602001909291905050505b151562000398576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f456e64706f696e747320617265206e6f742076616c696400000000000000000081525060200191505060405180910390fd5b84600681600019169055508360078160001916905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260078152602001807f424f4e4441474500000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156200047157600080fd5b505af115801562000486573d6000803e3d6000fd5b505050506040513d60208110156200049d57600080fd5b81019080805190602001909291905050509250829150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260098152602001807f5a41505f544f4b454e0000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156200057657600080fd5b505af11580156200058b573d6000803e3d6000fd5b505050506040513d6020811015620005a257600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3846000196040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156200065b57600080fd5b505af115801562000670573d6000803e3d6000fd5b505050506040513d60208110156200068757600080fd5b810190808051906020019092919050505050505050505050505061138d80620006b16000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a009097146100bf5780632a0962ba1461011657806374402df7146101495780637dc0d1d0146101bc5780638da5cb5b1461021357806399ff48af1461026a578063d29cb5c5146102af578063db3ddc34146102e2578063e3ac83da14610347578063e7cd81461461039e578063f1a9af89146103c9578063f2fde38b146103f4575b600080fd5b3480156100cb57600080fd5b506100d4610437565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012257600080fd5b5061012b61045d565b60405180826000191660001916815260200191505060405180910390f35b34801561015557600080fd5b506101a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190929190505050610463565b604051808215151515815260200191505060405180910390f35b3480156101c857600080fd5b506101d1610767565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021f57600080fd5b5061022861078d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027657600080fd5b506102ad600480360381019080803590602001909291908035906020019082018035906020019190919293919293905050506107b2565b005b3480156102bb57600080fd5b506102c4610e3a565b60405180826000191660001916815260200191505060405180910390f35b3480156102ee57600080fd5b50610331600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050610e40565b6040518082815260200191505060405180910390f35b34801561035357600080fd5b5061035c6111da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103aa57600080fd5b506103b3611200565b6040518082815260200191505060405180910390f35b3480156103d557600080fd5b506103de611206565b6040518082815260200191505060405180910390f35b34801561040057600080fd5b50610435600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061120c565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600080600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260078152602001807f424f4e4441474500000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561052b57600080fd5b505af115801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b81019080805190602001909291905050509250829150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260098152602001807f5a41505f544f4b454e0000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561062d57600080fd5b505af1158015610641573d6000803e3d6000fd5b505050506040513d602081101561065757600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff166399275cc78888886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018281526020019350505050602060405180830381600087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050506040513d602081101561074757600080fd5b810190808051906020019092919050505050600193505050509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060606000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f4449535041544348000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050506040513d60208110156108a557600080fd5b810190808051906020019092919050505093508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610981576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4f6e6c792061636365707420726573706f6e73652066726f6d2064697370617481526020017f636800000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e69d5606040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a0857600080fd5b505af1158015610a1c573d6000803e3d6000fd5b505050506040513d6020811015610a3257600080fd5b8101908080519060200190929190505050141515610ade576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f436f6e74657374206973206e6f7420696e20696e697469616c697a656420737481526020017f617465000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b858560008181101515610aed57fe5b905060200201359250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d7c83f16040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610bba57600080fd5b810190808051640100000000811115610bd257600080fd5b82810190506020810184811115610be857600080fd5b8151856020820283011164010000000082111715610c0557600080fd5b50509291905050509150600090505b8151811015610e3057600654600019168282815181101515610c3257fe5b9060200190602002015160001916148015610c4e575060055483115b15610d2057600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e41031438383815181101515610c9f57fe5b906020019060200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050600060405180830381600087803b158015610d0357600080fd5b505af1158015610d17573d6000803e3d6000fd5b50505050610e31565b600754600019168282815181101515610d3557fe5b9060200190602002015160001916148015610d51575060055483105b15610e2357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e41031438383815181101515610da257fe5b906020019060200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050600060405180830381600087803b158015610e0657600080fd5b505af1158015610e1a573d6000803e3d6000fd5b50505050610e31565b8080600101915050610c14565b5b50505050505050565b60065481565b60008060006060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4f6e6c79204f7261636c65206f776e65722063616e2063616c6c20717565727981526020017f20746f20736574746c650000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f4449535041544348000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015610ff457600080fd5b505af1158015611008573d6000803e3d6000fd5b505050506040513d602081101561101e57600080fd5b8101908080519060200190929190505050925082915060006040519080825280602002602001820160405280156110645781602001602082028038833980820191505090505b5090508173ffffffffffffffffffffffffffffffffffffffff16637de7cc668787846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001846000191660001916815260200180602001838103835260038152602001807f4254430000000000000000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019060200280838360005b8381101561116c578082015181840152602081019050611151565b5050505090500195505050505050602060405180830381600087803b15801561119457600080fd5b505af11580156111a8573d6000803e3d6000fd5b505050506040513d60208110156111be57600080fd5b8101908080519060200190929190505050935050505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156112a357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820898ad913aa1b8b0253916f2ec442d9c051d625291fb9841223feac9234d48c320029",
244 "deployedBytecode": "0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a009097146100bf5780632a0962ba1461011657806374402df7146101495780637dc0d1d0146101bc5780638da5cb5b1461021357806399ff48af1461026a578063d29cb5c5146102af578063db3ddc34146102e2578063e3ac83da14610347578063e7cd81461461039e578063f1a9af89146103c9578063f2fde38b146103f4575b600080fd5b3480156100cb57600080fd5b506100d4610437565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012257600080fd5b5061012b61045d565b60405180826000191660001916815260200191505060405180910390f35b34801561015557600080fd5b506101a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190929190505050610463565b604051808215151515815260200191505060405180910390f35b3480156101c857600080fd5b506101d1610767565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021f57600080fd5b5061022861078d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027657600080fd5b506102ad600480360381019080803590602001909291908035906020019082018035906020019190919293919293905050506107b2565b005b3480156102bb57600080fd5b506102c4610e3a565b60405180826000191660001916815260200191505060405180910390f35b3480156102ee57600080fd5b50610331600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050610e40565b6040518082815260200191505060405180910390f35b34801561035357600080fd5b5061035c6111da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103aa57600080fd5b506103b3611200565b6040518082815260200191505060405180910390f35b3480156103d557600080fd5b506103de611206565b6040518082815260200191505060405180910390f35b34801561040057600080fd5b50610435600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061120c565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600080600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260078152602001807f424f4e4441474500000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561052b57600080fd5b505af115801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b81019080805190602001909291905050509250829150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260098152602001807f5a41505f544f4b454e0000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561062d57600080fd5b505af1158015610641573d6000803e3d6000fd5b505050506040513d602081101561065757600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff166399275cc78888886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018281526020019350505050602060405180830381600087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050506040513d602081101561074757600080fd5b810190808051906020019092919050505050600193505050509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060606000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f4449535041544348000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050506040513d60208110156108a557600080fd5b810190808051906020019092919050505093508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610981576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4f6e6c792061636365707420726573706f6e73652066726f6d2064697370617481526020017f636800000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e69d5606040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a0857600080fd5b505af1158015610a1c573d6000803e3d6000fd5b505050506040513d6020811015610a3257600080fd5b8101908080519060200190929190505050141515610ade576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f436f6e74657374206973206e6f7420696e20696e697469616c697a656420737481526020017f617465000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b858560008181101515610aed57fe5b905060200201359250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d7c83f16040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610bba57600080fd5b810190808051640100000000811115610bd257600080fd5b82810190506020810184811115610be857600080fd5b8151856020820283011164010000000082111715610c0557600080fd5b50509291905050509150600090505b8151811015610e3057600654600019168282815181101515610c3257fe5b9060200190602002015160001916148015610c4e575060055483115b15610d2057600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e41031438383815181101515610c9f57fe5b906020019060200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050600060405180830381600087803b158015610d0357600080fd5b505af1158015610d17573d6000803e3d6000fd5b50505050610e31565b600754600019168282815181101515610d3557fe5b9060200190602002015160001916148015610d51575060055483105b15610e2357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e41031438383815181101515610da257fe5b906020019060200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050600060405180830381600087803b158015610e0657600080fd5b505af1158015610e1a573d6000803e3d6000fd5b50505050610e31565b8080600101915050610c14565b5b50505050505050565b60065481565b60008060006060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4f6e6c79204f7261636c65206f776e65722063616e2063616c6c20717565727981526020017f20746f20736574746c650000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663358177736040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260088152602001807f4449535041544348000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015610ff457600080fd5b505af1158015611008573d6000803e3d6000fd5b505050506040513d602081101561101e57600080fd5b8101908080519060200190929190505050925082915060006040519080825280602002602001820160405280156110645781602001602082028038833980820191505090505b5090508173ffffffffffffffffffffffffffffffffffffffff16637de7cc668787846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001846000191660001916815260200180602001838103835260038152602001807f4254430000000000000000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019060200280838360005b8381101561116c578082015181840152602081019050611151565b5050505090500195505050505050602060405180830381600087803b15801561119457600080fd5b505af11580156111a8573d6000803e3d6000fd5b505050506040513d60208110156111be57600080fd5b8101908080519060200190929190505050935050505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156112a357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820898ad913aa1b8b0253916f2ec442d9c051d625291fb9841223feac9234d48c320029",
245 "sourceMap": "302:2628:7:-;;;573:793;8:9:-1;5:2;;;30:1;27;20:12;5:2;573:793:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1039:22;1104:24;1169:34;297:10:3;289:5;;:18;;;;;;;;;;;;;;;;;;721:10:7;712:6;;:19;;;;;;;;;;;;;;;;;;761:8;737:7;;:33;;;;;;;;;;;;;;;;;;789:11;776:10;:24;;;;844:5;806:11;;:44;;;;;;;;;;;;;;;;;;864:7;;;;;;;;;;;:23;;;888:11;864:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;864:36:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;864:36:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;864:36:7;;;;;;;;;;;;;;;;:78;;;;;904:7;;;;;;;;;;;:23;;;928:13;904:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;904:38:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;904:38:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;904:38:7;;;;;;;;;;;;;;;;864:78;856:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:11;975:10;:24;;;;;;;1020:13;1005:12;:28;;;;;;;1064:11;;;;;;;;;;;:23;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1064:34:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1064:34:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1064:34:7;;;;;;;;;;;;;;;;1039:59;;1148:14;1104:59;;1228:11;;;;;;;;;;;:23;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1228:36:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1228:36:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1228:36:7;;;;;;;;;;;;;;;;1169:96;;1303:12;:20;;;1332:14;1357:1;1348:11;1303:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1303:57:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1303:57:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1303:57:7;;;;;;;;;;;;;;;;;573:793;;;;;;;;302:2628;;;;;;",
246 "deployedSourceMap": "302:2628:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:42:7;;;;;;;;;;;;;;;;;;;;;;;;;;;541:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;541:27:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1370:430;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1370:430:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;431:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;431:21:7;;;;;;;;;;;;;;;;;;;;;;;;;;;49:20:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:708:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2219:708:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;512:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;512:25:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1803:412;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1803:412:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;456:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;456:23:7;;;;;;;;;;;;;;;;;;;;;;;483:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;483:25:7;;;;;;;;;;;;;;;;;;;;;;;632:188:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;632:188:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:42:7;;;;;;;;;;;;;:::o;541:27::-;;;;:::o;1370:430::-;1461:4;1472:22;1537:24;1602:34;1497:11;;;;;;;;;;;:23;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1497:34:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1497:34:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1497:34:7;;;;;;;;;;;;;;;;1472:59;;1581:14;1537:59;;1661:11;;;;;;;;;;;:23;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1661:36:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1661:36:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1661:36:7;;;;;;;;;;;;;;;;1602:96;;1736:7;:12;;;1749:8;1758:9;1768:8;1736:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1736:41:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1736:41:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1736:41:7;;;;;;;;;;;;;;;;;1790:4;1783:11;;1370:430;;;;;;;;:::o;431:21::-;;;;;;;;;;;;;:::o;49:20:3:-;;;;;;;;;;;;;:::o;2219:708:7:-;2282:23;2557:13;2600:26;2661:9;2308:11;;;;;;;;;;;:23;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2308:35:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2308:35:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2308:35:7;;;;;;;;;;;;;;;;2282:61;;2386:15;2357:45;;2365:10;2357:45;;;2349:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2475:1;2454:7;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2454:19:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2454:19:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2454:19:7;;;;;;;;;;;;;;;;:22;2446:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2581:9;;2591:1;2581:12;;;;;;;;;;;;;;;2557:37;;2629:7;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2629:22:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2629:22:7;;;;;;39:16:-1;36:1;17:17;2:54;2629:22:7;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2629:22:7;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;2629:22:7;;;;;;2600:51;;2671:1;2661:11;;2657:266;2675:9;:16;2673:1;:18;2657:266;;;2721:10;;2707:24;;;:9;2717:1;2707:12;;;;;;;;;;;;;;;;;;:24;;;;:46;;;;;2743:10;;2735:5;:18;2707:46;2704:103;;;2771:7;;;;;;;;;;;:13;;;2785:9;2795:1;2785:12;;;;;;;;;;;;;;;;;;2771:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2771:27:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2771:27:7;;;;2764:34;;2704:103;2831:12;;2817:26;;;:9;2827:1;2817:12;;;;;;;;;;;;;;;;;;:26;;;;:46;;;;;2853:10;;2847:5;:16;2817:46;2814:103;;;2881:7;;;;;;;;;;;:13;;;2895:9;2905:1;2895:12;;;;;;;;;;;;;;;;;;2881:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2881:27:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2881:27:7;;;;2874:34;;2814:103;2692:3;;;;;;;2657:266;;;2219:708;;;;;;;;:::o;512:25::-;;;;:::o;1803:412::-;1877:7;1972:23;2039:26;2108:23;1913:6;;;;;;;;;;;1899:20;;:10;:20;;;1891:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:11;;;;;;;;;;;:23;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1998:35:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1998:35:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1998:35:7;;;;;;;;;;;;;;;;1972:61;;2086:15;2039:63;;2148:1;2134:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;2134:16:7;;;;2108:42;;2163:8;:14;;;2178:8;2193:9;2203:6;2163:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2163:47:7;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2163:47:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2163:47:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2163:47:7;;;;;;;;;;;;;;;;2156:54;;1803:412;;;;;;;:::o;353:28::-;;;;;;;;;;;;;:::o;456:23::-;;;;:::o;483:25::-;;;;:::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",
247 "source": "pragma solidity ^0.4.25;\nimport \"./SampleContest.sol\";\nimport \"../ownership/ZapCoordinatorInterface.sol\";\nimport \"../../platform/dispatch/DispatchInterface.sol\";\nimport \"../token/FactoryTokenInterface.sol\";\nimport \"../../platform/bondage/currentCost/CurrentCostInterface.sol\";\nimport \"./Client.sol\";\n\n\ncontract BTCcontest is Ownable, ClientIntArray {\n SampleContest public contest;\n ZapCoordinatorInterface public coordinator;\n address public oracle;\n uint256 public query_id;\n uint256 public startPrice;\n bytes32 public upEndpoint;\n bytes32 public downEndpoint;\n\n constructor(\n address _cord,\n address _contest,\n uint256 _startPrice,\n bytes32 _upEndpoint,\n bytes32 _downEndpoint\n ){\n oracle = msg.sender;\n contest = SampleContest(_contest);\n startPrice = _startPrice;\n coordinator = ZapCoordinatorInterface(_cord);\n require(contest.isEndpointValid(_upEndpoint) && contest.isEndpointValid(_downEndpoint),\"Endpoints are not valid\");\n upEndpoint = _upEndpoint;\n downEndpoint = _downEndpoint;\n address bondageAddress = coordinator.getContract(\"BONDAGE\");\n BondageInterface bondage = BondageInterface(bondageAddress);\n FactoryTokenInterface reserveToken = FactoryTokenInterface(coordinator.getContract(\"ZAP_TOKEN\"));\n //get reserve value to send\n reserveToken.approve(address(bondageAddress),~uint256(0));\n\n }\n\n function bondToCoincap(address _coincap,bytes32 _endpoint,uint256 _numDots)public returns (bool){\n address bondageAddress = coordinator.getContract(\"BONDAGE\");\n BondageInterface bondage = BondageInterface(bondageAddress);\n FactoryTokenInterface reserveToken = FactoryTokenInterface(coordinator.getContract(\"ZAP_TOKEN\"));\n //get reserve value to send\n bondage.bond(_coincap,_endpoint,_numDots);\n return true;\n\n }\n function queryToSettle(address _coincap,bytes32 _endpoint) public returns(uint256){\n require(msg.sender == oracle, \"Only Oracle owner can call query to settle\");\n address dispatchAddress = coordinator.getContract(\"DISPATCH\");\n DispatchInterface dispatch = DispatchInterface(dispatchAddress);\n bytes32[] memory params = new bytes32[](0);\n return dispatch.query(_coincap,\"BTC\",_endpoint,params);\n }\n\n function callback(uint256 _id, int[] responses) external {\n address dispatchAddress = coordinator.getContract(\"DISPATCH\");\n require(address(msg.sender)==address(dispatchAddress),\"Only accept response from dispatch\");\n require(contest.getStatus()==1,\"Contest is not in initialized state\"); //2 is the ReadyToSettle enum value\n uint256 price = uint256(responses[0]);\n bytes32[] memory endpoints = contest.getEndpoints();\n for(uint256 i=0;i<endpoints.length;i++){\n if(endpoints[i]==upEndpoint && price > startPrice){\n return contest.judge(endpoints[i]);\n }\n if(endpoints[i]==downEndpoint && price<startPrice){\n return contest.judge(endpoints[i]);\n }\n }\n }\n\n}\n",
248 "sourcePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/BTCcontest.sol",
249 "ast": {
250 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/BTCcontest.sol",
251 "exportedSymbols": {
252 "BTCcontest": [
253 805
254 ]
255 },
256 "id": 806,
257 "nodeType": "SourceUnit",
258 "nodes": [
259 {
260 "id": 495,
261 "literals": [
262 "solidity",
263 "^",
264 "0.4",
265 ".25"
266 ],
267 "nodeType": "PragmaDirective",
268 "src": "0:24:7"
269 },
270 {
271 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/SampleContest.sol",
272 "file": "./SampleContest.sol",
273 "id": 496,
274 "nodeType": "ImportDirective",
275 "scope": 806,
276 "sourceUnit": 3255,
277 "src": "25:29:7",
278 "symbolAliases": [],
279 "unitAlias": ""
280 },
281 {
282 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/ownership/ZapCoordinatorInterface.sol",
283 "file": "../ownership/ZapCoordinatorInterface.sol",
284 "id": 497,
285 "nodeType": "ImportDirective",
286 "scope": 806,
287 "sourceUnit": 494,
288 "src": "55:50:7",
289 "symbolAliases": [],
290 "unitAlias": ""
291 },
292 {
293 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/dispatch/DispatchInterface.sol",
294 "file": "../../platform/dispatch/DispatchInterface.sol",
295 "id": 498,
296 "nodeType": "ImportDirective",
297 "scope": 806,
298 "sourceUnit": 10148,
299 "src": "106:55:7",
300 "symbolAliases": [],
301 "unitAlias": ""
302 },
303 {
304 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/token/FactoryTokenInterface.sol",
305 "file": "../token/FactoryTokenInterface.sol",
306 "id": 499,
307 "nodeType": "ImportDirective",
308 "scope": 806,
309 "sourceUnit": 5199,
310 "src": "162:44:7",
311 "symbolAliases": [],
312 "unitAlias": ""
313 },
314 {
315 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/bondage/currentCost/CurrentCostInterface.sol",
316 "file": "../../platform/bondage/currentCost/CurrentCostInterface.sol",
317 "id": 500,
318 "nodeType": "ImportDirective",
319 "scope": 806,
320 "sourceUnit": 8127,
321 "src": "207:69:7",
322 "symbolAliases": [],
323 "unitAlias": ""
324 },
325 {
326 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/Client.sol",
327 "file": "./Client.sol",
328 "id": 501,
329 "nodeType": "ImportDirective",
330 "scope": 806,
331 "sourceUnit": 870,
332 "src": "277:22:7",
333 "symbolAliases": [],
334 "unitAlias": ""
335 },
336 {
337 "baseContracts": [
338 {
339 "arguments": null,
340 "baseName": {
341 "contractScope": null,
342 "id": 502,
343 "name": "Ownable",
344 "nodeType": "UserDefinedTypeName",
345 "referencedDeclaration": 203,
346 "src": "325:7:7",
347 "typeDescriptions": {
348 "typeIdentifier": "t_contract$_Ownable_$203",
349 "typeString": "contract Ownable"
350 }
351 },
352 "id": 503,
353 "nodeType": "InheritanceSpecifier",
354 "src": "325:7:7"
355 },
356 {
357 "arguments": null,
358 "baseName": {
359 "contractScope": null,
360 "id": 504,
361 "name": "ClientIntArray",
362 "nodeType": "UserDefinedTypeName",
363 "referencedDeclaration": 869,
364 "src": "334:14:7",
365 "typeDescriptions": {
366 "typeIdentifier": "t_contract$_ClientIntArray_$869",
367 "typeString": "contract ClientIntArray"
368 }
369 },
370 "id": 505,
371 "nodeType": "InheritanceSpecifier",
372 "src": "334:14:7"
373 }
374 ],
375 "contractDependencies": [
376 203,
377 869
378 ],
379 "contractKind": "contract",
380 "documentation": null,
381 "fullyImplemented": true,
382 "id": 805,
383 "linearizedBaseContracts": [
384 805,
385 869,
386 203
387 ],
388 "name": "BTCcontest",
389 "nodeType": "ContractDefinition",
390 "nodes": [
391 {
392 "constant": false,
393 "id": 507,
394 "name": "contest",
395 "nodeType": "VariableDeclaration",
396 "scope": 805,
397 "src": "353:28:7",
398 "stateVariable": true,
399 "storageLocation": "default",
400 "typeDescriptions": {
401 "typeIdentifier": "t_contract$_SampleContest_$3254",
402 "typeString": "contract SampleContest"
403 },
404 "typeName": {
405 "contractScope": null,
406 "id": 506,
407 "name": "SampleContest",
408 "nodeType": "UserDefinedTypeName",
409 "referencedDeclaration": 3254,
410 "src": "353:13:7",
411 "typeDescriptions": {
412 "typeIdentifier": "t_contract$_SampleContest_$3254",
413 "typeString": "contract SampleContest"
414 }
415 },
416 "value": null,
417 "visibility": "public"
418 },
419 {
420 "constant": false,
421 "id": 509,
422 "name": "coordinator",
423 "nodeType": "VariableDeclaration",
424 "scope": 805,
425 "src": "385:42:7",
426 "stateVariable": true,
427 "storageLocation": "default",
428 "typeDescriptions": {
429 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
430 "typeString": "contract ZapCoordinatorInterface"
431 },
432 "typeName": {
433 "contractScope": null,
434 "id": 508,
435 "name": "ZapCoordinatorInterface",
436 "nodeType": "UserDefinedTypeName",
437 "referencedDeclaration": 493,
438 "src": "385:23:7",
439 "typeDescriptions": {
440 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
441 "typeString": "contract ZapCoordinatorInterface"
442 }
443 },
444 "value": null,
445 "visibility": "public"
446 },
447 {
448 "constant": false,
449 "id": 511,
450 "name": "oracle",
451 "nodeType": "VariableDeclaration",
452 "scope": 805,
453 "src": "431:21:7",
454 "stateVariable": true,
455 "storageLocation": "default",
456 "typeDescriptions": {
457 "typeIdentifier": "t_address",
458 "typeString": "address"
459 },
460 "typeName": {
461 "id": 510,
462 "name": "address",
463 "nodeType": "ElementaryTypeName",
464 "src": "431:7:7",
465 "typeDescriptions": {
466 "typeIdentifier": "t_address",
467 "typeString": "address"
468 }
469 },
470 "value": null,
471 "visibility": "public"
472 },
473 {
474 "constant": false,
475 "id": 513,
476 "name": "query_id",
477 "nodeType": "VariableDeclaration",
478 "scope": 805,
479 "src": "456:23:7",
480 "stateVariable": true,
481 "storageLocation": "default",
482 "typeDescriptions": {
483 "typeIdentifier": "t_uint256",
484 "typeString": "uint256"
485 },
486 "typeName": {
487 "id": 512,
488 "name": "uint256",
489 "nodeType": "ElementaryTypeName",
490 "src": "456:7:7",
491 "typeDescriptions": {
492 "typeIdentifier": "t_uint256",
493 "typeString": "uint256"
494 }
495 },
496 "value": null,
497 "visibility": "public"
498 },
499 {
500 "constant": false,
501 "id": 515,
502 "name": "startPrice",
503 "nodeType": "VariableDeclaration",
504 "scope": 805,
505 "src": "483:25:7",
506 "stateVariable": true,
507 "storageLocation": "default",
508 "typeDescriptions": {
509 "typeIdentifier": "t_uint256",
510 "typeString": "uint256"
511 },
512 "typeName": {
513 "id": 514,
514 "name": "uint256",
515 "nodeType": "ElementaryTypeName",
516 "src": "483:7:7",
517 "typeDescriptions": {
518 "typeIdentifier": "t_uint256",
519 "typeString": "uint256"
520 }
521 },
522 "value": null,
523 "visibility": "public"
524 },
525 {
526 "constant": false,
527 "id": 517,
528 "name": "upEndpoint",
529 "nodeType": "VariableDeclaration",
530 "scope": 805,
531 "src": "512:25:7",
532 "stateVariable": true,
533 "storageLocation": "default",
534 "typeDescriptions": {
535 "typeIdentifier": "t_bytes32",
536 "typeString": "bytes32"
537 },
538 "typeName": {
539 "id": 516,
540 "name": "bytes32",
541 "nodeType": "ElementaryTypeName",
542 "src": "512:7:7",
543 "typeDescriptions": {
544 "typeIdentifier": "t_bytes32",
545 "typeString": "bytes32"
546 }
547 },
548 "value": null,
549 "visibility": "public"
550 },
551 {
552 "constant": false,
553 "id": 519,
554 "name": "downEndpoint",
555 "nodeType": "VariableDeclaration",
556 "scope": 805,
557 "src": "541:27:7",
558 "stateVariable": true,
559 "storageLocation": "default",
560 "typeDescriptions": {
561 "typeIdentifier": "t_bytes32",
562 "typeString": "bytes32"
563 },
564 "typeName": {
565 "id": 518,
566 "name": "bytes32",
567 "nodeType": "ElementaryTypeName",
568 "src": "541:7:7",
569 "typeDescriptions": {
570 "typeIdentifier": "t_bytes32",
571 "typeString": "bytes32"
572 }
573 },
574 "value": null,
575 "visibility": "public"
576 },
577 {
578 "body": {
579 "id": 608,
580 "nodeType": "Block",
581 "src": "706:660:7",
582 "statements": [
583 {
584 "expression": {
585 "argumentTypes": null,
586 "id": 535,
587 "isConstant": false,
588 "isLValue": false,
589 "isPure": false,
590 "lValueRequested": false,
591 "leftHandSide": {
592 "argumentTypes": null,
593 "id": 532,
594 "name": "oracle",
595 "nodeType": "Identifier",
596 "overloadedDeclarations": [],
597 "referencedDeclaration": 511,
598 "src": "712:6:7",
599 "typeDescriptions": {
600 "typeIdentifier": "t_address",
601 "typeString": "address"
602 }
603 },
604 "nodeType": "Assignment",
605 "operator": "=",
606 "rightHandSide": {
607 "argumentTypes": null,
608 "expression": {
609 "argumentTypes": null,
610 "id": 533,
611 "name": "msg",
612 "nodeType": "Identifier",
613 "overloadedDeclarations": [],
614 "referencedDeclaration": 12092,
615 "src": "721:3:7",
616 "typeDescriptions": {
617 "typeIdentifier": "t_magic_message",
618 "typeString": "msg"
619 }
620 },
621 "id": 534,
622 "isConstant": false,
623 "isLValue": false,
624 "isPure": false,
625 "lValueRequested": false,
626 "memberName": "sender",
627 "nodeType": "MemberAccess",
628 "referencedDeclaration": null,
629 "src": "721:10:7",
630 "typeDescriptions": {
631 "typeIdentifier": "t_address",
632 "typeString": "address"
633 }
634 },
635 "src": "712:19:7",
636 "typeDescriptions": {
637 "typeIdentifier": "t_address",
638 "typeString": "address"
639 }
640 },
641 "id": 536,
642 "nodeType": "ExpressionStatement",
643 "src": "712:19:7"
644 },
645 {
646 "expression": {
647 "argumentTypes": null,
648 "id": 541,
649 "isConstant": false,
650 "isLValue": false,
651 "isPure": false,
652 "lValueRequested": false,
653 "leftHandSide": {
654 "argumentTypes": null,
655 "id": 537,
656 "name": "contest",
657 "nodeType": "Identifier",
658 "overloadedDeclarations": [],
659 "referencedDeclaration": 507,
660 "src": "737:7:7",
661 "typeDescriptions": {
662 "typeIdentifier": "t_contract$_SampleContest_$3254",
663 "typeString": "contract SampleContest"
664 }
665 },
666 "nodeType": "Assignment",
667 "operator": "=",
668 "rightHandSide": {
669 "argumentTypes": null,
670 "arguments": [
671 {
672 "argumentTypes": null,
673 "id": 539,
674 "name": "_contest",
675 "nodeType": "Identifier",
676 "overloadedDeclarations": [],
677 "referencedDeclaration": 523,
678 "src": "761:8:7",
679 "typeDescriptions": {
680 "typeIdentifier": "t_address",
681 "typeString": "address"
682 }
683 }
684 ],
685 "expression": {
686 "argumentTypes": [
687 {
688 "typeIdentifier": "t_address",
689 "typeString": "address"
690 }
691 ],
692 "id": 538,
693 "name": "SampleContest",
694 "nodeType": "Identifier",
695 "overloadedDeclarations": [],
696 "referencedDeclaration": 3254,
697 "src": "747:13:7",
698 "typeDescriptions": {
699 "typeIdentifier": "t_type$_t_contract$_SampleContest_$3254_$",
700 "typeString": "type(contract SampleContest)"
701 }
702 },
703 "id": 540,
704 "isConstant": false,
705 "isLValue": false,
706 "isPure": false,
707 "kind": "typeConversion",
708 "lValueRequested": false,
709 "names": [],
710 "nodeType": "FunctionCall",
711 "src": "747:23:7",
712 "typeDescriptions": {
713 "typeIdentifier": "t_contract$_SampleContest_$3254",
714 "typeString": "contract SampleContest"
715 }
716 },
717 "src": "737:33:7",
718 "typeDescriptions": {
719 "typeIdentifier": "t_contract$_SampleContest_$3254",
720 "typeString": "contract SampleContest"
721 }
722 },
723 "id": 542,
724 "nodeType": "ExpressionStatement",
725 "src": "737:33:7"
726 },
727 {
728 "expression": {
729 "argumentTypes": null,
730 "id": 545,
731 "isConstant": false,
732 "isLValue": false,
733 "isPure": false,
734 "lValueRequested": false,
735 "leftHandSide": {
736 "argumentTypes": null,
737 "id": 543,
738 "name": "startPrice",
739 "nodeType": "Identifier",
740 "overloadedDeclarations": [],
741 "referencedDeclaration": 515,
742 "src": "776:10:7",
743 "typeDescriptions": {
744 "typeIdentifier": "t_uint256",
745 "typeString": "uint256"
746 }
747 },
748 "nodeType": "Assignment",
749 "operator": "=",
750 "rightHandSide": {
751 "argumentTypes": null,
752 "id": 544,
753 "name": "_startPrice",
754 "nodeType": "Identifier",
755 "overloadedDeclarations": [],
756 "referencedDeclaration": 525,
757 "src": "789:11:7",
758 "typeDescriptions": {
759 "typeIdentifier": "t_uint256",
760 "typeString": "uint256"
761 }
762 },
763 "src": "776:24:7",
764 "typeDescriptions": {
765 "typeIdentifier": "t_uint256",
766 "typeString": "uint256"
767 }
768 },
769 "id": 546,
770 "nodeType": "ExpressionStatement",
771 "src": "776:24:7"
772 },
773 {
774 "expression": {
775 "argumentTypes": null,
776 "id": 551,
777 "isConstant": false,
778 "isLValue": false,
779 "isPure": false,
780 "lValueRequested": false,
781 "leftHandSide": {
782 "argumentTypes": null,
783 "id": 547,
784 "name": "coordinator",
785 "nodeType": "Identifier",
786 "overloadedDeclarations": [],
787 "referencedDeclaration": 509,
788 "src": "806:11:7",
789 "typeDescriptions": {
790 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
791 "typeString": "contract ZapCoordinatorInterface"
792 }
793 },
794 "nodeType": "Assignment",
795 "operator": "=",
796 "rightHandSide": {
797 "argumentTypes": null,
798 "arguments": [
799 {
800 "argumentTypes": null,
801 "id": 549,
802 "name": "_cord",
803 "nodeType": "Identifier",
804 "overloadedDeclarations": [],
805 "referencedDeclaration": 521,
806 "src": "844:5:7",
807 "typeDescriptions": {
808 "typeIdentifier": "t_address",
809 "typeString": "address"
810 }
811 }
812 ],
813 "expression": {
814 "argumentTypes": [
815 {
816 "typeIdentifier": "t_address",
817 "typeString": "address"
818 }
819 ],
820 "id": 548,
821 "name": "ZapCoordinatorInterface",
822 "nodeType": "Identifier",
823 "overloadedDeclarations": [],
824 "referencedDeclaration": 493,
825 "src": "820:23:7",
826 "typeDescriptions": {
827 "typeIdentifier": "t_type$_t_contract$_ZapCoordinatorInterface_$493_$",
828 "typeString": "type(contract ZapCoordinatorInterface)"
829 }
830 },
831 "id": 550,
832 "isConstant": false,
833 "isLValue": false,
834 "isPure": false,
835 "kind": "typeConversion",
836 "lValueRequested": false,
837 "names": [],
838 "nodeType": "FunctionCall",
839 "src": "820:30:7",
840 "typeDescriptions": {
841 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
842 "typeString": "contract ZapCoordinatorInterface"
843 }
844 },
845 "src": "806:44:7",
846 "typeDescriptions": {
847 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
848 "typeString": "contract ZapCoordinatorInterface"
849 }
850 },
851 "id": 552,
852 "nodeType": "ExpressionStatement",
853 "src": "806:44:7"
854 },
855 {
856 "expression": {
857 "argumentTypes": null,
858 "arguments": [
859 {
860 "argumentTypes": null,
861 "commonType": {
862 "typeIdentifier": "t_bool",
863 "typeString": "bool"
864 },
865 "id": 562,
866 "isConstant": false,
867 "isLValue": false,
868 "isPure": false,
869 "lValueRequested": false,
870 "leftExpression": {
871 "argumentTypes": null,
872 "arguments": [
873 {
874 "argumentTypes": null,
875 "id": 556,
876 "name": "_upEndpoint",
877 "nodeType": "Identifier",
878 "overloadedDeclarations": [],
879 "referencedDeclaration": 527,
880 "src": "888:11:7",
881 "typeDescriptions": {
882 "typeIdentifier": "t_bytes32",
883 "typeString": "bytes32"
884 }
885 }
886 ],
887 "expression": {
888 "argumentTypes": [
889 {
890 "typeIdentifier": "t_bytes32",
891 "typeString": "bytes32"
892 }
893 ],
894 "expression": {
895 "argumentTypes": null,
896 "id": 554,
897 "name": "contest",
898 "nodeType": "Identifier",
899 "overloadedDeclarations": [],
900 "referencedDeclaration": 507,
901 "src": "864:7:7",
902 "typeDescriptions": {
903 "typeIdentifier": "t_contract$_SampleContest_$3254",
904 "typeString": "contract SampleContest"
905 }
906 },
907 "id": 555,
908 "isConstant": false,
909 "isLValue": false,
910 "isPure": false,
911 "lValueRequested": false,
912 "memberName": "isEndpointValid",
913 "nodeType": "MemberAccess",
914 "referencedDeclaration": 3115,
915 "src": "864:23:7",
916 "typeDescriptions": {
917 "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
918 "typeString": "function (bytes32) view external returns (bool)"
919 }
920 },
921 "id": 557,
922 "isConstant": false,
923 "isLValue": false,
924 "isPure": false,
925 "kind": "functionCall",
926 "lValueRequested": false,
927 "names": [],
928 "nodeType": "FunctionCall",
929 "src": "864:36:7",
930 "typeDescriptions": {
931 "typeIdentifier": "t_bool",
932 "typeString": "bool"
933 }
934 },
935 "nodeType": "BinaryOperation",
936 "operator": "&&",
937 "rightExpression": {
938 "argumentTypes": null,
939 "arguments": [
940 {
941 "argumentTypes": null,
942 "id": 560,
943 "name": "_downEndpoint",
944 "nodeType": "Identifier",
945 "overloadedDeclarations": [],
946 "referencedDeclaration": 529,
947 "src": "928:13:7",
948 "typeDescriptions": {
949 "typeIdentifier": "t_bytes32",
950 "typeString": "bytes32"
951 }
952 }
953 ],
954 "expression": {
955 "argumentTypes": [
956 {
957 "typeIdentifier": "t_bytes32",
958 "typeString": "bytes32"
959 }
960 ],
961 "expression": {
962 "argumentTypes": null,
963 "id": 558,
964 "name": "contest",
965 "nodeType": "Identifier",
966 "overloadedDeclarations": [],
967 "referencedDeclaration": 507,
968 "src": "904:7:7",
969 "typeDescriptions": {
970 "typeIdentifier": "t_contract$_SampleContest_$3254",
971 "typeString": "contract SampleContest"
972 }
973 },
974 "id": 559,
975 "isConstant": false,
976 "isLValue": false,
977 "isPure": false,
978 "lValueRequested": false,
979 "memberName": "isEndpointValid",
980 "nodeType": "MemberAccess",
981 "referencedDeclaration": 3115,
982 "src": "904:23:7",
983 "typeDescriptions": {
984 "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
985 "typeString": "function (bytes32) view external returns (bool)"
986 }
987 },
988 "id": 561,
989 "isConstant": false,
990 "isLValue": false,
991 "isPure": false,
992 "kind": "functionCall",
993 "lValueRequested": false,
994 "names": [],
995 "nodeType": "FunctionCall",
996 "src": "904:38:7",
997 "typeDescriptions": {
998 "typeIdentifier": "t_bool",
999 "typeString": "bool"
1000 }
1001 },
1002 "src": "864:78:7",
1003 "typeDescriptions": {
1004 "typeIdentifier": "t_bool",
1005 "typeString": "bool"
1006 }
1007 },
1008 {
1009 "argumentTypes": null,
1010 "hexValue": "456e64706f696e747320617265206e6f742076616c6964",
1011 "id": 563,
1012 "isConstant": false,
1013 "isLValue": false,
1014 "isPure": true,
1015 "kind": "string",
1016 "lValueRequested": false,
1017 "nodeType": "Literal",
1018 "src": "943:25:7",
1019 "subdenomination": null,
1020 "typeDescriptions": {
1021 "typeIdentifier": "t_stringliteral_2efdb0d543369f63958200ea12641e675b0ff56376f4124bdaafbf97e5ae8dfb",
1022 "typeString": "literal_string \"Endpoints are not valid\""
1023 },
1024 "value": "Endpoints are not valid"
1025 }
1026 ],
1027 "expression": {
1028 "argumentTypes": [
1029 {
1030 "typeIdentifier": "t_bool",
1031 "typeString": "bool"
1032 },
1033 {
1034 "typeIdentifier": "t_stringliteral_2efdb0d543369f63958200ea12641e675b0ff56376f4124bdaafbf97e5ae8dfb",
1035 "typeString": "literal_string \"Endpoints are not valid\""
1036 }
1037 ],
1038 "id": 553,
1039 "name": "require",
1040 "nodeType": "Identifier",
1041 "overloadedDeclarations": [
1042 12095,
1043 12096
1044 ],
1045 "referencedDeclaration": 12096,
1046 "src": "856:7:7",
1047 "typeDescriptions": {
1048 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
1049 "typeString": "function (bool,string memory) pure"
1050 }
1051 },
1052 "id": 564,
1053 "isConstant": false,
1054 "isLValue": false,
1055 "isPure": false,
1056 "kind": "functionCall",
1057 "lValueRequested": false,
1058 "names": [],
1059 "nodeType": "FunctionCall",
1060 "src": "856:113:7",
1061 "typeDescriptions": {
1062 "typeIdentifier": "t_tuple$__$",
1063 "typeString": "tuple()"
1064 }
1065 },
1066 "id": 565,
1067 "nodeType": "ExpressionStatement",
1068 "src": "856:113:7"
1069 },
1070 {
1071 "expression": {
1072 "argumentTypes": null,
1073 "id": 568,
1074 "isConstant": false,
1075 "isLValue": false,
1076 "isPure": false,
1077 "lValueRequested": false,
1078 "leftHandSide": {
1079 "argumentTypes": null,
1080 "id": 566,
1081 "name": "upEndpoint",
1082 "nodeType": "Identifier",
1083 "overloadedDeclarations": [],
1084 "referencedDeclaration": 517,
1085 "src": "975:10:7",
1086 "typeDescriptions": {
1087 "typeIdentifier": "t_bytes32",
1088 "typeString": "bytes32"
1089 }
1090 },
1091 "nodeType": "Assignment",
1092 "operator": "=",
1093 "rightHandSide": {
1094 "argumentTypes": null,
1095 "id": 567,
1096 "name": "_upEndpoint",
1097 "nodeType": "Identifier",
1098 "overloadedDeclarations": [],
1099 "referencedDeclaration": 527,
1100 "src": "988:11:7",
1101 "typeDescriptions": {
1102 "typeIdentifier": "t_bytes32",
1103 "typeString": "bytes32"
1104 }
1105 },
1106 "src": "975:24:7",
1107 "typeDescriptions": {
1108 "typeIdentifier": "t_bytes32",
1109 "typeString": "bytes32"
1110 }
1111 },
1112 "id": 569,
1113 "nodeType": "ExpressionStatement",
1114 "src": "975:24:7"
1115 },
1116 {
1117 "expression": {
1118 "argumentTypes": null,
1119 "id": 572,
1120 "isConstant": false,
1121 "isLValue": false,
1122 "isPure": false,
1123 "lValueRequested": false,
1124 "leftHandSide": {
1125 "argumentTypes": null,
1126 "id": 570,
1127 "name": "downEndpoint",
1128 "nodeType": "Identifier",
1129 "overloadedDeclarations": [],
1130 "referencedDeclaration": 519,
1131 "src": "1005:12:7",
1132 "typeDescriptions": {
1133 "typeIdentifier": "t_bytes32",
1134 "typeString": "bytes32"
1135 }
1136 },
1137 "nodeType": "Assignment",
1138 "operator": "=",
1139 "rightHandSide": {
1140 "argumentTypes": null,
1141 "id": 571,
1142 "name": "_downEndpoint",
1143 "nodeType": "Identifier",
1144 "overloadedDeclarations": [],
1145 "referencedDeclaration": 529,
1146 "src": "1020:13:7",
1147 "typeDescriptions": {
1148 "typeIdentifier": "t_bytes32",
1149 "typeString": "bytes32"
1150 }
1151 },
1152 "src": "1005:28:7",
1153 "typeDescriptions": {
1154 "typeIdentifier": "t_bytes32",
1155 "typeString": "bytes32"
1156 }
1157 },
1158 "id": 573,
1159 "nodeType": "ExpressionStatement",
1160 "src": "1005:28:7"
1161 },
1162 {
1163 "assignments": [
1164 575
1165 ],
1166 "declarations": [
1167 {
1168 "constant": false,
1169 "id": 575,
1170 "name": "bondageAddress",
1171 "nodeType": "VariableDeclaration",
1172 "scope": 609,
1173 "src": "1039:22:7",
1174 "stateVariable": false,
1175 "storageLocation": "default",
1176 "typeDescriptions": {
1177 "typeIdentifier": "t_address",
1178 "typeString": "address"
1179 },
1180 "typeName": {
1181 "id": 574,
1182 "name": "address",
1183 "nodeType": "ElementaryTypeName",
1184 "src": "1039:7:7",
1185 "typeDescriptions": {
1186 "typeIdentifier": "t_address",
1187 "typeString": "address"
1188 }
1189 },
1190 "value": null,
1191 "visibility": "internal"
1192 }
1193 ],
1194 "id": 580,
1195 "initialValue": {
1196 "argumentTypes": null,
1197 "arguments": [
1198 {
1199 "argumentTypes": null,
1200 "hexValue": "424f4e44414745",
1201 "id": 578,
1202 "isConstant": false,
1203 "isLValue": false,
1204 "isPure": true,
1205 "kind": "string",
1206 "lValueRequested": false,
1207 "nodeType": "Literal",
1208 "src": "1088:9:7",
1209 "subdenomination": null,
1210 "typeDescriptions": {
1211 "typeIdentifier": "t_stringliteral_8db6e752c473cf27fd950e9b9ac06384370d511fb552ce5f96812082c602436b",
1212 "typeString": "literal_string \"BONDAGE\""
1213 },
1214 "value": "BONDAGE"
1215 }
1216 ],
1217 "expression": {
1218 "argumentTypes": [
1219 {
1220 "typeIdentifier": "t_stringliteral_8db6e752c473cf27fd950e9b9ac06384370d511fb552ce5f96812082c602436b",
1221 "typeString": "literal_string \"BONDAGE\""
1222 }
1223 ],
1224 "expression": {
1225 "argumentTypes": null,
1226 "id": 576,
1227 "name": "coordinator",
1228 "nodeType": "Identifier",
1229 "overloadedDeclarations": [],
1230 "referencedDeclaration": 509,
1231 "src": "1064:11:7",
1232 "typeDescriptions": {
1233 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
1234 "typeString": "contract ZapCoordinatorInterface"
1235 }
1236 },
1237 "id": 577,
1238 "isConstant": false,
1239 "isLValue": false,
1240 "isPure": false,
1241 "lValueRequested": false,
1242 "memberName": "getContract",
1243 "nodeType": "MemberAccess",
1244 "referencedDeclaration": 489,
1245 "src": "1064:23:7",
1246 "typeDescriptions": {
1247 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
1248 "typeString": "function (string memory) view external returns (address)"
1249 }
1250 },
1251 "id": 579,
1252 "isConstant": false,
1253 "isLValue": false,
1254 "isPure": false,
1255 "kind": "functionCall",
1256 "lValueRequested": false,
1257 "names": [],
1258 "nodeType": "FunctionCall",
1259 "src": "1064:34:7",
1260 "typeDescriptions": {
1261 "typeIdentifier": "t_address",
1262 "typeString": "address"
1263 }
1264 },
1265 "nodeType": "VariableDeclarationStatement",
1266 "src": "1039:59:7"
1267 },
1268 {
1269 "assignments": [
1270 582
1271 ],
1272 "declarations": [
1273 {
1274 "constant": false,
1275 "id": 582,
1276 "name": "bondage",
1277 "nodeType": "VariableDeclaration",
1278 "scope": 609,
1279 "src": "1104:24:7",
1280 "stateVariable": false,
1281 "storageLocation": "default",
1282 "typeDescriptions": {
1283 "typeIdentifier": "t_contract$_BondageInterface_$7926",
1284 "typeString": "contract BondageInterface"
1285 },
1286 "typeName": {
1287 "contractScope": null,
1288 "id": 581,
1289 "name": "BondageInterface",
1290 "nodeType": "UserDefinedTypeName",
1291 "referencedDeclaration": 7926,
1292 "src": "1104:16:7",
1293 "typeDescriptions": {
1294 "typeIdentifier": "t_contract$_BondageInterface_$7926",
1295 "typeString": "contract BondageInterface"
1296 }
1297 },
1298 "value": null,
1299 "visibility": "internal"
1300 }
1301 ],
1302 "id": 586,
1303 "initialValue": {
1304 "argumentTypes": null,
1305 "arguments": [
1306 {
1307 "argumentTypes": null,
1308 "id": 584,
1309 "name": "bondageAddress",
1310 "nodeType": "Identifier",
1311 "overloadedDeclarations": [],
1312 "referencedDeclaration": 575,
1313 "src": "1148:14:7",
1314 "typeDescriptions": {
1315 "typeIdentifier": "t_address",
1316 "typeString": "address"
1317 }
1318 }
1319 ],
1320 "expression": {
1321 "argumentTypes": [
1322 {
1323 "typeIdentifier": "t_address",
1324 "typeString": "address"
1325 }
1326 ],
1327 "id": 583,
1328 "name": "BondageInterface",
1329 "nodeType": "Identifier",
1330 "overloadedDeclarations": [],
1331 "referencedDeclaration": 7926,
1332 "src": "1131:16:7",
1333 "typeDescriptions": {
1334 "typeIdentifier": "t_type$_t_contract$_BondageInterface_$7926_$",
1335 "typeString": "type(contract BondageInterface)"
1336 }
1337 },
1338 "id": 585,
1339 "isConstant": false,
1340 "isLValue": false,
1341 "isPure": false,
1342 "kind": "typeConversion",
1343 "lValueRequested": false,
1344 "names": [],
1345 "nodeType": "FunctionCall",
1346 "src": "1131:32:7",
1347 "typeDescriptions": {
1348 "typeIdentifier": "t_contract$_BondageInterface_$7926",
1349 "typeString": "contract BondageInterface"
1350 }
1351 },
1352 "nodeType": "VariableDeclarationStatement",
1353 "src": "1104:59:7"
1354 },
1355 {
1356 "assignments": [
1357 588
1358 ],
1359 "declarations": [
1360 {
1361 "constant": false,
1362 "id": 588,
1363 "name": "reserveToken",
1364 "nodeType": "VariableDeclaration",
1365 "scope": 609,
1366 "src": "1169:34:7",
1367 "stateVariable": false,
1368 "storageLocation": "default",
1369 "typeDescriptions": {
1370 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
1371 "typeString": "contract FactoryTokenInterface"
1372 },
1373 "typeName": {
1374 "contractScope": null,
1375 "id": 587,
1376 "name": "FactoryTokenInterface",
1377 "nodeType": "UserDefinedTypeName",
1378 "referencedDeclaration": 5198,
1379 "src": "1169:21:7",
1380 "typeDescriptions": {
1381 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
1382 "typeString": "contract FactoryTokenInterface"
1383 }
1384 },
1385 "value": null,
1386 "visibility": "internal"
1387 }
1388 ],
1389 "id": 595,
1390 "initialValue": {
1391 "argumentTypes": null,
1392 "arguments": [
1393 {
1394 "argumentTypes": null,
1395 "arguments": [
1396 {
1397 "argumentTypes": null,
1398 "hexValue": "5a41505f544f4b454e",
1399 "id": 592,
1400 "isConstant": false,
1401 "isLValue": false,
1402 "isPure": true,
1403 "kind": "string",
1404 "lValueRequested": false,
1405 "nodeType": "Literal",
1406 "src": "1252:11:7",
1407 "subdenomination": null,
1408 "typeDescriptions": {
1409 "typeIdentifier": "t_stringliteral_6975cffecb118e9915e5f4f2e0c6004a18c164faac759fa60fe06a56a4a22ba1",
1410 "typeString": "literal_string \"ZAP_TOKEN\""
1411 },
1412 "value": "ZAP_TOKEN"
1413 }
1414 ],
1415 "expression": {
1416 "argumentTypes": [
1417 {
1418 "typeIdentifier": "t_stringliteral_6975cffecb118e9915e5f4f2e0c6004a18c164faac759fa60fe06a56a4a22ba1",
1419 "typeString": "literal_string \"ZAP_TOKEN\""
1420 }
1421 ],
1422 "expression": {
1423 "argumentTypes": null,
1424 "id": 590,
1425 "name": "coordinator",
1426 "nodeType": "Identifier",
1427 "overloadedDeclarations": [],
1428 "referencedDeclaration": 509,
1429 "src": "1228:11:7",
1430 "typeDescriptions": {
1431 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
1432 "typeString": "contract ZapCoordinatorInterface"
1433 }
1434 },
1435 "id": 591,
1436 "isConstant": false,
1437 "isLValue": false,
1438 "isPure": false,
1439 "lValueRequested": false,
1440 "memberName": "getContract",
1441 "nodeType": "MemberAccess",
1442 "referencedDeclaration": 489,
1443 "src": "1228:23:7",
1444 "typeDescriptions": {
1445 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
1446 "typeString": "function (string memory) view external returns (address)"
1447 }
1448 },
1449 "id": 593,
1450 "isConstant": false,
1451 "isLValue": false,
1452 "isPure": false,
1453 "kind": "functionCall",
1454 "lValueRequested": false,
1455 "names": [],
1456 "nodeType": "FunctionCall",
1457 "src": "1228:36:7",
1458 "typeDescriptions": {
1459 "typeIdentifier": "t_address",
1460 "typeString": "address"
1461 }
1462 }
1463 ],
1464 "expression": {
1465 "argumentTypes": [
1466 {
1467 "typeIdentifier": "t_address",
1468 "typeString": "address"
1469 }
1470 ],
1471 "id": 589,
1472 "name": "FactoryTokenInterface",
1473 "nodeType": "Identifier",
1474 "overloadedDeclarations": [],
1475 "referencedDeclaration": 5198,
1476 "src": "1206:21:7",
1477 "typeDescriptions": {
1478 "typeIdentifier": "t_type$_t_contract$_FactoryTokenInterface_$5198_$",
1479 "typeString": "type(contract FactoryTokenInterface)"
1480 }
1481 },
1482 "id": 594,
1483 "isConstant": false,
1484 "isLValue": false,
1485 "isPure": false,
1486 "kind": "typeConversion",
1487 "lValueRequested": false,
1488 "names": [],
1489 "nodeType": "FunctionCall",
1490 "src": "1206:59:7",
1491 "typeDescriptions": {
1492 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
1493 "typeString": "contract FactoryTokenInterface"
1494 }
1495 },
1496 "nodeType": "VariableDeclarationStatement",
1497 "src": "1169:96:7"
1498 },
1499 {
1500 "expression": {
1501 "argumentTypes": null,
1502 "arguments": [
1503 {
1504 "argumentTypes": null,
1505 "arguments": [
1506 {
1507 "argumentTypes": null,
1508 "id": 600,
1509 "name": "bondageAddress",
1510 "nodeType": "Identifier",
1511 "overloadedDeclarations": [],
1512 "referencedDeclaration": 575,
1513 "src": "1332:14:7",
1514 "typeDescriptions": {
1515 "typeIdentifier": "t_address",
1516 "typeString": "address"
1517 }
1518 }
1519 ],
1520 "expression": {
1521 "argumentTypes": [
1522 {
1523 "typeIdentifier": "t_address",
1524 "typeString": "address"
1525 }
1526 ],
1527 "id": 599,
1528 "isConstant": false,
1529 "isLValue": false,
1530 "isPure": true,
1531 "lValueRequested": false,
1532 "nodeType": "ElementaryTypeNameExpression",
1533 "src": "1324:7:7",
1534 "typeDescriptions": {
1535 "typeIdentifier": "t_type$_t_address_$",
1536 "typeString": "type(address)"
1537 },
1538 "typeName": "address"
1539 },
1540 "id": 601,
1541 "isConstant": false,
1542 "isLValue": false,
1543 "isPure": false,
1544 "kind": "typeConversion",
1545 "lValueRequested": false,
1546 "names": [],
1547 "nodeType": "FunctionCall",
1548 "src": "1324:23:7",
1549 "typeDescriptions": {
1550 "typeIdentifier": "t_address",
1551 "typeString": "address"
1552 }
1553 },
1554 {
1555 "argumentTypes": null,
1556 "id": 605,
1557 "isConstant": false,
1558 "isLValue": false,
1559 "isPure": true,
1560 "lValueRequested": false,
1561 "nodeType": "UnaryOperation",
1562 "operator": "~",
1563 "prefix": true,
1564 "src": "1348:11:7",
1565 "subExpression": {
1566 "argumentTypes": null,
1567 "arguments": [
1568 {
1569 "argumentTypes": null,
1570 "hexValue": "30",
1571 "id": 603,
1572 "isConstant": false,
1573 "isLValue": false,
1574 "isPure": true,
1575 "kind": "number",
1576 "lValueRequested": false,
1577 "nodeType": "Literal",
1578 "src": "1357:1:7",
1579 "subdenomination": null,
1580 "typeDescriptions": {
1581 "typeIdentifier": "t_rational_0_by_1",
1582 "typeString": "int_const 0"
1583 },
1584 "value": "0"
1585 }
1586 ],
1587 "expression": {
1588 "argumentTypes": [
1589 {
1590 "typeIdentifier": "t_rational_0_by_1",
1591 "typeString": "int_const 0"
1592 }
1593 ],
1594 "id": 602,
1595 "isConstant": false,
1596 "isLValue": false,
1597 "isPure": true,
1598 "lValueRequested": false,
1599 "nodeType": "ElementaryTypeNameExpression",
1600 "src": "1349:7:7",
1601 "typeDescriptions": {
1602 "typeIdentifier": "t_type$_t_uint256_$",
1603 "typeString": "type(uint256)"
1604 },
1605 "typeName": "uint256"
1606 },
1607 "id": 604,
1608 "isConstant": false,
1609 "isLValue": false,
1610 "isPure": true,
1611 "kind": "typeConversion",
1612 "lValueRequested": false,
1613 "names": [],
1614 "nodeType": "FunctionCall",
1615 "src": "1349:10:7",
1616 "typeDescriptions": {
1617 "typeIdentifier": "t_uint256",
1618 "typeString": "uint256"
1619 }
1620 },
1621 "typeDescriptions": {
1622 "typeIdentifier": "t_uint256",
1623 "typeString": "uint256"
1624 }
1625 }
1626 ],
1627 "expression": {
1628 "argumentTypes": [
1629 {
1630 "typeIdentifier": "t_address",
1631 "typeString": "address"
1632 },
1633 {
1634 "typeIdentifier": "t_uint256",
1635 "typeString": "uint256"
1636 }
1637 ],
1638 "expression": {
1639 "argumentTypes": null,
1640 "id": 596,
1641 "name": "reserveToken",
1642 "nodeType": "Identifier",
1643 "overloadedDeclarations": [],
1644 "referencedDeclaration": 588,
1645 "src": "1303:12:7",
1646 "typeDescriptions": {
1647 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
1648 "typeString": "contract FactoryTokenInterface"
1649 }
1650 },
1651 "id": 598,
1652 "isConstant": false,
1653 "isLValue": false,
1654 "isPure": false,
1655 "lValueRequested": false,
1656 "memberName": "approve",
1657 "nodeType": "MemberAccess",
1658 "referencedDeclaration": 5172,
1659 "src": "1303:20:7",
1660 "typeDescriptions": {
1661 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
1662 "typeString": "function (address,uint256) external returns (bool)"
1663 }
1664 },
1665 "id": 606,
1666 "isConstant": false,
1667 "isLValue": false,
1668 "isPure": false,
1669 "kind": "functionCall",
1670 "lValueRequested": false,
1671 "names": [],
1672 "nodeType": "FunctionCall",
1673 "src": "1303:57:7",
1674 "typeDescriptions": {
1675 "typeIdentifier": "t_bool",
1676 "typeString": "bool"
1677 }
1678 },
1679 "id": 607,
1680 "nodeType": "ExpressionStatement",
1681 "src": "1303:57:7"
1682 }
1683 ]
1684 },
1685 "documentation": null,
1686 "id": 609,
1687 "implemented": true,
1688 "isConstructor": true,
1689 "isDeclaredConst": false,
1690 "modifiers": [],
1691 "name": "",
1692 "nodeType": "FunctionDefinition",
1693 "parameters": {
1694 "id": 530,
1695 "nodeType": "ParameterList",
1696 "parameters": [
1697 {
1698 "constant": false,
1699 "id": 521,
1700 "name": "_cord",
1701 "nodeType": "VariableDeclaration",
1702 "scope": 609,
1703 "src": "590:13:7",
1704 "stateVariable": false,
1705 "storageLocation": "default",
1706 "typeDescriptions": {
1707 "typeIdentifier": "t_address",
1708 "typeString": "address"
1709 },
1710 "typeName": {
1711 "id": 520,
1712 "name": "address",
1713 "nodeType": "ElementaryTypeName",
1714 "src": "590:7:7",
1715 "typeDescriptions": {
1716 "typeIdentifier": "t_address",
1717 "typeString": "address"
1718 }
1719 },
1720 "value": null,
1721 "visibility": "internal"
1722 },
1723 {
1724 "constant": false,
1725 "id": 523,
1726 "name": "_contest",
1727 "nodeType": "VariableDeclaration",
1728 "scope": 609,
1729 "src": "609:16:7",
1730 "stateVariable": false,
1731 "storageLocation": "default",
1732 "typeDescriptions": {
1733 "typeIdentifier": "t_address",
1734 "typeString": "address"
1735 },
1736 "typeName": {
1737 "id": 522,
1738 "name": "address",
1739 "nodeType": "ElementaryTypeName",
1740 "src": "609:7:7",
1741 "typeDescriptions": {
1742 "typeIdentifier": "t_address",
1743 "typeString": "address"
1744 }
1745 },
1746 "value": null,
1747 "visibility": "internal"
1748 },
1749 {
1750 "constant": false,
1751 "id": 525,
1752 "name": "_startPrice",
1753 "nodeType": "VariableDeclaration",
1754 "scope": 609,
1755 "src": "631:19:7",
1756 "stateVariable": false,
1757 "storageLocation": "default",
1758 "typeDescriptions": {
1759 "typeIdentifier": "t_uint256",
1760 "typeString": "uint256"
1761 },
1762 "typeName": {
1763 "id": 524,
1764 "name": "uint256",
1765 "nodeType": "ElementaryTypeName",
1766 "src": "631:7:7",
1767 "typeDescriptions": {
1768 "typeIdentifier": "t_uint256",
1769 "typeString": "uint256"
1770 }
1771 },
1772 "value": null,
1773 "visibility": "internal"
1774 },
1775 {
1776 "constant": false,
1777 "id": 527,
1778 "name": "_upEndpoint",
1779 "nodeType": "VariableDeclaration",
1780 "scope": 609,
1781 "src": "656:19:7",
1782 "stateVariable": false,
1783 "storageLocation": "default",
1784 "typeDescriptions": {
1785 "typeIdentifier": "t_bytes32",
1786 "typeString": "bytes32"
1787 },
1788 "typeName": {
1789 "id": 526,
1790 "name": "bytes32",
1791 "nodeType": "ElementaryTypeName",
1792 "src": "656:7:7",
1793 "typeDescriptions": {
1794 "typeIdentifier": "t_bytes32",
1795 "typeString": "bytes32"
1796 }
1797 },
1798 "value": null,
1799 "visibility": "internal"
1800 },
1801 {
1802 "constant": false,
1803 "id": 529,
1804 "name": "_downEndpoint",
1805 "nodeType": "VariableDeclaration",
1806 "scope": 609,
1807 "src": "681:21:7",
1808 "stateVariable": false,
1809 "storageLocation": "default",
1810 "typeDescriptions": {
1811 "typeIdentifier": "t_bytes32",
1812 "typeString": "bytes32"
1813 },
1814 "typeName": {
1815 "id": 528,
1816 "name": "bytes32",
1817 "nodeType": "ElementaryTypeName",
1818 "src": "681:7:7",
1819 "typeDescriptions": {
1820 "typeIdentifier": "t_bytes32",
1821 "typeString": "bytes32"
1822 }
1823 },
1824 "value": null,
1825 "visibility": "internal"
1826 }
1827 ],
1828 "src": "584:122:7"
1829 },
1830 "payable": false,
1831 "returnParameters": {
1832 "id": 531,
1833 "nodeType": "ParameterList",
1834 "parameters": [],
1835 "src": "706:0:7"
1836 },
1837 "scope": 805,
1838 "src": "573:793:7",
1839 "stateMutability": "nonpayable",
1840 "superFunction": null,
1841 "visibility": "public"
1842 },
1843 {
1844 "body": {
1845 "id": 652,
1846 "nodeType": "Block",
1847 "src": "1466:334:7",
1848 "statements": [
1849 {
1850 "assignments": [
1851 621
1852 ],
1853 "declarations": [
1854 {
1855 "constant": false,
1856 "id": 621,
1857 "name": "bondageAddress",
1858 "nodeType": "VariableDeclaration",
1859 "scope": 653,
1860 "src": "1472:22:7",
1861 "stateVariable": false,
1862 "storageLocation": "default",
1863 "typeDescriptions": {
1864 "typeIdentifier": "t_address",
1865 "typeString": "address"
1866 },
1867 "typeName": {
1868 "id": 620,
1869 "name": "address",
1870 "nodeType": "ElementaryTypeName",
1871 "src": "1472:7:7",
1872 "typeDescriptions": {
1873 "typeIdentifier": "t_address",
1874 "typeString": "address"
1875 }
1876 },
1877 "value": null,
1878 "visibility": "internal"
1879 }
1880 ],
1881 "id": 626,
1882 "initialValue": {
1883 "argumentTypes": null,
1884 "arguments": [
1885 {
1886 "argumentTypes": null,
1887 "hexValue": "424f4e44414745",
1888 "id": 624,
1889 "isConstant": false,
1890 "isLValue": false,
1891 "isPure": true,
1892 "kind": "string",
1893 "lValueRequested": false,
1894 "nodeType": "Literal",
1895 "src": "1521:9:7",
1896 "subdenomination": null,
1897 "typeDescriptions": {
1898 "typeIdentifier": "t_stringliteral_8db6e752c473cf27fd950e9b9ac06384370d511fb552ce5f96812082c602436b",
1899 "typeString": "literal_string \"BONDAGE\""
1900 },
1901 "value": "BONDAGE"
1902 }
1903 ],
1904 "expression": {
1905 "argumentTypes": [
1906 {
1907 "typeIdentifier": "t_stringliteral_8db6e752c473cf27fd950e9b9ac06384370d511fb552ce5f96812082c602436b",
1908 "typeString": "literal_string \"BONDAGE\""
1909 }
1910 ],
1911 "expression": {
1912 "argumentTypes": null,
1913 "id": 622,
1914 "name": "coordinator",
1915 "nodeType": "Identifier",
1916 "overloadedDeclarations": [],
1917 "referencedDeclaration": 509,
1918 "src": "1497:11:7",
1919 "typeDescriptions": {
1920 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
1921 "typeString": "contract ZapCoordinatorInterface"
1922 }
1923 },
1924 "id": 623,
1925 "isConstant": false,
1926 "isLValue": false,
1927 "isPure": false,
1928 "lValueRequested": false,
1929 "memberName": "getContract",
1930 "nodeType": "MemberAccess",
1931 "referencedDeclaration": 489,
1932 "src": "1497:23:7",
1933 "typeDescriptions": {
1934 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
1935 "typeString": "function (string memory) view external returns (address)"
1936 }
1937 },
1938 "id": 625,
1939 "isConstant": false,
1940 "isLValue": false,
1941 "isPure": false,
1942 "kind": "functionCall",
1943 "lValueRequested": false,
1944 "names": [],
1945 "nodeType": "FunctionCall",
1946 "src": "1497:34:7",
1947 "typeDescriptions": {
1948 "typeIdentifier": "t_address",
1949 "typeString": "address"
1950 }
1951 },
1952 "nodeType": "VariableDeclarationStatement",
1953 "src": "1472:59:7"
1954 },
1955 {
1956 "assignments": [
1957 628
1958 ],
1959 "declarations": [
1960 {
1961 "constant": false,
1962 "id": 628,
1963 "name": "bondage",
1964 "nodeType": "VariableDeclaration",
1965 "scope": 653,
1966 "src": "1537:24:7",
1967 "stateVariable": false,
1968 "storageLocation": "default",
1969 "typeDescriptions": {
1970 "typeIdentifier": "t_contract$_BondageInterface_$7926",
1971 "typeString": "contract BondageInterface"
1972 },
1973 "typeName": {
1974 "contractScope": null,
1975 "id": 627,
1976 "name": "BondageInterface",
1977 "nodeType": "UserDefinedTypeName",
1978 "referencedDeclaration": 7926,
1979 "src": "1537:16:7",
1980 "typeDescriptions": {
1981 "typeIdentifier": "t_contract$_BondageInterface_$7926",
1982 "typeString": "contract BondageInterface"
1983 }
1984 },
1985 "value": null,
1986 "visibility": "internal"
1987 }
1988 ],
1989 "id": 632,
1990 "initialValue": {
1991 "argumentTypes": null,
1992 "arguments": [
1993 {
1994 "argumentTypes": null,
1995 "id": 630,
1996 "name": "bondageAddress",
1997 "nodeType": "Identifier",
1998 "overloadedDeclarations": [],
1999 "referencedDeclaration": 621,
2000 "src": "1581:14:7",
2001 "typeDescriptions": {
2002 "typeIdentifier": "t_address",
2003 "typeString": "address"
2004 }
2005 }
2006 ],
2007 "expression": {
2008 "argumentTypes": [
2009 {
2010 "typeIdentifier": "t_address",
2011 "typeString": "address"
2012 }
2013 ],
2014 "id": 629,
2015 "name": "BondageInterface",
2016 "nodeType": "Identifier",
2017 "overloadedDeclarations": [],
2018 "referencedDeclaration": 7926,
2019 "src": "1564:16:7",
2020 "typeDescriptions": {
2021 "typeIdentifier": "t_type$_t_contract$_BondageInterface_$7926_$",
2022 "typeString": "type(contract BondageInterface)"
2023 }
2024 },
2025 "id": 631,
2026 "isConstant": false,
2027 "isLValue": false,
2028 "isPure": false,
2029 "kind": "typeConversion",
2030 "lValueRequested": false,
2031 "names": [],
2032 "nodeType": "FunctionCall",
2033 "src": "1564:32:7",
2034 "typeDescriptions": {
2035 "typeIdentifier": "t_contract$_BondageInterface_$7926",
2036 "typeString": "contract BondageInterface"
2037 }
2038 },
2039 "nodeType": "VariableDeclarationStatement",
2040 "src": "1537:59:7"
2041 },
2042 {
2043 "assignments": [
2044 634
2045 ],
2046 "declarations": [
2047 {
2048 "constant": false,
2049 "id": 634,
2050 "name": "reserveToken",
2051 "nodeType": "VariableDeclaration",
2052 "scope": 653,
2053 "src": "1602:34:7",
2054 "stateVariable": false,
2055 "storageLocation": "default",
2056 "typeDescriptions": {
2057 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
2058 "typeString": "contract FactoryTokenInterface"
2059 },
2060 "typeName": {
2061 "contractScope": null,
2062 "id": 633,
2063 "name": "FactoryTokenInterface",
2064 "nodeType": "UserDefinedTypeName",
2065 "referencedDeclaration": 5198,
2066 "src": "1602:21:7",
2067 "typeDescriptions": {
2068 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
2069 "typeString": "contract FactoryTokenInterface"
2070 }
2071 },
2072 "value": null,
2073 "visibility": "internal"
2074 }
2075 ],
2076 "id": 641,
2077 "initialValue": {
2078 "argumentTypes": null,
2079 "arguments": [
2080 {
2081 "argumentTypes": null,
2082 "arguments": [
2083 {
2084 "argumentTypes": null,
2085 "hexValue": "5a41505f544f4b454e",
2086 "id": 638,
2087 "isConstant": false,
2088 "isLValue": false,
2089 "isPure": true,
2090 "kind": "string",
2091 "lValueRequested": false,
2092 "nodeType": "Literal",
2093 "src": "1685:11:7",
2094 "subdenomination": null,
2095 "typeDescriptions": {
2096 "typeIdentifier": "t_stringliteral_6975cffecb118e9915e5f4f2e0c6004a18c164faac759fa60fe06a56a4a22ba1",
2097 "typeString": "literal_string \"ZAP_TOKEN\""
2098 },
2099 "value": "ZAP_TOKEN"
2100 }
2101 ],
2102 "expression": {
2103 "argumentTypes": [
2104 {
2105 "typeIdentifier": "t_stringliteral_6975cffecb118e9915e5f4f2e0c6004a18c164faac759fa60fe06a56a4a22ba1",
2106 "typeString": "literal_string \"ZAP_TOKEN\""
2107 }
2108 ],
2109 "expression": {
2110 "argumentTypes": null,
2111 "id": 636,
2112 "name": "coordinator",
2113 "nodeType": "Identifier",
2114 "overloadedDeclarations": [],
2115 "referencedDeclaration": 509,
2116 "src": "1661:11:7",
2117 "typeDescriptions": {
2118 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
2119 "typeString": "contract ZapCoordinatorInterface"
2120 }
2121 },
2122 "id": 637,
2123 "isConstant": false,
2124 "isLValue": false,
2125 "isPure": false,
2126 "lValueRequested": false,
2127 "memberName": "getContract",
2128 "nodeType": "MemberAccess",
2129 "referencedDeclaration": 489,
2130 "src": "1661:23:7",
2131 "typeDescriptions": {
2132 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
2133 "typeString": "function (string memory) view external returns (address)"
2134 }
2135 },
2136 "id": 639,
2137 "isConstant": false,
2138 "isLValue": false,
2139 "isPure": false,
2140 "kind": "functionCall",
2141 "lValueRequested": false,
2142 "names": [],
2143 "nodeType": "FunctionCall",
2144 "src": "1661:36:7",
2145 "typeDescriptions": {
2146 "typeIdentifier": "t_address",
2147 "typeString": "address"
2148 }
2149 }
2150 ],
2151 "expression": {
2152 "argumentTypes": [
2153 {
2154 "typeIdentifier": "t_address",
2155 "typeString": "address"
2156 }
2157 ],
2158 "id": 635,
2159 "name": "FactoryTokenInterface",
2160 "nodeType": "Identifier",
2161 "overloadedDeclarations": [],
2162 "referencedDeclaration": 5198,
2163 "src": "1639:21:7",
2164 "typeDescriptions": {
2165 "typeIdentifier": "t_type$_t_contract$_FactoryTokenInterface_$5198_$",
2166 "typeString": "type(contract FactoryTokenInterface)"
2167 }
2168 },
2169 "id": 640,
2170 "isConstant": false,
2171 "isLValue": false,
2172 "isPure": false,
2173 "kind": "typeConversion",
2174 "lValueRequested": false,
2175 "names": [],
2176 "nodeType": "FunctionCall",
2177 "src": "1639:59:7",
2178 "typeDescriptions": {
2179 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
2180 "typeString": "contract FactoryTokenInterface"
2181 }
2182 },
2183 "nodeType": "VariableDeclarationStatement",
2184 "src": "1602:96:7"
2185 },
2186 {
2187 "expression": {
2188 "argumentTypes": null,
2189 "arguments": [
2190 {
2191 "argumentTypes": null,
2192 "id": 645,
2193 "name": "_coincap",
2194 "nodeType": "Identifier",
2195 "overloadedDeclarations": [],
2196 "referencedDeclaration": 611,
2197 "src": "1749:8:7",
2198 "typeDescriptions": {
2199 "typeIdentifier": "t_address",
2200 "typeString": "address"
2201 }
2202 },
2203 {
2204 "argumentTypes": null,
2205 "id": 646,
2206 "name": "_endpoint",
2207 "nodeType": "Identifier",
2208 "overloadedDeclarations": [],
2209 "referencedDeclaration": 613,
2210 "src": "1758:9:7",
2211 "typeDescriptions": {
2212 "typeIdentifier": "t_bytes32",
2213 "typeString": "bytes32"
2214 }
2215 },
2216 {
2217 "argumentTypes": null,
2218 "id": 647,
2219 "name": "_numDots",
2220 "nodeType": "Identifier",
2221 "overloadedDeclarations": [],
2222 "referencedDeclaration": 615,
2223 "src": "1768:8:7",
2224 "typeDescriptions": {
2225 "typeIdentifier": "t_uint256",
2226 "typeString": "uint256"
2227 }
2228 }
2229 ],
2230 "expression": {
2231 "argumentTypes": [
2232 {
2233 "typeIdentifier": "t_address",
2234 "typeString": "address"
2235 },
2236 {
2237 "typeIdentifier": "t_bytes32",
2238 "typeString": "bytes32"
2239 },
2240 {
2241 "typeIdentifier": "t_uint256",
2242 "typeString": "uint256"
2243 }
2244 ],
2245 "expression": {
2246 "argumentTypes": null,
2247 "id": 642,
2248 "name": "bondage",
2249 "nodeType": "Identifier",
2250 "overloadedDeclarations": [],
2251 "referencedDeclaration": 628,
2252 "src": "1736:7:7",
2253 "typeDescriptions": {
2254 "typeIdentifier": "t_contract$_BondageInterface_$7926",
2255 "typeString": "contract BondageInterface"
2256 }
2257 },
2258 "id": 644,
2259 "isConstant": false,
2260 "isLValue": false,
2261 "isPure": false,
2262 "lValueRequested": false,
2263 "memberName": "bond",
2264 "nodeType": "MemberAccess",
2265 "referencedDeclaration": 7802,
2266 "src": "1736:12:7",
2267 "typeDescriptions": {
2268 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$_t_uint256_$",
2269 "typeString": "function (address,bytes32,uint256) external returns (uint256)"
2270 }
2271 },
2272 "id": 648,
2273 "isConstant": false,
2274 "isLValue": false,
2275 "isPure": false,
2276 "kind": "functionCall",
2277 "lValueRequested": false,
2278 "names": [],
2279 "nodeType": "FunctionCall",
2280 "src": "1736:41:7",
2281 "typeDescriptions": {
2282 "typeIdentifier": "t_uint256",
2283 "typeString": "uint256"
2284 }
2285 },
2286 "id": 649,
2287 "nodeType": "ExpressionStatement",
2288 "src": "1736:41:7"
2289 },
2290 {
2291 "expression": {
2292 "argumentTypes": null,
2293 "hexValue": "74727565",
2294 "id": 650,
2295 "isConstant": false,
2296 "isLValue": false,
2297 "isPure": true,
2298 "kind": "bool",
2299 "lValueRequested": false,
2300 "nodeType": "Literal",
2301 "src": "1790:4:7",
2302 "subdenomination": null,
2303 "typeDescriptions": {
2304 "typeIdentifier": "t_bool",
2305 "typeString": "bool"
2306 },
2307 "value": "true"
2308 },
2309 "functionReturnParameters": 619,
2310 "id": 651,
2311 "nodeType": "Return",
2312 "src": "1783:11:7"
2313 }
2314 ]
2315 },
2316 "documentation": null,
2317 "id": 653,
2318 "implemented": true,
2319 "isConstructor": false,
2320 "isDeclaredConst": false,
2321 "modifiers": [],
2322 "name": "bondToCoincap",
2323 "nodeType": "FunctionDefinition",
2324 "parameters": {
2325 "id": 616,
2326 "nodeType": "ParameterList",
2327 "parameters": [
2328 {
2329 "constant": false,
2330 "id": 611,
2331 "name": "_coincap",
2332 "nodeType": "VariableDeclaration",
2333 "scope": 653,
2334 "src": "1393:16:7",
2335 "stateVariable": false,
2336 "storageLocation": "default",
2337 "typeDescriptions": {
2338 "typeIdentifier": "t_address",
2339 "typeString": "address"
2340 },
2341 "typeName": {
2342 "id": 610,
2343 "name": "address",
2344 "nodeType": "ElementaryTypeName",
2345 "src": "1393:7:7",
2346 "typeDescriptions": {
2347 "typeIdentifier": "t_address",
2348 "typeString": "address"
2349 }
2350 },
2351 "value": null,
2352 "visibility": "internal"
2353 },
2354 {
2355 "constant": false,
2356 "id": 613,
2357 "name": "_endpoint",
2358 "nodeType": "VariableDeclaration",
2359 "scope": 653,
2360 "src": "1410:17:7",
2361 "stateVariable": false,
2362 "storageLocation": "default",
2363 "typeDescriptions": {
2364 "typeIdentifier": "t_bytes32",
2365 "typeString": "bytes32"
2366 },
2367 "typeName": {
2368 "id": 612,
2369 "name": "bytes32",
2370 "nodeType": "ElementaryTypeName",
2371 "src": "1410:7:7",
2372 "typeDescriptions": {
2373 "typeIdentifier": "t_bytes32",
2374 "typeString": "bytes32"
2375 }
2376 },
2377 "value": null,
2378 "visibility": "internal"
2379 },
2380 {
2381 "constant": false,
2382 "id": 615,
2383 "name": "_numDots",
2384 "nodeType": "VariableDeclaration",
2385 "scope": 653,
2386 "src": "1428:16:7",
2387 "stateVariable": false,
2388 "storageLocation": "default",
2389 "typeDescriptions": {
2390 "typeIdentifier": "t_uint256",
2391 "typeString": "uint256"
2392 },
2393 "typeName": {
2394 "id": 614,
2395 "name": "uint256",
2396 "nodeType": "ElementaryTypeName",
2397 "src": "1428:7:7",
2398 "typeDescriptions": {
2399 "typeIdentifier": "t_uint256",
2400 "typeString": "uint256"
2401 }
2402 },
2403 "value": null,
2404 "visibility": "internal"
2405 }
2406 ],
2407 "src": "1392:53:7"
2408 },
2409 "payable": false,
2410 "returnParameters": {
2411 "id": 619,
2412 "nodeType": "ParameterList",
2413 "parameters": [
2414 {
2415 "constant": false,
2416 "id": 618,
2417 "name": "",
2418 "nodeType": "VariableDeclaration",
2419 "scope": 653,
2420 "src": "1461:4:7",
2421 "stateVariable": false,
2422 "storageLocation": "default",
2423 "typeDescriptions": {
2424 "typeIdentifier": "t_bool",
2425 "typeString": "bool"
2426 },
2427 "typeName": {
2428 "id": 617,
2429 "name": "bool",
2430 "nodeType": "ElementaryTypeName",
2431 "src": "1461:4:7",
2432 "typeDescriptions": {
2433 "typeIdentifier": "t_bool",
2434 "typeString": "bool"
2435 }
2436 },
2437 "value": null,
2438 "visibility": "internal"
2439 }
2440 ],
2441 "src": "1460:6:7"
2442 },
2443 "scope": 805,
2444 "src": "1370:430:7",
2445 "stateMutability": "nonpayable",
2446 "superFunction": null,
2447 "visibility": "public"
2448 },
2449 {
2450 "body": {
2451 "id": 701,
2452 "nodeType": "Block",
2453 "src": "1885:330:7",
2454 "statements": [
2455 {
2456 "expression": {
2457 "argumentTypes": null,
2458 "arguments": [
2459 {
2460 "argumentTypes": null,
2461 "commonType": {
2462 "typeIdentifier": "t_address",
2463 "typeString": "address"
2464 },
2465 "id": 666,
2466 "isConstant": false,
2467 "isLValue": false,
2468 "isPure": false,
2469 "lValueRequested": false,
2470 "leftExpression": {
2471 "argumentTypes": null,
2472 "expression": {
2473 "argumentTypes": null,
2474 "id": 663,
2475 "name": "msg",
2476 "nodeType": "Identifier",
2477 "overloadedDeclarations": [],
2478 "referencedDeclaration": 12092,
2479 "src": "1899:3:7",
2480 "typeDescriptions": {
2481 "typeIdentifier": "t_magic_message",
2482 "typeString": "msg"
2483 }
2484 },
2485 "id": 664,
2486 "isConstant": false,
2487 "isLValue": false,
2488 "isPure": false,
2489 "lValueRequested": false,
2490 "memberName": "sender",
2491 "nodeType": "MemberAccess",
2492 "referencedDeclaration": null,
2493 "src": "1899:10:7",
2494 "typeDescriptions": {
2495 "typeIdentifier": "t_address",
2496 "typeString": "address"
2497 }
2498 },
2499 "nodeType": "BinaryOperation",
2500 "operator": "==",
2501 "rightExpression": {
2502 "argumentTypes": null,
2503 "id": 665,
2504 "name": "oracle",
2505 "nodeType": "Identifier",
2506 "overloadedDeclarations": [],
2507 "referencedDeclaration": 511,
2508 "src": "1913:6:7",
2509 "typeDescriptions": {
2510 "typeIdentifier": "t_address",
2511 "typeString": "address"
2512 }
2513 },
2514 "src": "1899:20:7",
2515 "typeDescriptions": {
2516 "typeIdentifier": "t_bool",
2517 "typeString": "bool"
2518 }
2519 },
2520 {
2521 "argumentTypes": null,
2522 "hexValue": "4f6e6c79204f7261636c65206f776e65722063616e2063616c6c20717565727920746f20736574746c65",
2523 "id": 667,
2524 "isConstant": false,
2525 "isLValue": false,
2526 "isPure": true,
2527 "kind": "string",
2528 "lValueRequested": false,
2529 "nodeType": "Literal",
2530 "src": "1921:44:7",
2531 "subdenomination": null,
2532 "typeDescriptions": {
2533 "typeIdentifier": "t_stringliteral_9208b4cf4cf5a157376d77cee7d8e892bb04300e59e0676984b193dc721b427d",
2534 "typeString": "literal_string \"Only Oracle owner can call query to settle\""
2535 },
2536 "value": "Only Oracle owner can call query to settle"
2537 }
2538 ],
2539 "expression": {
2540 "argumentTypes": [
2541 {
2542 "typeIdentifier": "t_bool",
2543 "typeString": "bool"
2544 },
2545 {
2546 "typeIdentifier": "t_stringliteral_9208b4cf4cf5a157376d77cee7d8e892bb04300e59e0676984b193dc721b427d",
2547 "typeString": "literal_string \"Only Oracle owner can call query to settle\""
2548 }
2549 ],
2550 "id": 662,
2551 "name": "require",
2552 "nodeType": "Identifier",
2553 "overloadedDeclarations": [
2554 12095,
2555 12096
2556 ],
2557 "referencedDeclaration": 12096,
2558 "src": "1891:7:7",
2559 "typeDescriptions": {
2560 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
2561 "typeString": "function (bool,string memory) pure"
2562 }
2563 },
2564 "id": 668,
2565 "isConstant": false,
2566 "isLValue": false,
2567 "isPure": false,
2568 "kind": "functionCall",
2569 "lValueRequested": false,
2570 "names": [],
2571 "nodeType": "FunctionCall",
2572 "src": "1891:75:7",
2573 "typeDescriptions": {
2574 "typeIdentifier": "t_tuple$__$",
2575 "typeString": "tuple()"
2576 }
2577 },
2578 "id": 669,
2579 "nodeType": "ExpressionStatement",
2580 "src": "1891:75:7"
2581 },
2582 {
2583 "assignments": [
2584 671
2585 ],
2586 "declarations": [
2587 {
2588 "constant": false,
2589 "id": 671,
2590 "name": "dispatchAddress",
2591 "nodeType": "VariableDeclaration",
2592 "scope": 702,
2593 "src": "1972:23:7",
2594 "stateVariable": false,
2595 "storageLocation": "default",
2596 "typeDescriptions": {
2597 "typeIdentifier": "t_address",
2598 "typeString": "address"
2599 },
2600 "typeName": {
2601 "id": 670,
2602 "name": "address",
2603 "nodeType": "ElementaryTypeName",
2604 "src": "1972:7:7",
2605 "typeDescriptions": {
2606 "typeIdentifier": "t_address",
2607 "typeString": "address"
2608 }
2609 },
2610 "value": null,
2611 "visibility": "internal"
2612 }
2613 ],
2614 "id": 676,
2615 "initialValue": {
2616 "argumentTypes": null,
2617 "arguments": [
2618 {
2619 "argumentTypes": null,
2620 "hexValue": "4449535041544348",
2621 "id": 674,
2622 "isConstant": false,
2623 "isLValue": false,
2624 "isPure": true,
2625 "kind": "string",
2626 "lValueRequested": false,
2627 "nodeType": "Literal",
2628 "src": "2022:10:7",
2629 "subdenomination": null,
2630 "typeDescriptions": {
2631 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
2632 "typeString": "literal_string \"DISPATCH\""
2633 },
2634 "value": "DISPATCH"
2635 }
2636 ],
2637 "expression": {
2638 "argumentTypes": [
2639 {
2640 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
2641 "typeString": "literal_string \"DISPATCH\""
2642 }
2643 ],
2644 "expression": {
2645 "argumentTypes": null,
2646 "id": 672,
2647 "name": "coordinator",
2648 "nodeType": "Identifier",
2649 "overloadedDeclarations": [],
2650 "referencedDeclaration": 509,
2651 "src": "1998:11:7",
2652 "typeDescriptions": {
2653 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
2654 "typeString": "contract ZapCoordinatorInterface"
2655 }
2656 },
2657 "id": 673,
2658 "isConstant": false,
2659 "isLValue": false,
2660 "isPure": false,
2661 "lValueRequested": false,
2662 "memberName": "getContract",
2663 "nodeType": "MemberAccess",
2664 "referencedDeclaration": 489,
2665 "src": "1998:23:7",
2666 "typeDescriptions": {
2667 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
2668 "typeString": "function (string memory) view external returns (address)"
2669 }
2670 },
2671 "id": 675,
2672 "isConstant": false,
2673 "isLValue": false,
2674 "isPure": false,
2675 "kind": "functionCall",
2676 "lValueRequested": false,
2677 "names": [],
2678 "nodeType": "FunctionCall",
2679 "src": "1998:35:7",
2680 "typeDescriptions": {
2681 "typeIdentifier": "t_address",
2682 "typeString": "address"
2683 }
2684 },
2685 "nodeType": "VariableDeclarationStatement",
2686 "src": "1972:61:7"
2687 },
2688 {
2689 "assignments": [
2690 678
2691 ],
2692 "declarations": [
2693 {
2694 "constant": false,
2695 "id": 678,
2696 "name": "dispatch",
2697 "nodeType": "VariableDeclaration",
2698 "scope": 702,
2699 "src": "2039:26:7",
2700 "stateVariable": false,
2701 "storageLocation": "default",
2702 "typeDescriptions": {
2703 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
2704 "typeString": "contract DispatchInterface"
2705 },
2706 "typeName": {
2707 "contractScope": null,
2708 "id": 677,
2709 "name": "DispatchInterface",
2710 "nodeType": "UserDefinedTypeName",
2711 "referencedDeclaration": 10147,
2712 "src": "2039:17:7",
2713 "typeDescriptions": {
2714 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
2715 "typeString": "contract DispatchInterface"
2716 }
2717 },
2718 "value": null,
2719 "visibility": "internal"
2720 }
2721 ],
2722 "id": 682,
2723 "initialValue": {
2724 "argumentTypes": null,
2725 "arguments": [
2726 {
2727 "argumentTypes": null,
2728 "id": 680,
2729 "name": "dispatchAddress",
2730 "nodeType": "Identifier",
2731 "overloadedDeclarations": [],
2732 "referencedDeclaration": 671,
2733 "src": "2086:15:7",
2734 "typeDescriptions": {
2735 "typeIdentifier": "t_address",
2736 "typeString": "address"
2737 }
2738 }
2739 ],
2740 "expression": {
2741 "argumentTypes": [
2742 {
2743 "typeIdentifier": "t_address",
2744 "typeString": "address"
2745 }
2746 ],
2747 "id": 679,
2748 "name": "DispatchInterface",
2749 "nodeType": "Identifier",
2750 "overloadedDeclarations": [],
2751 "referencedDeclaration": 10147,
2752 "src": "2068:17:7",
2753 "typeDescriptions": {
2754 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
2755 "typeString": "type(contract DispatchInterface)"
2756 }
2757 },
2758 "id": 681,
2759 "isConstant": false,
2760 "isLValue": false,
2761 "isPure": false,
2762 "kind": "typeConversion",
2763 "lValueRequested": false,
2764 "names": [],
2765 "nodeType": "FunctionCall",
2766 "src": "2068:34:7",
2767 "typeDescriptions": {
2768 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
2769 "typeString": "contract DispatchInterface"
2770 }
2771 },
2772 "nodeType": "VariableDeclarationStatement",
2773 "src": "2039:63:7"
2774 },
2775 {
2776 "assignments": [
2777 686
2778 ],
2779 "declarations": [
2780 {
2781 "constant": false,
2782 "id": 686,
2783 "name": "params",
2784 "nodeType": "VariableDeclaration",
2785 "scope": 702,
2786 "src": "2108:23:7",
2787 "stateVariable": false,
2788 "storageLocation": "memory",
2789 "typeDescriptions": {
2790 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
2791 "typeString": "bytes32[]"
2792 },
2793 "typeName": {
2794 "baseType": {
2795 "id": 684,
2796 "name": "bytes32",
2797 "nodeType": "ElementaryTypeName",
2798 "src": "2108:7:7",
2799 "typeDescriptions": {
2800 "typeIdentifier": "t_bytes32",
2801 "typeString": "bytes32"
2802 }
2803 },
2804 "id": 685,
2805 "length": null,
2806 "nodeType": "ArrayTypeName",
2807 "src": "2108:9:7",
2808 "typeDescriptions": {
2809 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2810 "typeString": "bytes32[]"
2811 }
2812 },
2813 "value": null,
2814 "visibility": "internal"
2815 }
2816 ],
2817 "id": 692,
2818 "initialValue": {
2819 "argumentTypes": null,
2820 "arguments": [
2821 {
2822 "argumentTypes": null,
2823 "hexValue": "30",
2824 "id": 690,
2825 "isConstant": false,
2826 "isLValue": false,
2827 "isPure": true,
2828 "kind": "number",
2829 "lValueRequested": false,
2830 "nodeType": "Literal",
2831 "src": "2148:1:7",
2832 "subdenomination": null,
2833 "typeDescriptions": {
2834 "typeIdentifier": "t_rational_0_by_1",
2835 "typeString": "int_const 0"
2836 },
2837 "value": "0"
2838 }
2839 ],
2840 "expression": {
2841 "argumentTypes": [
2842 {
2843 "typeIdentifier": "t_rational_0_by_1",
2844 "typeString": "int_const 0"
2845 }
2846 ],
2847 "id": 689,
2848 "isConstant": false,
2849 "isLValue": false,
2850 "isPure": true,
2851 "lValueRequested": false,
2852 "nodeType": "NewExpression",
2853 "src": "2134:13:7",
2854 "typeDescriptions": {
2855 "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
2856 "typeString": "function (uint256) pure returns (bytes32[] memory)"
2857 },
2858 "typeName": {
2859 "baseType": {
2860 "id": 687,
2861 "name": "bytes32",
2862 "nodeType": "ElementaryTypeName",
2863 "src": "2138:7:7",
2864 "typeDescriptions": {
2865 "typeIdentifier": "t_bytes32",
2866 "typeString": "bytes32"
2867 }
2868 },
2869 "id": 688,
2870 "length": null,
2871 "nodeType": "ArrayTypeName",
2872 "src": "2138:9:7",
2873 "typeDescriptions": {
2874 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2875 "typeString": "bytes32[]"
2876 }
2877 }
2878 },
2879 "id": 691,
2880 "isConstant": false,
2881 "isLValue": false,
2882 "isPure": true,
2883 "kind": "functionCall",
2884 "lValueRequested": false,
2885 "names": [],
2886 "nodeType": "FunctionCall",
2887 "src": "2134:16:7",
2888 "typeDescriptions": {
2889 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
2890 "typeString": "bytes32[] memory"
2891 }
2892 },
2893 "nodeType": "VariableDeclarationStatement",
2894 "src": "2108:42:7"
2895 },
2896 {
2897 "expression": {
2898 "argumentTypes": null,
2899 "arguments": [
2900 {
2901 "argumentTypes": null,
2902 "id": 695,
2903 "name": "_coincap",
2904 "nodeType": "Identifier",
2905 "overloadedDeclarations": [],
2906 "referencedDeclaration": 655,
2907 "src": "2178:8:7",
2908 "typeDescriptions": {
2909 "typeIdentifier": "t_address",
2910 "typeString": "address"
2911 }
2912 },
2913 {
2914 "argumentTypes": null,
2915 "hexValue": "425443",
2916 "id": 696,
2917 "isConstant": false,
2918 "isLValue": false,
2919 "isPure": true,
2920 "kind": "string",
2921 "lValueRequested": false,
2922 "nodeType": "Literal",
2923 "src": "2187:5:7",
2924 "subdenomination": null,
2925 "typeDescriptions": {
2926 "typeIdentifier": "t_stringliteral_e98e2830be1a7e4156d656a7505e65d08c67660dc618072422e9c78053c261e9",
2927 "typeString": "literal_string \"BTC\""
2928 },
2929 "value": "BTC"
2930 },
2931 {
2932 "argumentTypes": null,
2933 "id": 697,
2934 "name": "_endpoint",
2935 "nodeType": "Identifier",
2936 "overloadedDeclarations": [],
2937 "referencedDeclaration": 657,
2938 "src": "2193:9:7",
2939 "typeDescriptions": {
2940 "typeIdentifier": "t_bytes32",
2941 "typeString": "bytes32"
2942 }
2943 },
2944 {
2945 "argumentTypes": null,
2946 "id": 698,
2947 "name": "params",
2948 "nodeType": "Identifier",
2949 "overloadedDeclarations": [],
2950 "referencedDeclaration": 686,
2951 "src": "2203:6:7",
2952 "typeDescriptions": {
2953 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
2954 "typeString": "bytes32[] memory"
2955 }
2956 }
2957 ],
2958 "expression": {
2959 "argumentTypes": [
2960 {
2961 "typeIdentifier": "t_address",
2962 "typeString": "address"
2963 },
2964 {
2965 "typeIdentifier": "t_stringliteral_e98e2830be1a7e4156d656a7505e65d08c67660dc618072422e9c78053c261e9",
2966 "typeString": "literal_string \"BTC\""
2967 },
2968 {
2969 "typeIdentifier": "t_bytes32",
2970 "typeString": "bytes32"
2971 },
2972 {
2973 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
2974 "typeString": "bytes32[] memory"
2975 }
2976 ],
2977 "expression": {
2978 "argumentTypes": null,
2979 "id": 693,
2980 "name": "dispatch",
2981 "nodeType": "Identifier",
2982 "overloadedDeclarations": [],
2983 "referencedDeclaration": 678,
2984 "src": "2163:8:7",
2985 "typeDescriptions": {
2986 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
2987 "typeString": "contract DispatchInterface"
2988 }
2989 },
2990 "id": 694,
2991 "isConstant": false,
2992 "isLValue": false,
2993 "isPure": false,
2994 "lValueRequested": false,
2995 "memberName": "query",
2996 "nodeType": "MemberAccess",
2997 "referencedDeclaration": 10024,
2998 "src": "2163:14:7",
2999 "typeDescriptions": {
3000 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$",
3001 "typeString": "function (address,string memory,bytes32,bytes32[] memory) external returns (uint256)"
3002 }
3003 },
3004 "id": 699,
3005 "isConstant": false,
3006 "isLValue": false,
3007 "isPure": false,
3008 "kind": "functionCall",
3009 "lValueRequested": false,
3010 "names": [],
3011 "nodeType": "FunctionCall",
3012 "src": "2163:47:7",
3013 "typeDescriptions": {
3014 "typeIdentifier": "t_uint256",
3015 "typeString": "uint256"
3016 }
3017 },
3018 "functionReturnParameters": 661,
3019 "id": 700,
3020 "nodeType": "Return",
3021 "src": "2156:54:7"
3022 }
3023 ]
3024 },
3025 "documentation": null,
3026 "id": 702,
3027 "implemented": true,
3028 "isConstructor": false,
3029 "isDeclaredConst": false,
3030 "modifiers": [],
3031 "name": "queryToSettle",
3032 "nodeType": "FunctionDefinition",
3033 "parameters": {
3034 "id": 658,
3035 "nodeType": "ParameterList",
3036 "parameters": [
3037 {
3038 "constant": false,
3039 "id": 655,
3040 "name": "_coincap",
3041 "nodeType": "VariableDeclaration",
3042 "scope": 702,
3043 "src": "1826:16:7",
3044 "stateVariable": false,
3045 "storageLocation": "default",
3046 "typeDescriptions": {
3047 "typeIdentifier": "t_address",
3048 "typeString": "address"
3049 },
3050 "typeName": {
3051 "id": 654,
3052 "name": "address",
3053 "nodeType": "ElementaryTypeName",
3054 "src": "1826:7:7",
3055 "typeDescriptions": {
3056 "typeIdentifier": "t_address",
3057 "typeString": "address"
3058 }
3059 },
3060 "value": null,
3061 "visibility": "internal"
3062 },
3063 {
3064 "constant": false,
3065 "id": 657,
3066 "name": "_endpoint",
3067 "nodeType": "VariableDeclaration",
3068 "scope": 702,
3069 "src": "1843:17:7",
3070 "stateVariable": false,
3071 "storageLocation": "default",
3072 "typeDescriptions": {
3073 "typeIdentifier": "t_bytes32",
3074 "typeString": "bytes32"
3075 },
3076 "typeName": {
3077 "id": 656,
3078 "name": "bytes32",
3079 "nodeType": "ElementaryTypeName",
3080 "src": "1843:7:7",
3081 "typeDescriptions": {
3082 "typeIdentifier": "t_bytes32",
3083 "typeString": "bytes32"
3084 }
3085 },
3086 "value": null,
3087 "visibility": "internal"
3088 }
3089 ],
3090 "src": "1825:36:7"
3091 },
3092 "payable": false,
3093 "returnParameters": {
3094 "id": 661,
3095 "nodeType": "ParameterList",
3096 "parameters": [
3097 {
3098 "constant": false,
3099 "id": 660,
3100 "name": "",
3101 "nodeType": "VariableDeclaration",
3102 "scope": 702,
3103 "src": "1877:7:7",
3104 "stateVariable": false,
3105 "storageLocation": "default",
3106 "typeDescriptions": {
3107 "typeIdentifier": "t_uint256",
3108 "typeString": "uint256"
3109 },
3110 "typeName": {
3111 "id": 659,
3112 "name": "uint256",
3113 "nodeType": "ElementaryTypeName",
3114 "src": "1877:7:7",
3115 "typeDescriptions": {
3116 "typeIdentifier": "t_uint256",
3117 "typeString": "uint256"
3118 }
3119 },
3120 "value": null,
3121 "visibility": "internal"
3122 }
3123 ],
3124 "src": "1876:9:7"
3125 },
3126 "scope": 805,
3127 "src": "1803:412:7",
3128 "stateMutability": "nonpayable",
3129 "superFunction": null,
3130 "visibility": "public"
3131 },
3132 {
3133 "body": {
3134 "id": 803,
3135 "nodeType": "Block",
3136 "src": "2276:651:7",
3137 "statements": [
3138 {
3139 "assignments": [
3140 711
3141 ],
3142 "declarations": [
3143 {
3144 "constant": false,
3145 "id": 711,
3146 "name": "dispatchAddress",
3147 "nodeType": "VariableDeclaration",
3148 "scope": 804,
3149 "src": "2282:23:7",
3150 "stateVariable": false,
3151 "storageLocation": "default",
3152 "typeDescriptions": {
3153 "typeIdentifier": "t_address",
3154 "typeString": "address"
3155 },
3156 "typeName": {
3157 "id": 710,
3158 "name": "address",
3159 "nodeType": "ElementaryTypeName",
3160 "src": "2282:7:7",
3161 "typeDescriptions": {
3162 "typeIdentifier": "t_address",
3163 "typeString": "address"
3164 }
3165 },
3166 "value": null,
3167 "visibility": "internal"
3168 }
3169 ],
3170 "id": 716,
3171 "initialValue": {
3172 "argumentTypes": null,
3173 "arguments": [
3174 {
3175 "argumentTypes": null,
3176 "hexValue": "4449535041544348",
3177 "id": 714,
3178 "isConstant": false,
3179 "isLValue": false,
3180 "isPure": true,
3181 "kind": "string",
3182 "lValueRequested": false,
3183 "nodeType": "Literal",
3184 "src": "2332:10:7",
3185 "subdenomination": null,
3186 "typeDescriptions": {
3187 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
3188 "typeString": "literal_string \"DISPATCH\""
3189 },
3190 "value": "DISPATCH"
3191 }
3192 ],
3193 "expression": {
3194 "argumentTypes": [
3195 {
3196 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
3197 "typeString": "literal_string \"DISPATCH\""
3198 }
3199 ],
3200 "expression": {
3201 "argumentTypes": null,
3202 "id": 712,
3203 "name": "coordinator",
3204 "nodeType": "Identifier",
3205 "overloadedDeclarations": [],
3206 "referencedDeclaration": 509,
3207 "src": "2308:11:7",
3208 "typeDescriptions": {
3209 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
3210 "typeString": "contract ZapCoordinatorInterface"
3211 }
3212 },
3213 "id": 713,
3214 "isConstant": false,
3215 "isLValue": false,
3216 "isPure": false,
3217 "lValueRequested": false,
3218 "memberName": "getContract",
3219 "nodeType": "MemberAccess",
3220 "referencedDeclaration": 489,
3221 "src": "2308:23:7",
3222 "typeDescriptions": {
3223 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
3224 "typeString": "function (string memory) view external returns (address)"
3225 }
3226 },
3227 "id": 715,
3228 "isConstant": false,
3229 "isLValue": false,
3230 "isPure": false,
3231 "kind": "functionCall",
3232 "lValueRequested": false,
3233 "names": [],
3234 "nodeType": "FunctionCall",
3235 "src": "2308:35:7",
3236 "typeDescriptions": {
3237 "typeIdentifier": "t_address",
3238 "typeString": "address"
3239 }
3240 },
3241 "nodeType": "VariableDeclarationStatement",
3242 "src": "2282:61:7"
3243 },
3244 {
3245 "expression": {
3246 "argumentTypes": null,
3247 "arguments": [
3248 {
3249 "argumentTypes": null,
3250 "commonType": {
3251 "typeIdentifier": "t_address",
3252 "typeString": "address"
3253 },
3254 "id": 725,
3255 "isConstant": false,
3256 "isLValue": false,
3257 "isPure": false,
3258 "lValueRequested": false,
3259 "leftExpression": {
3260 "argumentTypes": null,
3261 "arguments": [
3262 {
3263 "argumentTypes": null,
3264 "expression": {
3265 "argumentTypes": null,
3266 "id": 719,
3267 "name": "msg",
3268 "nodeType": "Identifier",
3269 "overloadedDeclarations": [],
3270 "referencedDeclaration": 12092,
3271 "src": "2365:3:7",
3272 "typeDescriptions": {
3273 "typeIdentifier": "t_magic_message",
3274 "typeString": "msg"
3275 }
3276 },
3277 "id": 720,
3278 "isConstant": false,
3279 "isLValue": false,
3280 "isPure": false,
3281 "lValueRequested": false,
3282 "memberName": "sender",
3283 "nodeType": "MemberAccess",
3284 "referencedDeclaration": null,
3285 "src": "2365:10:7",
3286 "typeDescriptions": {
3287 "typeIdentifier": "t_address",
3288 "typeString": "address"
3289 }
3290 }
3291 ],
3292 "expression": {
3293 "argumentTypes": [
3294 {
3295 "typeIdentifier": "t_address",
3296 "typeString": "address"
3297 }
3298 ],
3299 "id": 718,
3300 "isConstant": false,
3301 "isLValue": false,
3302 "isPure": true,
3303 "lValueRequested": false,
3304 "nodeType": "ElementaryTypeNameExpression",
3305 "src": "2357:7:7",
3306 "typeDescriptions": {
3307 "typeIdentifier": "t_type$_t_address_$",
3308 "typeString": "type(address)"
3309 },
3310 "typeName": "address"
3311 },
3312 "id": 721,
3313 "isConstant": false,
3314 "isLValue": false,
3315 "isPure": false,
3316 "kind": "typeConversion",
3317 "lValueRequested": false,
3318 "names": [],
3319 "nodeType": "FunctionCall",
3320 "src": "2357:19:7",
3321 "typeDescriptions": {
3322 "typeIdentifier": "t_address",
3323 "typeString": "address"
3324 }
3325 },
3326 "nodeType": "BinaryOperation",
3327 "operator": "==",
3328 "rightExpression": {
3329 "argumentTypes": null,
3330 "arguments": [
3331 {
3332 "argumentTypes": null,
3333 "id": 723,
3334 "name": "dispatchAddress",
3335 "nodeType": "Identifier",
3336 "overloadedDeclarations": [],
3337 "referencedDeclaration": 711,
3338 "src": "2386:15:7",
3339 "typeDescriptions": {
3340 "typeIdentifier": "t_address",
3341 "typeString": "address"
3342 }
3343 }
3344 ],
3345 "expression": {
3346 "argumentTypes": [
3347 {
3348 "typeIdentifier": "t_address",
3349 "typeString": "address"
3350 }
3351 ],
3352 "id": 722,
3353 "isConstant": false,
3354 "isLValue": false,
3355 "isPure": true,
3356 "lValueRequested": false,
3357 "nodeType": "ElementaryTypeNameExpression",
3358 "src": "2378:7:7",
3359 "typeDescriptions": {
3360 "typeIdentifier": "t_type$_t_address_$",
3361 "typeString": "type(address)"
3362 },
3363 "typeName": "address"
3364 },
3365 "id": 724,
3366 "isConstant": false,
3367 "isLValue": false,
3368 "isPure": false,
3369 "kind": "typeConversion",
3370 "lValueRequested": false,
3371 "names": [],
3372 "nodeType": "FunctionCall",
3373 "src": "2378:24:7",
3374 "typeDescriptions": {
3375 "typeIdentifier": "t_address",
3376 "typeString": "address"
3377 }
3378 },
3379 "src": "2357:45:7",
3380 "typeDescriptions": {
3381 "typeIdentifier": "t_bool",
3382 "typeString": "bool"
3383 }
3384 },
3385 {
3386 "argumentTypes": null,
3387 "hexValue": "4f6e6c792061636365707420726573706f6e73652066726f6d206469737061746368",
3388 "id": 726,
3389 "isConstant": false,
3390 "isLValue": false,
3391 "isPure": true,
3392 "kind": "string",
3393 "lValueRequested": false,
3394 "nodeType": "Literal",
3395 "src": "2403:36:7",
3396 "subdenomination": null,
3397 "typeDescriptions": {
3398 "typeIdentifier": "t_stringliteral_23c29d3ce31e64b36d6464233acf8e5f5296a2326aa07c4a41f21647107c3c7e",
3399 "typeString": "literal_string \"Only accept response from dispatch\""
3400 },
3401 "value": "Only accept response from dispatch"
3402 }
3403 ],
3404 "expression": {
3405 "argumentTypes": [
3406 {
3407 "typeIdentifier": "t_bool",
3408 "typeString": "bool"
3409 },
3410 {
3411 "typeIdentifier": "t_stringliteral_23c29d3ce31e64b36d6464233acf8e5f5296a2326aa07c4a41f21647107c3c7e",
3412 "typeString": "literal_string \"Only accept response from dispatch\""
3413 }
3414 ],
3415 "id": 717,
3416 "name": "require",
3417 "nodeType": "Identifier",
3418 "overloadedDeclarations": [
3419 12095,
3420 12096
3421 ],
3422 "referencedDeclaration": 12096,
3423 "src": "2349:7:7",
3424 "typeDescriptions": {
3425 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
3426 "typeString": "function (bool,string memory) pure"
3427 }
3428 },
3429 "id": 727,
3430 "isConstant": false,
3431 "isLValue": false,
3432 "isPure": false,
3433 "kind": "functionCall",
3434 "lValueRequested": false,
3435 "names": [],
3436 "nodeType": "FunctionCall",
3437 "src": "2349:91:7",
3438 "typeDescriptions": {
3439 "typeIdentifier": "t_tuple$__$",
3440 "typeString": "tuple()"
3441 }
3442 },
3443 "id": 728,
3444 "nodeType": "ExpressionStatement",
3445 "src": "2349:91:7"
3446 },
3447 {
3448 "expression": {
3449 "argumentTypes": null,
3450 "arguments": [
3451 {
3452 "argumentTypes": null,
3453 "commonType": {
3454 "typeIdentifier": "t_uint256",
3455 "typeString": "uint256"
3456 },
3457 "id": 734,
3458 "isConstant": false,
3459 "isLValue": false,
3460 "isPure": false,
3461 "lValueRequested": false,
3462 "leftExpression": {
3463 "argumentTypes": null,
3464 "arguments": [],
3465 "expression": {
3466 "argumentTypes": [],
3467 "expression": {
3468 "argumentTypes": null,
3469 "id": 730,
3470 "name": "contest",
3471 "nodeType": "Identifier",
3472 "overloadedDeclarations": [],
3473 "referencedDeclaration": 507,
3474 "src": "2454:7:7",
3475 "typeDescriptions": {
3476 "typeIdentifier": "t_contract$_SampleContest_$3254",
3477 "typeString": "contract SampleContest"
3478 }
3479 },
3480 "id": 731,
3481 "isConstant": false,
3482 "isLValue": false,
3483 "isPure": false,
3484 "lValueRequested": false,
3485 "memberName": "getStatus",
3486 "nodeType": "MemberAccess",
3487 "referencedDeclaration": 3083,
3488 "src": "2454:17:7",
3489 "typeDescriptions": {
3490 "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
3491 "typeString": "function () view external returns (uint256)"
3492 }
3493 },
3494 "id": 732,
3495 "isConstant": false,
3496 "isLValue": false,
3497 "isPure": false,
3498 "kind": "functionCall",
3499 "lValueRequested": false,
3500 "names": [],
3501 "nodeType": "FunctionCall",
3502 "src": "2454:19:7",
3503 "typeDescriptions": {
3504 "typeIdentifier": "t_uint256",
3505 "typeString": "uint256"
3506 }
3507 },
3508 "nodeType": "BinaryOperation",
3509 "operator": "==",
3510 "rightExpression": {
3511 "argumentTypes": null,
3512 "hexValue": "31",
3513 "id": 733,
3514 "isConstant": false,
3515 "isLValue": false,
3516 "isPure": true,
3517 "kind": "number",
3518 "lValueRequested": false,
3519 "nodeType": "Literal",
3520 "src": "2475:1:7",
3521 "subdenomination": null,
3522 "typeDescriptions": {
3523 "typeIdentifier": "t_rational_1_by_1",
3524 "typeString": "int_const 1"
3525 },
3526 "value": "1"
3527 },
3528 "src": "2454:22:7",
3529 "typeDescriptions": {
3530 "typeIdentifier": "t_bool",
3531 "typeString": "bool"
3532 }
3533 },
3534 {
3535 "argumentTypes": null,
3536 "hexValue": "436f6e74657374206973206e6f7420696e20696e697469616c697a6564207374617465",
3537 "id": 735,
3538 "isConstant": false,
3539 "isLValue": false,
3540 "isPure": true,
3541 "kind": "string",
3542 "lValueRequested": false,
3543 "nodeType": "Literal",
3544 "src": "2477:37:7",
3545 "subdenomination": null,
3546 "typeDescriptions": {
3547 "typeIdentifier": "t_stringliteral_6f7b379bd4fd2232d1690cb70ffbf30e9a3f8e664ba22ee6462bb4953c92f95d",
3548 "typeString": "literal_string \"Contest is not in initialized state\""
3549 },
3550 "value": "Contest is not in initialized state"
3551 }
3552 ],
3553 "expression": {
3554 "argumentTypes": [
3555 {
3556 "typeIdentifier": "t_bool",
3557 "typeString": "bool"
3558 },
3559 {
3560 "typeIdentifier": "t_stringliteral_6f7b379bd4fd2232d1690cb70ffbf30e9a3f8e664ba22ee6462bb4953c92f95d",
3561 "typeString": "literal_string \"Contest is not in initialized state\""
3562 }
3563 ],
3564 "id": 729,
3565 "name": "require",
3566 "nodeType": "Identifier",
3567 "overloadedDeclarations": [
3568 12095,
3569 12096
3570 ],
3571 "referencedDeclaration": 12096,
3572 "src": "2446:7:7",
3573 "typeDescriptions": {
3574 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
3575 "typeString": "function (bool,string memory) pure"
3576 }
3577 },
3578 "id": 736,
3579 "isConstant": false,
3580 "isLValue": false,
3581 "isPure": false,
3582 "kind": "functionCall",
3583 "lValueRequested": false,
3584 "names": [],
3585 "nodeType": "FunctionCall",
3586 "src": "2446:69:7",
3587 "typeDescriptions": {
3588 "typeIdentifier": "t_tuple$__$",
3589 "typeString": "tuple()"
3590 }
3591 },
3592 "id": 737,
3593 "nodeType": "ExpressionStatement",
3594 "src": "2446:69:7"
3595 },
3596 {
3597 "assignments": [
3598 739
3599 ],
3600 "declarations": [
3601 {
3602 "constant": false,
3603 "id": 739,
3604 "name": "price",
3605 "nodeType": "VariableDeclaration",
3606 "scope": 804,
3607 "src": "2557:13:7",
3608 "stateVariable": false,
3609 "storageLocation": "default",
3610 "typeDescriptions": {
3611 "typeIdentifier": "t_uint256",
3612 "typeString": "uint256"
3613 },
3614 "typeName": {
3615 "id": 738,
3616 "name": "uint256",
3617 "nodeType": "ElementaryTypeName",
3618 "src": "2557:7:7",
3619 "typeDescriptions": {
3620 "typeIdentifier": "t_uint256",
3621 "typeString": "uint256"
3622 }
3623 },
3624 "value": null,
3625 "visibility": "internal"
3626 }
3627 ],
3628 "id": 745,
3629 "initialValue": {
3630 "argumentTypes": null,
3631 "arguments": [
3632 {
3633 "argumentTypes": null,
3634 "baseExpression": {
3635 "argumentTypes": null,
3636 "id": 741,
3637 "name": "responses",
3638 "nodeType": "Identifier",
3639 "overloadedDeclarations": [],
3640 "referencedDeclaration": 707,
3641 "src": "2581:9:7",
3642 "typeDescriptions": {
3643 "typeIdentifier": "t_array$_t_int256_$dyn_calldata_ptr",
3644 "typeString": "int256[] calldata"
3645 }
3646 },
3647 "id": 743,
3648 "indexExpression": {
3649 "argumentTypes": null,
3650 "hexValue": "30",
3651 "id": 742,
3652 "isConstant": false,
3653 "isLValue": false,
3654 "isPure": true,
3655 "kind": "number",
3656 "lValueRequested": false,
3657 "nodeType": "Literal",
3658 "src": "2591:1:7",
3659 "subdenomination": null,
3660 "typeDescriptions": {
3661 "typeIdentifier": "t_rational_0_by_1",
3662 "typeString": "int_const 0"
3663 },
3664 "value": "0"
3665 },
3666 "isConstant": false,
3667 "isLValue": false,
3668 "isPure": false,
3669 "lValueRequested": false,
3670 "nodeType": "IndexAccess",
3671 "src": "2581:12:7",
3672 "typeDescriptions": {
3673 "typeIdentifier": "t_int256",
3674 "typeString": "int256"
3675 }
3676 }
3677 ],
3678 "expression": {
3679 "argumentTypes": [
3680 {
3681 "typeIdentifier": "t_int256",
3682 "typeString": "int256"
3683 }
3684 ],
3685 "id": 740,
3686 "isConstant": false,
3687 "isLValue": false,
3688 "isPure": true,
3689 "lValueRequested": false,
3690 "nodeType": "ElementaryTypeNameExpression",
3691 "src": "2573:7:7",
3692 "typeDescriptions": {
3693 "typeIdentifier": "t_type$_t_uint256_$",
3694 "typeString": "type(uint256)"
3695 },
3696 "typeName": "uint256"
3697 },
3698 "id": 744,
3699 "isConstant": false,
3700 "isLValue": false,
3701 "isPure": false,
3702 "kind": "typeConversion",
3703 "lValueRequested": false,
3704 "names": [],
3705 "nodeType": "FunctionCall",
3706 "src": "2573:21:7",
3707 "typeDescriptions": {
3708 "typeIdentifier": "t_uint256",
3709 "typeString": "uint256"
3710 }
3711 },
3712 "nodeType": "VariableDeclarationStatement",
3713 "src": "2557:37:7"
3714 },
3715 {
3716 "assignments": [
3717 749
3718 ],
3719 "declarations": [
3720 {
3721 "constant": false,
3722 "id": 749,
3723 "name": "endpoints",
3724 "nodeType": "VariableDeclaration",
3725 "scope": 804,
3726 "src": "2600:26:7",
3727 "stateVariable": false,
3728 "storageLocation": "memory",
3729 "typeDescriptions": {
3730 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
3731 "typeString": "bytes32[]"
3732 },
3733 "typeName": {
3734 "baseType": {
3735 "id": 747,
3736 "name": "bytes32",
3737 "nodeType": "ElementaryTypeName",
3738 "src": "2600:7:7",
3739 "typeDescriptions": {
3740 "typeIdentifier": "t_bytes32",
3741 "typeString": "bytes32"
3742 }
3743 },
3744 "id": 748,
3745 "length": null,
3746 "nodeType": "ArrayTypeName",
3747 "src": "2600:9:7",
3748 "typeDescriptions": {
3749 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
3750 "typeString": "bytes32[]"
3751 }
3752 },
3753 "value": null,
3754 "visibility": "internal"
3755 }
3756 ],
3757 "id": 753,
3758 "initialValue": {
3759 "argumentTypes": null,
3760 "arguments": [],
3761 "expression": {
3762 "argumentTypes": [],
3763 "expression": {
3764 "argumentTypes": null,
3765 "id": 750,
3766 "name": "contest",
3767 "nodeType": "Identifier",
3768 "overloadedDeclarations": [],
3769 "referencedDeclaration": 507,
3770 "src": "2629:7:7",
3771 "typeDescriptions": {
3772 "typeIdentifier": "t_contract$_SampleContest_$3254",
3773 "typeString": "contract SampleContest"
3774 }
3775 },
3776 "id": 751,
3777 "isConstant": false,
3778 "isLValue": false,
3779 "isPure": false,
3780 "lValueRequested": false,
3781 "memberName": "getEndpoints",
3782 "nodeType": "MemberAccess",
3783 "referencedDeclaration": 3073,
3784 "src": "2629:20:7",
3785 "typeDescriptions": {
3786 "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
3787 "typeString": "function () view external returns (bytes32[] memory)"
3788 }
3789 },
3790 "id": 752,
3791 "isConstant": false,
3792 "isLValue": false,
3793 "isPure": false,
3794 "kind": "functionCall",
3795 "lValueRequested": false,
3796 "names": [],
3797 "nodeType": "FunctionCall",
3798 "src": "2629:22:7",
3799 "typeDescriptions": {
3800 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
3801 "typeString": "bytes32[] memory"
3802 }
3803 },
3804 "nodeType": "VariableDeclarationStatement",
3805 "src": "2600:51:7"
3806 },
3807 {
3808 "body": {
3809 "id": 801,
3810 "nodeType": "Block",
3811 "src": "2696:227:7",
3812 "statements": [
3813 {
3814 "condition": {
3815 "argumentTypes": null,
3816 "commonType": {
3817 "typeIdentifier": "t_bool",
3818 "typeString": "bool"
3819 },
3820 "id": 773,
3821 "isConstant": false,
3822 "isLValue": false,
3823 "isPure": false,
3824 "lValueRequested": false,
3825 "leftExpression": {
3826 "argumentTypes": null,
3827 "commonType": {
3828 "typeIdentifier": "t_bytes32",
3829 "typeString": "bytes32"
3830 },
3831 "id": 769,
3832 "isConstant": false,
3833 "isLValue": false,
3834 "isPure": false,
3835 "lValueRequested": false,
3836 "leftExpression": {
3837 "argumentTypes": null,
3838 "baseExpression": {
3839 "argumentTypes": null,
3840 "id": 765,
3841 "name": "endpoints",
3842 "nodeType": "Identifier",
3843 "overloadedDeclarations": [],
3844 "referencedDeclaration": 749,
3845 "src": "2707:9:7",
3846 "typeDescriptions": {
3847 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
3848 "typeString": "bytes32[] memory"
3849 }
3850 },
3851 "id": 767,
3852 "indexExpression": {
3853 "argumentTypes": null,
3854 "id": 766,
3855 "name": "i",
3856 "nodeType": "Identifier",
3857 "overloadedDeclarations": [],
3858 "referencedDeclaration": 755,
3859 "src": "2717:1:7",
3860 "typeDescriptions": {
3861 "typeIdentifier": "t_uint256",
3862 "typeString": "uint256"
3863 }
3864 },
3865 "isConstant": false,
3866 "isLValue": true,
3867 "isPure": false,
3868 "lValueRequested": false,
3869 "nodeType": "IndexAccess",
3870 "src": "2707:12:7",
3871 "typeDescriptions": {
3872 "typeIdentifier": "t_bytes32",
3873 "typeString": "bytes32"
3874 }
3875 },
3876 "nodeType": "BinaryOperation",
3877 "operator": "==",
3878 "rightExpression": {
3879 "argumentTypes": null,
3880 "id": 768,
3881 "name": "upEndpoint",
3882 "nodeType": "Identifier",
3883 "overloadedDeclarations": [],
3884 "referencedDeclaration": 517,
3885 "src": "2721:10:7",
3886 "typeDescriptions": {
3887 "typeIdentifier": "t_bytes32",
3888 "typeString": "bytes32"
3889 }
3890 },
3891 "src": "2707:24:7",
3892 "typeDescriptions": {
3893 "typeIdentifier": "t_bool",
3894 "typeString": "bool"
3895 }
3896 },
3897 "nodeType": "BinaryOperation",
3898 "operator": "&&",
3899 "rightExpression": {
3900 "argumentTypes": null,
3901 "commonType": {
3902 "typeIdentifier": "t_uint256",
3903 "typeString": "uint256"
3904 },
3905 "id": 772,
3906 "isConstant": false,
3907 "isLValue": false,
3908 "isPure": false,
3909 "lValueRequested": false,
3910 "leftExpression": {
3911 "argumentTypes": null,
3912 "id": 770,
3913 "name": "price",
3914 "nodeType": "Identifier",
3915 "overloadedDeclarations": [],
3916 "referencedDeclaration": 739,
3917 "src": "2735:5:7",
3918 "typeDescriptions": {
3919 "typeIdentifier": "t_uint256",
3920 "typeString": "uint256"
3921 }
3922 },
3923 "nodeType": "BinaryOperation",
3924 "operator": ">",
3925 "rightExpression": {
3926 "argumentTypes": null,
3927 "id": 771,
3928 "name": "startPrice",
3929 "nodeType": "Identifier",
3930 "overloadedDeclarations": [],
3931 "referencedDeclaration": 515,
3932 "src": "2743:10:7",
3933 "typeDescriptions": {
3934 "typeIdentifier": "t_uint256",
3935 "typeString": "uint256"
3936 }
3937 },
3938 "src": "2735:18:7",
3939 "typeDescriptions": {
3940 "typeIdentifier": "t_bool",
3941 "typeString": "bool"
3942 }
3943 },
3944 "src": "2707:46:7",
3945 "typeDescriptions": {
3946 "typeIdentifier": "t_bool",
3947 "typeString": "bool"
3948 }
3949 },
3950 "falseBody": null,
3951 "id": 782,
3952 "nodeType": "IfStatement",
3953 "src": "2704:103:7",
3954 "trueBody": {
3955 "id": 781,
3956 "nodeType": "Block",
3957 "src": "2754:53:7",
3958 "statements": [
3959 {
3960 "expression": {
3961 "argumentTypes": null,
3962 "arguments": [
3963 {
3964 "argumentTypes": null,
3965 "baseExpression": {
3966 "argumentTypes": null,
3967 "id": 776,
3968 "name": "endpoints",
3969 "nodeType": "Identifier",
3970 "overloadedDeclarations": [],
3971 "referencedDeclaration": 749,
3972 "src": "2785:9:7",
3973 "typeDescriptions": {
3974 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
3975 "typeString": "bytes32[] memory"
3976 }
3977 },
3978 "id": 778,
3979 "indexExpression": {
3980 "argumentTypes": null,
3981 "id": 777,
3982 "name": "i",
3983 "nodeType": "Identifier",
3984 "overloadedDeclarations": [],
3985 "referencedDeclaration": 755,
3986 "src": "2795:1:7",
3987 "typeDescriptions": {
3988 "typeIdentifier": "t_uint256",
3989 "typeString": "uint256"
3990 }
3991 },
3992 "isConstant": false,
3993 "isLValue": true,
3994 "isPure": false,
3995 "lValueRequested": false,
3996 "nodeType": "IndexAccess",
3997 "src": "2785:12:7",
3998 "typeDescriptions": {
3999 "typeIdentifier": "t_bytes32",
4000 "typeString": "bytes32"
4001 }
4002 }
4003 ],
4004 "expression": {
4005 "argumentTypes": [
4006 {
4007 "typeIdentifier": "t_bytes32",
4008 "typeString": "bytes32"
4009 }
4010 ],
4011 "expression": {
4012 "argumentTypes": null,
4013 "id": 774,
4014 "name": "contest",
4015 "nodeType": "Identifier",
4016 "overloadedDeclarations": [],
4017 "referencedDeclaration": 507,
4018 "src": "2771:7:7",
4019 "typeDescriptions": {
4020 "typeIdentifier": "t_contract$_SampleContest_$3254",
4021 "typeString": "contract SampleContest"
4022 }
4023 },
4024 "id": 775,
4025 "isConstant": false,
4026 "isLValue": false,
4027 "isPure": false,
4028 "lValueRequested": false,
4029 "memberName": "judge",
4030 "nodeType": "MemberAccess",
4031 "referencedDeclaration": 2459,
4032 "src": "2771:13:7",
4033 "typeDescriptions": {
4034 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
4035 "typeString": "function (bytes32) external"
4036 }
4037 },
4038 "id": 779,
4039 "isConstant": false,
4040 "isLValue": false,
4041 "isPure": false,
4042 "kind": "functionCall",
4043 "lValueRequested": false,
4044 "names": [],
4045 "nodeType": "FunctionCall",
4046 "src": "2771:27:7",
4047 "typeDescriptions": {
4048 "typeIdentifier": "t_tuple$__$",
4049 "typeString": "tuple()"
4050 }
4051 },
4052 "functionReturnParameters": 709,
4053 "id": 780,
4054 "nodeType": "Return",
4055 "src": "2764:34:7"
4056 }
4057 ]
4058 }
4059 },
4060 {
4061 "condition": {
4062 "argumentTypes": null,
4063 "commonType": {
4064 "typeIdentifier": "t_bool",
4065 "typeString": "bool"
4066 },
4067 "id": 791,
4068 "isConstant": false,
4069 "isLValue": false,
4070 "isPure": false,
4071 "lValueRequested": false,
4072 "leftExpression": {
4073 "argumentTypes": null,
4074 "commonType": {
4075 "typeIdentifier": "t_bytes32",
4076 "typeString": "bytes32"
4077 },
4078 "id": 787,
4079 "isConstant": false,
4080 "isLValue": false,
4081 "isPure": false,
4082 "lValueRequested": false,
4083 "leftExpression": {
4084 "argumentTypes": null,
4085 "baseExpression": {
4086 "argumentTypes": null,
4087 "id": 783,
4088 "name": "endpoints",
4089 "nodeType": "Identifier",
4090 "overloadedDeclarations": [],
4091 "referencedDeclaration": 749,
4092 "src": "2817:9:7",
4093 "typeDescriptions": {
4094 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4095 "typeString": "bytes32[] memory"
4096 }
4097 },
4098 "id": 785,
4099 "indexExpression": {
4100 "argumentTypes": null,
4101 "id": 784,
4102 "name": "i",
4103 "nodeType": "Identifier",
4104 "overloadedDeclarations": [],
4105 "referencedDeclaration": 755,
4106 "src": "2827:1:7",
4107 "typeDescriptions": {
4108 "typeIdentifier": "t_uint256",
4109 "typeString": "uint256"
4110 }
4111 },
4112 "isConstant": false,
4113 "isLValue": true,
4114 "isPure": false,
4115 "lValueRequested": false,
4116 "nodeType": "IndexAccess",
4117 "src": "2817:12:7",
4118 "typeDescriptions": {
4119 "typeIdentifier": "t_bytes32",
4120 "typeString": "bytes32"
4121 }
4122 },
4123 "nodeType": "BinaryOperation",
4124 "operator": "==",
4125 "rightExpression": {
4126 "argumentTypes": null,
4127 "id": 786,
4128 "name": "downEndpoint",
4129 "nodeType": "Identifier",
4130 "overloadedDeclarations": [],
4131 "referencedDeclaration": 519,
4132 "src": "2831:12:7",
4133 "typeDescriptions": {
4134 "typeIdentifier": "t_bytes32",
4135 "typeString": "bytes32"
4136 }
4137 },
4138 "src": "2817:26:7",
4139 "typeDescriptions": {
4140 "typeIdentifier": "t_bool",
4141 "typeString": "bool"
4142 }
4143 },
4144 "nodeType": "BinaryOperation",
4145 "operator": "&&",
4146 "rightExpression": {
4147 "argumentTypes": null,
4148 "commonType": {
4149 "typeIdentifier": "t_uint256",
4150 "typeString": "uint256"
4151 },
4152 "id": 790,
4153 "isConstant": false,
4154 "isLValue": false,
4155 "isPure": false,
4156 "lValueRequested": false,
4157 "leftExpression": {
4158 "argumentTypes": null,
4159 "id": 788,
4160 "name": "price",
4161 "nodeType": "Identifier",
4162 "overloadedDeclarations": [],
4163 "referencedDeclaration": 739,
4164 "src": "2847:5:7",
4165 "typeDescriptions": {
4166 "typeIdentifier": "t_uint256",
4167 "typeString": "uint256"
4168 }
4169 },
4170 "nodeType": "BinaryOperation",
4171 "operator": "<",
4172 "rightExpression": {
4173 "argumentTypes": null,
4174 "id": 789,
4175 "name": "startPrice",
4176 "nodeType": "Identifier",
4177 "overloadedDeclarations": [],
4178 "referencedDeclaration": 515,
4179 "src": "2853:10:7",
4180 "typeDescriptions": {
4181 "typeIdentifier": "t_uint256",
4182 "typeString": "uint256"
4183 }
4184 },
4185 "src": "2847:16:7",
4186 "typeDescriptions": {
4187 "typeIdentifier": "t_bool",
4188 "typeString": "bool"
4189 }
4190 },
4191 "src": "2817:46:7",
4192 "typeDescriptions": {
4193 "typeIdentifier": "t_bool",
4194 "typeString": "bool"
4195 }
4196 },
4197 "falseBody": null,
4198 "id": 800,
4199 "nodeType": "IfStatement",
4200 "src": "2814:103:7",
4201 "trueBody": {
4202 "id": 799,
4203 "nodeType": "Block",
4204 "src": "2864:53:7",
4205 "statements": [
4206 {
4207 "expression": {
4208 "argumentTypes": null,
4209 "arguments": [
4210 {
4211 "argumentTypes": null,
4212 "baseExpression": {
4213 "argumentTypes": null,
4214 "id": 794,
4215 "name": "endpoints",
4216 "nodeType": "Identifier",
4217 "overloadedDeclarations": [],
4218 "referencedDeclaration": 749,
4219 "src": "2895:9:7",
4220 "typeDescriptions": {
4221 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4222 "typeString": "bytes32[] memory"
4223 }
4224 },
4225 "id": 796,
4226 "indexExpression": {
4227 "argumentTypes": null,
4228 "id": 795,
4229 "name": "i",
4230 "nodeType": "Identifier",
4231 "overloadedDeclarations": [],
4232 "referencedDeclaration": 755,
4233 "src": "2905:1:7",
4234 "typeDescriptions": {
4235 "typeIdentifier": "t_uint256",
4236 "typeString": "uint256"
4237 }
4238 },
4239 "isConstant": false,
4240 "isLValue": true,
4241 "isPure": false,
4242 "lValueRequested": false,
4243 "nodeType": "IndexAccess",
4244 "src": "2895:12:7",
4245 "typeDescriptions": {
4246 "typeIdentifier": "t_bytes32",
4247 "typeString": "bytes32"
4248 }
4249 }
4250 ],
4251 "expression": {
4252 "argumentTypes": [
4253 {
4254 "typeIdentifier": "t_bytes32",
4255 "typeString": "bytes32"
4256 }
4257 ],
4258 "expression": {
4259 "argumentTypes": null,
4260 "id": 792,
4261 "name": "contest",
4262 "nodeType": "Identifier",
4263 "overloadedDeclarations": [],
4264 "referencedDeclaration": 507,
4265 "src": "2881:7:7",
4266 "typeDescriptions": {
4267 "typeIdentifier": "t_contract$_SampleContest_$3254",
4268 "typeString": "contract SampleContest"
4269 }
4270 },
4271 "id": 793,
4272 "isConstant": false,
4273 "isLValue": false,
4274 "isPure": false,
4275 "lValueRequested": false,
4276 "memberName": "judge",
4277 "nodeType": "MemberAccess",
4278 "referencedDeclaration": 2459,
4279 "src": "2881:13:7",
4280 "typeDescriptions": {
4281 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
4282 "typeString": "function (bytes32) external"
4283 }
4284 },
4285 "id": 797,
4286 "isConstant": false,
4287 "isLValue": false,
4288 "isPure": false,
4289 "kind": "functionCall",
4290 "lValueRequested": false,
4291 "names": [],
4292 "nodeType": "FunctionCall",
4293 "src": "2881:27:7",
4294 "typeDescriptions": {
4295 "typeIdentifier": "t_tuple$__$",
4296 "typeString": "tuple()"
4297 }
4298 },
4299 "functionReturnParameters": 709,
4300 "id": 798,
4301 "nodeType": "Return",
4302 "src": "2874:34:7"
4303 }
4304 ]
4305 }
4306 }
4307 ]
4308 },
4309 "condition": {
4310 "argumentTypes": null,
4311 "commonType": {
4312 "typeIdentifier": "t_uint256",
4313 "typeString": "uint256"
4314 },
4315 "id": 761,
4316 "isConstant": false,
4317 "isLValue": false,
4318 "isPure": false,
4319 "lValueRequested": false,
4320 "leftExpression": {
4321 "argumentTypes": null,
4322 "id": 758,
4323 "name": "i",
4324 "nodeType": "Identifier",
4325 "overloadedDeclarations": [],
4326 "referencedDeclaration": 755,
4327 "src": "2673:1:7",
4328 "typeDescriptions": {
4329 "typeIdentifier": "t_uint256",
4330 "typeString": "uint256"
4331 }
4332 },
4333 "nodeType": "BinaryOperation",
4334 "operator": "<",
4335 "rightExpression": {
4336 "argumentTypes": null,
4337 "expression": {
4338 "argumentTypes": null,
4339 "id": 759,
4340 "name": "endpoints",
4341 "nodeType": "Identifier",
4342 "overloadedDeclarations": [],
4343 "referencedDeclaration": 749,
4344 "src": "2675:9:7",
4345 "typeDescriptions": {
4346 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
4347 "typeString": "bytes32[] memory"
4348 }
4349 },
4350 "id": 760,
4351 "isConstant": false,
4352 "isLValue": false,
4353 "isPure": false,
4354 "lValueRequested": false,
4355 "memberName": "length",
4356 "nodeType": "MemberAccess",
4357 "referencedDeclaration": null,
4358 "src": "2675:16:7",
4359 "typeDescriptions": {
4360 "typeIdentifier": "t_uint256",
4361 "typeString": "uint256"
4362 }
4363 },
4364 "src": "2673:18:7",
4365 "typeDescriptions": {
4366 "typeIdentifier": "t_bool",
4367 "typeString": "bool"
4368 }
4369 },
4370 "id": 802,
4371 "initializationExpression": {
4372 "assignments": [
4373 755
4374 ],
4375 "declarations": [
4376 {
4377 "constant": false,
4378 "id": 755,
4379 "name": "i",
4380 "nodeType": "VariableDeclaration",
4381 "scope": 804,
4382 "src": "2661:9:7",
4383 "stateVariable": false,
4384 "storageLocation": "default",
4385 "typeDescriptions": {
4386 "typeIdentifier": "t_uint256",
4387 "typeString": "uint256"
4388 },
4389 "typeName": {
4390 "id": 754,
4391 "name": "uint256",
4392 "nodeType": "ElementaryTypeName",
4393 "src": "2661:7:7",
4394 "typeDescriptions": {
4395 "typeIdentifier": "t_uint256",
4396 "typeString": "uint256"
4397 }
4398 },
4399 "value": null,
4400 "visibility": "internal"
4401 }
4402 ],
4403 "id": 757,
4404 "initialValue": {
4405 "argumentTypes": null,
4406 "hexValue": "30",
4407 "id": 756,
4408 "isConstant": false,
4409 "isLValue": false,
4410 "isPure": true,
4411 "kind": "number",
4412 "lValueRequested": false,
4413 "nodeType": "Literal",
4414 "src": "2671:1:7",
4415 "subdenomination": null,
4416 "typeDescriptions": {
4417 "typeIdentifier": "t_rational_0_by_1",
4418 "typeString": "int_const 0"
4419 },
4420 "value": "0"
4421 },
4422 "nodeType": "VariableDeclarationStatement",
4423 "src": "2661:11:7"
4424 },
4425 "loopExpression": {
4426 "expression": {
4427 "argumentTypes": null,
4428 "id": 763,
4429 "isConstant": false,
4430 "isLValue": false,
4431 "isPure": false,
4432 "lValueRequested": false,
4433 "nodeType": "UnaryOperation",
4434 "operator": "++",
4435 "prefix": false,
4436 "src": "2692:3:7",
4437 "subExpression": {
4438 "argumentTypes": null,
4439 "id": 762,
4440 "name": "i",
4441 "nodeType": "Identifier",
4442 "overloadedDeclarations": [],
4443 "referencedDeclaration": 755,
4444 "src": "2692:1:7",
4445 "typeDescriptions": {
4446 "typeIdentifier": "t_uint256",
4447 "typeString": "uint256"
4448 }
4449 },
4450 "typeDescriptions": {
4451 "typeIdentifier": "t_uint256",
4452 "typeString": "uint256"
4453 }
4454 },
4455 "id": 764,
4456 "nodeType": "ExpressionStatement",
4457 "src": "2692:3:7"
4458 },
4459 "nodeType": "ForStatement",
4460 "src": "2657:266:7"
4461 }
4462 ]
4463 },
4464 "documentation": null,
4465 "id": 804,
4466 "implemented": true,
4467 "isConstructor": false,
4468 "isDeclaredConst": false,
4469 "modifiers": [],
4470 "name": "callback",
4471 "nodeType": "FunctionDefinition",
4472 "parameters": {
4473 "id": 708,
4474 "nodeType": "ParameterList",
4475 "parameters": [
4476 {
4477 "constant": false,
4478 "id": 704,
4479 "name": "_id",
4480 "nodeType": "VariableDeclaration",
4481 "scope": 804,
4482 "src": "2237:11:7",
4483 "stateVariable": false,
4484 "storageLocation": "default",
4485 "typeDescriptions": {
4486 "typeIdentifier": "t_uint256",
4487 "typeString": "uint256"
4488 },
4489 "typeName": {
4490 "id": 703,
4491 "name": "uint256",
4492 "nodeType": "ElementaryTypeName",
4493 "src": "2237:7:7",
4494 "typeDescriptions": {
4495 "typeIdentifier": "t_uint256",
4496 "typeString": "uint256"
4497 }
4498 },
4499 "value": null,
4500 "visibility": "internal"
4501 },
4502 {
4503 "constant": false,
4504 "id": 707,
4505 "name": "responses",
4506 "nodeType": "VariableDeclaration",
4507 "scope": 804,
4508 "src": "2250:15:7",
4509 "stateVariable": false,
4510 "storageLocation": "default",
4511 "typeDescriptions": {
4512 "typeIdentifier": "t_array$_t_int256_$dyn_calldata_ptr",
4513 "typeString": "int256[]"
4514 },
4515 "typeName": {
4516 "baseType": {
4517 "id": 705,
4518 "name": "int",
4519 "nodeType": "ElementaryTypeName",
4520 "src": "2250:3:7",
4521 "typeDescriptions": {
4522 "typeIdentifier": "t_int256",
4523 "typeString": "int256"
4524 }
4525 },
4526 "id": 706,
4527 "length": null,
4528 "nodeType": "ArrayTypeName",
4529 "src": "2250:5:7",
4530 "typeDescriptions": {
4531 "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
4532 "typeString": "int256[]"
4533 }
4534 },
4535 "value": null,
4536 "visibility": "internal"
4537 }
4538 ],
4539 "src": "2236:30:7"
4540 },
4541 "payable": false,
4542 "returnParameters": {
4543 "id": 709,
4544 "nodeType": "ParameterList",
4545 "parameters": [],
4546 "src": "2276:0:7"
4547 },
4548 "scope": 805,
4549 "src": "2219:708:7",
4550 "stateMutability": "nonpayable",
4551 "superFunction": 868,
4552 "visibility": "external"
4553 }
4554 ],
4555 "scope": 806,
4556 "src": "302:2628:7"
4557 }
4558 ],
4559 "src": "0:2931:7"
4560 },
4561 "legacyAST": {
4562 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/BTCcontest.sol",
4563 "exportedSymbols": {
4564 "BTCcontest": [
4565 805
4566 ]
4567 },
4568 "id": 806,
4569 "nodeType": "SourceUnit",
4570 "nodes": [
4571 {
4572 "id": 495,
4573 "literals": [
4574 "solidity",
4575 "^",
4576 "0.4",
4577 ".25"
4578 ],
4579 "nodeType": "PragmaDirective",
4580 "src": "0:24:7"
4581 },
4582 {
4583 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/SampleContest.sol",
4584 "file": "./SampleContest.sol",
4585 "id": 496,
4586 "nodeType": "ImportDirective",
4587 "scope": 806,
4588 "sourceUnit": 3255,
4589 "src": "25:29:7",
4590 "symbolAliases": [],
4591 "unitAlias": ""
4592 },
4593 {
4594 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/ownership/ZapCoordinatorInterface.sol",
4595 "file": "../ownership/ZapCoordinatorInterface.sol",
4596 "id": 497,
4597 "nodeType": "ImportDirective",
4598 "scope": 806,
4599 "sourceUnit": 494,
4600 "src": "55:50:7",
4601 "symbolAliases": [],
4602 "unitAlias": ""
4603 },
4604 {
4605 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/dispatch/DispatchInterface.sol",
4606 "file": "../../platform/dispatch/DispatchInterface.sol",
4607 "id": 498,
4608 "nodeType": "ImportDirective",
4609 "scope": 806,
4610 "sourceUnit": 10148,
4611 "src": "106:55:7",
4612 "symbolAliases": [],
4613 "unitAlias": ""
4614 },
4615 {
4616 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/token/FactoryTokenInterface.sol",
4617 "file": "../token/FactoryTokenInterface.sol",
4618 "id": 499,
4619 "nodeType": "ImportDirective",
4620 "scope": 806,
4621 "sourceUnit": 5199,
4622 "src": "162:44:7",
4623 "symbolAliases": [],
4624 "unitAlias": ""
4625 },
4626 {
4627 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/platform/bondage/currentCost/CurrentCostInterface.sol",
4628 "file": "../../platform/bondage/currentCost/CurrentCostInterface.sol",
4629 "id": 500,
4630 "nodeType": "ImportDirective",
4631 "scope": 806,
4632 "sourceUnit": 8127,
4633 "src": "207:69:7",
4634 "symbolAliases": [],
4635 "unitAlias": ""
4636 },
4637 {
4638 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/platform/Client.sol",
4639 "file": "./Client.sol",
4640 "id": 501,
4641 "nodeType": "ImportDirective",
4642 "scope": 806,
4643 "sourceUnit": 870,
4644 "src": "277:22:7",
4645 "symbolAliases": [],
4646 "unitAlias": ""
4647 },
4648 {
4649 "baseContracts": [
4650 {
4651 "arguments": null,
4652 "baseName": {
4653 "contractScope": null,
4654 "id": 502,
4655 "name": "Ownable",
4656 "nodeType": "UserDefinedTypeName",
4657 "referencedDeclaration": 203,
4658 "src": "325:7:7",
4659 "typeDescriptions": {
4660 "typeIdentifier": "t_contract$_Ownable_$203",
4661 "typeString": "contract Ownable"
4662 }
4663 },
4664 "id": 503,
4665 "nodeType": "InheritanceSpecifier",
4666 "src": "325:7:7"
4667 },
4668 {
4669 "arguments": null,
4670 "baseName": {
4671 "contractScope": null,
4672 "id": 504,
4673 "name": "ClientIntArray",
4674 "nodeType": "UserDefinedTypeName",
4675 "referencedDeclaration": 869,
4676 "src": "334:14:7",
4677 "typeDescriptions": {
4678 "typeIdentifier": "t_contract$_ClientIntArray_$869",
4679 "typeString": "contract ClientIntArray"
4680 }
4681 },
4682 "id": 505,
4683 "nodeType": "InheritanceSpecifier",
4684 "src": "334:14:7"
4685 }
4686 ],
4687 "contractDependencies": [
4688 203,
4689 869
4690 ],
4691 "contractKind": "contract",
4692 "documentation": null,
4693 "fullyImplemented": true,
4694 "id": 805,
4695 "linearizedBaseContracts": [
4696 805,
4697 869,
4698 203
4699 ],
4700 "name": "BTCcontest",
4701 "nodeType": "ContractDefinition",
4702 "nodes": [
4703 {
4704 "constant": false,
4705 "id": 507,
4706 "name": "contest",
4707 "nodeType": "VariableDeclaration",
4708 "scope": 805,
4709 "src": "353:28:7",
4710 "stateVariable": true,
4711 "storageLocation": "default",
4712 "typeDescriptions": {
4713 "typeIdentifier": "t_contract$_SampleContest_$3254",
4714 "typeString": "contract SampleContest"
4715 },
4716 "typeName": {
4717 "contractScope": null,
4718 "id": 506,
4719 "name": "SampleContest",
4720 "nodeType": "UserDefinedTypeName",
4721 "referencedDeclaration": 3254,
4722 "src": "353:13:7",
4723 "typeDescriptions": {
4724 "typeIdentifier": "t_contract$_SampleContest_$3254",
4725 "typeString": "contract SampleContest"
4726 }
4727 },
4728 "value": null,
4729 "visibility": "public"
4730 },
4731 {
4732 "constant": false,
4733 "id": 509,
4734 "name": "coordinator",
4735 "nodeType": "VariableDeclaration",
4736 "scope": 805,
4737 "src": "385:42:7",
4738 "stateVariable": true,
4739 "storageLocation": "default",
4740 "typeDescriptions": {
4741 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
4742 "typeString": "contract ZapCoordinatorInterface"
4743 },
4744 "typeName": {
4745 "contractScope": null,
4746 "id": 508,
4747 "name": "ZapCoordinatorInterface",
4748 "nodeType": "UserDefinedTypeName",
4749 "referencedDeclaration": 493,
4750 "src": "385:23:7",
4751 "typeDescriptions": {
4752 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
4753 "typeString": "contract ZapCoordinatorInterface"
4754 }
4755 },
4756 "value": null,
4757 "visibility": "public"
4758 },
4759 {
4760 "constant": false,
4761 "id": 511,
4762 "name": "oracle",
4763 "nodeType": "VariableDeclaration",
4764 "scope": 805,
4765 "src": "431:21:7",
4766 "stateVariable": true,
4767 "storageLocation": "default",
4768 "typeDescriptions": {
4769 "typeIdentifier": "t_address",
4770 "typeString": "address"
4771 },
4772 "typeName": {
4773 "id": 510,
4774 "name": "address",
4775 "nodeType": "ElementaryTypeName",
4776 "src": "431:7:7",
4777 "typeDescriptions": {
4778 "typeIdentifier": "t_address",
4779 "typeString": "address"
4780 }
4781 },
4782 "value": null,
4783 "visibility": "public"
4784 },
4785 {
4786 "constant": false,
4787 "id": 513,
4788 "name": "query_id",
4789 "nodeType": "VariableDeclaration",
4790 "scope": 805,
4791 "src": "456:23:7",
4792 "stateVariable": true,
4793 "storageLocation": "default",
4794 "typeDescriptions": {
4795 "typeIdentifier": "t_uint256",
4796 "typeString": "uint256"
4797 },
4798 "typeName": {
4799 "id": 512,
4800 "name": "uint256",
4801 "nodeType": "ElementaryTypeName",
4802 "src": "456:7:7",
4803 "typeDescriptions": {
4804 "typeIdentifier": "t_uint256",
4805 "typeString": "uint256"
4806 }
4807 },
4808 "value": null,
4809 "visibility": "public"
4810 },
4811 {
4812 "constant": false,
4813 "id": 515,
4814 "name": "startPrice",
4815 "nodeType": "VariableDeclaration",
4816 "scope": 805,
4817 "src": "483:25:7",
4818 "stateVariable": true,
4819 "storageLocation": "default",
4820 "typeDescriptions": {
4821 "typeIdentifier": "t_uint256",
4822 "typeString": "uint256"
4823 },
4824 "typeName": {
4825 "id": 514,
4826 "name": "uint256",
4827 "nodeType": "ElementaryTypeName",
4828 "src": "483:7:7",
4829 "typeDescriptions": {
4830 "typeIdentifier": "t_uint256",
4831 "typeString": "uint256"
4832 }
4833 },
4834 "value": null,
4835 "visibility": "public"
4836 },
4837 {
4838 "constant": false,
4839 "id": 517,
4840 "name": "upEndpoint",
4841 "nodeType": "VariableDeclaration",
4842 "scope": 805,
4843 "src": "512:25:7",
4844 "stateVariable": true,
4845 "storageLocation": "default",
4846 "typeDescriptions": {
4847 "typeIdentifier": "t_bytes32",
4848 "typeString": "bytes32"
4849 },
4850 "typeName": {
4851 "id": 516,
4852 "name": "bytes32",
4853 "nodeType": "ElementaryTypeName",
4854 "src": "512:7:7",
4855 "typeDescriptions": {
4856 "typeIdentifier": "t_bytes32",
4857 "typeString": "bytes32"
4858 }
4859 },
4860 "value": null,
4861 "visibility": "public"
4862 },
4863 {
4864 "constant": false,
4865 "id": 519,
4866 "name": "downEndpoint",
4867 "nodeType": "VariableDeclaration",
4868 "scope": 805,
4869 "src": "541:27:7",
4870 "stateVariable": true,
4871 "storageLocation": "default",
4872 "typeDescriptions": {
4873 "typeIdentifier": "t_bytes32",
4874 "typeString": "bytes32"
4875 },
4876 "typeName": {
4877 "id": 518,
4878 "name": "bytes32",
4879 "nodeType": "ElementaryTypeName",
4880 "src": "541:7:7",
4881 "typeDescriptions": {
4882 "typeIdentifier": "t_bytes32",
4883 "typeString": "bytes32"
4884 }
4885 },
4886 "value": null,
4887 "visibility": "public"
4888 },
4889 {
4890 "body": {
4891 "id": 608,
4892 "nodeType": "Block",
4893 "src": "706:660:7",
4894 "statements": [
4895 {
4896 "expression": {
4897 "argumentTypes": null,
4898 "id": 535,
4899 "isConstant": false,
4900 "isLValue": false,
4901 "isPure": false,
4902 "lValueRequested": false,
4903 "leftHandSide": {
4904 "argumentTypes": null,
4905 "id": 532,
4906 "name": "oracle",
4907 "nodeType": "Identifier",
4908 "overloadedDeclarations": [],
4909 "referencedDeclaration": 511,
4910 "src": "712:6:7",
4911 "typeDescriptions": {
4912 "typeIdentifier": "t_address",
4913 "typeString": "address"
4914 }
4915 },
4916 "nodeType": "Assignment",
4917 "operator": "=",
4918 "rightHandSide": {
4919 "argumentTypes": null,
4920 "expression": {
4921 "argumentTypes": null,
4922 "id": 533,
4923 "name": "msg",
4924 "nodeType": "Identifier",
4925 "overloadedDeclarations": [],
4926 "referencedDeclaration": 12092,
4927 "src": "721:3:7",
4928 "typeDescriptions": {
4929 "typeIdentifier": "t_magic_message",
4930 "typeString": "msg"
4931 }
4932 },
4933 "id": 534,
4934 "isConstant": false,
4935 "isLValue": false,
4936 "isPure": false,
4937 "lValueRequested": false,
4938 "memberName": "sender",
4939 "nodeType": "MemberAccess",
4940 "referencedDeclaration": null,
4941 "src": "721:10:7",
4942 "typeDescriptions": {
4943 "typeIdentifier": "t_address",
4944 "typeString": "address"
4945 }
4946 },
4947 "src": "712:19:7",
4948 "typeDescriptions": {
4949 "typeIdentifier": "t_address",
4950 "typeString": "address"
4951 }
4952 },
4953 "id": 536,
4954 "nodeType": "ExpressionStatement",
4955 "src": "712:19:7"
4956 },
4957 {
4958 "expression": {
4959 "argumentTypes": null,
4960 "id": 541,
4961 "isConstant": false,
4962 "isLValue": false,
4963 "isPure": false,
4964 "lValueRequested": false,
4965 "leftHandSide": {
4966 "argumentTypes": null,
4967 "id": 537,
4968 "name": "contest",
4969 "nodeType": "Identifier",
4970 "overloadedDeclarations": [],
4971 "referencedDeclaration": 507,
4972 "src": "737:7:7",
4973 "typeDescriptions": {
4974 "typeIdentifier": "t_contract$_SampleContest_$3254",
4975 "typeString": "contract SampleContest"
4976 }
4977 },
4978 "nodeType": "Assignment",
4979 "operator": "=",
4980 "rightHandSide": {
4981 "argumentTypes": null,
4982 "arguments": [
4983 {
4984 "argumentTypes": null,
4985 "id": 539,
4986 "name": "_contest",
4987 "nodeType": "Identifier",
4988 "overloadedDeclarations": [],
4989 "referencedDeclaration": 523,
4990 "src": "761:8:7",
4991 "typeDescriptions": {
4992 "typeIdentifier": "t_address",
4993 "typeString": "address"
4994 }
4995 }
4996 ],
4997 "expression": {
4998 "argumentTypes": [
4999 {
5000 "typeIdentifier": "t_address",
5001 "typeString": "address"
5002 }
5003 ],
5004 "id": 538,
5005 "name": "SampleContest",
5006 "nodeType": "Identifier",
5007 "overloadedDeclarations": [],
5008 "referencedDeclaration": 3254,
5009 "src": "747:13:7",
5010 "typeDescriptions": {
5011 "typeIdentifier": "t_type$_t_contract$_SampleContest_$3254_$",
5012 "typeString": "type(contract SampleContest)"
5013 }
5014 },
5015 "id": 540,
5016 "isConstant": false,
5017 "isLValue": false,
5018 "isPure": false,
5019 "kind": "typeConversion",
5020 "lValueRequested": false,
5021 "names": [],
5022 "nodeType": "FunctionCall",
5023 "src": "747:23:7",
5024 "typeDescriptions": {
5025 "typeIdentifier": "t_contract$_SampleContest_$3254",
5026 "typeString": "contract SampleContest"
5027 }
5028 },
5029 "src": "737:33:7",
5030 "typeDescriptions": {
5031 "typeIdentifier": "t_contract$_SampleContest_$3254",
5032 "typeString": "contract SampleContest"
5033 }
5034 },
5035 "id": 542,
5036 "nodeType": "ExpressionStatement",
5037 "src": "737:33:7"
5038 },
5039 {
5040 "expression": {
5041 "argumentTypes": null,
5042 "id": 545,
5043 "isConstant": false,
5044 "isLValue": false,
5045 "isPure": false,
5046 "lValueRequested": false,
5047 "leftHandSide": {
5048 "argumentTypes": null,
5049 "id": 543,
5050 "name": "startPrice",
5051 "nodeType": "Identifier",
5052 "overloadedDeclarations": [],
5053 "referencedDeclaration": 515,
5054 "src": "776:10:7",
5055 "typeDescriptions": {
5056 "typeIdentifier": "t_uint256",
5057 "typeString": "uint256"
5058 }
5059 },
5060 "nodeType": "Assignment",
5061 "operator": "=",
5062 "rightHandSide": {
5063 "argumentTypes": null,
5064 "id": 544,
5065 "name": "_startPrice",
5066 "nodeType": "Identifier",
5067 "overloadedDeclarations": [],
5068 "referencedDeclaration": 525,
5069 "src": "789:11:7",
5070 "typeDescriptions": {
5071 "typeIdentifier": "t_uint256",
5072 "typeString": "uint256"
5073 }
5074 },
5075 "src": "776:24:7",
5076 "typeDescriptions": {
5077 "typeIdentifier": "t_uint256",
5078 "typeString": "uint256"
5079 }
5080 },
5081 "id": 546,
5082 "nodeType": "ExpressionStatement",
5083 "src": "776:24:7"
5084 },
5085 {
5086 "expression": {
5087 "argumentTypes": null,
5088 "id": 551,
5089 "isConstant": false,
5090 "isLValue": false,
5091 "isPure": false,
5092 "lValueRequested": false,
5093 "leftHandSide": {
5094 "argumentTypes": null,
5095 "id": 547,
5096 "name": "coordinator",
5097 "nodeType": "Identifier",
5098 "overloadedDeclarations": [],
5099 "referencedDeclaration": 509,
5100 "src": "806:11:7",
5101 "typeDescriptions": {
5102 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
5103 "typeString": "contract ZapCoordinatorInterface"
5104 }
5105 },
5106 "nodeType": "Assignment",
5107 "operator": "=",
5108 "rightHandSide": {
5109 "argumentTypes": null,
5110 "arguments": [
5111 {
5112 "argumentTypes": null,
5113 "id": 549,
5114 "name": "_cord",
5115 "nodeType": "Identifier",
5116 "overloadedDeclarations": [],
5117 "referencedDeclaration": 521,
5118 "src": "844:5:7",
5119 "typeDescriptions": {
5120 "typeIdentifier": "t_address",
5121 "typeString": "address"
5122 }
5123 }
5124 ],
5125 "expression": {
5126 "argumentTypes": [
5127 {
5128 "typeIdentifier": "t_address",
5129 "typeString": "address"
5130 }
5131 ],
5132 "id": 548,
5133 "name": "ZapCoordinatorInterface",
5134 "nodeType": "Identifier",
5135 "overloadedDeclarations": [],
5136 "referencedDeclaration": 493,
5137 "src": "820:23:7",
5138 "typeDescriptions": {
5139 "typeIdentifier": "t_type$_t_contract$_ZapCoordinatorInterface_$493_$",
5140 "typeString": "type(contract ZapCoordinatorInterface)"
5141 }
5142 },
5143 "id": 550,
5144 "isConstant": false,
5145 "isLValue": false,
5146 "isPure": false,
5147 "kind": "typeConversion",
5148 "lValueRequested": false,
5149 "names": [],
5150 "nodeType": "FunctionCall",
5151 "src": "820:30:7",
5152 "typeDescriptions": {
5153 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
5154 "typeString": "contract ZapCoordinatorInterface"
5155 }
5156 },
5157 "src": "806:44:7",
5158 "typeDescriptions": {
5159 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
5160 "typeString": "contract ZapCoordinatorInterface"
5161 }
5162 },
5163 "id": 552,
5164 "nodeType": "ExpressionStatement",
5165 "src": "806:44:7"
5166 },
5167 {
5168 "expression": {
5169 "argumentTypes": null,
5170 "arguments": [
5171 {
5172 "argumentTypes": null,
5173 "commonType": {
5174 "typeIdentifier": "t_bool",
5175 "typeString": "bool"
5176 },
5177 "id": 562,
5178 "isConstant": false,
5179 "isLValue": false,
5180 "isPure": false,
5181 "lValueRequested": false,
5182 "leftExpression": {
5183 "argumentTypes": null,
5184 "arguments": [
5185 {
5186 "argumentTypes": null,
5187 "id": 556,
5188 "name": "_upEndpoint",
5189 "nodeType": "Identifier",
5190 "overloadedDeclarations": [],
5191 "referencedDeclaration": 527,
5192 "src": "888:11:7",
5193 "typeDescriptions": {
5194 "typeIdentifier": "t_bytes32",
5195 "typeString": "bytes32"
5196 }
5197 }
5198 ],
5199 "expression": {
5200 "argumentTypes": [
5201 {
5202 "typeIdentifier": "t_bytes32",
5203 "typeString": "bytes32"
5204 }
5205 ],
5206 "expression": {
5207 "argumentTypes": null,
5208 "id": 554,
5209 "name": "contest",
5210 "nodeType": "Identifier",
5211 "overloadedDeclarations": [],
5212 "referencedDeclaration": 507,
5213 "src": "864:7:7",
5214 "typeDescriptions": {
5215 "typeIdentifier": "t_contract$_SampleContest_$3254",
5216 "typeString": "contract SampleContest"
5217 }
5218 },
5219 "id": 555,
5220 "isConstant": false,
5221 "isLValue": false,
5222 "isPure": false,
5223 "lValueRequested": false,
5224 "memberName": "isEndpointValid",
5225 "nodeType": "MemberAccess",
5226 "referencedDeclaration": 3115,
5227 "src": "864:23:7",
5228 "typeDescriptions": {
5229 "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
5230 "typeString": "function (bytes32) view external returns (bool)"
5231 }
5232 },
5233 "id": 557,
5234 "isConstant": false,
5235 "isLValue": false,
5236 "isPure": false,
5237 "kind": "functionCall",
5238 "lValueRequested": false,
5239 "names": [],
5240 "nodeType": "FunctionCall",
5241 "src": "864:36:7",
5242 "typeDescriptions": {
5243 "typeIdentifier": "t_bool",
5244 "typeString": "bool"
5245 }
5246 },
5247 "nodeType": "BinaryOperation",
5248 "operator": "&&",
5249 "rightExpression": {
5250 "argumentTypes": null,
5251 "arguments": [
5252 {
5253 "argumentTypes": null,
5254 "id": 560,
5255 "name": "_downEndpoint",
5256 "nodeType": "Identifier",
5257 "overloadedDeclarations": [],
5258 "referencedDeclaration": 529,
5259 "src": "928:13:7",
5260 "typeDescriptions": {
5261 "typeIdentifier": "t_bytes32",
5262 "typeString": "bytes32"
5263 }
5264 }
5265 ],
5266 "expression": {
5267 "argumentTypes": [
5268 {
5269 "typeIdentifier": "t_bytes32",
5270 "typeString": "bytes32"
5271 }
5272 ],
5273 "expression": {
5274 "argumentTypes": null,
5275 "id": 558,
5276 "name": "contest",
5277 "nodeType": "Identifier",
5278 "overloadedDeclarations": [],
5279 "referencedDeclaration": 507,
5280 "src": "904:7:7",
5281 "typeDescriptions": {
5282 "typeIdentifier": "t_contract$_SampleContest_$3254",
5283 "typeString": "contract SampleContest"
5284 }
5285 },
5286 "id": 559,
5287 "isConstant": false,
5288 "isLValue": false,
5289 "isPure": false,
5290 "lValueRequested": false,
5291 "memberName": "isEndpointValid",
5292 "nodeType": "MemberAccess",
5293 "referencedDeclaration": 3115,
5294 "src": "904:23:7",
5295 "typeDescriptions": {
5296 "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
5297 "typeString": "function (bytes32) view external returns (bool)"
5298 }
5299 },
5300 "id": 561,
5301 "isConstant": false,
5302 "isLValue": false,
5303 "isPure": false,
5304 "kind": "functionCall",
5305 "lValueRequested": false,
5306 "names": [],
5307 "nodeType": "FunctionCall",
5308 "src": "904:38:7",
5309 "typeDescriptions": {
5310 "typeIdentifier": "t_bool",
5311 "typeString": "bool"
5312 }
5313 },
5314 "src": "864:78:7",
5315 "typeDescriptions": {
5316 "typeIdentifier": "t_bool",
5317 "typeString": "bool"
5318 }
5319 },
5320 {
5321 "argumentTypes": null,
5322 "hexValue": "456e64706f696e747320617265206e6f742076616c6964",
5323 "id": 563,
5324 "isConstant": false,
5325 "isLValue": false,
5326 "isPure": true,
5327 "kind": "string",
5328 "lValueRequested": false,
5329 "nodeType": "Literal",
5330 "src": "943:25:7",
5331 "subdenomination": null,
5332 "typeDescriptions": {
5333 "typeIdentifier": "t_stringliteral_2efdb0d543369f63958200ea12641e675b0ff56376f4124bdaafbf97e5ae8dfb",
5334 "typeString": "literal_string \"Endpoints are not valid\""
5335 },
5336 "value": "Endpoints are not valid"
5337 }
5338 ],
5339 "expression": {
5340 "argumentTypes": [
5341 {
5342 "typeIdentifier": "t_bool",
5343 "typeString": "bool"
5344 },
5345 {
5346 "typeIdentifier": "t_stringliteral_2efdb0d543369f63958200ea12641e675b0ff56376f4124bdaafbf97e5ae8dfb",
5347 "typeString": "literal_string \"Endpoints are not valid\""
5348 }
5349 ],
5350 "id": 553,
5351 "name": "require",
5352 "nodeType": "Identifier",
5353 "overloadedDeclarations": [
5354 12095,
5355 12096
5356 ],
5357 "referencedDeclaration": 12096,
5358 "src": "856:7:7",
5359 "typeDescriptions": {
5360 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
5361 "typeString": "function (bool,string memory) pure"
5362 }
5363 },
5364 "id": 564,
5365 "isConstant": false,
5366 "isLValue": false,
5367 "isPure": false,
5368 "kind": "functionCall",
5369 "lValueRequested": false,
5370 "names": [],
5371 "nodeType": "FunctionCall",
5372 "src": "856:113:7",
5373 "typeDescriptions": {
5374 "typeIdentifier": "t_tuple$__$",
5375 "typeString": "tuple()"
5376 }
5377 },
5378 "id": 565,
5379 "nodeType": "ExpressionStatement",
5380 "src": "856:113:7"
5381 },
5382 {
5383 "expression": {
5384 "argumentTypes": null,
5385 "id": 568,
5386 "isConstant": false,
5387 "isLValue": false,
5388 "isPure": false,
5389 "lValueRequested": false,
5390 "leftHandSide": {
5391 "argumentTypes": null,
5392 "id": 566,
5393 "name": "upEndpoint",
5394 "nodeType": "Identifier",
5395 "overloadedDeclarations": [],
5396 "referencedDeclaration": 517,
5397 "src": "975:10:7",
5398 "typeDescriptions": {
5399 "typeIdentifier": "t_bytes32",
5400 "typeString": "bytes32"
5401 }
5402 },
5403 "nodeType": "Assignment",
5404 "operator": "=",
5405 "rightHandSide": {
5406 "argumentTypes": null,
5407 "id": 567,
5408 "name": "_upEndpoint",
5409 "nodeType": "Identifier",
5410 "overloadedDeclarations": [],
5411 "referencedDeclaration": 527,
5412 "src": "988:11:7",
5413 "typeDescriptions": {
5414 "typeIdentifier": "t_bytes32",
5415 "typeString": "bytes32"
5416 }
5417 },
5418 "src": "975:24:7",
5419 "typeDescriptions": {
5420 "typeIdentifier": "t_bytes32",
5421 "typeString": "bytes32"
5422 }
5423 },
5424 "id": 569,
5425 "nodeType": "ExpressionStatement",
5426 "src": "975:24:7"
5427 },
5428 {
5429 "expression": {
5430 "argumentTypes": null,
5431 "id": 572,
5432 "isConstant": false,
5433 "isLValue": false,
5434 "isPure": false,
5435 "lValueRequested": false,
5436 "leftHandSide": {
5437 "argumentTypes": null,
5438 "id": 570,
5439 "name": "downEndpoint",
5440 "nodeType": "Identifier",
5441 "overloadedDeclarations": [],
5442 "referencedDeclaration": 519,
5443 "src": "1005:12:7",
5444 "typeDescriptions": {
5445 "typeIdentifier": "t_bytes32",
5446 "typeString": "bytes32"
5447 }
5448 },
5449 "nodeType": "Assignment",
5450 "operator": "=",
5451 "rightHandSide": {
5452 "argumentTypes": null,
5453 "id": 571,
5454 "name": "_downEndpoint",
5455 "nodeType": "Identifier",
5456 "overloadedDeclarations": [],
5457 "referencedDeclaration": 529,
5458 "src": "1020:13:7",
5459 "typeDescriptions": {
5460 "typeIdentifier": "t_bytes32",
5461 "typeString": "bytes32"
5462 }
5463 },
5464 "src": "1005:28:7",
5465 "typeDescriptions": {
5466 "typeIdentifier": "t_bytes32",
5467 "typeString": "bytes32"
5468 }
5469 },
5470 "id": 573,
5471 "nodeType": "ExpressionStatement",
5472 "src": "1005:28:7"
5473 },
5474 {
5475 "assignments": [
5476 575
5477 ],
5478 "declarations": [
5479 {
5480 "constant": false,
5481 "id": 575,
5482 "name": "bondageAddress",
5483 "nodeType": "VariableDeclaration",
5484 "scope": 609,
5485 "src": "1039:22:7",
5486 "stateVariable": false,
5487 "storageLocation": "default",
5488 "typeDescriptions": {
5489 "typeIdentifier": "t_address",
5490 "typeString": "address"
5491 },
5492 "typeName": {
5493 "id": 574,
5494 "name": "address",
5495 "nodeType": "ElementaryTypeName",
5496 "src": "1039:7:7",
5497 "typeDescriptions": {
5498 "typeIdentifier": "t_address",
5499 "typeString": "address"
5500 }
5501 },
5502 "value": null,
5503 "visibility": "internal"
5504 }
5505 ],
5506 "id": 580,
5507 "initialValue": {
5508 "argumentTypes": null,
5509 "arguments": [
5510 {
5511 "argumentTypes": null,
5512 "hexValue": "424f4e44414745",
5513 "id": 578,
5514 "isConstant": false,
5515 "isLValue": false,
5516 "isPure": true,
5517 "kind": "string",
5518 "lValueRequested": false,
5519 "nodeType": "Literal",
5520 "src": "1088:9:7",
5521 "subdenomination": null,
5522 "typeDescriptions": {
5523 "typeIdentifier": "t_stringliteral_8db6e752c473cf27fd950e9b9ac06384370d511fb552ce5f96812082c602436b",
5524 "typeString": "literal_string \"BONDAGE\""
5525 },
5526 "value": "BONDAGE"
5527 }
5528 ],
5529 "expression": {
5530 "argumentTypes": [
5531 {
5532 "typeIdentifier": "t_stringliteral_8db6e752c473cf27fd950e9b9ac06384370d511fb552ce5f96812082c602436b",
5533 "typeString": "literal_string \"BONDAGE\""
5534 }
5535 ],
5536 "expression": {
5537 "argumentTypes": null,
5538 "id": 576,
5539 "name": "coordinator",
5540 "nodeType": "Identifier",
5541 "overloadedDeclarations": [],
5542 "referencedDeclaration": 509,
5543 "src": "1064:11:7",
5544 "typeDescriptions": {
5545 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
5546 "typeString": "contract ZapCoordinatorInterface"
5547 }
5548 },
5549 "id": 577,
5550 "isConstant": false,
5551 "isLValue": false,
5552 "isPure": false,
5553 "lValueRequested": false,
5554 "memberName": "getContract",
5555 "nodeType": "MemberAccess",
5556 "referencedDeclaration": 489,
5557 "src": "1064:23:7",
5558 "typeDescriptions": {
5559 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
5560 "typeString": "function (string memory) view external returns (address)"
5561 }
5562 },
5563 "id": 579,
5564 "isConstant": false,
5565 "isLValue": false,
5566 "isPure": false,
5567 "kind": "functionCall",
5568 "lValueRequested": false,
5569 "names": [],
5570 "nodeType": "FunctionCall",
5571 "src": "1064:34:7",
5572 "typeDescriptions": {
5573 "typeIdentifier": "t_address",
5574 "typeString": "address"
5575 }
5576 },
5577 "nodeType": "VariableDeclarationStatement",
5578 "src": "1039:59:7"
5579 },
5580 {
5581 "assignments": [
5582 582
5583 ],
5584 "declarations": [
5585 {
5586 "constant": false,
5587 "id": 582,
5588 "name": "bondage",
5589 "nodeType": "VariableDeclaration",
5590 "scope": 609,
5591 "src": "1104:24:7",
5592 "stateVariable": false,
5593 "storageLocation": "default",
5594 "typeDescriptions": {
5595 "typeIdentifier": "t_contract$_BondageInterface_$7926",
5596 "typeString": "contract BondageInterface"
5597 },
5598 "typeName": {
5599 "contractScope": null,
5600 "id": 581,
5601 "name": "BondageInterface",
5602 "nodeType": "UserDefinedTypeName",
5603 "referencedDeclaration": 7926,
5604 "src": "1104:16:7",
5605 "typeDescriptions": {
5606 "typeIdentifier": "t_contract$_BondageInterface_$7926",
5607 "typeString": "contract BondageInterface"
5608 }
5609 },
5610 "value": null,
5611 "visibility": "internal"
5612 }
5613 ],
5614 "id": 586,
5615 "initialValue": {
5616 "argumentTypes": null,
5617 "arguments": [
5618 {
5619 "argumentTypes": null,
5620 "id": 584,
5621 "name": "bondageAddress",
5622 "nodeType": "Identifier",
5623 "overloadedDeclarations": [],
5624 "referencedDeclaration": 575,
5625 "src": "1148:14:7",
5626 "typeDescriptions": {
5627 "typeIdentifier": "t_address",
5628 "typeString": "address"
5629 }
5630 }
5631 ],
5632 "expression": {
5633 "argumentTypes": [
5634 {
5635 "typeIdentifier": "t_address",
5636 "typeString": "address"
5637 }
5638 ],
5639 "id": 583,
5640 "name": "BondageInterface",
5641 "nodeType": "Identifier",
5642 "overloadedDeclarations": [],
5643 "referencedDeclaration": 7926,
5644 "src": "1131:16:7",
5645 "typeDescriptions": {
5646 "typeIdentifier": "t_type$_t_contract$_BondageInterface_$7926_$",
5647 "typeString": "type(contract BondageInterface)"
5648 }
5649 },
5650 "id": 585,
5651 "isConstant": false,
5652 "isLValue": false,
5653 "isPure": false,
5654 "kind": "typeConversion",
5655 "lValueRequested": false,
5656 "names": [],
5657 "nodeType": "FunctionCall",
5658 "src": "1131:32:7",
5659 "typeDescriptions": {
5660 "typeIdentifier": "t_contract$_BondageInterface_$7926",
5661 "typeString": "contract BondageInterface"
5662 }
5663 },
5664 "nodeType": "VariableDeclarationStatement",
5665 "src": "1104:59:7"
5666 },
5667 {
5668 "assignments": [
5669 588
5670 ],
5671 "declarations": [
5672 {
5673 "constant": false,
5674 "id": 588,
5675 "name": "reserveToken",
5676 "nodeType": "VariableDeclaration",
5677 "scope": 609,
5678 "src": "1169:34:7",
5679 "stateVariable": false,
5680 "storageLocation": "default",
5681 "typeDescriptions": {
5682 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
5683 "typeString": "contract FactoryTokenInterface"
5684 },
5685 "typeName": {
5686 "contractScope": null,
5687 "id": 587,
5688 "name": "FactoryTokenInterface",
5689 "nodeType": "UserDefinedTypeName",
5690 "referencedDeclaration": 5198,
5691 "src": "1169:21:7",
5692 "typeDescriptions": {
5693 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
5694 "typeString": "contract FactoryTokenInterface"
5695 }
5696 },
5697 "value": null,
5698 "visibility": "internal"
5699 }
5700 ],
5701 "id": 595,
5702 "initialValue": {
5703 "argumentTypes": null,
5704 "arguments": [
5705 {
5706 "argumentTypes": null,
5707 "arguments": [
5708 {
5709 "argumentTypes": null,
5710 "hexValue": "5a41505f544f4b454e",
5711 "id": 592,
5712 "isConstant": false,
5713 "isLValue": false,
5714 "isPure": true,
5715 "kind": "string",
5716 "lValueRequested": false,
5717 "nodeType": "Literal",
5718 "src": "1252:11:7",
5719 "subdenomination": null,
5720 "typeDescriptions": {
5721 "typeIdentifier": "t_stringliteral_6975cffecb118e9915e5f4f2e0c6004a18c164faac759fa60fe06a56a4a22ba1",
5722 "typeString": "literal_string \"ZAP_TOKEN\""
5723 },
5724 "value": "ZAP_TOKEN"
5725 }
5726 ],
5727 "expression": {
5728 "argumentTypes": [
5729 {
5730 "typeIdentifier": "t_stringliteral_6975cffecb118e9915e5f4f2e0c6004a18c164faac759fa60fe06a56a4a22ba1",
5731 "typeString": "literal_string \"ZAP_TOKEN\""
5732 }
5733 ],
5734 "expression": {
5735 "argumentTypes": null,
5736 "id": 590,
5737 "name": "coordinator",
5738 "nodeType": "Identifier",
5739 "overloadedDeclarations": [],
5740 "referencedDeclaration": 509,
5741 "src": "1228:11:7",
5742 "typeDescriptions": {
5743 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
5744 "typeString": "contract ZapCoordinatorInterface"
5745 }
5746 },
5747 "id": 591,
5748 "isConstant": false,
5749 "isLValue": false,
5750 "isPure": false,
5751 "lValueRequested": false,
5752 "memberName": "getContract",
5753 "nodeType": "MemberAccess",
5754 "referencedDeclaration": 489,
5755 "src": "1228:23:7",
5756 "typeDescriptions": {
5757 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
5758 "typeString": "function (string memory) view external returns (address)"
5759 }
5760 },
5761 "id": 593,
5762 "isConstant": false,
5763 "isLValue": false,
5764 "isPure": false,
5765 "kind": "functionCall",
5766 "lValueRequested": false,
5767 "names": [],
5768 "nodeType": "FunctionCall",
5769 "src": "1228:36:7",
5770 "typeDescriptions": {
5771 "typeIdentifier": "t_address",
5772 "typeString": "address"
5773 }
5774 }
5775 ],
5776 "expression": {
5777 "argumentTypes": [
5778 {
5779 "typeIdentifier": "t_address",
5780 "typeString": "address"
5781 }
5782 ],
5783 "id": 589,
5784 "name": "FactoryTokenInterface",
5785 "nodeType": "Identifier",
5786 "overloadedDeclarations": [],
5787 "referencedDeclaration": 5198,
5788 "src": "1206:21:7",
5789 "typeDescriptions": {
5790 "typeIdentifier": "t_type$_t_contract$_FactoryTokenInterface_$5198_$",
5791 "typeString": "type(contract FactoryTokenInterface)"
5792 }
5793 },
5794 "id": 594,
5795 "isConstant": false,
5796 "isLValue": false,
5797 "isPure": false,
5798 "kind": "typeConversion",
5799 "lValueRequested": false,
5800 "names": [],
5801 "nodeType": "FunctionCall",
5802 "src": "1206:59:7",
5803 "typeDescriptions": {
5804 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
5805 "typeString": "contract FactoryTokenInterface"
5806 }
5807 },
5808 "nodeType": "VariableDeclarationStatement",
5809 "src": "1169:96:7"
5810 },
5811 {
5812 "expression": {
5813 "argumentTypes": null,
5814 "arguments": [
5815 {
5816 "argumentTypes": null,
5817 "arguments": [
5818 {
5819 "argumentTypes": null,
5820 "id": 600,
5821 "name": "bondageAddress",
5822 "nodeType": "Identifier",
5823 "overloadedDeclarations": [],
5824 "referencedDeclaration": 575,
5825 "src": "1332:14:7",
5826 "typeDescriptions": {
5827 "typeIdentifier": "t_address",
5828 "typeString": "address"
5829 }
5830 }
5831 ],
5832 "expression": {
5833 "argumentTypes": [
5834 {
5835 "typeIdentifier": "t_address",
5836 "typeString": "address"
5837 }
5838 ],
5839 "id": 599,
5840 "isConstant": false,
5841 "isLValue": false,
5842 "isPure": true,
5843 "lValueRequested": false,
5844 "nodeType": "ElementaryTypeNameExpression",
5845 "src": "1324:7:7",
5846 "typeDescriptions": {
5847 "typeIdentifier": "t_type$_t_address_$",
5848 "typeString": "type(address)"
5849 },
5850 "typeName": "address"
5851 },
5852 "id": 601,
5853 "isConstant": false,
5854 "isLValue": false,
5855 "isPure": false,
5856 "kind": "typeConversion",
5857 "lValueRequested": false,
5858 "names": [],
5859 "nodeType": "FunctionCall",
5860 "src": "1324:23:7",
5861 "typeDescriptions": {
5862 "typeIdentifier": "t_address",
5863 "typeString": "address"
5864 }
5865 },
5866 {
5867 "argumentTypes": null,
5868 "id": 605,
5869 "isConstant": false,
5870 "isLValue": false,
5871 "isPure": true,
5872 "lValueRequested": false,
5873 "nodeType": "UnaryOperation",
5874 "operator": "~",
5875 "prefix": true,
5876 "src": "1348:11:7",
5877 "subExpression": {
5878 "argumentTypes": null,
5879 "arguments": [
5880 {
5881 "argumentTypes": null,
5882 "hexValue": "30",
5883 "id": 603,
5884 "isConstant": false,
5885 "isLValue": false,
5886 "isPure": true,
5887 "kind": "number",
5888 "lValueRequested": false,
5889 "nodeType": "Literal",
5890 "src": "1357:1:7",
5891 "subdenomination": null,
5892 "typeDescriptions": {
5893 "typeIdentifier": "t_rational_0_by_1",
5894 "typeString": "int_const 0"
5895 },
5896 "value": "0"
5897 }
5898 ],
5899 "expression": {
5900 "argumentTypes": [
5901 {
5902 "typeIdentifier": "t_rational_0_by_1",
5903 "typeString": "int_const 0"
5904 }
5905 ],
5906 "id": 602,
5907 "isConstant": false,
5908 "isLValue": false,
5909 "isPure": true,
5910 "lValueRequested": false,
5911 "nodeType": "ElementaryTypeNameExpression",
5912 "src": "1349:7:7",
5913 "typeDescriptions": {
5914 "typeIdentifier": "t_type$_t_uint256_$",
5915 "typeString": "type(uint256)"
5916 },
5917 "typeName": "uint256"
5918 },
5919 "id": 604,
5920 "isConstant": false,
5921 "isLValue": false,
5922 "isPure": true,
5923 "kind": "typeConversion",
5924 "lValueRequested": false,
5925 "names": [],
5926 "nodeType": "FunctionCall",
5927 "src": "1349:10:7",
5928 "typeDescriptions": {
5929 "typeIdentifier": "t_uint256",
5930 "typeString": "uint256"
5931 }
5932 },
5933 "typeDescriptions": {
5934 "typeIdentifier": "t_uint256",
5935 "typeString": "uint256"
5936 }
5937 }
5938 ],
5939 "expression": {
5940 "argumentTypes": [
5941 {
5942 "typeIdentifier": "t_address",
5943 "typeString": "address"
5944 },
5945 {
5946 "typeIdentifier": "t_uint256",
5947 "typeString": "uint256"
5948 }
5949 ],
5950 "expression": {
5951 "argumentTypes": null,
5952 "id": 596,
5953 "name": "reserveToken",
5954 "nodeType": "Identifier",
5955 "overloadedDeclarations": [],
5956 "referencedDeclaration": 588,
5957 "src": "1303:12:7",
5958 "typeDescriptions": {
5959 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
5960 "typeString": "contract FactoryTokenInterface"
5961 }
5962 },
5963 "id": 598,
5964 "isConstant": false,
5965 "isLValue": false,
5966 "isPure": false,
5967 "lValueRequested": false,
5968 "memberName": "approve",
5969 "nodeType": "MemberAccess",
5970 "referencedDeclaration": 5172,
5971 "src": "1303:20:7",
5972 "typeDescriptions": {
5973 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
5974 "typeString": "function (address,uint256) external returns (bool)"
5975 }
5976 },
5977 "id": 606,
5978 "isConstant": false,
5979 "isLValue": false,
5980 "isPure": false,
5981 "kind": "functionCall",
5982 "lValueRequested": false,
5983 "names": [],
5984 "nodeType": "FunctionCall",
5985 "src": "1303:57:7",
5986 "typeDescriptions": {
5987 "typeIdentifier": "t_bool",
5988 "typeString": "bool"
5989 }
5990 },
5991 "id": 607,
5992 "nodeType": "ExpressionStatement",
5993 "src": "1303:57:7"
5994 }
5995 ]
5996 },
5997 "documentation": null,
5998 "id": 609,
5999 "implemented": true,
6000 "isConstructor": true,
6001 "isDeclaredConst": false,
6002 "modifiers": [],
6003 "name": "",
6004 "nodeType": "FunctionDefinition",
6005 "parameters": {
6006 "id": 530,
6007 "nodeType": "ParameterList",
6008 "parameters": [
6009 {
6010 "constant": false,
6011 "id": 521,
6012 "name": "_cord",
6013 "nodeType": "VariableDeclaration",
6014 "scope": 609,
6015 "src": "590:13:7",
6016 "stateVariable": false,
6017 "storageLocation": "default",
6018 "typeDescriptions": {
6019 "typeIdentifier": "t_address",
6020 "typeString": "address"
6021 },
6022 "typeName": {
6023 "id": 520,
6024 "name": "address",
6025 "nodeType": "ElementaryTypeName",
6026 "src": "590:7:7",
6027 "typeDescriptions": {
6028 "typeIdentifier": "t_address",
6029 "typeString": "address"
6030 }
6031 },
6032 "value": null,
6033 "visibility": "internal"
6034 },
6035 {
6036 "constant": false,
6037 "id": 523,
6038 "name": "_contest",
6039 "nodeType": "VariableDeclaration",
6040 "scope": 609,
6041 "src": "609:16:7",
6042 "stateVariable": false,
6043 "storageLocation": "default",
6044 "typeDescriptions": {
6045 "typeIdentifier": "t_address",
6046 "typeString": "address"
6047 },
6048 "typeName": {
6049 "id": 522,
6050 "name": "address",
6051 "nodeType": "ElementaryTypeName",
6052 "src": "609:7:7",
6053 "typeDescriptions": {
6054 "typeIdentifier": "t_address",
6055 "typeString": "address"
6056 }
6057 },
6058 "value": null,
6059 "visibility": "internal"
6060 },
6061 {
6062 "constant": false,
6063 "id": 525,
6064 "name": "_startPrice",
6065 "nodeType": "VariableDeclaration",
6066 "scope": 609,
6067 "src": "631:19:7",
6068 "stateVariable": false,
6069 "storageLocation": "default",
6070 "typeDescriptions": {
6071 "typeIdentifier": "t_uint256",
6072 "typeString": "uint256"
6073 },
6074 "typeName": {
6075 "id": 524,
6076 "name": "uint256",
6077 "nodeType": "ElementaryTypeName",
6078 "src": "631:7:7",
6079 "typeDescriptions": {
6080 "typeIdentifier": "t_uint256",
6081 "typeString": "uint256"
6082 }
6083 },
6084 "value": null,
6085 "visibility": "internal"
6086 },
6087 {
6088 "constant": false,
6089 "id": 527,
6090 "name": "_upEndpoint",
6091 "nodeType": "VariableDeclaration",
6092 "scope": 609,
6093 "src": "656:19:7",
6094 "stateVariable": false,
6095 "storageLocation": "default",
6096 "typeDescriptions": {
6097 "typeIdentifier": "t_bytes32",
6098 "typeString": "bytes32"
6099 },
6100 "typeName": {
6101 "id": 526,
6102 "name": "bytes32",
6103 "nodeType": "ElementaryTypeName",
6104 "src": "656:7:7",
6105 "typeDescriptions": {
6106 "typeIdentifier": "t_bytes32",
6107 "typeString": "bytes32"
6108 }
6109 },
6110 "value": null,
6111 "visibility": "internal"
6112 },
6113 {
6114 "constant": false,
6115 "id": 529,
6116 "name": "_downEndpoint",
6117 "nodeType": "VariableDeclaration",
6118 "scope": 609,
6119 "src": "681:21:7",
6120 "stateVariable": false,
6121 "storageLocation": "default",
6122 "typeDescriptions": {
6123 "typeIdentifier": "t_bytes32",
6124 "typeString": "bytes32"
6125 },
6126 "typeName": {
6127 "id": 528,
6128 "name": "bytes32",
6129 "nodeType": "ElementaryTypeName",
6130 "src": "681:7:7",
6131 "typeDescriptions": {
6132 "typeIdentifier": "t_bytes32",
6133 "typeString": "bytes32"
6134 }
6135 },
6136 "value": null,
6137 "visibility": "internal"
6138 }
6139 ],
6140 "src": "584:122:7"
6141 },
6142 "payable": false,
6143 "returnParameters": {
6144 "id": 531,
6145 "nodeType": "ParameterList",
6146 "parameters": [],
6147 "src": "706:0:7"
6148 },
6149 "scope": 805,
6150 "src": "573:793:7",
6151 "stateMutability": "nonpayable",
6152 "superFunction": null,
6153 "visibility": "public"
6154 },
6155 {
6156 "body": {
6157 "id": 652,
6158 "nodeType": "Block",
6159 "src": "1466:334:7",
6160 "statements": [
6161 {
6162 "assignments": [
6163 621
6164 ],
6165 "declarations": [
6166 {
6167 "constant": false,
6168 "id": 621,
6169 "name": "bondageAddress",
6170 "nodeType": "VariableDeclaration",
6171 "scope": 653,
6172 "src": "1472:22:7",
6173 "stateVariable": false,
6174 "storageLocation": "default",
6175 "typeDescriptions": {
6176 "typeIdentifier": "t_address",
6177 "typeString": "address"
6178 },
6179 "typeName": {
6180 "id": 620,
6181 "name": "address",
6182 "nodeType": "ElementaryTypeName",
6183 "src": "1472:7:7",
6184 "typeDescriptions": {
6185 "typeIdentifier": "t_address",
6186 "typeString": "address"
6187 }
6188 },
6189 "value": null,
6190 "visibility": "internal"
6191 }
6192 ],
6193 "id": 626,
6194 "initialValue": {
6195 "argumentTypes": null,
6196 "arguments": [
6197 {
6198 "argumentTypes": null,
6199 "hexValue": "424f4e44414745",
6200 "id": 624,
6201 "isConstant": false,
6202 "isLValue": false,
6203 "isPure": true,
6204 "kind": "string",
6205 "lValueRequested": false,
6206 "nodeType": "Literal",
6207 "src": "1521:9:7",
6208 "subdenomination": null,
6209 "typeDescriptions": {
6210 "typeIdentifier": "t_stringliteral_8db6e752c473cf27fd950e9b9ac06384370d511fb552ce5f96812082c602436b",
6211 "typeString": "literal_string \"BONDAGE\""
6212 },
6213 "value": "BONDAGE"
6214 }
6215 ],
6216 "expression": {
6217 "argumentTypes": [
6218 {
6219 "typeIdentifier": "t_stringliteral_8db6e752c473cf27fd950e9b9ac06384370d511fb552ce5f96812082c602436b",
6220 "typeString": "literal_string \"BONDAGE\""
6221 }
6222 ],
6223 "expression": {
6224 "argumentTypes": null,
6225 "id": 622,
6226 "name": "coordinator",
6227 "nodeType": "Identifier",
6228 "overloadedDeclarations": [],
6229 "referencedDeclaration": 509,
6230 "src": "1497:11:7",
6231 "typeDescriptions": {
6232 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
6233 "typeString": "contract ZapCoordinatorInterface"
6234 }
6235 },
6236 "id": 623,
6237 "isConstant": false,
6238 "isLValue": false,
6239 "isPure": false,
6240 "lValueRequested": false,
6241 "memberName": "getContract",
6242 "nodeType": "MemberAccess",
6243 "referencedDeclaration": 489,
6244 "src": "1497:23:7",
6245 "typeDescriptions": {
6246 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
6247 "typeString": "function (string memory) view external returns (address)"
6248 }
6249 },
6250 "id": 625,
6251 "isConstant": false,
6252 "isLValue": false,
6253 "isPure": false,
6254 "kind": "functionCall",
6255 "lValueRequested": false,
6256 "names": [],
6257 "nodeType": "FunctionCall",
6258 "src": "1497:34:7",
6259 "typeDescriptions": {
6260 "typeIdentifier": "t_address",
6261 "typeString": "address"
6262 }
6263 },
6264 "nodeType": "VariableDeclarationStatement",
6265 "src": "1472:59:7"
6266 },
6267 {
6268 "assignments": [
6269 628
6270 ],
6271 "declarations": [
6272 {
6273 "constant": false,
6274 "id": 628,
6275 "name": "bondage",
6276 "nodeType": "VariableDeclaration",
6277 "scope": 653,
6278 "src": "1537:24:7",
6279 "stateVariable": false,
6280 "storageLocation": "default",
6281 "typeDescriptions": {
6282 "typeIdentifier": "t_contract$_BondageInterface_$7926",
6283 "typeString": "contract BondageInterface"
6284 },
6285 "typeName": {
6286 "contractScope": null,
6287 "id": 627,
6288 "name": "BondageInterface",
6289 "nodeType": "UserDefinedTypeName",
6290 "referencedDeclaration": 7926,
6291 "src": "1537:16:7",
6292 "typeDescriptions": {
6293 "typeIdentifier": "t_contract$_BondageInterface_$7926",
6294 "typeString": "contract BondageInterface"
6295 }
6296 },
6297 "value": null,
6298 "visibility": "internal"
6299 }
6300 ],
6301 "id": 632,
6302 "initialValue": {
6303 "argumentTypes": null,
6304 "arguments": [
6305 {
6306 "argumentTypes": null,
6307 "id": 630,
6308 "name": "bondageAddress",
6309 "nodeType": "Identifier",
6310 "overloadedDeclarations": [],
6311 "referencedDeclaration": 621,
6312 "src": "1581:14:7",
6313 "typeDescriptions": {
6314 "typeIdentifier": "t_address",
6315 "typeString": "address"
6316 }
6317 }
6318 ],
6319 "expression": {
6320 "argumentTypes": [
6321 {
6322 "typeIdentifier": "t_address",
6323 "typeString": "address"
6324 }
6325 ],
6326 "id": 629,
6327 "name": "BondageInterface",
6328 "nodeType": "Identifier",
6329 "overloadedDeclarations": [],
6330 "referencedDeclaration": 7926,
6331 "src": "1564:16:7",
6332 "typeDescriptions": {
6333 "typeIdentifier": "t_type$_t_contract$_BondageInterface_$7926_$",
6334 "typeString": "type(contract BondageInterface)"
6335 }
6336 },
6337 "id": 631,
6338 "isConstant": false,
6339 "isLValue": false,
6340 "isPure": false,
6341 "kind": "typeConversion",
6342 "lValueRequested": false,
6343 "names": [],
6344 "nodeType": "FunctionCall",
6345 "src": "1564:32:7",
6346 "typeDescriptions": {
6347 "typeIdentifier": "t_contract$_BondageInterface_$7926",
6348 "typeString": "contract BondageInterface"
6349 }
6350 },
6351 "nodeType": "VariableDeclarationStatement",
6352 "src": "1537:59:7"
6353 },
6354 {
6355 "assignments": [
6356 634
6357 ],
6358 "declarations": [
6359 {
6360 "constant": false,
6361 "id": 634,
6362 "name": "reserveToken",
6363 "nodeType": "VariableDeclaration",
6364 "scope": 653,
6365 "src": "1602:34:7",
6366 "stateVariable": false,
6367 "storageLocation": "default",
6368 "typeDescriptions": {
6369 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
6370 "typeString": "contract FactoryTokenInterface"
6371 },
6372 "typeName": {
6373 "contractScope": null,
6374 "id": 633,
6375 "name": "FactoryTokenInterface",
6376 "nodeType": "UserDefinedTypeName",
6377 "referencedDeclaration": 5198,
6378 "src": "1602:21:7",
6379 "typeDescriptions": {
6380 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
6381 "typeString": "contract FactoryTokenInterface"
6382 }
6383 },
6384 "value": null,
6385 "visibility": "internal"
6386 }
6387 ],
6388 "id": 641,
6389 "initialValue": {
6390 "argumentTypes": null,
6391 "arguments": [
6392 {
6393 "argumentTypes": null,
6394 "arguments": [
6395 {
6396 "argumentTypes": null,
6397 "hexValue": "5a41505f544f4b454e",
6398 "id": 638,
6399 "isConstant": false,
6400 "isLValue": false,
6401 "isPure": true,
6402 "kind": "string",
6403 "lValueRequested": false,
6404 "nodeType": "Literal",
6405 "src": "1685:11:7",
6406 "subdenomination": null,
6407 "typeDescriptions": {
6408 "typeIdentifier": "t_stringliteral_6975cffecb118e9915e5f4f2e0c6004a18c164faac759fa60fe06a56a4a22ba1",
6409 "typeString": "literal_string \"ZAP_TOKEN\""
6410 },
6411 "value": "ZAP_TOKEN"
6412 }
6413 ],
6414 "expression": {
6415 "argumentTypes": [
6416 {
6417 "typeIdentifier": "t_stringliteral_6975cffecb118e9915e5f4f2e0c6004a18c164faac759fa60fe06a56a4a22ba1",
6418 "typeString": "literal_string \"ZAP_TOKEN\""
6419 }
6420 ],
6421 "expression": {
6422 "argumentTypes": null,
6423 "id": 636,
6424 "name": "coordinator",
6425 "nodeType": "Identifier",
6426 "overloadedDeclarations": [],
6427 "referencedDeclaration": 509,
6428 "src": "1661:11:7",
6429 "typeDescriptions": {
6430 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
6431 "typeString": "contract ZapCoordinatorInterface"
6432 }
6433 },
6434 "id": 637,
6435 "isConstant": false,
6436 "isLValue": false,
6437 "isPure": false,
6438 "lValueRequested": false,
6439 "memberName": "getContract",
6440 "nodeType": "MemberAccess",
6441 "referencedDeclaration": 489,
6442 "src": "1661:23:7",
6443 "typeDescriptions": {
6444 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
6445 "typeString": "function (string memory) view external returns (address)"
6446 }
6447 },
6448 "id": 639,
6449 "isConstant": false,
6450 "isLValue": false,
6451 "isPure": false,
6452 "kind": "functionCall",
6453 "lValueRequested": false,
6454 "names": [],
6455 "nodeType": "FunctionCall",
6456 "src": "1661:36:7",
6457 "typeDescriptions": {
6458 "typeIdentifier": "t_address",
6459 "typeString": "address"
6460 }
6461 }
6462 ],
6463 "expression": {
6464 "argumentTypes": [
6465 {
6466 "typeIdentifier": "t_address",
6467 "typeString": "address"
6468 }
6469 ],
6470 "id": 635,
6471 "name": "FactoryTokenInterface",
6472 "nodeType": "Identifier",
6473 "overloadedDeclarations": [],
6474 "referencedDeclaration": 5198,
6475 "src": "1639:21:7",
6476 "typeDescriptions": {
6477 "typeIdentifier": "t_type$_t_contract$_FactoryTokenInterface_$5198_$",
6478 "typeString": "type(contract FactoryTokenInterface)"
6479 }
6480 },
6481 "id": 640,
6482 "isConstant": false,
6483 "isLValue": false,
6484 "isPure": false,
6485 "kind": "typeConversion",
6486 "lValueRequested": false,
6487 "names": [],
6488 "nodeType": "FunctionCall",
6489 "src": "1639:59:7",
6490 "typeDescriptions": {
6491 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
6492 "typeString": "contract FactoryTokenInterface"
6493 }
6494 },
6495 "nodeType": "VariableDeclarationStatement",
6496 "src": "1602:96:7"
6497 },
6498 {
6499 "expression": {
6500 "argumentTypes": null,
6501 "arguments": [
6502 {
6503 "argumentTypes": null,
6504 "id": 645,
6505 "name": "_coincap",
6506 "nodeType": "Identifier",
6507 "overloadedDeclarations": [],
6508 "referencedDeclaration": 611,
6509 "src": "1749:8:7",
6510 "typeDescriptions": {
6511 "typeIdentifier": "t_address",
6512 "typeString": "address"
6513 }
6514 },
6515 {
6516 "argumentTypes": null,
6517 "id": 646,
6518 "name": "_endpoint",
6519 "nodeType": "Identifier",
6520 "overloadedDeclarations": [],
6521 "referencedDeclaration": 613,
6522 "src": "1758:9:7",
6523 "typeDescriptions": {
6524 "typeIdentifier": "t_bytes32",
6525 "typeString": "bytes32"
6526 }
6527 },
6528 {
6529 "argumentTypes": null,
6530 "id": 647,
6531 "name": "_numDots",
6532 "nodeType": "Identifier",
6533 "overloadedDeclarations": [],
6534 "referencedDeclaration": 615,
6535 "src": "1768:8:7",
6536 "typeDescriptions": {
6537 "typeIdentifier": "t_uint256",
6538 "typeString": "uint256"
6539 }
6540 }
6541 ],
6542 "expression": {
6543 "argumentTypes": [
6544 {
6545 "typeIdentifier": "t_address",
6546 "typeString": "address"
6547 },
6548 {
6549 "typeIdentifier": "t_bytes32",
6550 "typeString": "bytes32"
6551 },
6552 {
6553 "typeIdentifier": "t_uint256",
6554 "typeString": "uint256"
6555 }
6556 ],
6557 "expression": {
6558 "argumentTypes": null,
6559 "id": 642,
6560 "name": "bondage",
6561 "nodeType": "Identifier",
6562 "overloadedDeclarations": [],
6563 "referencedDeclaration": 628,
6564 "src": "1736:7:7",
6565 "typeDescriptions": {
6566 "typeIdentifier": "t_contract$_BondageInterface_$7926",
6567 "typeString": "contract BondageInterface"
6568 }
6569 },
6570 "id": 644,
6571 "isConstant": false,
6572 "isLValue": false,
6573 "isPure": false,
6574 "lValueRequested": false,
6575 "memberName": "bond",
6576 "nodeType": "MemberAccess",
6577 "referencedDeclaration": 7802,
6578 "src": "1736:12:7",
6579 "typeDescriptions": {
6580 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$_t_uint256_$",
6581 "typeString": "function (address,bytes32,uint256) external returns (uint256)"
6582 }
6583 },
6584 "id": 648,
6585 "isConstant": false,
6586 "isLValue": false,
6587 "isPure": false,
6588 "kind": "functionCall",
6589 "lValueRequested": false,
6590 "names": [],
6591 "nodeType": "FunctionCall",
6592 "src": "1736:41:7",
6593 "typeDescriptions": {
6594 "typeIdentifier": "t_uint256",
6595 "typeString": "uint256"
6596 }
6597 },
6598 "id": 649,
6599 "nodeType": "ExpressionStatement",
6600 "src": "1736:41:7"
6601 },
6602 {
6603 "expression": {
6604 "argumentTypes": null,
6605 "hexValue": "74727565",
6606 "id": 650,
6607 "isConstant": false,
6608 "isLValue": false,
6609 "isPure": true,
6610 "kind": "bool",
6611 "lValueRequested": false,
6612 "nodeType": "Literal",
6613 "src": "1790:4:7",
6614 "subdenomination": null,
6615 "typeDescriptions": {
6616 "typeIdentifier": "t_bool",
6617 "typeString": "bool"
6618 },
6619 "value": "true"
6620 },
6621 "functionReturnParameters": 619,
6622 "id": 651,
6623 "nodeType": "Return",
6624 "src": "1783:11:7"
6625 }
6626 ]
6627 },
6628 "documentation": null,
6629 "id": 653,
6630 "implemented": true,
6631 "isConstructor": false,
6632 "isDeclaredConst": false,
6633 "modifiers": [],
6634 "name": "bondToCoincap",
6635 "nodeType": "FunctionDefinition",
6636 "parameters": {
6637 "id": 616,
6638 "nodeType": "ParameterList",
6639 "parameters": [
6640 {
6641 "constant": false,
6642 "id": 611,
6643 "name": "_coincap",
6644 "nodeType": "VariableDeclaration",
6645 "scope": 653,
6646 "src": "1393:16:7",
6647 "stateVariable": false,
6648 "storageLocation": "default",
6649 "typeDescriptions": {
6650 "typeIdentifier": "t_address",
6651 "typeString": "address"
6652 },
6653 "typeName": {
6654 "id": 610,
6655 "name": "address",
6656 "nodeType": "ElementaryTypeName",
6657 "src": "1393:7:7",
6658 "typeDescriptions": {
6659 "typeIdentifier": "t_address",
6660 "typeString": "address"
6661 }
6662 },
6663 "value": null,
6664 "visibility": "internal"
6665 },
6666 {
6667 "constant": false,
6668 "id": 613,
6669 "name": "_endpoint",
6670 "nodeType": "VariableDeclaration",
6671 "scope": 653,
6672 "src": "1410:17:7",
6673 "stateVariable": false,
6674 "storageLocation": "default",
6675 "typeDescriptions": {
6676 "typeIdentifier": "t_bytes32",
6677 "typeString": "bytes32"
6678 },
6679 "typeName": {
6680 "id": 612,
6681 "name": "bytes32",
6682 "nodeType": "ElementaryTypeName",
6683 "src": "1410:7:7",
6684 "typeDescriptions": {
6685 "typeIdentifier": "t_bytes32",
6686 "typeString": "bytes32"
6687 }
6688 },
6689 "value": null,
6690 "visibility": "internal"
6691 },
6692 {
6693 "constant": false,
6694 "id": 615,
6695 "name": "_numDots",
6696 "nodeType": "VariableDeclaration",
6697 "scope": 653,
6698 "src": "1428:16:7",
6699 "stateVariable": false,
6700 "storageLocation": "default",
6701 "typeDescriptions": {
6702 "typeIdentifier": "t_uint256",
6703 "typeString": "uint256"
6704 },
6705 "typeName": {
6706 "id": 614,
6707 "name": "uint256",
6708 "nodeType": "ElementaryTypeName",
6709 "src": "1428:7:7",
6710 "typeDescriptions": {
6711 "typeIdentifier": "t_uint256",
6712 "typeString": "uint256"
6713 }
6714 },
6715 "value": null,
6716 "visibility": "internal"
6717 }
6718 ],
6719 "src": "1392:53:7"
6720 },
6721 "payable": false,
6722 "returnParameters": {
6723 "id": 619,
6724 "nodeType": "ParameterList",
6725 "parameters": [
6726 {
6727 "constant": false,
6728 "id": 618,
6729 "name": "",
6730 "nodeType": "VariableDeclaration",
6731 "scope": 653,
6732 "src": "1461:4:7",
6733 "stateVariable": false,
6734 "storageLocation": "default",
6735 "typeDescriptions": {
6736 "typeIdentifier": "t_bool",
6737 "typeString": "bool"
6738 },
6739 "typeName": {
6740 "id": 617,
6741 "name": "bool",
6742 "nodeType": "ElementaryTypeName",
6743 "src": "1461:4:7",
6744 "typeDescriptions": {
6745 "typeIdentifier": "t_bool",
6746 "typeString": "bool"
6747 }
6748 },
6749 "value": null,
6750 "visibility": "internal"
6751 }
6752 ],
6753 "src": "1460:6:7"
6754 },
6755 "scope": 805,
6756 "src": "1370:430:7",
6757 "stateMutability": "nonpayable",
6758 "superFunction": null,
6759 "visibility": "public"
6760 },
6761 {
6762 "body": {
6763 "id": 701,
6764 "nodeType": "Block",
6765 "src": "1885:330:7",
6766 "statements": [
6767 {
6768 "expression": {
6769 "argumentTypes": null,
6770 "arguments": [
6771 {
6772 "argumentTypes": null,
6773 "commonType": {
6774 "typeIdentifier": "t_address",
6775 "typeString": "address"
6776 },
6777 "id": 666,
6778 "isConstant": false,
6779 "isLValue": false,
6780 "isPure": false,
6781 "lValueRequested": false,
6782 "leftExpression": {
6783 "argumentTypes": null,
6784 "expression": {
6785 "argumentTypes": null,
6786 "id": 663,
6787 "name": "msg",
6788 "nodeType": "Identifier",
6789 "overloadedDeclarations": [],
6790 "referencedDeclaration": 12092,
6791 "src": "1899:3:7",
6792 "typeDescriptions": {
6793 "typeIdentifier": "t_magic_message",
6794 "typeString": "msg"
6795 }
6796 },
6797 "id": 664,
6798 "isConstant": false,
6799 "isLValue": false,
6800 "isPure": false,
6801 "lValueRequested": false,
6802 "memberName": "sender",
6803 "nodeType": "MemberAccess",
6804 "referencedDeclaration": null,
6805 "src": "1899:10:7",
6806 "typeDescriptions": {
6807 "typeIdentifier": "t_address",
6808 "typeString": "address"
6809 }
6810 },
6811 "nodeType": "BinaryOperation",
6812 "operator": "==",
6813 "rightExpression": {
6814 "argumentTypes": null,
6815 "id": 665,
6816 "name": "oracle",
6817 "nodeType": "Identifier",
6818 "overloadedDeclarations": [],
6819 "referencedDeclaration": 511,
6820 "src": "1913:6:7",
6821 "typeDescriptions": {
6822 "typeIdentifier": "t_address",
6823 "typeString": "address"
6824 }
6825 },
6826 "src": "1899:20:7",
6827 "typeDescriptions": {
6828 "typeIdentifier": "t_bool",
6829 "typeString": "bool"
6830 }
6831 },
6832 {
6833 "argumentTypes": null,
6834 "hexValue": "4f6e6c79204f7261636c65206f776e65722063616e2063616c6c20717565727920746f20736574746c65",
6835 "id": 667,
6836 "isConstant": false,
6837 "isLValue": false,
6838 "isPure": true,
6839 "kind": "string",
6840 "lValueRequested": false,
6841 "nodeType": "Literal",
6842 "src": "1921:44:7",
6843 "subdenomination": null,
6844 "typeDescriptions": {
6845 "typeIdentifier": "t_stringliteral_9208b4cf4cf5a157376d77cee7d8e892bb04300e59e0676984b193dc721b427d",
6846 "typeString": "literal_string \"Only Oracle owner can call query to settle\""
6847 },
6848 "value": "Only Oracle owner can call query to settle"
6849 }
6850 ],
6851 "expression": {
6852 "argumentTypes": [
6853 {
6854 "typeIdentifier": "t_bool",
6855 "typeString": "bool"
6856 },
6857 {
6858 "typeIdentifier": "t_stringliteral_9208b4cf4cf5a157376d77cee7d8e892bb04300e59e0676984b193dc721b427d",
6859 "typeString": "literal_string \"Only Oracle owner can call query to settle\""
6860 }
6861 ],
6862 "id": 662,
6863 "name": "require",
6864 "nodeType": "Identifier",
6865 "overloadedDeclarations": [
6866 12095,
6867 12096
6868 ],
6869 "referencedDeclaration": 12096,
6870 "src": "1891:7:7",
6871 "typeDescriptions": {
6872 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
6873 "typeString": "function (bool,string memory) pure"
6874 }
6875 },
6876 "id": 668,
6877 "isConstant": false,
6878 "isLValue": false,
6879 "isPure": false,
6880 "kind": "functionCall",
6881 "lValueRequested": false,
6882 "names": [],
6883 "nodeType": "FunctionCall",
6884 "src": "1891:75:7",
6885 "typeDescriptions": {
6886 "typeIdentifier": "t_tuple$__$",
6887 "typeString": "tuple()"
6888 }
6889 },
6890 "id": 669,
6891 "nodeType": "ExpressionStatement",
6892 "src": "1891:75:7"
6893 },
6894 {
6895 "assignments": [
6896 671
6897 ],
6898 "declarations": [
6899 {
6900 "constant": false,
6901 "id": 671,
6902 "name": "dispatchAddress",
6903 "nodeType": "VariableDeclaration",
6904 "scope": 702,
6905 "src": "1972:23:7",
6906 "stateVariable": false,
6907 "storageLocation": "default",
6908 "typeDescriptions": {
6909 "typeIdentifier": "t_address",
6910 "typeString": "address"
6911 },
6912 "typeName": {
6913 "id": 670,
6914 "name": "address",
6915 "nodeType": "ElementaryTypeName",
6916 "src": "1972:7:7",
6917 "typeDescriptions": {
6918 "typeIdentifier": "t_address",
6919 "typeString": "address"
6920 }
6921 },
6922 "value": null,
6923 "visibility": "internal"
6924 }
6925 ],
6926 "id": 676,
6927 "initialValue": {
6928 "argumentTypes": null,
6929 "arguments": [
6930 {
6931 "argumentTypes": null,
6932 "hexValue": "4449535041544348",
6933 "id": 674,
6934 "isConstant": false,
6935 "isLValue": false,
6936 "isPure": true,
6937 "kind": "string",
6938 "lValueRequested": false,
6939 "nodeType": "Literal",
6940 "src": "2022:10:7",
6941 "subdenomination": null,
6942 "typeDescriptions": {
6943 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
6944 "typeString": "literal_string \"DISPATCH\""
6945 },
6946 "value": "DISPATCH"
6947 }
6948 ],
6949 "expression": {
6950 "argumentTypes": [
6951 {
6952 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
6953 "typeString": "literal_string \"DISPATCH\""
6954 }
6955 ],
6956 "expression": {
6957 "argumentTypes": null,
6958 "id": 672,
6959 "name": "coordinator",
6960 "nodeType": "Identifier",
6961 "overloadedDeclarations": [],
6962 "referencedDeclaration": 509,
6963 "src": "1998:11:7",
6964 "typeDescriptions": {
6965 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
6966 "typeString": "contract ZapCoordinatorInterface"
6967 }
6968 },
6969 "id": 673,
6970 "isConstant": false,
6971 "isLValue": false,
6972 "isPure": false,
6973 "lValueRequested": false,
6974 "memberName": "getContract",
6975 "nodeType": "MemberAccess",
6976 "referencedDeclaration": 489,
6977 "src": "1998:23:7",
6978 "typeDescriptions": {
6979 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
6980 "typeString": "function (string memory) view external returns (address)"
6981 }
6982 },
6983 "id": 675,
6984 "isConstant": false,
6985 "isLValue": false,
6986 "isPure": false,
6987 "kind": "functionCall",
6988 "lValueRequested": false,
6989 "names": [],
6990 "nodeType": "FunctionCall",
6991 "src": "1998:35:7",
6992 "typeDescriptions": {
6993 "typeIdentifier": "t_address",
6994 "typeString": "address"
6995 }
6996 },
6997 "nodeType": "VariableDeclarationStatement",
6998 "src": "1972:61:7"
6999 },
7000 {
7001 "assignments": [
7002 678
7003 ],
7004 "declarations": [
7005 {
7006 "constant": false,
7007 "id": 678,
7008 "name": "dispatch",
7009 "nodeType": "VariableDeclaration",
7010 "scope": 702,
7011 "src": "2039:26:7",
7012 "stateVariable": false,
7013 "storageLocation": "default",
7014 "typeDescriptions": {
7015 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
7016 "typeString": "contract DispatchInterface"
7017 },
7018 "typeName": {
7019 "contractScope": null,
7020 "id": 677,
7021 "name": "DispatchInterface",
7022 "nodeType": "UserDefinedTypeName",
7023 "referencedDeclaration": 10147,
7024 "src": "2039:17:7",
7025 "typeDescriptions": {
7026 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
7027 "typeString": "contract DispatchInterface"
7028 }
7029 },
7030 "value": null,
7031 "visibility": "internal"
7032 }
7033 ],
7034 "id": 682,
7035 "initialValue": {
7036 "argumentTypes": null,
7037 "arguments": [
7038 {
7039 "argumentTypes": null,
7040 "id": 680,
7041 "name": "dispatchAddress",
7042 "nodeType": "Identifier",
7043 "overloadedDeclarations": [],
7044 "referencedDeclaration": 671,
7045 "src": "2086:15:7",
7046 "typeDescriptions": {
7047 "typeIdentifier": "t_address",
7048 "typeString": "address"
7049 }
7050 }
7051 ],
7052 "expression": {
7053 "argumentTypes": [
7054 {
7055 "typeIdentifier": "t_address",
7056 "typeString": "address"
7057 }
7058 ],
7059 "id": 679,
7060 "name": "DispatchInterface",
7061 "nodeType": "Identifier",
7062 "overloadedDeclarations": [],
7063 "referencedDeclaration": 10147,
7064 "src": "2068:17:7",
7065 "typeDescriptions": {
7066 "typeIdentifier": "t_type$_t_contract$_DispatchInterface_$10147_$",
7067 "typeString": "type(contract DispatchInterface)"
7068 }
7069 },
7070 "id": 681,
7071 "isConstant": false,
7072 "isLValue": false,
7073 "isPure": false,
7074 "kind": "typeConversion",
7075 "lValueRequested": false,
7076 "names": [],
7077 "nodeType": "FunctionCall",
7078 "src": "2068:34:7",
7079 "typeDescriptions": {
7080 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
7081 "typeString": "contract DispatchInterface"
7082 }
7083 },
7084 "nodeType": "VariableDeclarationStatement",
7085 "src": "2039:63:7"
7086 },
7087 {
7088 "assignments": [
7089 686
7090 ],
7091 "declarations": [
7092 {
7093 "constant": false,
7094 "id": 686,
7095 "name": "params",
7096 "nodeType": "VariableDeclaration",
7097 "scope": 702,
7098 "src": "2108:23:7",
7099 "stateVariable": false,
7100 "storageLocation": "memory",
7101 "typeDescriptions": {
7102 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
7103 "typeString": "bytes32[]"
7104 },
7105 "typeName": {
7106 "baseType": {
7107 "id": 684,
7108 "name": "bytes32",
7109 "nodeType": "ElementaryTypeName",
7110 "src": "2108:7:7",
7111 "typeDescriptions": {
7112 "typeIdentifier": "t_bytes32",
7113 "typeString": "bytes32"
7114 }
7115 },
7116 "id": 685,
7117 "length": null,
7118 "nodeType": "ArrayTypeName",
7119 "src": "2108:9:7",
7120 "typeDescriptions": {
7121 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
7122 "typeString": "bytes32[]"
7123 }
7124 },
7125 "value": null,
7126 "visibility": "internal"
7127 }
7128 ],
7129 "id": 692,
7130 "initialValue": {
7131 "argumentTypes": null,
7132 "arguments": [
7133 {
7134 "argumentTypes": null,
7135 "hexValue": "30",
7136 "id": 690,
7137 "isConstant": false,
7138 "isLValue": false,
7139 "isPure": true,
7140 "kind": "number",
7141 "lValueRequested": false,
7142 "nodeType": "Literal",
7143 "src": "2148:1:7",
7144 "subdenomination": null,
7145 "typeDescriptions": {
7146 "typeIdentifier": "t_rational_0_by_1",
7147 "typeString": "int_const 0"
7148 },
7149 "value": "0"
7150 }
7151 ],
7152 "expression": {
7153 "argumentTypes": [
7154 {
7155 "typeIdentifier": "t_rational_0_by_1",
7156 "typeString": "int_const 0"
7157 }
7158 ],
7159 "id": 689,
7160 "isConstant": false,
7161 "isLValue": false,
7162 "isPure": true,
7163 "lValueRequested": false,
7164 "nodeType": "NewExpression",
7165 "src": "2134:13:7",
7166 "typeDescriptions": {
7167 "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
7168 "typeString": "function (uint256) pure returns (bytes32[] memory)"
7169 },
7170 "typeName": {
7171 "baseType": {
7172 "id": 687,
7173 "name": "bytes32",
7174 "nodeType": "ElementaryTypeName",
7175 "src": "2138:7:7",
7176 "typeDescriptions": {
7177 "typeIdentifier": "t_bytes32",
7178 "typeString": "bytes32"
7179 }
7180 },
7181 "id": 688,
7182 "length": null,
7183 "nodeType": "ArrayTypeName",
7184 "src": "2138:9:7",
7185 "typeDescriptions": {
7186 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
7187 "typeString": "bytes32[]"
7188 }
7189 }
7190 },
7191 "id": 691,
7192 "isConstant": false,
7193 "isLValue": false,
7194 "isPure": true,
7195 "kind": "functionCall",
7196 "lValueRequested": false,
7197 "names": [],
7198 "nodeType": "FunctionCall",
7199 "src": "2134:16:7",
7200 "typeDescriptions": {
7201 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
7202 "typeString": "bytes32[] memory"
7203 }
7204 },
7205 "nodeType": "VariableDeclarationStatement",
7206 "src": "2108:42:7"
7207 },
7208 {
7209 "expression": {
7210 "argumentTypes": null,
7211 "arguments": [
7212 {
7213 "argumentTypes": null,
7214 "id": 695,
7215 "name": "_coincap",
7216 "nodeType": "Identifier",
7217 "overloadedDeclarations": [],
7218 "referencedDeclaration": 655,
7219 "src": "2178:8:7",
7220 "typeDescriptions": {
7221 "typeIdentifier": "t_address",
7222 "typeString": "address"
7223 }
7224 },
7225 {
7226 "argumentTypes": null,
7227 "hexValue": "425443",
7228 "id": 696,
7229 "isConstant": false,
7230 "isLValue": false,
7231 "isPure": true,
7232 "kind": "string",
7233 "lValueRequested": false,
7234 "nodeType": "Literal",
7235 "src": "2187:5:7",
7236 "subdenomination": null,
7237 "typeDescriptions": {
7238 "typeIdentifier": "t_stringliteral_e98e2830be1a7e4156d656a7505e65d08c67660dc618072422e9c78053c261e9",
7239 "typeString": "literal_string \"BTC\""
7240 },
7241 "value": "BTC"
7242 },
7243 {
7244 "argumentTypes": null,
7245 "id": 697,
7246 "name": "_endpoint",
7247 "nodeType": "Identifier",
7248 "overloadedDeclarations": [],
7249 "referencedDeclaration": 657,
7250 "src": "2193:9:7",
7251 "typeDescriptions": {
7252 "typeIdentifier": "t_bytes32",
7253 "typeString": "bytes32"
7254 }
7255 },
7256 {
7257 "argumentTypes": null,
7258 "id": 698,
7259 "name": "params",
7260 "nodeType": "Identifier",
7261 "overloadedDeclarations": [],
7262 "referencedDeclaration": 686,
7263 "src": "2203:6:7",
7264 "typeDescriptions": {
7265 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
7266 "typeString": "bytes32[] memory"
7267 }
7268 }
7269 ],
7270 "expression": {
7271 "argumentTypes": [
7272 {
7273 "typeIdentifier": "t_address",
7274 "typeString": "address"
7275 },
7276 {
7277 "typeIdentifier": "t_stringliteral_e98e2830be1a7e4156d656a7505e65d08c67660dc618072422e9c78053c261e9",
7278 "typeString": "literal_string \"BTC\""
7279 },
7280 {
7281 "typeIdentifier": "t_bytes32",
7282 "typeString": "bytes32"
7283 },
7284 {
7285 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
7286 "typeString": "bytes32[] memory"
7287 }
7288 ],
7289 "expression": {
7290 "argumentTypes": null,
7291 "id": 693,
7292 "name": "dispatch",
7293 "nodeType": "Identifier",
7294 "overloadedDeclarations": [],
7295 "referencedDeclaration": 678,
7296 "src": "2163:8:7",
7297 "typeDescriptions": {
7298 "typeIdentifier": "t_contract$_DispatchInterface_$10147",
7299 "typeString": "contract DispatchInterface"
7300 }
7301 },
7302 "id": 694,
7303 "isConstant": false,
7304 "isLValue": false,
7305 "isPure": false,
7306 "lValueRequested": false,
7307 "memberName": "query",
7308 "nodeType": "MemberAccess",
7309 "referencedDeclaration": 10024,
7310 "src": "2163:14:7",
7311 "typeDescriptions": {
7312 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$",
7313 "typeString": "function (address,string memory,bytes32,bytes32[] memory) external returns (uint256)"
7314 }
7315 },
7316 "id": 699,
7317 "isConstant": false,
7318 "isLValue": false,
7319 "isPure": false,
7320 "kind": "functionCall",
7321 "lValueRequested": false,
7322 "names": [],
7323 "nodeType": "FunctionCall",
7324 "src": "2163:47:7",
7325 "typeDescriptions": {
7326 "typeIdentifier": "t_uint256",
7327 "typeString": "uint256"
7328 }
7329 },
7330 "functionReturnParameters": 661,
7331 "id": 700,
7332 "nodeType": "Return",
7333 "src": "2156:54:7"
7334 }
7335 ]
7336 },
7337 "documentation": null,
7338 "id": 702,
7339 "implemented": true,
7340 "isConstructor": false,
7341 "isDeclaredConst": false,
7342 "modifiers": [],
7343 "name": "queryToSettle",
7344 "nodeType": "FunctionDefinition",
7345 "parameters": {
7346 "id": 658,
7347 "nodeType": "ParameterList",
7348 "parameters": [
7349 {
7350 "constant": false,
7351 "id": 655,
7352 "name": "_coincap",
7353 "nodeType": "VariableDeclaration",
7354 "scope": 702,
7355 "src": "1826:16:7",
7356 "stateVariable": false,
7357 "storageLocation": "default",
7358 "typeDescriptions": {
7359 "typeIdentifier": "t_address",
7360 "typeString": "address"
7361 },
7362 "typeName": {
7363 "id": 654,
7364 "name": "address",
7365 "nodeType": "ElementaryTypeName",
7366 "src": "1826:7:7",
7367 "typeDescriptions": {
7368 "typeIdentifier": "t_address",
7369 "typeString": "address"
7370 }
7371 },
7372 "value": null,
7373 "visibility": "internal"
7374 },
7375 {
7376 "constant": false,
7377 "id": 657,
7378 "name": "_endpoint",
7379 "nodeType": "VariableDeclaration",
7380 "scope": 702,
7381 "src": "1843:17:7",
7382 "stateVariable": false,
7383 "storageLocation": "default",
7384 "typeDescriptions": {
7385 "typeIdentifier": "t_bytes32",
7386 "typeString": "bytes32"
7387 },
7388 "typeName": {
7389 "id": 656,
7390 "name": "bytes32",
7391 "nodeType": "ElementaryTypeName",
7392 "src": "1843:7:7",
7393 "typeDescriptions": {
7394 "typeIdentifier": "t_bytes32",
7395 "typeString": "bytes32"
7396 }
7397 },
7398 "value": null,
7399 "visibility": "internal"
7400 }
7401 ],
7402 "src": "1825:36:7"
7403 },
7404 "payable": false,
7405 "returnParameters": {
7406 "id": 661,
7407 "nodeType": "ParameterList",
7408 "parameters": [
7409 {
7410 "constant": false,
7411 "id": 660,
7412 "name": "",
7413 "nodeType": "VariableDeclaration",
7414 "scope": 702,
7415 "src": "1877:7:7",
7416 "stateVariable": false,
7417 "storageLocation": "default",
7418 "typeDescriptions": {
7419 "typeIdentifier": "t_uint256",
7420 "typeString": "uint256"
7421 },
7422 "typeName": {
7423 "id": 659,
7424 "name": "uint256",
7425 "nodeType": "ElementaryTypeName",
7426 "src": "1877:7:7",
7427 "typeDescriptions": {
7428 "typeIdentifier": "t_uint256",
7429 "typeString": "uint256"
7430 }
7431 },
7432 "value": null,
7433 "visibility": "internal"
7434 }
7435 ],
7436 "src": "1876:9:7"
7437 },
7438 "scope": 805,
7439 "src": "1803:412:7",
7440 "stateMutability": "nonpayable",
7441 "superFunction": null,
7442 "visibility": "public"
7443 },
7444 {
7445 "body": {
7446 "id": 803,
7447 "nodeType": "Block",
7448 "src": "2276:651:7",
7449 "statements": [
7450 {
7451 "assignments": [
7452 711
7453 ],
7454 "declarations": [
7455 {
7456 "constant": false,
7457 "id": 711,
7458 "name": "dispatchAddress",
7459 "nodeType": "VariableDeclaration",
7460 "scope": 804,
7461 "src": "2282:23:7",
7462 "stateVariable": false,
7463 "storageLocation": "default",
7464 "typeDescriptions": {
7465 "typeIdentifier": "t_address",
7466 "typeString": "address"
7467 },
7468 "typeName": {
7469 "id": 710,
7470 "name": "address",
7471 "nodeType": "ElementaryTypeName",
7472 "src": "2282:7:7",
7473 "typeDescriptions": {
7474 "typeIdentifier": "t_address",
7475 "typeString": "address"
7476 }
7477 },
7478 "value": null,
7479 "visibility": "internal"
7480 }
7481 ],
7482 "id": 716,
7483 "initialValue": {
7484 "argumentTypes": null,
7485 "arguments": [
7486 {
7487 "argumentTypes": null,
7488 "hexValue": "4449535041544348",
7489 "id": 714,
7490 "isConstant": false,
7491 "isLValue": false,
7492 "isPure": true,
7493 "kind": "string",
7494 "lValueRequested": false,
7495 "nodeType": "Literal",
7496 "src": "2332:10:7",
7497 "subdenomination": null,
7498 "typeDescriptions": {
7499 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
7500 "typeString": "literal_string \"DISPATCH\""
7501 },
7502 "value": "DISPATCH"
7503 }
7504 ],
7505 "expression": {
7506 "argumentTypes": [
7507 {
7508 "typeIdentifier": "t_stringliteral_6500b367bf575ed13fb70e14113c243603c88563c92643ca3ba80a32d0b8c84e",
7509 "typeString": "literal_string \"DISPATCH\""
7510 }
7511 ],
7512 "expression": {
7513 "argumentTypes": null,
7514 "id": 712,
7515 "name": "coordinator",
7516 "nodeType": "Identifier",
7517 "overloadedDeclarations": [],
7518 "referencedDeclaration": 509,
7519 "src": "2308:11:7",
7520 "typeDescriptions": {
7521 "typeIdentifier": "t_contract$_ZapCoordinatorInterface_$493",
7522 "typeString": "contract ZapCoordinatorInterface"
7523 }
7524 },
7525 "id": 713,
7526 "isConstant": false,
7527 "isLValue": false,
7528 "isPure": false,
7529 "lValueRequested": false,
7530 "memberName": "getContract",
7531 "nodeType": "MemberAccess",
7532 "referencedDeclaration": 489,
7533 "src": "2308:23:7",
7534 "typeDescriptions": {
7535 "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
7536 "typeString": "function (string memory) view external returns (address)"
7537 }
7538 },
7539 "id": 715,
7540 "isConstant": false,
7541 "isLValue": false,
7542 "isPure": false,
7543 "kind": "functionCall",
7544 "lValueRequested": false,
7545 "names": [],
7546 "nodeType": "FunctionCall",
7547 "src": "2308:35:7",
7548 "typeDescriptions": {
7549 "typeIdentifier": "t_address",
7550 "typeString": "address"
7551 }
7552 },
7553 "nodeType": "VariableDeclarationStatement",
7554 "src": "2282:61:7"
7555 },
7556 {
7557 "expression": {
7558 "argumentTypes": null,
7559 "arguments": [
7560 {
7561 "argumentTypes": null,
7562 "commonType": {
7563 "typeIdentifier": "t_address",
7564 "typeString": "address"
7565 },
7566 "id": 725,
7567 "isConstant": false,
7568 "isLValue": false,
7569 "isPure": false,
7570 "lValueRequested": false,
7571 "leftExpression": {
7572 "argumentTypes": null,
7573 "arguments": [
7574 {
7575 "argumentTypes": null,
7576 "expression": {
7577 "argumentTypes": null,
7578 "id": 719,
7579 "name": "msg",
7580 "nodeType": "Identifier",
7581 "overloadedDeclarations": [],
7582 "referencedDeclaration": 12092,
7583 "src": "2365:3:7",
7584 "typeDescriptions": {
7585 "typeIdentifier": "t_magic_message",
7586 "typeString": "msg"
7587 }
7588 },
7589 "id": 720,
7590 "isConstant": false,
7591 "isLValue": false,
7592 "isPure": false,
7593 "lValueRequested": false,
7594 "memberName": "sender",
7595 "nodeType": "MemberAccess",
7596 "referencedDeclaration": null,
7597 "src": "2365:10:7",
7598 "typeDescriptions": {
7599 "typeIdentifier": "t_address",
7600 "typeString": "address"
7601 }
7602 }
7603 ],
7604 "expression": {
7605 "argumentTypes": [
7606 {
7607 "typeIdentifier": "t_address",
7608 "typeString": "address"
7609 }
7610 ],
7611 "id": 718,
7612 "isConstant": false,
7613 "isLValue": false,
7614 "isPure": true,
7615 "lValueRequested": false,
7616 "nodeType": "ElementaryTypeNameExpression",
7617 "src": "2357:7:7",
7618 "typeDescriptions": {
7619 "typeIdentifier": "t_type$_t_address_$",
7620 "typeString": "type(address)"
7621 },
7622 "typeName": "address"
7623 },
7624 "id": 721,
7625 "isConstant": false,
7626 "isLValue": false,
7627 "isPure": false,
7628 "kind": "typeConversion",
7629 "lValueRequested": false,
7630 "names": [],
7631 "nodeType": "FunctionCall",
7632 "src": "2357:19:7",
7633 "typeDescriptions": {
7634 "typeIdentifier": "t_address",
7635 "typeString": "address"
7636 }
7637 },
7638 "nodeType": "BinaryOperation",
7639 "operator": "==",
7640 "rightExpression": {
7641 "argumentTypes": null,
7642 "arguments": [
7643 {
7644 "argumentTypes": null,
7645 "id": 723,
7646 "name": "dispatchAddress",
7647 "nodeType": "Identifier",
7648 "overloadedDeclarations": [],
7649 "referencedDeclaration": 711,
7650 "src": "2386:15:7",
7651 "typeDescriptions": {
7652 "typeIdentifier": "t_address",
7653 "typeString": "address"
7654 }
7655 }
7656 ],
7657 "expression": {
7658 "argumentTypes": [
7659 {
7660 "typeIdentifier": "t_address",
7661 "typeString": "address"
7662 }
7663 ],
7664 "id": 722,
7665 "isConstant": false,
7666 "isLValue": false,
7667 "isPure": true,
7668 "lValueRequested": false,
7669 "nodeType": "ElementaryTypeNameExpression",
7670 "src": "2378:7:7",
7671 "typeDescriptions": {
7672 "typeIdentifier": "t_type$_t_address_$",
7673 "typeString": "type(address)"
7674 },
7675 "typeName": "address"
7676 },
7677 "id": 724,
7678 "isConstant": false,
7679 "isLValue": false,
7680 "isPure": false,
7681 "kind": "typeConversion",
7682 "lValueRequested": false,
7683 "names": [],
7684 "nodeType": "FunctionCall",
7685 "src": "2378:24:7",
7686 "typeDescriptions": {
7687 "typeIdentifier": "t_address",
7688 "typeString": "address"
7689 }
7690 },
7691 "src": "2357:45:7",
7692 "typeDescriptions": {
7693 "typeIdentifier": "t_bool",
7694 "typeString": "bool"
7695 }
7696 },
7697 {
7698 "argumentTypes": null,
7699 "hexValue": "4f6e6c792061636365707420726573706f6e73652066726f6d206469737061746368",
7700 "id": 726,
7701 "isConstant": false,
7702 "isLValue": false,
7703 "isPure": true,
7704 "kind": "string",
7705 "lValueRequested": false,
7706 "nodeType": "Literal",
7707 "src": "2403:36:7",
7708 "subdenomination": null,
7709 "typeDescriptions": {
7710 "typeIdentifier": "t_stringliteral_23c29d3ce31e64b36d6464233acf8e5f5296a2326aa07c4a41f21647107c3c7e",
7711 "typeString": "literal_string \"Only accept response from dispatch\""
7712 },
7713 "value": "Only accept response from dispatch"
7714 }
7715 ],
7716 "expression": {
7717 "argumentTypes": [
7718 {
7719 "typeIdentifier": "t_bool",
7720 "typeString": "bool"
7721 },
7722 {
7723 "typeIdentifier": "t_stringliteral_23c29d3ce31e64b36d6464233acf8e5f5296a2326aa07c4a41f21647107c3c7e",
7724 "typeString": "literal_string \"Only accept response from dispatch\""
7725 }
7726 ],
7727 "id": 717,
7728 "name": "require",
7729 "nodeType": "Identifier",
7730 "overloadedDeclarations": [
7731 12095,
7732 12096
7733 ],
7734 "referencedDeclaration": 12096,
7735 "src": "2349:7:7",
7736 "typeDescriptions": {
7737 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
7738 "typeString": "function (bool,string memory) pure"
7739 }
7740 },
7741 "id": 727,
7742 "isConstant": false,
7743 "isLValue": false,
7744 "isPure": false,
7745 "kind": "functionCall",
7746 "lValueRequested": false,
7747 "names": [],
7748 "nodeType": "FunctionCall",
7749 "src": "2349:91:7",
7750 "typeDescriptions": {
7751 "typeIdentifier": "t_tuple$__$",
7752 "typeString": "tuple()"
7753 }
7754 },
7755 "id": 728,
7756 "nodeType": "ExpressionStatement",
7757 "src": "2349:91:7"
7758 },
7759 {
7760 "expression": {
7761 "argumentTypes": null,
7762 "arguments": [
7763 {
7764 "argumentTypes": null,
7765 "commonType": {
7766 "typeIdentifier": "t_uint256",
7767 "typeString": "uint256"
7768 },
7769 "id": 734,
7770 "isConstant": false,
7771 "isLValue": false,
7772 "isPure": false,
7773 "lValueRequested": false,
7774 "leftExpression": {
7775 "argumentTypes": null,
7776 "arguments": [],
7777 "expression": {
7778 "argumentTypes": [],
7779 "expression": {
7780 "argumentTypes": null,
7781 "id": 730,
7782 "name": "contest",
7783 "nodeType": "Identifier",
7784 "overloadedDeclarations": [],
7785 "referencedDeclaration": 507,
7786 "src": "2454:7:7",
7787 "typeDescriptions": {
7788 "typeIdentifier": "t_contract$_SampleContest_$3254",
7789 "typeString": "contract SampleContest"
7790 }
7791 },
7792 "id": 731,
7793 "isConstant": false,
7794 "isLValue": false,
7795 "isPure": false,
7796 "lValueRequested": false,
7797 "memberName": "getStatus",
7798 "nodeType": "MemberAccess",
7799 "referencedDeclaration": 3083,
7800 "src": "2454:17:7",
7801 "typeDescriptions": {
7802 "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
7803 "typeString": "function () view external returns (uint256)"
7804 }
7805 },
7806 "id": 732,
7807 "isConstant": false,
7808 "isLValue": false,
7809 "isPure": false,
7810 "kind": "functionCall",
7811 "lValueRequested": false,
7812 "names": [],
7813 "nodeType": "FunctionCall",
7814 "src": "2454:19:7",
7815 "typeDescriptions": {
7816 "typeIdentifier": "t_uint256",
7817 "typeString": "uint256"
7818 }
7819 },
7820 "nodeType": "BinaryOperation",
7821 "operator": "==",
7822 "rightExpression": {
7823 "argumentTypes": null,
7824 "hexValue": "31",
7825 "id": 733,
7826 "isConstant": false,
7827 "isLValue": false,
7828 "isPure": true,
7829 "kind": "number",
7830 "lValueRequested": false,
7831 "nodeType": "Literal",
7832 "src": "2475:1:7",
7833 "subdenomination": null,
7834 "typeDescriptions": {
7835 "typeIdentifier": "t_rational_1_by_1",
7836 "typeString": "int_const 1"
7837 },
7838 "value": "1"
7839 },
7840 "src": "2454:22:7",
7841 "typeDescriptions": {
7842 "typeIdentifier": "t_bool",
7843 "typeString": "bool"
7844 }
7845 },
7846 {
7847 "argumentTypes": null,
7848 "hexValue": "436f6e74657374206973206e6f7420696e20696e697469616c697a6564207374617465",
7849 "id": 735,
7850 "isConstant": false,
7851 "isLValue": false,
7852 "isPure": true,
7853 "kind": "string",
7854 "lValueRequested": false,
7855 "nodeType": "Literal",
7856 "src": "2477:37:7",
7857 "subdenomination": null,
7858 "typeDescriptions": {
7859 "typeIdentifier": "t_stringliteral_6f7b379bd4fd2232d1690cb70ffbf30e9a3f8e664ba22ee6462bb4953c92f95d",
7860 "typeString": "literal_string \"Contest is not in initialized state\""
7861 },
7862 "value": "Contest is not in initialized state"
7863 }
7864 ],
7865 "expression": {
7866 "argumentTypes": [
7867 {
7868 "typeIdentifier": "t_bool",
7869 "typeString": "bool"
7870 },
7871 {
7872 "typeIdentifier": "t_stringliteral_6f7b379bd4fd2232d1690cb70ffbf30e9a3f8e664ba22ee6462bb4953c92f95d",
7873 "typeString": "literal_string \"Contest is not in initialized state\""
7874 }
7875 ],
7876 "id": 729,
7877 "name": "require",
7878 "nodeType": "Identifier",
7879 "overloadedDeclarations": [
7880 12095,
7881 12096
7882 ],
7883 "referencedDeclaration": 12096,
7884 "src": "2446:7:7",
7885 "typeDescriptions": {
7886 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
7887 "typeString": "function (bool,string memory) pure"
7888 }
7889 },
7890 "id": 736,
7891 "isConstant": false,
7892 "isLValue": false,
7893 "isPure": false,
7894 "kind": "functionCall",
7895 "lValueRequested": false,
7896 "names": [],
7897 "nodeType": "FunctionCall",
7898 "src": "2446:69:7",
7899 "typeDescriptions": {
7900 "typeIdentifier": "t_tuple$__$",
7901 "typeString": "tuple()"
7902 }
7903 },
7904 "id": 737,
7905 "nodeType": "ExpressionStatement",
7906 "src": "2446:69:7"
7907 },
7908 {
7909 "assignments": [
7910 739
7911 ],
7912 "declarations": [
7913 {
7914 "constant": false,
7915 "id": 739,
7916 "name": "price",
7917 "nodeType": "VariableDeclaration",
7918 "scope": 804,
7919 "src": "2557:13:7",
7920 "stateVariable": false,
7921 "storageLocation": "default",
7922 "typeDescriptions": {
7923 "typeIdentifier": "t_uint256",
7924 "typeString": "uint256"
7925 },
7926 "typeName": {
7927 "id": 738,
7928 "name": "uint256",
7929 "nodeType": "ElementaryTypeName",
7930 "src": "2557:7:7",
7931 "typeDescriptions": {
7932 "typeIdentifier": "t_uint256",
7933 "typeString": "uint256"
7934 }
7935 },
7936 "value": null,
7937 "visibility": "internal"
7938 }
7939 ],
7940 "id": 745,
7941 "initialValue": {
7942 "argumentTypes": null,
7943 "arguments": [
7944 {
7945 "argumentTypes": null,
7946 "baseExpression": {
7947 "argumentTypes": null,
7948 "id": 741,
7949 "name": "responses",
7950 "nodeType": "Identifier",
7951 "overloadedDeclarations": [],
7952 "referencedDeclaration": 707,
7953 "src": "2581:9:7",
7954 "typeDescriptions": {
7955 "typeIdentifier": "t_array$_t_int256_$dyn_calldata_ptr",
7956 "typeString": "int256[] calldata"
7957 }
7958 },
7959 "id": 743,
7960 "indexExpression": {
7961 "argumentTypes": null,
7962 "hexValue": "30",
7963 "id": 742,
7964 "isConstant": false,
7965 "isLValue": false,
7966 "isPure": true,
7967 "kind": "number",
7968 "lValueRequested": false,
7969 "nodeType": "Literal",
7970 "src": "2591:1:7",
7971 "subdenomination": null,
7972 "typeDescriptions": {
7973 "typeIdentifier": "t_rational_0_by_1",
7974 "typeString": "int_const 0"
7975 },
7976 "value": "0"
7977 },
7978 "isConstant": false,
7979 "isLValue": false,
7980 "isPure": false,
7981 "lValueRequested": false,
7982 "nodeType": "IndexAccess",
7983 "src": "2581:12:7",
7984 "typeDescriptions": {
7985 "typeIdentifier": "t_int256",
7986 "typeString": "int256"
7987 }
7988 }
7989 ],
7990 "expression": {
7991 "argumentTypes": [
7992 {
7993 "typeIdentifier": "t_int256",
7994 "typeString": "int256"
7995 }
7996 ],
7997 "id": 740,
7998 "isConstant": false,
7999 "isLValue": false,
8000 "isPure": true,
8001 "lValueRequested": false,
8002 "nodeType": "ElementaryTypeNameExpression",
8003 "src": "2573:7:7",
8004 "typeDescriptions": {
8005 "typeIdentifier": "t_type$_t_uint256_$",
8006 "typeString": "type(uint256)"
8007 },
8008 "typeName": "uint256"
8009 },
8010 "id": 744,
8011 "isConstant": false,
8012 "isLValue": false,
8013 "isPure": false,
8014 "kind": "typeConversion",
8015 "lValueRequested": false,
8016 "names": [],
8017 "nodeType": "FunctionCall",
8018 "src": "2573:21:7",
8019 "typeDescriptions": {
8020 "typeIdentifier": "t_uint256",
8021 "typeString": "uint256"
8022 }
8023 },
8024 "nodeType": "VariableDeclarationStatement",
8025 "src": "2557:37:7"
8026 },
8027 {
8028 "assignments": [
8029 749
8030 ],
8031 "declarations": [
8032 {
8033 "constant": false,
8034 "id": 749,
8035 "name": "endpoints",
8036 "nodeType": "VariableDeclaration",
8037 "scope": 804,
8038 "src": "2600:26:7",
8039 "stateVariable": false,
8040 "storageLocation": "memory",
8041 "typeDescriptions": {
8042 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
8043 "typeString": "bytes32[]"
8044 },
8045 "typeName": {
8046 "baseType": {
8047 "id": 747,
8048 "name": "bytes32",
8049 "nodeType": "ElementaryTypeName",
8050 "src": "2600:7:7",
8051 "typeDescriptions": {
8052 "typeIdentifier": "t_bytes32",
8053 "typeString": "bytes32"
8054 }
8055 },
8056 "id": 748,
8057 "length": null,
8058 "nodeType": "ArrayTypeName",
8059 "src": "2600:9:7",
8060 "typeDescriptions": {
8061 "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
8062 "typeString": "bytes32[]"
8063 }
8064 },
8065 "value": null,
8066 "visibility": "internal"
8067 }
8068 ],
8069 "id": 753,
8070 "initialValue": {
8071 "argumentTypes": null,
8072 "arguments": [],
8073 "expression": {
8074 "argumentTypes": [],
8075 "expression": {
8076 "argumentTypes": null,
8077 "id": 750,
8078 "name": "contest",
8079 "nodeType": "Identifier",
8080 "overloadedDeclarations": [],
8081 "referencedDeclaration": 507,
8082 "src": "2629:7:7",
8083 "typeDescriptions": {
8084 "typeIdentifier": "t_contract$_SampleContest_$3254",
8085 "typeString": "contract SampleContest"
8086 }
8087 },
8088 "id": 751,
8089 "isConstant": false,
8090 "isLValue": false,
8091 "isPure": false,
8092 "lValueRequested": false,
8093 "memberName": "getEndpoints",
8094 "nodeType": "MemberAccess",
8095 "referencedDeclaration": 3073,
8096 "src": "2629:20:7",
8097 "typeDescriptions": {
8098 "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
8099 "typeString": "function () view external returns (bytes32[] memory)"
8100 }
8101 },
8102 "id": 752,
8103 "isConstant": false,
8104 "isLValue": false,
8105 "isPure": false,
8106 "kind": "functionCall",
8107 "lValueRequested": false,
8108 "names": [],
8109 "nodeType": "FunctionCall",
8110 "src": "2629:22:7",
8111 "typeDescriptions": {
8112 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
8113 "typeString": "bytes32[] memory"
8114 }
8115 },
8116 "nodeType": "VariableDeclarationStatement",
8117 "src": "2600:51:7"
8118 },
8119 {
8120 "body": {
8121 "id": 801,
8122 "nodeType": "Block",
8123 "src": "2696:227:7",
8124 "statements": [
8125 {
8126 "condition": {
8127 "argumentTypes": null,
8128 "commonType": {
8129 "typeIdentifier": "t_bool",
8130 "typeString": "bool"
8131 },
8132 "id": 773,
8133 "isConstant": false,
8134 "isLValue": false,
8135 "isPure": false,
8136 "lValueRequested": false,
8137 "leftExpression": {
8138 "argumentTypes": null,
8139 "commonType": {
8140 "typeIdentifier": "t_bytes32",
8141 "typeString": "bytes32"
8142 },
8143 "id": 769,
8144 "isConstant": false,
8145 "isLValue": false,
8146 "isPure": false,
8147 "lValueRequested": false,
8148 "leftExpression": {
8149 "argumentTypes": null,
8150 "baseExpression": {
8151 "argumentTypes": null,
8152 "id": 765,
8153 "name": "endpoints",
8154 "nodeType": "Identifier",
8155 "overloadedDeclarations": [],
8156 "referencedDeclaration": 749,
8157 "src": "2707:9:7",
8158 "typeDescriptions": {
8159 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
8160 "typeString": "bytes32[] memory"
8161 }
8162 },
8163 "id": 767,
8164 "indexExpression": {
8165 "argumentTypes": null,
8166 "id": 766,
8167 "name": "i",
8168 "nodeType": "Identifier",
8169 "overloadedDeclarations": [],
8170 "referencedDeclaration": 755,
8171 "src": "2717:1:7",
8172 "typeDescriptions": {
8173 "typeIdentifier": "t_uint256",
8174 "typeString": "uint256"
8175 }
8176 },
8177 "isConstant": false,
8178 "isLValue": true,
8179 "isPure": false,
8180 "lValueRequested": false,
8181 "nodeType": "IndexAccess",
8182 "src": "2707:12:7",
8183 "typeDescriptions": {
8184 "typeIdentifier": "t_bytes32",
8185 "typeString": "bytes32"
8186 }
8187 },
8188 "nodeType": "BinaryOperation",
8189 "operator": "==",
8190 "rightExpression": {
8191 "argumentTypes": null,
8192 "id": 768,
8193 "name": "upEndpoint",
8194 "nodeType": "Identifier",
8195 "overloadedDeclarations": [],
8196 "referencedDeclaration": 517,
8197 "src": "2721:10:7",
8198 "typeDescriptions": {
8199 "typeIdentifier": "t_bytes32",
8200 "typeString": "bytes32"
8201 }
8202 },
8203 "src": "2707:24:7",
8204 "typeDescriptions": {
8205 "typeIdentifier": "t_bool",
8206 "typeString": "bool"
8207 }
8208 },
8209 "nodeType": "BinaryOperation",
8210 "operator": "&&",
8211 "rightExpression": {
8212 "argumentTypes": null,
8213 "commonType": {
8214 "typeIdentifier": "t_uint256",
8215 "typeString": "uint256"
8216 },
8217 "id": 772,
8218 "isConstant": false,
8219 "isLValue": false,
8220 "isPure": false,
8221 "lValueRequested": false,
8222 "leftExpression": {
8223 "argumentTypes": null,
8224 "id": 770,
8225 "name": "price",
8226 "nodeType": "Identifier",
8227 "overloadedDeclarations": [],
8228 "referencedDeclaration": 739,
8229 "src": "2735:5:7",
8230 "typeDescriptions": {
8231 "typeIdentifier": "t_uint256",
8232 "typeString": "uint256"
8233 }
8234 },
8235 "nodeType": "BinaryOperation",
8236 "operator": ">",
8237 "rightExpression": {
8238 "argumentTypes": null,
8239 "id": 771,
8240 "name": "startPrice",
8241 "nodeType": "Identifier",
8242 "overloadedDeclarations": [],
8243 "referencedDeclaration": 515,
8244 "src": "2743:10:7",
8245 "typeDescriptions": {
8246 "typeIdentifier": "t_uint256",
8247 "typeString": "uint256"
8248 }
8249 },
8250 "src": "2735:18:7",
8251 "typeDescriptions": {
8252 "typeIdentifier": "t_bool",
8253 "typeString": "bool"
8254 }
8255 },
8256 "src": "2707:46:7",
8257 "typeDescriptions": {
8258 "typeIdentifier": "t_bool",
8259 "typeString": "bool"
8260 }
8261 },
8262 "falseBody": null,
8263 "id": 782,
8264 "nodeType": "IfStatement",
8265 "src": "2704:103:7",
8266 "trueBody": {
8267 "id": 781,
8268 "nodeType": "Block",
8269 "src": "2754:53:7",
8270 "statements": [
8271 {
8272 "expression": {
8273 "argumentTypes": null,
8274 "arguments": [
8275 {
8276 "argumentTypes": null,
8277 "baseExpression": {
8278 "argumentTypes": null,
8279 "id": 776,
8280 "name": "endpoints",
8281 "nodeType": "Identifier",
8282 "overloadedDeclarations": [],
8283 "referencedDeclaration": 749,
8284 "src": "2785:9:7",
8285 "typeDescriptions": {
8286 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
8287 "typeString": "bytes32[] memory"
8288 }
8289 },
8290 "id": 778,
8291 "indexExpression": {
8292 "argumentTypes": null,
8293 "id": 777,
8294 "name": "i",
8295 "nodeType": "Identifier",
8296 "overloadedDeclarations": [],
8297 "referencedDeclaration": 755,
8298 "src": "2795:1:7",
8299 "typeDescriptions": {
8300 "typeIdentifier": "t_uint256",
8301 "typeString": "uint256"
8302 }
8303 },
8304 "isConstant": false,
8305 "isLValue": true,
8306 "isPure": false,
8307 "lValueRequested": false,
8308 "nodeType": "IndexAccess",
8309 "src": "2785:12:7",
8310 "typeDescriptions": {
8311 "typeIdentifier": "t_bytes32",
8312 "typeString": "bytes32"
8313 }
8314 }
8315 ],
8316 "expression": {
8317 "argumentTypes": [
8318 {
8319 "typeIdentifier": "t_bytes32",
8320 "typeString": "bytes32"
8321 }
8322 ],
8323 "expression": {
8324 "argumentTypes": null,
8325 "id": 774,
8326 "name": "contest",
8327 "nodeType": "Identifier",
8328 "overloadedDeclarations": [],
8329 "referencedDeclaration": 507,
8330 "src": "2771:7:7",
8331 "typeDescriptions": {
8332 "typeIdentifier": "t_contract$_SampleContest_$3254",
8333 "typeString": "contract SampleContest"
8334 }
8335 },
8336 "id": 775,
8337 "isConstant": false,
8338 "isLValue": false,
8339 "isPure": false,
8340 "lValueRequested": false,
8341 "memberName": "judge",
8342 "nodeType": "MemberAccess",
8343 "referencedDeclaration": 2459,
8344 "src": "2771:13:7",
8345 "typeDescriptions": {
8346 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
8347 "typeString": "function (bytes32) external"
8348 }
8349 },
8350 "id": 779,
8351 "isConstant": false,
8352 "isLValue": false,
8353 "isPure": false,
8354 "kind": "functionCall",
8355 "lValueRequested": false,
8356 "names": [],
8357 "nodeType": "FunctionCall",
8358 "src": "2771:27:7",
8359 "typeDescriptions": {
8360 "typeIdentifier": "t_tuple$__$",
8361 "typeString": "tuple()"
8362 }
8363 },
8364 "functionReturnParameters": 709,
8365 "id": 780,
8366 "nodeType": "Return",
8367 "src": "2764:34:7"
8368 }
8369 ]
8370 }
8371 },
8372 {
8373 "condition": {
8374 "argumentTypes": null,
8375 "commonType": {
8376 "typeIdentifier": "t_bool",
8377 "typeString": "bool"
8378 },
8379 "id": 791,
8380 "isConstant": false,
8381 "isLValue": false,
8382 "isPure": false,
8383 "lValueRequested": false,
8384 "leftExpression": {
8385 "argumentTypes": null,
8386 "commonType": {
8387 "typeIdentifier": "t_bytes32",
8388 "typeString": "bytes32"
8389 },
8390 "id": 787,
8391 "isConstant": false,
8392 "isLValue": false,
8393 "isPure": false,
8394 "lValueRequested": false,
8395 "leftExpression": {
8396 "argumentTypes": null,
8397 "baseExpression": {
8398 "argumentTypes": null,
8399 "id": 783,
8400 "name": "endpoints",
8401 "nodeType": "Identifier",
8402 "overloadedDeclarations": [],
8403 "referencedDeclaration": 749,
8404 "src": "2817:9:7",
8405 "typeDescriptions": {
8406 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
8407 "typeString": "bytes32[] memory"
8408 }
8409 },
8410 "id": 785,
8411 "indexExpression": {
8412 "argumentTypes": null,
8413 "id": 784,
8414 "name": "i",
8415 "nodeType": "Identifier",
8416 "overloadedDeclarations": [],
8417 "referencedDeclaration": 755,
8418 "src": "2827:1:7",
8419 "typeDescriptions": {
8420 "typeIdentifier": "t_uint256",
8421 "typeString": "uint256"
8422 }
8423 },
8424 "isConstant": false,
8425 "isLValue": true,
8426 "isPure": false,
8427 "lValueRequested": false,
8428 "nodeType": "IndexAccess",
8429 "src": "2817:12:7",
8430 "typeDescriptions": {
8431 "typeIdentifier": "t_bytes32",
8432 "typeString": "bytes32"
8433 }
8434 },
8435 "nodeType": "BinaryOperation",
8436 "operator": "==",
8437 "rightExpression": {
8438 "argumentTypes": null,
8439 "id": 786,
8440 "name": "downEndpoint",
8441 "nodeType": "Identifier",
8442 "overloadedDeclarations": [],
8443 "referencedDeclaration": 519,
8444 "src": "2831:12:7",
8445 "typeDescriptions": {
8446 "typeIdentifier": "t_bytes32",
8447 "typeString": "bytes32"
8448 }
8449 },
8450 "src": "2817:26:7",
8451 "typeDescriptions": {
8452 "typeIdentifier": "t_bool",
8453 "typeString": "bool"
8454 }
8455 },
8456 "nodeType": "BinaryOperation",
8457 "operator": "&&",
8458 "rightExpression": {
8459 "argumentTypes": null,
8460 "commonType": {
8461 "typeIdentifier": "t_uint256",
8462 "typeString": "uint256"
8463 },
8464 "id": 790,
8465 "isConstant": false,
8466 "isLValue": false,
8467 "isPure": false,
8468 "lValueRequested": false,
8469 "leftExpression": {
8470 "argumentTypes": null,
8471 "id": 788,
8472 "name": "price",
8473 "nodeType": "Identifier",
8474 "overloadedDeclarations": [],
8475 "referencedDeclaration": 739,
8476 "src": "2847:5:7",
8477 "typeDescriptions": {
8478 "typeIdentifier": "t_uint256",
8479 "typeString": "uint256"
8480 }
8481 },
8482 "nodeType": "BinaryOperation",
8483 "operator": "<",
8484 "rightExpression": {
8485 "argumentTypes": null,
8486 "id": 789,
8487 "name": "startPrice",
8488 "nodeType": "Identifier",
8489 "overloadedDeclarations": [],
8490 "referencedDeclaration": 515,
8491 "src": "2853:10:7",
8492 "typeDescriptions": {
8493 "typeIdentifier": "t_uint256",
8494 "typeString": "uint256"
8495 }
8496 },
8497 "src": "2847:16:7",
8498 "typeDescriptions": {
8499 "typeIdentifier": "t_bool",
8500 "typeString": "bool"
8501 }
8502 },
8503 "src": "2817:46:7",
8504 "typeDescriptions": {
8505 "typeIdentifier": "t_bool",
8506 "typeString": "bool"
8507 }
8508 },
8509 "falseBody": null,
8510 "id": 800,
8511 "nodeType": "IfStatement",
8512 "src": "2814:103:7",
8513 "trueBody": {
8514 "id": 799,
8515 "nodeType": "Block",
8516 "src": "2864:53:7",
8517 "statements": [
8518 {
8519 "expression": {
8520 "argumentTypes": null,
8521 "arguments": [
8522 {
8523 "argumentTypes": null,
8524 "baseExpression": {
8525 "argumentTypes": null,
8526 "id": 794,
8527 "name": "endpoints",
8528 "nodeType": "Identifier",
8529 "overloadedDeclarations": [],
8530 "referencedDeclaration": 749,
8531 "src": "2895:9:7",
8532 "typeDescriptions": {
8533 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
8534 "typeString": "bytes32[] memory"
8535 }
8536 },
8537 "id": 796,
8538 "indexExpression": {
8539 "argumentTypes": null,
8540 "id": 795,
8541 "name": "i",
8542 "nodeType": "Identifier",
8543 "overloadedDeclarations": [],
8544 "referencedDeclaration": 755,
8545 "src": "2905:1:7",
8546 "typeDescriptions": {
8547 "typeIdentifier": "t_uint256",
8548 "typeString": "uint256"
8549 }
8550 },
8551 "isConstant": false,
8552 "isLValue": true,
8553 "isPure": false,
8554 "lValueRequested": false,
8555 "nodeType": "IndexAccess",
8556 "src": "2895:12:7",
8557 "typeDescriptions": {
8558 "typeIdentifier": "t_bytes32",
8559 "typeString": "bytes32"
8560 }
8561 }
8562 ],
8563 "expression": {
8564 "argumentTypes": [
8565 {
8566 "typeIdentifier": "t_bytes32",
8567 "typeString": "bytes32"
8568 }
8569 ],
8570 "expression": {
8571 "argumentTypes": null,
8572 "id": 792,
8573 "name": "contest",
8574 "nodeType": "Identifier",
8575 "overloadedDeclarations": [],
8576 "referencedDeclaration": 507,
8577 "src": "2881:7:7",
8578 "typeDescriptions": {
8579 "typeIdentifier": "t_contract$_SampleContest_$3254",
8580 "typeString": "contract SampleContest"
8581 }
8582 },
8583 "id": 793,
8584 "isConstant": false,
8585 "isLValue": false,
8586 "isPure": false,
8587 "lValueRequested": false,
8588 "memberName": "judge",
8589 "nodeType": "MemberAccess",
8590 "referencedDeclaration": 2459,
8591 "src": "2881:13:7",
8592 "typeDescriptions": {
8593 "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
8594 "typeString": "function (bytes32) external"
8595 }
8596 },
8597 "id": 797,
8598 "isConstant": false,
8599 "isLValue": false,
8600 "isPure": false,
8601 "kind": "functionCall",
8602 "lValueRequested": false,
8603 "names": [],
8604 "nodeType": "FunctionCall",
8605 "src": "2881:27:7",
8606 "typeDescriptions": {
8607 "typeIdentifier": "t_tuple$__$",
8608 "typeString": "tuple()"
8609 }
8610 },
8611 "functionReturnParameters": 709,
8612 "id": 798,
8613 "nodeType": "Return",
8614 "src": "2874:34:7"
8615 }
8616 ]
8617 }
8618 }
8619 ]
8620 },
8621 "condition": {
8622 "argumentTypes": null,
8623 "commonType": {
8624 "typeIdentifier": "t_uint256",
8625 "typeString": "uint256"
8626 },
8627 "id": 761,
8628 "isConstant": false,
8629 "isLValue": false,
8630 "isPure": false,
8631 "lValueRequested": false,
8632 "leftExpression": {
8633 "argumentTypes": null,
8634 "id": 758,
8635 "name": "i",
8636 "nodeType": "Identifier",
8637 "overloadedDeclarations": [],
8638 "referencedDeclaration": 755,
8639 "src": "2673:1:7",
8640 "typeDescriptions": {
8641 "typeIdentifier": "t_uint256",
8642 "typeString": "uint256"
8643 }
8644 },
8645 "nodeType": "BinaryOperation",
8646 "operator": "<",
8647 "rightExpression": {
8648 "argumentTypes": null,
8649 "expression": {
8650 "argumentTypes": null,
8651 "id": 759,
8652 "name": "endpoints",
8653 "nodeType": "Identifier",
8654 "overloadedDeclarations": [],
8655 "referencedDeclaration": 749,
8656 "src": "2675:9:7",
8657 "typeDescriptions": {
8658 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
8659 "typeString": "bytes32[] memory"
8660 }
8661 },
8662 "id": 760,
8663 "isConstant": false,
8664 "isLValue": false,
8665 "isPure": false,
8666 "lValueRequested": false,
8667 "memberName": "length",
8668 "nodeType": "MemberAccess",
8669 "referencedDeclaration": null,
8670 "src": "2675:16:7",
8671 "typeDescriptions": {
8672 "typeIdentifier": "t_uint256",
8673 "typeString": "uint256"
8674 }
8675 },
8676 "src": "2673:18:7",
8677 "typeDescriptions": {
8678 "typeIdentifier": "t_bool",
8679 "typeString": "bool"
8680 }
8681 },
8682 "id": 802,
8683 "initializationExpression": {
8684 "assignments": [
8685 755
8686 ],
8687 "declarations": [
8688 {
8689 "constant": false,
8690 "id": 755,
8691 "name": "i",
8692 "nodeType": "VariableDeclaration",
8693 "scope": 804,
8694 "src": "2661:9:7",
8695 "stateVariable": false,
8696 "storageLocation": "default",
8697 "typeDescriptions": {
8698 "typeIdentifier": "t_uint256",
8699 "typeString": "uint256"
8700 },
8701 "typeName": {
8702 "id": 754,
8703 "name": "uint256",
8704 "nodeType": "ElementaryTypeName",
8705 "src": "2661:7:7",
8706 "typeDescriptions": {
8707 "typeIdentifier": "t_uint256",
8708 "typeString": "uint256"
8709 }
8710 },
8711 "value": null,
8712 "visibility": "internal"
8713 }
8714 ],
8715 "id": 757,
8716 "initialValue": {
8717 "argumentTypes": null,
8718 "hexValue": "30",
8719 "id": 756,
8720 "isConstant": false,
8721 "isLValue": false,
8722 "isPure": true,
8723 "kind": "number",
8724 "lValueRequested": false,
8725 "nodeType": "Literal",
8726 "src": "2671:1:7",
8727 "subdenomination": null,
8728 "typeDescriptions": {
8729 "typeIdentifier": "t_rational_0_by_1",
8730 "typeString": "int_const 0"
8731 },
8732 "value": "0"
8733 },
8734 "nodeType": "VariableDeclarationStatement",
8735 "src": "2661:11:7"
8736 },
8737 "loopExpression": {
8738 "expression": {
8739 "argumentTypes": null,
8740 "id": 763,
8741 "isConstant": false,
8742 "isLValue": false,
8743 "isPure": false,
8744 "lValueRequested": false,
8745 "nodeType": "UnaryOperation",
8746 "operator": "++",
8747 "prefix": false,
8748 "src": "2692:3:7",
8749 "subExpression": {
8750 "argumentTypes": null,
8751 "id": 762,
8752 "name": "i",
8753 "nodeType": "Identifier",
8754 "overloadedDeclarations": [],
8755 "referencedDeclaration": 755,
8756 "src": "2692:1:7",
8757 "typeDescriptions": {
8758 "typeIdentifier": "t_uint256",
8759 "typeString": "uint256"
8760 }
8761 },
8762 "typeDescriptions": {
8763 "typeIdentifier": "t_uint256",
8764 "typeString": "uint256"
8765 }
8766 },
8767 "id": 764,
8768 "nodeType": "ExpressionStatement",
8769 "src": "2692:3:7"
8770 },
8771 "nodeType": "ForStatement",
8772 "src": "2657:266:7"
8773 }
8774 ]
8775 },
8776 "documentation": null,
8777 "id": 804,
8778 "implemented": true,
8779 "isConstructor": false,
8780 "isDeclaredConst": false,
8781 "modifiers": [],
8782 "name": "callback",
8783 "nodeType": "FunctionDefinition",
8784 "parameters": {
8785 "id": 708,
8786 "nodeType": "ParameterList",
8787 "parameters": [
8788 {
8789 "constant": false,
8790 "id": 704,
8791 "name": "_id",
8792 "nodeType": "VariableDeclaration",
8793 "scope": 804,
8794 "src": "2237:11:7",
8795 "stateVariable": false,
8796 "storageLocation": "default",
8797 "typeDescriptions": {
8798 "typeIdentifier": "t_uint256",
8799 "typeString": "uint256"
8800 },
8801 "typeName": {
8802 "id": 703,
8803 "name": "uint256",
8804 "nodeType": "ElementaryTypeName",
8805 "src": "2237:7:7",
8806 "typeDescriptions": {
8807 "typeIdentifier": "t_uint256",
8808 "typeString": "uint256"
8809 }
8810 },
8811 "value": null,
8812 "visibility": "internal"
8813 },
8814 {
8815 "constant": false,
8816 "id": 707,
8817 "name": "responses",
8818 "nodeType": "VariableDeclaration",
8819 "scope": 804,
8820 "src": "2250:15:7",
8821 "stateVariable": false,
8822 "storageLocation": "default",
8823 "typeDescriptions": {
8824 "typeIdentifier": "t_array$_t_int256_$dyn_calldata_ptr",
8825 "typeString": "int256[]"
8826 },
8827 "typeName": {
8828 "baseType": {
8829 "id": 705,
8830 "name": "int",
8831 "nodeType": "ElementaryTypeName",
8832 "src": "2250:3:7",
8833 "typeDescriptions": {
8834 "typeIdentifier": "t_int256",
8835 "typeString": "int256"
8836 }
8837 },
8838 "id": 706,
8839 "length": null,
8840 "nodeType": "ArrayTypeName",
8841 "src": "2250:5:7",
8842 "typeDescriptions": {
8843 "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
8844 "typeString": "int256[]"
8845 }
8846 },
8847 "value": null,
8848 "visibility": "internal"
8849 }
8850 ],
8851 "src": "2236:30:7"
8852 },
8853 "payable": false,
8854 "returnParameters": {
8855 "id": 709,
8856 "nodeType": "ParameterList",
8857 "parameters": [],
8858 "src": "2276:0:7"
8859 },
8860 "scope": 805,
8861 "src": "2219:708:7",
8862 "stateMutability": "nonpayable",
8863 "superFunction": 868,
8864 "visibility": "external"
8865 }
8866 ],
8867 "scope": 806,
8868 "src": "302:2628:7"
8869 }
8870 ],
8871 "src": "0:2931:7"
8872 },
8873 "compiler": {
8874 "name": "solc",
8875 "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
8876 },
8877 "networks": {},
8878 "schemaVersion": "2.0.2",
8879 "updatedAt": "2019-06-25T21:15:14.142Z"
8880}
\No newline at end of file