UNPKG

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