UNPKG

101 kBJSONView Raw
1{
2 "contractName": "MetaCoin",
3 "abi": [
4 {
5 "inputs": [],
6 "payable": false,
7 "stateMutability": "nonpayable",
8 "type": "constructor"
9 },
10 {
11 "anonymous": false,
12 "inputs": [
13 {
14 "indexed": true,
15 "name": "_from",
16 "type": "address"
17 },
18 {
19 "indexed": true,
20 "name": "_to",
21 "type": "address"
22 },
23 {
24 "indexed": false,
25 "name": "_value",
26 "type": "uint256"
27 }
28 ],
29 "name": "Transfer",
30 "type": "event"
31 },
32 {
33 "constant": false,
34 "inputs": [
35 {
36 "name": "receiver",
37 "type": "address"
38 },
39 {
40 "name": "amount",
41 "type": "uint256"
42 }
43 ],
44 "name": "sendCoin",
45 "outputs": [
46 {
47 "name": "sufficient",
48 "type": "bool"
49 }
50 ],
51 "payable": false,
52 "stateMutability": "nonpayable",
53 "type": "function"
54 },
55 {
56 "constant": true,
57 "inputs": [
58 {
59 "name": "addr",
60 "type": "address"
61 }
62 ],
63 "name": "getBalanceInEth",
64 "outputs": [
65 {
66 "name": "",
67 "type": "uint256"
68 }
69 ],
70 "payable": false,
71 "stateMutability": "view",
72 "type": "function"
73 },
74 {
75 "constant": true,
76 "inputs": [
77 {
78 "name": "addr",
79 "type": "address"
80 }
81 ],
82 "name": "getBalance",
83 "outputs": [
84 {
85 "name": "",
86 "type": "uint256"
87 }
88 ],
89 "payable": false,
90 "stateMutability": "view",
91 "type": "function"
92 }
93 ],
94 "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getBalanceInEth\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendCoin\",\"outputs\":[{\"name\":\"sufficient\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/mike/work/truffle/metacoin/contracts/MetaCoin.sol\":\"MetaCoin\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/mike/work/truffle/metacoin/contracts/ConvertLib.sol\":{\"keccak256\":\"0x64971bee9ef0af43109f80ffc9912eaea745c8d8ba775fe42d27e24ad307dab9\",\"urls\":[\"bzzr://0cf7c2951278cb5e786ca88a13e11558cd30b1f49f0662b55bc346f0c2ecd9ed\"]},\"/home/mike/work/truffle/metacoin/contracts/MetaCoin.sol\":{\"keccak256\":\"0x8a5ca0851c8caee3c536837e0e2f65052a6ff6bbbc7cfacc0d6f0b9b2d59d1ac\",\"urls\":[\"bzzr://8a0d816955eb2e5d0c4119f887bed9ce02e28e83b61b0b7545a22de3a97fc8f5\"]}},\"version\":1}",
95 "bytecode": "0x608060405234801561001057600080fd5b506127106000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103cd806100656000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80637bd703e81461004657806390b98a111461009e578063f8b2cb4f14610104575b600080fd5b6100886004803603602081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015c565b6040518082815260200191505060405180910390f35b6100ea600480360360408110156100b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610200565b604051808215151515815260200191505060405180910390f35b6101466004803603602081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b6040518082815260200191505060405180910390f35b600073__ConvertLib____________________________6396e4ee3d61018184610359565b60026040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156101be57600080fd5b505af41580156101d2573d6000803e3d6000fd5b505050506040513d60208110156101e857600080fd5b81019080805190602001909291905050509050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156102515760009050610353565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905091905056fea165627a7a723058202b0b566dc91aa5cd79c06294c526ee762eb2058d5cbccca9034bb1d1a3dd33380029",
96 "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80637bd703e81461004657806390b98a111461009e578063f8b2cb4f14610104575b600080fd5b6100886004803603602081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015c565b6040518082815260200191505060405180910390f35b6100ea600480360360408110156100b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610200565b604051808215151515815260200191505060405180910390f35b6101466004803603602081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b6040518082815260200191505060405180910390f35b600073__ConvertLib____________________________6396e4ee3d61018184610359565b60026040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156101be57600080fd5b505af41580156101d2573d6000803e3d6000fd5b505050506040513d60208110156101e857600080fd5b81019080805190602001909291905050509050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156102515760009050610353565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905091905056fea165627a7a723058202b0b566dc91aa5cd79c06294c526ee762eb2058d5cbccca9034bb1d1a3dd33380029",
97 "sourceMap": "324:674:1:-;;;461:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;461:56:1;508:5;486:8;:19;495:9;486:19;;;;;;;;;;;;;;;:27;;;;324:674;;;;;;",
98 "deployedSourceMap": "324:674:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:674:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:117;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;787:117:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;520:264;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;520:264:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;907:89;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;907:89:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;787:117;846:4;862:10;:18;881:16;892:4;881:10;:16::i;:::-;898:1;862:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;862:38:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;862:38:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;862:38:1;;;;;;;;;;;;;;;;855:45;;787:117;;;:::o;520:264::-;584:15;632:6;609:8;:20;618:10;609:20;;;;;;;;;;;;;;;;:29;605:47;;;647:5;640:12;;;;605:47;680:6;656:8;:20;665:10;656:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;712:6;690:8;:18;699:8;690:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;748:8;727:38;;736:10;727:38;;;758:6;727:38;;;;;;;;;;;;;;;;;;776:4;769:11;;520:264;;;;;:::o;907:89::-;961:4;978:8;:14;987:4;978:14;;;;;;;;;;;;;;;;971:21;;907:89;;;:::o",
99 "source": "pragma solidity >=0.4.25 <0.6.0;\n\nimport \"./ConvertLib.sol\";\n\n// This is just a simple example of a coin-like contract.\n// It is not standards compatible and cannot be expected to talk to other\n// coin/token contracts. If you want to create a standards-compliant\n// token, see: https://github.com/ConsenSys/Tokens. Cheers!\n\ncontract MetaCoin {\n\tmapping (address => uint) balances;\n\n\tevent Transfer(address indexed _from, address indexed _to, uint256 _value);\n\n\tconstructor() public {\n\t\tbalances[tx.origin] = 10000;\n\t}\n\n\tfunction sendCoin(address receiver, uint amount) public returns(bool sufficient) {\n\t\tif (balances[msg.sender] < amount) return false;\n\t\tbalances[msg.sender] -= amount;\n\t\tbalances[receiver] += amount;\n\t\temit Transfer(msg.sender, receiver, amount);\n\t\treturn true;\n\t}\n\n\tfunction getBalanceInEth(address addr) public view returns(uint){\n\t\treturn ConvertLib.convert(getBalance(addr),2);\n\t}\n\n\tfunction getBalance(address addr) public view returns(uint) {\n\t\treturn balances[addr];\n\t}\n}\n",
100 "sourcePath": "/home/mike/work/truffle/metacoin/contracts/MetaCoin.sol",
101 "ast": {
102 "absolutePath": "/home/mike/work/truffle/metacoin/contracts/MetaCoin.sol",
103 "exportedSymbols": {
104 "MetaCoin": [
105 112
106 ]
107 },
108 "id": 113,
109 "nodeType": "SourceUnit",
110 "nodes": [
111 {
112 "id": 18,
113 "literals": [
114 "solidity",
115 ">=",
116 "0.4",
117 ".25",
118 "<",
119 "0.6",
120 ".0"
121 ],
122 "nodeType": "PragmaDirective",
123 "src": "0:32:1"
124 },
125 {
126 "absolutePath": "/home/mike/work/truffle/metacoin/contracts/ConvertLib.sol",
127 "file": "./ConvertLib.sol",
128 "id": 19,
129 "nodeType": "ImportDirective",
130 "scope": 113,
131 "sourceUnit": 17,
132 "src": "34:26:1",
133 "symbolAliases": [],
134 "unitAlias": ""
135 },
136 {
137 "baseContracts": [],
138 "contractDependencies": [],
139 "contractKind": "contract",
140 "documentation": null,
141 "fullyImplemented": true,
142 "id": 112,
143 "linearizedBaseContracts": [
144 112
145 ],
146 "name": "MetaCoin",
147 "nodeType": "ContractDefinition",
148 "nodes": [
149 {
150 "constant": false,
151 "id": 23,
152 "name": "balances",
153 "nodeType": "VariableDeclaration",
154 "scope": 112,
155 "src": "345:34:1",
156 "stateVariable": true,
157 "storageLocation": "default",
158 "typeDescriptions": {
159 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
160 "typeString": "mapping(address => uint256)"
161 },
162 "typeName": {
163 "id": 22,
164 "keyType": {
165 "id": 20,
166 "name": "address",
167 "nodeType": "ElementaryTypeName",
168 "src": "354:7:1",
169 "typeDescriptions": {
170 "typeIdentifier": "t_address",
171 "typeString": "address"
172 }
173 },
174 "nodeType": "Mapping",
175 "src": "345:25:1",
176 "typeDescriptions": {
177 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
178 "typeString": "mapping(address => uint256)"
179 },
180 "valueType": {
181 "id": 21,
182 "name": "uint",
183 "nodeType": "ElementaryTypeName",
184 "src": "365:4:1",
185 "typeDescriptions": {
186 "typeIdentifier": "t_uint256",
187 "typeString": "uint256"
188 }
189 }
190 },
191 "value": null,
192 "visibility": "internal"
193 },
194 {
195 "anonymous": false,
196 "documentation": null,
197 "id": 31,
198 "name": "Transfer",
199 "nodeType": "EventDefinition",
200 "parameters": {
201 "id": 30,
202 "nodeType": "ParameterList",
203 "parameters": [
204 {
205 "constant": false,
206 "id": 25,
207 "indexed": true,
208 "name": "_from",
209 "nodeType": "VariableDeclaration",
210 "scope": 31,
211 "src": "398:21:1",
212 "stateVariable": false,
213 "storageLocation": "default",
214 "typeDescriptions": {
215 "typeIdentifier": "t_address",
216 "typeString": "address"
217 },
218 "typeName": {
219 "id": 24,
220 "name": "address",
221 "nodeType": "ElementaryTypeName",
222 "src": "398:7:1",
223 "stateMutability": "nonpayable",
224 "typeDescriptions": {
225 "typeIdentifier": "t_address",
226 "typeString": "address"
227 }
228 },
229 "value": null,
230 "visibility": "internal"
231 },
232 {
233 "constant": false,
234 "id": 27,
235 "indexed": true,
236 "name": "_to",
237 "nodeType": "VariableDeclaration",
238 "scope": 31,
239 "src": "421:19:1",
240 "stateVariable": false,
241 "storageLocation": "default",
242 "typeDescriptions": {
243 "typeIdentifier": "t_address",
244 "typeString": "address"
245 },
246 "typeName": {
247 "id": 26,
248 "name": "address",
249 "nodeType": "ElementaryTypeName",
250 "src": "421:7:1",
251 "stateMutability": "nonpayable",
252 "typeDescriptions": {
253 "typeIdentifier": "t_address",
254 "typeString": "address"
255 }
256 },
257 "value": null,
258 "visibility": "internal"
259 },
260 {
261 "constant": false,
262 "id": 29,
263 "indexed": false,
264 "name": "_value",
265 "nodeType": "VariableDeclaration",
266 "scope": 31,
267 "src": "442:14:1",
268 "stateVariable": false,
269 "storageLocation": "default",
270 "typeDescriptions": {
271 "typeIdentifier": "t_uint256",
272 "typeString": "uint256"
273 },
274 "typeName": {
275 "id": 28,
276 "name": "uint256",
277 "nodeType": "ElementaryTypeName",
278 "src": "442:7:1",
279 "typeDescriptions": {
280 "typeIdentifier": "t_uint256",
281 "typeString": "uint256"
282 }
283 },
284 "value": null,
285 "visibility": "internal"
286 }
287 ],
288 "src": "397:60:1"
289 },
290 "src": "383:75:1"
291 },
292 {
293 "body": {
294 "id": 41,
295 "nodeType": "Block",
296 "src": "482:35:1",
297 "statements": [
298 {
299 "expression": {
300 "argumentTypes": null,
301 "id": 39,
302 "isConstant": false,
303 "isLValue": false,
304 "isPure": false,
305 "lValueRequested": false,
306 "leftHandSide": {
307 "argumentTypes": null,
308 "baseExpression": {
309 "argumentTypes": null,
310 "id": 34,
311 "name": "balances",
312 "nodeType": "Identifier",
313 "overloadedDeclarations": [],
314 "referencedDeclaration": 23,
315 "src": "486:8:1",
316 "typeDescriptions": {
317 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
318 "typeString": "mapping(address => uint256)"
319 }
320 },
321 "id": 37,
322 "indexExpression": {
323 "argumentTypes": null,
324 "expression": {
325 "argumentTypes": null,
326 "id": 35,
327 "name": "tx",
328 "nodeType": "Identifier",
329 "overloadedDeclarations": [],
330 "referencedDeclaration": 196,
331 "src": "495:2:1",
332 "typeDescriptions": {
333 "typeIdentifier": "t_magic_transaction",
334 "typeString": "tx"
335 }
336 },
337 "id": 36,
338 "isConstant": false,
339 "isLValue": false,
340 "isPure": false,
341 "lValueRequested": false,
342 "memberName": "origin",
343 "nodeType": "MemberAccess",
344 "referencedDeclaration": null,
345 "src": "495:9:1",
346 "typeDescriptions": {
347 "typeIdentifier": "t_address_payable",
348 "typeString": "address payable"
349 }
350 },
351 "isConstant": false,
352 "isLValue": true,
353 "isPure": false,
354 "lValueRequested": true,
355 "nodeType": "IndexAccess",
356 "src": "486:19:1",
357 "typeDescriptions": {
358 "typeIdentifier": "t_uint256",
359 "typeString": "uint256"
360 }
361 },
362 "nodeType": "Assignment",
363 "operator": "=",
364 "rightHandSide": {
365 "argumentTypes": null,
366 "hexValue": "3130303030",
367 "id": 38,
368 "isConstant": false,
369 "isLValue": false,
370 "isPure": true,
371 "kind": "number",
372 "lValueRequested": false,
373 "nodeType": "Literal",
374 "src": "508:5:1",
375 "subdenomination": null,
376 "typeDescriptions": {
377 "typeIdentifier": "t_rational_10000_by_1",
378 "typeString": "int_const 10000"
379 },
380 "value": "10000"
381 },
382 "src": "486:27:1",
383 "typeDescriptions": {
384 "typeIdentifier": "t_uint256",
385 "typeString": "uint256"
386 }
387 },
388 "id": 40,
389 "nodeType": "ExpressionStatement",
390 "src": "486:27:1"
391 }
392 ]
393 },
394 "documentation": null,
395 "id": 42,
396 "implemented": true,
397 "kind": "constructor",
398 "modifiers": [],
399 "name": "",
400 "nodeType": "FunctionDefinition",
401 "parameters": {
402 "id": 32,
403 "nodeType": "ParameterList",
404 "parameters": [],
405 "src": "472:2:1"
406 },
407 "returnParameters": {
408 "id": 33,
409 "nodeType": "ParameterList",
410 "parameters": [],
411 "src": "482:0:1"
412 },
413 "scope": 112,
414 "src": "461:56:1",
415 "stateMutability": "nonpayable",
416 "superFunction": null,
417 "visibility": "public"
418 },
419 {
420 "body": {
421 "id": 82,
422 "nodeType": "Block",
423 "src": "601:183:1",
424 "statements": [
425 {
426 "condition": {
427 "argumentTypes": null,
428 "commonType": {
429 "typeIdentifier": "t_uint256",
430 "typeString": "uint256"
431 },
432 "id": 56,
433 "isConstant": false,
434 "isLValue": false,
435 "isPure": false,
436 "lValueRequested": false,
437 "leftExpression": {
438 "argumentTypes": null,
439 "baseExpression": {
440 "argumentTypes": null,
441 "id": 51,
442 "name": "balances",
443 "nodeType": "Identifier",
444 "overloadedDeclarations": [],
445 "referencedDeclaration": 23,
446 "src": "609:8:1",
447 "typeDescriptions": {
448 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
449 "typeString": "mapping(address => uint256)"
450 }
451 },
452 "id": 54,
453 "indexExpression": {
454 "argumentTypes": null,
455 "expression": {
456 "argumentTypes": null,
457 "id": 52,
458 "name": "msg",
459 "nodeType": "Identifier",
460 "overloadedDeclarations": [],
461 "referencedDeclaration": 184,
462 "src": "618:3:1",
463 "typeDescriptions": {
464 "typeIdentifier": "t_magic_message",
465 "typeString": "msg"
466 }
467 },
468 "id": 53,
469 "isConstant": false,
470 "isLValue": false,
471 "isPure": false,
472 "lValueRequested": false,
473 "memberName": "sender",
474 "nodeType": "MemberAccess",
475 "referencedDeclaration": null,
476 "src": "618:10:1",
477 "typeDescriptions": {
478 "typeIdentifier": "t_address_payable",
479 "typeString": "address payable"
480 }
481 },
482 "isConstant": false,
483 "isLValue": true,
484 "isPure": false,
485 "lValueRequested": false,
486 "nodeType": "IndexAccess",
487 "src": "609:20:1",
488 "typeDescriptions": {
489 "typeIdentifier": "t_uint256",
490 "typeString": "uint256"
491 }
492 },
493 "nodeType": "BinaryOperation",
494 "operator": "<",
495 "rightExpression": {
496 "argumentTypes": null,
497 "id": 55,
498 "name": "amount",
499 "nodeType": "Identifier",
500 "overloadedDeclarations": [],
501 "referencedDeclaration": 46,
502 "src": "632:6:1",
503 "typeDescriptions": {
504 "typeIdentifier": "t_uint256",
505 "typeString": "uint256"
506 }
507 },
508 "src": "609:29:1",
509 "typeDescriptions": {
510 "typeIdentifier": "t_bool",
511 "typeString": "bool"
512 }
513 },
514 "falseBody": null,
515 "id": 59,
516 "nodeType": "IfStatement",
517 "src": "605:47:1",
518 "trueBody": {
519 "expression": {
520 "argumentTypes": null,
521 "hexValue": "66616c7365",
522 "id": 57,
523 "isConstant": false,
524 "isLValue": false,
525 "isPure": true,
526 "kind": "bool",
527 "lValueRequested": false,
528 "nodeType": "Literal",
529 "src": "647:5:1",
530 "subdenomination": null,
531 "typeDescriptions": {
532 "typeIdentifier": "t_bool",
533 "typeString": "bool"
534 },
535 "value": "false"
536 },
537 "functionReturnParameters": 50,
538 "id": 58,
539 "nodeType": "Return",
540 "src": "640:12:1"
541 }
542 },
543 {
544 "expression": {
545 "argumentTypes": null,
546 "id": 65,
547 "isConstant": false,
548 "isLValue": false,
549 "isPure": false,
550 "lValueRequested": false,
551 "leftHandSide": {
552 "argumentTypes": null,
553 "baseExpression": {
554 "argumentTypes": null,
555 "id": 60,
556 "name": "balances",
557 "nodeType": "Identifier",
558 "overloadedDeclarations": [],
559 "referencedDeclaration": 23,
560 "src": "656:8:1",
561 "typeDescriptions": {
562 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
563 "typeString": "mapping(address => uint256)"
564 }
565 },
566 "id": 63,
567 "indexExpression": {
568 "argumentTypes": null,
569 "expression": {
570 "argumentTypes": null,
571 "id": 61,
572 "name": "msg",
573 "nodeType": "Identifier",
574 "overloadedDeclarations": [],
575 "referencedDeclaration": 184,
576 "src": "665:3:1",
577 "typeDescriptions": {
578 "typeIdentifier": "t_magic_message",
579 "typeString": "msg"
580 }
581 },
582 "id": 62,
583 "isConstant": false,
584 "isLValue": false,
585 "isPure": false,
586 "lValueRequested": false,
587 "memberName": "sender",
588 "nodeType": "MemberAccess",
589 "referencedDeclaration": null,
590 "src": "665:10:1",
591 "typeDescriptions": {
592 "typeIdentifier": "t_address_payable",
593 "typeString": "address payable"
594 }
595 },
596 "isConstant": false,
597 "isLValue": true,
598 "isPure": false,
599 "lValueRequested": true,
600 "nodeType": "IndexAccess",
601 "src": "656:20:1",
602 "typeDescriptions": {
603 "typeIdentifier": "t_uint256",
604 "typeString": "uint256"
605 }
606 },
607 "nodeType": "Assignment",
608 "operator": "-=",
609 "rightHandSide": {
610 "argumentTypes": null,
611 "id": 64,
612 "name": "amount",
613 "nodeType": "Identifier",
614 "overloadedDeclarations": [],
615 "referencedDeclaration": 46,
616 "src": "680:6:1",
617 "typeDescriptions": {
618 "typeIdentifier": "t_uint256",
619 "typeString": "uint256"
620 }
621 },
622 "src": "656:30:1",
623 "typeDescriptions": {
624 "typeIdentifier": "t_uint256",
625 "typeString": "uint256"
626 }
627 },
628 "id": 66,
629 "nodeType": "ExpressionStatement",
630 "src": "656:30:1"
631 },
632 {
633 "expression": {
634 "argumentTypes": null,
635 "id": 71,
636 "isConstant": false,
637 "isLValue": false,
638 "isPure": false,
639 "lValueRequested": false,
640 "leftHandSide": {
641 "argumentTypes": null,
642 "baseExpression": {
643 "argumentTypes": null,
644 "id": 67,
645 "name": "balances",
646 "nodeType": "Identifier",
647 "overloadedDeclarations": [],
648 "referencedDeclaration": 23,
649 "src": "690:8:1",
650 "typeDescriptions": {
651 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
652 "typeString": "mapping(address => uint256)"
653 }
654 },
655 "id": 69,
656 "indexExpression": {
657 "argumentTypes": null,
658 "id": 68,
659 "name": "receiver",
660 "nodeType": "Identifier",
661 "overloadedDeclarations": [],
662 "referencedDeclaration": 44,
663 "src": "699:8:1",
664 "typeDescriptions": {
665 "typeIdentifier": "t_address",
666 "typeString": "address"
667 }
668 },
669 "isConstant": false,
670 "isLValue": true,
671 "isPure": false,
672 "lValueRequested": true,
673 "nodeType": "IndexAccess",
674 "src": "690:18:1",
675 "typeDescriptions": {
676 "typeIdentifier": "t_uint256",
677 "typeString": "uint256"
678 }
679 },
680 "nodeType": "Assignment",
681 "operator": "+=",
682 "rightHandSide": {
683 "argumentTypes": null,
684 "id": 70,
685 "name": "amount",
686 "nodeType": "Identifier",
687 "overloadedDeclarations": [],
688 "referencedDeclaration": 46,
689 "src": "712:6:1",
690 "typeDescriptions": {
691 "typeIdentifier": "t_uint256",
692 "typeString": "uint256"
693 }
694 },
695 "src": "690:28:1",
696 "typeDescriptions": {
697 "typeIdentifier": "t_uint256",
698 "typeString": "uint256"
699 }
700 },
701 "id": 72,
702 "nodeType": "ExpressionStatement",
703 "src": "690:28:1"
704 },
705 {
706 "eventCall": {
707 "argumentTypes": null,
708 "arguments": [
709 {
710 "argumentTypes": null,
711 "expression": {
712 "argumentTypes": null,
713 "id": 74,
714 "name": "msg",
715 "nodeType": "Identifier",
716 "overloadedDeclarations": [],
717 "referencedDeclaration": 184,
718 "src": "736:3:1",
719 "typeDescriptions": {
720 "typeIdentifier": "t_magic_message",
721 "typeString": "msg"
722 }
723 },
724 "id": 75,
725 "isConstant": false,
726 "isLValue": false,
727 "isPure": false,
728 "lValueRequested": false,
729 "memberName": "sender",
730 "nodeType": "MemberAccess",
731 "referencedDeclaration": null,
732 "src": "736:10:1",
733 "typeDescriptions": {
734 "typeIdentifier": "t_address_payable",
735 "typeString": "address payable"
736 }
737 },
738 {
739 "argumentTypes": null,
740 "id": 76,
741 "name": "receiver",
742 "nodeType": "Identifier",
743 "overloadedDeclarations": [],
744 "referencedDeclaration": 44,
745 "src": "748:8:1",
746 "typeDescriptions": {
747 "typeIdentifier": "t_address",
748 "typeString": "address"
749 }
750 },
751 {
752 "argumentTypes": null,
753 "id": 77,
754 "name": "amount",
755 "nodeType": "Identifier",
756 "overloadedDeclarations": [],
757 "referencedDeclaration": 46,
758 "src": "758:6:1",
759 "typeDescriptions": {
760 "typeIdentifier": "t_uint256",
761 "typeString": "uint256"
762 }
763 }
764 ],
765 "expression": {
766 "argumentTypes": [
767 {
768 "typeIdentifier": "t_address_payable",
769 "typeString": "address payable"
770 },
771 {
772 "typeIdentifier": "t_address",
773 "typeString": "address"
774 },
775 {
776 "typeIdentifier": "t_uint256",
777 "typeString": "uint256"
778 }
779 ],
780 "id": 73,
781 "name": "Transfer",
782 "nodeType": "Identifier",
783 "overloadedDeclarations": [],
784 "referencedDeclaration": 31,
785 "src": "727:8:1",
786 "typeDescriptions": {
787 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
788 "typeString": "function (address,address,uint256)"
789 }
790 },
791 "id": 78,
792 "isConstant": false,
793 "isLValue": false,
794 "isPure": false,
795 "kind": "functionCall",
796 "lValueRequested": false,
797 "names": [],
798 "nodeType": "FunctionCall",
799 "src": "727:38:1",
800 "typeDescriptions": {
801 "typeIdentifier": "t_tuple$__$",
802 "typeString": "tuple()"
803 }
804 },
805 "id": 79,
806 "nodeType": "EmitStatement",
807 "src": "722:43:1"
808 },
809 {
810 "expression": {
811 "argumentTypes": null,
812 "hexValue": "74727565",
813 "id": 80,
814 "isConstant": false,
815 "isLValue": false,
816 "isPure": true,
817 "kind": "bool",
818 "lValueRequested": false,
819 "nodeType": "Literal",
820 "src": "776:4:1",
821 "subdenomination": null,
822 "typeDescriptions": {
823 "typeIdentifier": "t_bool",
824 "typeString": "bool"
825 },
826 "value": "true"
827 },
828 "functionReturnParameters": 50,
829 "id": 81,
830 "nodeType": "Return",
831 "src": "769:11:1"
832 }
833 ]
834 },
835 "documentation": null,
836 "id": 83,
837 "implemented": true,
838 "kind": "function",
839 "modifiers": [],
840 "name": "sendCoin",
841 "nodeType": "FunctionDefinition",
842 "parameters": {
843 "id": 47,
844 "nodeType": "ParameterList",
845 "parameters": [
846 {
847 "constant": false,
848 "id": 44,
849 "name": "receiver",
850 "nodeType": "VariableDeclaration",
851 "scope": 83,
852 "src": "538:16:1",
853 "stateVariable": false,
854 "storageLocation": "default",
855 "typeDescriptions": {
856 "typeIdentifier": "t_address",
857 "typeString": "address"
858 },
859 "typeName": {
860 "id": 43,
861 "name": "address",
862 "nodeType": "ElementaryTypeName",
863 "src": "538:7:1",
864 "stateMutability": "nonpayable",
865 "typeDescriptions": {
866 "typeIdentifier": "t_address",
867 "typeString": "address"
868 }
869 },
870 "value": null,
871 "visibility": "internal"
872 },
873 {
874 "constant": false,
875 "id": 46,
876 "name": "amount",
877 "nodeType": "VariableDeclaration",
878 "scope": 83,
879 "src": "556:11:1",
880 "stateVariable": false,
881 "storageLocation": "default",
882 "typeDescriptions": {
883 "typeIdentifier": "t_uint256",
884 "typeString": "uint256"
885 },
886 "typeName": {
887 "id": 45,
888 "name": "uint",
889 "nodeType": "ElementaryTypeName",
890 "src": "556:4:1",
891 "typeDescriptions": {
892 "typeIdentifier": "t_uint256",
893 "typeString": "uint256"
894 }
895 },
896 "value": null,
897 "visibility": "internal"
898 }
899 ],
900 "src": "537:31:1"
901 },
902 "returnParameters": {
903 "id": 50,
904 "nodeType": "ParameterList",
905 "parameters": [
906 {
907 "constant": false,
908 "id": 49,
909 "name": "sufficient",
910 "nodeType": "VariableDeclaration",
911 "scope": 83,
912 "src": "584:15:1",
913 "stateVariable": false,
914 "storageLocation": "default",
915 "typeDescriptions": {
916 "typeIdentifier": "t_bool",
917 "typeString": "bool"
918 },
919 "typeName": {
920 "id": 48,
921 "name": "bool",
922 "nodeType": "ElementaryTypeName",
923 "src": "584:4:1",
924 "typeDescriptions": {
925 "typeIdentifier": "t_bool",
926 "typeString": "bool"
927 }
928 },
929 "value": null,
930 "visibility": "internal"
931 }
932 ],
933 "src": "583:17:1"
934 },
935 "scope": 112,
936 "src": "520:264:1",
937 "stateMutability": "nonpayable",
938 "superFunction": null,
939 "visibility": "public"
940 },
941 {
942 "body": {
943 "id": 98,
944 "nodeType": "Block",
945 "src": "851:53:1",
946 "statements": [
947 {
948 "expression": {
949 "argumentTypes": null,
950 "arguments": [
951 {
952 "argumentTypes": null,
953 "arguments": [
954 {
955 "argumentTypes": null,
956 "id": 93,
957 "name": "addr",
958 "nodeType": "Identifier",
959 "overloadedDeclarations": [],
960 "referencedDeclaration": 85,
961 "src": "892:4:1",
962 "typeDescriptions": {
963 "typeIdentifier": "t_address",
964 "typeString": "address"
965 }
966 }
967 ],
968 "expression": {
969 "argumentTypes": [
970 {
971 "typeIdentifier": "t_address",
972 "typeString": "address"
973 }
974 ],
975 "id": 92,
976 "name": "getBalance",
977 "nodeType": "Identifier",
978 "overloadedDeclarations": [],
979 "referencedDeclaration": 111,
980 "src": "881:10:1",
981 "typeDescriptions": {
982 "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
983 "typeString": "function (address) view returns (uint256)"
984 }
985 },
986 "id": 94,
987 "isConstant": false,
988 "isLValue": false,
989 "isPure": false,
990 "kind": "functionCall",
991 "lValueRequested": false,
992 "names": [],
993 "nodeType": "FunctionCall",
994 "src": "881:16:1",
995 "typeDescriptions": {
996 "typeIdentifier": "t_uint256",
997 "typeString": "uint256"
998 }
999 },
1000 {
1001 "argumentTypes": null,
1002 "hexValue": "32",
1003 "id": 95,
1004 "isConstant": false,
1005 "isLValue": false,
1006 "isPure": true,
1007 "kind": "number",
1008 "lValueRequested": false,
1009 "nodeType": "Literal",
1010 "src": "898:1:1",
1011 "subdenomination": null,
1012 "typeDescriptions": {
1013 "typeIdentifier": "t_rational_2_by_1",
1014 "typeString": "int_const 2"
1015 },
1016 "value": "2"
1017 }
1018 ],
1019 "expression": {
1020 "argumentTypes": [
1021 {
1022 "typeIdentifier": "t_uint256",
1023 "typeString": "uint256"
1024 },
1025 {
1026 "typeIdentifier": "t_rational_2_by_1",
1027 "typeString": "int_const 2"
1028 }
1029 ],
1030 "expression": {
1031 "argumentTypes": null,
1032 "id": 90,
1033 "name": "ConvertLib",
1034 "nodeType": "Identifier",
1035 "overloadedDeclarations": [],
1036 "referencedDeclaration": 16,
1037 "src": "862:10:1",
1038 "typeDescriptions": {
1039 "typeIdentifier": "t_type$_t_contract$_ConvertLib_$16_$",
1040 "typeString": "type(library ConvertLib)"
1041 }
1042 },
1043 "id": 91,
1044 "isConstant": false,
1045 "isLValue": false,
1046 "isPure": false,
1047 "lValueRequested": false,
1048 "memberName": "convert",
1049 "nodeType": "MemberAccess",
1050 "referencedDeclaration": 15,
1051 "src": "862:18:1",
1052 "typeDescriptions": {
1053 "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
1054 "typeString": "function (uint256,uint256) pure returns (uint256)"
1055 }
1056 },
1057 "id": 96,
1058 "isConstant": false,
1059 "isLValue": false,
1060 "isPure": false,
1061 "kind": "functionCall",
1062 "lValueRequested": false,
1063 "names": [],
1064 "nodeType": "FunctionCall",
1065 "src": "862:38:1",
1066 "typeDescriptions": {
1067 "typeIdentifier": "t_uint256",
1068 "typeString": "uint256"
1069 }
1070 },
1071 "functionReturnParameters": 89,
1072 "id": 97,
1073 "nodeType": "Return",
1074 "src": "855:45:1"
1075 }
1076 ]
1077 },
1078 "documentation": null,
1079 "id": 99,
1080 "implemented": true,
1081 "kind": "function",
1082 "modifiers": [],
1083 "name": "getBalanceInEth",
1084 "nodeType": "FunctionDefinition",
1085 "parameters": {
1086 "id": 86,
1087 "nodeType": "ParameterList",
1088 "parameters": [
1089 {
1090 "constant": false,
1091 "id": 85,
1092 "name": "addr",
1093 "nodeType": "VariableDeclaration",
1094 "scope": 99,
1095 "src": "812:12:1",
1096 "stateVariable": false,
1097 "storageLocation": "default",
1098 "typeDescriptions": {
1099 "typeIdentifier": "t_address",
1100 "typeString": "address"
1101 },
1102 "typeName": {
1103 "id": 84,
1104 "name": "address",
1105 "nodeType": "ElementaryTypeName",
1106 "src": "812:7:1",
1107 "stateMutability": "nonpayable",
1108 "typeDescriptions": {
1109 "typeIdentifier": "t_address",
1110 "typeString": "address"
1111 }
1112 },
1113 "value": null,
1114 "visibility": "internal"
1115 }
1116 ],
1117 "src": "811:14:1"
1118 },
1119 "returnParameters": {
1120 "id": 89,
1121 "nodeType": "ParameterList",
1122 "parameters": [
1123 {
1124 "constant": false,
1125 "id": 88,
1126 "name": "",
1127 "nodeType": "VariableDeclaration",
1128 "scope": 99,
1129 "src": "846:4:1",
1130 "stateVariable": false,
1131 "storageLocation": "default",
1132 "typeDescriptions": {
1133 "typeIdentifier": "t_uint256",
1134 "typeString": "uint256"
1135 },
1136 "typeName": {
1137 "id": 87,
1138 "name": "uint",
1139 "nodeType": "ElementaryTypeName",
1140 "src": "846:4:1",
1141 "typeDescriptions": {
1142 "typeIdentifier": "t_uint256",
1143 "typeString": "uint256"
1144 }
1145 },
1146 "value": null,
1147 "visibility": "internal"
1148 }
1149 ],
1150 "src": "845:6:1"
1151 },
1152 "scope": 112,
1153 "src": "787:117:1",
1154 "stateMutability": "view",
1155 "superFunction": null,
1156 "visibility": "public"
1157 },
1158 {
1159 "body": {
1160 "id": 110,
1161 "nodeType": "Block",
1162 "src": "967:29:1",
1163 "statements": [
1164 {
1165 "expression": {
1166 "argumentTypes": null,
1167 "baseExpression": {
1168 "argumentTypes": null,
1169 "id": 106,
1170 "name": "balances",
1171 "nodeType": "Identifier",
1172 "overloadedDeclarations": [],
1173 "referencedDeclaration": 23,
1174 "src": "978:8:1",
1175 "typeDescriptions": {
1176 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
1177 "typeString": "mapping(address => uint256)"
1178 }
1179 },
1180 "id": 108,
1181 "indexExpression": {
1182 "argumentTypes": null,
1183 "id": 107,
1184 "name": "addr",
1185 "nodeType": "Identifier",
1186 "overloadedDeclarations": [],
1187 "referencedDeclaration": 101,
1188 "src": "987:4:1",
1189 "typeDescriptions": {
1190 "typeIdentifier": "t_address",
1191 "typeString": "address"
1192 }
1193 },
1194 "isConstant": false,
1195 "isLValue": true,
1196 "isPure": false,
1197 "lValueRequested": false,
1198 "nodeType": "IndexAccess",
1199 "src": "978:14:1",
1200 "typeDescriptions": {
1201 "typeIdentifier": "t_uint256",
1202 "typeString": "uint256"
1203 }
1204 },
1205 "functionReturnParameters": 105,
1206 "id": 109,
1207 "nodeType": "Return",
1208 "src": "971:21:1"
1209 }
1210 ]
1211 },
1212 "documentation": null,
1213 "id": 111,
1214 "implemented": true,
1215 "kind": "function",
1216 "modifiers": [],
1217 "name": "getBalance",
1218 "nodeType": "FunctionDefinition",
1219 "parameters": {
1220 "id": 102,
1221 "nodeType": "ParameterList",
1222 "parameters": [
1223 {
1224 "constant": false,
1225 "id": 101,
1226 "name": "addr",
1227 "nodeType": "VariableDeclaration",
1228 "scope": 111,
1229 "src": "927:12:1",
1230 "stateVariable": false,
1231 "storageLocation": "default",
1232 "typeDescriptions": {
1233 "typeIdentifier": "t_address",
1234 "typeString": "address"
1235 },
1236 "typeName": {
1237 "id": 100,
1238 "name": "address",
1239 "nodeType": "ElementaryTypeName",
1240 "src": "927:7:1",
1241 "stateMutability": "nonpayable",
1242 "typeDescriptions": {
1243 "typeIdentifier": "t_address",
1244 "typeString": "address"
1245 }
1246 },
1247 "value": null,
1248 "visibility": "internal"
1249 }
1250 ],
1251 "src": "926:14:1"
1252 },
1253 "returnParameters": {
1254 "id": 105,
1255 "nodeType": "ParameterList",
1256 "parameters": [
1257 {
1258 "constant": false,
1259 "id": 104,
1260 "name": "",
1261 "nodeType": "VariableDeclaration",
1262 "scope": 111,
1263 "src": "961:4:1",
1264 "stateVariable": false,
1265 "storageLocation": "default",
1266 "typeDescriptions": {
1267 "typeIdentifier": "t_uint256",
1268 "typeString": "uint256"
1269 },
1270 "typeName": {
1271 "id": 103,
1272 "name": "uint",
1273 "nodeType": "ElementaryTypeName",
1274 "src": "961:4:1",
1275 "typeDescriptions": {
1276 "typeIdentifier": "t_uint256",
1277 "typeString": "uint256"
1278 }
1279 },
1280 "value": null,
1281 "visibility": "internal"
1282 }
1283 ],
1284 "src": "960:6:1"
1285 },
1286 "scope": 112,
1287 "src": "907:89:1",
1288 "stateMutability": "view",
1289 "superFunction": null,
1290 "visibility": "public"
1291 }
1292 ],
1293 "scope": 113,
1294 "src": "324:674:1"
1295 }
1296 ],
1297 "src": "0:999:1"
1298 },
1299 "legacyAST": {
1300 "absolutePath": "/home/mike/work/truffle/metacoin/contracts/MetaCoin.sol",
1301 "exportedSymbols": {
1302 "MetaCoin": [
1303 112
1304 ]
1305 },
1306 "id": 113,
1307 "nodeType": "SourceUnit",
1308 "nodes": [
1309 {
1310 "id": 18,
1311 "literals": [
1312 "solidity",
1313 ">=",
1314 "0.4",
1315 ".25",
1316 "<",
1317 "0.6",
1318 ".0"
1319 ],
1320 "nodeType": "PragmaDirective",
1321 "src": "0:32:1"
1322 },
1323 {
1324 "absolutePath": "/home/mike/work/truffle/metacoin/contracts/ConvertLib.sol",
1325 "file": "./ConvertLib.sol",
1326 "id": 19,
1327 "nodeType": "ImportDirective",
1328 "scope": 113,
1329 "sourceUnit": 17,
1330 "src": "34:26:1",
1331 "symbolAliases": [],
1332 "unitAlias": ""
1333 },
1334 {
1335 "baseContracts": [],
1336 "contractDependencies": [],
1337 "contractKind": "contract",
1338 "documentation": null,
1339 "fullyImplemented": true,
1340 "id": 112,
1341 "linearizedBaseContracts": [
1342 112
1343 ],
1344 "name": "MetaCoin",
1345 "nodeType": "ContractDefinition",
1346 "nodes": [
1347 {
1348 "constant": false,
1349 "id": 23,
1350 "name": "balances",
1351 "nodeType": "VariableDeclaration",
1352 "scope": 112,
1353 "src": "345:34:1",
1354 "stateVariable": true,
1355 "storageLocation": "default",
1356 "typeDescriptions": {
1357 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
1358 "typeString": "mapping(address => uint256)"
1359 },
1360 "typeName": {
1361 "id": 22,
1362 "keyType": {
1363 "id": 20,
1364 "name": "address",
1365 "nodeType": "ElementaryTypeName",
1366 "src": "354:7:1",
1367 "typeDescriptions": {
1368 "typeIdentifier": "t_address",
1369 "typeString": "address"
1370 }
1371 },
1372 "nodeType": "Mapping",
1373 "src": "345:25:1",
1374 "typeDescriptions": {
1375 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
1376 "typeString": "mapping(address => uint256)"
1377 },
1378 "valueType": {
1379 "id": 21,
1380 "name": "uint",
1381 "nodeType": "ElementaryTypeName",
1382 "src": "365:4:1",
1383 "typeDescriptions": {
1384 "typeIdentifier": "t_uint256",
1385 "typeString": "uint256"
1386 }
1387 }
1388 },
1389 "value": null,
1390 "visibility": "internal"
1391 },
1392 {
1393 "anonymous": false,
1394 "documentation": null,
1395 "id": 31,
1396 "name": "Transfer",
1397 "nodeType": "EventDefinition",
1398 "parameters": {
1399 "id": 30,
1400 "nodeType": "ParameterList",
1401 "parameters": [
1402 {
1403 "constant": false,
1404 "id": 25,
1405 "indexed": true,
1406 "name": "_from",
1407 "nodeType": "VariableDeclaration",
1408 "scope": 31,
1409 "src": "398:21:1",
1410 "stateVariable": false,
1411 "storageLocation": "default",
1412 "typeDescriptions": {
1413 "typeIdentifier": "t_address",
1414 "typeString": "address"
1415 },
1416 "typeName": {
1417 "id": 24,
1418 "name": "address",
1419 "nodeType": "ElementaryTypeName",
1420 "src": "398:7:1",
1421 "stateMutability": "nonpayable",
1422 "typeDescriptions": {
1423 "typeIdentifier": "t_address",
1424 "typeString": "address"
1425 }
1426 },
1427 "value": null,
1428 "visibility": "internal"
1429 },
1430 {
1431 "constant": false,
1432 "id": 27,
1433 "indexed": true,
1434 "name": "_to",
1435 "nodeType": "VariableDeclaration",
1436 "scope": 31,
1437 "src": "421:19:1",
1438 "stateVariable": false,
1439 "storageLocation": "default",
1440 "typeDescriptions": {
1441 "typeIdentifier": "t_address",
1442 "typeString": "address"
1443 },
1444 "typeName": {
1445 "id": 26,
1446 "name": "address",
1447 "nodeType": "ElementaryTypeName",
1448 "src": "421:7:1",
1449 "stateMutability": "nonpayable",
1450 "typeDescriptions": {
1451 "typeIdentifier": "t_address",
1452 "typeString": "address"
1453 }
1454 },
1455 "value": null,
1456 "visibility": "internal"
1457 },
1458 {
1459 "constant": false,
1460 "id": 29,
1461 "indexed": false,
1462 "name": "_value",
1463 "nodeType": "VariableDeclaration",
1464 "scope": 31,
1465 "src": "442:14:1",
1466 "stateVariable": false,
1467 "storageLocation": "default",
1468 "typeDescriptions": {
1469 "typeIdentifier": "t_uint256",
1470 "typeString": "uint256"
1471 },
1472 "typeName": {
1473 "id": 28,
1474 "name": "uint256",
1475 "nodeType": "ElementaryTypeName",
1476 "src": "442:7:1",
1477 "typeDescriptions": {
1478 "typeIdentifier": "t_uint256",
1479 "typeString": "uint256"
1480 }
1481 },
1482 "value": null,
1483 "visibility": "internal"
1484 }
1485 ],
1486 "src": "397:60:1"
1487 },
1488 "src": "383:75:1"
1489 },
1490 {
1491 "body": {
1492 "id": 41,
1493 "nodeType": "Block",
1494 "src": "482:35:1",
1495 "statements": [
1496 {
1497 "expression": {
1498 "argumentTypes": null,
1499 "id": 39,
1500 "isConstant": false,
1501 "isLValue": false,
1502 "isPure": false,
1503 "lValueRequested": false,
1504 "leftHandSide": {
1505 "argumentTypes": null,
1506 "baseExpression": {
1507 "argumentTypes": null,
1508 "id": 34,
1509 "name": "balances",
1510 "nodeType": "Identifier",
1511 "overloadedDeclarations": [],
1512 "referencedDeclaration": 23,
1513 "src": "486:8:1",
1514 "typeDescriptions": {
1515 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
1516 "typeString": "mapping(address => uint256)"
1517 }
1518 },
1519 "id": 37,
1520 "indexExpression": {
1521 "argumentTypes": null,
1522 "expression": {
1523 "argumentTypes": null,
1524 "id": 35,
1525 "name": "tx",
1526 "nodeType": "Identifier",
1527 "overloadedDeclarations": [],
1528 "referencedDeclaration": 196,
1529 "src": "495:2:1",
1530 "typeDescriptions": {
1531 "typeIdentifier": "t_magic_transaction",
1532 "typeString": "tx"
1533 }
1534 },
1535 "id": 36,
1536 "isConstant": false,
1537 "isLValue": false,
1538 "isPure": false,
1539 "lValueRequested": false,
1540 "memberName": "origin",
1541 "nodeType": "MemberAccess",
1542 "referencedDeclaration": null,
1543 "src": "495:9:1",
1544 "typeDescriptions": {
1545 "typeIdentifier": "t_address_payable",
1546 "typeString": "address payable"
1547 }
1548 },
1549 "isConstant": false,
1550 "isLValue": true,
1551 "isPure": false,
1552 "lValueRequested": true,
1553 "nodeType": "IndexAccess",
1554 "src": "486:19:1",
1555 "typeDescriptions": {
1556 "typeIdentifier": "t_uint256",
1557 "typeString": "uint256"
1558 }
1559 },
1560 "nodeType": "Assignment",
1561 "operator": "=",
1562 "rightHandSide": {
1563 "argumentTypes": null,
1564 "hexValue": "3130303030",
1565 "id": 38,
1566 "isConstant": false,
1567 "isLValue": false,
1568 "isPure": true,
1569 "kind": "number",
1570 "lValueRequested": false,
1571 "nodeType": "Literal",
1572 "src": "508:5:1",
1573 "subdenomination": null,
1574 "typeDescriptions": {
1575 "typeIdentifier": "t_rational_10000_by_1",
1576 "typeString": "int_const 10000"
1577 },
1578 "value": "10000"
1579 },
1580 "src": "486:27:1",
1581 "typeDescriptions": {
1582 "typeIdentifier": "t_uint256",
1583 "typeString": "uint256"
1584 }
1585 },
1586 "id": 40,
1587 "nodeType": "ExpressionStatement",
1588 "src": "486:27:1"
1589 }
1590 ]
1591 },
1592 "documentation": null,
1593 "id": 42,
1594 "implemented": true,
1595 "kind": "constructor",
1596 "modifiers": [],
1597 "name": "",
1598 "nodeType": "FunctionDefinition",
1599 "parameters": {
1600 "id": 32,
1601 "nodeType": "ParameterList",
1602 "parameters": [],
1603 "src": "472:2:1"
1604 },
1605 "returnParameters": {
1606 "id": 33,
1607 "nodeType": "ParameterList",
1608 "parameters": [],
1609 "src": "482:0:1"
1610 },
1611 "scope": 112,
1612 "src": "461:56:1",
1613 "stateMutability": "nonpayable",
1614 "superFunction": null,
1615 "visibility": "public"
1616 },
1617 {
1618 "body": {
1619 "id": 82,
1620 "nodeType": "Block",
1621 "src": "601:183:1",
1622 "statements": [
1623 {
1624 "condition": {
1625 "argumentTypes": null,
1626 "commonType": {
1627 "typeIdentifier": "t_uint256",
1628 "typeString": "uint256"
1629 },
1630 "id": 56,
1631 "isConstant": false,
1632 "isLValue": false,
1633 "isPure": false,
1634 "lValueRequested": false,
1635 "leftExpression": {
1636 "argumentTypes": null,
1637 "baseExpression": {
1638 "argumentTypes": null,
1639 "id": 51,
1640 "name": "balances",
1641 "nodeType": "Identifier",
1642 "overloadedDeclarations": [],
1643 "referencedDeclaration": 23,
1644 "src": "609:8:1",
1645 "typeDescriptions": {
1646 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
1647 "typeString": "mapping(address => uint256)"
1648 }
1649 },
1650 "id": 54,
1651 "indexExpression": {
1652 "argumentTypes": null,
1653 "expression": {
1654 "argumentTypes": null,
1655 "id": 52,
1656 "name": "msg",
1657 "nodeType": "Identifier",
1658 "overloadedDeclarations": [],
1659 "referencedDeclaration": 184,
1660 "src": "618:3:1",
1661 "typeDescriptions": {
1662 "typeIdentifier": "t_magic_message",
1663 "typeString": "msg"
1664 }
1665 },
1666 "id": 53,
1667 "isConstant": false,
1668 "isLValue": false,
1669 "isPure": false,
1670 "lValueRequested": false,
1671 "memberName": "sender",
1672 "nodeType": "MemberAccess",
1673 "referencedDeclaration": null,
1674 "src": "618:10:1",
1675 "typeDescriptions": {
1676 "typeIdentifier": "t_address_payable",
1677 "typeString": "address payable"
1678 }
1679 },
1680 "isConstant": false,
1681 "isLValue": true,
1682 "isPure": false,
1683 "lValueRequested": false,
1684 "nodeType": "IndexAccess",
1685 "src": "609:20:1",
1686 "typeDescriptions": {
1687 "typeIdentifier": "t_uint256",
1688 "typeString": "uint256"
1689 }
1690 },
1691 "nodeType": "BinaryOperation",
1692 "operator": "<",
1693 "rightExpression": {
1694 "argumentTypes": null,
1695 "id": 55,
1696 "name": "amount",
1697 "nodeType": "Identifier",
1698 "overloadedDeclarations": [],
1699 "referencedDeclaration": 46,
1700 "src": "632:6:1",
1701 "typeDescriptions": {
1702 "typeIdentifier": "t_uint256",
1703 "typeString": "uint256"
1704 }
1705 },
1706 "src": "609:29:1",
1707 "typeDescriptions": {
1708 "typeIdentifier": "t_bool",
1709 "typeString": "bool"
1710 }
1711 },
1712 "falseBody": null,
1713 "id": 59,
1714 "nodeType": "IfStatement",
1715 "src": "605:47:1",
1716 "trueBody": {
1717 "expression": {
1718 "argumentTypes": null,
1719 "hexValue": "66616c7365",
1720 "id": 57,
1721 "isConstant": false,
1722 "isLValue": false,
1723 "isPure": true,
1724 "kind": "bool",
1725 "lValueRequested": false,
1726 "nodeType": "Literal",
1727 "src": "647:5:1",
1728 "subdenomination": null,
1729 "typeDescriptions": {
1730 "typeIdentifier": "t_bool",
1731 "typeString": "bool"
1732 },
1733 "value": "false"
1734 },
1735 "functionReturnParameters": 50,
1736 "id": 58,
1737 "nodeType": "Return",
1738 "src": "640:12:1"
1739 }
1740 },
1741 {
1742 "expression": {
1743 "argumentTypes": null,
1744 "id": 65,
1745 "isConstant": false,
1746 "isLValue": false,
1747 "isPure": false,
1748 "lValueRequested": false,
1749 "leftHandSide": {
1750 "argumentTypes": null,
1751 "baseExpression": {
1752 "argumentTypes": null,
1753 "id": 60,
1754 "name": "balances",
1755 "nodeType": "Identifier",
1756 "overloadedDeclarations": [],
1757 "referencedDeclaration": 23,
1758 "src": "656:8:1",
1759 "typeDescriptions": {
1760 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
1761 "typeString": "mapping(address => uint256)"
1762 }
1763 },
1764 "id": 63,
1765 "indexExpression": {
1766 "argumentTypes": null,
1767 "expression": {
1768 "argumentTypes": null,
1769 "id": 61,
1770 "name": "msg",
1771 "nodeType": "Identifier",
1772 "overloadedDeclarations": [],
1773 "referencedDeclaration": 184,
1774 "src": "665:3:1",
1775 "typeDescriptions": {
1776 "typeIdentifier": "t_magic_message",
1777 "typeString": "msg"
1778 }
1779 },
1780 "id": 62,
1781 "isConstant": false,
1782 "isLValue": false,
1783 "isPure": false,
1784 "lValueRequested": false,
1785 "memberName": "sender",
1786 "nodeType": "MemberAccess",
1787 "referencedDeclaration": null,
1788 "src": "665:10:1",
1789 "typeDescriptions": {
1790 "typeIdentifier": "t_address_payable",
1791 "typeString": "address payable"
1792 }
1793 },
1794 "isConstant": false,
1795 "isLValue": true,
1796 "isPure": false,
1797 "lValueRequested": true,
1798 "nodeType": "IndexAccess",
1799 "src": "656:20:1",
1800 "typeDescriptions": {
1801 "typeIdentifier": "t_uint256",
1802 "typeString": "uint256"
1803 }
1804 },
1805 "nodeType": "Assignment",
1806 "operator": "-=",
1807 "rightHandSide": {
1808 "argumentTypes": null,
1809 "id": 64,
1810 "name": "amount",
1811 "nodeType": "Identifier",
1812 "overloadedDeclarations": [],
1813 "referencedDeclaration": 46,
1814 "src": "680:6:1",
1815 "typeDescriptions": {
1816 "typeIdentifier": "t_uint256",
1817 "typeString": "uint256"
1818 }
1819 },
1820 "src": "656:30:1",
1821 "typeDescriptions": {
1822 "typeIdentifier": "t_uint256",
1823 "typeString": "uint256"
1824 }
1825 },
1826 "id": 66,
1827 "nodeType": "ExpressionStatement",
1828 "src": "656:30:1"
1829 },
1830 {
1831 "expression": {
1832 "argumentTypes": null,
1833 "id": 71,
1834 "isConstant": false,
1835 "isLValue": false,
1836 "isPure": false,
1837 "lValueRequested": false,
1838 "leftHandSide": {
1839 "argumentTypes": null,
1840 "baseExpression": {
1841 "argumentTypes": null,
1842 "id": 67,
1843 "name": "balances",
1844 "nodeType": "Identifier",
1845 "overloadedDeclarations": [],
1846 "referencedDeclaration": 23,
1847 "src": "690:8:1",
1848 "typeDescriptions": {
1849 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
1850 "typeString": "mapping(address => uint256)"
1851 }
1852 },
1853 "id": 69,
1854 "indexExpression": {
1855 "argumentTypes": null,
1856 "id": 68,
1857 "name": "receiver",
1858 "nodeType": "Identifier",
1859 "overloadedDeclarations": [],
1860 "referencedDeclaration": 44,
1861 "src": "699:8:1",
1862 "typeDescriptions": {
1863 "typeIdentifier": "t_address",
1864 "typeString": "address"
1865 }
1866 },
1867 "isConstant": false,
1868 "isLValue": true,
1869 "isPure": false,
1870 "lValueRequested": true,
1871 "nodeType": "IndexAccess",
1872 "src": "690:18:1",
1873 "typeDescriptions": {
1874 "typeIdentifier": "t_uint256",
1875 "typeString": "uint256"
1876 }
1877 },
1878 "nodeType": "Assignment",
1879 "operator": "+=",
1880 "rightHandSide": {
1881 "argumentTypes": null,
1882 "id": 70,
1883 "name": "amount",
1884 "nodeType": "Identifier",
1885 "overloadedDeclarations": [],
1886 "referencedDeclaration": 46,
1887 "src": "712:6:1",
1888 "typeDescriptions": {
1889 "typeIdentifier": "t_uint256",
1890 "typeString": "uint256"
1891 }
1892 },
1893 "src": "690:28:1",
1894 "typeDescriptions": {
1895 "typeIdentifier": "t_uint256",
1896 "typeString": "uint256"
1897 }
1898 },
1899 "id": 72,
1900 "nodeType": "ExpressionStatement",
1901 "src": "690:28:1"
1902 },
1903 {
1904 "eventCall": {
1905 "argumentTypes": null,
1906 "arguments": [
1907 {
1908 "argumentTypes": null,
1909 "expression": {
1910 "argumentTypes": null,
1911 "id": 74,
1912 "name": "msg",
1913 "nodeType": "Identifier",
1914 "overloadedDeclarations": [],
1915 "referencedDeclaration": 184,
1916 "src": "736:3:1",
1917 "typeDescriptions": {
1918 "typeIdentifier": "t_magic_message",
1919 "typeString": "msg"
1920 }
1921 },
1922 "id": 75,
1923 "isConstant": false,
1924 "isLValue": false,
1925 "isPure": false,
1926 "lValueRequested": false,
1927 "memberName": "sender",
1928 "nodeType": "MemberAccess",
1929 "referencedDeclaration": null,
1930 "src": "736:10:1",
1931 "typeDescriptions": {
1932 "typeIdentifier": "t_address_payable",
1933 "typeString": "address payable"
1934 }
1935 },
1936 {
1937 "argumentTypes": null,
1938 "id": 76,
1939 "name": "receiver",
1940 "nodeType": "Identifier",
1941 "overloadedDeclarations": [],
1942 "referencedDeclaration": 44,
1943 "src": "748:8:1",
1944 "typeDescriptions": {
1945 "typeIdentifier": "t_address",
1946 "typeString": "address"
1947 }
1948 },
1949 {
1950 "argumentTypes": null,
1951 "id": 77,
1952 "name": "amount",
1953 "nodeType": "Identifier",
1954 "overloadedDeclarations": [],
1955 "referencedDeclaration": 46,
1956 "src": "758:6:1",
1957 "typeDescriptions": {
1958 "typeIdentifier": "t_uint256",
1959 "typeString": "uint256"
1960 }
1961 }
1962 ],
1963 "expression": {
1964 "argumentTypes": [
1965 {
1966 "typeIdentifier": "t_address_payable",
1967 "typeString": "address payable"
1968 },
1969 {
1970 "typeIdentifier": "t_address",
1971 "typeString": "address"
1972 },
1973 {
1974 "typeIdentifier": "t_uint256",
1975 "typeString": "uint256"
1976 }
1977 ],
1978 "id": 73,
1979 "name": "Transfer",
1980 "nodeType": "Identifier",
1981 "overloadedDeclarations": [],
1982 "referencedDeclaration": 31,
1983 "src": "727:8:1",
1984 "typeDescriptions": {
1985 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
1986 "typeString": "function (address,address,uint256)"
1987 }
1988 },
1989 "id": 78,
1990 "isConstant": false,
1991 "isLValue": false,
1992 "isPure": false,
1993 "kind": "functionCall",
1994 "lValueRequested": false,
1995 "names": [],
1996 "nodeType": "FunctionCall",
1997 "src": "727:38:1",
1998 "typeDescriptions": {
1999 "typeIdentifier": "t_tuple$__$",
2000 "typeString": "tuple()"
2001 }
2002 },
2003 "id": 79,
2004 "nodeType": "EmitStatement",
2005 "src": "722:43:1"
2006 },
2007 {
2008 "expression": {
2009 "argumentTypes": null,
2010 "hexValue": "74727565",
2011 "id": 80,
2012 "isConstant": false,
2013 "isLValue": false,
2014 "isPure": true,
2015 "kind": "bool",
2016 "lValueRequested": false,
2017 "nodeType": "Literal",
2018 "src": "776:4:1",
2019 "subdenomination": null,
2020 "typeDescriptions": {
2021 "typeIdentifier": "t_bool",
2022 "typeString": "bool"
2023 },
2024 "value": "true"
2025 },
2026 "functionReturnParameters": 50,
2027 "id": 81,
2028 "nodeType": "Return",
2029 "src": "769:11:1"
2030 }
2031 ]
2032 },
2033 "documentation": null,
2034 "id": 83,
2035 "implemented": true,
2036 "kind": "function",
2037 "modifiers": [],
2038 "name": "sendCoin",
2039 "nodeType": "FunctionDefinition",
2040 "parameters": {
2041 "id": 47,
2042 "nodeType": "ParameterList",
2043 "parameters": [
2044 {
2045 "constant": false,
2046 "id": 44,
2047 "name": "receiver",
2048 "nodeType": "VariableDeclaration",
2049 "scope": 83,
2050 "src": "538:16:1",
2051 "stateVariable": false,
2052 "storageLocation": "default",
2053 "typeDescriptions": {
2054 "typeIdentifier": "t_address",
2055 "typeString": "address"
2056 },
2057 "typeName": {
2058 "id": 43,
2059 "name": "address",
2060 "nodeType": "ElementaryTypeName",
2061 "src": "538:7:1",
2062 "stateMutability": "nonpayable",
2063 "typeDescriptions": {
2064 "typeIdentifier": "t_address",
2065 "typeString": "address"
2066 }
2067 },
2068 "value": null,
2069 "visibility": "internal"
2070 },
2071 {
2072 "constant": false,
2073 "id": 46,
2074 "name": "amount",
2075 "nodeType": "VariableDeclaration",
2076 "scope": 83,
2077 "src": "556:11:1",
2078 "stateVariable": false,
2079 "storageLocation": "default",
2080 "typeDescriptions": {
2081 "typeIdentifier": "t_uint256",
2082 "typeString": "uint256"
2083 },
2084 "typeName": {
2085 "id": 45,
2086 "name": "uint",
2087 "nodeType": "ElementaryTypeName",
2088 "src": "556:4:1",
2089 "typeDescriptions": {
2090 "typeIdentifier": "t_uint256",
2091 "typeString": "uint256"
2092 }
2093 },
2094 "value": null,
2095 "visibility": "internal"
2096 }
2097 ],
2098 "src": "537:31:1"
2099 },
2100 "returnParameters": {
2101 "id": 50,
2102 "nodeType": "ParameterList",
2103 "parameters": [
2104 {
2105 "constant": false,
2106 "id": 49,
2107 "name": "sufficient",
2108 "nodeType": "VariableDeclaration",
2109 "scope": 83,
2110 "src": "584:15:1",
2111 "stateVariable": false,
2112 "storageLocation": "default",
2113 "typeDescriptions": {
2114 "typeIdentifier": "t_bool",
2115 "typeString": "bool"
2116 },
2117 "typeName": {
2118 "id": 48,
2119 "name": "bool",
2120 "nodeType": "ElementaryTypeName",
2121 "src": "584:4:1",
2122 "typeDescriptions": {
2123 "typeIdentifier": "t_bool",
2124 "typeString": "bool"
2125 }
2126 },
2127 "value": null,
2128 "visibility": "internal"
2129 }
2130 ],
2131 "src": "583:17:1"
2132 },
2133 "scope": 112,
2134 "src": "520:264:1",
2135 "stateMutability": "nonpayable",
2136 "superFunction": null,
2137 "visibility": "public"
2138 },
2139 {
2140 "body": {
2141 "id": 98,
2142 "nodeType": "Block",
2143 "src": "851:53:1",
2144 "statements": [
2145 {
2146 "expression": {
2147 "argumentTypes": null,
2148 "arguments": [
2149 {
2150 "argumentTypes": null,
2151 "arguments": [
2152 {
2153 "argumentTypes": null,
2154 "id": 93,
2155 "name": "addr",
2156 "nodeType": "Identifier",
2157 "overloadedDeclarations": [],
2158 "referencedDeclaration": 85,
2159 "src": "892:4:1",
2160 "typeDescriptions": {
2161 "typeIdentifier": "t_address",
2162 "typeString": "address"
2163 }
2164 }
2165 ],
2166 "expression": {
2167 "argumentTypes": [
2168 {
2169 "typeIdentifier": "t_address",
2170 "typeString": "address"
2171 }
2172 ],
2173 "id": 92,
2174 "name": "getBalance",
2175 "nodeType": "Identifier",
2176 "overloadedDeclarations": [],
2177 "referencedDeclaration": 111,
2178 "src": "881:10:1",
2179 "typeDescriptions": {
2180 "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
2181 "typeString": "function (address) view returns (uint256)"
2182 }
2183 },
2184 "id": 94,
2185 "isConstant": false,
2186 "isLValue": false,
2187 "isPure": false,
2188 "kind": "functionCall",
2189 "lValueRequested": false,
2190 "names": [],
2191 "nodeType": "FunctionCall",
2192 "src": "881:16:1",
2193 "typeDescriptions": {
2194 "typeIdentifier": "t_uint256",
2195 "typeString": "uint256"
2196 }
2197 },
2198 {
2199 "argumentTypes": null,
2200 "hexValue": "32",
2201 "id": 95,
2202 "isConstant": false,
2203 "isLValue": false,
2204 "isPure": true,
2205 "kind": "number",
2206 "lValueRequested": false,
2207 "nodeType": "Literal",
2208 "src": "898:1:1",
2209 "subdenomination": null,
2210 "typeDescriptions": {
2211 "typeIdentifier": "t_rational_2_by_1",
2212 "typeString": "int_const 2"
2213 },
2214 "value": "2"
2215 }
2216 ],
2217 "expression": {
2218 "argumentTypes": [
2219 {
2220 "typeIdentifier": "t_uint256",
2221 "typeString": "uint256"
2222 },
2223 {
2224 "typeIdentifier": "t_rational_2_by_1",
2225 "typeString": "int_const 2"
2226 }
2227 ],
2228 "expression": {
2229 "argumentTypes": null,
2230 "id": 90,
2231 "name": "ConvertLib",
2232 "nodeType": "Identifier",
2233 "overloadedDeclarations": [],
2234 "referencedDeclaration": 16,
2235 "src": "862:10:1",
2236 "typeDescriptions": {
2237 "typeIdentifier": "t_type$_t_contract$_ConvertLib_$16_$",
2238 "typeString": "type(library ConvertLib)"
2239 }
2240 },
2241 "id": 91,
2242 "isConstant": false,
2243 "isLValue": false,
2244 "isPure": false,
2245 "lValueRequested": false,
2246 "memberName": "convert",
2247 "nodeType": "MemberAccess",
2248 "referencedDeclaration": 15,
2249 "src": "862:18:1",
2250 "typeDescriptions": {
2251 "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
2252 "typeString": "function (uint256,uint256) pure returns (uint256)"
2253 }
2254 },
2255 "id": 96,
2256 "isConstant": false,
2257 "isLValue": false,
2258 "isPure": false,
2259 "kind": "functionCall",
2260 "lValueRequested": false,
2261 "names": [],
2262 "nodeType": "FunctionCall",
2263 "src": "862:38:1",
2264 "typeDescriptions": {
2265 "typeIdentifier": "t_uint256",
2266 "typeString": "uint256"
2267 }
2268 },
2269 "functionReturnParameters": 89,
2270 "id": 97,
2271 "nodeType": "Return",
2272 "src": "855:45:1"
2273 }
2274 ]
2275 },
2276 "documentation": null,
2277 "id": 99,
2278 "implemented": true,
2279 "kind": "function",
2280 "modifiers": [],
2281 "name": "getBalanceInEth",
2282 "nodeType": "FunctionDefinition",
2283 "parameters": {
2284 "id": 86,
2285 "nodeType": "ParameterList",
2286 "parameters": [
2287 {
2288 "constant": false,
2289 "id": 85,
2290 "name": "addr",
2291 "nodeType": "VariableDeclaration",
2292 "scope": 99,
2293 "src": "812:12:1",
2294 "stateVariable": false,
2295 "storageLocation": "default",
2296 "typeDescriptions": {
2297 "typeIdentifier": "t_address",
2298 "typeString": "address"
2299 },
2300 "typeName": {
2301 "id": 84,
2302 "name": "address",
2303 "nodeType": "ElementaryTypeName",
2304 "src": "812:7:1",
2305 "stateMutability": "nonpayable",
2306 "typeDescriptions": {
2307 "typeIdentifier": "t_address",
2308 "typeString": "address"
2309 }
2310 },
2311 "value": null,
2312 "visibility": "internal"
2313 }
2314 ],
2315 "src": "811:14:1"
2316 },
2317 "returnParameters": {
2318 "id": 89,
2319 "nodeType": "ParameterList",
2320 "parameters": [
2321 {
2322 "constant": false,
2323 "id": 88,
2324 "name": "",
2325 "nodeType": "VariableDeclaration",
2326 "scope": 99,
2327 "src": "846:4:1",
2328 "stateVariable": false,
2329 "storageLocation": "default",
2330 "typeDescriptions": {
2331 "typeIdentifier": "t_uint256",
2332 "typeString": "uint256"
2333 },
2334 "typeName": {
2335 "id": 87,
2336 "name": "uint",
2337 "nodeType": "ElementaryTypeName",
2338 "src": "846:4:1",
2339 "typeDescriptions": {
2340 "typeIdentifier": "t_uint256",
2341 "typeString": "uint256"
2342 }
2343 },
2344 "value": null,
2345 "visibility": "internal"
2346 }
2347 ],
2348 "src": "845:6:1"
2349 },
2350 "scope": 112,
2351 "src": "787:117:1",
2352 "stateMutability": "view",
2353 "superFunction": null,
2354 "visibility": "public"
2355 },
2356 {
2357 "body": {
2358 "id": 110,
2359 "nodeType": "Block",
2360 "src": "967:29:1",
2361 "statements": [
2362 {
2363 "expression": {
2364 "argumentTypes": null,
2365 "baseExpression": {
2366 "argumentTypes": null,
2367 "id": 106,
2368 "name": "balances",
2369 "nodeType": "Identifier",
2370 "overloadedDeclarations": [],
2371 "referencedDeclaration": 23,
2372 "src": "978:8:1",
2373 "typeDescriptions": {
2374 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
2375 "typeString": "mapping(address => uint256)"
2376 }
2377 },
2378 "id": 108,
2379 "indexExpression": {
2380 "argumentTypes": null,
2381 "id": 107,
2382 "name": "addr",
2383 "nodeType": "Identifier",
2384 "overloadedDeclarations": [],
2385 "referencedDeclaration": 101,
2386 "src": "987:4:1",
2387 "typeDescriptions": {
2388 "typeIdentifier": "t_address",
2389 "typeString": "address"
2390 }
2391 },
2392 "isConstant": false,
2393 "isLValue": true,
2394 "isPure": false,
2395 "lValueRequested": false,
2396 "nodeType": "IndexAccess",
2397 "src": "978:14:1",
2398 "typeDescriptions": {
2399 "typeIdentifier": "t_uint256",
2400 "typeString": "uint256"
2401 }
2402 },
2403 "functionReturnParameters": 105,
2404 "id": 109,
2405 "nodeType": "Return",
2406 "src": "971:21:1"
2407 }
2408 ]
2409 },
2410 "documentation": null,
2411 "id": 111,
2412 "implemented": true,
2413 "kind": "function",
2414 "modifiers": [],
2415 "name": "getBalance",
2416 "nodeType": "FunctionDefinition",
2417 "parameters": {
2418 "id": 102,
2419 "nodeType": "ParameterList",
2420 "parameters": [
2421 {
2422 "constant": false,
2423 "id": 101,
2424 "name": "addr",
2425 "nodeType": "VariableDeclaration",
2426 "scope": 111,
2427 "src": "927:12:1",
2428 "stateVariable": false,
2429 "storageLocation": "default",
2430 "typeDescriptions": {
2431 "typeIdentifier": "t_address",
2432 "typeString": "address"
2433 },
2434 "typeName": {
2435 "id": 100,
2436 "name": "address",
2437 "nodeType": "ElementaryTypeName",
2438 "src": "927:7:1",
2439 "stateMutability": "nonpayable",
2440 "typeDescriptions": {
2441 "typeIdentifier": "t_address",
2442 "typeString": "address"
2443 }
2444 },
2445 "value": null,
2446 "visibility": "internal"
2447 }
2448 ],
2449 "src": "926:14:1"
2450 },
2451 "returnParameters": {
2452 "id": 105,
2453 "nodeType": "ParameterList",
2454 "parameters": [
2455 {
2456 "constant": false,
2457 "id": 104,
2458 "name": "",
2459 "nodeType": "VariableDeclaration",
2460 "scope": 111,
2461 "src": "961:4:1",
2462 "stateVariable": false,
2463 "storageLocation": "default",
2464 "typeDescriptions": {
2465 "typeIdentifier": "t_uint256",
2466 "typeString": "uint256"
2467 },
2468 "typeName": {
2469 "id": 103,
2470 "name": "uint",
2471 "nodeType": "ElementaryTypeName",
2472 "src": "961:4:1",
2473 "typeDescriptions": {
2474 "typeIdentifier": "t_uint256",
2475 "typeString": "uint256"
2476 }
2477 },
2478 "value": null,
2479 "visibility": "internal"
2480 }
2481 ],
2482 "src": "960:6:1"
2483 },
2484 "scope": 112,
2485 "src": "907:89:1",
2486 "stateMutability": "view",
2487 "superFunction": null,
2488 "visibility": "public"
2489 }
2490 ],
2491 "scope": 113,
2492 "src": "324:674:1"
2493 }
2494 ],
2495 "src": "0:999:1"
2496 },
2497 "compiler": {
2498 "name": "solc",
2499 "version": "0.5.8+commit.23d335f2.Emscripten.clang"
2500 },
2501 "networks": {},
2502 "schemaVersion": "3.0.10",
2503 "updatedAt": "2019-06-04T22:46:43.385Z",
2504 "devdoc": {
2505 "methods": {}
2506 },
2507 "userdoc": {
2508 "methods": {}
2509 }
2510}
\No newline at end of file