UNPKG

647 kBJSONView Raw
1{
2 "contractName": "SafeMath",
3 "abi": [],
4 "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058201840b4280c5adea5b2fe68540a664f8b052128d489b78971f3871bf769a3aa240029",
5 "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058201840b4280c5adea5b2fe68540a664f8b052128d489b78971f3871bf769a3aa240029",
6 "sourceMap": "26:743:38:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24",
7 "deployedSourceMap": "26:743:38:-;;;;;;;;",
8 "source": "pragma solidity ^0.4.24;\n\nlibrary SafeMath {\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a * b;\n assert(a == 0 || c / a == b);\n return c;\n }\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // assert(b > 0); // Solidity automatically throws when dividing by 0\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n return c;\n }\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n assert(c >= a);\n return c;\n }\n}\n\ncontract ERC20Basic {\n uint256 public totalSupply;\n function balanceOf(address who) public constant returns (uint256);\n function transfer(address to, uint256 value) public returns (bool);\n event Transfer(address indexed from, address indexed to, uint256 value);\n}\n\n/**\n * @title ERC20 interface\n * @dev see https://github.com/ethereum/EIPs/issues/20\n */\ncontract ERC20 is ERC20Basic {\n function allowance(address owner, address spender) public constant returns (uint256);\n function transferFrom(address from, address to, uint256 value) public returns (bool);\n function approve(address spender, uint256 value) public returns (bool);\n event Approval(address indexed owner, address indexed spender, uint256 value);\n}\n\ncontract BasicToken is ERC20Basic {\n using SafeMath for uint256;\n mapping(address => uint256) balances;\n /**\n * @dev transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n // SafeMath.sub will throw if there is not enough balance.\n balances[msg.sender] = balances[msg.sender].sub(_value);\n balances[_to] = balances[_to].add(_value);\n emit Transfer(msg.sender, _to, _value);\n return true;\n }\n /**\n * @dev Gets the balance of the specified address.\n * @param _owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address _owner) public constant returns (uint256 balance) {\n return balances[_owner];\n }\n}\n\ncontract Ownable {\n address public owner;\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n /**\n * @dev The Ownable constructor sets the original `owner` of the contract to the sender\n * account.\n */\n constructor() public {\n owner = msg.sender;\n }\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n /**\n * @dev Allows the current owner to transfer control of the contract to a newOwner.\n * @param newOwner The address to transfer ownership to.\n */\n function transferOwnership(address newOwner) onlyOwner public {\n require(newOwner != address(0));\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n }\n}\n\ncontract StandardToken is ERC20, BasicToken {\n mapping (address => mapping (address => uint256)) allowed;\n /**\n * @dev Transfer tokens from one address to another\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n uint256 _allowance = allowed[_from][msg.sender];\n // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met\n // require (_value <= _allowance);\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(_value);\n allowed[_from][msg.sender] = _allowance.sub(_value);\n emit Transfer(_from, _to, _value);\n return true;\n }\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n *\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address which will spend the funds.\n * @param _value The amount of tokens to be spent.\n */\n function approve(address _spender, uint256 _value) public returns (bool) {\n allowed[msg.sender][_spender] = _value;\n emit Approval(msg.sender, _spender, _value);\n return true;\n }\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param _owner address The address which owns the funds.\n * @param _spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {\n return allowed[_owner][_spender];\n }\n /**\n * approve should be called when allowed[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n */\n function increaseApproval (address _spender, uint _addedValue) public\n returns (bool success) {\n allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return true;\n }\n function decreaseApproval (address _spender, uint _subtractedValue) public\n returns (bool success) {\n uint oldValue = allowed[msg.sender][_spender];\n if (_subtractedValue > oldValue) {\n allowed[msg.sender][_spender] = 0;\n } else {\n allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);\n }\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return true;\n }\n}\n\ncontract MintableToken is StandardToken, Ownable {\n event Mint(address indexed to, uint256 amount);\n event MintFinished();\n bool public mintingFinished = false;\n modifier canMint() {\n require(!mintingFinished);\n _;\n }\n\n /**\n * @dev Function to mint tokens\n * @param _to The address that will receive the minted tokens.\n * @param _amount The amount of tokens to mint.\n * @return A boolean that indicates if the operation was successful.\n */\n function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {\n totalSupply = totalSupply.add(_amount);\n balances[_to] = balances[_to].add(_amount);\n emit Mint(_to, _amount);\n emit Transfer(0x0, _to, _amount);\n return true;\n }\n\n /**\n * @dev Function to stop minting new tokens.\n * @return True if the operation was successful.\n */\n function finishMinting() onlyOwner public returns (bool) {\n mintingFinished = true;\n emit MintFinished();\n return true;\n }\n}\n\ncontract ZapToken is MintableToken {\n string public name = \"TEST TOKEN\";\n string public symbol = \"TEST\";\n uint256 public decimals = 18;\n\n function allocate(address to, uint amount) public{\n mint(to,amount);\n }\n}\n",
9 "sourcePath": "/home/xv702/2zap/zap-ethereum-api/contracts/token/ZapToken.sol",
10 "ast": {
11 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/token/ZapToken.sol",
12 "exportedSymbols": {
13 "BasicToken": [
14 11684
15 ],
16 "ERC20": [
17 11611
18 ],
19 "ERC20Basic": [
20 11571
21 ],
22 "MintableToken": [
23 12052
24 ],
25 "Ownable": [
26 11738
27 ],
28 "SafeMath": [
29 11544
30 ],
31 "StandardToken": [
32 11965
33 ],
34 "ZapToken": [
35 12077
36 ]
37 },
38 "id": 12078,
39 "nodeType": "SourceUnit",
40 "nodes": [
41 {
42 "id": 11451,
43 "literals": [
44 "solidity",
45 "^",
46 "0.4",
47 ".24"
48 ],
49 "nodeType": "PragmaDirective",
50 "src": "0:24:38"
51 },
52 {
53 "baseContracts": [],
54 "contractDependencies": [],
55 "contractKind": "library",
56 "documentation": null,
57 "fullyImplemented": true,
58 "id": 11544,
59 "linearizedBaseContracts": [
60 11544
61 ],
62 "name": "SafeMath",
63 "nodeType": "ContractDefinition",
64 "nodes": [
65 {
66 "body": {
67 "id": 11480,
68 "nodeType": "Block",
69 "src": "116:90:38",
70 "statements": [
71 {
72 "assignments": [
73 11461
74 ],
75 "declarations": [
76 {
77 "constant": false,
78 "id": 11461,
79 "name": "c",
80 "nodeType": "VariableDeclaration",
81 "scope": 11481,
82 "src": "126:9:38",
83 "stateVariable": false,
84 "storageLocation": "default",
85 "typeDescriptions": {
86 "typeIdentifier": "t_uint256",
87 "typeString": "uint256"
88 },
89 "typeName": {
90 "id": 11460,
91 "name": "uint256",
92 "nodeType": "ElementaryTypeName",
93 "src": "126:7:38",
94 "typeDescriptions": {
95 "typeIdentifier": "t_uint256",
96 "typeString": "uint256"
97 }
98 },
99 "value": null,
100 "visibility": "internal"
101 }
102 ],
103 "id": 11465,
104 "initialValue": {
105 "argumentTypes": null,
106 "commonType": {
107 "typeIdentifier": "t_uint256",
108 "typeString": "uint256"
109 },
110 "id": 11464,
111 "isConstant": false,
112 "isLValue": false,
113 "isPure": false,
114 "lValueRequested": false,
115 "leftExpression": {
116 "argumentTypes": null,
117 "id": 11462,
118 "name": "a",
119 "nodeType": "Identifier",
120 "overloadedDeclarations": [],
121 "referencedDeclaration": 11453,
122 "src": "138:1:38",
123 "typeDescriptions": {
124 "typeIdentifier": "t_uint256",
125 "typeString": "uint256"
126 }
127 },
128 "nodeType": "BinaryOperation",
129 "operator": "*",
130 "rightExpression": {
131 "argumentTypes": null,
132 "id": 11463,
133 "name": "b",
134 "nodeType": "Identifier",
135 "overloadedDeclarations": [],
136 "referencedDeclaration": 11455,
137 "src": "142:1:38",
138 "typeDescriptions": {
139 "typeIdentifier": "t_uint256",
140 "typeString": "uint256"
141 }
142 },
143 "src": "138:5:38",
144 "typeDescriptions": {
145 "typeIdentifier": "t_uint256",
146 "typeString": "uint256"
147 }
148 },
149 "nodeType": "VariableDeclarationStatement",
150 "src": "126:17:38"
151 },
152 {
153 "expression": {
154 "argumentTypes": null,
155 "arguments": [
156 {
157 "argumentTypes": null,
158 "commonType": {
159 "typeIdentifier": "t_bool",
160 "typeString": "bool"
161 },
162 "id": 11475,
163 "isConstant": false,
164 "isLValue": false,
165 "isPure": false,
166 "lValueRequested": false,
167 "leftExpression": {
168 "argumentTypes": null,
169 "commonType": {
170 "typeIdentifier": "t_uint256",
171 "typeString": "uint256"
172 },
173 "id": 11469,
174 "isConstant": false,
175 "isLValue": false,
176 "isPure": false,
177 "lValueRequested": false,
178 "leftExpression": {
179 "argumentTypes": null,
180 "id": 11467,
181 "name": "a",
182 "nodeType": "Identifier",
183 "overloadedDeclarations": [],
184 "referencedDeclaration": 11453,
185 "src": "160:1:38",
186 "typeDescriptions": {
187 "typeIdentifier": "t_uint256",
188 "typeString": "uint256"
189 }
190 },
191 "nodeType": "BinaryOperation",
192 "operator": "==",
193 "rightExpression": {
194 "argumentTypes": null,
195 "hexValue": "30",
196 "id": 11468,
197 "isConstant": false,
198 "isLValue": false,
199 "isPure": true,
200 "kind": "number",
201 "lValueRequested": false,
202 "nodeType": "Literal",
203 "src": "165:1:38",
204 "subdenomination": null,
205 "typeDescriptions": {
206 "typeIdentifier": "t_rational_0_by_1",
207 "typeString": "int_const 0"
208 },
209 "value": "0"
210 },
211 "src": "160:6:38",
212 "typeDescriptions": {
213 "typeIdentifier": "t_bool",
214 "typeString": "bool"
215 }
216 },
217 "nodeType": "BinaryOperation",
218 "operator": "||",
219 "rightExpression": {
220 "argumentTypes": null,
221 "commonType": {
222 "typeIdentifier": "t_uint256",
223 "typeString": "uint256"
224 },
225 "id": 11474,
226 "isConstant": false,
227 "isLValue": false,
228 "isPure": false,
229 "lValueRequested": false,
230 "leftExpression": {
231 "argumentTypes": null,
232 "commonType": {
233 "typeIdentifier": "t_uint256",
234 "typeString": "uint256"
235 },
236 "id": 11472,
237 "isConstant": false,
238 "isLValue": false,
239 "isPure": false,
240 "lValueRequested": false,
241 "leftExpression": {
242 "argumentTypes": null,
243 "id": 11470,
244 "name": "c",
245 "nodeType": "Identifier",
246 "overloadedDeclarations": [],
247 "referencedDeclaration": 11461,
248 "src": "170:1:38",
249 "typeDescriptions": {
250 "typeIdentifier": "t_uint256",
251 "typeString": "uint256"
252 }
253 },
254 "nodeType": "BinaryOperation",
255 "operator": "/",
256 "rightExpression": {
257 "argumentTypes": null,
258 "id": 11471,
259 "name": "a",
260 "nodeType": "Identifier",
261 "overloadedDeclarations": [],
262 "referencedDeclaration": 11453,
263 "src": "174:1:38",
264 "typeDescriptions": {
265 "typeIdentifier": "t_uint256",
266 "typeString": "uint256"
267 }
268 },
269 "src": "170:5:38",
270 "typeDescriptions": {
271 "typeIdentifier": "t_uint256",
272 "typeString": "uint256"
273 }
274 },
275 "nodeType": "BinaryOperation",
276 "operator": "==",
277 "rightExpression": {
278 "argumentTypes": null,
279 "id": 11473,
280 "name": "b",
281 "nodeType": "Identifier",
282 "overloadedDeclarations": [],
283 "referencedDeclaration": 11455,
284 "src": "179:1:38",
285 "typeDescriptions": {
286 "typeIdentifier": "t_uint256",
287 "typeString": "uint256"
288 }
289 },
290 "src": "170:10:38",
291 "typeDescriptions": {
292 "typeIdentifier": "t_bool",
293 "typeString": "bool"
294 }
295 },
296 "src": "160:20:38",
297 "typeDescriptions": {
298 "typeIdentifier": "t_bool",
299 "typeString": "bool"
300 }
301 }
302 ],
303 "expression": {
304 "argumentTypes": [
305 {
306 "typeIdentifier": "t_bool",
307 "typeString": "bool"
308 }
309 ],
310 "id": 11466,
311 "name": "assert",
312 "nodeType": "Identifier",
313 "overloadedDeclarations": [],
314 "referencedDeclaration": 12081,
315 "src": "153:6:38",
316 "typeDescriptions": {
317 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
318 "typeString": "function (bool) pure"
319 }
320 },
321 "id": 11476,
322 "isConstant": false,
323 "isLValue": false,
324 "isPure": false,
325 "kind": "functionCall",
326 "lValueRequested": false,
327 "names": [],
328 "nodeType": "FunctionCall",
329 "src": "153:28:38",
330 "typeDescriptions": {
331 "typeIdentifier": "t_tuple$__$",
332 "typeString": "tuple()"
333 }
334 },
335 "id": 11477,
336 "nodeType": "ExpressionStatement",
337 "src": "153:28:38"
338 },
339 {
340 "expression": {
341 "argumentTypes": null,
342 "id": 11478,
343 "name": "c",
344 "nodeType": "Identifier",
345 "overloadedDeclarations": [],
346 "referencedDeclaration": 11461,
347 "src": "198:1:38",
348 "typeDescriptions": {
349 "typeIdentifier": "t_uint256",
350 "typeString": "uint256"
351 }
352 },
353 "functionReturnParameters": 11459,
354 "id": 11479,
355 "nodeType": "Return",
356 "src": "191:8:38"
357 }
358 ]
359 },
360 "documentation": null,
361 "id": 11481,
362 "implemented": true,
363 "isConstructor": false,
364 "isDeclaredConst": true,
365 "modifiers": [],
366 "name": "mul",
367 "nodeType": "FunctionDefinition",
368 "parameters": {
369 "id": 11456,
370 "nodeType": "ParameterList",
371 "parameters": [
372 {
373 "constant": false,
374 "id": 11453,
375 "name": "a",
376 "nodeType": "VariableDeclaration",
377 "scope": 11481,
378 "src": "62:9:38",
379 "stateVariable": false,
380 "storageLocation": "default",
381 "typeDescriptions": {
382 "typeIdentifier": "t_uint256",
383 "typeString": "uint256"
384 },
385 "typeName": {
386 "id": 11452,
387 "name": "uint256",
388 "nodeType": "ElementaryTypeName",
389 "src": "62:7:38",
390 "typeDescriptions": {
391 "typeIdentifier": "t_uint256",
392 "typeString": "uint256"
393 }
394 },
395 "value": null,
396 "visibility": "internal"
397 },
398 {
399 "constant": false,
400 "id": 11455,
401 "name": "b",
402 "nodeType": "VariableDeclaration",
403 "scope": 11481,
404 "src": "73:9:38",
405 "stateVariable": false,
406 "storageLocation": "default",
407 "typeDescriptions": {
408 "typeIdentifier": "t_uint256",
409 "typeString": "uint256"
410 },
411 "typeName": {
412 "id": 11454,
413 "name": "uint256",
414 "nodeType": "ElementaryTypeName",
415 "src": "73:7:38",
416 "typeDescriptions": {
417 "typeIdentifier": "t_uint256",
418 "typeString": "uint256"
419 }
420 },
421 "value": null,
422 "visibility": "internal"
423 }
424 ],
425 "src": "61:22:38"
426 },
427 "payable": false,
428 "returnParameters": {
429 "id": 11459,
430 "nodeType": "ParameterList",
431 "parameters": [
432 {
433 "constant": false,
434 "id": 11458,
435 "name": "",
436 "nodeType": "VariableDeclaration",
437 "scope": 11481,
438 "src": "107:7:38",
439 "stateVariable": false,
440 "storageLocation": "default",
441 "typeDescriptions": {
442 "typeIdentifier": "t_uint256",
443 "typeString": "uint256"
444 },
445 "typeName": {
446 "id": 11457,
447 "name": "uint256",
448 "nodeType": "ElementaryTypeName",
449 "src": "107:7:38",
450 "typeDescriptions": {
451 "typeIdentifier": "t_uint256",
452 "typeString": "uint256"
453 }
454 },
455 "value": null,
456 "visibility": "internal"
457 }
458 ],
459 "src": "106:9:38"
460 },
461 "scope": 11544,
462 "src": "49:157:38",
463 "stateMutability": "pure",
464 "superFunction": null,
465 "visibility": "internal"
466 },
467 {
468 "body": {
469 "id": 11498,
470 "nodeType": "Block",
471 "src": "278:216:38",
472 "statements": [
473 {
474 "assignments": [
475 11491
476 ],
477 "declarations": [
478 {
479 "constant": false,
480 "id": 11491,
481 "name": "c",
482 "nodeType": "VariableDeclaration",
483 "scope": 11499,
484 "src": "366:9:38",
485 "stateVariable": false,
486 "storageLocation": "default",
487 "typeDescriptions": {
488 "typeIdentifier": "t_uint256",
489 "typeString": "uint256"
490 },
491 "typeName": {
492 "id": 11490,
493 "name": "uint256",
494 "nodeType": "ElementaryTypeName",
495 "src": "366:7:38",
496 "typeDescriptions": {
497 "typeIdentifier": "t_uint256",
498 "typeString": "uint256"
499 }
500 },
501 "value": null,
502 "visibility": "internal"
503 }
504 ],
505 "id": 11495,
506 "initialValue": {
507 "argumentTypes": null,
508 "commonType": {
509 "typeIdentifier": "t_uint256",
510 "typeString": "uint256"
511 },
512 "id": 11494,
513 "isConstant": false,
514 "isLValue": false,
515 "isPure": false,
516 "lValueRequested": false,
517 "leftExpression": {
518 "argumentTypes": null,
519 "id": 11492,
520 "name": "a",
521 "nodeType": "Identifier",
522 "overloadedDeclarations": [],
523 "referencedDeclaration": 11483,
524 "src": "378:1:38",
525 "typeDescriptions": {
526 "typeIdentifier": "t_uint256",
527 "typeString": "uint256"
528 }
529 },
530 "nodeType": "BinaryOperation",
531 "operator": "/",
532 "rightExpression": {
533 "argumentTypes": null,
534 "id": 11493,
535 "name": "b",
536 "nodeType": "Identifier",
537 "overloadedDeclarations": [],
538 "referencedDeclaration": 11485,
539 "src": "382:1:38",
540 "typeDescriptions": {
541 "typeIdentifier": "t_uint256",
542 "typeString": "uint256"
543 }
544 },
545 "src": "378:5:38",
546 "typeDescriptions": {
547 "typeIdentifier": "t_uint256",
548 "typeString": "uint256"
549 }
550 },
551 "nodeType": "VariableDeclarationStatement",
552 "src": "366:17:38"
553 },
554 {
555 "expression": {
556 "argumentTypes": null,
557 "id": 11496,
558 "name": "c",
559 "nodeType": "Identifier",
560 "overloadedDeclarations": [],
561 "referencedDeclaration": 11491,
562 "src": "486:1:38",
563 "typeDescriptions": {
564 "typeIdentifier": "t_uint256",
565 "typeString": "uint256"
566 }
567 },
568 "functionReturnParameters": 11489,
569 "id": 11497,
570 "nodeType": "Return",
571 "src": "479:8:38"
572 }
573 ]
574 },
575 "documentation": null,
576 "id": 11499,
577 "implemented": true,
578 "isConstructor": false,
579 "isDeclaredConst": true,
580 "modifiers": [],
581 "name": "div",
582 "nodeType": "FunctionDefinition",
583 "parameters": {
584 "id": 11486,
585 "nodeType": "ParameterList",
586 "parameters": [
587 {
588 "constant": false,
589 "id": 11483,
590 "name": "a",
591 "nodeType": "VariableDeclaration",
592 "scope": 11499,
593 "src": "224:9:38",
594 "stateVariable": false,
595 "storageLocation": "default",
596 "typeDescriptions": {
597 "typeIdentifier": "t_uint256",
598 "typeString": "uint256"
599 },
600 "typeName": {
601 "id": 11482,
602 "name": "uint256",
603 "nodeType": "ElementaryTypeName",
604 "src": "224:7:38",
605 "typeDescriptions": {
606 "typeIdentifier": "t_uint256",
607 "typeString": "uint256"
608 }
609 },
610 "value": null,
611 "visibility": "internal"
612 },
613 {
614 "constant": false,
615 "id": 11485,
616 "name": "b",
617 "nodeType": "VariableDeclaration",
618 "scope": 11499,
619 "src": "235:9:38",
620 "stateVariable": false,
621 "storageLocation": "default",
622 "typeDescriptions": {
623 "typeIdentifier": "t_uint256",
624 "typeString": "uint256"
625 },
626 "typeName": {
627 "id": 11484,
628 "name": "uint256",
629 "nodeType": "ElementaryTypeName",
630 "src": "235:7:38",
631 "typeDescriptions": {
632 "typeIdentifier": "t_uint256",
633 "typeString": "uint256"
634 }
635 },
636 "value": null,
637 "visibility": "internal"
638 }
639 ],
640 "src": "223:22:38"
641 },
642 "payable": false,
643 "returnParameters": {
644 "id": 11489,
645 "nodeType": "ParameterList",
646 "parameters": [
647 {
648 "constant": false,
649 "id": 11488,
650 "name": "",
651 "nodeType": "VariableDeclaration",
652 "scope": 11499,
653 "src": "269:7:38",
654 "stateVariable": false,
655 "storageLocation": "default",
656 "typeDescriptions": {
657 "typeIdentifier": "t_uint256",
658 "typeString": "uint256"
659 },
660 "typeName": {
661 "id": 11487,
662 "name": "uint256",
663 "nodeType": "ElementaryTypeName",
664 "src": "269:7:38",
665 "typeDescriptions": {
666 "typeIdentifier": "t_uint256",
667 "typeString": "uint256"
668 }
669 },
670 "value": null,
671 "visibility": "internal"
672 }
673 ],
674 "src": "268:9:38"
675 },
676 "scope": 11544,
677 "src": "211:283:38",
678 "stateMutability": "pure",
679 "superFunction": null,
680 "visibility": "internal"
681 },
682 {
683 "body": {
684 "id": 11518,
685 "nodeType": "Block",
686 "src": "566:53:38",
687 "statements": [
688 {
689 "expression": {
690 "argumentTypes": null,
691 "arguments": [
692 {
693 "argumentTypes": null,
694 "commonType": {
695 "typeIdentifier": "t_uint256",
696 "typeString": "uint256"
697 },
698 "id": 11511,
699 "isConstant": false,
700 "isLValue": false,
701 "isPure": false,
702 "lValueRequested": false,
703 "leftExpression": {
704 "argumentTypes": null,
705 "id": 11509,
706 "name": "b",
707 "nodeType": "Identifier",
708 "overloadedDeclarations": [],
709 "referencedDeclaration": 11503,
710 "src": "583:1:38",
711 "typeDescriptions": {
712 "typeIdentifier": "t_uint256",
713 "typeString": "uint256"
714 }
715 },
716 "nodeType": "BinaryOperation",
717 "operator": "<=",
718 "rightExpression": {
719 "argumentTypes": null,
720 "id": 11510,
721 "name": "a",
722 "nodeType": "Identifier",
723 "overloadedDeclarations": [],
724 "referencedDeclaration": 11501,
725 "src": "588:1:38",
726 "typeDescriptions": {
727 "typeIdentifier": "t_uint256",
728 "typeString": "uint256"
729 }
730 },
731 "src": "583:6:38",
732 "typeDescriptions": {
733 "typeIdentifier": "t_bool",
734 "typeString": "bool"
735 }
736 }
737 ],
738 "expression": {
739 "argumentTypes": [
740 {
741 "typeIdentifier": "t_bool",
742 "typeString": "bool"
743 }
744 ],
745 "id": 11508,
746 "name": "assert",
747 "nodeType": "Identifier",
748 "overloadedDeclarations": [],
749 "referencedDeclaration": 12081,
750 "src": "576:6:38",
751 "typeDescriptions": {
752 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
753 "typeString": "function (bool) pure"
754 }
755 },
756 "id": 11512,
757 "isConstant": false,
758 "isLValue": false,
759 "isPure": false,
760 "kind": "functionCall",
761 "lValueRequested": false,
762 "names": [],
763 "nodeType": "FunctionCall",
764 "src": "576:14:38",
765 "typeDescriptions": {
766 "typeIdentifier": "t_tuple$__$",
767 "typeString": "tuple()"
768 }
769 },
770 "id": 11513,
771 "nodeType": "ExpressionStatement",
772 "src": "576:14:38"
773 },
774 {
775 "expression": {
776 "argumentTypes": null,
777 "commonType": {
778 "typeIdentifier": "t_uint256",
779 "typeString": "uint256"
780 },
781 "id": 11516,
782 "isConstant": false,
783 "isLValue": false,
784 "isPure": false,
785 "lValueRequested": false,
786 "leftExpression": {
787 "argumentTypes": null,
788 "id": 11514,
789 "name": "a",
790 "nodeType": "Identifier",
791 "overloadedDeclarations": [],
792 "referencedDeclaration": 11501,
793 "src": "607:1:38",
794 "typeDescriptions": {
795 "typeIdentifier": "t_uint256",
796 "typeString": "uint256"
797 }
798 },
799 "nodeType": "BinaryOperation",
800 "operator": "-",
801 "rightExpression": {
802 "argumentTypes": null,
803 "id": 11515,
804 "name": "b",
805 "nodeType": "Identifier",
806 "overloadedDeclarations": [],
807 "referencedDeclaration": 11503,
808 "src": "611:1:38",
809 "typeDescriptions": {
810 "typeIdentifier": "t_uint256",
811 "typeString": "uint256"
812 }
813 },
814 "src": "607:5:38",
815 "typeDescriptions": {
816 "typeIdentifier": "t_uint256",
817 "typeString": "uint256"
818 }
819 },
820 "functionReturnParameters": 11507,
821 "id": 11517,
822 "nodeType": "Return",
823 "src": "600:12:38"
824 }
825 ]
826 },
827 "documentation": null,
828 "id": 11519,
829 "implemented": true,
830 "isConstructor": false,
831 "isDeclaredConst": true,
832 "modifiers": [],
833 "name": "sub",
834 "nodeType": "FunctionDefinition",
835 "parameters": {
836 "id": 11504,
837 "nodeType": "ParameterList",
838 "parameters": [
839 {
840 "constant": false,
841 "id": 11501,
842 "name": "a",
843 "nodeType": "VariableDeclaration",
844 "scope": 11519,
845 "src": "512:9:38",
846 "stateVariable": false,
847 "storageLocation": "default",
848 "typeDescriptions": {
849 "typeIdentifier": "t_uint256",
850 "typeString": "uint256"
851 },
852 "typeName": {
853 "id": 11500,
854 "name": "uint256",
855 "nodeType": "ElementaryTypeName",
856 "src": "512:7:38",
857 "typeDescriptions": {
858 "typeIdentifier": "t_uint256",
859 "typeString": "uint256"
860 }
861 },
862 "value": null,
863 "visibility": "internal"
864 },
865 {
866 "constant": false,
867 "id": 11503,
868 "name": "b",
869 "nodeType": "VariableDeclaration",
870 "scope": 11519,
871 "src": "523:9:38",
872 "stateVariable": false,
873 "storageLocation": "default",
874 "typeDescriptions": {
875 "typeIdentifier": "t_uint256",
876 "typeString": "uint256"
877 },
878 "typeName": {
879 "id": 11502,
880 "name": "uint256",
881 "nodeType": "ElementaryTypeName",
882 "src": "523:7:38",
883 "typeDescriptions": {
884 "typeIdentifier": "t_uint256",
885 "typeString": "uint256"
886 }
887 },
888 "value": null,
889 "visibility": "internal"
890 }
891 ],
892 "src": "511:22:38"
893 },
894 "payable": false,
895 "returnParameters": {
896 "id": 11507,
897 "nodeType": "ParameterList",
898 "parameters": [
899 {
900 "constant": false,
901 "id": 11506,
902 "name": "",
903 "nodeType": "VariableDeclaration",
904 "scope": 11519,
905 "src": "557:7:38",
906 "stateVariable": false,
907 "storageLocation": "default",
908 "typeDescriptions": {
909 "typeIdentifier": "t_uint256",
910 "typeString": "uint256"
911 },
912 "typeName": {
913 "id": 11505,
914 "name": "uint256",
915 "nodeType": "ElementaryTypeName",
916 "src": "557:7:38",
917 "typeDescriptions": {
918 "typeIdentifier": "t_uint256",
919 "typeString": "uint256"
920 }
921 },
922 "value": null,
923 "visibility": "internal"
924 }
925 ],
926 "src": "556:9:38"
927 },
928 "scope": 11544,
929 "src": "499:120:38",
930 "stateMutability": "pure",
931 "superFunction": null,
932 "visibility": "internal"
933 },
934 {
935 "body": {
936 "id": 11542,
937 "nodeType": "Block",
938 "src": "691:76:38",
939 "statements": [
940 {
941 "assignments": [
942 11529
943 ],
944 "declarations": [
945 {
946 "constant": false,
947 "id": 11529,
948 "name": "c",
949 "nodeType": "VariableDeclaration",
950 "scope": 11543,
951 "src": "701:9:38",
952 "stateVariable": false,
953 "storageLocation": "default",
954 "typeDescriptions": {
955 "typeIdentifier": "t_uint256",
956 "typeString": "uint256"
957 },
958 "typeName": {
959 "id": 11528,
960 "name": "uint256",
961 "nodeType": "ElementaryTypeName",
962 "src": "701:7:38",
963 "typeDescriptions": {
964 "typeIdentifier": "t_uint256",
965 "typeString": "uint256"
966 }
967 },
968 "value": null,
969 "visibility": "internal"
970 }
971 ],
972 "id": 11533,
973 "initialValue": {
974 "argumentTypes": null,
975 "commonType": {
976 "typeIdentifier": "t_uint256",
977 "typeString": "uint256"
978 },
979 "id": 11532,
980 "isConstant": false,
981 "isLValue": false,
982 "isPure": false,
983 "lValueRequested": false,
984 "leftExpression": {
985 "argumentTypes": null,
986 "id": 11530,
987 "name": "a",
988 "nodeType": "Identifier",
989 "overloadedDeclarations": [],
990 "referencedDeclaration": 11521,
991 "src": "713:1:38",
992 "typeDescriptions": {
993 "typeIdentifier": "t_uint256",
994 "typeString": "uint256"
995 }
996 },
997 "nodeType": "BinaryOperation",
998 "operator": "+",
999 "rightExpression": {
1000 "argumentTypes": null,
1001 "id": 11531,
1002 "name": "b",
1003 "nodeType": "Identifier",
1004 "overloadedDeclarations": [],
1005 "referencedDeclaration": 11523,
1006 "src": "717:1:38",
1007 "typeDescriptions": {
1008 "typeIdentifier": "t_uint256",
1009 "typeString": "uint256"
1010 }
1011 },
1012 "src": "713:5:38",
1013 "typeDescriptions": {
1014 "typeIdentifier": "t_uint256",
1015 "typeString": "uint256"
1016 }
1017 },
1018 "nodeType": "VariableDeclarationStatement",
1019 "src": "701:17:38"
1020 },
1021 {
1022 "expression": {
1023 "argumentTypes": null,
1024 "arguments": [
1025 {
1026 "argumentTypes": null,
1027 "commonType": {
1028 "typeIdentifier": "t_uint256",
1029 "typeString": "uint256"
1030 },
1031 "id": 11537,
1032 "isConstant": false,
1033 "isLValue": false,
1034 "isPure": false,
1035 "lValueRequested": false,
1036 "leftExpression": {
1037 "argumentTypes": null,
1038 "id": 11535,
1039 "name": "c",
1040 "nodeType": "Identifier",
1041 "overloadedDeclarations": [],
1042 "referencedDeclaration": 11529,
1043 "src": "735:1:38",
1044 "typeDescriptions": {
1045 "typeIdentifier": "t_uint256",
1046 "typeString": "uint256"
1047 }
1048 },
1049 "nodeType": "BinaryOperation",
1050 "operator": ">=",
1051 "rightExpression": {
1052 "argumentTypes": null,
1053 "id": 11536,
1054 "name": "a",
1055 "nodeType": "Identifier",
1056 "overloadedDeclarations": [],
1057 "referencedDeclaration": 11521,
1058 "src": "740:1:38",
1059 "typeDescriptions": {
1060 "typeIdentifier": "t_uint256",
1061 "typeString": "uint256"
1062 }
1063 },
1064 "src": "735:6:38",
1065 "typeDescriptions": {
1066 "typeIdentifier": "t_bool",
1067 "typeString": "bool"
1068 }
1069 }
1070 ],
1071 "expression": {
1072 "argumentTypes": [
1073 {
1074 "typeIdentifier": "t_bool",
1075 "typeString": "bool"
1076 }
1077 ],
1078 "id": 11534,
1079 "name": "assert",
1080 "nodeType": "Identifier",
1081 "overloadedDeclarations": [],
1082 "referencedDeclaration": 12081,
1083 "src": "728:6:38",
1084 "typeDescriptions": {
1085 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
1086 "typeString": "function (bool) pure"
1087 }
1088 },
1089 "id": 11538,
1090 "isConstant": false,
1091 "isLValue": false,
1092 "isPure": false,
1093 "kind": "functionCall",
1094 "lValueRequested": false,
1095 "names": [],
1096 "nodeType": "FunctionCall",
1097 "src": "728:14:38",
1098 "typeDescriptions": {
1099 "typeIdentifier": "t_tuple$__$",
1100 "typeString": "tuple()"
1101 }
1102 },
1103 "id": 11539,
1104 "nodeType": "ExpressionStatement",
1105 "src": "728:14:38"
1106 },
1107 {
1108 "expression": {
1109 "argumentTypes": null,
1110 "id": 11540,
1111 "name": "c",
1112 "nodeType": "Identifier",
1113 "overloadedDeclarations": [],
1114 "referencedDeclaration": 11529,
1115 "src": "759:1:38",
1116 "typeDescriptions": {
1117 "typeIdentifier": "t_uint256",
1118 "typeString": "uint256"
1119 }
1120 },
1121 "functionReturnParameters": 11527,
1122 "id": 11541,
1123 "nodeType": "Return",
1124 "src": "752:8:38"
1125 }
1126 ]
1127 },
1128 "documentation": null,
1129 "id": 11543,
1130 "implemented": true,
1131 "isConstructor": false,
1132 "isDeclaredConst": true,
1133 "modifiers": [],
1134 "name": "add",
1135 "nodeType": "FunctionDefinition",
1136 "parameters": {
1137 "id": 11524,
1138 "nodeType": "ParameterList",
1139 "parameters": [
1140 {
1141 "constant": false,
1142 "id": 11521,
1143 "name": "a",
1144 "nodeType": "VariableDeclaration",
1145 "scope": 11543,
1146 "src": "637:9:38",
1147 "stateVariable": false,
1148 "storageLocation": "default",
1149 "typeDescriptions": {
1150 "typeIdentifier": "t_uint256",
1151 "typeString": "uint256"
1152 },
1153 "typeName": {
1154 "id": 11520,
1155 "name": "uint256",
1156 "nodeType": "ElementaryTypeName",
1157 "src": "637:7:38",
1158 "typeDescriptions": {
1159 "typeIdentifier": "t_uint256",
1160 "typeString": "uint256"
1161 }
1162 },
1163 "value": null,
1164 "visibility": "internal"
1165 },
1166 {
1167 "constant": false,
1168 "id": 11523,
1169 "name": "b",
1170 "nodeType": "VariableDeclaration",
1171 "scope": 11543,
1172 "src": "648:9:38",
1173 "stateVariable": false,
1174 "storageLocation": "default",
1175 "typeDescriptions": {
1176 "typeIdentifier": "t_uint256",
1177 "typeString": "uint256"
1178 },
1179 "typeName": {
1180 "id": 11522,
1181 "name": "uint256",
1182 "nodeType": "ElementaryTypeName",
1183 "src": "648:7:38",
1184 "typeDescriptions": {
1185 "typeIdentifier": "t_uint256",
1186 "typeString": "uint256"
1187 }
1188 },
1189 "value": null,
1190 "visibility": "internal"
1191 }
1192 ],
1193 "src": "636:22:38"
1194 },
1195 "payable": false,
1196 "returnParameters": {
1197 "id": 11527,
1198 "nodeType": "ParameterList",
1199 "parameters": [
1200 {
1201 "constant": false,
1202 "id": 11526,
1203 "name": "",
1204 "nodeType": "VariableDeclaration",
1205 "scope": 11543,
1206 "src": "682:7:38",
1207 "stateVariable": false,
1208 "storageLocation": "default",
1209 "typeDescriptions": {
1210 "typeIdentifier": "t_uint256",
1211 "typeString": "uint256"
1212 },
1213 "typeName": {
1214 "id": 11525,
1215 "name": "uint256",
1216 "nodeType": "ElementaryTypeName",
1217 "src": "682:7:38",
1218 "typeDescriptions": {
1219 "typeIdentifier": "t_uint256",
1220 "typeString": "uint256"
1221 }
1222 },
1223 "value": null,
1224 "visibility": "internal"
1225 }
1226 ],
1227 "src": "681:9:38"
1228 },
1229 "scope": 11544,
1230 "src": "624:143:38",
1231 "stateMutability": "pure",
1232 "superFunction": null,
1233 "visibility": "internal"
1234 }
1235 ],
1236 "scope": 12078,
1237 "src": "26:743:38"
1238 },
1239 {
1240 "baseContracts": [],
1241 "contractDependencies": [],
1242 "contractKind": "contract",
1243 "documentation": null,
1244 "fullyImplemented": false,
1245 "id": 11571,
1246 "linearizedBaseContracts": [
1247 11571
1248 ],
1249 "name": "ERC20Basic",
1250 "nodeType": "ContractDefinition",
1251 "nodes": [
1252 {
1253 "constant": false,
1254 "id": 11546,
1255 "name": "totalSupply",
1256 "nodeType": "VariableDeclaration",
1257 "scope": 11571,
1258 "src": "797:26:38",
1259 "stateVariable": true,
1260 "storageLocation": "default",
1261 "typeDescriptions": {
1262 "typeIdentifier": "t_uint256",
1263 "typeString": "uint256"
1264 },
1265 "typeName": {
1266 "id": 11545,
1267 "name": "uint256",
1268 "nodeType": "ElementaryTypeName",
1269 "src": "797:7:38",
1270 "typeDescriptions": {
1271 "typeIdentifier": "t_uint256",
1272 "typeString": "uint256"
1273 }
1274 },
1275 "value": null,
1276 "visibility": "public"
1277 },
1278 {
1279 "body": null,
1280 "documentation": null,
1281 "id": 11553,
1282 "implemented": false,
1283 "isConstructor": false,
1284 "isDeclaredConst": true,
1285 "modifiers": [],
1286 "name": "balanceOf",
1287 "nodeType": "FunctionDefinition",
1288 "parameters": {
1289 "id": 11549,
1290 "nodeType": "ParameterList",
1291 "parameters": [
1292 {
1293 "constant": false,
1294 "id": 11548,
1295 "name": "who",
1296 "nodeType": "VariableDeclaration",
1297 "scope": 11553,
1298 "src": "848:11:38",
1299 "stateVariable": false,
1300 "storageLocation": "default",
1301 "typeDescriptions": {
1302 "typeIdentifier": "t_address",
1303 "typeString": "address"
1304 },
1305 "typeName": {
1306 "id": 11547,
1307 "name": "address",
1308 "nodeType": "ElementaryTypeName",
1309 "src": "848:7:38",
1310 "typeDescriptions": {
1311 "typeIdentifier": "t_address",
1312 "typeString": "address"
1313 }
1314 },
1315 "value": null,
1316 "visibility": "internal"
1317 }
1318 ],
1319 "src": "847:13:38"
1320 },
1321 "payable": false,
1322 "returnParameters": {
1323 "id": 11552,
1324 "nodeType": "ParameterList",
1325 "parameters": [
1326 {
1327 "constant": false,
1328 "id": 11551,
1329 "name": "",
1330 "nodeType": "VariableDeclaration",
1331 "scope": 11553,
1332 "src": "886:7:38",
1333 "stateVariable": false,
1334 "storageLocation": "default",
1335 "typeDescriptions": {
1336 "typeIdentifier": "t_uint256",
1337 "typeString": "uint256"
1338 },
1339 "typeName": {
1340 "id": 11550,
1341 "name": "uint256",
1342 "nodeType": "ElementaryTypeName",
1343 "src": "886:7:38",
1344 "typeDescriptions": {
1345 "typeIdentifier": "t_uint256",
1346 "typeString": "uint256"
1347 }
1348 },
1349 "value": null,
1350 "visibility": "internal"
1351 }
1352 ],
1353 "src": "885:9:38"
1354 },
1355 "scope": 11571,
1356 "src": "829:66:38",
1357 "stateMutability": "view",
1358 "superFunction": null,
1359 "visibility": "public"
1360 },
1361 {
1362 "body": null,
1363 "documentation": null,
1364 "id": 11562,
1365 "implemented": false,
1366 "isConstructor": false,
1367 "isDeclaredConst": false,
1368 "modifiers": [],
1369 "name": "transfer",
1370 "nodeType": "FunctionDefinition",
1371 "parameters": {
1372 "id": 11558,
1373 "nodeType": "ParameterList",
1374 "parameters": [
1375 {
1376 "constant": false,
1377 "id": 11555,
1378 "name": "to",
1379 "nodeType": "VariableDeclaration",
1380 "scope": 11562,
1381 "src": "918:10:38",
1382 "stateVariable": false,
1383 "storageLocation": "default",
1384 "typeDescriptions": {
1385 "typeIdentifier": "t_address",
1386 "typeString": "address"
1387 },
1388 "typeName": {
1389 "id": 11554,
1390 "name": "address",
1391 "nodeType": "ElementaryTypeName",
1392 "src": "918:7:38",
1393 "typeDescriptions": {
1394 "typeIdentifier": "t_address",
1395 "typeString": "address"
1396 }
1397 },
1398 "value": null,
1399 "visibility": "internal"
1400 },
1401 {
1402 "constant": false,
1403 "id": 11557,
1404 "name": "value",
1405 "nodeType": "VariableDeclaration",
1406 "scope": 11562,
1407 "src": "930:13:38",
1408 "stateVariable": false,
1409 "storageLocation": "default",
1410 "typeDescriptions": {
1411 "typeIdentifier": "t_uint256",
1412 "typeString": "uint256"
1413 },
1414 "typeName": {
1415 "id": 11556,
1416 "name": "uint256",
1417 "nodeType": "ElementaryTypeName",
1418 "src": "930:7:38",
1419 "typeDescriptions": {
1420 "typeIdentifier": "t_uint256",
1421 "typeString": "uint256"
1422 }
1423 },
1424 "value": null,
1425 "visibility": "internal"
1426 }
1427 ],
1428 "src": "917:27:38"
1429 },
1430 "payable": false,
1431 "returnParameters": {
1432 "id": 11561,
1433 "nodeType": "ParameterList",
1434 "parameters": [
1435 {
1436 "constant": false,
1437 "id": 11560,
1438 "name": "",
1439 "nodeType": "VariableDeclaration",
1440 "scope": 11562,
1441 "src": "961:4:38",
1442 "stateVariable": false,
1443 "storageLocation": "default",
1444 "typeDescriptions": {
1445 "typeIdentifier": "t_bool",
1446 "typeString": "bool"
1447 },
1448 "typeName": {
1449 "id": 11559,
1450 "name": "bool",
1451 "nodeType": "ElementaryTypeName",
1452 "src": "961:4:38",
1453 "typeDescriptions": {
1454 "typeIdentifier": "t_bool",
1455 "typeString": "bool"
1456 }
1457 },
1458 "value": null,
1459 "visibility": "internal"
1460 }
1461 ],
1462 "src": "960:6:38"
1463 },
1464 "scope": 11571,
1465 "src": "900:67:38",
1466 "stateMutability": "nonpayable",
1467 "superFunction": null,
1468 "visibility": "public"
1469 },
1470 {
1471 "anonymous": false,
1472 "documentation": null,
1473 "id": 11570,
1474 "name": "Transfer",
1475 "nodeType": "EventDefinition",
1476 "parameters": {
1477 "id": 11569,
1478 "nodeType": "ParameterList",
1479 "parameters": [
1480 {
1481 "constant": false,
1482 "id": 11564,
1483 "indexed": true,
1484 "name": "from",
1485 "nodeType": "VariableDeclaration",
1486 "scope": 11570,
1487 "src": "987:20:38",
1488 "stateVariable": false,
1489 "storageLocation": "default",
1490 "typeDescriptions": {
1491 "typeIdentifier": "t_address",
1492 "typeString": "address"
1493 },
1494 "typeName": {
1495 "id": 11563,
1496 "name": "address",
1497 "nodeType": "ElementaryTypeName",
1498 "src": "987:7:38",
1499 "typeDescriptions": {
1500 "typeIdentifier": "t_address",
1501 "typeString": "address"
1502 }
1503 },
1504 "value": null,
1505 "visibility": "internal"
1506 },
1507 {
1508 "constant": false,
1509 "id": 11566,
1510 "indexed": true,
1511 "name": "to",
1512 "nodeType": "VariableDeclaration",
1513 "scope": 11570,
1514 "src": "1009:18:38",
1515 "stateVariable": false,
1516 "storageLocation": "default",
1517 "typeDescriptions": {
1518 "typeIdentifier": "t_address",
1519 "typeString": "address"
1520 },
1521 "typeName": {
1522 "id": 11565,
1523 "name": "address",
1524 "nodeType": "ElementaryTypeName",
1525 "src": "1009:7:38",
1526 "typeDescriptions": {
1527 "typeIdentifier": "t_address",
1528 "typeString": "address"
1529 }
1530 },
1531 "value": null,
1532 "visibility": "internal"
1533 },
1534 {
1535 "constant": false,
1536 "id": 11568,
1537 "indexed": false,
1538 "name": "value",
1539 "nodeType": "VariableDeclaration",
1540 "scope": 11570,
1541 "src": "1029:13:38",
1542 "stateVariable": false,
1543 "storageLocation": "default",
1544 "typeDescriptions": {
1545 "typeIdentifier": "t_uint256",
1546 "typeString": "uint256"
1547 },
1548 "typeName": {
1549 "id": 11567,
1550 "name": "uint256",
1551 "nodeType": "ElementaryTypeName",
1552 "src": "1029:7:38",
1553 "typeDescriptions": {
1554 "typeIdentifier": "t_uint256",
1555 "typeString": "uint256"
1556 }
1557 },
1558 "value": null,
1559 "visibility": "internal"
1560 }
1561 ],
1562 "src": "986:57:38"
1563 },
1564 "src": "972:72:38"
1565 }
1566 ],
1567 "scope": 12078,
1568 "src": "771:275:38"
1569 },
1570 {
1571 "baseContracts": [
1572 {
1573 "arguments": null,
1574 "baseName": {
1575 "contractScope": null,
1576 "id": 11572,
1577 "name": "ERC20Basic",
1578 "nodeType": "UserDefinedTypeName",
1579 "referencedDeclaration": 11571,
1580 "src": "1155:10:38",
1581 "typeDescriptions": {
1582 "typeIdentifier": "t_contract$_ERC20Basic_$11571",
1583 "typeString": "contract ERC20Basic"
1584 }
1585 },
1586 "id": 11573,
1587 "nodeType": "InheritanceSpecifier",
1588 "src": "1155:10:38"
1589 }
1590 ],
1591 "contractDependencies": [
1592 11571
1593 ],
1594 "contractKind": "contract",
1595 "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20",
1596 "fullyImplemented": false,
1597 "id": 11611,
1598 "linearizedBaseContracts": [
1599 11611,
1600 11571
1601 ],
1602 "name": "ERC20",
1603 "nodeType": "ContractDefinition",
1604 "nodes": [
1605 {
1606 "body": null,
1607 "documentation": null,
1608 "id": 11582,
1609 "implemented": false,
1610 "isConstructor": false,
1611 "isDeclaredConst": true,
1612 "modifiers": [],
1613 "name": "allowance",
1614 "nodeType": "FunctionDefinition",
1615 "parameters": {
1616 "id": 11578,
1617 "nodeType": "ParameterList",
1618 "parameters": [
1619 {
1620 "constant": false,
1621 "id": 11575,
1622 "name": "owner",
1623 "nodeType": "VariableDeclaration",
1624 "scope": 11582,
1625 "src": "1191:13:38",
1626 "stateVariable": false,
1627 "storageLocation": "default",
1628 "typeDescriptions": {
1629 "typeIdentifier": "t_address",
1630 "typeString": "address"
1631 },
1632 "typeName": {
1633 "id": 11574,
1634 "name": "address",
1635 "nodeType": "ElementaryTypeName",
1636 "src": "1191:7:38",
1637 "typeDescriptions": {
1638 "typeIdentifier": "t_address",
1639 "typeString": "address"
1640 }
1641 },
1642 "value": null,
1643 "visibility": "internal"
1644 },
1645 {
1646 "constant": false,
1647 "id": 11577,
1648 "name": "spender",
1649 "nodeType": "VariableDeclaration",
1650 "scope": 11582,
1651 "src": "1206:15:38",
1652 "stateVariable": false,
1653 "storageLocation": "default",
1654 "typeDescriptions": {
1655 "typeIdentifier": "t_address",
1656 "typeString": "address"
1657 },
1658 "typeName": {
1659 "id": 11576,
1660 "name": "address",
1661 "nodeType": "ElementaryTypeName",
1662 "src": "1206:7:38",
1663 "typeDescriptions": {
1664 "typeIdentifier": "t_address",
1665 "typeString": "address"
1666 }
1667 },
1668 "value": null,
1669 "visibility": "internal"
1670 }
1671 ],
1672 "src": "1190:32:38"
1673 },
1674 "payable": false,
1675 "returnParameters": {
1676 "id": 11581,
1677 "nodeType": "ParameterList",
1678 "parameters": [
1679 {
1680 "constant": false,
1681 "id": 11580,
1682 "name": "",
1683 "nodeType": "VariableDeclaration",
1684 "scope": 11582,
1685 "src": "1248:7:38",
1686 "stateVariable": false,
1687 "storageLocation": "default",
1688 "typeDescriptions": {
1689 "typeIdentifier": "t_uint256",
1690 "typeString": "uint256"
1691 },
1692 "typeName": {
1693 "id": 11579,
1694 "name": "uint256",
1695 "nodeType": "ElementaryTypeName",
1696 "src": "1248:7:38",
1697 "typeDescriptions": {
1698 "typeIdentifier": "t_uint256",
1699 "typeString": "uint256"
1700 }
1701 },
1702 "value": null,
1703 "visibility": "internal"
1704 }
1705 ],
1706 "src": "1247:9:38"
1707 },
1708 "scope": 11611,
1709 "src": "1172:85:38",
1710 "stateMutability": "view",
1711 "superFunction": null,
1712 "visibility": "public"
1713 },
1714 {
1715 "body": null,
1716 "documentation": null,
1717 "id": 11593,
1718 "implemented": false,
1719 "isConstructor": false,
1720 "isDeclaredConst": false,
1721 "modifiers": [],
1722 "name": "transferFrom",
1723 "nodeType": "FunctionDefinition",
1724 "parameters": {
1725 "id": 11589,
1726 "nodeType": "ParameterList",
1727 "parameters": [
1728 {
1729 "constant": false,
1730 "id": 11584,
1731 "name": "from",
1732 "nodeType": "VariableDeclaration",
1733 "scope": 11593,
1734 "src": "1284:12:38",
1735 "stateVariable": false,
1736 "storageLocation": "default",
1737 "typeDescriptions": {
1738 "typeIdentifier": "t_address",
1739 "typeString": "address"
1740 },
1741 "typeName": {
1742 "id": 11583,
1743 "name": "address",
1744 "nodeType": "ElementaryTypeName",
1745 "src": "1284:7:38",
1746 "typeDescriptions": {
1747 "typeIdentifier": "t_address",
1748 "typeString": "address"
1749 }
1750 },
1751 "value": null,
1752 "visibility": "internal"
1753 },
1754 {
1755 "constant": false,
1756 "id": 11586,
1757 "name": "to",
1758 "nodeType": "VariableDeclaration",
1759 "scope": 11593,
1760 "src": "1298:10:38",
1761 "stateVariable": false,
1762 "storageLocation": "default",
1763 "typeDescriptions": {
1764 "typeIdentifier": "t_address",
1765 "typeString": "address"
1766 },
1767 "typeName": {
1768 "id": 11585,
1769 "name": "address",
1770 "nodeType": "ElementaryTypeName",
1771 "src": "1298:7:38",
1772 "typeDescriptions": {
1773 "typeIdentifier": "t_address",
1774 "typeString": "address"
1775 }
1776 },
1777 "value": null,
1778 "visibility": "internal"
1779 },
1780 {
1781 "constant": false,
1782 "id": 11588,
1783 "name": "value",
1784 "nodeType": "VariableDeclaration",
1785 "scope": 11593,
1786 "src": "1310:13:38",
1787 "stateVariable": false,
1788 "storageLocation": "default",
1789 "typeDescriptions": {
1790 "typeIdentifier": "t_uint256",
1791 "typeString": "uint256"
1792 },
1793 "typeName": {
1794 "id": 11587,
1795 "name": "uint256",
1796 "nodeType": "ElementaryTypeName",
1797 "src": "1310:7:38",
1798 "typeDescriptions": {
1799 "typeIdentifier": "t_uint256",
1800 "typeString": "uint256"
1801 }
1802 },
1803 "value": null,
1804 "visibility": "internal"
1805 }
1806 ],
1807 "src": "1283:41:38"
1808 },
1809 "payable": false,
1810 "returnParameters": {
1811 "id": 11592,
1812 "nodeType": "ParameterList",
1813 "parameters": [
1814 {
1815 "constant": false,
1816 "id": 11591,
1817 "name": "",
1818 "nodeType": "VariableDeclaration",
1819 "scope": 11593,
1820 "src": "1341:4:38",
1821 "stateVariable": false,
1822 "storageLocation": "default",
1823 "typeDescriptions": {
1824 "typeIdentifier": "t_bool",
1825 "typeString": "bool"
1826 },
1827 "typeName": {
1828 "id": 11590,
1829 "name": "bool",
1830 "nodeType": "ElementaryTypeName",
1831 "src": "1341:4:38",
1832 "typeDescriptions": {
1833 "typeIdentifier": "t_bool",
1834 "typeString": "bool"
1835 }
1836 },
1837 "value": null,
1838 "visibility": "internal"
1839 }
1840 ],
1841 "src": "1340:6:38"
1842 },
1843 "scope": 11611,
1844 "src": "1262:85:38",
1845 "stateMutability": "nonpayable",
1846 "superFunction": null,
1847 "visibility": "public"
1848 },
1849 {
1850 "body": null,
1851 "documentation": null,
1852 "id": 11602,
1853 "implemented": false,
1854 "isConstructor": false,
1855 "isDeclaredConst": false,
1856 "modifiers": [],
1857 "name": "approve",
1858 "nodeType": "FunctionDefinition",
1859 "parameters": {
1860 "id": 11598,
1861 "nodeType": "ParameterList",
1862 "parameters": [
1863 {
1864 "constant": false,
1865 "id": 11595,
1866 "name": "spender",
1867 "nodeType": "VariableDeclaration",
1868 "scope": 11602,
1869 "src": "1369:15:38",
1870 "stateVariable": false,
1871 "storageLocation": "default",
1872 "typeDescriptions": {
1873 "typeIdentifier": "t_address",
1874 "typeString": "address"
1875 },
1876 "typeName": {
1877 "id": 11594,
1878 "name": "address",
1879 "nodeType": "ElementaryTypeName",
1880 "src": "1369:7:38",
1881 "typeDescriptions": {
1882 "typeIdentifier": "t_address",
1883 "typeString": "address"
1884 }
1885 },
1886 "value": null,
1887 "visibility": "internal"
1888 },
1889 {
1890 "constant": false,
1891 "id": 11597,
1892 "name": "value",
1893 "nodeType": "VariableDeclaration",
1894 "scope": 11602,
1895 "src": "1386:13:38",
1896 "stateVariable": false,
1897 "storageLocation": "default",
1898 "typeDescriptions": {
1899 "typeIdentifier": "t_uint256",
1900 "typeString": "uint256"
1901 },
1902 "typeName": {
1903 "id": 11596,
1904 "name": "uint256",
1905 "nodeType": "ElementaryTypeName",
1906 "src": "1386:7:38",
1907 "typeDescriptions": {
1908 "typeIdentifier": "t_uint256",
1909 "typeString": "uint256"
1910 }
1911 },
1912 "value": null,
1913 "visibility": "internal"
1914 }
1915 ],
1916 "src": "1368:32:38"
1917 },
1918 "payable": false,
1919 "returnParameters": {
1920 "id": 11601,
1921 "nodeType": "ParameterList",
1922 "parameters": [
1923 {
1924 "constant": false,
1925 "id": 11600,
1926 "name": "",
1927 "nodeType": "VariableDeclaration",
1928 "scope": 11602,
1929 "src": "1417:4:38",
1930 "stateVariable": false,
1931 "storageLocation": "default",
1932 "typeDescriptions": {
1933 "typeIdentifier": "t_bool",
1934 "typeString": "bool"
1935 },
1936 "typeName": {
1937 "id": 11599,
1938 "name": "bool",
1939 "nodeType": "ElementaryTypeName",
1940 "src": "1417:4:38",
1941 "typeDescriptions": {
1942 "typeIdentifier": "t_bool",
1943 "typeString": "bool"
1944 }
1945 },
1946 "value": null,
1947 "visibility": "internal"
1948 }
1949 ],
1950 "src": "1416:6:38"
1951 },
1952 "scope": 11611,
1953 "src": "1352:71:38",
1954 "stateMutability": "nonpayable",
1955 "superFunction": null,
1956 "visibility": "public"
1957 },
1958 {
1959 "anonymous": false,
1960 "documentation": null,
1961 "id": 11610,
1962 "name": "Approval",
1963 "nodeType": "EventDefinition",
1964 "parameters": {
1965 "id": 11609,
1966 "nodeType": "ParameterList",
1967 "parameters": [
1968 {
1969 "constant": false,
1970 "id": 11604,
1971 "indexed": true,
1972 "name": "owner",
1973 "nodeType": "VariableDeclaration",
1974 "scope": 11610,
1975 "src": "1443:21:38",
1976 "stateVariable": false,
1977 "storageLocation": "default",
1978 "typeDescriptions": {
1979 "typeIdentifier": "t_address",
1980 "typeString": "address"
1981 },
1982 "typeName": {
1983 "id": 11603,
1984 "name": "address",
1985 "nodeType": "ElementaryTypeName",
1986 "src": "1443:7:38",
1987 "typeDescriptions": {
1988 "typeIdentifier": "t_address",
1989 "typeString": "address"
1990 }
1991 },
1992 "value": null,
1993 "visibility": "internal"
1994 },
1995 {
1996 "constant": false,
1997 "id": 11606,
1998 "indexed": true,
1999 "name": "spender",
2000 "nodeType": "VariableDeclaration",
2001 "scope": 11610,
2002 "src": "1466:23:38",
2003 "stateVariable": false,
2004 "storageLocation": "default",
2005 "typeDescriptions": {
2006 "typeIdentifier": "t_address",
2007 "typeString": "address"
2008 },
2009 "typeName": {
2010 "id": 11605,
2011 "name": "address",
2012 "nodeType": "ElementaryTypeName",
2013 "src": "1466:7:38",
2014 "typeDescriptions": {
2015 "typeIdentifier": "t_address",
2016 "typeString": "address"
2017 }
2018 },
2019 "value": null,
2020 "visibility": "internal"
2021 },
2022 {
2023 "constant": false,
2024 "id": 11608,
2025 "indexed": false,
2026 "name": "value",
2027 "nodeType": "VariableDeclaration",
2028 "scope": 11610,
2029 "src": "1491:13:38",
2030 "stateVariable": false,
2031 "storageLocation": "default",
2032 "typeDescriptions": {
2033 "typeIdentifier": "t_uint256",
2034 "typeString": "uint256"
2035 },
2036 "typeName": {
2037 "id": 11607,
2038 "name": "uint256",
2039 "nodeType": "ElementaryTypeName",
2040 "src": "1491:7:38",
2041 "typeDescriptions": {
2042 "typeIdentifier": "t_uint256",
2043 "typeString": "uint256"
2044 }
2045 },
2046 "value": null,
2047 "visibility": "internal"
2048 }
2049 ],
2050 "src": "1442:63:38"
2051 },
2052 "src": "1428:78:38"
2053 }
2054 ],
2055 "scope": 12078,
2056 "src": "1137:371:38"
2057 },
2058 {
2059 "baseContracts": [
2060 {
2061 "arguments": null,
2062 "baseName": {
2063 "contractScope": null,
2064 "id": 11612,
2065 "name": "ERC20Basic",
2066 "nodeType": "UserDefinedTypeName",
2067 "referencedDeclaration": 11571,
2068 "src": "1533:10:38",
2069 "typeDescriptions": {
2070 "typeIdentifier": "t_contract$_ERC20Basic_$11571",
2071 "typeString": "contract ERC20Basic"
2072 }
2073 },
2074 "id": 11613,
2075 "nodeType": "InheritanceSpecifier",
2076 "src": "1533:10:38"
2077 }
2078 ],
2079 "contractDependencies": [
2080 11571
2081 ],
2082 "contractKind": "contract",
2083 "documentation": null,
2084 "fullyImplemented": true,
2085 "id": 11684,
2086 "linearizedBaseContracts": [
2087 11684,
2088 11571
2089 ],
2090 "name": "BasicToken",
2091 "nodeType": "ContractDefinition",
2092 "nodes": [
2093 {
2094 "id": 11616,
2095 "libraryName": {
2096 "contractScope": null,
2097 "id": 11614,
2098 "name": "SafeMath",
2099 "nodeType": "UserDefinedTypeName",
2100 "referencedDeclaration": 11544,
2101 "src": "1556:8:38",
2102 "typeDescriptions": {
2103 "typeIdentifier": "t_contract$_SafeMath_$11544",
2104 "typeString": "library SafeMath"
2105 }
2106 },
2107 "nodeType": "UsingForDirective",
2108 "src": "1550:27:38",
2109 "typeName": {
2110 "id": 11615,
2111 "name": "uint256",
2112 "nodeType": "ElementaryTypeName",
2113 "src": "1569:7:38",
2114 "typeDescriptions": {
2115 "typeIdentifier": "t_uint256",
2116 "typeString": "uint256"
2117 }
2118 }
2119 },
2120 {
2121 "constant": false,
2122 "id": 11620,
2123 "name": "balances",
2124 "nodeType": "VariableDeclaration",
2125 "scope": 11684,
2126 "src": "1582:36:38",
2127 "stateVariable": true,
2128 "storageLocation": "default",
2129 "typeDescriptions": {
2130 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
2131 "typeString": "mapping(address => uint256)"
2132 },
2133 "typeName": {
2134 "id": 11619,
2135 "keyType": {
2136 "id": 11617,
2137 "name": "address",
2138 "nodeType": "ElementaryTypeName",
2139 "src": "1590:7:38",
2140 "typeDescriptions": {
2141 "typeIdentifier": "t_address",
2142 "typeString": "address"
2143 }
2144 },
2145 "nodeType": "Mapping",
2146 "src": "1582:27:38",
2147 "typeDescriptions": {
2148 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
2149 "typeString": "mapping(address => uint256)"
2150 },
2151 "valueType": {
2152 "id": 11618,
2153 "name": "uint256",
2154 "nodeType": "ElementaryTypeName",
2155 "src": "1601:7:38",
2156 "typeDescriptions": {
2157 "typeIdentifier": "t_uint256",
2158 "typeString": "uint256"
2159 }
2160 }
2161 },
2162 "value": null,
2163 "visibility": "internal"
2164 },
2165 {
2166 "body": {
2167 "id": 11670,
2168 "nodeType": "Block",
2169 "src": "1853:295:38",
2170 "statements": [
2171 {
2172 "expression": {
2173 "argumentTypes": null,
2174 "arguments": [
2175 {
2176 "argumentTypes": null,
2177 "commonType": {
2178 "typeIdentifier": "t_address",
2179 "typeString": "address"
2180 },
2181 "id": 11634,
2182 "isConstant": false,
2183 "isLValue": false,
2184 "isPure": false,
2185 "lValueRequested": false,
2186 "leftExpression": {
2187 "argumentTypes": null,
2188 "id": 11630,
2189 "name": "_to",
2190 "nodeType": "Identifier",
2191 "overloadedDeclarations": [],
2192 "referencedDeclaration": 11622,
2193 "src": "1871:3:38",
2194 "typeDescriptions": {
2195 "typeIdentifier": "t_address",
2196 "typeString": "address"
2197 }
2198 },
2199 "nodeType": "BinaryOperation",
2200 "operator": "!=",
2201 "rightExpression": {
2202 "argumentTypes": null,
2203 "arguments": [
2204 {
2205 "argumentTypes": null,
2206 "hexValue": "30",
2207 "id": 11632,
2208 "isConstant": false,
2209 "isLValue": false,
2210 "isPure": true,
2211 "kind": "number",
2212 "lValueRequested": false,
2213 "nodeType": "Literal",
2214 "src": "1886:1:38",
2215 "subdenomination": null,
2216 "typeDescriptions": {
2217 "typeIdentifier": "t_rational_0_by_1",
2218 "typeString": "int_const 0"
2219 },
2220 "value": "0"
2221 }
2222 ],
2223 "expression": {
2224 "argumentTypes": [
2225 {
2226 "typeIdentifier": "t_rational_0_by_1",
2227 "typeString": "int_const 0"
2228 }
2229 ],
2230 "id": 11631,
2231 "isConstant": false,
2232 "isLValue": false,
2233 "isPure": true,
2234 "lValueRequested": false,
2235 "nodeType": "ElementaryTypeNameExpression",
2236 "src": "1878:7:38",
2237 "typeDescriptions": {
2238 "typeIdentifier": "t_type$_t_address_$",
2239 "typeString": "type(address)"
2240 },
2241 "typeName": "address"
2242 },
2243 "id": 11633,
2244 "isConstant": false,
2245 "isLValue": false,
2246 "isPure": true,
2247 "kind": "typeConversion",
2248 "lValueRequested": false,
2249 "names": [],
2250 "nodeType": "FunctionCall",
2251 "src": "1878:10:38",
2252 "typeDescriptions": {
2253 "typeIdentifier": "t_address",
2254 "typeString": "address"
2255 }
2256 },
2257 "src": "1871:17:38",
2258 "typeDescriptions": {
2259 "typeIdentifier": "t_bool",
2260 "typeString": "bool"
2261 }
2262 }
2263 ],
2264 "expression": {
2265 "argumentTypes": [
2266 {
2267 "typeIdentifier": "t_bool",
2268 "typeString": "bool"
2269 }
2270 ],
2271 "id": 11629,
2272 "name": "require",
2273 "nodeType": "Identifier",
2274 "overloadedDeclarations": [
2275 12095,
2276 12096
2277 ],
2278 "referencedDeclaration": 12095,
2279 "src": "1863:7:38",
2280 "typeDescriptions": {
2281 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
2282 "typeString": "function (bool) pure"
2283 }
2284 },
2285 "id": 11635,
2286 "isConstant": false,
2287 "isLValue": false,
2288 "isPure": false,
2289 "kind": "functionCall",
2290 "lValueRequested": false,
2291 "names": [],
2292 "nodeType": "FunctionCall",
2293 "src": "1863:26:38",
2294 "typeDescriptions": {
2295 "typeIdentifier": "t_tuple$__$",
2296 "typeString": "tuple()"
2297 }
2298 },
2299 "id": 11636,
2300 "nodeType": "ExpressionStatement",
2301 "src": "1863:26:38"
2302 },
2303 {
2304 "expression": {
2305 "argumentTypes": null,
2306 "id": 11648,
2307 "isConstant": false,
2308 "isLValue": false,
2309 "isPure": false,
2310 "lValueRequested": false,
2311 "leftHandSide": {
2312 "argumentTypes": null,
2313 "baseExpression": {
2314 "argumentTypes": null,
2315 "id": 11637,
2316 "name": "balances",
2317 "nodeType": "Identifier",
2318 "overloadedDeclarations": [],
2319 "referencedDeclaration": 11620,
2320 "src": "1966:8:38",
2321 "typeDescriptions": {
2322 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
2323 "typeString": "mapping(address => uint256)"
2324 }
2325 },
2326 "id": 11640,
2327 "indexExpression": {
2328 "argumentTypes": null,
2329 "expression": {
2330 "argumentTypes": null,
2331 "id": 11638,
2332 "name": "msg",
2333 "nodeType": "Identifier",
2334 "overloadedDeclarations": [],
2335 "referencedDeclaration": 12092,
2336 "src": "1975:3:38",
2337 "typeDescriptions": {
2338 "typeIdentifier": "t_magic_message",
2339 "typeString": "msg"
2340 }
2341 },
2342 "id": 11639,
2343 "isConstant": false,
2344 "isLValue": false,
2345 "isPure": false,
2346 "lValueRequested": false,
2347 "memberName": "sender",
2348 "nodeType": "MemberAccess",
2349 "referencedDeclaration": null,
2350 "src": "1975:10:38",
2351 "typeDescriptions": {
2352 "typeIdentifier": "t_address",
2353 "typeString": "address"
2354 }
2355 },
2356 "isConstant": false,
2357 "isLValue": true,
2358 "isPure": false,
2359 "lValueRequested": true,
2360 "nodeType": "IndexAccess",
2361 "src": "1966:20:38",
2362 "typeDescriptions": {
2363 "typeIdentifier": "t_uint256",
2364 "typeString": "uint256"
2365 }
2366 },
2367 "nodeType": "Assignment",
2368 "operator": "=",
2369 "rightHandSide": {
2370 "argumentTypes": null,
2371 "arguments": [
2372 {
2373 "argumentTypes": null,
2374 "id": 11646,
2375 "name": "_value",
2376 "nodeType": "Identifier",
2377 "overloadedDeclarations": [],
2378 "referencedDeclaration": 11624,
2379 "src": "2014:6:38",
2380 "typeDescriptions": {
2381 "typeIdentifier": "t_uint256",
2382 "typeString": "uint256"
2383 }
2384 }
2385 ],
2386 "expression": {
2387 "argumentTypes": [
2388 {
2389 "typeIdentifier": "t_uint256",
2390 "typeString": "uint256"
2391 }
2392 ],
2393 "expression": {
2394 "argumentTypes": null,
2395 "baseExpression": {
2396 "argumentTypes": null,
2397 "id": 11641,
2398 "name": "balances",
2399 "nodeType": "Identifier",
2400 "overloadedDeclarations": [],
2401 "referencedDeclaration": 11620,
2402 "src": "1989:8:38",
2403 "typeDescriptions": {
2404 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
2405 "typeString": "mapping(address => uint256)"
2406 }
2407 },
2408 "id": 11644,
2409 "indexExpression": {
2410 "argumentTypes": null,
2411 "expression": {
2412 "argumentTypes": null,
2413 "id": 11642,
2414 "name": "msg",
2415 "nodeType": "Identifier",
2416 "overloadedDeclarations": [],
2417 "referencedDeclaration": 12092,
2418 "src": "1998:3:38",
2419 "typeDescriptions": {
2420 "typeIdentifier": "t_magic_message",
2421 "typeString": "msg"
2422 }
2423 },
2424 "id": 11643,
2425 "isConstant": false,
2426 "isLValue": false,
2427 "isPure": false,
2428 "lValueRequested": false,
2429 "memberName": "sender",
2430 "nodeType": "MemberAccess",
2431 "referencedDeclaration": null,
2432 "src": "1998:10:38",
2433 "typeDescriptions": {
2434 "typeIdentifier": "t_address",
2435 "typeString": "address"
2436 }
2437 },
2438 "isConstant": false,
2439 "isLValue": true,
2440 "isPure": false,
2441 "lValueRequested": false,
2442 "nodeType": "IndexAccess",
2443 "src": "1989:20:38",
2444 "typeDescriptions": {
2445 "typeIdentifier": "t_uint256",
2446 "typeString": "uint256"
2447 }
2448 },
2449 "id": 11645,
2450 "isConstant": false,
2451 "isLValue": false,
2452 "isPure": false,
2453 "lValueRequested": false,
2454 "memberName": "sub",
2455 "nodeType": "MemberAccess",
2456 "referencedDeclaration": 11519,
2457 "src": "1989:24:38",
2458 "typeDescriptions": {
2459 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
2460 "typeString": "function (uint256,uint256) pure returns (uint256)"
2461 }
2462 },
2463 "id": 11647,
2464 "isConstant": false,
2465 "isLValue": false,
2466 "isPure": false,
2467 "kind": "functionCall",
2468 "lValueRequested": false,
2469 "names": [],
2470 "nodeType": "FunctionCall",
2471 "src": "1989:32:38",
2472 "typeDescriptions": {
2473 "typeIdentifier": "t_uint256",
2474 "typeString": "uint256"
2475 }
2476 },
2477 "src": "1966:55:38",
2478 "typeDescriptions": {
2479 "typeIdentifier": "t_uint256",
2480 "typeString": "uint256"
2481 }
2482 },
2483 "id": 11649,
2484 "nodeType": "ExpressionStatement",
2485 "src": "1966:55:38"
2486 },
2487 {
2488 "expression": {
2489 "argumentTypes": null,
2490 "id": 11659,
2491 "isConstant": false,
2492 "isLValue": false,
2493 "isPure": false,
2494 "lValueRequested": false,
2495 "leftHandSide": {
2496 "argumentTypes": null,
2497 "baseExpression": {
2498 "argumentTypes": null,
2499 "id": 11650,
2500 "name": "balances",
2501 "nodeType": "Identifier",
2502 "overloadedDeclarations": [],
2503 "referencedDeclaration": 11620,
2504 "src": "2031:8:38",
2505 "typeDescriptions": {
2506 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
2507 "typeString": "mapping(address => uint256)"
2508 }
2509 },
2510 "id": 11652,
2511 "indexExpression": {
2512 "argumentTypes": null,
2513 "id": 11651,
2514 "name": "_to",
2515 "nodeType": "Identifier",
2516 "overloadedDeclarations": [],
2517 "referencedDeclaration": 11622,
2518 "src": "2040:3:38",
2519 "typeDescriptions": {
2520 "typeIdentifier": "t_address",
2521 "typeString": "address"
2522 }
2523 },
2524 "isConstant": false,
2525 "isLValue": true,
2526 "isPure": false,
2527 "lValueRequested": true,
2528 "nodeType": "IndexAccess",
2529 "src": "2031:13:38",
2530 "typeDescriptions": {
2531 "typeIdentifier": "t_uint256",
2532 "typeString": "uint256"
2533 }
2534 },
2535 "nodeType": "Assignment",
2536 "operator": "=",
2537 "rightHandSide": {
2538 "argumentTypes": null,
2539 "arguments": [
2540 {
2541 "argumentTypes": null,
2542 "id": 11657,
2543 "name": "_value",
2544 "nodeType": "Identifier",
2545 "overloadedDeclarations": [],
2546 "referencedDeclaration": 11624,
2547 "src": "2065:6:38",
2548 "typeDescriptions": {
2549 "typeIdentifier": "t_uint256",
2550 "typeString": "uint256"
2551 }
2552 }
2553 ],
2554 "expression": {
2555 "argumentTypes": [
2556 {
2557 "typeIdentifier": "t_uint256",
2558 "typeString": "uint256"
2559 }
2560 ],
2561 "expression": {
2562 "argumentTypes": null,
2563 "baseExpression": {
2564 "argumentTypes": null,
2565 "id": 11653,
2566 "name": "balances",
2567 "nodeType": "Identifier",
2568 "overloadedDeclarations": [],
2569 "referencedDeclaration": 11620,
2570 "src": "2047:8:38",
2571 "typeDescriptions": {
2572 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
2573 "typeString": "mapping(address => uint256)"
2574 }
2575 },
2576 "id": 11655,
2577 "indexExpression": {
2578 "argumentTypes": null,
2579 "id": 11654,
2580 "name": "_to",
2581 "nodeType": "Identifier",
2582 "overloadedDeclarations": [],
2583 "referencedDeclaration": 11622,
2584 "src": "2056:3:38",
2585 "typeDescriptions": {
2586 "typeIdentifier": "t_address",
2587 "typeString": "address"
2588 }
2589 },
2590 "isConstant": false,
2591 "isLValue": true,
2592 "isPure": false,
2593 "lValueRequested": false,
2594 "nodeType": "IndexAccess",
2595 "src": "2047:13:38",
2596 "typeDescriptions": {
2597 "typeIdentifier": "t_uint256",
2598 "typeString": "uint256"
2599 }
2600 },
2601 "id": 11656,
2602 "isConstant": false,
2603 "isLValue": false,
2604 "isPure": false,
2605 "lValueRequested": false,
2606 "memberName": "add",
2607 "nodeType": "MemberAccess",
2608 "referencedDeclaration": 11543,
2609 "src": "2047:17:38",
2610 "typeDescriptions": {
2611 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
2612 "typeString": "function (uint256,uint256) pure returns (uint256)"
2613 }
2614 },
2615 "id": 11658,
2616 "isConstant": false,
2617 "isLValue": false,
2618 "isPure": false,
2619 "kind": "functionCall",
2620 "lValueRequested": false,
2621 "names": [],
2622 "nodeType": "FunctionCall",
2623 "src": "2047:25:38",
2624 "typeDescriptions": {
2625 "typeIdentifier": "t_uint256",
2626 "typeString": "uint256"
2627 }
2628 },
2629 "src": "2031:41:38",
2630 "typeDescriptions": {
2631 "typeIdentifier": "t_uint256",
2632 "typeString": "uint256"
2633 }
2634 },
2635 "id": 11660,
2636 "nodeType": "ExpressionStatement",
2637 "src": "2031:41:38"
2638 },
2639 {
2640 "eventCall": {
2641 "argumentTypes": null,
2642 "arguments": [
2643 {
2644 "argumentTypes": null,
2645 "expression": {
2646 "argumentTypes": null,
2647 "id": 11662,
2648 "name": "msg",
2649 "nodeType": "Identifier",
2650 "overloadedDeclarations": [],
2651 "referencedDeclaration": 12092,
2652 "src": "2096:3:38",
2653 "typeDescriptions": {
2654 "typeIdentifier": "t_magic_message",
2655 "typeString": "msg"
2656 }
2657 },
2658 "id": 11663,
2659 "isConstant": false,
2660 "isLValue": false,
2661 "isPure": false,
2662 "lValueRequested": false,
2663 "memberName": "sender",
2664 "nodeType": "MemberAccess",
2665 "referencedDeclaration": null,
2666 "src": "2096:10:38",
2667 "typeDescriptions": {
2668 "typeIdentifier": "t_address",
2669 "typeString": "address"
2670 }
2671 },
2672 {
2673 "argumentTypes": null,
2674 "id": 11664,
2675 "name": "_to",
2676 "nodeType": "Identifier",
2677 "overloadedDeclarations": [],
2678 "referencedDeclaration": 11622,
2679 "src": "2108:3:38",
2680 "typeDescriptions": {
2681 "typeIdentifier": "t_address",
2682 "typeString": "address"
2683 }
2684 },
2685 {
2686 "argumentTypes": null,
2687 "id": 11665,
2688 "name": "_value",
2689 "nodeType": "Identifier",
2690 "overloadedDeclarations": [],
2691 "referencedDeclaration": 11624,
2692 "src": "2113:6:38",
2693 "typeDescriptions": {
2694 "typeIdentifier": "t_uint256",
2695 "typeString": "uint256"
2696 }
2697 }
2698 ],
2699 "expression": {
2700 "argumentTypes": [
2701 {
2702 "typeIdentifier": "t_address",
2703 "typeString": "address"
2704 },
2705 {
2706 "typeIdentifier": "t_address",
2707 "typeString": "address"
2708 },
2709 {
2710 "typeIdentifier": "t_uint256",
2711 "typeString": "uint256"
2712 }
2713 ],
2714 "id": 11661,
2715 "name": "Transfer",
2716 "nodeType": "Identifier",
2717 "overloadedDeclarations": [],
2718 "referencedDeclaration": 11570,
2719 "src": "2087:8:38",
2720 "typeDescriptions": {
2721 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
2722 "typeString": "function (address,address,uint256)"
2723 }
2724 },
2725 "id": 11666,
2726 "isConstant": false,
2727 "isLValue": false,
2728 "isPure": false,
2729 "kind": "functionCall",
2730 "lValueRequested": false,
2731 "names": [],
2732 "nodeType": "FunctionCall",
2733 "src": "2087:33:38",
2734 "typeDescriptions": {
2735 "typeIdentifier": "t_tuple$__$",
2736 "typeString": "tuple()"
2737 }
2738 },
2739 "id": 11667,
2740 "nodeType": "EmitStatement",
2741 "src": "2082:38:38"
2742 },
2743 {
2744 "expression": {
2745 "argumentTypes": null,
2746 "hexValue": "74727565",
2747 "id": 11668,
2748 "isConstant": false,
2749 "isLValue": false,
2750 "isPure": true,
2751 "kind": "bool",
2752 "lValueRequested": false,
2753 "nodeType": "Literal",
2754 "src": "2137:4:38",
2755 "subdenomination": null,
2756 "typeDescriptions": {
2757 "typeIdentifier": "t_bool",
2758 "typeString": "bool"
2759 },
2760 "value": "true"
2761 },
2762 "functionReturnParameters": 11628,
2763 "id": 11669,
2764 "nodeType": "Return",
2765 "src": "2130:11:38"
2766 }
2767 ]
2768 },
2769 "documentation": "@dev transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.",
2770 "id": 11671,
2771 "implemented": true,
2772 "isConstructor": false,
2773 "isDeclaredConst": false,
2774 "modifiers": [],
2775 "name": "transfer",
2776 "nodeType": "FunctionDefinition",
2777 "parameters": {
2778 "id": 11625,
2779 "nodeType": "ParameterList",
2780 "parameters": [
2781 {
2782 "constant": false,
2783 "id": 11622,
2784 "name": "_to",
2785 "nodeType": "VariableDeclaration",
2786 "scope": 11671,
2787 "src": "1802:11:38",
2788 "stateVariable": false,
2789 "storageLocation": "default",
2790 "typeDescriptions": {
2791 "typeIdentifier": "t_address",
2792 "typeString": "address"
2793 },
2794 "typeName": {
2795 "id": 11621,
2796 "name": "address",
2797 "nodeType": "ElementaryTypeName",
2798 "src": "1802:7:38",
2799 "typeDescriptions": {
2800 "typeIdentifier": "t_address",
2801 "typeString": "address"
2802 }
2803 },
2804 "value": null,
2805 "visibility": "internal"
2806 },
2807 {
2808 "constant": false,
2809 "id": 11624,
2810 "name": "_value",
2811 "nodeType": "VariableDeclaration",
2812 "scope": 11671,
2813 "src": "1815:14:38",
2814 "stateVariable": false,
2815 "storageLocation": "default",
2816 "typeDescriptions": {
2817 "typeIdentifier": "t_uint256",
2818 "typeString": "uint256"
2819 },
2820 "typeName": {
2821 "id": 11623,
2822 "name": "uint256",
2823 "nodeType": "ElementaryTypeName",
2824 "src": "1815:7:38",
2825 "typeDescriptions": {
2826 "typeIdentifier": "t_uint256",
2827 "typeString": "uint256"
2828 }
2829 },
2830 "value": null,
2831 "visibility": "internal"
2832 }
2833 ],
2834 "src": "1801:29:38"
2835 },
2836 "payable": false,
2837 "returnParameters": {
2838 "id": 11628,
2839 "nodeType": "ParameterList",
2840 "parameters": [
2841 {
2842 "constant": false,
2843 "id": 11627,
2844 "name": "",
2845 "nodeType": "VariableDeclaration",
2846 "scope": 11671,
2847 "src": "1847:4:38",
2848 "stateVariable": false,
2849 "storageLocation": "default",
2850 "typeDescriptions": {
2851 "typeIdentifier": "t_bool",
2852 "typeString": "bool"
2853 },
2854 "typeName": {
2855 "id": 11626,
2856 "name": "bool",
2857 "nodeType": "ElementaryTypeName",
2858 "src": "1847:4:38",
2859 "typeDescriptions": {
2860 "typeIdentifier": "t_bool",
2861 "typeString": "bool"
2862 }
2863 },
2864 "value": null,
2865 "visibility": "internal"
2866 }
2867 ],
2868 "src": "1846:6:38"
2869 },
2870 "scope": 11684,
2871 "src": "1784:364:38",
2872 "stateMutability": "nonpayable",
2873 "superFunction": 11562,
2874 "visibility": "public"
2875 },
2876 {
2877 "body": {
2878 "id": 11682,
2879 "nodeType": "Block",
2880 "src": "2438:40:38",
2881 "statements": [
2882 {
2883 "expression": {
2884 "argumentTypes": null,
2885 "baseExpression": {
2886 "argumentTypes": null,
2887 "id": 11678,
2888 "name": "balances",
2889 "nodeType": "Identifier",
2890 "overloadedDeclarations": [],
2891 "referencedDeclaration": 11620,
2892 "src": "2455:8:38",
2893 "typeDescriptions": {
2894 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
2895 "typeString": "mapping(address => uint256)"
2896 }
2897 },
2898 "id": 11680,
2899 "indexExpression": {
2900 "argumentTypes": null,
2901 "id": 11679,
2902 "name": "_owner",
2903 "nodeType": "Identifier",
2904 "overloadedDeclarations": [],
2905 "referencedDeclaration": 11673,
2906 "src": "2464:6:38",
2907 "typeDescriptions": {
2908 "typeIdentifier": "t_address",
2909 "typeString": "address"
2910 }
2911 },
2912 "isConstant": false,
2913 "isLValue": true,
2914 "isPure": false,
2915 "lValueRequested": false,
2916 "nodeType": "IndexAccess",
2917 "src": "2455:16:38",
2918 "typeDescriptions": {
2919 "typeIdentifier": "t_uint256",
2920 "typeString": "uint256"
2921 }
2922 },
2923 "functionReturnParameters": 11677,
2924 "id": 11681,
2925 "nodeType": "Return",
2926 "src": "2448:23:38"
2927 }
2928 ]
2929 },
2930 "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.",
2931 "id": 11683,
2932 "implemented": true,
2933 "isConstructor": false,
2934 "isDeclaredConst": true,
2935 "modifiers": [],
2936 "name": "balanceOf",
2937 "nodeType": "FunctionDefinition",
2938 "parameters": {
2939 "id": 11674,
2940 "nodeType": "ParameterList",
2941 "parameters": [
2942 {
2943 "constant": false,
2944 "id": 11673,
2945 "name": "_owner",
2946 "nodeType": "VariableDeclaration",
2947 "scope": 11683,
2948 "src": "2380:14:38",
2949 "stateVariable": false,
2950 "storageLocation": "default",
2951 "typeDescriptions": {
2952 "typeIdentifier": "t_address",
2953 "typeString": "address"
2954 },
2955 "typeName": {
2956 "id": 11672,
2957 "name": "address",
2958 "nodeType": "ElementaryTypeName",
2959 "src": "2380:7:38",
2960 "typeDescriptions": {
2961 "typeIdentifier": "t_address",
2962 "typeString": "address"
2963 }
2964 },
2965 "value": null,
2966 "visibility": "internal"
2967 }
2968 ],
2969 "src": "2379:16:38"
2970 },
2971 "payable": false,
2972 "returnParameters": {
2973 "id": 11677,
2974 "nodeType": "ParameterList",
2975 "parameters": [
2976 {
2977 "constant": false,
2978 "id": 11676,
2979 "name": "balance",
2980 "nodeType": "VariableDeclaration",
2981 "scope": 11683,
2982 "src": "2421:15:38",
2983 "stateVariable": false,
2984 "storageLocation": "default",
2985 "typeDescriptions": {
2986 "typeIdentifier": "t_uint256",
2987 "typeString": "uint256"
2988 },
2989 "typeName": {
2990 "id": 11675,
2991 "name": "uint256",
2992 "nodeType": "ElementaryTypeName",
2993 "src": "2421:7:38",
2994 "typeDescriptions": {
2995 "typeIdentifier": "t_uint256",
2996 "typeString": "uint256"
2997 }
2998 },
2999 "value": null,
3000 "visibility": "internal"
3001 }
3002 ],
3003 "src": "2420:17:38"
3004 },
3005 "scope": 11684,
3006 "src": "2361:117:38",
3007 "stateMutability": "view",
3008 "superFunction": 11553,
3009 "visibility": "public"
3010 }
3011 ],
3012 "scope": 12078,
3013 "src": "1510:970:38"
3014 },
3015 {
3016 "baseContracts": [],
3017 "contractDependencies": [],
3018 "contractKind": "contract",
3019 "documentation": null,
3020 "fullyImplemented": true,
3021 "id": 11738,
3022 "linearizedBaseContracts": [
3023 11738
3024 ],
3025 "name": "Ownable",
3026 "nodeType": "ContractDefinition",
3027 "nodes": [
3028 {
3029 "constant": false,
3030 "id": 11686,
3031 "name": "owner",
3032 "nodeType": "VariableDeclaration",
3033 "scope": 11738,
3034 "src": "2505:20:38",
3035 "stateVariable": true,
3036 "storageLocation": "default",
3037 "typeDescriptions": {
3038 "typeIdentifier": "t_address",
3039 "typeString": "address"
3040 },
3041 "typeName": {
3042 "id": 11685,
3043 "name": "address",
3044 "nodeType": "ElementaryTypeName",
3045 "src": "2505:7:38",
3046 "typeDescriptions": {
3047 "typeIdentifier": "t_address",
3048 "typeString": "address"
3049 }
3050 },
3051 "value": null,
3052 "visibility": "public"
3053 },
3054 {
3055 "anonymous": false,
3056 "documentation": null,
3057 "id": 11692,
3058 "name": "OwnershipTransferred",
3059 "nodeType": "EventDefinition",
3060 "parameters": {
3061 "id": 11691,
3062 "nodeType": "ParameterList",
3063 "parameters": [
3064 {
3065 "constant": false,
3066 "id": 11688,
3067 "indexed": true,
3068 "name": "previousOwner",
3069 "nodeType": "VariableDeclaration",
3070 "scope": 11692,
3071 "src": "2558:29:38",
3072 "stateVariable": false,
3073 "storageLocation": "default",
3074 "typeDescriptions": {
3075 "typeIdentifier": "t_address",
3076 "typeString": "address"
3077 },
3078 "typeName": {
3079 "id": 11687,
3080 "name": "address",
3081 "nodeType": "ElementaryTypeName",
3082 "src": "2558:7:38",
3083 "typeDescriptions": {
3084 "typeIdentifier": "t_address",
3085 "typeString": "address"
3086 }
3087 },
3088 "value": null,
3089 "visibility": "internal"
3090 },
3091 {
3092 "constant": false,
3093 "id": 11690,
3094 "indexed": true,
3095 "name": "newOwner",
3096 "nodeType": "VariableDeclaration",
3097 "scope": 11692,
3098 "src": "2589:24:38",
3099 "stateVariable": false,
3100 "storageLocation": "default",
3101 "typeDescriptions": {
3102 "typeIdentifier": "t_address",
3103 "typeString": "address"
3104 },
3105 "typeName": {
3106 "id": 11689,
3107 "name": "address",
3108 "nodeType": "ElementaryTypeName",
3109 "src": "2589:7:38",
3110 "typeDescriptions": {
3111 "typeIdentifier": "t_address",
3112 "typeString": "address"
3113 }
3114 },
3115 "value": null,
3116 "visibility": "internal"
3117 }
3118 ],
3119 "src": "2557:57:38"
3120 },
3121 "src": "2531:84:38"
3122 },
3123 {
3124 "body": {
3125 "id": 11700,
3126 "nodeType": "Block",
3127 "src": "2765:35:38",
3128 "statements": [
3129 {
3130 "expression": {
3131 "argumentTypes": null,
3132 "id": 11698,
3133 "isConstant": false,
3134 "isLValue": false,
3135 "isPure": false,
3136 "lValueRequested": false,
3137 "leftHandSide": {
3138 "argumentTypes": null,
3139 "id": 11695,
3140 "name": "owner",
3141 "nodeType": "Identifier",
3142 "overloadedDeclarations": [],
3143 "referencedDeclaration": 11686,
3144 "src": "2775:5:38",
3145 "typeDescriptions": {
3146 "typeIdentifier": "t_address",
3147 "typeString": "address"
3148 }
3149 },
3150 "nodeType": "Assignment",
3151 "operator": "=",
3152 "rightHandSide": {
3153 "argumentTypes": null,
3154 "expression": {
3155 "argumentTypes": null,
3156 "id": 11696,
3157 "name": "msg",
3158 "nodeType": "Identifier",
3159 "overloadedDeclarations": [],
3160 "referencedDeclaration": 12092,
3161 "src": "2783:3:38",
3162 "typeDescriptions": {
3163 "typeIdentifier": "t_magic_message",
3164 "typeString": "msg"
3165 }
3166 },
3167 "id": 11697,
3168 "isConstant": false,
3169 "isLValue": false,
3170 "isPure": false,
3171 "lValueRequested": false,
3172 "memberName": "sender",
3173 "nodeType": "MemberAccess",
3174 "referencedDeclaration": null,
3175 "src": "2783:10:38",
3176 "typeDescriptions": {
3177 "typeIdentifier": "t_address",
3178 "typeString": "address"
3179 }
3180 },
3181 "src": "2775:18:38",
3182 "typeDescriptions": {
3183 "typeIdentifier": "t_address",
3184 "typeString": "address"
3185 }
3186 },
3187 "id": 11699,
3188 "nodeType": "ExpressionStatement",
3189 "src": "2775:18:38"
3190 }
3191 ]
3192 },
3193 "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.",
3194 "id": 11701,
3195 "implemented": true,
3196 "isConstructor": true,
3197 "isDeclaredConst": false,
3198 "modifiers": [],
3199 "name": "",
3200 "nodeType": "FunctionDefinition",
3201 "parameters": {
3202 "id": 11693,
3203 "nodeType": "ParameterList",
3204 "parameters": [],
3205 "src": "2755:2:38"
3206 },
3207 "payable": false,
3208 "returnParameters": {
3209 "id": 11694,
3210 "nodeType": "ParameterList",
3211 "parameters": [],
3212 "src": "2765:0:38"
3213 },
3214 "scope": 11738,
3215 "src": "2744:56:38",
3216 "stateMutability": "nonpayable",
3217 "superFunction": null,
3218 "visibility": "public"
3219 },
3220 {
3221 "body": {
3222 "id": 11711,
3223 "nodeType": "Block",
3224 "src": "2908:56:38",
3225 "statements": [
3226 {
3227 "expression": {
3228 "argumentTypes": null,
3229 "arguments": [
3230 {
3231 "argumentTypes": null,
3232 "commonType": {
3233 "typeIdentifier": "t_address",
3234 "typeString": "address"
3235 },
3236 "id": 11707,
3237 "isConstant": false,
3238 "isLValue": false,
3239 "isPure": false,
3240 "lValueRequested": false,
3241 "leftExpression": {
3242 "argumentTypes": null,
3243 "expression": {
3244 "argumentTypes": null,
3245 "id": 11704,
3246 "name": "msg",
3247 "nodeType": "Identifier",
3248 "overloadedDeclarations": [],
3249 "referencedDeclaration": 12092,
3250 "src": "2926:3:38",
3251 "typeDescriptions": {
3252 "typeIdentifier": "t_magic_message",
3253 "typeString": "msg"
3254 }
3255 },
3256 "id": 11705,
3257 "isConstant": false,
3258 "isLValue": false,
3259 "isPure": false,
3260 "lValueRequested": false,
3261 "memberName": "sender",
3262 "nodeType": "MemberAccess",
3263 "referencedDeclaration": null,
3264 "src": "2926:10:38",
3265 "typeDescriptions": {
3266 "typeIdentifier": "t_address",
3267 "typeString": "address"
3268 }
3269 },
3270 "nodeType": "BinaryOperation",
3271 "operator": "==",
3272 "rightExpression": {
3273 "argumentTypes": null,
3274 "id": 11706,
3275 "name": "owner",
3276 "nodeType": "Identifier",
3277 "overloadedDeclarations": [],
3278 "referencedDeclaration": 11686,
3279 "src": "2940:5:38",
3280 "typeDescriptions": {
3281 "typeIdentifier": "t_address",
3282 "typeString": "address"
3283 }
3284 },
3285 "src": "2926:19:38",
3286 "typeDescriptions": {
3287 "typeIdentifier": "t_bool",
3288 "typeString": "bool"
3289 }
3290 }
3291 ],
3292 "expression": {
3293 "argumentTypes": [
3294 {
3295 "typeIdentifier": "t_bool",
3296 "typeString": "bool"
3297 }
3298 ],
3299 "id": 11703,
3300 "name": "require",
3301 "nodeType": "Identifier",
3302 "overloadedDeclarations": [
3303 12095,
3304 12096
3305 ],
3306 "referencedDeclaration": 12095,
3307 "src": "2918:7:38",
3308 "typeDescriptions": {
3309 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
3310 "typeString": "function (bool) pure"
3311 }
3312 },
3313 "id": 11708,
3314 "isConstant": false,
3315 "isLValue": false,
3316 "isPure": false,
3317 "kind": "functionCall",
3318 "lValueRequested": false,
3319 "names": [],
3320 "nodeType": "FunctionCall",
3321 "src": "2918:28:38",
3322 "typeDescriptions": {
3323 "typeIdentifier": "t_tuple$__$",
3324 "typeString": "tuple()"
3325 }
3326 },
3327 "id": 11709,
3328 "nodeType": "ExpressionStatement",
3329 "src": "2918:28:38"
3330 },
3331 {
3332 "id": 11710,
3333 "nodeType": "PlaceholderStatement",
3334 "src": "2956:1:38"
3335 }
3336 ]
3337 },
3338 "documentation": "@dev Throws if called by any account other than the owner.",
3339 "id": 11712,
3340 "name": "onlyOwner",
3341 "nodeType": "ModifierDefinition",
3342 "parameters": {
3343 "id": 11702,
3344 "nodeType": "ParameterList",
3345 "parameters": [],
3346 "src": "2905:2:38"
3347 },
3348 "src": "2887:77:38",
3349 "visibility": "internal"
3350 },
3351 {
3352 "body": {
3353 "id": 11736,
3354 "nodeType": "Block",
3355 "src": "3196:126:38",
3356 "statements": [
3357 {
3358 "expression": {
3359 "argumentTypes": null,
3360 "arguments": [
3361 {
3362 "argumentTypes": null,
3363 "commonType": {
3364 "typeIdentifier": "t_address",
3365 "typeString": "address"
3366 },
3367 "id": 11724,
3368 "isConstant": false,
3369 "isLValue": false,
3370 "isPure": false,
3371 "lValueRequested": false,
3372 "leftExpression": {
3373 "argumentTypes": null,
3374 "id": 11720,
3375 "name": "newOwner",
3376 "nodeType": "Identifier",
3377 "overloadedDeclarations": [],
3378 "referencedDeclaration": 11714,
3379 "src": "3214:8:38",
3380 "typeDescriptions": {
3381 "typeIdentifier": "t_address",
3382 "typeString": "address"
3383 }
3384 },
3385 "nodeType": "BinaryOperation",
3386 "operator": "!=",
3387 "rightExpression": {
3388 "argumentTypes": null,
3389 "arguments": [
3390 {
3391 "argumentTypes": null,
3392 "hexValue": "30",
3393 "id": 11722,
3394 "isConstant": false,
3395 "isLValue": false,
3396 "isPure": true,
3397 "kind": "number",
3398 "lValueRequested": false,
3399 "nodeType": "Literal",
3400 "src": "3234:1:38",
3401 "subdenomination": null,
3402 "typeDescriptions": {
3403 "typeIdentifier": "t_rational_0_by_1",
3404 "typeString": "int_const 0"
3405 },
3406 "value": "0"
3407 }
3408 ],
3409 "expression": {
3410 "argumentTypes": [
3411 {
3412 "typeIdentifier": "t_rational_0_by_1",
3413 "typeString": "int_const 0"
3414 }
3415 ],
3416 "id": 11721,
3417 "isConstant": false,
3418 "isLValue": false,
3419 "isPure": true,
3420 "lValueRequested": false,
3421 "nodeType": "ElementaryTypeNameExpression",
3422 "src": "3226:7:38",
3423 "typeDescriptions": {
3424 "typeIdentifier": "t_type$_t_address_$",
3425 "typeString": "type(address)"
3426 },
3427 "typeName": "address"
3428 },
3429 "id": 11723,
3430 "isConstant": false,
3431 "isLValue": false,
3432 "isPure": true,
3433 "kind": "typeConversion",
3434 "lValueRequested": false,
3435 "names": [],
3436 "nodeType": "FunctionCall",
3437 "src": "3226:10:38",
3438 "typeDescriptions": {
3439 "typeIdentifier": "t_address",
3440 "typeString": "address"
3441 }
3442 },
3443 "src": "3214:22:38",
3444 "typeDescriptions": {
3445 "typeIdentifier": "t_bool",
3446 "typeString": "bool"
3447 }
3448 }
3449 ],
3450 "expression": {
3451 "argumentTypes": [
3452 {
3453 "typeIdentifier": "t_bool",
3454 "typeString": "bool"
3455 }
3456 ],
3457 "id": 11719,
3458 "name": "require",
3459 "nodeType": "Identifier",
3460 "overloadedDeclarations": [
3461 12095,
3462 12096
3463 ],
3464 "referencedDeclaration": 12095,
3465 "src": "3206:7:38",
3466 "typeDescriptions": {
3467 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
3468 "typeString": "function (bool) pure"
3469 }
3470 },
3471 "id": 11725,
3472 "isConstant": false,
3473 "isLValue": false,
3474 "isPure": false,
3475 "kind": "functionCall",
3476 "lValueRequested": false,
3477 "names": [],
3478 "nodeType": "FunctionCall",
3479 "src": "3206:31:38",
3480 "typeDescriptions": {
3481 "typeIdentifier": "t_tuple$__$",
3482 "typeString": "tuple()"
3483 }
3484 },
3485 "id": 11726,
3486 "nodeType": "ExpressionStatement",
3487 "src": "3206:31:38"
3488 },
3489 {
3490 "eventCall": {
3491 "argumentTypes": null,
3492 "arguments": [
3493 {
3494 "argumentTypes": null,
3495 "id": 11728,
3496 "name": "owner",
3497 "nodeType": "Identifier",
3498 "overloadedDeclarations": [],
3499 "referencedDeclaration": 11686,
3500 "src": "3273:5:38",
3501 "typeDescriptions": {
3502 "typeIdentifier": "t_address",
3503 "typeString": "address"
3504 }
3505 },
3506 {
3507 "argumentTypes": null,
3508 "id": 11729,
3509 "name": "newOwner",
3510 "nodeType": "Identifier",
3511 "overloadedDeclarations": [],
3512 "referencedDeclaration": 11714,
3513 "src": "3280:8:38",
3514 "typeDescriptions": {
3515 "typeIdentifier": "t_address",
3516 "typeString": "address"
3517 }
3518 }
3519 ],
3520 "expression": {
3521 "argumentTypes": [
3522 {
3523 "typeIdentifier": "t_address",
3524 "typeString": "address"
3525 },
3526 {
3527 "typeIdentifier": "t_address",
3528 "typeString": "address"
3529 }
3530 ],
3531 "id": 11727,
3532 "name": "OwnershipTransferred",
3533 "nodeType": "Identifier",
3534 "overloadedDeclarations": [],
3535 "referencedDeclaration": 11692,
3536 "src": "3252:20:38",
3537 "typeDescriptions": {
3538 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
3539 "typeString": "function (address,address)"
3540 }
3541 },
3542 "id": 11730,
3543 "isConstant": false,
3544 "isLValue": false,
3545 "isPure": false,
3546 "kind": "functionCall",
3547 "lValueRequested": false,
3548 "names": [],
3549 "nodeType": "FunctionCall",
3550 "src": "3252:37:38",
3551 "typeDescriptions": {
3552 "typeIdentifier": "t_tuple$__$",
3553 "typeString": "tuple()"
3554 }
3555 },
3556 "id": 11731,
3557 "nodeType": "EmitStatement",
3558 "src": "3247:42:38"
3559 },
3560 {
3561 "expression": {
3562 "argumentTypes": null,
3563 "id": 11734,
3564 "isConstant": false,
3565 "isLValue": false,
3566 "isPure": false,
3567 "lValueRequested": false,
3568 "leftHandSide": {
3569 "argumentTypes": null,
3570 "id": 11732,
3571 "name": "owner",
3572 "nodeType": "Identifier",
3573 "overloadedDeclarations": [],
3574 "referencedDeclaration": 11686,
3575 "src": "3299:5:38",
3576 "typeDescriptions": {
3577 "typeIdentifier": "t_address",
3578 "typeString": "address"
3579 }
3580 },
3581 "nodeType": "Assignment",
3582 "operator": "=",
3583 "rightHandSide": {
3584 "argumentTypes": null,
3585 "id": 11733,
3586 "name": "newOwner",
3587 "nodeType": "Identifier",
3588 "overloadedDeclarations": [],
3589 "referencedDeclaration": 11714,
3590 "src": "3307:8:38",
3591 "typeDescriptions": {
3592 "typeIdentifier": "t_address",
3593 "typeString": "address"
3594 }
3595 },
3596 "src": "3299:16:38",
3597 "typeDescriptions": {
3598 "typeIdentifier": "t_address",
3599 "typeString": "address"
3600 }
3601 },
3602 "id": 11735,
3603 "nodeType": "ExpressionStatement",
3604 "src": "3299:16:38"
3605 }
3606 ]
3607 },
3608 "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param newOwner The address to transfer ownership to.",
3609 "id": 11737,
3610 "implemented": true,
3611 "isConstructor": false,
3612 "isDeclaredConst": false,
3613 "modifiers": [
3614 {
3615 "arguments": null,
3616 "id": 11717,
3617 "modifierName": {
3618 "argumentTypes": null,
3619 "id": 11716,
3620 "name": "onlyOwner",
3621 "nodeType": "Identifier",
3622 "overloadedDeclarations": [],
3623 "referencedDeclaration": 11712,
3624 "src": "3179:9:38",
3625 "typeDescriptions": {
3626 "typeIdentifier": "t_modifier$__$",
3627 "typeString": "modifier ()"
3628 }
3629 },
3630 "nodeType": "ModifierInvocation",
3631 "src": "3179:9:38"
3632 }
3633 ],
3634 "name": "transferOwnership",
3635 "nodeType": "FunctionDefinition",
3636 "parameters": {
3637 "id": 11715,
3638 "nodeType": "ParameterList",
3639 "parameters": [
3640 {
3641 "constant": false,
3642 "id": 11714,
3643 "name": "newOwner",
3644 "nodeType": "VariableDeclaration",
3645 "scope": 11737,
3646 "src": "3161:16:38",
3647 "stateVariable": false,
3648 "storageLocation": "default",
3649 "typeDescriptions": {
3650 "typeIdentifier": "t_address",
3651 "typeString": "address"
3652 },
3653 "typeName": {
3654 "id": 11713,
3655 "name": "address",
3656 "nodeType": "ElementaryTypeName",
3657 "src": "3161:7:38",
3658 "typeDescriptions": {
3659 "typeIdentifier": "t_address",
3660 "typeString": "address"
3661 }
3662 },
3663 "value": null,
3664 "visibility": "internal"
3665 }
3666 ],
3667 "src": "3160:18:38"
3668 },
3669 "payable": false,
3670 "returnParameters": {
3671 "id": 11718,
3672 "nodeType": "ParameterList",
3673 "parameters": [],
3674 "src": "3196:0:38"
3675 },
3676 "scope": 11738,
3677 "src": "3134:188:38",
3678 "stateMutability": "nonpayable",
3679 "superFunction": null,
3680 "visibility": "public"
3681 }
3682 ],
3683 "scope": 12078,
3684 "src": "2482:842:38"
3685 },
3686 {
3687 "baseContracts": [
3688 {
3689 "arguments": null,
3690 "baseName": {
3691 "contractScope": null,
3692 "id": 11739,
3693 "name": "ERC20",
3694 "nodeType": "UserDefinedTypeName",
3695 "referencedDeclaration": 11611,
3696 "src": "3352:5:38",
3697 "typeDescriptions": {
3698 "typeIdentifier": "t_contract$_ERC20_$11611",
3699 "typeString": "contract ERC20"
3700 }
3701 },
3702 "id": 11740,
3703 "nodeType": "InheritanceSpecifier",
3704 "src": "3352:5:38"
3705 },
3706 {
3707 "arguments": null,
3708 "baseName": {
3709 "contractScope": null,
3710 "id": 11741,
3711 "name": "BasicToken",
3712 "nodeType": "UserDefinedTypeName",
3713 "referencedDeclaration": 11684,
3714 "src": "3359:10:38",
3715 "typeDescriptions": {
3716 "typeIdentifier": "t_contract$_BasicToken_$11684",
3717 "typeString": "contract BasicToken"
3718 }
3719 },
3720 "id": 11742,
3721 "nodeType": "InheritanceSpecifier",
3722 "src": "3359:10:38"
3723 }
3724 ],
3725 "contractDependencies": [
3726 11571,
3727 11611,
3728 11684
3729 ],
3730 "contractKind": "contract",
3731 "documentation": null,
3732 "fullyImplemented": true,
3733 "id": 11965,
3734 "linearizedBaseContracts": [
3735 11965,
3736 11684,
3737 11611,
3738 11571
3739 ],
3740 "name": "StandardToken",
3741 "nodeType": "ContractDefinition",
3742 "nodes": [
3743 {
3744 "constant": false,
3745 "id": 11748,
3746 "name": "allowed",
3747 "nodeType": "VariableDeclaration",
3748 "scope": 11965,
3749 "src": "3376:57:38",
3750 "stateVariable": true,
3751 "storageLocation": "default",
3752 "typeDescriptions": {
3753 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
3754 "typeString": "mapping(address => mapping(address => uint256))"
3755 },
3756 "typeName": {
3757 "id": 11747,
3758 "keyType": {
3759 "id": 11743,
3760 "name": "address",
3761 "nodeType": "ElementaryTypeName",
3762 "src": "3385:7:38",
3763 "typeDescriptions": {
3764 "typeIdentifier": "t_address",
3765 "typeString": "address"
3766 }
3767 },
3768 "nodeType": "Mapping",
3769 "src": "3376:49:38",
3770 "typeDescriptions": {
3771 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
3772 "typeString": "mapping(address => mapping(address => uint256))"
3773 },
3774 "valueType": {
3775 "id": 11746,
3776 "keyType": {
3777 "id": 11744,
3778 "name": "address",
3779 "nodeType": "ElementaryTypeName",
3780 "src": "3405:7:38",
3781 "typeDescriptions": {
3782 "typeIdentifier": "t_address",
3783 "typeString": "address"
3784 }
3785 },
3786 "nodeType": "Mapping",
3787 "src": "3396:28:38",
3788 "typeDescriptions": {
3789 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
3790 "typeString": "mapping(address => uint256)"
3791 },
3792 "valueType": {
3793 "id": 11745,
3794 "name": "uint256",
3795 "nodeType": "ElementaryTypeName",
3796 "src": "3416:7:38",
3797 "typeDescriptions": {
3798 "typeIdentifier": "t_uint256",
3799 "typeString": "uint256"
3800 }
3801 }
3802 }
3803 },
3804 "value": null,
3805 "visibility": "internal"
3806 },
3807 {
3808 "body": {
3809 "id": 11818,
3810 "nodeType": "Block",
3811 "src": "3810:485:38",
3812 "statements": [
3813 {
3814 "expression": {
3815 "argumentTypes": null,
3816 "arguments": [
3817 {
3818 "argumentTypes": null,
3819 "commonType": {
3820 "typeIdentifier": "t_address",
3821 "typeString": "address"
3822 },
3823 "id": 11764,
3824 "isConstant": false,
3825 "isLValue": false,
3826 "isPure": false,
3827 "lValueRequested": false,
3828 "leftExpression": {
3829 "argumentTypes": null,
3830 "id": 11760,
3831 "name": "_to",
3832 "nodeType": "Identifier",
3833 "overloadedDeclarations": [],
3834 "referencedDeclaration": 11752,
3835 "src": "3828:3:38",
3836 "typeDescriptions": {
3837 "typeIdentifier": "t_address",
3838 "typeString": "address"
3839 }
3840 },
3841 "nodeType": "BinaryOperation",
3842 "operator": "!=",
3843 "rightExpression": {
3844 "argumentTypes": null,
3845 "arguments": [
3846 {
3847 "argumentTypes": null,
3848 "hexValue": "30",
3849 "id": 11762,
3850 "isConstant": false,
3851 "isLValue": false,
3852 "isPure": true,
3853 "kind": "number",
3854 "lValueRequested": false,
3855 "nodeType": "Literal",
3856 "src": "3843:1:38",
3857 "subdenomination": null,
3858 "typeDescriptions": {
3859 "typeIdentifier": "t_rational_0_by_1",
3860 "typeString": "int_const 0"
3861 },
3862 "value": "0"
3863 }
3864 ],
3865 "expression": {
3866 "argumentTypes": [
3867 {
3868 "typeIdentifier": "t_rational_0_by_1",
3869 "typeString": "int_const 0"
3870 }
3871 ],
3872 "id": 11761,
3873 "isConstant": false,
3874 "isLValue": false,
3875 "isPure": true,
3876 "lValueRequested": false,
3877 "nodeType": "ElementaryTypeNameExpression",
3878 "src": "3835:7:38",
3879 "typeDescriptions": {
3880 "typeIdentifier": "t_type$_t_address_$",
3881 "typeString": "type(address)"
3882 },
3883 "typeName": "address"
3884 },
3885 "id": 11763,
3886 "isConstant": false,
3887 "isLValue": false,
3888 "isPure": true,
3889 "kind": "typeConversion",
3890 "lValueRequested": false,
3891 "names": [],
3892 "nodeType": "FunctionCall",
3893 "src": "3835:10:38",
3894 "typeDescriptions": {
3895 "typeIdentifier": "t_address",
3896 "typeString": "address"
3897 }
3898 },
3899 "src": "3828:17:38",
3900 "typeDescriptions": {
3901 "typeIdentifier": "t_bool",
3902 "typeString": "bool"
3903 }
3904 }
3905 ],
3906 "expression": {
3907 "argumentTypes": [
3908 {
3909 "typeIdentifier": "t_bool",
3910 "typeString": "bool"
3911 }
3912 ],
3913 "id": 11759,
3914 "name": "require",
3915 "nodeType": "Identifier",
3916 "overloadedDeclarations": [
3917 12095,
3918 12096
3919 ],
3920 "referencedDeclaration": 12095,
3921 "src": "3820:7:38",
3922 "typeDescriptions": {
3923 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
3924 "typeString": "function (bool) pure"
3925 }
3926 },
3927 "id": 11765,
3928 "isConstant": false,
3929 "isLValue": false,
3930 "isPure": false,
3931 "kind": "functionCall",
3932 "lValueRequested": false,
3933 "names": [],
3934 "nodeType": "FunctionCall",
3935 "src": "3820:26:38",
3936 "typeDescriptions": {
3937 "typeIdentifier": "t_tuple$__$",
3938 "typeString": "tuple()"
3939 }
3940 },
3941 "id": 11766,
3942 "nodeType": "ExpressionStatement",
3943 "src": "3820:26:38"
3944 },
3945 {
3946 "assignments": [
3947 11768
3948 ],
3949 "declarations": [
3950 {
3951 "constant": false,
3952 "id": 11768,
3953 "name": "_allowance",
3954 "nodeType": "VariableDeclaration",
3955 "scope": 11819,
3956 "src": "3856:18:38",
3957 "stateVariable": false,
3958 "storageLocation": "default",
3959 "typeDescriptions": {
3960 "typeIdentifier": "t_uint256",
3961 "typeString": "uint256"
3962 },
3963 "typeName": {
3964 "id": 11767,
3965 "name": "uint256",
3966 "nodeType": "ElementaryTypeName",
3967 "src": "3856:7:38",
3968 "typeDescriptions": {
3969 "typeIdentifier": "t_uint256",
3970 "typeString": "uint256"
3971 }
3972 },
3973 "value": null,
3974 "visibility": "internal"
3975 }
3976 ],
3977 "id": 11775,
3978 "initialValue": {
3979 "argumentTypes": null,
3980 "baseExpression": {
3981 "argumentTypes": null,
3982 "baseExpression": {
3983 "argumentTypes": null,
3984 "id": 11769,
3985 "name": "allowed",
3986 "nodeType": "Identifier",
3987 "overloadedDeclarations": [],
3988 "referencedDeclaration": 11748,
3989 "src": "3877:7:38",
3990 "typeDescriptions": {
3991 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
3992 "typeString": "mapping(address => mapping(address => uint256))"
3993 }
3994 },
3995 "id": 11771,
3996 "indexExpression": {
3997 "argumentTypes": null,
3998 "id": 11770,
3999 "name": "_from",
4000 "nodeType": "Identifier",
4001 "overloadedDeclarations": [],
4002 "referencedDeclaration": 11750,
4003 "src": "3885:5:38",
4004 "typeDescriptions": {
4005 "typeIdentifier": "t_address",
4006 "typeString": "address"
4007 }
4008 },
4009 "isConstant": false,
4010 "isLValue": true,
4011 "isPure": false,
4012 "lValueRequested": false,
4013 "nodeType": "IndexAccess",
4014 "src": "3877:14:38",
4015 "typeDescriptions": {
4016 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4017 "typeString": "mapping(address => uint256)"
4018 }
4019 },
4020 "id": 11774,
4021 "indexExpression": {
4022 "argumentTypes": null,
4023 "expression": {
4024 "argumentTypes": null,
4025 "id": 11772,
4026 "name": "msg",
4027 "nodeType": "Identifier",
4028 "overloadedDeclarations": [],
4029 "referencedDeclaration": 12092,
4030 "src": "3892:3:38",
4031 "typeDescriptions": {
4032 "typeIdentifier": "t_magic_message",
4033 "typeString": "msg"
4034 }
4035 },
4036 "id": 11773,
4037 "isConstant": false,
4038 "isLValue": false,
4039 "isPure": false,
4040 "lValueRequested": false,
4041 "memberName": "sender",
4042 "nodeType": "MemberAccess",
4043 "referencedDeclaration": null,
4044 "src": "3892:10:38",
4045 "typeDescriptions": {
4046 "typeIdentifier": "t_address",
4047 "typeString": "address"
4048 }
4049 },
4050 "isConstant": false,
4051 "isLValue": true,
4052 "isPure": false,
4053 "lValueRequested": false,
4054 "nodeType": "IndexAccess",
4055 "src": "3877:26:38",
4056 "typeDescriptions": {
4057 "typeIdentifier": "t_uint256",
4058 "typeString": "uint256"
4059 }
4060 },
4061 "nodeType": "VariableDeclarationStatement",
4062 "src": "3856:47:38"
4063 },
4064 {
4065 "expression": {
4066 "argumentTypes": null,
4067 "id": 11785,
4068 "isConstant": false,
4069 "isLValue": false,
4070 "isPure": false,
4071 "lValueRequested": false,
4072 "leftHandSide": {
4073 "argumentTypes": null,
4074 "baseExpression": {
4075 "argumentTypes": null,
4076 "id": 11776,
4077 "name": "balances",
4078 "nodeType": "Identifier",
4079 "overloadedDeclarations": [],
4080 "referencedDeclaration": 11620,
4081 "src": "4067:8:38",
4082 "typeDescriptions": {
4083 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4084 "typeString": "mapping(address => uint256)"
4085 }
4086 },
4087 "id": 11778,
4088 "indexExpression": {
4089 "argumentTypes": null,
4090 "id": 11777,
4091 "name": "_from",
4092 "nodeType": "Identifier",
4093 "overloadedDeclarations": [],
4094 "referencedDeclaration": 11750,
4095 "src": "4076:5:38",
4096 "typeDescriptions": {
4097 "typeIdentifier": "t_address",
4098 "typeString": "address"
4099 }
4100 },
4101 "isConstant": false,
4102 "isLValue": true,
4103 "isPure": false,
4104 "lValueRequested": true,
4105 "nodeType": "IndexAccess",
4106 "src": "4067:15:38",
4107 "typeDescriptions": {
4108 "typeIdentifier": "t_uint256",
4109 "typeString": "uint256"
4110 }
4111 },
4112 "nodeType": "Assignment",
4113 "operator": "=",
4114 "rightHandSide": {
4115 "argumentTypes": null,
4116 "arguments": [
4117 {
4118 "argumentTypes": null,
4119 "id": 11783,
4120 "name": "_value",
4121 "nodeType": "Identifier",
4122 "overloadedDeclarations": [],
4123 "referencedDeclaration": 11754,
4124 "src": "4105:6:38",
4125 "typeDescriptions": {
4126 "typeIdentifier": "t_uint256",
4127 "typeString": "uint256"
4128 }
4129 }
4130 ],
4131 "expression": {
4132 "argumentTypes": [
4133 {
4134 "typeIdentifier": "t_uint256",
4135 "typeString": "uint256"
4136 }
4137 ],
4138 "expression": {
4139 "argumentTypes": null,
4140 "baseExpression": {
4141 "argumentTypes": null,
4142 "id": 11779,
4143 "name": "balances",
4144 "nodeType": "Identifier",
4145 "overloadedDeclarations": [],
4146 "referencedDeclaration": 11620,
4147 "src": "4085:8:38",
4148 "typeDescriptions": {
4149 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4150 "typeString": "mapping(address => uint256)"
4151 }
4152 },
4153 "id": 11781,
4154 "indexExpression": {
4155 "argumentTypes": null,
4156 "id": 11780,
4157 "name": "_from",
4158 "nodeType": "Identifier",
4159 "overloadedDeclarations": [],
4160 "referencedDeclaration": 11750,
4161 "src": "4094:5:38",
4162 "typeDescriptions": {
4163 "typeIdentifier": "t_address",
4164 "typeString": "address"
4165 }
4166 },
4167 "isConstant": false,
4168 "isLValue": true,
4169 "isPure": false,
4170 "lValueRequested": false,
4171 "nodeType": "IndexAccess",
4172 "src": "4085:15:38",
4173 "typeDescriptions": {
4174 "typeIdentifier": "t_uint256",
4175 "typeString": "uint256"
4176 }
4177 },
4178 "id": 11782,
4179 "isConstant": false,
4180 "isLValue": false,
4181 "isPure": false,
4182 "lValueRequested": false,
4183 "memberName": "sub",
4184 "nodeType": "MemberAccess",
4185 "referencedDeclaration": 11519,
4186 "src": "4085:19:38",
4187 "typeDescriptions": {
4188 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
4189 "typeString": "function (uint256,uint256) pure returns (uint256)"
4190 }
4191 },
4192 "id": 11784,
4193 "isConstant": false,
4194 "isLValue": false,
4195 "isPure": false,
4196 "kind": "functionCall",
4197 "lValueRequested": false,
4198 "names": [],
4199 "nodeType": "FunctionCall",
4200 "src": "4085:27:38",
4201 "typeDescriptions": {
4202 "typeIdentifier": "t_uint256",
4203 "typeString": "uint256"
4204 }
4205 },
4206 "src": "4067:45:38",
4207 "typeDescriptions": {
4208 "typeIdentifier": "t_uint256",
4209 "typeString": "uint256"
4210 }
4211 },
4212 "id": 11786,
4213 "nodeType": "ExpressionStatement",
4214 "src": "4067:45:38"
4215 },
4216 {
4217 "expression": {
4218 "argumentTypes": null,
4219 "id": 11796,
4220 "isConstant": false,
4221 "isLValue": false,
4222 "isPure": false,
4223 "lValueRequested": false,
4224 "leftHandSide": {
4225 "argumentTypes": null,
4226 "baseExpression": {
4227 "argumentTypes": null,
4228 "id": 11787,
4229 "name": "balances",
4230 "nodeType": "Identifier",
4231 "overloadedDeclarations": [],
4232 "referencedDeclaration": 11620,
4233 "src": "4122:8:38",
4234 "typeDescriptions": {
4235 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4236 "typeString": "mapping(address => uint256)"
4237 }
4238 },
4239 "id": 11789,
4240 "indexExpression": {
4241 "argumentTypes": null,
4242 "id": 11788,
4243 "name": "_to",
4244 "nodeType": "Identifier",
4245 "overloadedDeclarations": [],
4246 "referencedDeclaration": 11752,
4247 "src": "4131:3:38",
4248 "typeDescriptions": {
4249 "typeIdentifier": "t_address",
4250 "typeString": "address"
4251 }
4252 },
4253 "isConstant": false,
4254 "isLValue": true,
4255 "isPure": false,
4256 "lValueRequested": true,
4257 "nodeType": "IndexAccess",
4258 "src": "4122:13:38",
4259 "typeDescriptions": {
4260 "typeIdentifier": "t_uint256",
4261 "typeString": "uint256"
4262 }
4263 },
4264 "nodeType": "Assignment",
4265 "operator": "=",
4266 "rightHandSide": {
4267 "argumentTypes": null,
4268 "arguments": [
4269 {
4270 "argumentTypes": null,
4271 "id": 11794,
4272 "name": "_value",
4273 "nodeType": "Identifier",
4274 "overloadedDeclarations": [],
4275 "referencedDeclaration": 11754,
4276 "src": "4156:6:38",
4277 "typeDescriptions": {
4278 "typeIdentifier": "t_uint256",
4279 "typeString": "uint256"
4280 }
4281 }
4282 ],
4283 "expression": {
4284 "argumentTypes": [
4285 {
4286 "typeIdentifier": "t_uint256",
4287 "typeString": "uint256"
4288 }
4289 ],
4290 "expression": {
4291 "argumentTypes": null,
4292 "baseExpression": {
4293 "argumentTypes": null,
4294 "id": 11790,
4295 "name": "balances",
4296 "nodeType": "Identifier",
4297 "overloadedDeclarations": [],
4298 "referencedDeclaration": 11620,
4299 "src": "4138:8:38",
4300 "typeDescriptions": {
4301 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4302 "typeString": "mapping(address => uint256)"
4303 }
4304 },
4305 "id": 11792,
4306 "indexExpression": {
4307 "argumentTypes": null,
4308 "id": 11791,
4309 "name": "_to",
4310 "nodeType": "Identifier",
4311 "overloadedDeclarations": [],
4312 "referencedDeclaration": 11752,
4313 "src": "4147:3:38",
4314 "typeDescriptions": {
4315 "typeIdentifier": "t_address",
4316 "typeString": "address"
4317 }
4318 },
4319 "isConstant": false,
4320 "isLValue": true,
4321 "isPure": false,
4322 "lValueRequested": false,
4323 "nodeType": "IndexAccess",
4324 "src": "4138:13:38",
4325 "typeDescriptions": {
4326 "typeIdentifier": "t_uint256",
4327 "typeString": "uint256"
4328 }
4329 },
4330 "id": 11793,
4331 "isConstant": false,
4332 "isLValue": false,
4333 "isPure": false,
4334 "lValueRequested": false,
4335 "memberName": "add",
4336 "nodeType": "MemberAccess",
4337 "referencedDeclaration": 11543,
4338 "src": "4138:17:38",
4339 "typeDescriptions": {
4340 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
4341 "typeString": "function (uint256,uint256) pure returns (uint256)"
4342 }
4343 },
4344 "id": 11795,
4345 "isConstant": false,
4346 "isLValue": false,
4347 "isPure": false,
4348 "kind": "functionCall",
4349 "lValueRequested": false,
4350 "names": [],
4351 "nodeType": "FunctionCall",
4352 "src": "4138:25:38",
4353 "typeDescriptions": {
4354 "typeIdentifier": "t_uint256",
4355 "typeString": "uint256"
4356 }
4357 },
4358 "src": "4122:41:38",
4359 "typeDescriptions": {
4360 "typeIdentifier": "t_uint256",
4361 "typeString": "uint256"
4362 }
4363 },
4364 "id": 11797,
4365 "nodeType": "ExpressionStatement",
4366 "src": "4122:41:38"
4367 },
4368 {
4369 "expression": {
4370 "argumentTypes": null,
4371 "id": 11808,
4372 "isConstant": false,
4373 "isLValue": false,
4374 "isPure": false,
4375 "lValueRequested": false,
4376 "leftHandSide": {
4377 "argumentTypes": null,
4378 "baseExpression": {
4379 "argumentTypes": null,
4380 "baseExpression": {
4381 "argumentTypes": null,
4382 "id": 11798,
4383 "name": "allowed",
4384 "nodeType": "Identifier",
4385 "overloadedDeclarations": [],
4386 "referencedDeclaration": 11748,
4387 "src": "4173:7:38",
4388 "typeDescriptions": {
4389 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
4390 "typeString": "mapping(address => mapping(address => uint256))"
4391 }
4392 },
4393 "id": 11802,
4394 "indexExpression": {
4395 "argumentTypes": null,
4396 "id": 11799,
4397 "name": "_from",
4398 "nodeType": "Identifier",
4399 "overloadedDeclarations": [],
4400 "referencedDeclaration": 11750,
4401 "src": "4181:5:38",
4402 "typeDescriptions": {
4403 "typeIdentifier": "t_address",
4404 "typeString": "address"
4405 }
4406 },
4407 "isConstant": false,
4408 "isLValue": true,
4409 "isPure": false,
4410 "lValueRequested": false,
4411 "nodeType": "IndexAccess",
4412 "src": "4173:14:38",
4413 "typeDescriptions": {
4414 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4415 "typeString": "mapping(address => uint256)"
4416 }
4417 },
4418 "id": 11803,
4419 "indexExpression": {
4420 "argumentTypes": null,
4421 "expression": {
4422 "argumentTypes": null,
4423 "id": 11800,
4424 "name": "msg",
4425 "nodeType": "Identifier",
4426 "overloadedDeclarations": [],
4427 "referencedDeclaration": 12092,
4428 "src": "4188:3:38",
4429 "typeDescriptions": {
4430 "typeIdentifier": "t_magic_message",
4431 "typeString": "msg"
4432 }
4433 },
4434 "id": 11801,
4435 "isConstant": false,
4436 "isLValue": false,
4437 "isPure": false,
4438 "lValueRequested": false,
4439 "memberName": "sender",
4440 "nodeType": "MemberAccess",
4441 "referencedDeclaration": null,
4442 "src": "4188:10:38",
4443 "typeDescriptions": {
4444 "typeIdentifier": "t_address",
4445 "typeString": "address"
4446 }
4447 },
4448 "isConstant": false,
4449 "isLValue": true,
4450 "isPure": false,
4451 "lValueRequested": true,
4452 "nodeType": "IndexAccess",
4453 "src": "4173:26:38",
4454 "typeDescriptions": {
4455 "typeIdentifier": "t_uint256",
4456 "typeString": "uint256"
4457 }
4458 },
4459 "nodeType": "Assignment",
4460 "operator": "=",
4461 "rightHandSide": {
4462 "argumentTypes": null,
4463 "arguments": [
4464 {
4465 "argumentTypes": null,
4466 "id": 11806,
4467 "name": "_value",
4468 "nodeType": "Identifier",
4469 "overloadedDeclarations": [],
4470 "referencedDeclaration": 11754,
4471 "src": "4217:6:38",
4472 "typeDescriptions": {
4473 "typeIdentifier": "t_uint256",
4474 "typeString": "uint256"
4475 }
4476 }
4477 ],
4478 "expression": {
4479 "argumentTypes": [
4480 {
4481 "typeIdentifier": "t_uint256",
4482 "typeString": "uint256"
4483 }
4484 ],
4485 "expression": {
4486 "argumentTypes": null,
4487 "id": 11804,
4488 "name": "_allowance",
4489 "nodeType": "Identifier",
4490 "overloadedDeclarations": [],
4491 "referencedDeclaration": 11768,
4492 "src": "4202:10:38",
4493 "typeDescriptions": {
4494 "typeIdentifier": "t_uint256",
4495 "typeString": "uint256"
4496 }
4497 },
4498 "id": 11805,
4499 "isConstant": false,
4500 "isLValue": false,
4501 "isPure": false,
4502 "lValueRequested": false,
4503 "memberName": "sub",
4504 "nodeType": "MemberAccess",
4505 "referencedDeclaration": 11519,
4506 "src": "4202:14:38",
4507 "typeDescriptions": {
4508 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
4509 "typeString": "function (uint256,uint256) pure returns (uint256)"
4510 }
4511 },
4512 "id": 11807,
4513 "isConstant": false,
4514 "isLValue": false,
4515 "isPure": false,
4516 "kind": "functionCall",
4517 "lValueRequested": false,
4518 "names": [],
4519 "nodeType": "FunctionCall",
4520 "src": "4202:22:38",
4521 "typeDescriptions": {
4522 "typeIdentifier": "t_uint256",
4523 "typeString": "uint256"
4524 }
4525 },
4526 "src": "4173:51:38",
4527 "typeDescriptions": {
4528 "typeIdentifier": "t_uint256",
4529 "typeString": "uint256"
4530 }
4531 },
4532 "id": 11809,
4533 "nodeType": "ExpressionStatement",
4534 "src": "4173:51:38"
4535 },
4536 {
4537 "eventCall": {
4538 "argumentTypes": null,
4539 "arguments": [
4540 {
4541 "argumentTypes": null,
4542 "id": 11811,
4543 "name": "_from",
4544 "nodeType": "Identifier",
4545 "overloadedDeclarations": [],
4546 "referencedDeclaration": 11750,
4547 "src": "4248:5:38",
4548 "typeDescriptions": {
4549 "typeIdentifier": "t_address",
4550 "typeString": "address"
4551 }
4552 },
4553 {
4554 "argumentTypes": null,
4555 "id": 11812,
4556 "name": "_to",
4557 "nodeType": "Identifier",
4558 "overloadedDeclarations": [],
4559 "referencedDeclaration": 11752,
4560 "src": "4255:3:38",
4561 "typeDescriptions": {
4562 "typeIdentifier": "t_address",
4563 "typeString": "address"
4564 }
4565 },
4566 {
4567 "argumentTypes": null,
4568 "id": 11813,
4569 "name": "_value",
4570 "nodeType": "Identifier",
4571 "overloadedDeclarations": [],
4572 "referencedDeclaration": 11754,
4573 "src": "4260:6:38",
4574 "typeDescriptions": {
4575 "typeIdentifier": "t_uint256",
4576 "typeString": "uint256"
4577 }
4578 }
4579 ],
4580 "expression": {
4581 "argumentTypes": [
4582 {
4583 "typeIdentifier": "t_address",
4584 "typeString": "address"
4585 },
4586 {
4587 "typeIdentifier": "t_address",
4588 "typeString": "address"
4589 },
4590 {
4591 "typeIdentifier": "t_uint256",
4592 "typeString": "uint256"
4593 }
4594 ],
4595 "id": 11810,
4596 "name": "Transfer",
4597 "nodeType": "Identifier",
4598 "overloadedDeclarations": [],
4599 "referencedDeclaration": 11570,
4600 "src": "4239:8:38",
4601 "typeDescriptions": {
4602 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
4603 "typeString": "function (address,address,uint256)"
4604 }
4605 },
4606 "id": 11814,
4607 "isConstant": false,
4608 "isLValue": false,
4609 "isPure": false,
4610 "kind": "functionCall",
4611 "lValueRequested": false,
4612 "names": [],
4613 "nodeType": "FunctionCall",
4614 "src": "4239:28:38",
4615 "typeDescriptions": {
4616 "typeIdentifier": "t_tuple$__$",
4617 "typeString": "tuple()"
4618 }
4619 },
4620 "id": 11815,
4621 "nodeType": "EmitStatement",
4622 "src": "4234:33:38"
4623 },
4624 {
4625 "expression": {
4626 "argumentTypes": null,
4627 "hexValue": "74727565",
4628 "id": 11816,
4629 "isConstant": false,
4630 "isLValue": false,
4631 "isPure": true,
4632 "kind": "bool",
4633 "lValueRequested": false,
4634 "nodeType": "Literal",
4635 "src": "4284:4:38",
4636 "subdenomination": null,
4637 "typeDescriptions": {
4638 "typeIdentifier": "t_bool",
4639 "typeString": "bool"
4640 },
4641 "value": "true"
4642 },
4643 "functionReturnParameters": 11758,
4644 "id": 11817,
4645 "nodeType": "Return",
4646 "src": "4277:11:38"
4647 }
4648 ]
4649 },
4650 "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred",
4651 "id": 11819,
4652 "implemented": true,
4653 "isConstructor": false,
4654 "isDeclaredConst": false,
4655 "modifiers": [],
4656 "name": "transferFrom",
4657 "nodeType": "FunctionDefinition",
4658 "parameters": {
4659 "id": 11755,
4660 "nodeType": "ParameterList",
4661 "parameters": [
4662 {
4663 "constant": false,
4664 "id": 11750,
4665 "name": "_from",
4666 "nodeType": "VariableDeclaration",
4667 "scope": 11819,
4668 "src": "3744:13:38",
4669 "stateVariable": false,
4670 "storageLocation": "default",
4671 "typeDescriptions": {
4672 "typeIdentifier": "t_address",
4673 "typeString": "address"
4674 },
4675 "typeName": {
4676 "id": 11749,
4677 "name": "address",
4678 "nodeType": "ElementaryTypeName",
4679 "src": "3744:7:38",
4680 "typeDescriptions": {
4681 "typeIdentifier": "t_address",
4682 "typeString": "address"
4683 }
4684 },
4685 "value": null,
4686 "visibility": "internal"
4687 },
4688 {
4689 "constant": false,
4690 "id": 11752,
4691 "name": "_to",
4692 "nodeType": "VariableDeclaration",
4693 "scope": 11819,
4694 "src": "3759:11:38",
4695 "stateVariable": false,
4696 "storageLocation": "default",
4697 "typeDescriptions": {
4698 "typeIdentifier": "t_address",
4699 "typeString": "address"
4700 },
4701 "typeName": {
4702 "id": 11751,
4703 "name": "address",
4704 "nodeType": "ElementaryTypeName",
4705 "src": "3759:7:38",
4706 "typeDescriptions": {
4707 "typeIdentifier": "t_address",
4708 "typeString": "address"
4709 }
4710 },
4711 "value": null,
4712 "visibility": "internal"
4713 },
4714 {
4715 "constant": false,
4716 "id": 11754,
4717 "name": "_value",
4718 "nodeType": "VariableDeclaration",
4719 "scope": 11819,
4720 "src": "3772:14:38",
4721 "stateVariable": false,
4722 "storageLocation": "default",
4723 "typeDescriptions": {
4724 "typeIdentifier": "t_uint256",
4725 "typeString": "uint256"
4726 },
4727 "typeName": {
4728 "id": 11753,
4729 "name": "uint256",
4730 "nodeType": "ElementaryTypeName",
4731 "src": "3772:7:38",
4732 "typeDescriptions": {
4733 "typeIdentifier": "t_uint256",
4734 "typeString": "uint256"
4735 }
4736 },
4737 "value": null,
4738 "visibility": "internal"
4739 }
4740 ],
4741 "src": "3743:44:38"
4742 },
4743 "payable": false,
4744 "returnParameters": {
4745 "id": 11758,
4746 "nodeType": "ParameterList",
4747 "parameters": [
4748 {
4749 "constant": false,
4750 "id": 11757,
4751 "name": "",
4752 "nodeType": "VariableDeclaration",
4753 "scope": 11819,
4754 "src": "3804:4:38",
4755 "stateVariable": false,
4756 "storageLocation": "default",
4757 "typeDescriptions": {
4758 "typeIdentifier": "t_bool",
4759 "typeString": "bool"
4760 },
4761 "typeName": {
4762 "id": 11756,
4763 "name": "bool",
4764 "nodeType": "ElementaryTypeName",
4765 "src": "3804:4:38",
4766 "typeDescriptions": {
4767 "typeIdentifier": "t_bool",
4768 "typeString": "bool"
4769 }
4770 },
4771 "value": null,
4772 "visibility": "internal"
4773 }
4774 ],
4775 "src": "3803:6:38"
4776 },
4777 "scope": 11965,
4778 "src": "3722:573:38",
4779 "stateMutability": "nonpayable",
4780 "superFunction": 11593,
4781 "visibility": "public"
4782 },
4783 {
4784 "body": {
4785 "id": 11846,
4786 "nodeType": "Block",
4787 "src": "5012:129:38",
4788 "statements": [
4789 {
4790 "expression": {
4791 "argumentTypes": null,
4792 "id": 11835,
4793 "isConstant": false,
4794 "isLValue": false,
4795 "isPure": false,
4796 "lValueRequested": false,
4797 "leftHandSide": {
4798 "argumentTypes": null,
4799 "baseExpression": {
4800 "argumentTypes": null,
4801 "baseExpression": {
4802 "argumentTypes": null,
4803 "id": 11828,
4804 "name": "allowed",
4805 "nodeType": "Identifier",
4806 "overloadedDeclarations": [],
4807 "referencedDeclaration": 11748,
4808 "src": "5022:7:38",
4809 "typeDescriptions": {
4810 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
4811 "typeString": "mapping(address => mapping(address => uint256))"
4812 }
4813 },
4814 "id": 11832,
4815 "indexExpression": {
4816 "argumentTypes": null,
4817 "expression": {
4818 "argumentTypes": null,
4819 "id": 11829,
4820 "name": "msg",
4821 "nodeType": "Identifier",
4822 "overloadedDeclarations": [],
4823 "referencedDeclaration": 12092,
4824 "src": "5030:3:38",
4825 "typeDescriptions": {
4826 "typeIdentifier": "t_magic_message",
4827 "typeString": "msg"
4828 }
4829 },
4830 "id": 11830,
4831 "isConstant": false,
4832 "isLValue": false,
4833 "isPure": false,
4834 "lValueRequested": false,
4835 "memberName": "sender",
4836 "nodeType": "MemberAccess",
4837 "referencedDeclaration": null,
4838 "src": "5030:10:38",
4839 "typeDescriptions": {
4840 "typeIdentifier": "t_address",
4841 "typeString": "address"
4842 }
4843 },
4844 "isConstant": false,
4845 "isLValue": true,
4846 "isPure": false,
4847 "lValueRequested": false,
4848 "nodeType": "IndexAccess",
4849 "src": "5022:19:38",
4850 "typeDescriptions": {
4851 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4852 "typeString": "mapping(address => uint256)"
4853 }
4854 },
4855 "id": 11833,
4856 "indexExpression": {
4857 "argumentTypes": null,
4858 "id": 11831,
4859 "name": "_spender",
4860 "nodeType": "Identifier",
4861 "overloadedDeclarations": [],
4862 "referencedDeclaration": 11821,
4863 "src": "5042:8:38",
4864 "typeDescriptions": {
4865 "typeIdentifier": "t_address",
4866 "typeString": "address"
4867 }
4868 },
4869 "isConstant": false,
4870 "isLValue": true,
4871 "isPure": false,
4872 "lValueRequested": true,
4873 "nodeType": "IndexAccess",
4874 "src": "5022:29:38",
4875 "typeDescriptions": {
4876 "typeIdentifier": "t_uint256",
4877 "typeString": "uint256"
4878 }
4879 },
4880 "nodeType": "Assignment",
4881 "operator": "=",
4882 "rightHandSide": {
4883 "argumentTypes": null,
4884 "id": 11834,
4885 "name": "_value",
4886 "nodeType": "Identifier",
4887 "overloadedDeclarations": [],
4888 "referencedDeclaration": 11823,
4889 "src": "5054:6:38",
4890 "typeDescriptions": {
4891 "typeIdentifier": "t_uint256",
4892 "typeString": "uint256"
4893 }
4894 },
4895 "src": "5022:38:38",
4896 "typeDescriptions": {
4897 "typeIdentifier": "t_uint256",
4898 "typeString": "uint256"
4899 }
4900 },
4901 "id": 11836,
4902 "nodeType": "ExpressionStatement",
4903 "src": "5022:38:38"
4904 },
4905 {
4906 "eventCall": {
4907 "argumentTypes": null,
4908 "arguments": [
4909 {
4910 "argumentTypes": null,
4911 "expression": {
4912 "argumentTypes": null,
4913 "id": 11838,
4914 "name": "msg",
4915 "nodeType": "Identifier",
4916 "overloadedDeclarations": [],
4917 "referencedDeclaration": 12092,
4918 "src": "5084:3:38",
4919 "typeDescriptions": {
4920 "typeIdentifier": "t_magic_message",
4921 "typeString": "msg"
4922 }
4923 },
4924 "id": 11839,
4925 "isConstant": false,
4926 "isLValue": false,
4927 "isPure": false,
4928 "lValueRequested": false,
4929 "memberName": "sender",
4930 "nodeType": "MemberAccess",
4931 "referencedDeclaration": null,
4932 "src": "5084:10:38",
4933 "typeDescriptions": {
4934 "typeIdentifier": "t_address",
4935 "typeString": "address"
4936 }
4937 },
4938 {
4939 "argumentTypes": null,
4940 "id": 11840,
4941 "name": "_spender",
4942 "nodeType": "Identifier",
4943 "overloadedDeclarations": [],
4944 "referencedDeclaration": 11821,
4945 "src": "5096:8:38",
4946 "typeDescriptions": {
4947 "typeIdentifier": "t_address",
4948 "typeString": "address"
4949 }
4950 },
4951 {
4952 "argumentTypes": null,
4953 "id": 11841,
4954 "name": "_value",
4955 "nodeType": "Identifier",
4956 "overloadedDeclarations": [],
4957 "referencedDeclaration": 11823,
4958 "src": "5106:6:38",
4959 "typeDescriptions": {
4960 "typeIdentifier": "t_uint256",
4961 "typeString": "uint256"
4962 }
4963 }
4964 ],
4965 "expression": {
4966 "argumentTypes": [
4967 {
4968 "typeIdentifier": "t_address",
4969 "typeString": "address"
4970 },
4971 {
4972 "typeIdentifier": "t_address",
4973 "typeString": "address"
4974 },
4975 {
4976 "typeIdentifier": "t_uint256",
4977 "typeString": "uint256"
4978 }
4979 ],
4980 "id": 11837,
4981 "name": "Approval",
4982 "nodeType": "Identifier",
4983 "overloadedDeclarations": [],
4984 "referencedDeclaration": 11610,
4985 "src": "5075:8:38",
4986 "typeDescriptions": {
4987 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
4988 "typeString": "function (address,address,uint256)"
4989 }
4990 },
4991 "id": 11842,
4992 "isConstant": false,
4993 "isLValue": false,
4994 "isPure": false,
4995 "kind": "functionCall",
4996 "lValueRequested": false,
4997 "names": [],
4998 "nodeType": "FunctionCall",
4999 "src": "5075:38:38",
5000 "typeDescriptions": {
5001 "typeIdentifier": "t_tuple$__$",
5002 "typeString": "tuple()"
5003 }
5004 },
5005 "id": 11843,
5006 "nodeType": "EmitStatement",
5007 "src": "5070:43:38"
5008 },
5009 {
5010 "expression": {
5011 "argumentTypes": null,
5012 "hexValue": "74727565",
5013 "id": 11844,
5014 "isConstant": false,
5015 "isLValue": false,
5016 "isPure": true,
5017 "kind": "bool",
5018 "lValueRequested": false,
5019 "nodeType": "Literal",
5020 "src": "5130:4:38",
5021 "subdenomination": null,
5022 "typeDescriptions": {
5023 "typeIdentifier": "t_bool",
5024 "typeString": "bool"
5025 },
5026 "value": "true"
5027 },
5028 "functionReturnParameters": 11827,
5029 "id": 11845,
5030 "nodeType": "Return",
5031 "src": "5123:11:38"
5032 }
5033 ]
5034 },
5035 "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.",
5036 "id": 11847,
5037 "implemented": true,
5038 "isConstructor": false,
5039 "isDeclaredConst": false,
5040 "modifiers": [],
5041 "name": "approve",
5042 "nodeType": "FunctionDefinition",
5043 "parameters": {
5044 "id": 11824,
5045 "nodeType": "ParameterList",
5046 "parameters": [
5047 {
5048 "constant": false,
5049 "id": 11821,
5050 "name": "_spender",
5051 "nodeType": "VariableDeclaration",
5052 "scope": 11847,
5053 "src": "4956:16:38",
5054 "stateVariable": false,
5055 "storageLocation": "default",
5056 "typeDescriptions": {
5057 "typeIdentifier": "t_address",
5058 "typeString": "address"
5059 },
5060 "typeName": {
5061 "id": 11820,
5062 "name": "address",
5063 "nodeType": "ElementaryTypeName",
5064 "src": "4956:7:38",
5065 "typeDescriptions": {
5066 "typeIdentifier": "t_address",
5067 "typeString": "address"
5068 }
5069 },
5070 "value": null,
5071 "visibility": "internal"
5072 },
5073 {
5074 "constant": false,
5075 "id": 11823,
5076 "name": "_value",
5077 "nodeType": "VariableDeclaration",
5078 "scope": 11847,
5079 "src": "4974:14:38",
5080 "stateVariable": false,
5081 "storageLocation": "default",
5082 "typeDescriptions": {
5083 "typeIdentifier": "t_uint256",
5084 "typeString": "uint256"
5085 },
5086 "typeName": {
5087 "id": 11822,
5088 "name": "uint256",
5089 "nodeType": "ElementaryTypeName",
5090 "src": "4974:7:38",
5091 "typeDescriptions": {
5092 "typeIdentifier": "t_uint256",
5093 "typeString": "uint256"
5094 }
5095 },
5096 "value": null,
5097 "visibility": "internal"
5098 }
5099 ],
5100 "src": "4955:34:38"
5101 },
5102 "payable": false,
5103 "returnParameters": {
5104 "id": 11827,
5105 "nodeType": "ParameterList",
5106 "parameters": [
5107 {
5108 "constant": false,
5109 "id": 11826,
5110 "name": "",
5111 "nodeType": "VariableDeclaration",
5112 "scope": 11847,
5113 "src": "5006:4:38",
5114 "stateVariable": false,
5115 "storageLocation": "default",
5116 "typeDescriptions": {
5117 "typeIdentifier": "t_bool",
5118 "typeString": "bool"
5119 },
5120 "typeName": {
5121 "id": 11825,
5122 "name": "bool",
5123 "nodeType": "ElementaryTypeName",
5124 "src": "5006:4:38",
5125 "typeDescriptions": {
5126 "typeIdentifier": "t_bool",
5127 "typeString": "bool"
5128 }
5129 },
5130 "value": null,
5131 "visibility": "internal"
5132 }
5133 ],
5134 "src": "5005:6:38"
5135 },
5136 "scope": 11965,
5137 "src": "4939:202:38",
5138 "stateMutability": "nonpayable",
5139 "superFunction": 11602,
5140 "visibility": "public"
5141 },
5142 {
5143 "body": {
5144 "id": 11862,
5145 "nodeType": "Block",
5146 "src": "5570:49:38",
5147 "statements": [
5148 {
5149 "expression": {
5150 "argumentTypes": null,
5151 "baseExpression": {
5152 "argumentTypes": null,
5153 "baseExpression": {
5154 "argumentTypes": null,
5155 "id": 11856,
5156 "name": "allowed",
5157 "nodeType": "Identifier",
5158 "overloadedDeclarations": [],
5159 "referencedDeclaration": 11748,
5160 "src": "5587:7:38",
5161 "typeDescriptions": {
5162 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
5163 "typeString": "mapping(address => mapping(address => uint256))"
5164 }
5165 },
5166 "id": 11858,
5167 "indexExpression": {
5168 "argumentTypes": null,
5169 "id": 11857,
5170 "name": "_owner",
5171 "nodeType": "Identifier",
5172 "overloadedDeclarations": [],
5173 "referencedDeclaration": 11849,
5174 "src": "5595:6:38",
5175 "typeDescriptions": {
5176 "typeIdentifier": "t_address",
5177 "typeString": "address"
5178 }
5179 },
5180 "isConstant": false,
5181 "isLValue": true,
5182 "isPure": false,
5183 "lValueRequested": false,
5184 "nodeType": "IndexAccess",
5185 "src": "5587:15:38",
5186 "typeDescriptions": {
5187 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
5188 "typeString": "mapping(address => uint256)"
5189 }
5190 },
5191 "id": 11860,
5192 "indexExpression": {
5193 "argumentTypes": null,
5194 "id": 11859,
5195 "name": "_spender",
5196 "nodeType": "Identifier",
5197 "overloadedDeclarations": [],
5198 "referencedDeclaration": 11851,
5199 "src": "5603:8:38",
5200 "typeDescriptions": {
5201 "typeIdentifier": "t_address",
5202 "typeString": "address"
5203 }
5204 },
5205 "isConstant": false,
5206 "isLValue": true,
5207 "isPure": false,
5208 "lValueRequested": false,
5209 "nodeType": "IndexAccess",
5210 "src": "5587:25:38",
5211 "typeDescriptions": {
5212 "typeIdentifier": "t_uint256",
5213 "typeString": "uint256"
5214 }
5215 },
5216 "functionReturnParameters": 11855,
5217 "id": 11861,
5218 "nodeType": "Return",
5219 "src": "5580:32:38"
5220 }
5221 ]
5222 },
5223 "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.",
5224 "id": 11863,
5225 "implemented": true,
5226 "isConstructor": false,
5227 "isDeclaredConst": true,
5228 "modifiers": [],
5229 "name": "allowance",
5230 "nodeType": "FunctionDefinition",
5231 "parameters": {
5232 "id": 11852,
5233 "nodeType": "ParameterList",
5234 "parameters": [
5235 {
5236 "constant": false,
5237 "id": 11849,
5238 "name": "_owner",
5239 "nodeType": "VariableDeclaration",
5240 "scope": 11863,
5241 "src": "5492:14:38",
5242 "stateVariable": false,
5243 "storageLocation": "default",
5244 "typeDescriptions": {
5245 "typeIdentifier": "t_address",
5246 "typeString": "address"
5247 },
5248 "typeName": {
5249 "id": 11848,
5250 "name": "address",
5251 "nodeType": "ElementaryTypeName",
5252 "src": "5492:7:38",
5253 "typeDescriptions": {
5254 "typeIdentifier": "t_address",
5255 "typeString": "address"
5256 }
5257 },
5258 "value": null,
5259 "visibility": "internal"
5260 },
5261 {
5262 "constant": false,
5263 "id": 11851,
5264 "name": "_spender",
5265 "nodeType": "VariableDeclaration",
5266 "scope": 11863,
5267 "src": "5508:16:38",
5268 "stateVariable": false,
5269 "storageLocation": "default",
5270 "typeDescriptions": {
5271 "typeIdentifier": "t_address",
5272 "typeString": "address"
5273 },
5274 "typeName": {
5275 "id": 11850,
5276 "name": "address",
5277 "nodeType": "ElementaryTypeName",
5278 "src": "5508:7:38",
5279 "typeDescriptions": {
5280 "typeIdentifier": "t_address",
5281 "typeString": "address"
5282 }
5283 },
5284 "value": null,
5285 "visibility": "internal"
5286 }
5287 ],
5288 "src": "5491:34:38"
5289 },
5290 "payable": false,
5291 "returnParameters": {
5292 "id": 11855,
5293 "nodeType": "ParameterList",
5294 "parameters": [
5295 {
5296 "constant": false,
5297 "id": 11854,
5298 "name": "remaining",
5299 "nodeType": "VariableDeclaration",
5300 "scope": 11863,
5301 "src": "5551:17:38",
5302 "stateVariable": false,
5303 "storageLocation": "default",
5304 "typeDescriptions": {
5305 "typeIdentifier": "t_uint256",
5306 "typeString": "uint256"
5307 },
5308 "typeName": {
5309 "id": 11853,
5310 "name": "uint256",
5311 "nodeType": "ElementaryTypeName",
5312 "src": "5551:7:38",
5313 "typeDescriptions": {
5314 "typeIdentifier": "t_uint256",
5315 "typeString": "uint256"
5316 }
5317 },
5318 "value": null,
5319 "visibility": "internal"
5320 }
5321 ],
5322 "src": "5550:19:38"
5323 },
5324 "scope": 11965,
5325 "src": "5473:146:38",
5326 "stateMutability": "view",
5327 "superFunction": 11582,
5328 "visibility": "public"
5329 },
5330 {
5331 "body": {
5332 "id": 11903,
5333 "nodeType": "Block",
5334 "src": "5973:192:38",
5335 "statements": [
5336 {
5337 "expression": {
5338 "argumentTypes": null,
5339 "id": 11887,
5340 "isConstant": false,
5341 "isLValue": false,
5342 "isPure": false,
5343 "lValueRequested": false,
5344 "leftHandSide": {
5345 "argumentTypes": null,
5346 "baseExpression": {
5347 "argumentTypes": null,
5348 "baseExpression": {
5349 "argumentTypes": null,
5350 "id": 11872,
5351 "name": "allowed",
5352 "nodeType": "Identifier",
5353 "overloadedDeclarations": [],
5354 "referencedDeclaration": 11748,
5355 "src": "5983:7:38",
5356 "typeDescriptions": {
5357 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
5358 "typeString": "mapping(address => mapping(address => uint256))"
5359 }
5360 },
5361 "id": 11876,
5362 "indexExpression": {
5363 "argumentTypes": null,
5364 "expression": {
5365 "argumentTypes": null,
5366 "id": 11873,
5367 "name": "msg",
5368 "nodeType": "Identifier",
5369 "overloadedDeclarations": [],
5370 "referencedDeclaration": 12092,
5371 "src": "5991:3:38",
5372 "typeDescriptions": {
5373 "typeIdentifier": "t_magic_message",
5374 "typeString": "msg"
5375 }
5376 },
5377 "id": 11874,
5378 "isConstant": false,
5379 "isLValue": false,
5380 "isPure": false,
5381 "lValueRequested": false,
5382 "memberName": "sender",
5383 "nodeType": "MemberAccess",
5384 "referencedDeclaration": null,
5385 "src": "5991:10:38",
5386 "typeDescriptions": {
5387 "typeIdentifier": "t_address",
5388 "typeString": "address"
5389 }
5390 },
5391 "isConstant": false,
5392 "isLValue": true,
5393 "isPure": false,
5394 "lValueRequested": false,
5395 "nodeType": "IndexAccess",
5396 "src": "5983:19:38",
5397 "typeDescriptions": {
5398 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
5399 "typeString": "mapping(address => uint256)"
5400 }
5401 },
5402 "id": 11877,
5403 "indexExpression": {
5404 "argumentTypes": null,
5405 "id": 11875,
5406 "name": "_spender",
5407 "nodeType": "Identifier",
5408 "overloadedDeclarations": [],
5409 "referencedDeclaration": 11865,
5410 "src": "6003:8:38",
5411 "typeDescriptions": {
5412 "typeIdentifier": "t_address",
5413 "typeString": "address"
5414 }
5415 },
5416 "isConstant": false,
5417 "isLValue": true,
5418 "isPure": false,
5419 "lValueRequested": true,
5420 "nodeType": "IndexAccess",
5421 "src": "5983:29:38",
5422 "typeDescriptions": {
5423 "typeIdentifier": "t_uint256",
5424 "typeString": "uint256"
5425 }
5426 },
5427 "nodeType": "Assignment",
5428 "operator": "=",
5429 "rightHandSide": {
5430 "argumentTypes": null,
5431 "arguments": [
5432 {
5433 "argumentTypes": null,
5434 "id": 11885,
5435 "name": "_addedValue",
5436 "nodeType": "Identifier",
5437 "overloadedDeclarations": [],
5438 "referencedDeclaration": 11867,
5439 "src": "6049:11:38",
5440 "typeDescriptions": {
5441 "typeIdentifier": "t_uint256",
5442 "typeString": "uint256"
5443 }
5444 }
5445 ],
5446 "expression": {
5447 "argumentTypes": [
5448 {
5449 "typeIdentifier": "t_uint256",
5450 "typeString": "uint256"
5451 }
5452 ],
5453 "expression": {
5454 "argumentTypes": null,
5455 "baseExpression": {
5456 "argumentTypes": null,
5457 "baseExpression": {
5458 "argumentTypes": null,
5459 "id": 11878,
5460 "name": "allowed",
5461 "nodeType": "Identifier",
5462 "overloadedDeclarations": [],
5463 "referencedDeclaration": 11748,
5464 "src": "6015:7:38",
5465 "typeDescriptions": {
5466 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
5467 "typeString": "mapping(address => mapping(address => uint256))"
5468 }
5469 },
5470 "id": 11881,
5471 "indexExpression": {
5472 "argumentTypes": null,
5473 "expression": {
5474 "argumentTypes": null,
5475 "id": 11879,
5476 "name": "msg",
5477 "nodeType": "Identifier",
5478 "overloadedDeclarations": [],
5479 "referencedDeclaration": 12092,
5480 "src": "6023:3:38",
5481 "typeDescriptions": {
5482 "typeIdentifier": "t_magic_message",
5483 "typeString": "msg"
5484 }
5485 },
5486 "id": 11880,
5487 "isConstant": false,
5488 "isLValue": false,
5489 "isPure": false,
5490 "lValueRequested": false,
5491 "memberName": "sender",
5492 "nodeType": "MemberAccess",
5493 "referencedDeclaration": null,
5494 "src": "6023:10:38",
5495 "typeDescriptions": {
5496 "typeIdentifier": "t_address",
5497 "typeString": "address"
5498 }
5499 },
5500 "isConstant": false,
5501 "isLValue": true,
5502 "isPure": false,
5503 "lValueRequested": false,
5504 "nodeType": "IndexAccess",
5505 "src": "6015:19:38",
5506 "typeDescriptions": {
5507 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
5508 "typeString": "mapping(address => uint256)"
5509 }
5510 },
5511 "id": 11883,
5512 "indexExpression": {
5513 "argumentTypes": null,
5514 "id": 11882,
5515 "name": "_spender",
5516 "nodeType": "Identifier",
5517 "overloadedDeclarations": [],
5518 "referencedDeclaration": 11865,
5519 "src": "6035:8:38",
5520 "typeDescriptions": {
5521 "typeIdentifier": "t_address",
5522 "typeString": "address"
5523 }
5524 },
5525 "isConstant": false,
5526 "isLValue": true,
5527 "isPure": false,
5528 "lValueRequested": false,
5529 "nodeType": "IndexAccess",
5530 "src": "6015:29:38",
5531 "typeDescriptions": {
5532 "typeIdentifier": "t_uint256",
5533 "typeString": "uint256"
5534 }
5535 },
5536 "id": 11884,
5537 "isConstant": false,
5538 "isLValue": false,
5539 "isPure": false,
5540 "lValueRequested": false,
5541 "memberName": "add",
5542 "nodeType": "MemberAccess",
5543 "referencedDeclaration": 11543,
5544 "src": "6015:33:38",
5545 "typeDescriptions": {
5546 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
5547 "typeString": "function (uint256,uint256) pure returns (uint256)"
5548 }
5549 },
5550 "id": 11886,
5551 "isConstant": false,
5552 "isLValue": false,
5553 "isPure": false,
5554 "kind": "functionCall",
5555 "lValueRequested": false,
5556 "names": [],
5557 "nodeType": "FunctionCall",
5558 "src": "6015:46:38",
5559 "typeDescriptions": {
5560 "typeIdentifier": "t_uint256",
5561 "typeString": "uint256"
5562 }
5563 },
5564 "src": "5983:78:38",
5565 "typeDescriptions": {
5566 "typeIdentifier": "t_uint256",
5567 "typeString": "uint256"
5568 }
5569 },
5570 "id": 11888,
5571 "nodeType": "ExpressionStatement",
5572 "src": "5983:78:38"
5573 },
5574 {
5575 "eventCall": {
5576 "argumentTypes": null,
5577 "arguments": [
5578 {
5579 "argumentTypes": null,
5580 "expression": {
5581 "argumentTypes": null,
5582 "id": 11890,
5583 "name": "msg",
5584 "nodeType": "Identifier",
5585 "overloadedDeclarations": [],
5586 "referencedDeclaration": 12092,
5587 "src": "6085:3:38",
5588 "typeDescriptions": {
5589 "typeIdentifier": "t_magic_message",
5590 "typeString": "msg"
5591 }
5592 },
5593 "id": 11891,
5594 "isConstant": false,
5595 "isLValue": false,
5596 "isPure": false,
5597 "lValueRequested": false,
5598 "memberName": "sender",
5599 "nodeType": "MemberAccess",
5600 "referencedDeclaration": null,
5601 "src": "6085:10:38",
5602 "typeDescriptions": {
5603 "typeIdentifier": "t_address",
5604 "typeString": "address"
5605 }
5606 },
5607 {
5608 "argumentTypes": null,
5609 "id": 11892,
5610 "name": "_spender",
5611 "nodeType": "Identifier",
5612 "overloadedDeclarations": [],
5613 "referencedDeclaration": 11865,
5614 "src": "6097:8:38",
5615 "typeDescriptions": {
5616 "typeIdentifier": "t_address",
5617 "typeString": "address"
5618 }
5619 },
5620 {
5621 "argumentTypes": null,
5622 "baseExpression": {
5623 "argumentTypes": null,
5624 "baseExpression": {
5625 "argumentTypes": null,
5626 "id": 11893,
5627 "name": "allowed",
5628 "nodeType": "Identifier",
5629 "overloadedDeclarations": [],
5630 "referencedDeclaration": 11748,
5631 "src": "6107:7:38",
5632 "typeDescriptions": {
5633 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
5634 "typeString": "mapping(address => mapping(address => uint256))"
5635 }
5636 },
5637 "id": 11896,
5638 "indexExpression": {
5639 "argumentTypes": null,
5640 "expression": {
5641 "argumentTypes": null,
5642 "id": 11894,
5643 "name": "msg",
5644 "nodeType": "Identifier",
5645 "overloadedDeclarations": [],
5646 "referencedDeclaration": 12092,
5647 "src": "6115:3:38",
5648 "typeDescriptions": {
5649 "typeIdentifier": "t_magic_message",
5650 "typeString": "msg"
5651 }
5652 },
5653 "id": 11895,
5654 "isConstant": false,
5655 "isLValue": false,
5656 "isPure": false,
5657 "lValueRequested": false,
5658 "memberName": "sender",
5659 "nodeType": "MemberAccess",
5660 "referencedDeclaration": null,
5661 "src": "6115:10:38",
5662 "typeDescriptions": {
5663 "typeIdentifier": "t_address",
5664 "typeString": "address"
5665 }
5666 },
5667 "isConstant": false,
5668 "isLValue": true,
5669 "isPure": false,
5670 "lValueRequested": false,
5671 "nodeType": "IndexAccess",
5672 "src": "6107:19:38",
5673 "typeDescriptions": {
5674 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
5675 "typeString": "mapping(address => uint256)"
5676 }
5677 },
5678 "id": 11898,
5679 "indexExpression": {
5680 "argumentTypes": null,
5681 "id": 11897,
5682 "name": "_spender",
5683 "nodeType": "Identifier",
5684 "overloadedDeclarations": [],
5685 "referencedDeclaration": 11865,
5686 "src": "6127:8:38",
5687 "typeDescriptions": {
5688 "typeIdentifier": "t_address",
5689 "typeString": "address"
5690 }
5691 },
5692 "isConstant": false,
5693 "isLValue": true,
5694 "isPure": false,
5695 "lValueRequested": false,
5696 "nodeType": "IndexAccess",
5697 "src": "6107:29:38",
5698 "typeDescriptions": {
5699 "typeIdentifier": "t_uint256",
5700 "typeString": "uint256"
5701 }
5702 }
5703 ],
5704 "expression": {
5705 "argumentTypes": [
5706 {
5707 "typeIdentifier": "t_address",
5708 "typeString": "address"
5709 },
5710 {
5711 "typeIdentifier": "t_address",
5712 "typeString": "address"
5713 },
5714 {
5715 "typeIdentifier": "t_uint256",
5716 "typeString": "uint256"
5717 }
5718 ],
5719 "id": 11889,
5720 "name": "Approval",
5721 "nodeType": "Identifier",
5722 "overloadedDeclarations": [],
5723 "referencedDeclaration": 11610,
5724 "src": "6076:8:38",
5725 "typeDescriptions": {
5726 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
5727 "typeString": "function (address,address,uint256)"
5728 }
5729 },
5730 "id": 11899,
5731 "isConstant": false,
5732 "isLValue": false,
5733 "isPure": false,
5734 "kind": "functionCall",
5735 "lValueRequested": false,
5736 "names": [],
5737 "nodeType": "FunctionCall",
5738 "src": "6076:61:38",
5739 "typeDescriptions": {
5740 "typeIdentifier": "t_tuple$__$",
5741 "typeString": "tuple()"
5742 }
5743 },
5744 "id": 11900,
5745 "nodeType": "EmitStatement",
5746 "src": "6071:66:38"
5747 },
5748 {
5749 "expression": {
5750 "argumentTypes": null,
5751 "hexValue": "74727565",
5752 "id": 11901,
5753 "isConstant": false,
5754 "isLValue": false,
5755 "isPure": true,
5756 "kind": "bool",
5757 "lValueRequested": false,
5758 "nodeType": "Literal",
5759 "src": "6154:4:38",
5760 "subdenomination": null,
5761 "typeDescriptions": {
5762 "typeIdentifier": "t_bool",
5763 "typeString": "bool"
5764 },
5765 "value": "true"
5766 },
5767 "functionReturnParameters": 11871,
5768 "id": 11902,
5769 "nodeType": "Return",
5770 "src": "6147:11:38"
5771 }
5772 ]
5773 },
5774 "documentation": "approve should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol",
5775 "id": 11904,
5776 "implemented": true,
5777 "isConstructor": false,
5778 "isDeclaredConst": false,
5779 "modifiers": [],
5780 "name": "increaseApproval",
5781 "nodeType": "FunctionDefinition",
5782 "parameters": {
5783 "id": 11868,
5784 "nodeType": "ParameterList",
5785 "parameters": [
5786 {
5787 "constant": false,
5788 "id": 11865,
5789 "name": "_spender",
5790 "nodeType": "VariableDeclaration",
5791 "scope": 11904,
5792 "src": "5899:16:38",
5793 "stateVariable": false,
5794 "storageLocation": "default",
5795 "typeDescriptions": {
5796 "typeIdentifier": "t_address",
5797 "typeString": "address"
5798 },
5799 "typeName": {
5800 "id": 11864,
5801 "name": "address",
5802 "nodeType": "ElementaryTypeName",
5803 "src": "5899:7:38",
5804 "typeDescriptions": {
5805 "typeIdentifier": "t_address",
5806 "typeString": "address"
5807 }
5808 },
5809 "value": null,
5810 "visibility": "internal"
5811 },
5812 {
5813 "constant": false,
5814 "id": 11867,
5815 "name": "_addedValue",
5816 "nodeType": "VariableDeclaration",
5817 "scope": 11904,
5818 "src": "5917:16:38",
5819 "stateVariable": false,
5820 "storageLocation": "default",
5821 "typeDescriptions": {
5822 "typeIdentifier": "t_uint256",
5823 "typeString": "uint256"
5824 },
5825 "typeName": {
5826 "id": 11866,
5827 "name": "uint",
5828 "nodeType": "ElementaryTypeName",
5829 "src": "5917:4:38",
5830 "typeDescriptions": {
5831 "typeIdentifier": "t_uint256",
5832 "typeString": "uint256"
5833 }
5834 },
5835 "value": null,
5836 "visibility": "internal"
5837 }
5838 ],
5839 "src": "5898:36:38"
5840 },
5841 "payable": false,
5842 "returnParameters": {
5843 "id": 11871,
5844 "nodeType": "ParameterList",
5845 "parameters": [
5846 {
5847 "constant": false,
5848 "id": 11870,
5849 "name": "success",
5850 "nodeType": "VariableDeclaration",
5851 "scope": 11904,
5852 "src": "5959:12:38",
5853 "stateVariable": false,
5854 "storageLocation": "default",
5855 "typeDescriptions": {
5856 "typeIdentifier": "t_bool",
5857 "typeString": "bool"
5858 },
5859 "typeName": {
5860 "id": 11869,
5861 "name": "bool",
5862 "nodeType": "ElementaryTypeName",
5863 "src": "5959:4:38",
5864 "typeDescriptions": {
5865 "typeIdentifier": "t_bool",
5866 "typeString": "bool"
5867 }
5868 },
5869 "value": null,
5870 "visibility": "internal"
5871 }
5872 ],
5873 "src": "5958:14:38"
5874 },
5875 "scope": 11965,
5876 "src": "5872:293:38",
5877 "stateMutability": "nonpayable",
5878 "superFunction": null,
5879 "visibility": "public"
5880 },
5881 {
5882 "body": {
5883 "id": 11963,
5884 "nodeType": "Block",
5885 "src": "6276:352:38",
5886 "statements": [
5887 {
5888 "assignments": [
5889 11914
5890 ],
5891 "declarations": [
5892 {
5893 "constant": false,
5894 "id": 11914,
5895 "name": "oldValue",
5896 "nodeType": "VariableDeclaration",
5897 "scope": 11964,
5898 "src": "6286:13:38",
5899 "stateVariable": false,
5900 "storageLocation": "default",
5901 "typeDescriptions": {
5902 "typeIdentifier": "t_uint256",
5903 "typeString": "uint256"
5904 },
5905 "typeName": {
5906 "id": 11913,
5907 "name": "uint",
5908 "nodeType": "ElementaryTypeName",
5909 "src": "6286:4:38",
5910 "typeDescriptions": {
5911 "typeIdentifier": "t_uint256",
5912 "typeString": "uint256"
5913 }
5914 },
5915 "value": null,
5916 "visibility": "internal"
5917 }
5918 ],
5919 "id": 11921,
5920 "initialValue": {
5921 "argumentTypes": null,
5922 "baseExpression": {
5923 "argumentTypes": null,
5924 "baseExpression": {
5925 "argumentTypes": null,
5926 "id": 11915,
5927 "name": "allowed",
5928 "nodeType": "Identifier",
5929 "overloadedDeclarations": [],
5930 "referencedDeclaration": 11748,
5931 "src": "6302:7:38",
5932 "typeDescriptions": {
5933 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
5934 "typeString": "mapping(address => mapping(address => uint256))"
5935 }
5936 },
5937 "id": 11918,
5938 "indexExpression": {
5939 "argumentTypes": null,
5940 "expression": {
5941 "argumentTypes": null,
5942 "id": 11916,
5943 "name": "msg",
5944 "nodeType": "Identifier",
5945 "overloadedDeclarations": [],
5946 "referencedDeclaration": 12092,
5947 "src": "6310:3:38",
5948 "typeDescriptions": {
5949 "typeIdentifier": "t_magic_message",
5950 "typeString": "msg"
5951 }
5952 },
5953 "id": 11917,
5954 "isConstant": false,
5955 "isLValue": false,
5956 "isPure": false,
5957 "lValueRequested": false,
5958 "memberName": "sender",
5959 "nodeType": "MemberAccess",
5960 "referencedDeclaration": null,
5961 "src": "6310:10:38",
5962 "typeDescriptions": {
5963 "typeIdentifier": "t_address",
5964 "typeString": "address"
5965 }
5966 },
5967 "isConstant": false,
5968 "isLValue": true,
5969 "isPure": false,
5970 "lValueRequested": false,
5971 "nodeType": "IndexAccess",
5972 "src": "6302:19:38",
5973 "typeDescriptions": {
5974 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
5975 "typeString": "mapping(address => uint256)"
5976 }
5977 },
5978 "id": 11920,
5979 "indexExpression": {
5980 "argumentTypes": null,
5981 "id": 11919,
5982 "name": "_spender",
5983 "nodeType": "Identifier",
5984 "overloadedDeclarations": [],
5985 "referencedDeclaration": 11906,
5986 "src": "6322:8:38",
5987 "typeDescriptions": {
5988 "typeIdentifier": "t_address",
5989 "typeString": "address"
5990 }
5991 },
5992 "isConstant": false,
5993 "isLValue": true,
5994 "isPure": false,
5995 "lValueRequested": false,
5996 "nodeType": "IndexAccess",
5997 "src": "6302:29:38",
5998 "typeDescriptions": {
5999 "typeIdentifier": "t_uint256",
6000 "typeString": "uint256"
6001 }
6002 },
6003 "nodeType": "VariableDeclarationStatement",
6004 "src": "6286:45:38"
6005 },
6006 {
6007 "condition": {
6008 "argumentTypes": null,
6009 "commonType": {
6010 "typeIdentifier": "t_uint256",
6011 "typeString": "uint256"
6012 },
6013 "id": 11924,
6014 "isConstant": false,
6015 "isLValue": false,
6016 "isPure": false,
6017 "lValueRequested": false,
6018 "leftExpression": {
6019 "argumentTypes": null,
6020 "id": 11922,
6021 "name": "_subtractedValue",
6022 "nodeType": "Identifier",
6023 "overloadedDeclarations": [],
6024 "referencedDeclaration": 11908,
6025 "src": "6345:16:38",
6026 "typeDescriptions": {
6027 "typeIdentifier": "t_uint256",
6028 "typeString": "uint256"
6029 }
6030 },
6031 "nodeType": "BinaryOperation",
6032 "operator": ">",
6033 "rightExpression": {
6034 "argumentTypes": null,
6035 "id": 11923,
6036 "name": "oldValue",
6037 "nodeType": "Identifier",
6038 "overloadedDeclarations": [],
6039 "referencedDeclaration": 11914,
6040 "src": "6364:8:38",
6041 "typeDescriptions": {
6042 "typeIdentifier": "t_uint256",
6043 "typeString": "uint256"
6044 }
6045 },
6046 "src": "6345:27:38",
6047 "typeDescriptions": {
6048 "typeIdentifier": "t_bool",
6049 "typeString": "bool"
6050 }
6051 },
6052 "falseBody": {
6053 "id": 11947,
6054 "nodeType": "Block",
6055 "src": "6438:87:38",
6056 "statements": [
6057 {
6058 "expression": {
6059 "argumentTypes": null,
6060 "id": 11945,
6061 "isConstant": false,
6062 "isLValue": false,
6063 "isPure": false,
6064 "lValueRequested": false,
6065 "leftHandSide": {
6066 "argumentTypes": null,
6067 "baseExpression": {
6068 "argumentTypes": null,
6069 "baseExpression": {
6070 "argumentTypes": null,
6071 "id": 11935,
6072 "name": "allowed",
6073 "nodeType": "Identifier",
6074 "overloadedDeclarations": [],
6075 "referencedDeclaration": 11748,
6076 "src": "6452:7:38",
6077 "typeDescriptions": {
6078 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
6079 "typeString": "mapping(address => mapping(address => uint256))"
6080 }
6081 },
6082 "id": 11939,
6083 "indexExpression": {
6084 "argumentTypes": null,
6085 "expression": {
6086 "argumentTypes": null,
6087 "id": 11936,
6088 "name": "msg",
6089 "nodeType": "Identifier",
6090 "overloadedDeclarations": [],
6091 "referencedDeclaration": 12092,
6092 "src": "6460:3:38",
6093 "typeDescriptions": {
6094 "typeIdentifier": "t_magic_message",
6095 "typeString": "msg"
6096 }
6097 },
6098 "id": 11937,
6099 "isConstant": false,
6100 "isLValue": false,
6101 "isPure": false,
6102 "lValueRequested": false,
6103 "memberName": "sender",
6104 "nodeType": "MemberAccess",
6105 "referencedDeclaration": null,
6106 "src": "6460:10:38",
6107 "typeDescriptions": {
6108 "typeIdentifier": "t_address",
6109 "typeString": "address"
6110 }
6111 },
6112 "isConstant": false,
6113 "isLValue": true,
6114 "isPure": false,
6115 "lValueRequested": false,
6116 "nodeType": "IndexAccess",
6117 "src": "6452:19:38",
6118 "typeDescriptions": {
6119 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6120 "typeString": "mapping(address => uint256)"
6121 }
6122 },
6123 "id": 11940,
6124 "indexExpression": {
6125 "argumentTypes": null,
6126 "id": 11938,
6127 "name": "_spender",
6128 "nodeType": "Identifier",
6129 "overloadedDeclarations": [],
6130 "referencedDeclaration": 11906,
6131 "src": "6472:8:38",
6132 "typeDescriptions": {
6133 "typeIdentifier": "t_address",
6134 "typeString": "address"
6135 }
6136 },
6137 "isConstant": false,
6138 "isLValue": true,
6139 "isPure": false,
6140 "lValueRequested": true,
6141 "nodeType": "IndexAccess",
6142 "src": "6452:29:38",
6143 "typeDescriptions": {
6144 "typeIdentifier": "t_uint256",
6145 "typeString": "uint256"
6146 }
6147 },
6148 "nodeType": "Assignment",
6149 "operator": "=",
6150 "rightHandSide": {
6151 "argumentTypes": null,
6152 "arguments": [
6153 {
6154 "argumentTypes": null,
6155 "id": 11943,
6156 "name": "_subtractedValue",
6157 "nodeType": "Identifier",
6158 "overloadedDeclarations": [],
6159 "referencedDeclaration": 11908,
6160 "src": "6497:16:38",
6161 "typeDescriptions": {
6162 "typeIdentifier": "t_uint256",
6163 "typeString": "uint256"
6164 }
6165 }
6166 ],
6167 "expression": {
6168 "argumentTypes": [
6169 {
6170 "typeIdentifier": "t_uint256",
6171 "typeString": "uint256"
6172 }
6173 ],
6174 "expression": {
6175 "argumentTypes": null,
6176 "id": 11941,
6177 "name": "oldValue",
6178 "nodeType": "Identifier",
6179 "overloadedDeclarations": [],
6180 "referencedDeclaration": 11914,
6181 "src": "6484:8:38",
6182 "typeDescriptions": {
6183 "typeIdentifier": "t_uint256",
6184 "typeString": "uint256"
6185 }
6186 },
6187 "id": 11942,
6188 "isConstant": false,
6189 "isLValue": false,
6190 "isPure": false,
6191 "lValueRequested": false,
6192 "memberName": "sub",
6193 "nodeType": "MemberAccess",
6194 "referencedDeclaration": 11519,
6195 "src": "6484:12:38",
6196 "typeDescriptions": {
6197 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
6198 "typeString": "function (uint256,uint256) pure returns (uint256)"
6199 }
6200 },
6201 "id": 11944,
6202 "isConstant": false,
6203 "isLValue": false,
6204 "isPure": false,
6205 "kind": "functionCall",
6206 "lValueRequested": false,
6207 "names": [],
6208 "nodeType": "FunctionCall",
6209 "src": "6484:30:38",
6210 "typeDescriptions": {
6211 "typeIdentifier": "t_uint256",
6212 "typeString": "uint256"
6213 }
6214 },
6215 "src": "6452:62:38",
6216 "typeDescriptions": {
6217 "typeIdentifier": "t_uint256",
6218 "typeString": "uint256"
6219 }
6220 },
6221 "id": 11946,
6222 "nodeType": "ExpressionStatement",
6223 "src": "6452:62:38"
6224 }
6225 ]
6226 },
6227 "id": 11948,
6228 "nodeType": "IfStatement",
6229 "src": "6341:184:38",
6230 "trueBody": {
6231 "id": 11934,
6232 "nodeType": "Block",
6233 "src": "6374:58:38",
6234 "statements": [
6235 {
6236 "expression": {
6237 "argumentTypes": null,
6238 "id": 11932,
6239 "isConstant": false,
6240 "isLValue": false,
6241 "isPure": false,
6242 "lValueRequested": false,
6243 "leftHandSide": {
6244 "argumentTypes": null,
6245 "baseExpression": {
6246 "argumentTypes": null,
6247 "baseExpression": {
6248 "argumentTypes": null,
6249 "id": 11925,
6250 "name": "allowed",
6251 "nodeType": "Identifier",
6252 "overloadedDeclarations": [],
6253 "referencedDeclaration": 11748,
6254 "src": "6388:7:38",
6255 "typeDescriptions": {
6256 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
6257 "typeString": "mapping(address => mapping(address => uint256))"
6258 }
6259 },
6260 "id": 11929,
6261 "indexExpression": {
6262 "argumentTypes": null,
6263 "expression": {
6264 "argumentTypes": null,
6265 "id": 11926,
6266 "name": "msg",
6267 "nodeType": "Identifier",
6268 "overloadedDeclarations": [],
6269 "referencedDeclaration": 12092,
6270 "src": "6396:3:38",
6271 "typeDescriptions": {
6272 "typeIdentifier": "t_magic_message",
6273 "typeString": "msg"
6274 }
6275 },
6276 "id": 11927,
6277 "isConstant": false,
6278 "isLValue": false,
6279 "isPure": false,
6280 "lValueRequested": false,
6281 "memberName": "sender",
6282 "nodeType": "MemberAccess",
6283 "referencedDeclaration": null,
6284 "src": "6396:10:38",
6285 "typeDescriptions": {
6286 "typeIdentifier": "t_address",
6287 "typeString": "address"
6288 }
6289 },
6290 "isConstant": false,
6291 "isLValue": true,
6292 "isPure": false,
6293 "lValueRequested": false,
6294 "nodeType": "IndexAccess",
6295 "src": "6388:19:38",
6296 "typeDescriptions": {
6297 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6298 "typeString": "mapping(address => uint256)"
6299 }
6300 },
6301 "id": 11930,
6302 "indexExpression": {
6303 "argumentTypes": null,
6304 "id": 11928,
6305 "name": "_spender",
6306 "nodeType": "Identifier",
6307 "overloadedDeclarations": [],
6308 "referencedDeclaration": 11906,
6309 "src": "6408:8:38",
6310 "typeDescriptions": {
6311 "typeIdentifier": "t_address",
6312 "typeString": "address"
6313 }
6314 },
6315 "isConstant": false,
6316 "isLValue": true,
6317 "isPure": false,
6318 "lValueRequested": true,
6319 "nodeType": "IndexAccess",
6320 "src": "6388:29:38",
6321 "typeDescriptions": {
6322 "typeIdentifier": "t_uint256",
6323 "typeString": "uint256"
6324 }
6325 },
6326 "nodeType": "Assignment",
6327 "operator": "=",
6328 "rightHandSide": {
6329 "argumentTypes": null,
6330 "hexValue": "30",
6331 "id": 11931,
6332 "isConstant": false,
6333 "isLValue": false,
6334 "isPure": true,
6335 "kind": "number",
6336 "lValueRequested": false,
6337 "nodeType": "Literal",
6338 "src": "6420:1:38",
6339 "subdenomination": null,
6340 "typeDescriptions": {
6341 "typeIdentifier": "t_rational_0_by_1",
6342 "typeString": "int_const 0"
6343 },
6344 "value": "0"
6345 },
6346 "src": "6388:33:38",
6347 "typeDescriptions": {
6348 "typeIdentifier": "t_uint256",
6349 "typeString": "uint256"
6350 }
6351 },
6352 "id": 11933,
6353 "nodeType": "ExpressionStatement",
6354 "src": "6388:33:38"
6355 }
6356 ]
6357 }
6358 },
6359 {
6360 "eventCall": {
6361 "argumentTypes": null,
6362 "arguments": [
6363 {
6364 "argumentTypes": null,
6365 "expression": {
6366 "argumentTypes": null,
6367 "id": 11950,
6368 "name": "msg",
6369 "nodeType": "Identifier",
6370 "overloadedDeclarations": [],
6371 "referencedDeclaration": 12092,
6372 "src": "6548:3:38",
6373 "typeDescriptions": {
6374 "typeIdentifier": "t_magic_message",
6375 "typeString": "msg"
6376 }
6377 },
6378 "id": 11951,
6379 "isConstant": false,
6380 "isLValue": false,
6381 "isPure": false,
6382 "lValueRequested": false,
6383 "memberName": "sender",
6384 "nodeType": "MemberAccess",
6385 "referencedDeclaration": null,
6386 "src": "6548:10:38",
6387 "typeDescriptions": {
6388 "typeIdentifier": "t_address",
6389 "typeString": "address"
6390 }
6391 },
6392 {
6393 "argumentTypes": null,
6394 "id": 11952,
6395 "name": "_spender",
6396 "nodeType": "Identifier",
6397 "overloadedDeclarations": [],
6398 "referencedDeclaration": 11906,
6399 "src": "6560:8:38",
6400 "typeDescriptions": {
6401 "typeIdentifier": "t_address",
6402 "typeString": "address"
6403 }
6404 },
6405 {
6406 "argumentTypes": null,
6407 "baseExpression": {
6408 "argumentTypes": null,
6409 "baseExpression": {
6410 "argumentTypes": null,
6411 "id": 11953,
6412 "name": "allowed",
6413 "nodeType": "Identifier",
6414 "overloadedDeclarations": [],
6415 "referencedDeclaration": 11748,
6416 "src": "6570:7:38",
6417 "typeDescriptions": {
6418 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
6419 "typeString": "mapping(address => mapping(address => uint256))"
6420 }
6421 },
6422 "id": 11956,
6423 "indexExpression": {
6424 "argumentTypes": null,
6425 "expression": {
6426 "argumentTypes": null,
6427 "id": 11954,
6428 "name": "msg",
6429 "nodeType": "Identifier",
6430 "overloadedDeclarations": [],
6431 "referencedDeclaration": 12092,
6432 "src": "6578:3:38",
6433 "typeDescriptions": {
6434 "typeIdentifier": "t_magic_message",
6435 "typeString": "msg"
6436 }
6437 },
6438 "id": 11955,
6439 "isConstant": false,
6440 "isLValue": false,
6441 "isPure": false,
6442 "lValueRequested": false,
6443 "memberName": "sender",
6444 "nodeType": "MemberAccess",
6445 "referencedDeclaration": null,
6446 "src": "6578:10:38",
6447 "typeDescriptions": {
6448 "typeIdentifier": "t_address",
6449 "typeString": "address"
6450 }
6451 },
6452 "isConstant": false,
6453 "isLValue": true,
6454 "isPure": false,
6455 "lValueRequested": false,
6456 "nodeType": "IndexAccess",
6457 "src": "6570:19:38",
6458 "typeDescriptions": {
6459 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6460 "typeString": "mapping(address => uint256)"
6461 }
6462 },
6463 "id": 11958,
6464 "indexExpression": {
6465 "argumentTypes": null,
6466 "id": 11957,
6467 "name": "_spender",
6468 "nodeType": "Identifier",
6469 "overloadedDeclarations": [],
6470 "referencedDeclaration": 11906,
6471 "src": "6590:8:38",
6472 "typeDescriptions": {
6473 "typeIdentifier": "t_address",
6474 "typeString": "address"
6475 }
6476 },
6477 "isConstant": false,
6478 "isLValue": true,
6479 "isPure": false,
6480 "lValueRequested": false,
6481 "nodeType": "IndexAccess",
6482 "src": "6570:29:38",
6483 "typeDescriptions": {
6484 "typeIdentifier": "t_uint256",
6485 "typeString": "uint256"
6486 }
6487 }
6488 ],
6489 "expression": {
6490 "argumentTypes": [
6491 {
6492 "typeIdentifier": "t_address",
6493 "typeString": "address"
6494 },
6495 {
6496 "typeIdentifier": "t_address",
6497 "typeString": "address"
6498 },
6499 {
6500 "typeIdentifier": "t_uint256",
6501 "typeString": "uint256"
6502 }
6503 ],
6504 "id": 11949,
6505 "name": "Approval",
6506 "nodeType": "Identifier",
6507 "overloadedDeclarations": [],
6508 "referencedDeclaration": 11610,
6509 "src": "6539:8:38",
6510 "typeDescriptions": {
6511 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
6512 "typeString": "function (address,address,uint256)"
6513 }
6514 },
6515 "id": 11959,
6516 "isConstant": false,
6517 "isLValue": false,
6518 "isPure": false,
6519 "kind": "functionCall",
6520 "lValueRequested": false,
6521 "names": [],
6522 "nodeType": "FunctionCall",
6523 "src": "6539:61:38",
6524 "typeDescriptions": {
6525 "typeIdentifier": "t_tuple$__$",
6526 "typeString": "tuple()"
6527 }
6528 },
6529 "id": 11960,
6530 "nodeType": "EmitStatement",
6531 "src": "6534:66:38"
6532 },
6533 {
6534 "expression": {
6535 "argumentTypes": null,
6536 "hexValue": "74727565",
6537 "id": 11961,
6538 "isConstant": false,
6539 "isLValue": false,
6540 "isPure": true,
6541 "kind": "bool",
6542 "lValueRequested": false,
6543 "nodeType": "Literal",
6544 "src": "6617:4:38",
6545 "subdenomination": null,
6546 "typeDescriptions": {
6547 "typeIdentifier": "t_bool",
6548 "typeString": "bool"
6549 },
6550 "value": "true"
6551 },
6552 "functionReturnParameters": 11912,
6553 "id": 11962,
6554 "nodeType": "Return",
6555 "src": "6610:11:38"
6556 }
6557 ]
6558 },
6559 "documentation": null,
6560 "id": 11964,
6561 "implemented": true,
6562 "isConstructor": false,
6563 "isDeclaredConst": false,
6564 "modifiers": [],
6565 "name": "decreaseApproval",
6566 "nodeType": "FunctionDefinition",
6567 "parameters": {
6568 "id": 11909,
6569 "nodeType": "ParameterList",
6570 "parameters": [
6571 {
6572 "constant": false,
6573 "id": 11906,
6574 "name": "_spender",
6575 "nodeType": "VariableDeclaration",
6576 "scope": 11964,
6577 "src": "6197:16:38",
6578 "stateVariable": false,
6579 "storageLocation": "default",
6580 "typeDescriptions": {
6581 "typeIdentifier": "t_address",
6582 "typeString": "address"
6583 },
6584 "typeName": {
6585 "id": 11905,
6586 "name": "address",
6587 "nodeType": "ElementaryTypeName",
6588 "src": "6197:7:38",
6589 "typeDescriptions": {
6590 "typeIdentifier": "t_address",
6591 "typeString": "address"
6592 }
6593 },
6594 "value": null,
6595 "visibility": "internal"
6596 },
6597 {
6598 "constant": false,
6599 "id": 11908,
6600 "name": "_subtractedValue",
6601 "nodeType": "VariableDeclaration",
6602 "scope": 11964,
6603 "src": "6215:21:38",
6604 "stateVariable": false,
6605 "storageLocation": "default",
6606 "typeDescriptions": {
6607 "typeIdentifier": "t_uint256",
6608 "typeString": "uint256"
6609 },
6610 "typeName": {
6611 "id": 11907,
6612 "name": "uint",
6613 "nodeType": "ElementaryTypeName",
6614 "src": "6215:4:38",
6615 "typeDescriptions": {
6616 "typeIdentifier": "t_uint256",
6617 "typeString": "uint256"
6618 }
6619 },
6620 "value": null,
6621 "visibility": "internal"
6622 }
6623 ],
6624 "src": "6196:41:38"
6625 },
6626 "payable": false,
6627 "returnParameters": {
6628 "id": 11912,
6629 "nodeType": "ParameterList",
6630 "parameters": [
6631 {
6632 "constant": false,
6633 "id": 11911,
6634 "name": "success",
6635 "nodeType": "VariableDeclaration",
6636 "scope": 11964,
6637 "src": "6262:12:38",
6638 "stateVariable": false,
6639 "storageLocation": "default",
6640 "typeDescriptions": {
6641 "typeIdentifier": "t_bool",
6642 "typeString": "bool"
6643 },
6644 "typeName": {
6645 "id": 11910,
6646 "name": "bool",
6647 "nodeType": "ElementaryTypeName",
6648 "src": "6262:4:38",
6649 "typeDescriptions": {
6650 "typeIdentifier": "t_bool",
6651 "typeString": "bool"
6652 }
6653 },
6654 "value": null,
6655 "visibility": "internal"
6656 }
6657 ],
6658 "src": "6261:14:38"
6659 },
6660 "scope": 11965,
6661 "src": "6170:458:38",
6662 "stateMutability": "nonpayable",
6663 "superFunction": null,
6664 "visibility": "public"
6665 }
6666 ],
6667 "scope": 12078,
6668 "src": "3326:3304:38"
6669 },
6670 {
6671 "baseContracts": [
6672 {
6673 "arguments": null,
6674 "baseName": {
6675 "contractScope": null,
6676 "id": 11966,
6677 "name": "StandardToken",
6678 "nodeType": "UserDefinedTypeName",
6679 "referencedDeclaration": 11965,
6680 "src": "6658:13:38",
6681 "typeDescriptions": {
6682 "typeIdentifier": "t_contract$_StandardToken_$11965",
6683 "typeString": "contract StandardToken"
6684 }
6685 },
6686 "id": 11967,
6687 "nodeType": "InheritanceSpecifier",
6688 "src": "6658:13:38"
6689 },
6690 {
6691 "arguments": null,
6692 "baseName": {
6693 "contractScope": null,
6694 "id": 11968,
6695 "name": "Ownable",
6696 "nodeType": "UserDefinedTypeName",
6697 "referencedDeclaration": 11738,
6698 "src": "6673:7:38",
6699 "typeDescriptions": {
6700 "typeIdentifier": "t_contract$_Ownable_$11738",
6701 "typeString": "contract Ownable"
6702 }
6703 },
6704 "id": 11969,
6705 "nodeType": "InheritanceSpecifier",
6706 "src": "6673:7:38"
6707 }
6708 ],
6709 "contractDependencies": [
6710 11571,
6711 11611,
6712 11684,
6713 11738,
6714 11965
6715 ],
6716 "contractKind": "contract",
6717 "documentation": null,
6718 "fullyImplemented": true,
6719 "id": 12052,
6720 "linearizedBaseContracts": [
6721 12052,
6722 11738,
6723 11965,
6724 11684,
6725 11611,
6726 11571
6727 ],
6728 "name": "MintableToken",
6729 "nodeType": "ContractDefinition",
6730 "nodes": [
6731 {
6732 "anonymous": false,
6733 "documentation": null,
6734 "id": 11975,
6735 "name": "Mint",
6736 "nodeType": "EventDefinition",
6737 "parameters": {
6738 "id": 11974,
6739 "nodeType": "ParameterList",
6740 "parameters": [
6741 {
6742 "constant": false,
6743 "id": 11971,
6744 "indexed": true,
6745 "name": "to",
6746 "nodeType": "VariableDeclaration",
6747 "scope": 11975,
6748 "src": "6698:18:38",
6749 "stateVariable": false,
6750 "storageLocation": "default",
6751 "typeDescriptions": {
6752 "typeIdentifier": "t_address",
6753 "typeString": "address"
6754 },
6755 "typeName": {
6756 "id": 11970,
6757 "name": "address",
6758 "nodeType": "ElementaryTypeName",
6759 "src": "6698:7:38",
6760 "typeDescriptions": {
6761 "typeIdentifier": "t_address",
6762 "typeString": "address"
6763 }
6764 },
6765 "value": null,
6766 "visibility": "internal"
6767 },
6768 {
6769 "constant": false,
6770 "id": 11973,
6771 "indexed": false,
6772 "name": "amount",
6773 "nodeType": "VariableDeclaration",
6774 "scope": 11975,
6775 "src": "6718:14:38",
6776 "stateVariable": false,
6777 "storageLocation": "default",
6778 "typeDescriptions": {
6779 "typeIdentifier": "t_uint256",
6780 "typeString": "uint256"
6781 },
6782 "typeName": {
6783 "id": 11972,
6784 "name": "uint256",
6785 "nodeType": "ElementaryTypeName",
6786 "src": "6718:7:38",
6787 "typeDescriptions": {
6788 "typeIdentifier": "t_uint256",
6789 "typeString": "uint256"
6790 }
6791 },
6792 "value": null,
6793 "visibility": "internal"
6794 }
6795 ],
6796 "src": "6697:36:38"
6797 },
6798 "src": "6687:47:38"
6799 },
6800 {
6801 "anonymous": false,
6802 "documentation": null,
6803 "id": 11977,
6804 "name": "MintFinished",
6805 "nodeType": "EventDefinition",
6806 "parameters": {
6807 "id": 11976,
6808 "nodeType": "ParameterList",
6809 "parameters": [],
6810 "src": "6757:2:38"
6811 },
6812 "src": "6739:21:38"
6813 },
6814 {
6815 "constant": false,
6816 "id": 11980,
6817 "name": "mintingFinished",
6818 "nodeType": "VariableDeclaration",
6819 "scope": 12052,
6820 "src": "6765:35:38",
6821 "stateVariable": true,
6822 "storageLocation": "default",
6823 "typeDescriptions": {
6824 "typeIdentifier": "t_bool",
6825 "typeString": "bool"
6826 },
6827 "typeName": {
6828 "id": 11978,
6829 "name": "bool",
6830 "nodeType": "ElementaryTypeName",
6831 "src": "6765:4:38",
6832 "typeDescriptions": {
6833 "typeIdentifier": "t_bool",
6834 "typeString": "bool"
6835 }
6836 },
6837 "value": {
6838 "argumentTypes": null,
6839 "hexValue": "66616c7365",
6840 "id": 11979,
6841 "isConstant": false,
6842 "isLValue": false,
6843 "isPure": true,
6844 "kind": "bool",
6845 "lValueRequested": false,
6846 "nodeType": "Literal",
6847 "src": "6795:5:38",
6848 "subdenomination": null,
6849 "typeDescriptions": {
6850 "typeIdentifier": "t_bool",
6851 "typeString": "bool"
6852 },
6853 "value": "false"
6854 },
6855 "visibility": "public"
6856 },
6857 {
6858 "body": {
6859 "id": 11988,
6860 "nodeType": "Block",
6861 "src": "6825:53:38",
6862 "statements": [
6863 {
6864 "expression": {
6865 "argumentTypes": null,
6866 "arguments": [
6867 {
6868 "argumentTypes": null,
6869 "id": 11984,
6870 "isConstant": false,
6871 "isLValue": false,
6872 "isPure": false,
6873 "lValueRequested": false,
6874 "nodeType": "UnaryOperation",
6875 "operator": "!",
6876 "prefix": true,
6877 "src": "6843:16:38",
6878 "subExpression": {
6879 "argumentTypes": null,
6880 "id": 11983,
6881 "name": "mintingFinished",
6882 "nodeType": "Identifier",
6883 "overloadedDeclarations": [],
6884 "referencedDeclaration": 11980,
6885 "src": "6844:15:38",
6886 "typeDescriptions": {
6887 "typeIdentifier": "t_bool",
6888 "typeString": "bool"
6889 }
6890 },
6891 "typeDescriptions": {
6892 "typeIdentifier": "t_bool",
6893 "typeString": "bool"
6894 }
6895 }
6896 ],
6897 "expression": {
6898 "argumentTypes": [
6899 {
6900 "typeIdentifier": "t_bool",
6901 "typeString": "bool"
6902 }
6903 ],
6904 "id": 11982,
6905 "name": "require",
6906 "nodeType": "Identifier",
6907 "overloadedDeclarations": [
6908 12095,
6909 12096
6910 ],
6911 "referencedDeclaration": 12095,
6912 "src": "6835:7:38",
6913 "typeDescriptions": {
6914 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
6915 "typeString": "function (bool) pure"
6916 }
6917 },
6918 "id": 11985,
6919 "isConstant": false,
6920 "isLValue": false,
6921 "isPure": false,
6922 "kind": "functionCall",
6923 "lValueRequested": false,
6924 "names": [],
6925 "nodeType": "FunctionCall",
6926 "src": "6835:25:38",
6927 "typeDescriptions": {
6928 "typeIdentifier": "t_tuple$__$",
6929 "typeString": "tuple()"
6930 }
6931 },
6932 "id": 11986,
6933 "nodeType": "ExpressionStatement",
6934 "src": "6835:25:38"
6935 },
6936 {
6937 "id": 11987,
6938 "nodeType": "PlaceholderStatement",
6939 "src": "6870:1:38"
6940 }
6941 ]
6942 },
6943 "documentation": null,
6944 "id": 11989,
6945 "name": "canMint",
6946 "nodeType": "ModifierDefinition",
6947 "parameters": {
6948 "id": 11981,
6949 "nodeType": "ParameterList",
6950 "parameters": [],
6951 "src": "6822:2:38"
6952 },
6953 "src": "6806:72:38",
6954 "visibility": "internal"
6955 },
6956 {
6957 "body": {
6958 "id": 12033,
6959 "nodeType": "Block",
6960 "src": "7212:203:38",
6961 "statements": [
6962 {
6963 "expression": {
6964 "argumentTypes": null,
6965 "id": 12007,
6966 "isConstant": false,
6967 "isLValue": false,
6968 "isPure": false,
6969 "lValueRequested": false,
6970 "leftHandSide": {
6971 "argumentTypes": null,
6972 "id": 12002,
6973 "name": "totalSupply",
6974 "nodeType": "Identifier",
6975 "overloadedDeclarations": [],
6976 "referencedDeclaration": 11546,
6977 "src": "7222:11:38",
6978 "typeDescriptions": {
6979 "typeIdentifier": "t_uint256",
6980 "typeString": "uint256"
6981 }
6982 },
6983 "nodeType": "Assignment",
6984 "operator": "=",
6985 "rightHandSide": {
6986 "argumentTypes": null,
6987 "arguments": [
6988 {
6989 "argumentTypes": null,
6990 "id": 12005,
6991 "name": "_amount",
6992 "nodeType": "Identifier",
6993 "overloadedDeclarations": [],
6994 "referencedDeclaration": 11993,
6995 "src": "7252:7:38",
6996 "typeDescriptions": {
6997 "typeIdentifier": "t_uint256",
6998 "typeString": "uint256"
6999 }
7000 }
7001 ],
7002 "expression": {
7003 "argumentTypes": [
7004 {
7005 "typeIdentifier": "t_uint256",
7006 "typeString": "uint256"
7007 }
7008 ],
7009 "expression": {
7010 "argumentTypes": null,
7011 "id": 12003,
7012 "name": "totalSupply",
7013 "nodeType": "Identifier",
7014 "overloadedDeclarations": [],
7015 "referencedDeclaration": 11546,
7016 "src": "7236:11:38",
7017 "typeDescriptions": {
7018 "typeIdentifier": "t_uint256",
7019 "typeString": "uint256"
7020 }
7021 },
7022 "id": 12004,
7023 "isConstant": false,
7024 "isLValue": false,
7025 "isPure": false,
7026 "lValueRequested": false,
7027 "memberName": "add",
7028 "nodeType": "MemberAccess",
7029 "referencedDeclaration": 11543,
7030 "src": "7236:15:38",
7031 "typeDescriptions": {
7032 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
7033 "typeString": "function (uint256,uint256) pure returns (uint256)"
7034 }
7035 },
7036 "id": 12006,
7037 "isConstant": false,
7038 "isLValue": false,
7039 "isPure": false,
7040 "kind": "functionCall",
7041 "lValueRequested": false,
7042 "names": [],
7043 "nodeType": "FunctionCall",
7044 "src": "7236:24:38",
7045 "typeDescriptions": {
7046 "typeIdentifier": "t_uint256",
7047 "typeString": "uint256"
7048 }
7049 },
7050 "src": "7222:38:38",
7051 "typeDescriptions": {
7052 "typeIdentifier": "t_uint256",
7053 "typeString": "uint256"
7054 }
7055 },
7056 "id": 12008,
7057 "nodeType": "ExpressionStatement",
7058 "src": "7222:38:38"
7059 },
7060 {
7061 "expression": {
7062 "argumentTypes": null,
7063 "id": 12018,
7064 "isConstant": false,
7065 "isLValue": false,
7066 "isPure": false,
7067 "lValueRequested": false,
7068 "leftHandSide": {
7069 "argumentTypes": null,
7070 "baseExpression": {
7071 "argumentTypes": null,
7072 "id": 12009,
7073 "name": "balances",
7074 "nodeType": "Identifier",
7075 "overloadedDeclarations": [],
7076 "referencedDeclaration": 11620,
7077 "src": "7270:8:38",
7078 "typeDescriptions": {
7079 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7080 "typeString": "mapping(address => uint256)"
7081 }
7082 },
7083 "id": 12011,
7084 "indexExpression": {
7085 "argumentTypes": null,
7086 "id": 12010,
7087 "name": "_to",
7088 "nodeType": "Identifier",
7089 "overloadedDeclarations": [],
7090 "referencedDeclaration": 11991,
7091 "src": "7279:3:38",
7092 "typeDescriptions": {
7093 "typeIdentifier": "t_address",
7094 "typeString": "address"
7095 }
7096 },
7097 "isConstant": false,
7098 "isLValue": true,
7099 "isPure": false,
7100 "lValueRequested": true,
7101 "nodeType": "IndexAccess",
7102 "src": "7270:13:38",
7103 "typeDescriptions": {
7104 "typeIdentifier": "t_uint256",
7105 "typeString": "uint256"
7106 }
7107 },
7108 "nodeType": "Assignment",
7109 "operator": "=",
7110 "rightHandSide": {
7111 "argumentTypes": null,
7112 "arguments": [
7113 {
7114 "argumentTypes": null,
7115 "id": 12016,
7116 "name": "_amount",
7117 "nodeType": "Identifier",
7118 "overloadedDeclarations": [],
7119 "referencedDeclaration": 11993,
7120 "src": "7304:7:38",
7121 "typeDescriptions": {
7122 "typeIdentifier": "t_uint256",
7123 "typeString": "uint256"
7124 }
7125 }
7126 ],
7127 "expression": {
7128 "argumentTypes": [
7129 {
7130 "typeIdentifier": "t_uint256",
7131 "typeString": "uint256"
7132 }
7133 ],
7134 "expression": {
7135 "argumentTypes": null,
7136 "baseExpression": {
7137 "argumentTypes": null,
7138 "id": 12012,
7139 "name": "balances",
7140 "nodeType": "Identifier",
7141 "overloadedDeclarations": [],
7142 "referencedDeclaration": 11620,
7143 "src": "7286:8:38",
7144 "typeDescriptions": {
7145 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7146 "typeString": "mapping(address => uint256)"
7147 }
7148 },
7149 "id": 12014,
7150 "indexExpression": {
7151 "argumentTypes": null,
7152 "id": 12013,
7153 "name": "_to",
7154 "nodeType": "Identifier",
7155 "overloadedDeclarations": [],
7156 "referencedDeclaration": 11991,
7157 "src": "7295:3:38",
7158 "typeDescriptions": {
7159 "typeIdentifier": "t_address",
7160 "typeString": "address"
7161 }
7162 },
7163 "isConstant": false,
7164 "isLValue": true,
7165 "isPure": false,
7166 "lValueRequested": false,
7167 "nodeType": "IndexAccess",
7168 "src": "7286:13:38",
7169 "typeDescriptions": {
7170 "typeIdentifier": "t_uint256",
7171 "typeString": "uint256"
7172 }
7173 },
7174 "id": 12015,
7175 "isConstant": false,
7176 "isLValue": false,
7177 "isPure": false,
7178 "lValueRequested": false,
7179 "memberName": "add",
7180 "nodeType": "MemberAccess",
7181 "referencedDeclaration": 11543,
7182 "src": "7286:17:38",
7183 "typeDescriptions": {
7184 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
7185 "typeString": "function (uint256,uint256) pure returns (uint256)"
7186 }
7187 },
7188 "id": 12017,
7189 "isConstant": false,
7190 "isLValue": false,
7191 "isPure": false,
7192 "kind": "functionCall",
7193 "lValueRequested": false,
7194 "names": [],
7195 "nodeType": "FunctionCall",
7196 "src": "7286:26:38",
7197 "typeDescriptions": {
7198 "typeIdentifier": "t_uint256",
7199 "typeString": "uint256"
7200 }
7201 },
7202 "src": "7270:42:38",
7203 "typeDescriptions": {
7204 "typeIdentifier": "t_uint256",
7205 "typeString": "uint256"
7206 }
7207 },
7208 "id": 12019,
7209 "nodeType": "ExpressionStatement",
7210 "src": "7270:42:38"
7211 },
7212 {
7213 "eventCall": {
7214 "argumentTypes": null,
7215 "arguments": [
7216 {
7217 "argumentTypes": null,
7218 "id": 12021,
7219 "name": "_to",
7220 "nodeType": "Identifier",
7221 "overloadedDeclarations": [],
7222 "referencedDeclaration": 11991,
7223 "src": "7332:3:38",
7224 "typeDescriptions": {
7225 "typeIdentifier": "t_address",
7226 "typeString": "address"
7227 }
7228 },
7229 {
7230 "argumentTypes": null,
7231 "id": 12022,
7232 "name": "_amount",
7233 "nodeType": "Identifier",
7234 "overloadedDeclarations": [],
7235 "referencedDeclaration": 11993,
7236 "src": "7337:7:38",
7237 "typeDescriptions": {
7238 "typeIdentifier": "t_uint256",
7239 "typeString": "uint256"
7240 }
7241 }
7242 ],
7243 "expression": {
7244 "argumentTypes": [
7245 {
7246 "typeIdentifier": "t_address",
7247 "typeString": "address"
7248 },
7249 {
7250 "typeIdentifier": "t_uint256",
7251 "typeString": "uint256"
7252 }
7253 ],
7254 "id": 12020,
7255 "name": "Mint",
7256 "nodeType": "Identifier",
7257 "overloadedDeclarations": [],
7258 "referencedDeclaration": 11975,
7259 "src": "7327:4:38",
7260 "typeDescriptions": {
7261 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
7262 "typeString": "function (address,uint256)"
7263 }
7264 },
7265 "id": 12023,
7266 "isConstant": false,
7267 "isLValue": false,
7268 "isPure": false,
7269 "kind": "functionCall",
7270 "lValueRequested": false,
7271 "names": [],
7272 "nodeType": "FunctionCall",
7273 "src": "7327:18:38",
7274 "typeDescriptions": {
7275 "typeIdentifier": "t_tuple$__$",
7276 "typeString": "tuple()"
7277 }
7278 },
7279 "id": 12024,
7280 "nodeType": "EmitStatement",
7281 "src": "7322:23:38"
7282 },
7283 {
7284 "eventCall": {
7285 "argumentTypes": null,
7286 "arguments": [
7287 {
7288 "argumentTypes": null,
7289 "hexValue": "307830",
7290 "id": 12026,
7291 "isConstant": false,
7292 "isLValue": false,
7293 "isPure": true,
7294 "kind": "number",
7295 "lValueRequested": false,
7296 "nodeType": "Literal",
7297 "src": "7369:3:38",
7298 "subdenomination": null,
7299 "typeDescriptions": {
7300 "typeIdentifier": "t_rational_0_by_1",
7301 "typeString": "int_const 0"
7302 },
7303 "value": "0x0"
7304 },
7305 {
7306 "argumentTypes": null,
7307 "id": 12027,
7308 "name": "_to",
7309 "nodeType": "Identifier",
7310 "overloadedDeclarations": [],
7311 "referencedDeclaration": 11991,
7312 "src": "7374:3:38",
7313 "typeDescriptions": {
7314 "typeIdentifier": "t_address",
7315 "typeString": "address"
7316 }
7317 },
7318 {
7319 "argumentTypes": null,
7320 "id": 12028,
7321 "name": "_amount",
7322 "nodeType": "Identifier",
7323 "overloadedDeclarations": [],
7324 "referencedDeclaration": 11993,
7325 "src": "7379:7:38",
7326 "typeDescriptions": {
7327 "typeIdentifier": "t_uint256",
7328 "typeString": "uint256"
7329 }
7330 }
7331 ],
7332 "expression": {
7333 "argumentTypes": [
7334 {
7335 "typeIdentifier": "t_rational_0_by_1",
7336 "typeString": "int_const 0"
7337 },
7338 {
7339 "typeIdentifier": "t_address",
7340 "typeString": "address"
7341 },
7342 {
7343 "typeIdentifier": "t_uint256",
7344 "typeString": "uint256"
7345 }
7346 ],
7347 "id": 12025,
7348 "name": "Transfer",
7349 "nodeType": "Identifier",
7350 "overloadedDeclarations": [],
7351 "referencedDeclaration": 11570,
7352 "src": "7360:8:38",
7353 "typeDescriptions": {
7354 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
7355 "typeString": "function (address,address,uint256)"
7356 }
7357 },
7358 "id": 12029,
7359 "isConstant": false,
7360 "isLValue": false,
7361 "isPure": false,
7362 "kind": "functionCall",
7363 "lValueRequested": false,
7364 "names": [],
7365 "nodeType": "FunctionCall",
7366 "src": "7360:27:38",
7367 "typeDescriptions": {
7368 "typeIdentifier": "t_tuple$__$",
7369 "typeString": "tuple()"
7370 }
7371 },
7372 "id": 12030,
7373 "nodeType": "EmitStatement",
7374 "src": "7355:32:38"
7375 },
7376 {
7377 "expression": {
7378 "argumentTypes": null,
7379 "hexValue": "74727565",
7380 "id": 12031,
7381 "isConstant": false,
7382 "isLValue": false,
7383 "isPure": true,
7384 "kind": "bool",
7385 "lValueRequested": false,
7386 "nodeType": "Literal",
7387 "src": "7404:4:38",
7388 "subdenomination": null,
7389 "typeDescriptions": {
7390 "typeIdentifier": "t_bool",
7391 "typeString": "bool"
7392 },
7393 "value": "true"
7394 },
7395 "functionReturnParameters": 12001,
7396 "id": 12032,
7397 "nodeType": "Return",
7398 "src": "7397:11:38"
7399 }
7400 ]
7401 },
7402 "documentation": "@dev Function to mint tokens\n@param _to The address that will receive the minted tokens.\n@param _amount The amount of tokens to mint.\n@return A boolean that indicates if the operation was successful.",
7403 "id": 12034,
7404 "implemented": true,
7405 "isConstructor": false,
7406 "isDeclaredConst": false,
7407 "modifiers": [
7408 {
7409 "arguments": null,
7410 "id": 11996,
7411 "modifierName": {
7412 "argumentTypes": null,
7413 "id": 11995,
7414 "name": "onlyOwner",
7415 "nodeType": "Identifier",
7416 "overloadedDeclarations": [],
7417 "referencedDeclaration": 11712,
7418 "src": "7172:9:38",
7419 "typeDescriptions": {
7420 "typeIdentifier": "t_modifier$__$",
7421 "typeString": "modifier ()"
7422 }
7423 },
7424 "nodeType": "ModifierInvocation",
7425 "src": "7172:9:38"
7426 },
7427 {
7428 "arguments": null,
7429 "id": 11998,
7430 "modifierName": {
7431 "argumentTypes": null,
7432 "id": 11997,
7433 "name": "canMint",
7434 "nodeType": "Identifier",
7435 "overloadedDeclarations": [],
7436 "referencedDeclaration": 11989,
7437 "src": "7182:7:38",
7438 "typeDescriptions": {
7439 "typeIdentifier": "t_modifier$__$",
7440 "typeString": "modifier ()"
7441 }
7442 },
7443 "nodeType": "ModifierInvocation",
7444 "src": "7182:7:38"
7445 }
7446 ],
7447 "name": "mint",
7448 "nodeType": "FunctionDefinition",
7449 "parameters": {
7450 "id": 11994,
7451 "nodeType": "ParameterList",
7452 "parameters": [
7453 {
7454 "constant": false,
7455 "id": 11991,
7456 "name": "_to",
7457 "nodeType": "VariableDeclaration",
7458 "scope": 12034,
7459 "src": "7142:11:38",
7460 "stateVariable": false,
7461 "storageLocation": "default",
7462 "typeDescriptions": {
7463 "typeIdentifier": "t_address",
7464 "typeString": "address"
7465 },
7466 "typeName": {
7467 "id": 11990,
7468 "name": "address",
7469 "nodeType": "ElementaryTypeName",
7470 "src": "7142:7:38",
7471 "typeDescriptions": {
7472 "typeIdentifier": "t_address",
7473 "typeString": "address"
7474 }
7475 },
7476 "value": null,
7477 "visibility": "internal"
7478 },
7479 {
7480 "constant": false,
7481 "id": 11993,
7482 "name": "_amount",
7483 "nodeType": "VariableDeclaration",
7484 "scope": 12034,
7485 "src": "7155:15:38",
7486 "stateVariable": false,
7487 "storageLocation": "default",
7488 "typeDescriptions": {
7489 "typeIdentifier": "t_uint256",
7490 "typeString": "uint256"
7491 },
7492 "typeName": {
7493 "id": 11992,
7494 "name": "uint256",
7495 "nodeType": "ElementaryTypeName",
7496 "src": "7155:7:38",
7497 "typeDescriptions": {
7498 "typeIdentifier": "t_uint256",
7499 "typeString": "uint256"
7500 }
7501 },
7502 "value": null,
7503 "visibility": "internal"
7504 }
7505 ],
7506 "src": "7141:30:38"
7507 },
7508 "payable": false,
7509 "returnParameters": {
7510 "id": 12001,
7511 "nodeType": "ParameterList",
7512 "parameters": [
7513 {
7514 "constant": false,
7515 "id": 12000,
7516 "name": "",
7517 "nodeType": "VariableDeclaration",
7518 "scope": 12034,
7519 "src": "7206:4:38",
7520 "stateVariable": false,
7521 "storageLocation": "default",
7522 "typeDescriptions": {
7523 "typeIdentifier": "t_bool",
7524 "typeString": "bool"
7525 },
7526 "typeName": {
7527 "id": 11999,
7528 "name": "bool",
7529 "nodeType": "ElementaryTypeName",
7530 "src": "7206:4:38",
7531 "typeDescriptions": {
7532 "typeIdentifier": "t_bool",
7533 "typeString": "bool"
7534 }
7535 },
7536 "value": null,
7537 "visibility": "internal"
7538 }
7539 ],
7540 "src": "7205:6:38"
7541 },
7542 "scope": 12052,
7543 "src": "7128:287:38",
7544 "stateMutability": "nonpayable",
7545 "superFunction": null,
7546 "visibility": "public"
7547 },
7548 {
7549 "body": {
7550 "id": 12050,
7551 "nodeType": "Block",
7552 "src": "7596:89:38",
7553 "statements": [
7554 {
7555 "expression": {
7556 "argumentTypes": null,
7557 "id": 12043,
7558 "isConstant": false,
7559 "isLValue": false,
7560 "isPure": false,
7561 "lValueRequested": false,
7562 "leftHandSide": {
7563 "argumentTypes": null,
7564 "id": 12041,
7565 "name": "mintingFinished",
7566 "nodeType": "Identifier",
7567 "overloadedDeclarations": [],
7568 "referencedDeclaration": 11980,
7569 "src": "7606:15:38",
7570 "typeDescriptions": {
7571 "typeIdentifier": "t_bool",
7572 "typeString": "bool"
7573 }
7574 },
7575 "nodeType": "Assignment",
7576 "operator": "=",
7577 "rightHandSide": {
7578 "argumentTypes": null,
7579 "hexValue": "74727565",
7580 "id": 12042,
7581 "isConstant": false,
7582 "isLValue": false,
7583 "isPure": true,
7584 "kind": "bool",
7585 "lValueRequested": false,
7586 "nodeType": "Literal",
7587 "src": "7624:4:38",
7588 "subdenomination": null,
7589 "typeDescriptions": {
7590 "typeIdentifier": "t_bool",
7591 "typeString": "bool"
7592 },
7593 "value": "true"
7594 },
7595 "src": "7606:22:38",
7596 "typeDescriptions": {
7597 "typeIdentifier": "t_bool",
7598 "typeString": "bool"
7599 }
7600 },
7601 "id": 12044,
7602 "nodeType": "ExpressionStatement",
7603 "src": "7606:22:38"
7604 },
7605 {
7606 "eventCall": {
7607 "argumentTypes": null,
7608 "arguments": [],
7609 "expression": {
7610 "argumentTypes": [],
7611 "id": 12045,
7612 "name": "MintFinished",
7613 "nodeType": "Identifier",
7614 "overloadedDeclarations": [],
7615 "referencedDeclaration": 11977,
7616 "src": "7643:12:38",
7617 "typeDescriptions": {
7618 "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
7619 "typeString": "function ()"
7620 }
7621 },
7622 "id": 12046,
7623 "isConstant": false,
7624 "isLValue": false,
7625 "isPure": false,
7626 "kind": "functionCall",
7627 "lValueRequested": false,
7628 "names": [],
7629 "nodeType": "FunctionCall",
7630 "src": "7643:14:38",
7631 "typeDescriptions": {
7632 "typeIdentifier": "t_tuple$__$",
7633 "typeString": "tuple()"
7634 }
7635 },
7636 "id": 12047,
7637 "nodeType": "EmitStatement",
7638 "src": "7638:19:38"
7639 },
7640 {
7641 "expression": {
7642 "argumentTypes": null,
7643 "hexValue": "74727565",
7644 "id": 12048,
7645 "isConstant": false,
7646 "isLValue": false,
7647 "isPure": true,
7648 "kind": "bool",
7649 "lValueRequested": false,
7650 "nodeType": "Literal",
7651 "src": "7674:4:38",
7652 "subdenomination": null,
7653 "typeDescriptions": {
7654 "typeIdentifier": "t_bool",
7655 "typeString": "bool"
7656 },
7657 "value": "true"
7658 },
7659 "functionReturnParameters": 12040,
7660 "id": 12049,
7661 "nodeType": "Return",
7662 "src": "7667:11:38"
7663 }
7664 ]
7665 },
7666 "documentation": "@dev Function to stop minting new tokens.\n@return True if the operation was successful.",
7667 "id": 12051,
7668 "implemented": true,
7669 "isConstructor": false,
7670 "isDeclaredConst": false,
7671 "modifiers": [
7672 {
7673 "arguments": null,
7674 "id": 12037,
7675 "modifierName": {
7676 "argumentTypes": null,
7677 "id": 12036,
7678 "name": "onlyOwner",
7679 "nodeType": "Identifier",
7680 "overloadedDeclarations": [],
7681 "referencedDeclaration": 11712,
7682 "src": "7564:9:38",
7683 "typeDescriptions": {
7684 "typeIdentifier": "t_modifier$__$",
7685 "typeString": "modifier ()"
7686 }
7687 },
7688 "nodeType": "ModifierInvocation",
7689 "src": "7564:9:38"
7690 }
7691 ],
7692 "name": "finishMinting",
7693 "nodeType": "FunctionDefinition",
7694 "parameters": {
7695 "id": 12035,
7696 "nodeType": "ParameterList",
7697 "parameters": [],
7698 "src": "7561:2:38"
7699 },
7700 "payable": false,
7701 "returnParameters": {
7702 "id": 12040,
7703 "nodeType": "ParameterList",
7704 "parameters": [
7705 {
7706 "constant": false,
7707 "id": 12039,
7708 "name": "",
7709 "nodeType": "VariableDeclaration",
7710 "scope": 12051,
7711 "src": "7590:4:38",
7712 "stateVariable": false,
7713 "storageLocation": "default",
7714 "typeDescriptions": {
7715 "typeIdentifier": "t_bool",
7716 "typeString": "bool"
7717 },
7718 "typeName": {
7719 "id": 12038,
7720 "name": "bool",
7721 "nodeType": "ElementaryTypeName",
7722 "src": "7590:4:38",
7723 "typeDescriptions": {
7724 "typeIdentifier": "t_bool",
7725 "typeString": "bool"
7726 }
7727 },
7728 "value": null,
7729 "visibility": "internal"
7730 }
7731 ],
7732 "src": "7589:6:38"
7733 },
7734 "scope": 12052,
7735 "src": "7539:146:38",
7736 "stateMutability": "nonpayable",
7737 "superFunction": null,
7738 "visibility": "public"
7739 }
7740 ],
7741 "scope": 12078,
7742 "src": "6632:1055:38"
7743 },
7744 {
7745 "baseContracts": [
7746 {
7747 "arguments": null,
7748 "baseName": {
7749 "contractScope": null,
7750 "id": 12053,
7751 "name": "MintableToken",
7752 "nodeType": "UserDefinedTypeName",
7753 "referencedDeclaration": 12052,
7754 "src": "7710:13:38",
7755 "typeDescriptions": {
7756 "typeIdentifier": "t_contract$_MintableToken_$12052",
7757 "typeString": "contract MintableToken"
7758 }
7759 },
7760 "id": 12054,
7761 "nodeType": "InheritanceSpecifier",
7762 "src": "7710:13:38"
7763 }
7764 ],
7765 "contractDependencies": [
7766 11571,
7767 11611,
7768 11684,
7769 11738,
7770 11965,
7771 12052
7772 ],
7773 "contractKind": "contract",
7774 "documentation": null,
7775 "fullyImplemented": true,
7776 "id": 12077,
7777 "linearizedBaseContracts": [
7778 12077,
7779 12052,
7780 11738,
7781 11965,
7782 11684,
7783 11611,
7784 11571
7785 ],
7786 "name": "ZapToken",
7787 "nodeType": "ContractDefinition",
7788 "nodes": [
7789 {
7790 "constant": false,
7791 "id": 12057,
7792 "name": "name",
7793 "nodeType": "VariableDeclaration",
7794 "scope": 12077,
7795 "src": "7730:33:38",
7796 "stateVariable": true,
7797 "storageLocation": "default",
7798 "typeDescriptions": {
7799 "typeIdentifier": "t_string_storage",
7800 "typeString": "string"
7801 },
7802 "typeName": {
7803 "id": 12055,
7804 "name": "string",
7805 "nodeType": "ElementaryTypeName",
7806 "src": "7730:6:38",
7807 "typeDescriptions": {
7808 "typeIdentifier": "t_string_storage_ptr",
7809 "typeString": "string"
7810 }
7811 },
7812 "value": {
7813 "argumentTypes": null,
7814 "hexValue": "5445535420544f4b454e",
7815 "id": 12056,
7816 "isConstant": false,
7817 "isLValue": false,
7818 "isPure": true,
7819 "kind": "string",
7820 "lValueRequested": false,
7821 "nodeType": "Literal",
7822 "src": "7751:12:38",
7823 "subdenomination": null,
7824 "typeDescriptions": {
7825 "typeIdentifier": "t_stringliteral_8cc07e74fc4859642fc3155159df3dd4457185a8cd596d0181af35ff8c613552",
7826 "typeString": "literal_string \"TEST TOKEN\""
7827 },
7828 "value": "TEST TOKEN"
7829 },
7830 "visibility": "public"
7831 },
7832 {
7833 "constant": false,
7834 "id": 12060,
7835 "name": "symbol",
7836 "nodeType": "VariableDeclaration",
7837 "scope": 12077,
7838 "src": "7769:29:38",
7839 "stateVariable": true,
7840 "storageLocation": "default",
7841 "typeDescriptions": {
7842 "typeIdentifier": "t_string_storage",
7843 "typeString": "string"
7844 },
7845 "typeName": {
7846 "id": 12058,
7847 "name": "string",
7848 "nodeType": "ElementaryTypeName",
7849 "src": "7769:6:38",
7850 "typeDescriptions": {
7851 "typeIdentifier": "t_string_storage_ptr",
7852 "typeString": "string"
7853 }
7854 },
7855 "value": {
7856 "argumentTypes": null,
7857 "hexValue": "54455354",
7858 "id": 12059,
7859 "isConstant": false,
7860 "isLValue": false,
7861 "isPure": true,
7862 "kind": "string",
7863 "lValueRequested": false,
7864 "nodeType": "Literal",
7865 "src": "7792:6:38",
7866 "subdenomination": null,
7867 "typeDescriptions": {
7868 "typeIdentifier": "t_stringliteral_852daa74cc3c31fe64542bb9b8764cfb91cc30f9acf9389071ffb44a9eefde46",
7869 "typeString": "literal_string \"TEST\""
7870 },
7871 "value": "TEST"
7872 },
7873 "visibility": "public"
7874 },
7875 {
7876 "constant": false,
7877 "id": 12063,
7878 "name": "decimals",
7879 "nodeType": "VariableDeclaration",
7880 "scope": 12077,
7881 "src": "7804:28:38",
7882 "stateVariable": true,
7883 "storageLocation": "default",
7884 "typeDescriptions": {
7885 "typeIdentifier": "t_uint256",
7886 "typeString": "uint256"
7887 },
7888 "typeName": {
7889 "id": 12061,
7890 "name": "uint256",
7891 "nodeType": "ElementaryTypeName",
7892 "src": "7804:7:38",
7893 "typeDescriptions": {
7894 "typeIdentifier": "t_uint256",
7895 "typeString": "uint256"
7896 }
7897 },
7898 "value": {
7899 "argumentTypes": null,
7900 "hexValue": "3138",
7901 "id": 12062,
7902 "isConstant": false,
7903 "isLValue": false,
7904 "isPure": true,
7905 "kind": "number",
7906 "lValueRequested": false,
7907 "nodeType": "Literal",
7908 "src": "7830:2:38",
7909 "subdenomination": null,
7910 "typeDescriptions": {
7911 "typeIdentifier": "t_rational_18_by_1",
7912 "typeString": "int_const 18"
7913 },
7914 "value": "18"
7915 },
7916 "visibility": "public"
7917 },
7918 {
7919 "body": {
7920 "id": 12075,
7921 "nodeType": "Block",
7922 "src": "7888:32:38",
7923 "statements": [
7924 {
7925 "expression": {
7926 "argumentTypes": null,
7927 "arguments": [
7928 {
7929 "argumentTypes": null,
7930 "id": 12071,
7931 "name": "to",
7932 "nodeType": "Identifier",
7933 "overloadedDeclarations": [],
7934 "referencedDeclaration": 12065,
7935 "src": "7903:2:38",
7936 "typeDescriptions": {
7937 "typeIdentifier": "t_address",
7938 "typeString": "address"
7939 }
7940 },
7941 {
7942 "argumentTypes": null,
7943 "id": 12072,
7944 "name": "amount",
7945 "nodeType": "Identifier",
7946 "overloadedDeclarations": [],
7947 "referencedDeclaration": 12067,
7948 "src": "7906:6:38",
7949 "typeDescriptions": {
7950 "typeIdentifier": "t_uint256",
7951 "typeString": "uint256"
7952 }
7953 }
7954 ],
7955 "expression": {
7956 "argumentTypes": [
7957 {
7958 "typeIdentifier": "t_address",
7959 "typeString": "address"
7960 },
7961 {
7962 "typeIdentifier": "t_uint256",
7963 "typeString": "uint256"
7964 }
7965 ],
7966 "id": 12070,
7967 "name": "mint",
7968 "nodeType": "Identifier",
7969 "overloadedDeclarations": [],
7970 "referencedDeclaration": 12034,
7971 "src": "7898:4:38",
7972 "typeDescriptions": {
7973 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
7974 "typeString": "function (address,uint256) returns (bool)"
7975 }
7976 },
7977 "id": 12073,
7978 "isConstant": false,
7979 "isLValue": false,
7980 "isPure": false,
7981 "kind": "functionCall",
7982 "lValueRequested": false,
7983 "names": [],
7984 "nodeType": "FunctionCall",
7985 "src": "7898:15:38",
7986 "typeDescriptions": {
7987 "typeIdentifier": "t_bool",
7988 "typeString": "bool"
7989 }
7990 },
7991 "id": 12074,
7992 "nodeType": "ExpressionStatement",
7993 "src": "7898:15:38"
7994 }
7995 ]
7996 },
7997 "documentation": null,
7998 "id": 12076,
7999 "implemented": true,
8000 "isConstructor": false,
8001 "isDeclaredConst": false,
8002 "modifiers": [],
8003 "name": "allocate",
8004 "nodeType": "FunctionDefinition",
8005 "parameters": {
8006 "id": 12068,
8007 "nodeType": "ParameterList",
8008 "parameters": [
8009 {
8010 "constant": false,
8011 "id": 12065,
8012 "name": "to",
8013 "nodeType": "VariableDeclaration",
8014 "scope": 12076,
8015 "src": "7857:10:38",
8016 "stateVariable": false,
8017 "storageLocation": "default",
8018 "typeDescriptions": {
8019 "typeIdentifier": "t_address",
8020 "typeString": "address"
8021 },
8022 "typeName": {
8023 "id": 12064,
8024 "name": "address",
8025 "nodeType": "ElementaryTypeName",
8026 "src": "7857:7:38",
8027 "typeDescriptions": {
8028 "typeIdentifier": "t_address",
8029 "typeString": "address"
8030 }
8031 },
8032 "value": null,
8033 "visibility": "internal"
8034 },
8035 {
8036 "constant": false,
8037 "id": 12067,
8038 "name": "amount",
8039 "nodeType": "VariableDeclaration",
8040 "scope": 12076,
8041 "src": "7869:11:38",
8042 "stateVariable": false,
8043 "storageLocation": "default",
8044 "typeDescriptions": {
8045 "typeIdentifier": "t_uint256",
8046 "typeString": "uint256"
8047 },
8048 "typeName": {
8049 "id": 12066,
8050 "name": "uint",
8051 "nodeType": "ElementaryTypeName",
8052 "src": "7869:4:38",
8053 "typeDescriptions": {
8054 "typeIdentifier": "t_uint256",
8055 "typeString": "uint256"
8056 }
8057 },
8058 "value": null,
8059 "visibility": "internal"
8060 }
8061 ],
8062 "src": "7856:25:38"
8063 },
8064 "payable": false,
8065 "returnParameters": {
8066 "id": 12069,
8067 "nodeType": "ParameterList",
8068 "parameters": [],
8069 "src": "7888:0:38"
8070 },
8071 "scope": 12077,
8072 "src": "7839:81:38",
8073 "stateMutability": "nonpayable",
8074 "superFunction": null,
8075 "visibility": "public"
8076 }
8077 ],
8078 "scope": 12078,
8079 "src": "7689:233:38"
8080 }
8081 ],
8082 "src": "0:7923:38"
8083 },
8084 "legacyAST": {
8085 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/token/ZapToken.sol",
8086 "exportedSymbols": {
8087 "BasicToken": [
8088 11684
8089 ],
8090 "ERC20": [
8091 11611
8092 ],
8093 "ERC20Basic": [
8094 11571
8095 ],
8096 "MintableToken": [
8097 12052
8098 ],
8099 "Ownable": [
8100 11738
8101 ],
8102 "SafeMath": [
8103 11544
8104 ],
8105 "StandardToken": [
8106 11965
8107 ],
8108 "ZapToken": [
8109 12077
8110 ]
8111 },
8112 "id": 12078,
8113 "nodeType": "SourceUnit",
8114 "nodes": [
8115 {
8116 "id": 11451,
8117 "literals": [
8118 "solidity",
8119 "^",
8120 "0.4",
8121 ".24"
8122 ],
8123 "nodeType": "PragmaDirective",
8124 "src": "0:24:38"
8125 },
8126 {
8127 "baseContracts": [],
8128 "contractDependencies": [],
8129 "contractKind": "library",
8130 "documentation": null,
8131 "fullyImplemented": true,
8132 "id": 11544,
8133 "linearizedBaseContracts": [
8134 11544
8135 ],
8136 "name": "SafeMath",
8137 "nodeType": "ContractDefinition",
8138 "nodes": [
8139 {
8140 "body": {
8141 "id": 11480,
8142 "nodeType": "Block",
8143 "src": "116:90:38",
8144 "statements": [
8145 {
8146 "assignments": [
8147 11461
8148 ],
8149 "declarations": [
8150 {
8151 "constant": false,
8152 "id": 11461,
8153 "name": "c",
8154 "nodeType": "VariableDeclaration",
8155 "scope": 11481,
8156 "src": "126:9:38",
8157 "stateVariable": false,
8158 "storageLocation": "default",
8159 "typeDescriptions": {
8160 "typeIdentifier": "t_uint256",
8161 "typeString": "uint256"
8162 },
8163 "typeName": {
8164 "id": 11460,
8165 "name": "uint256",
8166 "nodeType": "ElementaryTypeName",
8167 "src": "126:7:38",
8168 "typeDescriptions": {
8169 "typeIdentifier": "t_uint256",
8170 "typeString": "uint256"
8171 }
8172 },
8173 "value": null,
8174 "visibility": "internal"
8175 }
8176 ],
8177 "id": 11465,
8178 "initialValue": {
8179 "argumentTypes": null,
8180 "commonType": {
8181 "typeIdentifier": "t_uint256",
8182 "typeString": "uint256"
8183 },
8184 "id": 11464,
8185 "isConstant": false,
8186 "isLValue": false,
8187 "isPure": false,
8188 "lValueRequested": false,
8189 "leftExpression": {
8190 "argumentTypes": null,
8191 "id": 11462,
8192 "name": "a",
8193 "nodeType": "Identifier",
8194 "overloadedDeclarations": [],
8195 "referencedDeclaration": 11453,
8196 "src": "138:1:38",
8197 "typeDescriptions": {
8198 "typeIdentifier": "t_uint256",
8199 "typeString": "uint256"
8200 }
8201 },
8202 "nodeType": "BinaryOperation",
8203 "operator": "*",
8204 "rightExpression": {
8205 "argumentTypes": null,
8206 "id": 11463,
8207 "name": "b",
8208 "nodeType": "Identifier",
8209 "overloadedDeclarations": [],
8210 "referencedDeclaration": 11455,
8211 "src": "142:1:38",
8212 "typeDescriptions": {
8213 "typeIdentifier": "t_uint256",
8214 "typeString": "uint256"
8215 }
8216 },
8217 "src": "138:5:38",
8218 "typeDescriptions": {
8219 "typeIdentifier": "t_uint256",
8220 "typeString": "uint256"
8221 }
8222 },
8223 "nodeType": "VariableDeclarationStatement",
8224 "src": "126:17:38"
8225 },
8226 {
8227 "expression": {
8228 "argumentTypes": null,
8229 "arguments": [
8230 {
8231 "argumentTypes": null,
8232 "commonType": {
8233 "typeIdentifier": "t_bool",
8234 "typeString": "bool"
8235 },
8236 "id": 11475,
8237 "isConstant": false,
8238 "isLValue": false,
8239 "isPure": false,
8240 "lValueRequested": false,
8241 "leftExpression": {
8242 "argumentTypes": null,
8243 "commonType": {
8244 "typeIdentifier": "t_uint256",
8245 "typeString": "uint256"
8246 },
8247 "id": 11469,
8248 "isConstant": false,
8249 "isLValue": false,
8250 "isPure": false,
8251 "lValueRequested": false,
8252 "leftExpression": {
8253 "argumentTypes": null,
8254 "id": 11467,
8255 "name": "a",
8256 "nodeType": "Identifier",
8257 "overloadedDeclarations": [],
8258 "referencedDeclaration": 11453,
8259 "src": "160:1:38",
8260 "typeDescriptions": {
8261 "typeIdentifier": "t_uint256",
8262 "typeString": "uint256"
8263 }
8264 },
8265 "nodeType": "BinaryOperation",
8266 "operator": "==",
8267 "rightExpression": {
8268 "argumentTypes": null,
8269 "hexValue": "30",
8270 "id": 11468,
8271 "isConstant": false,
8272 "isLValue": false,
8273 "isPure": true,
8274 "kind": "number",
8275 "lValueRequested": false,
8276 "nodeType": "Literal",
8277 "src": "165:1:38",
8278 "subdenomination": null,
8279 "typeDescriptions": {
8280 "typeIdentifier": "t_rational_0_by_1",
8281 "typeString": "int_const 0"
8282 },
8283 "value": "0"
8284 },
8285 "src": "160:6:38",
8286 "typeDescriptions": {
8287 "typeIdentifier": "t_bool",
8288 "typeString": "bool"
8289 }
8290 },
8291 "nodeType": "BinaryOperation",
8292 "operator": "||",
8293 "rightExpression": {
8294 "argumentTypes": null,
8295 "commonType": {
8296 "typeIdentifier": "t_uint256",
8297 "typeString": "uint256"
8298 },
8299 "id": 11474,
8300 "isConstant": false,
8301 "isLValue": false,
8302 "isPure": false,
8303 "lValueRequested": false,
8304 "leftExpression": {
8305 "argumentTypes": null,
8306 "commonType": {
8307 "typeIdentifier": "t_uint256",
8308 "typeString": "uint256"
8309 },
8310 "id": 11472,
8311 "isConstant": false,
8312 "isLValue": false,
8313 "isPure": false,
8314 "lValueRequested": false,
8315 "leftExpression": {
8316 "argumentTypes": null,
8317 "id": 11470,
8318 "name": "c",
8319 "nodeType": "Identifier",
8320 "overloadedDeclarations": [],
8321 "referencedDeclaration": 11461,
8322 "src": "170:1:38",
8323 "typeDescriptions": {
8324 "typeIdentifier": "t_uint256",
8325 "typeString": "uint256"
8326 }
8327 },
8328 "nodeType": "BinaryOperation",
8329 "operator": "/",
8330 "rightExpression": {
8331 "argumentTypes": null,
8332 "id": 11471,
8333 "name": "a",
8334 "nodeType": "Identifier",
8335 "overloadedDeclarations": [],
8336 "referencedDeclaration": 11453,
8337 "src": "174:1:38",
8338 "typeDescriptions": {
8339 "typeIdentifier": "t_uint256",
8340 "typeString": "uint256"
8341 }
8342 },
8343 "src": "170:5:38",
8344 "typeDescriptions": {
8345 "typeIdentifier": "t_uint256",
8346 "typeString": "uint256"
8347 }
8348 },
8349 "nodeType": "BinaryOperation",
8350 "operator": "==",
8351 "rightExpression": {
8352 "argumentTypes": null,
8353 "id": 11473,
8354 "name": "b",
8355 "nodeType": "Identifier",
8356 "overloadedDeclarations": [],
8357 "referencedDeclaration": 11455,
8358 "src": "179:1:38",
8359 "typeDescriptions": {
8360 "typeIdentifier": "t_uint256",
8361 "typeString": "uint256"
8362 }
8363 },
8364 "src": "170:10:38",
8365 "typeDescriptions": {
8366 "typeIdentifier": "t_bool",
8367 "typeString": "bool"
8368 }
8369 },
8370 "src": "160:20:38",
8371 "typeDescriptions": {
8372 "typeIdentifier": "t_bool",
8373 "typeString": "bool"
8374 }
8375 }
8376 ],
8377 "expression": {
8378 "argumentTypes": [
8379 {
8380 "typeIdentifier": "t_bool",
8381 "typeString": "bool"
8382 }
8383 ],
8384 "id": 11466,
8385 "name": "assert",
8386 "nodeType": "Identifier",
8387 "overloadedDeclarations": [],
8388 "referencedDeclaration": 12081,
8389 "src": "153:6:38",
8390 "typeDescriptions": {
8391 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
8392 "typeString": "function (bool) pure"
8393 }
8394 },
8395 "id": 11476,
8396 "isConstant": false,
8397 "isLValue": false,
8398 "isPure": false,
8399 "kind": "functionCall",
8400 "lValueRequested": false,
8401 "names": [],
8402 "nodeType": "FunctionCall",
8403 "src": "153:28:38",
8404 "typeDescriptions": {
8405 "typeIdentifier": "t_tuple$__$",
8406 "typeString": "tuple()"
8407 }
8408 },
8409 "id": 11477,
8410 "nodeType": "ExpressionStatement",
8411 "src": "153:28:38"
8412 },
8413 {
8414 "expression": {
8415 "argumentTypes": null,
8416 "id": 11478,
8417 "name": "c",
8418 "nodeType": "Identifier",
8419 "overloadedDeclarations": [],
8420 "referencedDeclaration": 11461,
8421 "src": "198:1:38",
8422 "typeDescriptions": {
8423 "typeIdentifier": "t_uint256",
8424 "typeString": "uint256"
8425 }
8426 },
8427 "functionReturnParameters": 11459,
8428 "id": 11479,
8429 "nodeType": "Return",
8430 "src": "191:8:38"
8431 }
8432 ]
8433 },
8434 "documentation": null,
8435 "id": 11481,
8436 "implemented": true,
8437 "isConstructor": false,
8438 "isDeclaredConst": true,
8439 "modifiers": [],
8440 "name": "mul",
8441 "nodeType": "FunctionDefinition",
8442 "parameters": {
8443 "id": 11456,
8444 "nodeType": "ParameterList",
8445 "parameters": [
8446 {
8447 "constant": false,
8448 "id": 11453,
8449 "name": "a",
8450 "nodeType": "VariableDeclaration",
8451 "scope": 11481,
8452 "src": "62:9:38",
8453 "stateVariable": false,
8454 "storageLocation": "default",
8455 "typeDescriptions": {
8456 "typeIdentifier": "t_uint256",
8457 "typeString": "uint256"
8458 },
8459 "typeName": {
8460 "id": 11452,
8461 "name": "uint256",
8462 "nodeType": "ElementaryTypeName",
8463 "src": "62:7:38",
8464 "typeDescriptions": {
8465 "typeIdentifier": "t_uint256",
8466 "typeString": "uint256"
8467 }
8468 },
8469 "value": null,
8470 "visibility": "internal"
8471 },
8472 {
8473 "constant": false,
8474 "id": 11455,
8475 "name": "b",
8476 "nodeType": "VariableDeclaration",
8477 "scope": 11481,
8478 "src": "73:9:38",
8479 "stateVariable": false,
8480 "storageLocation": "default",
8481 "typeDescriptions": {
8482 "typeIdentifier": "t_uint256",
8483 "typeString": "uint256"
8484 },
8485 "typeName": {
8486 "id": 11454,
8487 "name": "uint256",
8488 "nodeType": "ElementaryTypeName",
8489 "src": "73:7:38",
8490 "typeDescriptions": {
8491 "typeIdentifier": "t_uint256",
8492 "typeString": "uint256"
8493 }
8494 },
8495 "value": null,
8496 "visibility": "internal"
8497 }
8498 ],
8499 "src": "61:22:38"
8500 },
8501 "payable": false,
8502 "returnParameters": {
8503 "id": 11459,
8504 "nodeType": "ParameterList",
8505 "parameters": [
8506 {
8507 "constant": false,
8508 "id": 11458,
8509 "name": "",
8510 "nodeType": "VariableDeclaration",
8511 "scope": 11481,
8512 "src": "107:7:38",
8513 "stateVariable": false,
8514 "storageLocation": "default",
8515 "typeDescriptions": {
8516 "typeIdentifier": "t_uint256",
8517 "typeString": "uint256"
8518 },
8519 "typeName": {
8520 "id": 11457,
8521 "name": "uint256",
8522 "nodeType": "ElementaryTypeName",
8523 "src": "107:7:38",
8524 "typeDescriptions": {
8525 "typeIdentifier": "t_uint256",
8526 "typeString": "uint256"
8527 }
8528 },
8529 "value": null,
8530 "visibility": "internal"
8531 }
8532 ],
8533 "src": "106:9:38"
8534 },
8535 "scope": 11544,
8536 "src": "49:157:38",
8537 "stateMutability": "pure",
8538 "superFunction": null,
8539 "visibility": "internal"
8540 },
8541 {
8542 "body": {
8543 "id": 11498,
8544 "nodeType": "Block",
8545 "src": "278:216:38",
8546 "statements": [
8547 {
8548 "assignments": [
8549 11491
8550 ],
8551 "declarations": [
8552 {
8553 "constant": false,
8554 "id": 11491,
8555 "name": "c",
8556 "nodeType": "VariableDeclaration",
8557 "scope": 11499,
8558 "src": "366:9:38",
8559 "stateVariable": false,
8560 "storageLocation": "default",
8561 "typeDescriptions": {
8562 "typeIdentifier": "t_uint256",
8563 "typeString": "uint256"
8564 },
8565 "typeName": {
8566 "id": 11490,
8567 "name": "uint256",
8568 "nodeType": "ElementaryTypeName",
8569 "src": "366:7:38",
8570 "typeDescriptions": {
8571 "typeIdentifier": "t_uint256",
8572 "typeString": "uint256"
8573 }
8574 },
8575 "value": null,
8576 "visibility": "internal"
8577 }
8578 ],
8579 "id": 11495,
8580 "initialValue": {
8581 "argumentTypes": null,
8582 "commonType": {
8583 "typeIdentifier": "t_uint256",
8584 "typeString": "uint256"
8585 },
8586 "id": 11494,
8587 "isConstant": false,
8588 "isLValue": false,
8589 "isPure": false,
8590 "lValueRequested": false,
8591 "leftExpression": {
8592 "argumentTypes": null,
8593 "id": 11492,
8594 "name": "a",
8595 "nodeType": "Identifier",
8596 "overloadedDeclarations": [],
8597 "referencedDeclaration": 11483,
8598 "src": "378:1:38",
8599 "typeDescriptions": {
8600 "typeIdentifier": "t_uint256",
8601 "typeString": "uint256"
8602 }
8603 },
8604 "nodeType": "BinaryOperation",
8605 "operator": "/",
8606 "rightExpression": {
8607 "argumentTypes": null,
8608 "id": 11493,
8609 "name": "b",
8610 "nodeType": "Identifier",
8611 "overloadedDeclarations": [],
8612 "referencedDeclaration": 11485,
8613 "src": "382:1:38",
8614 "typeDescriptions": {
8615 "typeIdentifier": "t_uint256",
8616 "typeString": "uint256"
8617 }
8618 },
8619 "src": "378:5:38",
8620 "typeDescriptions": {
8621 "typeIdentifier": "t_uint256",
8622 "typeString": "uint256"
8623 }
8624 },
8625 "nodeType": "VariableDeclarationStatement",
8626 "src": "366:17:38"
8627 },
8628 {
8629 "expression": {
8630 "argumentTypes": null,
8631 "id": 11496,
8632 "name": "c",
8633 "nodeType": "Identifier",
8634 "overloadedDeclarations": [],
8635 "referencedDeclaration": 11491,
8636 "src": "486:1:38",
8637 "typeDescriptions": {
8638 "typeIdentifier": "t_uint256",
8639 "typeString": "uint256"
8640 }
8641 },
8642 "functionReturnParameters": 11489,
8643 "id": 11497,
8644 "nodeType": "Return",
8645 "src": "479:8:38"
8646 }
8647 ]
8648 },
8649 "documentation": null,
8650 "id": 11499,
8651 "implemented": true,
8652 "isConstructor": false,
8653 "isDeclaredConst": true,
8654 "modifiers": [],
8655 "name": "div",
8656 "nodeType": "FunctionDefinition",
8657 "parameters": {
8658 "id": 11486,
8659 "nodeType": "ParameterList",
8660 "parameters": [
8661 {
8662 "constant": false,
8663 "id": 11483,
8664 "name": "a",
8665 "nodeType": "VariableDeclaration",
8666 "scope": 11499,
8667 "src": "224:9:38",
8668 "stateVariable": false,
8669 "storageLocation": "default",
8670 "typeDescriptions": {
8671 "typeIdentifier": "t_uint256",
8672 "typeString": "uint256"
8673 },
8674 "typeName": {
8675 "id": 11482,
8676 "name": "uint256",
8677 "nodeType": "ElementaryTypeName",
8678 "src": "224:7:38",
8679 "typeDescriptions": {
8680 "typeIdentifier": "t_uint256",
8681 "typeString": "uint256"
8682 }
8683 },
8684 "value": null,
8685 "visibility": "internal"
8686 },
8687 {
8688 "constant": false,
8689 "id": 11485,
8690 "name": "b",
8691 "nodeType": "VariableDeclaration",
8692 "scope": 11499,
8693 "src": "235:9:38",
8694 "stateVariable": false,
8695 "storageLocation": "default",
8696 "typeDescriptions": {
8697 "typeIdentifier": "t_uint256",
8698 "typeString": "uint256"
8699 },
8700 "typeName": {
8701 "id": 11484,
8702 "name": "uint256",
8703 "nodeType": "ElementaryTypeName",
8704 "src": "235:7:38",
8705 "typeDescriptions": {
8706 "typeIdentifier": "t_uint256",
8707 "typeString": "uint256"
8708 }
8709 },
8710 "value": null,
8711 "visibility": "internal"
8712 }
8713 ],
8714 "src": "223:22:38"
8715 },
8716 "payable": false,
8717 "returnParameters": {
8718 "id": 11489,
8719 "nodeType": "ParameterList",
8720 "parameters": [
8721 {
8722 "constant": false,
8723 "id": 11488,
8724 "name": "",
8725 "nodeType": "VariableDeclaration",
8726 "scope": 11499,
8727 "src": "269:7:38",
8728 "stateVariable": false,
8729 "storageLocation": "default",
8730 "typeDescriptions": {
8731 "typeIdentifier": "t_uint256",
8732 "typeString": "uint256"
8733 },
8734 "typeName": {
8735 "id": 11487,
8736 "name": "uint256",
8737 "nodeType": "ElementaryTypeName",
8738 "src": "269:7:38",
8739 "typeDescriptions": {
8740 "typeIdentifier": "t_uint256",
8741 "typeString": "uint256"
8742 }
8743 },
8744 "value": null,
8745 "visibility": "internal"
8746 }
8747 ],
8748 "src": "268:9:38"
8749 },
8750 "scope": 11544,
8751 "src": "211:283:38",
8752 "stateMutability": "pure",
8753 "superFunction": null,
8754 "visibility": "internal"
8755 },
8756 {
8757 "body": {
8758 "id": 11518,
8759 "nodeType": "Block",
8760 "src": "566:53:38",
8761 "statements": [
8762 {
8763 "expression": {
8764 "argumentTypes": null,
8765 "arguments": [
8766 {
8767 "argumentTypes": null,
8768 "commonType": {
8769 "typeIdentifier": "t_uint256",
8770 "typeString": "uint256"
8771 },
8772 "id": 11511,
8773 "isConstant": false,
8774 "isLValue": false,
8775 "isPure": false,
8776 "lValueRequested": false,
8777 "leftExpression": {
8778 "argumentTypes": null,
8779 "id": 11509,
8780 "name": "b",
8781 "nodeType": "Identifier",
8782 "overloadedDeclarations": [],
8783 "referencedDeclaration": 11503,
8784 "src": "583:1:38",
8785 "typeDescriptions": {
8786 "typeIdentifier": "t_uint256",
8787 "typeString": "uint256"
8788 }
8789 },
8790 "nodeType": "BinaryOperation",
8791 "operator": "<=",
8792 "rightExpression": {
8793 "argumentTypes": null,
8794 "id": 11510,
8795 "name": "a",
8796 "nodeType": "Identifier",
8797 "overloadedDeclarations": [],
8798 "referencedDeclaration": 11501,
8799 "src": "588:1:38",
8800 "typeDescriptions": {
8801 "typeIdentifier": "t_uint256",
8802 "typeString": "uint256"
8803 }
8804 },
8805 "src": "583:6:38",
8806 "typeDescriptions": {
8807 "typeIdentifier": "t_bool",
8808 "typeString": "bool"
8809 }
8810 }
8811 ],
8812 "expression": {
8813 "argumentTypes": [
8814 {
8815 "typeIdentifier": "t_bool",
8816 "typeString": "bool"
8817 }
8818 ],
8819 "id": 11508,
8820 "name": "assert",
8821 "nodeType": "Identifier",
8822 "overloadedDeclarations": [],
8823 "referencedDeclaration": 12081,
8824 "src": "576:6:38",
8825 "typeDescriptions": {
8826 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
8827 "typeString": "function (bool) pure"
8828 }
8829 },
8830 "id": 11512,
8831 "isConstant": false,
8832 "isLValue": false,
8833 "isPure": false,
8834 "kind": "functionCall",
8835 "lValueRequested": false,
8836 "names": [],
8837 "nodeType": "FunctionCall",
8838 "src": "576:14:38",
8839 "typeDescriptions": {
8840 "typeIdentifier": "t_tuple$__$",
8841 "typeString": "tuple()"
8842 }
8843 },
8844 "id": 11513,
8845 "nodeType": "ExpressionStatement",
8846 "src": "576:14:38"
8847 },
8848 {
8849 "expression": {
8850 "argumentTypes": null,
8851 "commonType": {
8852 "typeIdentifier": "t_uint256",
8853 "typeString": "uint256"
8854 },
8855 "id": 11516,
8856 "isConstant": false,
8857 "isLValue": false,
8858 "isPure": false,
8859 "lValueRequested": false,
8860 "leftExpression": {
8861 "argumentTypes": null,
8862 "id": 11514,
8863 "name": "a",
8864 "nodeType": "Identifier",
8865 "overloadedDeclarations": [],
8866 "referencedDeclaration": 11501,
8867 "src": "607:1:38",
8868 "typeDescriptions": {
8869 "typeIdentifier": "t_uint256",
8870 "typeString": "uint256"
8871 }
8872 },
8873 "nodeType": "BinaryOperation",
8874 "operator": "-",
8875 "rightExpression": {
8876 "argumentTypes": null,
8877 "id": 11515,
8878 "name": "b",
8879 "nodeType": "Identifier",
8880 "overloadedDeclarations": [],
8881 "referencedDeclaration": 11503,
8882 "src": "611:1:38",
8883 "typeDescriptions": {
8884 "typeIdentifier": "t_uint256",
8885 "typeString": "uint256"
8886 }
8887 },
8888 "src": "607:5:38",
8889 "typeDescriptions": {
8890 "typeIdentifier": "t_uint256",
8891 "typeString": "uint256"
8892 }
8893 },
8894 "functionReturnParameters": 11507,
8895 "id": 11517,
8896 "nodeType": "Return",
8897 "src": "600:12:38"
8898 }
8899 ]
8900 },
8901 "documentation": null,
8902 "id": 11519,
8903 "implemented": true,
8904 "isConstructor": false,
8905 "isDeclaredConst": true,
8906 "modifiers": [],
8907 "name": "sub",
8908 "nodeType": "FunctionDefinition",
8909 "parameters": {
8910 "id": 11504,
8911 "nodeType": "ParameterList",
8912 "parameters": [
8913 {
8914 "constant": false,
8915 "id": 11501,
8916 "name": "a",
8917 "nodeType": "VariableDeclaration",
8918 "scope": 11519,
8919 "src": "512:9:38",
8920 "stateVariable": false,
8921 "storageLocation": "default",
8922 "typeDescriptions": {
8923 "typeIdentifier": "t_uint256",
8924 "typeString": "uint256"
8925 },
8926 "typeName": {
8927 "id": 11500,
8928 "name": "uint256",
8929 "nodeType": "ElementaryTypeName",
8930 "src": "512:7:38",
8931 "typeDescriptions": {
8932 "typeIdentifier": "t_uint256",
8933 "typeString": "uint256"
8934 }
8935 },
8936 "value": null,
8937 "visibility": "internal"
8938 },
8939 {
8940 "constant": false,
8941 "id": 11503,
8942 "name": "b",
8943 "nodeType": "VariableDeclaration",
8944 "scope": 11519,
8945 "src": "523:9:38",
8946 "stateVariable": false,
8947 "storageLocation": "default",
8948 "typeDescriptions": {
8949 "typeIdentifier": "t_uint256",
8950 "typeString": "uint256"
8951 },
8952 "typeName": {
8953 "id": 11502,
8954 "name": "uint256",
8955 "nodeType": "ElementaryTypeName",
8956 "src": "523:7:38",
8957 "typeDescriptions": {
8958 "typeIdentifier": "t_uint256",
8959 "typeString": "uint256"
8960 }
8961 },
8962 "value": null,
8963 "visibility": "internal"
8964 }
8965 ],
8966 "src": "511:22:38"
8967 },
8968 "payable": false,
8969 "returnParameters": {
8970 "id": 11507,
8971 "nodeType": "ParameterList",
8972 "parameters": [
8973 {
8974 "constant": false,
8975 "id": 11506,
8976 "name": "",
8977 "nodeType": "VariableDeclaration",
8978 "scope": 11519,
8979 "src": "557:7:38",
8980 "stateVariable": false,
8981 "storageLocation": "default",
8982 "typeDescriptions": {
8983 "typeIdentifier": "t_uint256",
8984 "typeString": "uint256"
8985 },
8986 "typeName": {
8987 "id": 11505,
8988 "name": "uint256",
8989 "nodeType": "ElementaryTypeName",
8990 "src": "557:7:38",
8991 "typeDescriptions": {
8992 "typeIdentifier": "t_uint256",
8993 "typeString": "uint256"
8994 }
8995 },
8996 "value": null,
8997 "visibility": "internal"
8998 }
8999 ],
9000 "src": "556:9:38"
9001 },
9002 "scope": 11544,
9003 "src": "499:120:38",
9004 "stateMutability": "pure",
9005 "superFunction": null,
9006 "visibility": "internal"
9007 },
9008 {
9009 "body": {
9010 "id": 11542,
9011 "nodeType": "Block",
9012 "src": "691:76:38",
9013 "statements": [
9014 {
9015 "assignments": [
9016 11529
9017 ],
9018 "declarations": [
9019 {
9020 "constant": false,
9021 "id": 11529,
9022 "name": "c",
9023 "nodeType": "VariableDeclaration",
9024 "scope": 11543,
9025 "src": "701:9:38",
9026 "stateVariable": false,
9027 "storageLocation": "default",
9028 "typeDescriptions": {
9029 "typeIdentifier": "t_uint256",
9030 "typeString": "uint256"
9031 },
9032 "typeName": {
9033 "id": 11528,
9034 "name": "uint256",
9035 "nodeType": "ElementaryTypeName",
9036 "src": "701:7:38",
9037 "typeDescriptions": {
9038 "typeIdentifier": "t_uint256",
9039 "typeString": "uint256"
9040 }
9041 },
9042 "value": null,
9043 "visibility": "internal"
9044 }
9045 ],
9046 "id": 11533,
9047 "initialValue": {
9048 "argumentTypes": null,
9049 "commonType": {
9050 "typeIdentifier": "t_uint256",
9051 "typeString": "uint256"
9052 },
9053 "id": 11532,
9054 "isConstant": false,
9055 "isLValue": false,
9056 "isPure": false,
9057 "lValueRequested": false,
9058 "leftExpression": {
9059 "argumentTypes": null,
9060 "id": 11530,
9061 "name": "a",
9062 "nodeType": "Identifier",
9063 "overloadedDeclarations": [],
9064 "referencedDeclaration": 11521,
9065 "src": "713:1:38",
9066 "typeDescriptions": {
9067 "typeIdentifier": "t_uint256",
9068 "typeString": "uint256"
9069 }
9070 },
9071 "nodeType": "BinaryOperation",
9072 "operator": "+",
9073 "rightExpression": {
9074 "argumentTypes": null,
9075 "id": 11531,
9076 "name": "b",
9077 "nodeType": "Identifier",
9078 "overloadedDeclarations": [],
9079 "referencedDeclaration": 11523,
9080 "src": "717:1:38",
9081 "typeDescriptions": {
9082 "typeIdentifier": "t_uint256",
9083 "typeString": "uint256"
9084 }
9085 },
9086 "src": "713:5:38",
9087 "typeDescriptions": {
9088 "typeIdentifier": "t_uint256",
9089 "typeString": "uint256"
9090 }
9091 },
9092 "nodeType": "VariableDeclarationStatement",
9093 "src": "701:17:38"
9094 },
9095 {
9096 "expression": {
9097 "argumentTypes": null,
9098 "arguments": [
9099 {
9100 "argumentTypes": null,
9101 "commonType": {
9102 "typeIdentifier": "t_uint256",
9103 "typeString": "uint256"
9104 },
9105 "id": 11537,
9106 "isConstant": false,
9107 "isLValue": false,
9108 "isPure": false,
9109 "lValueRequested": false,
9110 "leftExpression": {
9111 "argumentTypes": null,
9112 "id": 11535,
9113 "name": "c",
9114 "nodeType": "Identifier",
9115 "overloadedDeclarations": [],
9116 "referencedDeclaration": 11529,
9117 "src": "735:1:38",
9118 "typeDescriptions": {
9119 "typeIdentifier": "t_uint256",
9120 "typeString": "uint256"
9121 }
9122 },
9123 "nodeType": "BinaryOperation",
9124 "operator": ">=",
9125 "rightExpression": {
9126 "argumentTypes": null,
9127 "id": 11536,
9128 "name": "a",
9129 "nodeType": "Identifier",
9130 "overloadedDeclarations": [],
9131 "referencedDeclaration": 11521,
9132 "src": "740:1:38",
9133 "typeDescriptions": {
9134 "typeIdentifier": "t_uint256",
9135 "typeString": "uint256"
9136 }
9137 },
9138 "src": "735:6:38",
9139 "typeDescriptions": {
9140 "typeIdentifier": "t_bool",
9141 "typeString": "bool"
9142 }
9143 }
9144 ],
9145 "expression": {
9146 "argumentTypes": [
9147 {
9148 "typeIdentifier": "t_bool",
9149 "typeString": "bool"
9150 }
9151 ],
9152 "id": 11534,
9153 "name": "assert",
9154 "nodeType": "Identifier",
9155 "overloadedDeclarations": [],
9156 "referencedDeclaration": 12081,
9157 "src": "728:6:38",
9158 "typeDescriptions": {
9159 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
9160 "typeString": "function (bool) pure"
9161 }
9162 },
9163 "id": 11538,
9164 "isConstant": false,
9165 "isLValue": false,
9166 "isPure": false,
9167 "kind": "functionCall",
9168 "lValueRequested": false,
9169 "names": [],
9170 "nodeType": "FunctionCall",
9171 "src": "728:14:38",
9172 "typeDescriptions": {
9173 "typeIdentifier": "t_tuple$__$",
9174 "typeString": "tuple()"
9175 }
9176 },
9177 "id": 11539,
9178 "nodeType": "ExpressionStatement",
9179 "src": "728:14:38"
9180 },
9181 {
9182 "expression": {
9183 "argumentTypes": null,
9184 "id": 11540,
9185 "name": "c",
9186 "nodeType": "Identifier",
9187 "overloadedDeclarations": [],
9188 "referencedDeclaration": 11529,
9189 "src": "759:1:38",
9190 "typeDescriptions": {
9191 "typeIdentifier": "t_uint256",
9192 "typeString": "uint256"
9193 }
9194 },
9195 "functionReturnParameters": 11527,
9196 "id": 11541,
9197 "nodeType": "Return",
9198 "src": "752:8:38"
9199 }
9200 ]
9201 },
9202 "documentation": null,
9203 "id": 11543,
9204 "implemented": true,
9205 "isConstructor": false,
9206 "isDeclaredConst": true,
9207 "modifiers": [],
9208 "name": "add",
9209 "nodeType": "FunctionDefinition",
9210 "parameters": {
9211 "id": 11524,
9212 "nodeType": "ParameterList",
9213 "parameters": [
9214 {
9215 "constant": false,
9216 "id": 11521,
9217 "name": "a",
9218 "nodeType": "VariableDeclaration",
9219 "scope": 11543,
9220 "src": "637:9:38",
9221 "stateVariable": false,
9222 "storageLocation": "default",
9223 "typeDescriptions": {
9224 "typeIdentifier": "t_uint256",
9225 "typeString": "uint256"
9226 },
9227 "typeName": {
9228 "id": 11520,
9229 "name": "uint256",
9230 "nodeType": "ElementaryTypeName",
9231 "src": "637:7:38",
9232 "typeDescriptions": {
9233 "typeIdentifier": "t_uint256",
9234 "typeString": "uint256"
9235 }
9236 },
9237 "value": null,
9238 "visibility": "internal"
9239 },
9240 {
9241 "constant": false,
9242 "id": 11523,
9243 "name": "b",
9244 "nodeType": "VariableDeclaration",
9245 "scope": 11543,
9246 "src": "648:9:38",
9247 "stateVariable": false,
9248 "storageLocation": "default",
9249 "typeDescriptions": {
9250 "typeIdentifier": "t_uint256",
9251 "typeString": "uint256"
9252 },
9253 "typeName": {
9254 "id": 11522,
9255 "name": "uint256",
9256 "nodeType": "ElementaryTypeName",
9257 "src": "648:7:38",
9258 "typeDescriptions": {
9259 "typeIdentifier": "t_uint256",
9260 "typeString": "uint256"
9261 }
9262 },
9263 "value": null,
9264 "visibility": "internal"
9265 }
9266 ],
9267 "src": "636:22:38"
9268 },
9269 "payable": false,
9270 "returnParameters": {
9271 "id": 11527,
9272 "nodeType": "ParameterList",
9273 "parameters": [
9274 {
9275 "constant": false,
9276 "id": 11526,
9277 "name": "",
9278 "nodeType": "VariableDeclaration",
9279 "scope": 11543,
9280 "src": "682:7:38",
9281 "stateVariable": false,
9282 "storageLocation": "default",
9283 "typeDescriptions": {
9284 "typeIdentifier": "t_uint256",
9285 "typeString": "uint256"
9286 },
9287 "typeName": {
9288 "id": 11525,
9289 "name": "uint256",
9290 "nodeType": "ElementaryTypeName",
9291 "src": "682:7:38",
9292 "typeDescriptions": {
9293 "typeIdentifier": "t_uint256",
9294 "typeString": "uint256"
9295 }
9296 },
9297 "value": null,
9298 "visibility": "internal"
9299 }
9300 ],
9301 "src": "681:9:38"
9302 },
9303 "scope": 11544,
9304 "src": "624:143:38",
9305 "stateMutability": "pure",
9306 "superFunction": null,
9307 "visibility": "internal"
9308 }
9309 ],
9310 "scope": 12078,
9311 "src": "26:743:38"
9312 },
9313 {
9314 "baseContracts": [],
9315 "contractDependencies": [],
9316 "contractKind": "contract",
9317 "documentation": null,
9318 "fullyImplemented": false,
9319 "id": 11571,
9320 "linearizedBaseContracts": [
9321 11571
9322 ],
9323 "name": "ERC20Basic",
9324 "nodeType": "ContractDefinition",
9325 "nodes": [
9326 {
9327 "constant": false,
9328 "id": 11546,
9329 "name": "totalSupply",
9330 "nodeType": "VariableDeclaration",
9331 "scope": 11571,
9332 "src": "797:26:38",
9333 "stateVariable": true,
9334 "storageLocation": "default",
9335 "typeDescriptions": {
9336 "typeIdentifier": "t_uint256",
9337 "typeString": "uint256"
9338 },
9339 "typeName": {
9340 "id": 11545,
9341 "name": "uint256",
9342 "nodeType": "ElementaryTypeName",
9343 "src": "797:7:38",
9344 "typeDescriptions": {
9345 "typeIdentifier": "t_uint256",
9346 "typeString": "uint256"
9347 }
9348 },
9349 "value": null,
9350 "visibility": "public"
9351 },
9352 {
9353 "body": null,
9354 "documentation": null,
9355 "id": 11553,
9356 "implemented": false,
9357 "isConstructor": false,
9358 "isDeclaredConst": true,
9359 "modifiers": [],
9360 "name": "balanceOf",
9361 "nodeType": "FunctionDefinition",
9362 "parameters": {
9363 "id": 11549,
9364 "nodeType": "ParameterList",
9365 "parameters": [
9366 {
9367 "constant": false,
9368 "id": 11548,
9369 "name": "who",
9370 "nodeType": "VariableDeclaration",
9371 "scope": 11553,
9372 "src": "848:11:38",
9373 "stateVariable": false,
9374 "storageLocation": "default",
9375 "typeDescriptions": {
9376 "typeIdentifier": "t_address",
9377 "typeString": "address"
9378 },
9379 "typeName": {
9380 "id": 11547,
9381 "name": "address",
9382 "nodeType": "ElementaryTypeName",
9383 "src": "848:7:38",
9384 "typeDescriptions": {
9385 "typeIdentifier": "t_address",
9386 "typeString": "address"
9387 }
9388 },
9389 "value": null,
9390 "visibility": "internal"
9391 }
9392 ],
9393 "src": "847:13:38"
9394 },
9395 "payable": false,
9396 "returnParameters": {
9397 "id": 11552,
9398 "nodeType": "ParameterList",
9399 "parameters": [
9400 {
9401 "constant": false,
9402 "id": 11551,
9403 "name": "",
9404 "nodeType": "VariableDeclaration",
9405 "scope": 11553,
9406 "src": "886:7:38",
9407 "stateVariable": false,
9408 "storageLocation": "default",
9409 "typeDescriptions": {
9410 "typeIdentifier": "t_uint256",
9411 "typeString": "uint256"
9412 },
9413 "typeName": {
9414 "id": 11550,
9415 "name": "uint256",
9416 "nodeType": "ElementaryTypeName",
9417 "src": "886:7:38",
9418 "typeDescriptions": {
9419 "typeIdentifier": "t_uint256",
9420 "typeString": "uint256"
9421 }
9422 },
9423 "value": null,
9424 "visibility": "internal"
9425 }
9426 ],
9427 "src": "885:9:38"
9428 },
9429 "scope": 11571,
9430 "src": "829:66:38",
9431 "stateMutability": "view",
9432 "superFunction": null,
9433 "visibility": "public"
9434 },
9435 {
9436 "body": null,
9437 "documentation": null,
9438 "id": 11562,
9439 "implemented": false,
9440 "isConstructor": false,
9441 "isDeclaredConst": false,
9442 "modifiers": [],
9443 "name": "transfer",
9444 "nodeType": "FunctionDefinition",
9445 "parameters": {
9446 "id": 11558,
9447 "nodeType": "ParameterList",
9448 "parameters": [
9449 {
9450 "constant": false,
9451 "id": 11555,
9452 "name": "to",
9453 "nodeType": "VariableDeclaration",
9454 "scope": 11562,
9455 "src": "918:10:38",
9456 "stateVariable": false,
9457 "storageLocation": "default",
9458 "typeDescriptions": {
9459 "typeIdentifier": "t_address",
9460 "typeString": "address"
9461 },
9462 "typeName": {
9463 "id": 11554,
9464 "name": "address",
9465 "nodeType": "ElementaryTypeName",
9466 "src": "918:7:38",
9467 "typeDescriptions": {
9468 "typeIdentifier": "t_address",
9469 "typeString": "address"
9470 }
9471 },
9472 "value": null,
9473 "visibility": "internal"
9474 },
9475 {
9476 "constant": false,
9477 "id": 11557,
9478 "name": "value",
9479 "nodeType": "VariableDeclaration",
9480 "scope": 11562,
9481 "src": "930:13:38",
9482 "stateVariable": false,
9483 "storageLocation": "default",
9484 "typeDescriptions": {
9485 "typeIdentifier": "t_uint256",
9486 "typeString": "uint256"
9487 },
9488 "typeName": {
9489 "id": 11556,
9490 "name": "uint256",
9491 "nodeType": "ElementaryTypeName",
9492 "src": "930:7:38",
9493 "typeDescriptions": {
9494 "typeIdentifier": "t_uint256",
9495 "typeString": "uint256"
9496 }
9497 },
9498 "value": null,
9499 "visibility": "internal"
9500 }
9501 ],
9502 "src": "917:27:38"
9503 },
9504 "payable": false,
9505 "returnParameters": {
9506 "id": 11561,
9507 "nodeType": "ParameterList",
9508 "parameters": [
9509 {
9510 "constant": false,
9511 "id": 11560,
9512 "name": "",
9513 "nodeType": "VariableDeclaration",
9514 "scope": 11562,
9515 "src": "961:4:38",
9516 "stateVariable": false,
9517 "storageLocation": "default",
9518 "typeDescriptions": {
9519 "typeIdentifier": "t_bool",
9520 "typeString": "bool"
9521 },
9522 "typeName": {
9523 "id": 11559,
9524 "name": "bool",
9525 "nodeType": "ElementaryTypeName",
9526 "src": "961:4:38",
9527 "typeDescriptions": {
9528 "typeIdentifier": "t_bool",
9529 "typeString": "bool"
9530 }
9531 },
9532 "value": null,
9533 "visibility": "internal"
9534 }
9535 ],
9536 "src": "960:6:38"
9537 },
9538 "scope": 11571,
9539 "src": "900:67:38",
9540 "stateMutability": "nonpayable",
9541 "superFunction": null,
9542 "visibility": "public"
9543 },
9544 {
9545 "anonymous": false,
9546 "documentation": null,
9547 "id": 11570,
9548 "name": "Transfer",
9549 "nodeType": "EventDefinition",
9550 "parameters": {
9551 "id": 11569,
9552 "nodeType": "ParameterList",
9553 "parameters": [
9554 {
9555 "constant": false,
9556 "id": 11564,
9557 "indexed": true,
9558 "name": "from",
9559 "nodeType": "VariableDeclaration",
9560 "scope": 11570,
9561 "src": "987:20:38",
9562 "stateVariable": false,
9563 "storageLocation": "default",
9564 "typeDescriptions": {
9565 "typeIdentifier": "t_address",
9566 "typeString": "address"
9567 },
9568 "typeName": {
9569 "id": 11563,
9570 "name": "address",
9571 "nodeType": "ElementaryTypeName",
9572 "src": "987:7:38",
9573 "typeDescriptions": {
9574 "typeIdentifier": "t_address",
9575 "typeString": "address"
9576 }
9577 },
9578 "value": null,
9579 "visibility": "internal"
9580 },
9581 {
9582 "constant": false,
9583 "id": 11566,
9584 "indexed": true,
9585 "name": "to",
9586 "nodeType": "VariableDeclaration",
9587 "scope": 11570,
9588 "src": "1009:18:38",
9589 "stateVariable": false,
9590 "storageLocation": "default",
9591 "typeDescriptions": {
9592 "typeIdentifier": "t_address",
9593 "typeString": "address"
9594 },
9595 "typeName": {
9596 "id": 11565,
9597 "name": "address",
9598 "nodeType": "ElementaryTypeName",
9599 "src": "1009:7:38",
9600 "typeDescriptions": {
9601 "typeIdentifier": "t_address",
9602 "typeString": "address"
9603 }
9604 },
9605 "value": null,
9606 "visibility": "internal"
9607 },
9608 {
9609 "constant": false,
9610 "id": 11568,
9611 "indexed": false,
9612 "name": "value",
9613 "nodeType": "VariableDeclaration",
9614 "scope": 11570,
9615 "src": "1029:13:38",
9616 "stateVariable": false,
9617 "storageLocation": "default",
9618 "typeDescriptions": {
9619 "typeIdentifier": "t_uint256",
9620 "typeString": "uint256"
9621 },
9622 "typeName": {
9623 "id": 11567,
9624 "name": "uint256",
9625 "nodeType": "ElementaryTypeName",
9626 "src": "1029:7:38",
9627 "typeDescriptions": {
9628 "typeIdentifier": "t_uint256",
9629 "typeString": "uint256"
9630 }
9631 },
9632 "value": null,
9633 "visibility": "internal"
9634 }
9635 ],
9636 "src": "986:57:38"
9637 },
9638 "src": "972:72:38"
9639 }
9640 ],
9641 "scope": 12078,
9642 "src": "771:275:38"
9643 },
9644 {
9645 "baseContracts": [
9646 {
9647 "arguments": null,
9648 "baseName": {
9649 "contractScope": null,
9650 "id": 11572,
9651 "name": "ERC20Basic",
9652 "nodeType": "UserDefinedTypeName",
9653 "referencedDeclaration": 11571,
9654 "src": "1155:10:38",
9655 "typeDescriptions": {
9656 "typeIdentifier": "t_contract$_ERC20Basic_$11571",
9657 "typeString": "contract ERC20Basic"
9658 }
9659 },
9660 "id": 11573,
9661 "nodeType": "InheritanceSpecifier",
9662 "src": "1155:10:38"
9663 }
9664 ],
9665 "contractDependencies": [
9666 11571
9667 ],
9668 "contractKind": "contract",
9669 "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20",
9670 "fullyImplemented": false,
9671 "id": 11611,
9672 "linearizedBaseContracts": [
9673 11611,
9674 11571
9675 ],
9676 "name": "ERC20",
9677 "nodeType": "ContractDefinition",
9678 "nodes": [
9679 {
9680 "body": null,
9681 "documentation": null,
9682 "id": 11582,
9683 "implemented": false,
9684 "isConstructor": false,
9685 "isDeclaredConst": true,
9686 "modifiers": [],
9687 "name": "allowance",
9688 "nodeType": "FunctionDefinition",
9689 "parameters": {
9690 "id": 11578,
9691 "nodeType": "ParameterList",
9692 "parameters": [
9693 {
9694 "constant": false,
9695 "id": 11575,
9696 "name": "owner",
9697 "nodeType": "VariableDeclaration",
9698 "scope": 11582,
9699 "src": "1191:13:38",
9700 "stateVariable": false,
9701 "storageLocation": "default",
9702 "typeDescriptions": {
9703 "typeIdentifier": "t_address",
9704 "typeString": "address"
9705 },
9706 "typeName": {
9707 "id": 11574,
9708 "name": "address",
9709 "nodeType": "ElementaryTypeName",
9710 "src": "1191:7:38",
9711 "typeDescriptions": {
9712 "typeIdentifier": "t_address",
9713 "typeString": "address"
9714 }
9715 },
9716 "value": null,
9717 "visibility": "internal"
9718 },
9719 {
9720 "constant": false,
9721 "id": 11577,
9722 "name": "spender",
9723 "nodeType": "VariableDeclaration",
9724 "scope": 11582,
9725 "src": "1206:15:38",
9726 "stateVariable": false,
9727 "storageLocation": "default",
9728 "typeDescriptions": {
9729 "typeIdentifier": "t_address",
9730 "typeString": "address"
9731 },
9732 "typeName": {
9733 "id": 11576,
9734 "name": "address",
9735 "nodeType": "ElementaryTypeName",
9736 "src": "1206:7:38",
9737 "typeDescriptions": {
9738 "typeIdentifier": "t_address",
9739 "typeString": "address"
9740 }
9741 },
9742 "value": null,
9743 "visibility": "internal"
9744 }
9745 ],
9746 "src": "1190:32:38"
9747 },
9748 "payable": false,
9749 "returnParameters": {
9750 "id": 11581,
9751 "nodeType": "ParameterList",
9752 "parameters": [
9753 {
9754 "constant": false,
9755 "id": 11580,
9756 "name": "",
9757 "nodeType": "VariableDeclaration",
9758 "scope": 11582,
9759 "src": "1248:7:38",
9760 "stateVariable": false,
9761 "storageLocation": "default",
9762 "typeDescriptions": {
9763 "typeIdentifier": "t_uint256",
9764 "typeString": "uint256"
9765 },
9766 "typeName": {
9767 "id": 11579,
9768 "name": "uint256",
9769 "nodeType": "ElementaryTypeName",
9770 "src": "1248:7:38",
9771 "typeDescriptions": {
9772 "typeIdentifier": "t_uint256",
9773 "typeString": "uint256"
9774 }
9775 },
9776 "value": null,
9777 "visibility": "internal"
9778 }
9779 ],
9780 "src": "1247:9:38"
9781 },
9782 "scope": 11611,
9783 "src": "1172:85:38",
9784 "stateMutability": "view",
9785 "superFunction": null,
9786 "visibility": "public"
9787 },
9788 {
9789 "body": null,
9790 "documentation": null,
9791 "id": 11593,
9792 "implemented": false,
9793 "isConstructor": false,
9794 "isDeclaredConst": false,
9795 "modifiers": [],
9796 "name": "transferFrom",
9797 "nodeType": "FunctionDefinition",
9798 "parameters": {
9799 "id": 11589,
9800 "nodeType": "ParameterList",
9801 "parameters": [
9802 {
9803 "constant": false,
9804 "id": 11584,
9805 "name": "from",
9806 "nodeType": "VariableDeclaration",
9807 "scope": 11593,
9808 "src": "1284:12:38",
9809 "stateVariable": false,
9810 "storageLocation": "default",
9811 "typeDescriptions": {
9812 "typeIdentifier": "t_address",
9813 "typeString": "address"
9814 },
9815 "typeName": {
9816 "id": 11583,
9817 "name": "address",
9818 "nodeType": "ElementaryTypeName",
9819 "src": "1284:7:38",
9820 "typeDescriptions": {
9821 "typeIdentifier": "t_address",
9822 "typeString": "address"
9823 }
9824 },
9825 "value": null,
9826 "visibility": "internal"
9827 },
9828 {
9829 "constant": false,
9830 "id": 11586,
9831 "name": "to",
9832 "nodeType": "VariableDeclaration",
9833 "scope": 11593,
9834 "src": "1298:10:38",
9835 "stateVariable": false,
9836 "storageLocation": "default",
9837 "typeDescriptions": {
9838 "typeIdentifier": "t_address",
9839 "typeString": "address"
9840 },
9841 "typeName": {
9842 "id": 11585,
9843 "name": "address",
9844 "nodeType": "ElementaryTypeName",
9845 "src": "1298:7:38",
9846 "typeDescriptions": {
9847 "typeIdentifier": "t_address",
9848 "typeString": "address"
9849 }
9850 },
9851 "value": null,
9852 "visibility": "internal"
9853 },
9854 {
9855 "constant": false,
9856 "id": 11588,
9857 "name": "value",
9858 "nodeType": "VariableDeclaration",
9859 "scope": 11593,
9860 "src": "1310:13:38",
9861 "stateVariable": false,
9862 "storageLocation": "default",
9863 "typeDescriptions": {
9864 "typeIdentifier": "t_uint256",
9865 "typeString": "uint256"
9866 },
9867 "typeName": {
9868 "id": 11587,
9869 "name": "uint256",
9870 "nodeType": "ElementaryTypeName",
9871 "src": "1310:7:38",
9872 "typeDescriptions": {
9873 "typeIdentifier": "t_uint256",
9874 "typeString": "uint256"
9875 }
9876 },
9877 "value": null,
9878 "visibility": "internal"
9879 }
9880 ],
9881 "src": "1283:41:38"
9882 },
9883 "payable": false,
9884 "returnParameters": {
9885 "id": 11592,
9886 "nodeType": "ParameterList",
9887 "parameters": [
9888 {
9889 "constant": false,
9890 "id": 11591,
9891 "name": "",
9892 "nodeType": "VariableDeclaration",
9893 "scope": 11593,
9894 "src": "1341:4:38",
9895 "stateVariable": false,
9896 "storageLocation": "default",
9897 "typeDescriptions": {
9898 "typeIdentifier": "t_bool",
9899 "typeString": "bool"
9900 },
9901 "typeName": {
9902 "id": 11590,
9903 "name": "bool",
9904 "nodeType": "ElementaryTypeName",
9905 "src": "1341:4:38",
9906 "typeDescriptions": {
9907 "typeIdentifier": "t_bool",
9908 "typeString": "bool"
9909 }
9910 },
9911 "value": null,
9912 "visibility": "internal"
9913 }
9914 ],
9915 "src": "1340:6:38"
9916 },
9917 "scope": 11611,
9918 "src": "1262:85:38",
9919 "stateMutability": "nonpayable",
9920 "superFunction": null,
9921 "visibility": "public"
9922 },
9923 {
9924 "body": null,
9925 "documentation": null,
9926 "id": 11602,
9927 "implemented": false,
9928 "isConstructor": false,
9929 "isDeclaredConst": false,
9930 "modifiers": [],
9931 "name": "approve",
9932 "nodeType": "FunctionDefinition",
9933 "parameters": {
9934 "id": 11598,
9935 "nodeType": "ParameterList",
9936 "parameters": [
9937 {
9938 "constant": false,
9939 "id": 11595,
9940 "name": "spender",
9941 "nodeType": "VariableDeclaration",
9942 "scope": 11602,
9943 "src": "1369:15:38",
9944 "stateVariable": false,
9945 "storageLocation": "default",
9946 "typeDescriptions": {
9947 "typeIdentifier": "t_address",
9948 "typeString": "address"
9949 },
9950 "typeName": {
9951 "id": 11594,
9952 "name": "address",
9953 "nodeType": "ElementaryTypeName",
9954 "src": "1369:7:38",
9955 "typeDescriptions": {
9956 "typeIdentifier": "t_address",
9957 "typeString": "address"
9958 }
9959 },
9960 "value": null,
9961 "visibility": "internal"
9962 },
9963 {
9964 "constant": false,
9965 "id": 11597,
9966 "name": "value",
9967 "nodeType": "VariableDeclaration",
9968 "scope": 11602,
9969 "src": "1386:13:38",
9970 "stateVariable": false,
9971 "storageLocation": "default",
9972 "typeDescriptions": {
9973 "typeIdentifier": "t_uint256",
9974 "typeString": "uint256"
9975 },
9976 "typeName": {
9977 "id": 11596,
9978 "name": "uint256",
9979 "nodeType": "ElementaryTypeName",
9980 "src": "1386:7:38",
9981 "typeDescriptions": {
9982 "typeIdentifier": "t_uint256",
9983 "typeString": "uint256"
9984 }
9985 },
9986 "value": null,
9987 "visibility": "internal"
9988 }
9989 ],
9990 "src": "1368:32:38"
9991 },
9992 "payable": false,
9993 "returnParameters": {
9994 "id": 11601,
9995 "nodeType": "ParameterList",
9996 "parameters": [
9997 {
9998 "constant": false,
9999 "id": 11600,
10000 "name": "",
10001 "nodeType": "VariableDeclaration",
10002 "scope": 11602,
10003 "src": "1417:4:38",
10004 "stateVariable": false,
10005 "storageLocation": "default",
10006 "typeDescriptions": {
10007 "typeIdentifier": "t_bool",
10008 "typeString": "bool"
10009 },
10010 "typeName": {
10011 "id": 11599,
10012 "name": "bool",
10013 "nodeType": "ElementaryTypeName",
10014 "src": "1417:4:38",
10015 "typeDescriptions": {
10016 "typeIdentifier": "t_bool",
10017 "typeString": "bool"
10018 }
10019 },
10020 "value": null,
10021 "visibility": "internal"
10022 }
10023 ],
10024 "src": "1416:6:38"
10025 },
10026 "scope": 11611,
10027 "src": "1352:71:38",
10028 "stateMutability": "nonpayable",
10029 "superFunction": null,
10030 "visibility": "public"
10031 },
10032 {
10033 "anonymous": false,
10034 "documentation": null,
10035 "id": 11610,
10036 "name": "Approval",
10037 "nodeType": "EventDefinition",
10038 "parameters": {
10039 "id": 11609,
10040 "nodeType": "ParameterList",
10041 "parameters": [
10042 {
10043 "constant": false,
10044 "id": 11604,
10045 "indexed": true,
10046 "name": "owner",
10047 "nodeType": "VariableDeclaration",
10048 "scope": 11610,
10049 "src": "1443:21:38",
10050 "stateVariable": false,
10051 "storageLocation": "default",
10052 "typeDescriptions": {
10053 "typeIdentifier": "t_address",
10054 "typeString": "address"
10055 },
10056 "typeName": {
10057 "id": 11603,
10058 "name": "address",
10059 "nodeType": "ElementaryTypeName",
10060 "src": "1443:7:38",
10061 "typeDescriptions": {
10062 "typeIdentifier": "t_address",
10063 "typeString": "address"
10064 }
10065 },
10066 "value": null,
10067 "visibility": "internal"
10068 },
10069 {
10070 "constant": false,
10071 "id": 11606,
10072 "indexed": true,
10073 "name": "spender",
10074 "nodeType": "VariableDeclaration",
10075 "scope": 11610,
10076 "src": "1466:23:38",
10077 "stateVariable": false,
10078 "storageLocation": "default",
10079 "typeDescriptions": {
10080 "typeIdentifier": "t_address",
10081 "typeString": "address"
10082 },
10083 "typeName": {
10084 "id": 11605,
10085 "name": "address",
10086 "nodeType": "ElementaryTypeName",
10087 "src": "1466:7:38",
10088 "typeDescriptions": {
10089 "typeIdentifier": "t_address",
10090 "typeString": "address"
10091 }
10092 },
10093 "value": null,
10094 "visibility": "internal"
10095 },
10096 {
10097 "constant": false,
10098 "id": 11608,
10099 "indexed": false,
10100 "name": "value",
10101 "nodeType": "VariableDeclaration",
10102 "scope": 11610,
10103 "src": "1491:13:38",
10104 "stateVariable": false,
10105 "storageLocation": "default",
10106 "typeDescriptions": {
10107 "typeIdentifier": "t_uint256",
10108 "typeString": "uint256"
10109 },
10110 "typeName": {
10111 "id": 11607,
10112 "name": "uint256",
10113 "nodeType": "ElementaryTypeName",
10114 "src": "1491:7:38",
10115 "typeDescriptions": {
10116 "typeIdentifier": "t_uint256",
10117 "typeString": "uint256"
10118 }
10119 },
10120 "value": null,
10121 "visibility": "internal"
10122 }
10123 ],
10124 "src": "1442:63:38"
10125 },
10126 "src": "1428:78:38"
10127 }
10128 ],
10129 "scope": 12078,
10130 "src": "1137:371:38"
10131 },
10132 {
10133 "baseContracts": [
10134 {
10135 "arguments": null,
10136 "baseName": {
10137 "contractScope": null,
10138 "id": 11612,
10139 "name": "ERC20Basic",
10140 "nodeType": "UserDefinedTypeName",
10141 "referencedDeclaration": 11571,
10142 "src": "1533:10:38",
10143 "typeDescriptions": {
10144 "typeIdentifier": "t_contract$_ERC20Basic_$11571",
10145 "typeString": "contract ERC20Basic"
10146 }
10147 },
10148 "id": 11613,
10149 "nodeType": "InheritanceSpecifier",
10150 "src": "1533:10:38"
10151 }
10152 ],
10153 "contractDependencies": [
10154 11571
10155 ],
10156 "contractKind": "contract",
10157 "documentation": null,
10158 "fullyImplemented": true,
10159 "id": 11684,
10160 "linearizedBaseContracts": [
10161 11684,
10162 11571
10163 ],
10164 "name": "BasicToken",
10165 "nodeType": "ContractDefinition",
10166 "nodes": [
10167 {
10168 "id": 11616,
10169 "libraryName": {
10170 "contractScope": null,
10171 "id": 11614,
10172 "name": "SafeMath",
10173 "nodeType": "UserDefinedTypeName",
10174 "referencedDeclaration": 11544,
10175 "src": "1556:8:38",
10176 "typeDescriptions": {
10177 "typeIdentifier": "t_contract$_SafeMath_$11544",
10178 "typeString": "library SafeMath"
10179 }
10180 },
10181 "nodeType": "UsingForDirective",
10182 "src": "1550:27:38",
10183 "typeName": {
10184 "id": 11615,
10185 "name": "uint256",
10186 "nodeType": "ElementaryTypeName",
10187 "src": "1569:7:38",
10188 "typeDescriptions": {
10189 "typeIdentifier": "t_uint256",
10190 "typeString": "uint256"
10191 }
10192 }
10193 },
10194 {
10195 "constant": false,
10196 "id": 11620,
10197 "name": "balances",
10198 "nodeType": "VariableDeclaration",
10199 "scope": 11684,
10200 "src": "1582:36:38",
10201 "stateVariable": true,
10202 "storageLocation": "default",
10203 "typeDescriptions": {
10204 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10205 "typeString": "mapping(address => uint256)"
10206 },
10207 "typeName": {
10208 "id": 11619,
10209 "keyType": {
10210 "id": 11617,
10211 "name": "address",
10212 "nodeType": "ElementaryTypeName",
10213 "src": "1590:7:38",
10214 "typeDescriptions": {
10215 "typeIdentifier": "t_address",
10216 "typeString": "address"
10217 }
10218 },
10219 "nodeType": "Mapping",
10220 "src": "1582:27:38",
10221 "typeDescriptions": {
10222 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10223 "typeString": "mapping(address => uint256)"
10224 },
10225 "valueType": {
10226 "id": 11618,
10227 "name": "uint256",
10228 "nodeType": "ElementaryTypeName",
10229 "src": "1601:7:38",
10230 "typeDescriptions": {
10231 "typeIdentifier": "t_uint256",
10232 "typeString": "uint256"
10233 }
10234 }
10235 },
10236 "value": null,
10237 "visibility": "internal"
10238 },
10239 {
10240 "body": {
10241 "id": 11670,
10242 "nodeType": "Block",
10243 "src": "1853:295:38",
10244 "statements": [
10245 {
10246 "expression": {
10247 "argumentTypes": null,
10248 "arguments": [
10249 {
10250 "argumentTypes": null,
10251 "commonType": {
10252 "typeIdentifier": "t_address",
10253 "typeString": "address"
10254 },
10255 "id": 11634,
10256 "isConstant": false,
10257 "isLValue": false,
10258 "isPure": false,
10259 "lValueRequested": false,
10260 "leftExpression": {
10261 "argumentTypes": null,
10262 "id": 11630,
10263 "name": "_to",
10264 "nodeType": "Identifier",
10265 "overloadedDeclarations": [],
10266 "referencedDeclaration": 11622,
10267 "src": "1871:3:38",
10268 "typeDescriptions": {
10269 "typeIdentifier": "t_address",
10270 "typeString": "address"
10271 }
10272 },
10273 "nodeType": "BinaryOperation",
10274 "operator": "!=",
10275 "rightExpression": {
10276 "argumentTypes": null,
10277 "arguments": [
10278 {
10279 "argumentTypes": null,
10280 "hexValue": "30",
10281 "id": 11632,
10282 "isConstant": false,
10283 "isLValue": false,
10284 "isPure": true,
10285 "kind": "number",
10286 "lValueRequested": false,
10287 "nodeType": "Literal",
10288 "src": "1886:1:38",
10289 "subdenomination": null,
10290 "typeDescriptions": {
10291 "typeIdentifier": "t_rational_0_by_1",
10292 "typeString": "int_const 0"
10293 },
10294 "value": "0"
10295 }
10296 ],
10297 "expression": {
10298 "argumentTypes": [
10299 {
10300 "typeIdentifier": "t_rational_0_by_1",
10301 "typeString": "int_const 0"
10302 }
10303 ],
10304 "id": 11631,
10305 "isConstant": false,
10306 "isLValue": false,
10307 "isPure": true,
10308 "lValueRequested": false,
10309 "nodeType": "ElementaryTypeNameExpression",
10310 "src": "1878:7:38",
10311 "typeDescriptions": {
10312 "typeIdentifier": "t_type$_t_address_$",
10313 "typeString": "type(address)"
10314 },
10315 "typeName": "address"
10316 },
10317 "id": 11633,
10318 "isConstant": false,
10319 "isLValue": false,
10320 "isPure": true,
10321 "kind": "typeConversion",
10322 "lValueRequested": false,
10323 "names": [],
10324 "nodeType": "FunctionCall",
10325 "src": "1878:10:38",
10326 "typeDescriptions": {
10327 "typeIdentifier": "t_address",
10328 "typeString": "address"
10329 }
10330 },
10331 "src": "1871:17:38",
10332 "typeDescriptions": {
10333 "typeIdentifier": "t_bool",
10334 "typeString": "bool"
10335 }
10336 }
10337 ],
10338 "expression": {
10339 "argumentTypes": [
10340 {
10341 "typeIdentifier": "t_bool",
10342 "typeString": "bool"
10343 }
10344 ],
10345 "id": 11629,
10346 "name": "require",
10347 "nodeType": "Identifier",
10348 "overloadedDeclarations": [
10349 12095,
10350 12096
10351 ],
10352 "referencedDeclaration": 12095,
10353 "src": "1863:7:38",
10354 "typeDescriptions": {
10355 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
10356 "typeString": "function (bool) pure"
10357 }
10358 },
10359 "id": 11635,
10360 "isConstant": false,
10361 "isLValue": false,
10362 "isPure": false,
10363 "kind": "functionCall",
10364 "lValueRequested": false,
10365 "names": [],
10366 "nodeType": "FunctionCall",
10367 "src": "1863:26:38",
10368 "typeDescriptions": {
10369 "typeIdentifier": "t_tuple$__$",
10370 "typeString": "tuple()"
10371 }
10372 },
10373 "id": 11636,
10374 "nodeType": "ExpressionStatement",
10375 "src": "1863:26:38"
10376 },
10377 {
10378 "expression": {
10379 "argumentTypes": null,
10380 "id": 11648,
10381 "isConstant": false,
10382 "isLValue": false,
10383 "isPure": false,
10384 "lValueRequested": false,
10385 "leftHandSide": {
10386 "argumentTypes": null,
10387 "baseExpression": {
10388 "argumentTypes": null,
10389 "id": 11637,
10390 "name": "balances",
10391 "nodeType": "Identifier",
10392 "overloadedDeclarations": [],
10393 "referencedDeclaration": 11620,
10394 "src": "1966:8:38",
10395 "typeDescriptions": {
10396 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10397 "typeString": "mapping(address => uint256)"
10398 }
10399 },
10400 "id": 11640,
10401 "indexExpression": {
10402 "argumentTypes": null,
10403 "expression": {
10404 "argumentTypes": null,
10405 "id": 11638,
10406 "name": "msg",
10407 "nodeType": "Identifier",
10408 "overloadedDeclarations": [],
10409 "referencedDeclaration": 12092,
10410 "src": "1975:3:38",
10411 "typeDescriptions": {
10412 "typeIdentifier": "t_magic_message",
10413 "typeString": "msg"
10414 }
10415 },
10416 "id": 11639,
10417 "isConstant": false,
10418 "isLValue": false,
10419 "isPure": false,
10420 "lValueRequested": false,
10421 "memberName": "sender",
10422 "nodeType": "MemberAccess",
10423 "referencedDeclaration": null,
10424 "src": "1975:10:38",
10425 "typeDescriptions": {
10426 "typeIdentifier": "t_address",
10427 "typeString": "address"
10428 }
10429 },
10430 "isConstant": false,
10431 "isLValue": true,
10432 "isPure": false,
10433 "lValueRequested": true,
10434 "nodeType": "IndexAccess",
10435 "src": "1966:20:38",
10436 "typeDescriptions": {
10437 "typeIdentifier": "t_uint256",
10438 "typeString": "uint256"
10439 }
10440 },
10441 "nodeType": "Assignment",
10442 "operator": "=",
10443 "rightHandSide": {
10444 "argumentTypes": null,
10445 "arguments": [
10446 {
10447 "argumentTypes": null,
10448 "id": 11646,
10449 "name": "_value",
10450 "nodeType": "Identifier",
10451 "overloadedDeclarations": [],
10452 "referencedDeclaration": 11624,
10453 "src": "2014:6:38",
10454 "typeDescriptions": {
10455 "typeIdentifier": "t_uint256",
10456 "typeString": "uint256"
10457 }
10458 }
10459 ],
10460 "expression": {
10461 "argumentTypes": [
10462 {
10463 "typeIdentifier": "t_uint256",
10464 "typeString": "uint256"
10465 }
10466 ],
10467 "expression": {
10468 "argumentTypes": null,
10469 "baseExpression": {
10470 "argumentTypes": null,
10471 "id": 11641,
10472 "name": "balances",
10473 "nodeType": "Identifier",
10474 "overloadedDeclarations": [],
10475 "referencedDeclaration": 11620,
10476 "src": "1989:8:38",
10477 "typeDescriptions": {
10478 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10479 "typeString": "mapping(address => uint256)"
10480 }
10481 },
10482 "id": 11644,
10483 "indexExpression": {
10484 "argumentTypes": null,
10485 "expression": {
10486 "argumentTypes": null,
10487 "id": 11642,
10488 "name": "msg",
10489 "nodeType": "Identifier",
10490 "overloadedDeclarations": [],
10491 "referencedDeclaration": 12092,
10492 "src": "1998:3:38",
10493 "typeDescriptions": {
10494 "typeIdentifier": "t_magic_message",
10495 "typeString": "msg"
10496 }
10497 },
10498 "id": 11643,
10499 "isConstant": false,
10500 "isLValue": false,
10501 "isPure": false,
10502 "lValueRequested": false,
10503 "memberName": "sender",
10504 "nodeType": "MemberAccess",
10505 "referencedDeclaration": null,
10506 "src": "1998:10:38",
10507 "typeDescriptions": {
10508 "typeIdentifier": "t_address",
10509 "typeString": "address"
10510 }
10511 },
10512 "isConstant": false,
10513 "isLValue": true,
10514 "isPure": false,
10515 "lValueRequested": false,
10516 "nodeType": "IndexAccess",
10517 "src": "1989:20:38",
10518 "typeDescriptions": {
10519 "typeIdentifier": "t_uint256",
10520 "typeString": "uint256"
10521 }
10522 },
10523 "id": 11645,
10524 "isConstant": false,
10525 "isLValue": false,
10526 "isPure": false,
10527 "lValueRequested": false,
10528 "memberName": "sub",
10529 "nodeType": "MemberAccess",
10530 "referencedDeclaration": 11519,
10531 "src": "1989:24:38",
10532 "typeDescriptions": {
10533 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
10534 "typeString": "function (uint256,uint256) pure returns (uint256)"
10535 }
10536 },
10537 "id": 11647,
10538 "isConstant": false,
10539 "isLValue": false,
10540 "isPure": false,
10541 "kind": "functionCall",
10542 "lValueRequested": false,
10543 "names": [],
10544 "nodeType": "FunctionCall",
10545 "src": "1989:32:38",
10546 "typeDescriptions": {
10547 "typeIdentifier": "t_uint256",
10548 "typeString": "uint256"
10549 }
10550 },
10551 "src": "1966:55:38",
10552 "typeDescriptions": {
10553 "typeIdentifier": "t_uint256",
10554 "typeString": "uint256"
10555 }
10556 },
10557 "id": 11649,
10558 "nodeType": "ExpressionStatement",
10559 "src": "1966:55:38"
10560 },
10561 {
10562 "expression": {
10563 "argumentTypes": null,
10564 "id": 11659,
10565 "isConstant": false,
10566 "isLValue": false,
10567 "isPure": false,
10568 "lValueRequested": false,
10569 "leftHandSide": {
10570 "argumentTypes": null,
10571 "baseExpression": {
10572 "argumentTypes": null,
10573 "id": 11650,
10574 "name": "balances",
10575 "nodeType": "Identifier",
10576 "overloadedDeclarations": [],
10577 "referencedDeclaration": 11620,
10578 "src": "2031:8:38",
10579 "typeDescriptions": {
10580 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10581 "typeString": "mapping(address => uint256)"
10582 }
10583 },
10584 "id": 11652,
10585 "indexExpression": {
10586 "argumentTypes": null,
10587 "id": 11651,
10588 "name": "_to",
10589 "nodeType": "Identifier",
10590 "overloadedDeclarations": [],
10591 "referencedDeclaration": 11622,
10592 "src": "2040:3:38",
10593 "typeDescriptions": {
10594 "typeIdentifier": "t_address",
10595 "typeString": "address"
10596 }
10597 },
10598 "isConstant": false,
10599 "isLValue": true,
10600 "isPure": false,
10601 "lValueRequested": true,
10602 "nodeType": "IndexAccess",
10603 "src": "2031:13:38",
10604 "typeDescriptions": {
10605 "typeIdentifier": "t_uint256",
10606 "typeString": "uint256"
10607 }
10608 },
10609 "nodeType": "Assignment",
10610 "operator": "=",
10611 "rightHandSide": {
10612 "argumentTypes": null,
10613 "arguments": [
10614 {
10615 "argumentTypes": null,
10616 "id": 11657,
10617 "name": "_value",
10618 "nodeType": "Identifier",
10619 "overloadedDeclarations": [],
10620 "referencedDeclaration": 11624,
10621 "src": "2065:6:38",
10622 "typeDescriptions": {
10623 "typeIdentifier": "t_uint256",
10624 "typeString": "uint256"
10625 }
10626 }
10627 ],
10628 "expression": {
10629 "argumentTypes": [
10630 {
10631 "typeIdentifier": "t_uint256",
10632 "typeString": "uint256"
10633 }
10634 ],
10635 "expression": {
10636 "argumentTypes": null,
10637 "baseExpression": {
10638 "argumentTypes": null,
10639 "id": 11653,
10640 "name": "balances",
10641 "nodeType": "Identifier",
10642 "overloadedDeclarations": [],
10643 "referencedDeclaration": 11620,
10644 "src": "2047:8:38",
10645 "typeDescriptions": {
10646 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10647 "typeString": "mapping(address => uint256)"
10648 }
10649 },
10650 "id": 11655,
10651 "indexExpression": {
10652 "argumentTypes": null,
10653 "id": 11654,
10654 "name": "_to",
10655 "nodeType": "Identifier",
10656 "overloadedDeclarations": [],
10657 "referencedDeclaration": 11622,
10658 "src": "2056:3:38",
10659 "typeDescriptions": {
10660 "typeIdentifier": "t_address",
10661 "typeString": "address"
10662 }
10663 },
10664 "isConstant": false,
10665 "isLValue": true,
10666 "isPure": false,
10667 "lValueRequested": false,
10668 "nodeType": "IndexAccess",
10669 "src": "2047:13:38",
10670 "typeDescriptions": {
10671 "typeIdentifier": "t_uint256",
10672 "typeString": "uint256"
10673 }
10674 },
10675 "id": 11656,
10676 "isConstant": false,
10677 "isLValue": false,
10678 "isPure": false,
10679 "lValueRequested": false,
10680 "memberName": "add",
10681 "nodeType": "MemberAccess",
10682 "referencedDeclaration": 11543,
10683 "src": "2047:17:38",
10684 "typeDescriptions": {
10685 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
10686 "typeString": "function (uint256,uint256) pure returns (uint256)"
10687 }
10688 },
10689 "id": 11658,
10690 "isConstant": false,
10691 "isLValue": false,
10692 "isPure": false,
10693 "kind": "functionCall",
10694 "lValueRequested": false,
10695 "names": [],
10696 "nodeType": "FunctionCall",
10697 "src": "2047:25:38",
10698 "typeDescriptions": {
10699 "typeIdentifier": "t_uint256",
10700 "typeString": "uint256"
10701 }
10702 },
10703 "src": "2031:41:38",
10704 "typeDescriptions": {
10705 "typeIdentifier": "t_uint256",
10706 "typeString": "uint256"
10707 }
10708 },
10709 "id": 11660,
10710 "nodeType": "ExpressionStatement",
10711 "src": "2031:41:38"
10712 },
10713 {
10714 "eventCall": {
10715 "argumentTypes": null,
10716 "arguments": [
10717 {
10718 "argumentTypes": null,
10719 "expression": {
10720 "argumentTypes": null,
10721 "id": 11662,
10722 "name": "msg",
10723 "nodeType": "Identifier",
10724 "overloadedDeclarations": [],
10725 "referencedDeclaration": 12092,
10726 "src": "2096:3:38",
10727 "typeDescriptions": {
10728 "typeIdentifier": "t_magic_message",
10729 "typeString": "msg"
10730 }
10731 },
10732 "id": 11663,
10733 "isConstant": false,
10734 "isLValue": false,
10735 "isPure": false,
10736 "lValueRequested": false,
10737 "memberName": "sender",
10738 "nodeType": "MemberAccess",
10739 "referencedDeclaration": null,
10740 "src": "2096:10:38",
10741 "typeDescriptions": {
10742 "typeIdentifier": "t_address",
10743 "typeString": "address"
10744 }
10745 },
10746 {
10747 "argumentTypes": null,
10748 "id": 11664,
10749 "name": "_to",
10750 "nodeType": "Identifier",
10751 "overloadedDeclarations": [],
10752 "referencedDeclaration": 11622,
10753 "src": "2108:3:38",
10754 "typeDescriptions": {
10755 "typeIdentifier": "t_address",
10756 "typeString": "address"
10757 }
10758 },
10759 {
10760 "argumentTypes": null,
10761 "id": 11665,
10762 "name": "_value",
10763 "nodeType": "Identifier",
10764 "overloadedDeclarations": [],
10765 "referencedDeclaration": 11624,
10766 "src": "2113:6:38",
10767 "typeDescriptions": {
10768 "typeIdentifier": "t_uint256",
10769 "typeString": "uint256"
10770 }
10771 }
10772 ],
10773 "expression": {
10774 "argumentTypes": [
10775 {
10776 "typeIdentifier": "t_address",
10777 "typeString": "address"
10778 },
10779 {
10780 "typeIdentifier": "t_address",
10781 "typeString": "address"
10782 },
10783 {
10784 "typeIdentifier": "t_uint256",
10785 "typeString": "uint256"
10786 }
10787 ],
10788 "id": 11661,
10789 "name": "Transfer",
10790 "nodeType": "Identifier",
10791 "overloadedDeclarations": [],
10792 "referencedDeclaration": 11570,
10793 "src": "2087:8:38",
10794 "typeDescriptions": {
10795 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
10796 "typeString": "function (address,address,uint256)"
10797 }
10798 },
10799 "id": 11666,
10800 "isConstant": false,
10801 "isLValue": false,
10802 "isPure": false,
10803 "kind": "functionCall",
10804 "lValueRequested": false,
10805 "names": [],
10806 "nodeType": "FunctionCall",
10807 "src": "2087:33:38",
10808 "typeDescriptions": {
10809 "typeIdentifier": "t_tuple$__$",
10810 "typeString": "tuple()"
10811 }
10812 },
10813 "id": 11667,
10814 "nodeType": "EmitStatement",
10815 "src": "2082:38:38"
10816 },
10817 {
10818 "expression": {
10819 "argumentTypes": null,
10820 "hexValue": "74727565",
10821 "id": 11668,
10822 "isConstant": false,
10823 "isLValue": false,
10824 "isPure": true,
10825 "kind": "bool",
10826 "lValueRequested": false,
10827 "nodeType": "Literal",
10828 "src": "2137:4:38",
10829 "subdenomination": null,
10830 "typeDescriptions": {
10831 "typeIdentifier": "t_bool",
10832 "typeString": "bool"
10833 },
10834 "value": "true"
10835 },
10836 "functionReturnParameters": 11628,
10837 "id": 11669,
10838 "nodeType": "Return",
10839 "src": "2130:11:38"
10840 }
10841 ]
10842 },
10843 "documentation": "@dev transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.",
10844 "id": 11671,
10845 "implemented": true,
10846 "isConstructor": false,
10847 "isDeclaredConst": false,
10848 "modifiers": [],
10849 "name": "transfer",
10850 "nodeType": "FunctionDefinition",
10851 "parameters": {
10852 "id": 11625,
10853 "nodeType": "ParameterList",
10854 "parameters": [
10855 {
10856 "constant": false,
10857 "id": 11622,
10858 "name": "_to",
10859 "nodeType": "VariableDeclaration",
10860 "scope": 11671,
10861 "src": "1802:11:38",
10862 "stateVariable": false,
10863 "storageLocation": "default",
10864 "typeDescriptions": {
10865 "typeIdentifier": "t_address",
10866 "typeString": "address"
10867 },
10868 "typeName": {
10869 "id": 11621,
10870 "name": "address",
10871 "nodeType": "ElementaryTypeName",
10872 "src": "1802:7:38",
10873 "typeDescriptions": {
10874 "typeIdentifier": "t_address",
10875 "typeString": "address"
10876 }
10877 },
10878 "value": null,
10879 "visibility": "internal"
10880 },
10881 {
10882 "constant": false,
10883 "id": 11624,
10884 "name": "_value",
10885 "nodeType": "VariableDeclaration",
10886 "scope": 11671,
10887 "src": "1815:14:38",
10888 "stateVariable": false,
10889 "storageLocation": "default",
10890 "typeDescriptions": {
10891 "typeIdentifier": "t_uint256",
10892 "typeString": "uint256"
10893 },
10894 "typeName": {
10895 "id": 11623,
10896 "name": "uint256",
10897 "nodeType": "ElementaryTypeName",
10898 "src": "1815:7:38",
10899 "typeDescriptions": {
10900 "typeIdentifier": "t_uint256",
10901 "typeString": "uint256"
10902 }
10903 },
10904 "value": null,
10905 "visibility": "internal"
10906 }
10907 ],
10908 "src": "1801:29:38"
10909 },
10910 "payable": false,
10911 "returnParameters": {
10912 "id": 11628,
10913 "nodeType": "ParameterList",
10914 "parameters": [
10915 {
10916 "constant": false,
10917 "id": 11627,
10918 "name": "",
10919 "nodeType": "VariableDeclaration",
10920 "scope": 11671,
10921 "src": "1847:4:38",
10922 "stateVariable": false,
10923 "storageLocation": "default",
10924 "typeDescriptions": {
10925 "typeIdentifier": "t_bool",
10926 "typeString": "bool"
10927 },
10928 "typeName": {
10929 "id": 11626,
10930 "name": "bool",
10931 "nodeType": "ElementaryTypeName",
10932 "src": "1847:4:38",
10933 "typeDescriptions": {
10934 "typeIdentifier": "t_bool",
10935 "typeString": "bool"
10936 }
10937 },
10938 "value": null,
10939 "visibility": "internal"
10940 }
10941 ],
10942 "src": "1846:6:38"
10943 },
10944 "scope": 11684,
10945 "src": "1784:364:38",
10946 "stateMutability": "nonpayable",
10947 "superFunction": 11562,
10948 "visibility": "public"
10949 },
10950 {
10951 "body": {
10952 "id": 11682,
10953 "nodeType": "Block",
10954 "src": "2438:40:38",
10955 "statements": [
10956 {
10957 "expression": {
10958 "argumentTypes": null,
10959 "baseExpression": {
10960 "argumentTypes": null,
10961 "id": 11678,
10962 "name": "balances",
10963 "nodeType": "Identifier",
10964 "overloadedDeclarations": [],
10965 "referencedDeclaration": 11620,
10966 "src": "2455:8:38",
10967 "typeDescriptions": {
10968 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10969 "typeString": "mapping(address => uint256)"
10970 }
10971 },
10972 "id": 11680,
10973 "indexExpression": {
10974 "argumentTypes": null,
10975 "id": 11679,
10976 "name": "_owner",
10977 "nodeType": "Identifier",
10978 "overloadedDeclarations": [],
10979 "referencedDeclaration": 11673,
10980 "src": "2464:6:38",
10981 "typeDescriptions": {
10982 "typeIdentifier": "t_address",
10983 "typeString": "address"
10984 }
10985 },
10986 "isConstant": false,
10987 "isLValue": true,
10988 "isPure": false,
10989 "lValueRequested": false,
10990 "nodeType": "IndexAccess",
10991 "src": "2455:16:38",
10992 "typeDescriptions": {
10993 "typeIdentifier": "t_uint256",
10994 "typeString": "uint256"
10995 }
10996 },
10997 "functionReturnParameters": 11677,
10998 "id": 11681,
10999 "nodeType": "Return",
11000 "src": "2448:23:38"
11001 }
11002 ]
11003 },
11004 "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.",
11005 "id": 11683,
11006 "implemented": true,
11007 "isConstructor": false,
11008 "isDeclaredConst": true,
11009 "modifiers": [],
11010 "name": "balanceOf",
11011 "nodeType": "FunctionDefinition",
11012 "parameters": {
11013 "id": 11674,
11014 "nodeType": "ParameterList",
11015 "parameters": [
11016 {
11017 "constant": false,
11018 "id": 11673,
11019 "name": "_owner",
11020 "nodeType": "VariableDeclaration",
11021 "scope": 11683,
11022 "src": "2380:14:38",
11023 "stateVariable": false,
11024 "storageLocation": "default",
11025 "typeDescriptions": {
11026 "typeIdentifier": "t_address",
11027 "typeString": "address"
11028 },
11029 "typeName": {
11030 "id": 11672,
11031 "name": "address",
11032 "nodeType": "ElementaryTypeName",
11033 "src": "2380:7:38",
11034 "typeDescriptions": {
11035 "typeIdentifier": "t_address",
11036 "typeString": "address"
11037 }
11038 },
11039 "value": null,
11040 "visibility": "internal"
11041 }
11042 ],
11043 "src": "2379:16:38"
11044 },
11045 "payable": false,
11046 "returnParameters": {
11047 "id": 11677,
11048 "nodeType": "ParameterList",
11049 "parameters": [
11050 {
11051 "constant": false,
11052 "id": 11676,
11053 "name": "balance",
11054 "nodeType": "VariableDeclaration",
11055 "scope": 11683,
11056 "src": "2421:15:38",
11057 "stateVariable": false,
11058 "storageLocation": "default",
11059 "typeDescriptions": {
11060 "typeIdentifier": "t_uint256",
11061 "typeString": "uint256"
11062 },
11063 "typeName": {
11064 "id": 11675,
11065 "name": "uint256",
11066 "nodeType": "ElementaryTypeName",
11067 "src": "2421:7:38",
11068 "typeDescriptions": {
11069 "typeIdentifier": "t_uint256",
11070 "typeString": "uint256"
11071 }
11072 },
11073 "value": null,
11074 "visibility": "internal"
11075 }
11076 ],
11077 "src": "2420:17:38"
11078 },
11079 "scope": 11684,
11080 "src": "2361:117:38",
11081 "stateMutability": "view",
11082 "superFunction": 11553,
11083 "visibility": "public"
11084 }
11085 ],
11086 "scope": 12078,
11087 "src": "1510:970:38"
11088 },
11089 {
11090 "baseContracts": [],
11091 "contractDependencies": [],
11092 "contractKind": "contract",
11093 "documentation": null,
11094 "fullyImplemented": true,
11095 "id": 11738,
11096 "linearizedBaseContracts": [
11097 11738
11098 ],
11099 "name": "Ownable",
11100 "nodeType": "ContractDefinition",
11101 "nodes": [
11102 {
11103 "constant": false,
11104 "id": 11686,
11105 "name": "owner",
11106 "nodeType": "VariableDeclaration",
11107 "scope": 11738,
11108 "src": "2505:20:38",
11109 "stateVariable": true,
11110 "storageLocation": "default",
11111 "typeDescriptions": {
11112 "typeIdentifier": "t_address",
11113 "typeString": "address"
11114 },
11115 "typeName": {
11116 "id": 11685,
11117 "name": "address",
11118 "nodeType": "ElementaryTypeName",
11119 "src": "2505:7:38",
11120 "typeDescriptions": {
11121 "typeIdentifier": "t_address",
11122 "typeString": "address"
11123 }
11124 },
11125 "value": null,
11126 "visibility": "public"
11127 },
11128 {
11129 "anonymous": false,
11130 "documentation": null,
11131 "id": 11692,
11132 "name": "OwnershipTransferred",
11133 "nodeType": "EventDefinition",
11134 "parameters": {
11135 "id": 11691,
11136 "nodeType": "ParameterList",
11137 "parameters": [
11138 {
11139 "constant": false,
11140 "id": 11688,
11141 "indexed": true,
11142 "name": "previousOwner",
11143 "nodeType": "VariableDeclaration",
11144 "scope": 11692,
11145 "src": "2558:29:38",
11146 "stateVariable": false,
11147 "storageLocation": "default",
11148 "typeDescriptions": {
11149 "typeIdentifier": "t_address",
11150 "typeString": "address"
11151 },
11152 "typeName": {
11153 "id": 11687,
11154 "name": "address",
11155 "nodeType": "ElementaryTypeName",
11156 "src": "2558:7:38",
11157 "typeDescriptions": {
11158 "typeIdentifier": "t_address",
11159 "typeString": "address"
11160 }
11161 },
11162 "value": null,
11163 "visibility": "internal"
11164 },
11165 {
11166 "constant": false,
11167 "id": 11690,
11168 "indexed": true,
11169 "name": "newOwner",
11170 "nodeType": "VariableDeclaration",
11171 "scope": 11692,
11172 "src": "2589:24:38",
11173 "stateVariable": false,
11174 "storageLocation": "default",
11175 "typeDescriptions": {
11176 "typeIdentifier": "t_address",
11177 "typeString": "address"
11178 },
11179 "typeName": {
11180 "id": 11689,
11181 "name": "address",
11182 "nodeType": "ElementaryTypeName",
11183 "src": "2589:7:38",
11184 "typeDescriptions": {
11185 "typeIdentifier": "t_address",
11186 "typeString": "address"
11187 }
11188 },
11189 "value": null,
11190 "visibility": "internal"
11191 }
11192 ],
11193 "src": "2557:57:38"
11194 },
11195 "src": "2531:84:38"
11196 },
11197 {
11198 "body": {
11199 "id": 11700,
11200 "nodeType": "Block",
11201 "src": "2765:35:38",
11202 "statements": [
11203 {
11204 "expression": {
11205 "argumentTypes": null,
11206 "id": 11698,
11207 "isConstant": false,
11208 "isLValue": false,
11209 "isPure": false,
11210 "lValueRequested": false,
11211 "leftHandSide": {
11212 "argumentTypes": null,
11213 "id": 11695,
11214 "name": "owner",
11215 "nodeType": "Identifier",
11216 "overloadedDeclarations": [],
11217 "referencedDeclaration": 11686,
11218 "src": "2775:5:38",
11219 "typeDescriptions": {
11220 "typeIdentifier": "t_address",
11221 "typeString": "address"
11222 }
11223 },
11224 "nodeType": "Assignment",
11225 "operator": "=",
11226 "rightHandSide": {
11227 "argumentTypes": null,
11228 "expression": {
11229 "argumentTypes": null,
11230 "id": 11696,
11231 "name": "msg",
11232 "nodeType": "Identifier",
11233 "overloadedDeclarations": [],
11234 "referencedDeclaration": 12092,
11235 "src": "2783:3:38",
11236 "typeDescriptions": {
11237 "typeIdentifier": "t_magic_message",
11238 "typeString": "msg"
11239 }
11240 },
11241 "id": 11697,
11242 "isConstant": false,
11243 "isLValue": false,
11244 "isPure": false,
11245 "lValueRequested": false,
11246 "memberName": "sender",
11247 "nodeType": "MemberAccess",
11248 "referencedDeclaration": null,
11249 "src": "2783:10:38",
11250 "typeDescriptions": {
11251 "typeIdentifier": "t_address",
11252 "typeString": "address"
11253 }
11254 },
11255 "src": "2775:18:38",
11256 "typeDescriptions": {
11257 "typeIdentifier": "t_address",
11258 "typeString": "address"
11259 }
11260 },
11261 "id": 11699,
11262 "nodeType": "ExpressionStatement",
11263 "src": "2775:18:38"
11264 }
11265 ]
11266 },
11267 "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.",
11268 "id": 11701,
11269 "implemented": true,
11270 "isConstructor": true,
11271 "isDeclaredConst": false,
11272 "modifiers": [],
11273 "name": "",
11274 "nodeType": "FunctionDefinition",
11275 "parameters": {
11276 "id": 11693,
11277 "nodeType": "ParameterList",
11278 "parameters": [],
11279 "src": "2755:2:38"
11280 },
11281 "payable": false,
11282 "returnParameters": {
11283 "id": 11694,
11284 "nodeType": "ParameterList",
11285 "parameters": [],
11286 "src": "2765:0:38"
11287 },
11288 "scope": 11738,
11289 "src": "2744:56:38",
11290 "stateMutability": "nonpayable",
11291 "superFunction": null,
11292 "visibility": "public"
11293 },
11294 {
11295 "body": {
11296 "id": 11711,
11297 "nodeType": "Block",
11298 "src": "2908:56:38",
11299 "statements": [
11300 {
11301 "expression": {
11302 "argumentTypes": null,
11303 "arguments": [
11304 {
11305 "argumentTypes": null,
11306 "commonType": {
11307 "typeIdentifier": "t_address",
11308 "typeString": "address"
11309 },
11310 "id": 11707,
11311 "isConstant": false,
11312 "isLValue": false,
11313 "isPure": false,
11314 "lValueRequested": false,
11315 "leftExpression": {
11316 "argumentTypes": null,
11317 "expression": {
11318 "argumentTypes": null,
11319 "id": 11704,
11320 "name": "msg",
11321 "nodeType": "Identifier",
11322 "overloadedDeclarations": [],
11323 "referencedDeclaration": 12092,
11324 "src": "2926:3:38",
11325 "typeDescriptions": {
11326 "typeIdentifier": "t_magic_message",
11327 "typeString": "msg"
11328 }
11329 },
11330 "id": 11705,
11331 "isConstant": false,
11332 "isLValue": false,
11333 "isPure": false,
11334 "lValueRequested": false,
11335 "memberName": "sender",
11336 "nodeType": "MemberAccess",
11337 "referencedDeclaration": null,
11338 "src": "2926:10:38",
11339 "typeDescriptions": {
11340 "typeIdentifier": "t_address",
11341 "typeString": "address"
11342 }
11343 },
11344 "nodeType": "BinaryOperation",
11345 "operator": "==",
11346 "rightExpression": {
11347 "argumentTypes": null,
11348 "id": 11706,
11349 "name": "owner",
11350 "nodeType": "Identifier",
11351 "overloadedDeclarations": [],
11352 "referencedDeclaration": 11686,
11353 "src": "2940:5:38",
11354 "typeDescriptions": {
11355 "typeIdentifier": "t_address",
11356 "typeString": "address"
11357 }
11358 },
11359 "src": "2926:19:38",
11360 "typeDescriptions": {
11361 "typeIdentifier": "t_bool",
11362 "typeString": "bool"
11363 }
11364 }
11365 ],
11366 "expression": {
11367 "argumentTypes": [
11368 {
11369 "typeIdentifier": "t_bool",
11370 "typeString": "bool"
11371 }
11372 ],
11373 "id": 11703,
11374 "name": "require",
11375 "nodeType": "Identifier",
11376 "overloadedDeclarations": [
11377 12095,
11378 12096
11379 ],
11380 "referencedDeclaration": 12095,
11381 "src": "2918:7:38",
11382 "typeDescriptions": {
11383 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
11384 "typeString": "function (bool) pure"
11385 }
11386 },
11387 "id": 11708,
11388 "isConstant": false,
11389 "isLValue": false,
11390 "isPure": false,
11391 "kind": "functionCall",
11392 "lValueRequested": false,
11393 "names": [],
11394 "nodeType": "FunctionCall",
11395 "src": "2918:28:38",
11396 "typeDescriptions": {
11397 "typeIdentifier": "t_tuple$__$",
11398 "typeString": "tuple()"
11399 }
11400 },
11401 "id": 11709,
11402 "nodeType": "ExpressionStatement",
11403 "src": "2918:28:38"
11404 },
11405 {
11406 "id": 11710,
11407 "nodeType": "PlaceholderStatement",
11408 "src": "2956:1:38"
11409 }
11410 ]
11411 },
11412 "documentation": "@dev Throws if called by any account other than the owner.",
11413 "id": 11712,
11414 "name": "onlyOwner",
11415 "nodeType": "ModifierDefinition",
11416 "parameters": {
11417 "id": 11702,
11418 "nodeType": "ParameterList",
11419 "parameters": [],
11420 "src": "2905:2:38"
11421 },
11422 "src": "2887:77:38",
11423 "visibility": "internal"
11424 },
11425 {
11426 "body": {
11427 "id": 11736,
11428 "nodeType": "Block",
11429 "src": "3196:126:38",
11430 "statements": [
11431 {
11432 "expression": {
11433 "argumentTypes": null,
11434 "arguments": [
11435 {
11436 "argumentTypes": null,
11437 "commonType": {
11438 "typeIdentifier": "t_address",
11439 "typeString": "address"
11440 },
11441 "id": 11724,
11442 "isConstant": false,
11443 "isLValue": false,
11444 "isPure": false,
11445 "lValueRequested": false,
11446 "leftExpression": {
11447 "argumentTypes": null,
11448 "id": 11720,
11449 "name": "newOwner",
11450 "nodeType": "Identifier",
11451 "overloadedDeclarations": [],
11452 "referencedDeclaration": 11714,
11453 "src": "3214:8:38",
11454 "typeDescriptions": {
11455 "typeIdentifier": "t_address",
11456 "typeString": "address"
11457 }
11458 },
11459 "nodeType": "BinaryOperation",
11460 "operator": "!=",
11461 "rightExpression": {
11462 "argumentTypes": null,
11463 "arguments": [
11464 {
11465 "argumentTypes": null,
11466 "hexValue": "30",
11467 "id": 11722,
11468 "isConstant": false,
11469 "isLValue": false,
11470 "isPure": true,
11471 "kind": "number",
11472 "lValueRequested": false,
11473 "nodeType": "Literal",
11474 "src": "3234:1:38",
11475 "subdenomination": null,
11476 "typeDescriptions": {
11477 "typeIdentifier": "t_rational_0_by_1",
11478 "typeString": "int_const 0"
11479 },
11480 "value": "0"
11481 }
11482 ],
11483 "expression": {
11484 "argumentTypes": [
11485 {
11486 "typeIdentifier": "t_rational_0_by_1",
11487 "typeString": "int_const 0"
11488 }
11489 ],
11490 "id": 11721,
11491 "isConstant": false,
11492 "isLValue": false,
11493 "isPure": true,
11494 "lValueRequested": false,
11495 "nodeType": "ElementaryTypeNameExpression",
11496 "src": "3226:7:38",
11497 "typeDescriptions": {
11498 "typeIdentifier": "t_type$_t_address_$",
11499 "typeString": "type(address)"
11500 },
11501 "typeName": "address"
11502 },
11503 "id": 11723,
11504 "isConstant": false,
11505 "isLValue": false,
11506 "isPure": true,
11507 "kind": "typeConversion",
11508 "lValueRequested": false,
11509 "names": [],
11510 "nodeType": "FunctionCall",
11511 "src": "3226:10:38",
11512 "typeDescriptions": {
11513 "typeIdentifier": "t_address",
11514 "typeString": "address"
11515 }
11516 },
11517 "src": "3214:22:38",
11518 "typeDescriptions": {
11519 "typeIdentifier": "t_bool",
11520 "typeString": "bool"
11521 }
11522 }
11523 ],
11524 "expression": {
11525 "argumentTypes": [
11526 {
11527 "typeIdentifier": "t_bool",
11528 "typeString": "bool"
11529 }
11530 ],
11531 "id": 11719,
11532 "name": "require",
11533 "nodeType": "Identifier",
11534 "overloadedDeclarations": [
11535 12095,
11536 12096
11537 ],
11538 "referencedDeclaration": 12095,
11539 "src": "3206:7:38",
11540 "typeDescriptions": {
11541 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
11542 "typeString": "function (bool) pure"
11543 }
11544 },
11545 "id": 11725,
11546 "isConstant": false,
11547 "isLValue": false,
11548 "isPure": false,
11549 "kind": "functionCall",
11550 "lValueRequested": false,
11551 "names": [],
11552 "nodeType": "FunctionCall",
11553 "src": "3206:31:38",
11554 "typeDescriptions": {
11555 "typeIdentifier": "t_tuple$__$",
11556 "typeString": "tuple()"
11557 }
11558 },
11559 "id": 11726,
11560 "nodeType": "ExpressionStatement",
11561 "src": "3206:31:38"
11562 },
11563 {
11564 "eventCall": {
11565 "argumentTypes": null,
11566 "arguments": [
11567 {
11568 "argumentTypes": null,
11569 "id": 11728,
11570 "name": "owner",
11571 "nodeType": "Identifier",
11572 "overloadedDeclarations": [],
11573 "referencedDeclaration": 11686,
11574 "src": "3273:5:38",
11575 "typeDescriptions": {
11576 "typeIdentifier": "t_address",
11577 "typeString": "address"
11578 }
11579 },
11580 {
11581 "argumentTypes": null,
11582 "id": 11729,
11583 "name": "newOwner",
11584 "nodeType": "Identifier",
11585 "overloadedDeclarations": [],
11586 "referencedDeclaration": 11714,
11587 "src": "3280:8:38",
11588 "typeDescriptions": {
11589 "typeIdentifier": "t_address",
11590 "typeString": "address"
11591 }
11592 }
11593 ],
11594 "expression": {
11595 "argumentTypes": [
11596 {
11597 "typeIdentifier": "t_address",
11598 "typeString": "address"
11599 },
11600 {
11601 "typeIdentifier": "t_address",
11602 "typeString": "address"
11603 }
11604 ],
11605 "id": 11727,
11606 "name": "OwnershipTransferred",
11607 "nodeType": "Identifier",
11608 "overloadedDeclarations": [],
11609 "referencedDeclaration": 11692,
11610 "src": "3252:20:38",
11611 "typeDescriptions": {
11612 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
11613 "typeString": "function (address,address)"
11614 }
11615 },
11616 "id": 11730,
11617 "isConstant": false,
11618 "isLValue": false,
11619 "isPure": false,
11620 "kind": "functionCall",
11621 "lValueRequested": false,
11622 "names": [],
11623 "nodeType": "FunctionCall",
11624 "src": "3252:37:38",
11625 "typeDescriptions": {
11626 "typeIdentifier": "t_tuple$__$",
11627 "typeString": "tuple()"
11628 }
11629 },
11630 "id": 11731,
11631 "nodeType": "EmitStatement",
11632 "src": "3247:42:38"
11633 },
11634 {
11635 "expression": {
11636 "argumentTypes": null,
11637 "id": 11734,
11638 "isConstant": false,
11639 "isLValue": false,
11640 "isPure": false,
11641 "lValueRequested": false,
11642 "leftHandSide": {
11643 "argumentTypes": null,
11644 "id": 11732,
11645 "name": "owner",
11646 "nodeType": "Identifier",
11647 "overloadedDeclarations": [],
11648 "referencedDeclaration": 11686,
11649 "src": "3299:5:38",
11650 "typeDescriptions": {
11651 "typeIdentifier": "t_address",
11652 "typeString": "address"
11653 }
11654 },
11655 "nodeType": "Assignment",
11656 "operator": "=",
11657 "rightHandSide": {
11658 "argumentTypes": null,
11659 "id": 11733,
11660 "name": "newOwner",
11661 "nodeType": "Identifier",
11662 "overloadedDeclarations": [],
11663 "referencedDeclaration": 11714,
11664 "src": "3307:8:38",
11665 "typeDescriptions": {
11666 "typeIdentifier": "t_address",
11667 "typeString": "address"
11668 }
11669 },
11670 "src": "3299:16:38",
11671 "typeDescriptions": {
11672 "typeIdentifier": "t_address",
11673 "typeString": "address"
11674 }
11675 },
11676 "id": 11735,
11677 "nodeType": "ExpressionStatement",
11678 "src": "3299:16:38"
11679 }
11680 ]
11681 },
11682 "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param newOwner The address to transfer ownership to.",
11683 "id": 11737,
11684 "implemented": true,
11685 "isConstructor": false,
11686 "isDeclaredConst": false,
11687 "modifiers": [
11688 {
11689 "arguments": null,
11690 "id": 11717,
11691 "modifierName": {
11692 "argumentTypes": null,
11693 "id": 11716,
11694 "name": "onlyOwner",
11695 "nodeType": "Identifier",
11696 "overloadedDeclarations": [],
11697 "referencedDeclaration": 11712,
11698 "src": "3179:9:38",
11699 "typeDescriptions": {
11700 "typeIdentifier": "t_modifier$__$",
11701 "typeString": "modifier ()"
11702 }
11703 },
11704 "nodeType": "ModifierInvocation",
11705 "src": "3179:9:38"
11706 }
11707 ],
11708 "name": "transferOwnership",
11709 "nodeType": "FunctionDefinition",
11710 "parameters": {
11711 "id": 11715,
11712 "nodeType": "ParameterList",
11713 "parameters": [
11714 {
11715 "constant": false,
11716 "id": 11714,
11717 "name": "newOwner",
11718 "nodeType": "VariableDeclaration",
11719 "scope": 11737,
11720 "src": "3161:16:38",
11721 "stateVariable": false,
11722 "storageLocation": "default",
11723 "typeDescriptions": {
11724 "typeIdentifier": "t_address",
11725 "typeString": "address"
11726 },
11727 "typeName": {
11728 "id": 11713,
11729 "name": "address",
11730 "nodeType": "ElementaryTypeName",
11731 "src": "3161:7:38",
11732 "typeDescriptions": {
11733 "typeIdentifier": "t_address",
11734 "typeString": "address"
11735 }
11736 },
11737 "value": null,
11738 "visibility": "internal"
11739 }
11740 ],
11741 "src": "3160:18:38"
11742 },
11743 "payable": false,
11744 "returnParameters": {
11745 "id": 11718,
11746 "nodeType": "ParameterList",
11747 "parameters": [],
11748 "src": "3196:0:38"
11749 },
11750 "scope": 11738,
11751 "src": "3134:188:38",
11752 "stateMutability": "nonpayable",
11753 "superFunction": null,
11754 "visibility": "public"
11755 }
11756 ],
11757 "scope": 12078,
11758 "src": "2482:842:38"
11759 },
11760 {
11761 "baseContracts": [
11762 {
11763 "arguments": null,
11764 "baseName": {
11765 "contractScope": null,
11766 "id": 11739,
11767 "name": "ERC20",
11768 "nodeType": "UserDefinedTypeName",
11769 "referencedDeclaration": 11611,
11770 "src": "3352:5:38",
11771 "typeDescriptions": {
11772 "typeIdentifier": "t_contract$_ERC20_$11611",
11773 "typeString": "contract ERC20"
11774 }
11775 },
11776 "id": 11740,
11777 "nodeType": "InheritanceSpecifier",
11778 "src": "3352:5:38"
11779 },
11780 {
11781 "arguments": null,
11782 "baseName": {
11783 "contractScope": null,
11784 "id": 11741,
11785 "name": "BasicToken",
11786 "nodeType": "UserDefinedTypeName",
11787 "referencedDeclaration": 11684,
11788 "src": "3359:10:38",
11789 "typeDescriptions": {
11790 "typeIdentifier": "t_contract$_BasicToken_$11684",
11791 "typeString": "contract BasicToken"
11792 }
11793 },
11794 "id": 11742,
11795 "nodeType": "InheritanceSpecifier",
11796 "src": "3359:10:38"
11797 }
11798 ],
11799 "contractDependencies": [
11800 11571,
11801 11611,
11802 11684
11803 ],
11804 "contractKind": "contract",
11805 "documentation": null,
11806 "fullyImplemented": true,
11807 "id": 11965,
11808 "linearizedBaseContracts": [
11809 11965,
11810 11684,
11811 11611,
11812 11571
11813 ],
11814 "name": "StandardToken",
11815 "nodeType": "ContractDefinition",
11816 "nodes": [
11817 {
11818 "constant": false,
11819 "id": 11748,
11820 "name": "allowed",
11821 "nodeType": "VariableDeclaration",
11822 "scope": 11965,
11823 "src": "3376:57:38",
11824 "stateVariable": true,
11825 "storageLocation": "default",
11826 "typeDescriptions": {
11827 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
11828 "typeString": "mapping(address => mapping(address => uint256))"
11829 },
11830 "typeName": {
11831 "id": 11747,
11832 "keyType": {
11833 "id": 11743,
11834 "name": "address",
11835 "nodeType": "ElementaryTypeName",
11836 "src": "3385:7:38",
11837 "typeDescriptions": {
11838 "typeIdentifier": "t_address",
11839 "typeString": "address"
11840 }
11841 },
11842 "nodeType": "Mapping",
11843 "src": "3376:49:38",
11844 "typeDescriptions": {
11845 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
11846 "typeString": "mapping(address => mapping(address => uint256))"
11847 },
11848 "valueType": {
11849 "id": 11746,
11850 "keyType": {
11851 "id": 11744,
11852 "name": "address",
11853 "nodeType": "ElementaryTypeName",
11854 "src": "3405:7:38",
11855 "typeDescriptions": {
11856 "typeIdentifier": "t_address",
11857 "typeString": "address"
11858 }
11859 },
11860 "nodeType": "Mapping",
11861 "src": "3396:28:38",
11862 "typeDescriptions": {
11863 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
11864 "typeString": "mapping(address => uint256)"
11865 },
11866 "valueType": {
11867 "id": 11745,
11868 "name": "uint256",
11869 "nodeType": "ElementaryTypeName",
11870 "src": "3416:7:38",
11871 "typeDescriptions": {
11872 "typeIdentifier": "t_uint256",
11873 "typeString": "uint256"
11874 }
11875 }
11876 }
11877 },
11878 "value": null,
11879 "visibility": "internal"
11880 },
11881 {
11882 "body": {
11883 "id": 11818,
11884 "nodeType": "Block",
11885 "src": "3810:485:38",
11886 "statements": [
11887 {
11888 "expression": {
11889 "argumentTypes": null,
11890 "arguments": [
11891 {
11892 "argumentTypes": null,
11893 "commonType": {
11894 "typeIdentifier": "t_address",
11895 "typeString": "address"
11896 },
11897 "id": 11764,
11898 "isConstant": false,
11899 "isLValue": false,
11900 "isPure": false,
11901 "lValueRequested": false,
11902 "leftExpression": {
11903 "argumentTypes": null,
11904 "id": 11760,
11905 "name": "_to",
11906 "nodeType": "Identifier",
11907 "overloadedDeclarations": [],
11908 "referencedDeclaration": 11752,
11909 "src": "3828:3:38",
11910 "typeDescriptions": {
11911 "typeIdentifier": "t_address",
11912 "typeString": "address"
11913 }
11914 },
11915 "nodeType": "BinaryOperation",
11916 "operator": "!=",
11917 "rightExpression": {
11918 "argumentTypes": null,
11919 "arguments": [
11920 {
11921 "argumentTypes": null,
11922 "hexValue": "30",
11923 "id": 11762,
11924 "isConstant": false,
11925 "isLValue": false,
11926 "isPure": true,
11927 "kind": "number",
11928 "lValueRequested": false,
11929 "nodeType": "Literal",
11930 "src": "3843:1:38",
11931 "subdenomination": null,
11932 "typeDescriptions": {
11933 "typeIdentifier": "t_rational_0_by_1",
11934 "typeString": "int_const 0"
11935 },
11936 "value": "0"
11937 }
11938 ],
11939 "expression": {
11940 "argumentTypes": [
11941 {
11942 "typeIdentifier": "t_rational_0_by_1",
11943 "typeString": "int_const 0"
11944 }
11945 ],
11946 "id": 11761,
11947 "isConstant": false,
11948 "isLValue": false,
11949 "isPure": true,
11950 "lValueRequested": false,
11951 "nodeType": "ElementaryTypeNameExpression",
11952 "src": "3835:7:38",
11953 "typeDescriptions": {
11954 "typeIdentifier": "t_type$_t_address_$",
11955 "typeString": "type(address)"
11956 },
11957 "typeName": "address"
11958 },
11959 "id": 11763,
11960 "isConstant": false,
11961 "isLValue": false,
11962 "isPure": true,
11963 "kind": "typeConversion",
11964 "lValueRequested": false,
11965 "names": [],
11966 "nodeType": "FunctionCall",
11967 "src": "3835:10:38",
11968 "typeDescriptions": {
11969 "typeIdentifier": "t_address",
11970 "typeString": "address"
11971 }
11972 },
11973 "src": "3828:17:38",
11974 "typeDescriptions": {
11975 "typeIdentifier": "t_bool",
11976 "typeString": "bool"
11977 }
11978 }
11979 ],
11980 "expression": {
11981 "argumentTypes": [
11982 {
11983 "typeIdentifier": "t_bool",
11984 "typeString": "bool"
11985 }
11986 ],
11987 "id": 11759,
11988 "name": "require",
11989 "nodeType": "Identifier",
11990 "overloadedDeclarations": [
11991 12095,
11992 12096
11993 ],
11994 "referencedDeclaration": 12095,
11995 "src": "3820:7:38",
11996 "typeDescriptions": {
11997 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
11998 "typeString": "function (bool) pure"
11999 }
12000 },
12001 "id": 11765,
12002 "isConstant": false,
12003 "isLValue": false,
12004 "isPure": false,
12005 "kind": "functionCall",
12006 "lValueRequested": false,
12007 "names": [],
12008 "nodeType": "FunctionCall",
12009 "src": "3820:26:38",
12010 "typeDescriptions": {
12011 "typeIdentifier": "t_tuple$__$",
12012 "typeString": "tuple()"
12013 }
12014 },
12015 "id": 11766,
12016 "nodeType": "ExpressionStatement",
12017 "src": "3820:26:38"
12018 },
12019 {
12020 "assignments": [
12021 11768
12022 ],
12023 "declarations": [
12024 {
12025 "constant": false,
12026 "id": 11768,
12027 "name": "_allowance",
12028 "nodeType": "VariableDeclaration",
12029 "scope": 11819,
12030 "src": "3856:18:38",
12031 "stateVariable": false,
12032 "storageLocation": "default",
12033 "typeDescriptions": {
12034 "typeIdentifier": "t_uint256",
12035 "typeString": "uint256"
12036 },
12037 "typeName": {
12038 "id": 11767,
12039 "name": "uint256",
12040 "nodeType": "ElementaryTypeName",
12041 "src": "3856:7:38",
12042 "typeDescriptions": {
12043 "typeIdentifier": "t_uint256",
12044 "typeString": "uint256"
12045 }
12046 },
12047 "value": null,
12048 "visibility": "internal"
12049 }
12050 ],
12051 "id": 11775,
12052 "initialValue": {
12053 "argumentTypes": null,
12054 "baseExpression": {
12055 "argumentTypes": null,
12056 "baseExpression": {
12057 "argumentTypes": null,
12058 "id": 11769,
12059 "name": "allowed",
12060 "nodeType": "Identifier",
12061 "overloadedDeclarations": [],
12062 "referencedDeclaration": 11748,
12063 "src": "3877:7:38",
12064 "typeDescriptions": {
12065 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
12066 "typeString": "mapping(address => mapping(address => uint256))"
12067 }
12068 },
12069 "id": 11771,
12070 "indexExpression": {
12071 "argumentTypes": null,
12072 "id": 11770,
12073 "name": "_from",
12074 "nodeType": "Identifier",
12075 "overloadedDeclarations": [],
12076 "referencedDeclaration": 11750,
12077 "src": "3885:5:38",
12078 "typeDescriptions": {
12079 "typeIdentifier": "t_address",
12080 "typeString": "address"
12081 }
12082 },
12083 "isConstant": false,
12084 "isLValue": true,
12085 "isPure": false,
12086 "lValueRequested": false,
12087 "nodeType": "IndexAccess",
12088 "src": "3877:14:38",
12089 "typeDescriptions": {
12090 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12091 "typeString": "mapping(address => uint256)"
12092 }
12093 },
12094 "id": 11774,
12095 "indexExpression": {
12096 "argumentTypes": null,
12097 "expression": {
12098 "argumentTypes": null,
12099 "id": 11772,
12100 "name": "msg",
12101 "nodeType": "Identifier",
12102 "overloadedDeclarations": [],
12103 "referencedDeclaration": 12092,
12104 "src": "3892:3:38",
12105 "typeDescriptions": {
12106 "typeIdentifier": "t_magic_message",
12107 "typeString": "msg"
12108 }
12109 },
12110 "id": 11773,
12111 "isConstant": false,
12112 "isLValue": false,
12113 "isPure": false,
12114 "lValueRequested": false,
12115 "memberName": "sender",
12116 "nodeType": "MemberAccess",
12117 "referencedDeclaration": null,
12118 "src": "3892:10:38",
12119 "typeDescriptions": {
12120 "typeIdentifier": "t_address",
12121 "typeString": "address"
12122 }
12123 },
12124 "isConstant": false,
12125 "isLValue": true,
12126 "isPure": false,
12127 "lValueRequested": false,
12128 "nodeType": "IndexAccess",
12129 "src": "3877:26:38",
12130 "typeDescriptions": {
12131 "typeIdentifier": "t_uint256",
12132 "typeString": "uint256"
12133 }
12134 },
12135 "nodeType": "VariableDeclarationStatement",
12136 "src": "3856:47:38"
12137 },
12138 {
12139 "expression": {
12140 "argumentTypes": null,
12141 "id": 11785,
12142 "isConstant": false,
12143 "isLValue": false,
12144 "isPure": false,
12145 "lValueRequested": false,
12146 "leftHandSide": {
12147 "argumentTypes": null,
12148 "baseExpression": {
12149 "argumentTypes": null,
12150 "id": 11776,
12151 "name": "balances",
12152 "nodeType": "Identifier",
12153 "overloadedDeclarations": [],
12154 "referencedDeclaration": 11620,
12155 "src": "4067:8:38",
12156 "typeDescriptions": {
12157 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12158 "typeString": "mapping(address => uint256)"
12159 }
12160 },
12161 "id": 11778,
12162 "indexExpression": {
12163 "argumentTypes": null,
12164 "id": 11777,
12165 "name": "_from",
12166 "nodeType": "Identifier",
12167 "overloadedDeclarations": [],
12168 "referencedDeclaration": 11750,
12169 "src": "4076:5:38",
12170 "typeDescriptions": {
12171 "typeIdentifier": "t_address",
12172 "typeString": "address"
12173 }
12174 },
12175 "isConstant": false,
12176 "isLValue": true,
12177 "isPure": false,
12178 "lValueRequested": true,
12179 "nodeType": "IndexAccess",
12180 "src": "4067:15:38",
12181 "typeDescriptions": {
12182 "typeIdentifier": "t_uint256",
12183 "typeString": "uint256"
12184 }
12185 },
12186 "nodeType": "Assignment",
12187 "operator": "=",
12188 "rightHandSide": {
12189 "argumentTypes": null,
12190 "arguments": [
12191 {
12192 "argumentTypes": null,
12193 "id": 11783,
12194 "name": "_value",
12195 "nodeType": "Identifier",
12196 "overloadedDeclarations": [],
12197 "referencedDeclaration": 11754,
12198 "src": "4105:6:38",
12199 "typeDescriptions": {
12200 "typeIdentifier": "t_uint256",
12201 "typeString": "uint256"
12202 }
12203 }
12204 ],
12205 "expression": {
12206 "argumentTypes": [
12207 {
12208 "typeIdentifier": "t_uint256",
12209 "typeString": "uint256"
12210 }
12211 ],
12212 "expression": {
12213 "argumentTypes": null,
12214 "baseExpression": {
12215 "argumentTypes": null,
12216 "id": 11779,
12217 "name": "balances",
12218 "nodeType": "Identifier",
12219 "overloadedDeclarations": [],
12220 "referencedDeclaration": 11620,
12221 "src": "4085:8:38",
12222 "typeDescriptions": {
12223 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12224 "typeString": "mapping(address => uint256)"
12225 }
12226 },
12227 "id": 11781,
12228 "indexExpression": {
12229 "argumentTypes": null,
12230 "id": 11780,
12231 "name": "_from",
12232 "nodeType": "Identifier",
12233 "overloadedDeclarations": [],
12234 "referencedDeclaration": 11750,
12235 "src": "4094:5:38",
12236 "typeDescriptions": {
12237 "typeIdentifier": "t_address",
12238 "typeString": "address"
12239 }
12240 },
12241 "isConstant": false,
12242 "isLValue": true,
12243 "isPure": false,
12244 "lValueRequested": false,
12245 "nodeType": "IndexAccess",
12246 "src": "4085:15:38",
12247 "typeDescriptions": {
12248 "typeIdentifier": "t_uint256",
12249 "typeString": "uint256"
12250 }
12251 },
12252 "id": 11782,
12253 "isConstant": false,
12254 "isLValue": false,
12255 "isPure": false,
12256 "lValueRequested": false,
12257 "memberName": "sub",
12258 "nodeType": "MemberAccess",
12259 "referencedDeclaration": 11519,
12260 "src": "4085:19:38",
12261 "typeDescriptions": {
12262 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
12263 "typeString": "function (uint256,uint256) pure returns (uint256)"
12264 }
12265 },
12266 "id": 11784,
12267 "isConstant": false,
12268 "isLValue": false,
12269 "isPure": false,
12270 "kind": "functionCall",
12271 "lValueRequested": false,
12272 "names": [],
12273 "nodeType": "FunctionCall",
12274 "src": "4085:27:38",
12275 "typeDescriptions": {
12276 "typeIdentifier": "t_uint256",
12277 "typeString": "uint256"
12278 }
12279 },
12280 "src": "4067:45:38",
12281 "typeDescriptions": {
12282 "typeIdentifier": "t_uint256",
12283 "typeString": "uint256"
12284 }
12285 },
12286 "id": 11786,
12287 "nodeType": "ExpressionStatement",
12288 "src": "4067:45:38"
12289 },
12290 {
12291 "expression": {
12292 "argumentTypes": null,
12293 "id": 11796,
12294 "isConstant": false,
12295 "isLValue": false,
12296 "isPure": false,
12297 "lValueRequested": false,
12298 "leftHandSide": {
12299 "argumentTypes": null,
12300 "baseExpression": {
12301 "argumentTypes": null,
12302 "id": 11787,
12303 "name": "balances",
12304 "nodeType": "Identifier",
12305 "overloadedDeclarations": [],
12306 "referencedDeclaration": 11620,
12307 "src": "4122:8:38",
12308 "typeDescriptions": {
12309 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12310 "typeString": "mapping(address => uint256)"
12311 }
12312 },
12313 "id": 11789,
12314 "indexExpression": {
12315 "argumentTypes": null,
12316 "id": 11788,
12317 "name": "_to",
12318 "nodeType": "Identifier",
12319 "overloadedDeclarations": [],
12320 "referencedDeclaration": 11752,
12321 "src": "4131:3:38",
12322 "typeDescriptions": {
12323 "typeIdentifier": "t_address",
12324 "typeString": "address"
12325 }
12326 },
12327 "isConstant": false,
12328 "isLValue": true,
12329 "isPure": false,
12330 "lValueRequested": true,
12331 "nodeType": "IndexAccess",
12332 "src": "4122:13:38",
12333 "typeDescriptions": {
12334 "typeIdentifier": "t_uint256",
12335 "typeString": "uint256"
12336 }
12337 },
12338 "nodeType": "Assignment",
12339 "operator": "=",
12340 "rightHandSide": {
12341 "argumentTypes": null,
12342 "arguments": [
12343 {
12344 "argumentTypes": null,
12345 "id": 11794,
12346 "name": "_value",
12347 "nodeType": "Identifier",
12348 "overloadedDeclarations": [],
12349 "referencedDeclaration": 11754,
12350 "src": "4156:6:38",
12351 "typeDescriptions": {
12352 "typeIdentifier": "t_uint256",
12353 "typeString": "uint256"
12354 }
12355 }
12356 ],
12357 "expression": {
12358 "argumentTypes": [
12359 {
12360 "typeIdentifier": "t_uint256",
12361 "typeString": "uint256"
12362 }
12363 ],
12364 "expression": {
12365 "argumentTypes": null,
12366 "baseExpression": {
12367 "argumentTypes": null,
12368 "id": 11790,
12369 "name": "balances",
12370 "nodeType": "Identifier",
12371 "overloadedDeclarations": [],
12372 "referencedDeclaration": 11620,
12373 "src": "4138:8:38",
12374 "typeDescriptions": {
12375 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12376 "typeString": "mapping(address => uint256)"
12377 }
12378 },
12379 "id": 11792,
12380 "indexExpression": {
12381 "argumentTypes": null,
12382 "id": 11791,
12383 "name": "_to",
12384 "nodeType": "Identifier",
12385 "overloadedDeclarations": [],
12386 "referencedDeclaration": 11752,
12387 "src": "4147:3:38",
12388 "typeDescriptions": {
12389 "typeIdentifier": "t_address",
12390 "typeString": "address"
12391 }
12392 },
12393 "isConstant": false,
12394 "isLValue": true,
12395 "isPure": false,
12396 "lValueRequested": false,
12397 "nodeType": "IndexAccess",
12398 "src": "4138:13:38",
12399 "typeDescriptions": {
12400 "typeIdentifier": "t_uint256",
12401 "typeString": "uint256"
12402 }
12403 },
12404 "id": 11793,
12405 "isConstant": false,
12406 "isLValue": false,
12407 "isPure": false,
12408 "lValueRequested": false,
12409 "memberName": "add",
12410 "nodeType": "MemberAccess",
12411 "referencedDeclaration": 11543,
12412 "src": "4138:17:38",
12413 "typeDescriptions": {
12414 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
12415 "typeString": "function (uint256,uint256) pure returns (uint256)"
12416 }
12417 },
12418 "id": 11795,
12419 "isConstant": false,
12420 "isLValue": false,
12421 "isPure": false,
12422 "kind": "functionCall",
12423 "lValueRequested": false,
12424 "names": [],
12425 "nodeType": "FunctionCall",
12426 "src": "4138:25:38",
12427 "typeDescriptions": {
12428 "typeIdentifier": "t_uint256",
12429 "typeString": "uint256"
12430 }
12431 },
12432 "src": "4122:41:38",
12433 "typeDescriptions": {
12434 "typeIdentifier": "t_uint256",
12435 "typeString": "uint256"
12436 }
12437 },
12438 "id": 11797,
12439 "nodeType": "ExpressionStatement",
12440 "src": "4122:41:38"
12441 },
12442 {
12443 "expression": {
12444 "argumentTypes": null,
12445 "id": 11808,
12446 "isConstant": false,
12447 "isLValue": false,
12448 "isPure": false,
12449 "lValueRequested": false,
12450 "leftHandSide": {
12451 "argumentTypes": null,
12452 "baseExpression": {
12453 "argumentTypes": null,
12454 "baseExpression": {
12455 "argumentTypes": null,
12456 "id": 11798,
12457 "name": "allowed",
12458 "nodeType": "Identifier",
12459 "overloadedDeclarations": [],
12460 "referencedDeclaration": 11748,
12461 "src": "4173:7:38",
12462 "typeDescriptions": {
12463 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
12464 "typeString": "mapping(address => mapping(address => uint256))"
12465 }
12466 },
12467 "id": 11802,
12468 "indexExpression": {
12469 "argumentTypes": null,
12470 "id": 11799,
12471 "name": "_from",
12472 "nodeType": "Identifier",
12473 "overloadedDeclarations": [],
12474 "referencedDeclaration": 11750,
12475 "src": "4181:5:38",
12476 "typeDescriptions": {
12477 "typeIdentifier": "t_address",
12478 "typeString": "address"
12479 }
12480 },
12481 "isConstant": false,
12482 "isLValue": true,
12483 "isPure": false,
12484 "lValueRequested": false,
12485 "nodeType": "IndexAccess",
12486 "src": "4173:14:38",
12487 "typeDescriptions": {
12488 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12489 "typeString": "mapping(address => uint256)"
12490 }
12491 },
12492 "id": 11803,
12493 "indexExpression": {
12494 "argumentTypes": null,
12495 "expression": {
12496 "argumentTypes": null,
12497 "id": 11800,
12498 "name": "msg",
12499 "nodeType": "Identifier",
12500 "overloadedDeclarations": [],
12501 "referencedDeclaration": 12092,
12502 "src": "4188:3:38",
12503 "typeDescriptions": {
12504 "typeIdentifier": "t_magic_message",
12505 "typeString": "msg"
12506 }
12507 },
12508 "id": 11801,
12509 "isConstant": false,
12510 "isLValue": false,
12511 "isPure": false,
12512 "lValueRequested": false,
12513 "memberName": "sender",
12514 "nodeType": "MemberAccess",
12515 "referencedDeclaration": null,
12516 "src": "4188:10:38",
12517 "typeDescriptions": {
12518 "typeIdentifier": "t_address",
12519 "typeString": "address"
12520 }
12521 },
12522 "isConstant": false,
12523 "isLValue": true,
12524 "isPure": false,
12525 "lValueRequested": true,
12526 "nodeType": "IndexAccess",
12527 "src": "4173:26:38",
12528 "typeDescriptions": {
12529 "typeIdentifier": "t_uint256",
12530 "typeString": "uint256"
12531 }
12532 },
12533 "nodeType": "Assignment",
12534 "operator": "=",
12535 "rightHandSide": {
12536 "argumentTypes": null,
12537 "arguments": [
12538 {
12539 "argumentTypes": null,
12540 "id": 11806,
12541 "name": "_value",
12542 "nodeType": "Identifier",
12543 "overloadedDeclarations": [],
12544 "referencedDeclaration": 11754,
12545 "src": "4217:6:38",
12546 "typeDescriptions": {
12547 "typeIdentifier": "t_uint256",
12548 "typeString": "uint256"
12549 }
12550 }
12551 ],
12552 "expression": {
12553 "argumentTypes": [
12554 {
12555 "typeIdentifier": "t_uint256",
12556 "typeString": "uint256"
12557 }
12558 ],
12559 "expression": {
12560 "argumentTypes": null,
12561 "id": 11804,
12562 "name": "_allowance",
12563 "nodeType": "Identifier",
12564 "overloadedDeclarations": [],
12565 "referencedDeclaration": 11768,
12566 "src": "4202:10:38",
12567 "typeDescriptions": {
12568 "typeIdentifier": "t_uint256",
12569 "typeString": "uint256"
12570 }
12571 },
12572 "id": 11805,
12573 "isConstant": false,
12574 "isLValue": false,
12575 "isPure": false,
12576 "lValueRequested": false,
12577 "memberName": "sub",
12578 "nodeType": "MemberAccess",
12579 "referencedDeclaration": 11519,
12580 "src": "4202:14:38",
12581 "typeDescriptions": {
12582 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
12583 "typeString": "function (uint256,uint256) pure returns (uint256)"
12584 }
12585 },
12586 "id": 11807,
12587 "isConstant": false,
12588 "isLValue": false,
12589 "isPure": false,
12590 "kind": "functionCall",
12591 "lValueRequested": false,
12592 "names": [],
12593 "nodeType": "FunctionCall",
12594 "src": "4202:22:38",
12595 "typeDescriptions": {
12596 "typeIdentifier": "t_uint256",
12597 "typeString": "uint256"
12598 }
12599 },
12600 "src": "4173:51:38",
12601 "typeDescriptions": {
12602 "typeIdentifier": "t_uint256",
12603 "typeString": "uint256"
12604 }
12605 },
12606 "id": 11809,
12607 "nodeType": "ExpressionStatement",
12608 "src": "4173:51:38"
12609 },
12610 {
12611 "eventCall": {
12612 "argumentTypes": null,
12613 "arguments": [
12614 {
12615 "argumentTypes": null,
12616 "id": 11811,
12617 "name": "_from",
12618 "nodeType": "Identifier",
12619 "overloadedDeclarations": [],
12620 "referencedDeclaration": 11750,
12621 "src": "4248:5:38",
12622 "typeDescriptions": {
12623 "typeIdentifier": "t_address",
12624 "typeString": "address"
12625 }
12626 },
12627 {
12628 "argumentTypes": null,
12629 "id": 11812,
12630 "name": "_to",
12631 "nodeType": "Identifier",
12632 "overloadedDeclarations": [],
12633 "referencedDeclaration": 11752,
12634 "src": "4255:3:38",
12635 "typeDescriptions": {
12636 "typeIdentifier": "t_address",
12637 "typeString": "address"
12638 }
12639 },
12640 {
12641 "argumentTypes": null,
12642 "id": 11813,
12643 "name": "_value",
12644 "nodeType": "Identifier",
12645 "overloadedDeclarations": [],
12646 "referencedDeclaration": 11754,
12647 "src": "4260:6:38",
12648 "typeDescriptions": {
12649 "typeIdentifier": "t_uint256",
12650 "typeString": "uint256"
12651 }
12652 }
12653 ],
12654 "expression": {
12655 "argumentTypes": [
12656 {
12657 "typeIdentifier": "t_address",
12658 "typeString": "address"
12659 },
12660 {
12661 "typeIdentifier": "t_address",
12662 "typeString": "address"
12663 },
12664 {
12665 "typeIdentifier": "t_uint256",
12666 "typeString": "uint256"
12667 }
12668 ],
12669 "id": 11810,
12670 "name": "Transfer",
12671 "nodeType": "Identifier",
12672 "overloadedDeclarations": [],
12673 "referencedDeclaration": 11570,
12674 "src": "4239:8:38",
12675 "typeDescriptions": {
12676 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
12677 "typeString": "function (address,address,uint256)"
12678 }
12679 },
12680 "id": 11814,
12681 "isConstant": false,
12682 "isLValue": false,
12683 "isPure": false,
12684 "kind": "functionCall",
12685 "lValueRequested": false,
12686 "names": [],
12687 "nodeType": "FunctionCall",
12688 "src": "4239:28:38",
12689 "typeDescriptions": {
12690 "typeIdentifier": "t_tuple$__$",
12691 "typeString": "tuple()"
12692 }
12693 },
12694 "id": 11815,
12695 "nodeType": "EmitStatement",
12696 "src": "4234:33:38"
12697 },
12698 {
12699 "expression": {
12700 "argumentTypes": null,
12701 "hexValue": "74727565",
12702 "id": 11816,
12703 "isConstant": false,
12704 "isLValue": false,
12705 "isPure": true,
12706 "kind": "bool",
12707 "lValueRequested": false,
12708 "nodeType": "Literal",
12709 "src": "4284:4:38",
12710 "subdenomination": null,
12711 "typeDescriptions": {
12712 "typeIdentifier": "t_bool",
12713 "typeString": "bool"
12714 },
12715 "value": "true"
12716 },
12717 "functionReturnParameters": 11758,
12718 "id": 11817,
12719 "nodeType": "Return",
12720 "src": "4277:11:38"
12721 }
12722 ]
12723 },
12724 "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred",
12725 "id": 11819,
12726 "implemented": true,
12727 "isConstructor": false,
12728 "isDeclaredConst": false,
12729 "modifiers": [],
12730 "name": "transferFrom",
12731 "nodeType": "FunctionDefinition",
12732 "parameters": {
12733 "id": 11755,
12734 "nodeType": "ParameterList",
12735 "parameters": [
12736 {
12737 "constant": false,
12738 "id": 11750,
12739 "name": "_from",
12740 "nodeType": "VariableDeclaration",
12741 "scope": 11819,
12742 "src": "3744:13:38",
12743 "stateVariable": false,
12744 "storageLocation": "default",
12745 "typeDescriptions": {
12746 "typeIdentifier": "t_address",
12747 "typeString": "address"
12748 },
12749 "typeName": {
12750 "id": 11749,
12751 "name": "address",
12752 "nodeType": "ElementaryTypeName",
12753 "src": "3744:7:38",
12754 "typeDescriptions": {
12755 "typeIdentifier": "t_address",
12756 "typeString": "address"
12757 }
12758 },
12759 "value": null,
12760 "visibility": "internal"
12761 },
12762 {
12763 "constant": false,
12764 "id": 11752,
12765 "name": "_to",
12766 "nodeType": "VariableDeclaration",
12767 "scope": 11819,
12768 "src": "3759:11:38",
12769 "stateVariable": false,
12770 "storageLocation": "default",
12771 "typeDescriptions": {
12772 "typeIdentifier": "t_address",
12773 "typeString": "address"
12774 },
12775 "typeName": {
12776 "id": 11751,
12777 "name": "address",
12778 "nodeType": "ElementaryTypeName",
12779 "src": "3759:7:38",
12780 "typeDescriptions": {
12781 "typeIdentifier": "t_address",
12782 "typeString": "address"
12783 }
12784 },
12785 "value": null,
12786 "visibility": "internal"
12787 },
12788 {
12789 "constant": false,
12790 "id": 11754,
12791 "name": "_value",
12792 "nodeType": "VariableDeclaration",
12793 "scope": 11819,
12794 "src": "3772:14:38",
12795 "stateVariable": false,
12796 "storageLocation": "default",
12797 "typeDescriptions": {
12798 "typeIdentifier": "t_uint256",
12799 "typeString": "uint256"
12800 },
12801 "typeName": {
12802 "id": 11753,
12803 "name": "uint256",
12804 "nodeType": "ElementaryTypeName",
12805 "src": "3772:7:38",
12806 "typeDescriptions": {
12807 "typeIdentifier": "t_uint256",
12808 "typeString": "uint256"
12809 }
12810 },
12811 "value": null,
12812 "visibility": "internal"
12813 }
12814 ],
12815 "src": "3743:44:38"
12816 },
12817 "payable": false,
12818 "returnParameters": {
12819 "id": 11758,
12820 "nodeType": "ParameterList",
12821 "parameters": [
12822 {
12823 "constant": false,
12824 "id": 11757,
12825 "name": "",
12826 "nodeType": "VariableDeclaration",
12827 "scope": 11819,
12828 "src": "3804:4:38",
12829 "stateVariable": false,
12830 "storageLocation": "default",
12831 "typeDescriptions": {
12832 "typeIdentifier": "t_bool",
12833 "typeString": "bool"
12834 },
12835 "typeName": {
12836 "id": 11756,
12837 "name": "bool",
12838 "nodeType": "ElementaryTypeName",
12839 "src": "3804:4:38",
12840 "typeDescriptions": {
12841 "typeIdentifier": "t_bool",
12842 "typeString": "bool"
12843 }
12844 },
12845 "value": null,
12846 "visibility": "internal"
12847 }
12848 ],
12849 "src": "3803:6:38"
12850 },
12851 "scope": 11965,
12852 "src": "3722:573:38",
12853 "stateMutability": "nonpayable",
12854 "superFunction": 11593,
12855 "visibility": "public"
12856 },
12857 {
12858 "body": {
12859 "id": 11846,
12860 "nodeType": "Block",
12861 "src": "5012:129:38",
12862 "statements": [
12863 {
12864 "expression": {
12865 "argumentTypes": null,
12866 "id": 11835,
12867 "isConstant": false,
12868 "isLValue": false,
12869 "isPure": false,
12870 "lValueRequested": false,
12871 "leftHandSide": {
12872 "argumentTypes": null,
12873 "baseExpression": {
12874 "argumentTypes": null,
12875 "baseExpression": {
12876 "argumentTypes": null,
12877 "id": 11828,
12878 "name": "allowed",
12879 "nodeType": "Identifier",
12880 "overloadedDeclarations": [],
12881 "referencedDeclaration": 11748,
12882 "src": "5022:7:38",
12883 "typeDescriptions": {
12884 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
12885 "typeString": "mapping(address => mapping(address => uint256))"
12886 }
12887 },
12888 "id": 11832,
12889 "indexExpression": {
12890 "argumentTypes": null,
12891 "expression": {
12892 "argumentTypes": null,
12893 "id": 11829,
12894 "name": "msg",
12895 "nodeType": "Identifier",
12896 "overloadedDeclarations": [],
12897 "referencedDeclaration": 12092,
12898 "src": "5030:3:38",
12899 "typeDescriptions": {
12900 "typeIdentifier": "t_magic_message",
12901 "typeString": "msg"
12902 }
12903 },
12904 "id": 11830,
12905 "isConstant": false,
12906 "isLValue": false,
12907 "isPure": false,
12908 "lValueRequested": false,
12909 "memberName": "sender",
12910 "nodeType": "MemberAccess",
12911 "referencedDeclaration": null,
12912 "src": "5030:10:38",
12913 "typeDescriptions": {
12914 "typeIdentifier": "t_address",
12915 "typeString": "address"
12916 }
12917 },
12918 "isConstant": false,
12919 "isLValue": true,
12920 "isPure": false,
12921 "lValueRequested": false,
12922 "nodeType": "IndexAccess",
12923 "src": "5022:19:38",
12924 "typeDescriptions": {
12925 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12926 "typeString": "mapping(address => uint256)"
12927 }
12928 },
12929 "id": 11833,
12930 "indexExpression": {
12931 "argumentTypes": null,
12932 "id": 11831,
12933 "name": "_spender",
12934 "nodeType": "Identifier",
12935 "overloadedDeclarations": [],
12936 "referencedDeclaration": 11821,
12937 "src": "5042:8:38",
12938 "typeDescriptions": {
12939 "typeIdentifier": "t_address",
12940 "typeString": "address"
12941 }
12942 },
12943 "isConstant": false,
12944 "isLValue": true,
12945 "isPure": false,
12946 "lValueRequested": true,
12947 "nodeType": "IndexAccess",
12948 "src": "5022:29:38",
12949 "typeDescriptions": {
12950 "typeIdentifier": "t_uint256",
12951 "typeString": "uint256"
12952 }
12953 },
12954 "nodeType": "Assignment",
12955 "operator": "=",
12956 "rightHandSide": {
12957 "argumentTypes": null,
12958 "id": 11834,
12959 "name": "_value",
12960 "nodeType": "Identifier",
12961 "overloadedDeclarations": [],
12962 "referencedDeclaration": 11823,
12963 "src": "5054:6:38",
12964 "typeDescriptions": {
12965 "typeIdentifier": "t_uint256",
12966 "typeString": "uint256"
12967 }
12968 },
12969 "src": "5022:38:38",
12970 "typeDescriptions": {
12971 "typeIdentifier": "t_uint256",
12972 "typeString": "uint256"
12973 }
12974 },
12975 "id": 11836,
12976 "nodeType": "ExpressionStatement",
12977 "src": "5022:38:38"
12978 },
12979 {
12980 "eventCall": {
12981 "argumentTypes": null,
12982 "arguments": [
12983 {
12984 "argumentTypes": null,
12985 "expression": {
12986 "argumentTypes": null,
12987 "id": 11838,
12988 "name": "msg",
12989 "nodeType": "Identifier",
12990 "overloadedDeclarations": [],
12991 "referencedDeclaration": 12092,
12992 "src": "5084:3:38",
12993 "typeDescriptions": {
12994 "typeIdentifier": "t_magic_message",
12995 "typeString": "msg"
12996 }
12997 },
12998 "id": 11839,
12999 "isConstant": false,
13000 "isLValue": false,
13001 "isPure": false,
13002 "lValueRequested": false,
13003 "memberName": "sender",
13004 "nodeType": "MemberAccess",
13005 "referencedDeclaration": null,
13006 "src": "5084:10:38",
13007 "typeDescriptions": {
13008 "typeIdentifier": "t_address",
13009 "typeString": "address"
13010 }
13011 },
13012 {
13013 "argumentTypes": null,
13014 "id": 11840,
13015 "name": "_spender",
13016 "nodeType": "Identifier",
13017 "overloadedDeclarations": [],
13018 "referencedDeclaration": 11821,
13019 "src": "5096:8:38",
13020 "typeDescriptions": {
13021 "typeIdentifier": "t_address",
13022 "typeString": "address"
13023 }
13024 },
13025 {
13026 "argumentTypes": null,
13027 "id": 11841,
13028 "name": "_value",
13029 "nodeType": "Identifier",
13030 "overloadedDeclarations": [],
13031 "referencedDeclaration": 11823,
13032 "src": "5106:6:38",
13033 "typeDescriptions": {
13034 "typeIdentifier": "t_uint256",
13035 "typeString": "uint256"
13036 }
13037 }
13038 ],
13039 "expression": {
13040 "argumentTypes": [
13041 {
13042 "typeIdentifier": "t_address",
13043 "typeString": "address"
13044 },
13045 {
13046 "typeIdentifier": "t_address",
13047 "typeString": "address"
13048 },
13049 {
13050 "typeIdentifier": "t_uint256",
13051 "typeString": "uint256"
13052 }
13053 ],
13054 "id": 11837,
13055 "name": "Approval",
13056 "nodeType": "Identifier",
13057 "overloadedDeclarations": [],
13058 "referencedDeclaration": 11610,
13059 "src": "5075:8:38",
13060 "typeDescriptions": {
13061 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
13062 "typeString": "function (address,address,uint256)"
13063 }
13064 },
13065 "id": 11842,
13066 "isConstant": false,
13067 "isLValue": false,
13068 "isPure": false,
13069 "kind": "functionCall",
13070 "lValueRequested": false,
13071 "names": [],
13072 "nodeType": "FunctionCall",
13073 "src": "5075:38:38",
13074 "typeDescriptions": {
13075 "typeIdentifier": "t_tuple$__$",
13076 "typeString": "tuple()"
13077 }
13078 },
13079 "id": 11843,
13080 "nodeType": "EmitStatement",
13081 "src": "5070:43:38"
13082 },
13083 {
13084 "expression": {
13085 "argumentTypes": null,
13086 "hexValue": "74727565",
13087 "id": 11844,
13088 "isConstant": false,
13089 "isLValue": false,
13090 "isPure": true,
13091 "kind": "bool",
13092 "lValueRequested": false,
13093 "nodeType": "Literal",
13094 "src": "5130:4:38",
13095 "subdenomination": null,
13096 "typeDescriptions": {
13097 "typeIdentifier": "t_bool",
13098 "typeString": "bool"
13099 },
13100 "value": "true"
13101 },
13102 "functionReturnParameters": 11827,
13103 "id": 11845,
13104 "nodeType": "Return",
13105 "src": "5123:11:38"
13106 }
13107 ]
13108 },
13109 "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.",
13110 "id": 11847,
13111 "implemented": true,
13112 "isConstructor": false,
13113 "isDeclaredConst": false,
13114 "modifiers": [],
13115 "name": "approve",
13116 "nodeType": "FunctionDefinition",
13117 "parameters": {
13118 "id": 11824,
13119 "nodeType": "ParameterList",
13120 "parameters": [
13121 {
13122 "constant": false,
13123 "id": 11821,
13124 "name": "_spender",
13125 "nodeType": "VariableDeclaration",
13126 "scope": 11847,
13127 "src": "4956:16:38",
13128 "stateVariable": false,
13129 "storageLocation": "default",
13130 "typeDescriptions": {
13131 "typeIdentifier": "t_address",
13132 "typeString": "address"
13133 },
13134 "typeName": {
13135 "id": 11820,
13136 "name": "address",
13137 "nodeType": "ElementaryTypeName",
13138 "src": "4956:7:38",
13139 "typeDescriptions": {
13140 "typeIdentifier": "t_address",
13141 "typeString": "address"
13142 }
13143 },
13144 "value": null,
13145 "visibility": "internal"
13146 },
13147 {
13148 "constant": false,
13149 "id": 11823,
13150 "name": "_value",
13151 "nodeType": "VariableDeclaration",
13152 "scope": 11847,
13153 "src": "4974:14:38",
13154 "stateVariable": false,
13155 "storageLocation": "default",
13156 "typeDescriptions": {
13157 "typeIdentifier": "t_uint256",
13158 "typeString": "uint256"
13159 },
13160 "typeName": {
13161 "id": 11822,
13162 "name": "uint256",
13163 "nodeType": "ElementaryTypeName",
13164 "src": "4974:7:38",
13165 "typeDescriptions": {
13166 "typeIdentifier": "t_uint256",
13167 "typeString": "uint256"
13168 }
13169 },
13170 "value": null,
13171 "visibility": "internal"
13172 }
13173 ],
13174 "src": "4955:34:38"
13175 },
13176 "payable": false,
13177 "returnParameters": {
13178 "id": 11827,
13179 "nodeType": "ParameterList",
13180 "parameters": [
13181 {
13182 "constant": false,
13183 "id": 11826,
13184 "name": "",
13185 "nodeType": "VariableDeclaration",
13186 "scope": 11847,
13187 "src": "5006:4:38",
13188 "stateVariable": false,
13189 "storageLocation": "default",
13190 "typeDescriptions": {
13191 "typeIdentifier": "t_bool",
13192 "typeString": "bool"
13193 },
13194 "typeName": {
13195 "id": 11825,
13196 "name": "bool",
13197 "nodeType": "ElementaryTypeName",
13198 "src": "5006:4:38",
13199 "typeDescriptions": {
13200 "typeIdentifier": "t_bool",
13201 "typeString": "bool"
13202 }
13203 },
13204 "value": null,
13205 "visibility": "internal"
13206 }
13207 ],
13208 "src": "5005:6:38"
13209 },
13210 "scope": 11965,
13211 "src": "4939:202:38",
13212 "stateMutability": "nonpayable",
13213 "superFunction": 11602,
13214 "visibility": "public"
13215 },
13216 {
13217 "body": {
13218 "id": 11862,
13219 "nodeType": "Block",
13220 "src": "5570:49:38",
13221 "statements": [
13222 {
13223 "expression": {
13224 "argumentTypes": null,
13225 "baseExpression": {
13226 "argumentTypes": null,
13227 "baseExpression": {
13228 "argumentTypes": null,
13229 "id": 11856,
13230 "name": "allowed",
13231 "nodeType": "Identifier",
13232 "overloadedDeclarations": [],
13233 "referencedDeclaration": 11748,
13234 "src": "5587:7:38",
13235 "typeDescriptions": {
13236 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
13237 "typeString": "mapping(address => mapping(address => uint256))"
13238 }
13239 },
13240 "id": 11858,
13241 "indexExpression": {
13242 "argumentTypes": null,
13243 "id": 11857,
13244 "name": "_owner",
13245 "nodeType": "Identifier",
13246 "overloadedDeclarations": [],
13247 "referencedDeclaration": 11849,
13248 "src": "5595:6:38",
13249 "typeDescriptions": {
13250 "typeIdentifier": "t_address",
13251 "typeString": "address"
13252 }
13253 },
13254 "isConstant": false,
13255 "isLValue": true,
13256 "isPure": false,
13257 "lValueRequested": false,
13258 "nodeType": "IndexAccess",
13259 "src": "5587:15:38",
13260 "typeDescriptions": {
13261 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
13262 "typeString": "mapping(address => uint256)"
13263 }
13264 },
13265 "id": 11860,
13266 "indexExpression": {
13267 "argumentTypes": null,
13268 "id": 11859,
13269 "name": "_spender",
13270 "nodeType": "Identifier",
13271 "overloadedDeclarations": [],
13272 "referencedDeclaration": 11851,
13273 "src": "5603:8:38",
13274 "typeDescriptions": {
13275 "typeIdentifier": "t_address",
13276 "typeString": "address"
13277 }
13278 },
13279 "isConstant": false,
13280 "isLValue": true,
13281 "isPure": false,
13282 "lValueRequested": false,
13283 "nodeType": "IndexAccess",
13284 "src": "5587:25:38",
13285 "typeDescriptions": {
13286 "typeIdentifier": "t_uint256",
13287 "typeString": "uint256"
13288 }
13289 },
13290 "functionReturnParameters": 11855,
13291 "id": 11861,
13292 "nodeType": "Return",
13293 "src": "5580:32:38"
13294 }
13295 ]
13296 },
13297 "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.",
13298 "id": 11863,
13299 "implemented": true,
13300 "isConstructor": false,
13301 "isDeclaredConst": true,
13302 "modifiers": [],
13303 "name": "allowance",
13304 "nodeType": "FunctionDefinition",
13305 "parameters": {
13306 "id": 11852,
13307 "nodeType": "ParameterList",
13308 "parameters": [
13309 {
13310 "constant": false,
13311 "id": 11849,
13312 "name": "_owner",
13313 "nodeType": "VariableDeclaration",
13314 "scope": 11863,
13315 "src": "5492:14:38",
13316 "stateVariable": false,
13317 "storageLocation": "default",
13318 "typeDescriptions": {
13319 "typeIdentifier": "t_address",
13320 "typeString": "address"
13321 },
13322 "typeName": {
13323 "id": 11848,
13324 "name": "address",
13325 "nodeType": "ElementaryTypeName",
13326 "src": "5492:7:38",
13327 "typeDescriptions": {
13328 "typeIdentifier": "t_address",
13329 "typeString": "address"
13330 }
13331 },
13332 "value": null,
13333 "visibility": "internal"
13334 },
13335 {
13336 "constant": false,
13337 "id": 11851,
13338 "name": "_spender",
13339 "nodeType": "VariableDeclaration",
13340 "scope": 11863,
13341 "src": "5508:16:38",
13342 "stateVariable": false,
13343 "storageLocation": "default",
13344 "typeDescriptions": {
13345 "typeIdentifier": "t_address",
13346 "typeString": "address"
13347 },
13348 "typeName": {
13349 "id": 11850,
13350 "name": "address",
13351 "nodeType": "ElementaryTypeName",
13352 "src": "5508:7:38",
13353 "typeDescriptions": {
13354 "typeIdentifier": "t_address",
13355 "typeString": "address"
13356 }
13357 },
13358 "value": null,
13359 "visibility": "internal"
13360 }
13361 ],
13362 "src": "5491:34:38"
13363 },
13364 "payable": false,
13365 "returnParameters": {
13366 "id": 11855,
13367 "nodeType": "ParameterList",
13368 "parameters": [
13369 {
13370 "constant": false,
13371 "id": 11854,
13372 "name": "remaining",
13373 "nodeType": "VariableDeclaration",
13374 "scope": 11863,
13375 "src": "5551:17:38",
13376 "stateVariable": false,
13377 "storageLocation": "default",
13378 "typeDescriptions": {
13379 "typeIdentifier": "t_uint256",
13380 "typeString": "uint256"
13381 },
13382 "typeName": {
13383 "id": 11853,
13384 "name": "uint256",
13385 "nodeType": "ElementaryTypeName",
13386 "src": "5551:7:38",
13387 "typeDescriptions": {
13388 "typeIdentifier": "t_uint256",
13389 "typeString": "uint256"
13390 }
13391 },
13392 "value": null,
13393 "visibility": "internal"
13394 }
13395 ],
13396 "src": "5550:19:38"
13397 },
13398 "scope": 11965,
13399 "src": "5473:146:38",
13400 "stateMutability": "view",
13401 "superFunction": 11582,
13402 "visibility": "public"
13403 },
13404 {
13405 "body": {
13406 "id": 11903,
13407 "nodeType": "Block",
13408 "src": "5973:192:38",
13409 "statements": [
13410 {
13411 "expression": {
13412 "argumentTypes": null,
13413 "id": 11887,
13414 "isConstant": false,
13415 "isLValue": false,
13416 "isPure": false,
13417 "lValueRequested": false,
13418 "leftHandSide": {
13419 "argumentTypes": null,
13420 "baseExpression": {
13421 "argumentTypes": null,
13422 "baseExpression": {
13423 "argumentTypes": null,
13424 "id": 11872,
13425 "name": "allowed",
13426 "nodeType": "Identifier",
13427 "overloadedDeclarations": [],
13428 "referencedDeclaration": 11748,
13429 "src": "5983:7:38",
13430 "typeDescriptions": {
13431 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
13432 "typeString": "mapping(address => mapping(address => uint256))"
13433 }
13434 },
13435 "id": 11876,
13436 "indexExpression": {
13437 "argumentTypes": null,
13438 "expression": {
13439 "argumentTypes": null,
13440 "id": 11873,
13441 "name": "msg",
13442 "nodeType": "Identifier",
13443 "overloadedDeclarations": [],
13444 "referencedDeclaration": 12092,
13445 "src": "5991:3:38",
13446 "typeDescriptions": {
13447 "typeIdentifier": "t_magic_message",
13448 "typeString": "msg"
13449 }
13450 },
13451 "id": 11874,
13452 "isConstant": false,
13453 "isLValue": false,
13454 "isPure": false,
13455 "lValueRequested": false,
13456 "memberName": "sender",
13457 "nodeType": "MemberAccess",
13458 "referencedDeclaration": null,
13459 "src": "5991:10:38",
13460 "typeDescriptions": {
13461 "typeIdentifier": "t_address",
13462 "typeString": "address"
13463 }
13464 },
13465 "isConstant": false,
13466 "isLValue": true,
13467 "isPure": false,
13468 "lValueRequested": false,
13469 "nodeType": "IndexAccess",
13470 "src": "5983:19:38",
13471 "typeDescriptions": {
13472 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
13473 "typeString": "mapping(address => uint256)"
13474 }
13475 },
13476 "id": 11877,
13477 "indexExpression": {
13478 "argumentTypes": null,
13479 "id": 11875,
13480 "name": "_spender",
13481 "nodeType": "Identifier",
13482 "overloadedDeclarations": [],
13483 "referencedDeclaration": 11865,
13484 "src": "6003:8:38",
13485 "typeDescriptions": {
13486 "typeIdentifier": "t_address",
13487 "typeString": "address"
13488 }
13489 },
13490 "isConstant": false,
13491 "isLValue": true,
13492 "isPure": false,
13493 "lValueRequested": true,
13494 "nodeType": "IndexAccess",
13495 "src": "5983:29:38",
13496 "typeDescriptions": {
13497 "typeIdentifier": "t_uint256",
13498 "typeString": "uint256"
13499 }
13500 },
13501 "nodeType": "Assignment",
13502 "operator": "=",
13503 "rightHandSide": {
13504 "argumentTypes": null,
13505 "arguments": [
13506 {
13507 "argumentTypes": null,
13508 "id": 11885,
13509 "name": "_addedValue",
13510 "nodeType": "Identifier",
13511 "overloadedDeclarations": [],
13512 "referencedDeclaration": 11867,
13513 "src": "6049:11:38",
13514 "typeDescriptions": {
13515 "typeIdentifier": "t_uint256",
13516 "typeString": "uint256"
13517 }
13518 }
13519 ],
13520 "expression": {
13521 "argumentTypes": [
13522 {
13523 "typeIdentifier": "t_uint256",
13524 "typeString": "uint256"
13525 }
13526 ],
13527 "expression": {
13528 "argumentTypes": null,
13529 "baseExpression": {
13530 "argumentTypes": null,
13531 "baseExpression": {
13532 "argumentTypes": null,
13533 "id": 11878,
13534 "name": "allowed",
13535 "nodeType": "Identifier",
13536 "overloadedDeclarations": [],
13537 "referencedDeclaration": 11748,
13538 "src": "6015:7:38",
13539 "typeDescriptions": {
13540 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
13541 "typeString": "mapping(address => mapping(address => uint256))"
13542 }
13543 },
13544 "id": 11881,
13545 "indexExpression": {
13546 "argumentTypes": null,
13547 "expression": {
13548 "argumentTypes": null,
13549 "id": 11879,
13550 "name": "msg",
13551 "nodeType": "Identifier",
13552 "overloadedDeclarations": [],
13553 "referencedDeclaration": 12092,
13554 "src": "6023:3:38",
13555 "typeDescriptions": {
13556 "typeIdentifier": "t_magic_message",
13557 "typeString": "msg"
13558 }
13559 },
13560 "id": 11880,
13561 "isConstant": false,
13562 "isLValue": false,
13563 "isPure": false,
13564 "lValueRequested": false,
13565 "memberName": "sender",
13566 "nodeType": "MemberAccess",
13567 "referencedDeclaration": null,
13568 "src": "6023:10:38",
13569 "typeDescriptions": {
13570 "typeIdentifier": "t_address",
13571 "typeString": "address"
13572 }
13573 },
13574 "isConstant": false,
13575 "isLValue": true,
13576 "isPure": false,
13577 "lValueRequested": false,
13578 "nodeType": "IndexAccess",
13579 "src": "6015:19:38",
13580 "typeDescriptions": {
13581 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
13582 "typeString": "mapping(address => uint256)"
13583 }
13584 },
13585 "id": 11883,
13586 "indexExpression": {
13587 "argumentTypes": null,
13588 "id": 11882,
13589 "name": "_spender",
13590 "nodeType": "Identifier",
13591 "overloadedDeclarations": [],
13592 "referencedDeclaration": 11865,
13593 "src": "6035:8:38",
13594 "typeDescriptions": {
13595 "typeIdentifier": "t_address",
13596 "typeString": "address"
13597 }
13598 },
13599 "isConstant": false,
13600 "isLValue": true,
13601 "isPure": false,
13602 "lValueRequested": false,
13603 "nodeType": "IndexAccess",
13604 "src": "6015:29:38",
13605 "typeDescriptions": {
13606 "typeIdentifier": "t_uint256",
13607 "typeString": "uint256"
13608 }
13609 },
13610 "id": 11884,
13611 "isConstant": false,
13612 "isLValue": false,
13613 "isPure": false,
13614 "lValueRequested": false,
13615 "memberName": "add",
13616 "nodeType": "MemberAccess",
13617 "referencedDeclaration": 11543,
13618 "src": "6015:33:38",
13619 "typeDescriptions": {
13620 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
13621 "typeString": "function (uint256,uint256) pure returns (uint256)"
13622 }
13623 },
13624 "id": 11886,
13625 "isConstant": false,
13626 "isLValue": false,
13627 "isPure": false,
13628 "kind": "functionCall",
13629 "lValueRequested": false,
13630 "names": [],
13631 "nodeType": "FunctionCall",
13632 "src": "6015:46:38",
13633 "typeDescriptions": {
13634 "typeIdentifier": "t_uint256",
13635 "typeString": "uint256"
13636 }
13637 },
13638 "src": "5983:78:38",
13639 "typeDescriptions": {
13640 "typeIdentifier": "t_uint256",
13641 "typeString": "uint256"
13642 }
13643 },
13644 "id": 11888,
13645 "nodeType": "ExpressionStatement",
13646 "src": "5983:78:38"
13647 },
13648 {
13649 "eventCall": {
13650 "argumentTypes": null,
13651 "arguments": [
13652 {
13653 "argumentTypes": null,
13654 "expression": {
13655 "argumentTypes": null,
13656 "id": 11890,
13657 "name": "msg",
13658 "nodeType": "Identifier",
13659 "overloadedDeclarations": [],
13660 "referencedDeclaration": 12092,
13661 "src": "6085:3:38",
13662 "typeDescriptions": {
13663 "typeIdentifier": "t_magic_message",
13664 "typeString": "msg"
13665 }
13666 },
13667 "id": 11891,
13668 "isConstant": false,
13669 "isLValue": false,
13670 "isPure": false,
13671 "lValueRequested": false,
13672 "memberName": "sender",
13673 "nodeType": "MemberAccess",
13674 "referencedDeclaration": null,
13675 "src": "6085:10:38",
13676 "typeDescriptions": {
13677 "typeIdentifier": "t_address",
13678 "typeString": "address"
13679 }
13680 },
13681 {
13682 "argumentTypes": null,
13683 "id": 11892,
13684 "name": "_spender",
13685 "nodeType": "Identifier",
13686 "overloadedDeclarations": [],
13687 "referencedDeclaration": 11865,
13688 "src": "6097:8:38",
13689 "typeDescriptions": {
13690 "typeIdentifier": "t_address",
13691 "typeString": "address"
13692 }
13693 },
13694 {
13695 "argumentTypes": null,
13696 "baseExpression": {
13697 "argumentTypes": null,
13698 "baseExpression": {
13699 "argumentTypes": null,
13700 "id": 11893,
13701 "name": "allowed",
13702 "nodeType": "Identifier",
13703 "overloadedDeclarations": [],
13704 "referencedDeclaration": 11748,
13705 "src": "6107:7:38",
13706 "typeDescriptions": {
13707 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
13708 "typeString": "mapping(address => mapping(address => uint256))"
13709 }
13710 },
13711 "id": 11896,
13712 "indexExpression": {
13713 "argumentTypes": null,
13714 "expression": {
13715 "argumentTypes": null,
13716 "id": 11894,
13717 "name": "msg",
13718 "nodeType": "Identifier",
13719 "overloadedDeclarations": [],
13720 "referencedDeclaration": 12092,
13721 "src": "6115:3:38",
13722 "typeDescriptions": {
13723 "typeIdentifier": "t_magic_message",
13724 "typeString": "msg"
13725 }
13726 },
13727 "id": 11895,
13728 "isConstant": false,
13729 "isLValue": false,
13730 "isPure": false,
13731 "lValueRequested": false,
13732 "memberName": "sender",
13733 "nodeType": "MemberAccess",
13734 "referencedDeclaration": null,
13735 "src": "6115:10:38",
13736 "typeDescriptions": {
13737 "typeIdentifier": "t_address",
13738 "typeString": "address"
13739 }
13740 },
13741 "isConstant": false,
13742 "isLValue": true,
13743 "isPure": false,
13744 "lValueRequested": false,
13745 "nodeType": "IndexAccess",
13746 "src": "6107:19:38",
13747 "typeDescriptions": {
13748 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
13749 "typeString": "mapping(address => uint256)"
13750 }
13751 },
13752 "id": 11898,
13753 "indexExpression": {
13754 "argumentTypes": null,
13755 "id": 11897,
13756 "name": "_spender",
13757 "nodeType": "Identifier",
13758 "overloadedDeclarations": [],
13759 "referencedDeclaration": 11865,
13760 "src": "6127:8:38",
13761 "typeDescriptions": {
13762 "typeIdentifier": "t_address",
13763 "typeString": "address"
13764 }
13765 },
13766 "isConstant": false,
13767 "isLValue": true,
13768 "isPure": false,
13769 "lValueRequested": false,
13770 "nodeType": "IndexAccess",
13771 "src": "6107:29:38",
13772 "typeDescriptions": {
13773 "typeIdentifier": "t_uint256",
13774 "typeString": "uint256"
13775 }
13776 }
13777 ],
13778 "expression": {
13779 "argumentTypes": [
13780 {
13781 "typeIdentifier": "t_address",
13782 "typeString": "address"
13783 },
13784 {
13785 "typeIdentifier": "t_address",
13786 "typeString": "address"
13787 },
13788 {
13789 "typeIdentifier": "t_uint256",
13790 "typeString": "uint256"
13791 }
13792 ],
13793 "id": 11889,
13794 "name": "Approval",
13795 "nodeType": "Identifier",
13796 "overloadedDeclarations": [],
13797 "referencedDeclaration": 11610,
13798 "src": "6076:8:38",
13799 "typeDescriptions": {
13800 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
13801 "typeString": "function (address,address,uint256)"
13802 }
13803 },
13804 "id": 11899,
13805 "isConstant": false,
13806 "isLValue": false,
13807 "isPure": false,
13808 "kind": "functionCall",
13809 "lValueRequested": false,
13810 "names": [],
13811 "nodeType": "FunctionCall",
13812 "src": "6076:61:38",
13813 "typeDescriptions": {
13814 "typeIdentifier": "t_tuple$__$",
13815 "typeString": "tuple()"
13816 }
13817 },
13818 "id": 11900,
13819 "nodeType": "EmitStatement",
13820 "src": "6071:66:38"
13821 },
13822 {
13823 "expression": {
13824 "argumentTypes": null,
13825 "hexValue": "74727565",
13826 "id": 11901,
13827 "isConstant": false,
13828 "isLValue": false,
13829 "isPure": true,
13830 "kind": "bool",
13831 "lValueRequested": false,
13832 "nodeType": "Literal",
13833 "src": "6154:4:38",
13834 "subdenomination": null,
13835 "typeDescriptions": {
13836 "typeIdentifier": "t_bool",
13837 "typeString": "bool"
13838 },
13839 "value": "true"
13840 },
13841 "functionReturnParameters": 11871,
13842 "id": 11902,
13843 "nodeType": "Return",
13844 "src": "6147:11:38"
13845 }
13846 ]
13847 },
13848 "documentation": "approve should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol",
13849 "id": 11904,
13850 "implemented": true,
13851 "isConstructor": false,
13852 "isDeclaredConst": false,
13853 "modifiers": [],
13854 "name": "increaseApproval",
13855 "nodeType": "FunctionDefinition",
13856 "parameters": {
13857 "id": 11868,
13858 "nodeType": "ParameterList",
13859 "parameters": [
13860 {
13861 "constant": false,
13862 "id": 11865,
13863 "name": "_spender",
13864 "nodeType": "VariableDeclaration",
13865 "scope": 11904,
13866 "src": "5899:16:38",
13867 "stateVariable": false,
13868 "storageLocation": "default",
13869 "typeDescriptions": {
13870 "typeIdentifier": "t_address",
13871 "typeString": "address"
13872 },
13873 "typeName": {
13874 "id": 11864,
13875 "name": "address",
13876 "nodeType": "ElementaryTypeName",
13877 "src": "5899:7:38",
13878 "typeDescriptions": {
13879 "typeIdentifier": "t_address",
13880 "typeString": "address"
13881 }
13882 },
13883 "value": null,
13884 "visibility": "internal"
13885 },
13886 {
13887 "constant": false,
13888 "id": 11867,
13889 "name": "_addedValue",
13890 "nodeType": "VariableDeclaration",
13891 "scope": 11904,
13892 "src": "5917:16:38",
13893 "stateVariable": false,
13894 "storageLocation": "default",
13895 "typeDescriptions": {
13896 "typeIdentifier": "t_uint256",
13897 "typeString": "uint256"
13898 },
13899 "typeName": {
13900 "id": 11866,
13901 "name": "uint",
13902 "nodeType": "ElementaryTypeName",
13903 "src": "5917:4:38",
13904 "typeDescriptions": {
13905 "typeIdentifier": "t_uint256",
13906 "typeString": "uint256"
13907 }
13908 },
13909 "value": null,
13910 "visibility": "internal"
13911 }
13912 ],
13913 "src": "5898:36:38"
13914 },
13915 "payable": false,
13916 "returnParameters": {
13917 "id": 11871,
13918 "nodeType": "ParameterList",
13919 "parameters": [
13920 {
13921 "constant": false,
13922 "id": 11870,
13923 "name": "success",
13924 "nodeType": "VariableDeclaration",
13925 "scope": 11904,
13926 "src": "5959:12:38",
13927 "stateVariable": false,
13928 "storageLocation": "default",
13929 "typeDescriptions": {
13930 "typeIdentifier": "t_bool",
13931 "typeString": "bool"
13932 },
13933 "typeName": {
13934 "id": 11869,
13935 "name": "bool",
13936 "nodeType": "ElementaryTypeName",
13937 "src": "5959:4:38",
13938 "typeDescriptions": {
13939 "typeIdentifier": "t_bool",
13940 "typeString": "bool"
13941 }
13942 },
13943 "value": null,
13944 "visibility": "internal"
13945 }
13946 ],
13947 "src": "5958:14:38"
13948 },
13949 "scope": 11965,
13950 "src": "5872:293:38",
13951 "stateMutability": "nonpayable",
13952 "superFunction": null,
13953 "visibility": "public"
13954 },
13955 {
13956 "body": {
13957 "id": 11963,
13958 "nodeType": "Block",
13959 "src": "6276:352:38",
13960 "statements": [
13961 {
13962 "assignments": [
13963 11914
13964 ],
13965 "declarations": [
13966 {
13967 "constant": false,
13968 "id": 11914,
13969 "name": "oldValue",
13970 "nodeType": "VariableDeclaration",
13971 "scope": 11964,
13972 "src": "6286:13:38",
13973 "stateVariable": false,
13974 "storageLocation": "default",
13975 "typeDescriptions": {
13976 "typeIdentifier": "t_uint256",
13977 "typeString": "uint256"
13978 },
13979 "typeName": {
13980 "id": 11913,
13981 "name": "uint",
13982 "nodeType": "ElementaryTypeName",
13983 "src": "6286:4:38",
13984 "typeDescriptions": {
13985 "typeIdentifier": "t_uint256",
13986 "typeString": "uint256"
13987 }
13988 },
13989 "value": null,
13990 "visibility": "internal"
13991 }
13992 ],
13993 "id": 11921,
13994 "initialValue": {
13995 "argumentTypes": null,
13996 "baseExpression": {
13997 "argumentTypes": null,
13998 "baseExpression": {
13999 "argumentTypes": null,
14000 "id": 11915,
14001 "name": "allowed",
14002 "nodeType": "Identifier",
14003 "overloadedDeclarations": [],
14004 "referencedDeclaration": 11748,
14005 "src": "6302:7:38",
14006 "typeDescriptions": {
14007 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
14008 "typeString": "mapping(address => mapping(address => uint256))"
14009 }
14010 },
14011 "id": 11918,
14012 "indexExpression": {
14013 "argumentTypes": null,
14014 "expression": {
14015 "argumentTypes": null,
14016 "id": 11916,
14017 "name": "msg",
14018 "nodeType": "Identifier",
14019 "overloadedDeclarations": [],
14020 "referencedDeclaration": 12092,
14021 "src": "6310:3:38",
14022 "typeDescriptions": {
14023 "typeIdentifier": "t_magic_message",
14024 "typeString": "msg"
14025 }
14026 },
14027 "id": 11917,
14028 "isConstant": false,
14029 "isLValue": false,
14030 "isPure": false,
14031 "lValueRequested": false,
14032 "memberName": "sender",
14033 "nodeType": "MemberAccess",
14034 "referencedDeclaration": null,
14035 "src": "6310:10:38",
14036 "typeDescriptions": {
14037 "typeIdentifier": "t_address",
14038 "typeString": "address"
14039 }
14040 },
14041 "isConstant": false,
14042 "isLValue": true,
14043 "isPure": false,
14044 "lValueRequested": false,
14045 "nodeType": "IndexAccess",
14046 "src": "6302:19:38",
14047 "typeDescriptions": {
14048 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
14049 "typeString": "mapping(address => uint256)"
14050 }
14051 },
14052 "id": 11920,
14053 "indexExpression": {
14054 "argumentTypes": null,
14055 "id": 11919,
14056 "name": "_spender",
14057 "nodeType": "Identifier",
14058 "overloadedDeclarations": [],
14059 "referencedDeclaration": 11906,
14060 "src": "6322:8:38",
14061 "typeDescriptions": {
14062 "typeIdentifier": "t_address",
14063 "typeString": "address"
14064 }
14065 },
14066 "isConstant": false,
14067 "isLValue": true,
14068 "isPure": false,
14069 "lValueRequested": false,
14070 "nodeType": "IndexAccess",
14071 "src": "6302:29:38",
14072 "typeDescriptions": {
14073 "typeIdentifier": "t_uint256",
14074 "typeString": "uint256"
14075 }
14076 },
14077 "nodeType": "VariableDeclarationStatement",
14078 "src": "6286:45:38"
14079 },
14080 {
14081 "condition": {
14082 "argumentTypes": null,
14083 "commonType": {
14084 "typeIdentifier": "t_uint256",
14085 "typeString": "uint256"
14086 },
14087 "id": 11924,
14088 "isConstant": false,
14089 "isLValue": false,
14090 "isPure": false,
14091 "lValueRequested": false,
14092 "leftExpression": {
14093 "argumentTypes": null,
14094 "id": 11922,
14095 "name": "_subtractedValue",
14096 "nodeType": "Identifier",
14097 "overloadedDeclarations": [],
14098 "referencedDeclaration": 11908,
14099 "src": "6345:16:38",
14100 "typeDescriptions": {
14101 "typeIdentifier": "t_uint256",
14102 "typeString": "uint256"
14103 }
14104 },
14105 "nodeType": "BinaryOperation",
14106 "operator": ">",
14107 "rightExpression": {
14108 "argumentTypes": null,
14109 "id": 11923,
14110 "name": "oldValue",
14111 "nodeType": "Identifier",
14112 "overloadedDeclarations": [],
14113 "referencedDeclaration": 11914,
14114 "src": "6364:8:38",
14115 "typeDescriptions": {
14116 "typeIdentifier": "t_uint256",
14117 "typeString": "uint256"
14118 }
14119 },
14120 "src": "6345:27:38",
14121 "typeDescriptions": {
14122 "typeIdentifier": "t_bool",
14123 "typeString": "bool"
14124 }
14125 },
14126 "falseBody": {
14127 "id": 11947,
14128 "nodeType": "Block",
14129 "src": "6438:87:38",
14130 "statements": [
14131 {
14132 "expression": {
14133 "argumentTypes": null,
14134 "id": 11945,
14135 "isConstant": false,
14136 "isLValue": false,
14137 "isPure": false,
14138 "lValueRequested": false,
14139 "leftHandSide": {
14140 "argumentTypes": null,
14141 "baseExpression": {
14142 "argumentTypes": null,
14143 "baseExpression": {
14144 "argumentTypes": null,
14145 "id": 11935,
14146 "name": "allowed",
14147 "nodeType": "Identifier",
14148 "overloadedDeclarations": [],
14149 "referencedDeclaration": 11748,
14150 "src": "6452:7:38",
14151 "typeDescriptions": {
14152 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
14153 "typeString": "mapping(address => mapping(address => uint256))"
14154 }
14155 },
14156 "id": 11939,
14157 "indexExpression": {
14158 "argumentTypes": null,
14159 "expression": {
14160 "argumentTypes": null,
14161 "id": 11936,
14162 "name": "msg",
14163 "nodeType": "Identifier",
14164 "overloadedDeclarations": [],
14165 "referencedDeclaration": 12092,
14166 "src": "6460:3:38",
14167 "typeDescriptions": {
14168 "typeIdentifier": "t_magic_message",
14169 "typeString": "msg"
14170 }
14171 },
14172 "id": 11937,
14173 "isConstant": false,
14174 "isLValue": false,
14175 "isPure": false,
14176 "lValueRequested": false,
14177 "memberName": "sender",
14178 "nodeType": "MemberAccess",
14179 "referencedDeclaration": null,
14180 "src": "6460:10:38",
14181 "typeDescriptions": {
14182 "typeIdentifier": "t_address",
14183 "typeString": "address"
14184 }
14185 },
14186 "isConstant": false,
14187 "isLValue": true,
14188 "isPure": false,
14189 "lValueRequested": false,
14190 "nodeType": "IndexAccess",
14191 "src": "6452:19:38",
14192 "typeDescriptions": {
14193 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
14194 "typeString": "mapping(address => uint256)"
14195 }
14196 },
14197 "id": 11940,
14198 "indexExpression": {
14199 "argumentTypes": null,
14200 "id": 11938,
14201 "name": "_spender",
14202 "nodeType": "Identifier",
14203 "overloadedDeclarations": [],
14204 "referencedDeclaration": 11906,
14205 "src": "6472:8:38",
14206 "typeDescriptions": {
14207 "typeIdentifier": "t_address",
14208 "typeString": "address"
14209 }
14210 },
14211 "isConstant": false,
14212 "isLValue": true,
14213 "isPure": false,
14214 "lValueRequested": true,
14215 "nodeType": "IndexAccess",
14216 "src": "6452:29:38",
14217 "typeDescriptions": {
14218 "typeIdentifier": "t_uint256",
14219 "typeString": "uint256"
14220 }
14221 },
14222 "nodeType": "Assignment",
14223 "operator": "=",
14224 "rightHandSide": {
14225 "argumentTypes": null,
14226 "arguments": [
14227 {
14228 "argumentTypes": null,
14229 "id": 11943,
14230 "name": "_subtractedValue",
14231 "nodeType": "Identifier",
14232 "overloadedDeclarations": [],
14233 "referencedDeclaration": 11908,
14234 "src": "6497:16:38",
14235 "typeDescriptions": {
14236 "typeIdentifier": "t_uint256",
14237 "typeString": "uint256"
14238 }
14239 }
14240 ],
14241 "expression": {
14242 "argumentTypes": [
14243 {
14244 "typeIdentifier": "t_uint256",
14245 "typeString": "uint256"
14246 }
14247 ],
14248 "expression": {
14249 "argumentTypes": null,
14250 "id": 11941,
14251 "name": "oldValue",
14252 "nodeType": "Identifier",
14253 "overloadedDeclarations": [],
14254 "referencedDeclaration": 11914,
14255 "src": "6484:8:38",
14256 "typeDescriptions": {
14257 "typeIdentifier": "t_uint256",
14258 "typeString": "uint256"
14259 }
14260 },
14261 "id": 11942,
14262 "isConstant": false,
14263 "isLValue": false,
14264 "isPure": false,
14265 "lValueRequested": false,
14266 "memberName": "sub",
14267 "nodeType": "MemberAccess",
14268 "referencedDeclaration": 11519,
14269 "src": "6484:12:38",
14270 "typeDescriptions": {
14271 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
14272 "typeString": "function (uint256,uint256) pure returns (uint256)"
14273 }
14274 },
14275 "id": 11944,
14276 "isConstant": false,
14277 "isLValue": false,
14278 "isPure": false,
14279 "kind": "functionCall",
14280 "lValueRequested": false,
14281 "names": [],
14282 "nodeType": "FunctionCall",
14283 "src": "6484:30:38",
14284 "typeDescriptions": {
14285 "typeIdentifier": "t_uint256",
14286 "typeString": "uint256"
14287 }
14288 },
14289 "src": "6452:62:38",
14290 "typeDescriptions": {
14291 "typeIdentifier": "t_uint256",
14292 "typeString": "uint256"
14293 }
14294 },
14295 "id": 11946,
14296 "nodeType": "ExpressionStatement",
14297 "src": "6452:62:38"
14298 }
14299 ]
14300 },
14301 "id": 11948,
14302 "nodeType": "IfStatement",
14303 "src": "6341:184:38",
14304 "trueBody": {
14305 "id": 11934,
14306 "nodeType": "Block",
14307 "src": "6374:58:38",
14308 "statements": [
14309 {
14310 "expression": {
14311 "argumentTypes": null,
14312 "id": 11932,
14313 "isConstant": false,
14314 "isLValue": false,
14315 "isPure": false,
14316 "lValueRequested": false,
14317 "leftHandSide": {
14318 "argumentTypes": null,
14319 "baseExpression": {
14320 "argumentTypes": null,
14321 "baseExpression": {
14322 "argumentTypes": null,
14323 "id": 11925,
14324 "name": "allowed",
14325 "nodeType": "Identifier",
14326 "overloadedDeclarations": [],
14327 "referencedDeclaration": 11748,
14328 "src": "6388:7:38",
14329 "typeDescriptions": {
14330 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
14331 "typeString": "mapping(address => mapping(address => uint256))"
14332 }
14333 },
14334 "id": 11929,
14335 "indexExpression": {
14336 "argumentTypes": null,
14337 "expression": {
14338 "argumentTypes": null,
14339 "id": 11926,
14340 "name": "msg",
14341 "nodeType": "Identifier",
14342 "overloadedDeclarations": [],
14343 "referencedDeclaration": 12092,
14344 "src": "6396:3:38",
14345 "typeDescriptions": {
14346 "typeIdentifier": "t_magic_message",
14347 "typeString": "msg"
14348 }
14349 },
14350 "id": 11927,
14351 "isConstant": false,
14352 "isLValue": false,
14353 "isPure": false,
14354 "lValueRequested": false,
14355 "memberName": "sender",
14356 "nodeType": "MemberAccess",
14357 "referencedDeclaration": null,
14358 "src": "6396:10:38",
14359 "typeDescriptions": {
14360 "typeIdentifier": "t_address",
14361 "typeString": "address"
14362 }
14363 },
14364 "isConstant": false,
14365 "isLValue": true,
14366 "isPure": false,
14367 "lValueRequested": false,
14368 "nodeType": "IndexAccess",
14369 "src": "6388:19:38",
14370 "typeDescriptions": {
14371 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
14372 "typeString": "mapping(address => uint256)"
14373 }
14374 },
14375 "id": 11930,
14376 "indexExpression": {
14377 "argumentTypes": null,
14378 "id": 11928,
14379 "name": "_spender",
14380 "nodeType": "Identifier",
14381 "overloadedDeclarations": [],
14382 "referencedDeclaration": 11906,
14383 "src": "6408:8:38",
14384 "typeDescriptions": {
14385 "typeIdentifier": "t_address",
14386 "typeString": "address"
14387 }
14388 },
14389 "isConstant": false,
14390 "isLValue": true,
14391 "isPure": false,
14392 "lValueRequested": true,
14393 "nodeType": "IndexAccess",
14394 "src": "6388:29:38",
14395 "typeDescriptions": {
14396 "typeIdentifier": "t_uint256",
14397 "typeString": "uint256"
14398 }
14399 },
14400 "nodeType": "Assignment",
14401 "operator": "=",
14402 "rightHandSide": {
14403 "argumentTypes": null,
14404 "hexValue": "30",
14405 "id": 11931,
14406 "isConstant": false,
14407 "isLValue": false,
14408 "isPure": true,
14409 "kind": "number",
14410 "lValueRequested": false,
14411 "nodeType": "Literal",
14412 "src": "6420:1:38",
14413 "subdenomination": null,
14414 "typeDescriptions": {
14415 "typeIdentifier": "t_rational_0_by_1",
14416 "typeString": "int_const 0"
14417 },
14418 "value": "0"
14419 },
14420 "src": "6388:33:38",
14421 "typeDescriptions": {
14422 "typeIdentifier": "t_uint256",
14423 "typeString": "uint256"
14424 }
14425 },
14426 "id": 11933,
14427 "nodeType": "ExpressionStatement",
14428 "src": "6388:33:38"
14429 }
14430 ]
14431 }
14432 },
14433 {
14434 "eventCall": {
14435 "argumentTypes": null,
14436 "arguments": [
14437 {
14438 "argumentTypes": null,
14439 "expression": {
14440 "argumentTypes": null,
14441 "id": 11950,
14442 "name": "msg",
14443 "nodeType": "Identifier",
14444 "overloadedDeclarations": [],
14445 "referencedDeclaration": 12092,
14446 "src": "6548:3:38",
14447 "typeDescriptions": {
14448 "typeIdentifier": "t_magic_message",
14449 "typeString": "msg"
14450 }
14451 },
14452 "id": 11951,
14453 "isConstant": false,
14454 "isLValue": false,
14455 "isPure": false,
14456 "lValueRequested": false,
14457 "memberName": "sender",
14458 "nodeType": "MemberAccess",
14459 "referencedDeclaration": null,
14460 "src": "6548:10:38",
14461 "typeDescriptions": {
14462 "typeIdentifier": "t_address",
14463 "typeString": "address"
14464 }
14465 },
14466 {
14467 "argumentTypes": null,
14468 "id": 11952,
14469 "name": "_spender",
14470 "nodeType": "Identifier",
14471 "overloadedDeclarations": [],
14472 "referencedDeclaration": 11906,
14473 "src": "6560:8:38",
14474 "typeDescriptions": {
14475 "typeIdentifier": "t_address",
14476 "typeString": "address"
14477 }
14478 },
14479 {
14480 "argumentTypes": null,
14481 "baseExpression": {
14482 "argumentTypes": null,
14483 "baseExpression": {
14484 "argumentTypes": null,
14485 "id": 11953,
14486 "name": "allowed",
14487 "nodeType": "Identifier",
14488 "overloadedDeclarations": [],
14489 "referencedDeclaration": 11748,
14490 "src": "6570:7:38",
14491 "typeDescriptions": {
14492 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
14493 "typeString": "mapping(address => mapping(address => uint256))"
14494 }
14495 },
14496 "id": 11956,
14497 "indexExpression": {
14498 "argumentTypes": null,
14499 "expression": {
14500 "argumentTypes": null,
14501 "id": 11954,
14502 "name": "msg",
14503 "nodeType": "Identifier",
14504 "overloadedDeclarations": [],
14505 "referencedDeclaration": 12092,
14506 "src": "6578:3:38",
14507 "typeDescriptions": {
14508 "typeIdentifier": "t_magic_message",
14509 "typeString": "msg"
14510 }
14511 },
14512 "id": 11955,
14513 "isConstant": false,
14514 "isLValue": false,
14515 "isPure": false,
14516 "lValueRequested": false,
14517 "memberName": "sender",
14518 "nodeType": "MemberAccess",
14519 "referencedDeclaration": null,
14520 "src": "6578:10:38",
14521 "typeDescriptions": {
14522 "typeIdentifier": "t_address",
14523 "typeString": "address"
14524 }
14525 },
14526 "isConstant": false,
14527 "isLValue": true,
14528 "isPure": false,
14529 "lValueRequested": false,
14530 "nodeType": "IndexAccess",
14531 "src": "6570:19:38",
14532 "typeDescriptions": {
14533 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
14534 "typeString": "mapping(address => uint256)"
14535 }
14536 },
14537 "id": 11958,
14538 "indexExpression": {
14539 "argumentTypes": null,
14540 "id": 11957,
14541 "name": "_spender",
14542 "nodeType": "Identifier",
14543 "overloadedDeclarations": [],
14544 "referencedDeclaration": 11906,
14545 "src": "6590:8:38",
14546 "typeDescriptions": {
14547 "typeIdentifier": "t_address",
14548 "typeString": "address"
14549 }
14550 },
14551 "isConstant": false,
14552 "isLValue": true,
14553 "isPure": false,
14554 "lValueRequested": false,
14555 "nodeType": "IndexAccess",
14556 "src": "6570:29:38",
14557 "typeDescriptions": {
14558 "typeIdentifier": "t_uint256",
14559 "typeString": "uint256"
14560 }
14561 }
14562 ],
14563 "expression": {
14564 "argumentTypes": [
14565 {
14566 "typeIdentifier": "t_address",
14567 "typeString": "address"
14568 },
14569 {
14570 "typeIdentifier": "t_address",
14571 "typeString": "address"
14572 },
14573 {
14574 "typeIdentifier": "t_uint256",
14575 "typeString": "uint256"
14576 }
14577 ],
14578 "id": 11949,
14579 "name": "Approval",
14580 "nodeType": "Identifier",
14581 "overloadedDeclarations": [],
14582 "referencedDeclaration": 11610,
14583 "src": "6539:8:38",
14584 "typeDescriptions": {
14585 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
14586 "typeString": "function (address,address,uint256)"
14587 }
14588 },
14589 "id": 11959,
14590 "isConstant": false,
14591 "isLValue": false,
14592 "isPure": false,
14593 "kind": "functionCall",
14594 "lValueRequested": false,
14595 "names": [],
14596 "nodeType": "FunctionCall",
14597 "src": "6539:61:38",
14598 "typeDescriptions": {
14599 "typeIdentifier": "t_tuple$__$",
14600 "typeString": "tuple()"
14601 }
14602 },
14603 "id": 11960,
14604 "nodeType": "EmitStatement",
14605 "src": "6534:66:38"
14606 },
14607 {
14608 "expression": {
14609 "argumentTypes": null,
14610 "hexValue": "74727565",
14611 "id": 11961,
14612 "isConstant": false,
14613 "isLValue": false,
14614 "isPure": true,
14615 "kind": "bool",
14616 "lValueRequested": false,
14617 "nodeType": "Literal",
14618 "src": "6617:4:38",
14619 "subdenomination": null,
14620 "typeDescriptions": {
14621 "typeIdentifier": "t_bool",
14622 "typeString": "bool"
14623 },
14624 "value": "true"
14625 },
14626 "functionReturnParameters": 11912,
14627 "id": 11962,
14628 "nodeType": "Return",
14629 "src": "6610:11:38"
14630 }
14631 ]
14632 },
14633 "documentation": null,
14634 "id": 11964,
14635 "implemented": true,
14636 "isConstructor": false,
14637 "isDeclaredConst": false,
14638 "modifiers": [],
14639 "name": "decreaseApproval",
14640 "nodeType": "FunctionDefinition",
14641 "parameters": {
14642 "id": 11909,
14643 "nodeType": "ParameterList",
14644 "parameters": [
14645 {
14646 "constant": false,
14647 "id": 11906,
14648 "name": "_spender",
14649 "nodeType": "VariableDeclaration",
14650 "scope": 11964,
14651 "src": "6197:16:38",
14652 "stateVariable": false,
14653 "storageLocation": "default",
14654 "typeDescriptions": {
14655 "typeIdentifier": "t_address",
14656 "typeString": "address"
14657 },
14658 "typeName": {
14659 "id": 11905,
14660 "name": "address",
14661 "nodeType": "ElementaryTypeName",
14662 "src": "6197:7:38",
14663 "typeDescriptions": {
14664 "typeIdentifier": "t_address",
14665 "typeString": "address"
14666 }
14667 },
14668 "value": null,
14669 "visibility": "internal"
14670 },
14671 {
14672 "constant": false,
14673 "id": 11908,
14674 "name": "_subtractedValue",
14675 "nodeType": "VariableDeclaration",
14676 "scope": 11964,
14677 "src": "6215:21:38",
14678 "stateVariable": false,
14679 "storageLocation": "default",
14680 "typeDescriptions": {
14681 "typeIdentifier": "t_uint256",
14682 "typeString": "uint256"
14683 },
14684 "typeName": {
14685 "id": 11907,
14686 "name": "uint",
14687 "nodeType": "ElementaryTypeName",
14688 "src": "6215:4:38",
14689 "typeDescriptions": {
14690 "typeIdentifier": "t_uint256",
14691 "typeString": "uint256"
14692 }
14693 },
14694 "value": null,
14695 "visibility": "internal"
14696 }
14697 ],
14698 "src": "6196:41:38"
14699 },
14700 "payable": false,
14701 "returnParameters": {
14702 "id": 11912,
14703 "nodeType": "ParameterList",
14704 "parameters": [
14705 {
14706 "constant": false,
14707 "id": 11911,
14708 "name": "success",
14709 "nodeType": "VariableDeclaration",
14710 "scope": 11964,
14711 "src": "6262:12:38",
14712 "stateVariable": false,
14713 "storageLocation": "default",
14714 "typeDescriptions": {
14715 "typeIdentifier": "t_bool",
14716 "typeString": "bool"
14717 },
14718 "typeName": {
14719 "id": 11910,
14720 "name": "bool",
14721 "nodeType": "ElementaryTypeName",
14722 "src": "6262:4:38",
14723 "typeDescriptions": {
14724 "typeIdentifier": "t_bool",
14725 "typeString": "bool"
14726 }
14727 },
14728 "value": null,
14729 "visibility": "internal"
14730 }
14731 ],
14732 "src": "6261:14:38"
14733 },
14734 "scope": 11965,
14735 "src": "6170:458:38",
14736 "stateMutability": "nonpayable",
14737 "superFunction": null,
14738 "visibility": "public"
14739 }
14740 ],
14741 "scope": 12078,
14742 "src": "3326:3304:38"
14743 },
14744 {
14745 "baseContracts": [
14746 {
14747 "arguments": null,
14748 "baseName": {
14749 "contractScope": null,
14750 "id": 11966,
14751 "name": "StandardToken",
14752 "nodeType": "UserDefinedTypeName",
14753 "referencedDeclaration": 11965,
14754 "src": "6658:13:38",
14755 "typeDescriptions": {
14756 "typeIdentifier": "t_contract$_StandardToken_$11965",
14757 "typeString": "contract StandardToken"
14758 }
14759 },
14760 "id": 11967,
14761 "nodeType": "InheritanceSpecifier",
14762 "src": "6658:13:38"
14763 },
14764 {
14765 "arguments": null,
14766 "baseName": {
14767 "contractScope": null,
14768 "id": 11968,
14769 "name": "Ownable",
14770 "nodeType": "UserDefinedTypeName",
14771 "referencedDeclaration": 11738,
14772 "src": "6673:7:38",
14773 "typeDescriptions": {
14774 "typeIdentifier": "t_contract$_Ownable_$11738",
14775 "typeString": "contract Ownable"
14776 }
14777 },
14778 "id": 11969,
14779 "nodeType": "InheritanceSpecifier",
14780 "src": "6673:7:38"
14781 }
14782 ],
14783 "contractDependencies": [
14784 11571,
14785 11611,
14786 11684,
14787 11738,
14788 11965
14789 ],
14790 "contractKind": "contract",
14791 "documentation": null,
14792 "fullyImplemented": true,
14793 "id": 12052,
14794 "linearizedBaseContracts": [
14795 12052,
14796 11738,
14797 11965,
14798 11684,
14799 11611,
14800 11571
14801 ],
14802 "name": "MintableToken",
14803 "nodeType": "ContractDefinition",
14804 "nodes": [
14805 {
14806 "anonymous": false,
14807 "documentation": null,
14808 "id": 11975,
14809 "name": "Mint",
14810 "nodeType": "EventDefinition",
14811 "parameters": {
14812 "id": 11974,
14813 "nodeType": "ParameterList",
14814 "parameters": [
14815 {
14816 "constant": false,
14817 "id": 11971,
14818 "indexed": true,
14819 "name": "to",
14820 "nodeType": "VariableDeclaration",
14821 "scope": 11975,
14822 "src": "6698:18:38",
14823 "stateVariable": false,
14824 "storageLocation": "default",
14825 "typeDescriptions": {
14826 "typeIdentifier": "t_address",
14827 "typeString": "address"
14828 },
14829 "typeName": {
14830 "id": 11970,
14831 "name": "address",
14832 "nodeType": "ElementaryTypeName",
14833 "src": "6698:7:38",
14834 "typeDescriptions": {
14835 "typeIdentifier": "t_address",
14836 "typeString": "address"
14837 }
14838 },
14839 "value": null,
14840 "visibility": "internal"
14841 },
14842 {
14843 "constant": false,
14844 "id": 11973,
14845 "indexed": false,
14846 "name": "amount",
14847 "nodeType": "VariableDeclaration",
14848 "scope": 11975,
14849 "src": "6718:14:38",
14850 "stateVariable": false,
14851 "storageLocation": "default",
14852 "typeDescriptions": {
14853 "typeIdentifier": "t_uint256",
14854 "typeString": "uint256"
14855 },
14856 "typeName": {
14857 "id": 11972,
14858 "name": "uint256",
14859 "nodeType": "ElementaryTypeName",
14860 "src": "6718:7:38",
14861 "typeDescriptions": {
14862 "typeIdentifier": "t_uint256",
14863 "typeString": "uint256"
14864 }
14865 },
14866 "value": null,
14867 "visibility": "internal"
14868 }
14869 ],
14870 "src": "6697:36:38"
14871 },
14872 "src": "6687:47:38"
14873 },
14874 {
14875 "anonymous": false,
14876 "documentation": null,
14877 "id": 11977,
14878 "name": "MintFinished",
14879 "nodeType": "EventDefinition",
14880 "parameters": {
14881 "id": 11976,
14882 "nodeType": "ParameterList",
14883 "parameters": [],
14884 "src": "6757:2:38"
14885 },
14886 "src": "6739:21:38"
14887 },
14888 {
14889 "constant": false,
14890 "id": 11980,
14891 "name": "mintingFinished",
14892 "nodeType": "VariableDeclaration",
14893 "scope": 12052,
14894 "src": "6765:35:38",
14895 "stateVariable": true,
14896 "storageLocation": "default",
14897 "typeDescriptions": {
14898 "typeIdentifier": "t_bool",
14899 "typeString": "bool"
14900 },
14901 "typeName": {
14902 "id": 11978,
14903 "name": "bool",
14904 "nodeType": "ElementaryTypeName",
14905 "src": "6765:4:38",
14906 "typeDescriptions": {
14907 "typeIdentifier": "t_bool",
14908 "typeString": "bool"
14909 }
14910 },
14911 "value": {
14912 "argumentTypes": null,
14913 "hexValue": "66616c7365",
14914 "id": 11979,
14915 "isConstant": false,
14916 "isLValue": false,
14917 "isPure": true,
14918 "kind": "bool",
14919 "lValueRequested": false,
14920 "nodeType": "Literal",
14921 "src": "6795:5:38",
14922 "subdenomination": null,
14923 "typeDescriptions": {
14924 "typeIdentifier": "t_bool",
14925 "typeString": "bool"
14926 },
14927 "value": "false"
14928 },
14929 "visibility": "public"
14930 },
14931 {
14932 "body": {
14933 "id": 11988,
14934 "nodeType": "Block",
14935 "src": "6825:53:38",
14936 "statements": [
14937 {
14938 "expression": {
14939 "argumentTypes": null,
14940 "arguments": [
14941 {
14942 "argumentTypes": null,
14943 "id": 11984,
14944 "isConstant": false,
14945 "isLValue": false,
14946 "isPure": false,
14947 "lValueRequested": false,
14948 "nodeType": "UnaryOperation",
14949 "operator": "!",
14950 "prefix": true,
14951 "src": "6843:16:38",
14952 "subExpression": {
14953 "argumentTypes": null,
14954 "id": 11983,
14955 "name": "mintingFinished",
14956 "nodeType": "Identifier",
14957 "overloadedDeclarations": [],
14958 "referencedDeclaration": 11980,
14959 "src": "6844:15:38",
14960 "typeDescriptions": {
14961 "typeIdentifier": "t_bool",
14962 "typeString": "bool"
14963 }
14964 },
14965 "typeDescriptions": {
14966 "typeIdentifier": "t_bool",
14967 "typeString": "bool"
14968 }
14969 }
14970 ],
14971 "expression": {
14972 "argumentTypes": [
14973 {
14974 "typeIdentifier": "t_bool",
14975 "typeString": "bool"
14976 }
14977 ],
14978 "id": 11982,
14979 "name": "require",
14980 "nodeType": "Identifier",
14981 "overloadedDeclarations": [
14982 12095,
14983 12096
14984 ],
14985 "referencedDeclaration": 12095,
14986 "src": "6835:7:38",
14987 "typeDescriptions": {
14988 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
14989 "typeString": "function (bool) pure"
14990 }
14991 },
14992 "id": 11985,
14993 "isConstant": false,
14994 "isLValue": false,
14995 "isPure": false,
14996 "kind": "functionCall",
14997 "lValueRequested": false,
14998 "names": [],
14999 "nodeType": "FunctionCall",
15000 "src": "6835:25:38",
15001 "typeDescriptions": {
15002 "typeIdentifier": "t_tuple$__$",
15003 "typeString": "tuple()"
15004 }
15005 },
15006 "id": 11986,
15007 "nodeType": "ExpressionStatement",
15008 "src": "6835:25:38"
15009 },
15010 {
15011 "id": 11987,
15012 "nodeType": "PlaceholderStatement",
15013 "src": "6870:1:38"
15014 }
15015 ]
15016 },
15017 "documentation": null,
15018 "id": 11989,
15019 "name": "canMint",
15020 "nodeType": "ModifierDefinition",
15021 "parameters": {
15022 "id": 11981,
15023 "nodeType": "ParameterList",
15024 "parameters": [],
15025 "src": "6822:2:38"
15026 },
15027 "src": "6806:72:38",
15028 "visibility": "internal"
15029 },
15030 {
15031 "body": {
15032 "id": 12033,
15033 "nodeType": "Block",
15034 "src": "7212:203:38",
15035 "statements": [
15036 {
15037 "expression": {
15038 "argumentTypes": null,
15039 "id": 12007,
15040 "isConstant": false,
15041 "isLValue": false,
15042 "isPure": false,
15043 "lValueRequested": false,
15044 "leftHandSide": {
15045 "argumentTypes": null,
15046 "id": 12002,
15047 "name": "totalSupply",
15048 "nodeType": "Identifier",
15049 "overloadedDeclarations": [],
15050 "referencedDeclaration": 11546,
15051 "src": "7222:11:38",
15052 "typeDescriptions": {
15053 "typeIdentifier": "t_uint256",
15054 "typeString": "uint256"
15055 }
15056 },
15057 "nodeType": "Assignment",
15058 "operator": "=",
15059 "rightHandSide": {
15060 "argumentTypes": null,
15061 "arguments": [
15062 {
15063 "argumentTypes": null,
15064 "id": 12005,
15065 "name": "_amount",
15066 "nodeType": "Identifier",
15067 "overloadedDeclarations": [],
15068 "referencedDeclaration": 11993,
15069 "src": "7252:7:38",
15070 "typeDescriptions": {
15071 "typeIdentifier": "t_uint256",
15072 "typeString": "uint256"
15073 }
15074 }
15075 ],
15076 "expression": {
15077 "argumentTypes": [
15078 {
15079 "typeIdentifier": "t_uint256",
15080 "typeString": "uint256"
15081 }
15082 ],
15083 "expression": {
15084 "argumentTypes": null,
15085 "id": 12003,
15086 "name": "totalSupply",
15087 "nodeType": "Identifier",
15088 "overloadedDeclarations": [],
15089 "referencedDeclaration": 11546,
15090 "src": "7236:11:38",
15091 "typeDescriptions": {
15092 "typeIdentifier": "t_uint256",
15093 "typeString": "uint256"
15094 }
15095 },
15096 "id": 12004,
15097 "isConstant": false,
15098 "isLValue": false,
15099 "isPure": false,
15100 "lValueRequested": false,
15101 "memberName": "add",
15102 "nodeType": "MemberAccess",
15103 "referencedDeclaration": 11543,
15104 "src": "7236:15:38",
15105 "typeDescriptions": {
15106 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
15107 "typeString": "function (uint256,uint256) pure returns (uint256)"
15108 }
15109 },
15110 "id": 12006,
15111 "isConstant": false,
15112 "isLValue": false,
15113 "isPure": false,
15114 "kind": "functionCall",
15115 "lValueRequested": false,
15116 "names": [],
15117 "nodeType": "FunctionCall",
15118 "src": "7236:24:38",
15119 "typeDescriptions": {
15120 "typeIdentifier": "t_uint256",
15121 "typeString": "uint256"
15122 }
15123 },
15124 "src": "7222:38:38",
15125 "typeDescriptions": {
15126 "typeIdentifier": "t_uint256",
15127 "typeString": "uint256"
15128 }
15129 },
15130 "id": 12008,
15131 "nodeType": "ExpressionStatement",
15132 "src": "7222:38:38"
15133 },
15134 {
15135 "expression": {
15136 "argumentTypes": null,
15137 "id": 12018,
15138 "isConstant": false,
15139 "isLValue": false,
15140 "isPure": false,
15141 "lValueRequested": false,
15142 "leftHandSide": {
15143 "argumentTypes": null,
15144 "baseExpression": {
15145 "argumentTypes": null,
15146 "id": 12009,
15147 "name": "balances",
15148 "nodeType": "Identifier",
15149 "overloadedDeclarations": [],
15150 "referencedDeclaration": 11620,
15151 "src": "7270:8:38",
15152 "typeDescriptions": {
15153 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
15154 "typeString": "mapping(address => uint256)"
15155 }
15156 },
15157 "id": 12011,
15158 "indexExpression": {
15159 "argumentTypes": null,
15160 "id": 12010,
15161 "name": "_to",
15162 "nodeType": "Identifier",
15163 "overloadedDeclarations": [],
15164 "referencedDeclaration": 11991,
15165 "src": "7279:3:38",
15166 "typeDescriptions": {
15167 "typeIdentifier": "t_address",
15168 "typeString": "address"
15169 }
15170 },
15171 "isConstant": false,
15172 "isLValue": true,
15173 "isPure": false,
15174 "lValueRequested": true,
15175 "nodeType": "IndexAccess",
15176 "src": "7270:13:38",
15177 "typeDescriptions": {
15178 "typeIdentifier": "t_uint256",
15179 "typeString": "uint256"
15180 }
15181 },
15182 "nodeType": "Assignment",
15183 "operator": "=",
15184 "rightHandSide": {
15185 "argumentTypes": null,
15186 "arguments": [
15187 {
15188 "argumentTypes": null,
15189 "id": 12016,
15190 "name": "_amount",
15191 "nodeType": "Identifier",
15192 "overloadedDeclarations": [],
15193 "referencedDeclaration": 11993,
15194 "src": "7304:7:38",
15195 "typeDescriptions": {
15196 "typeIdentifier": "t_uint256",
15197 "typeString": "uint256"
15198 }
15199 }
15200 ],
15201 "expression": {
15202 "argumentTypes": [
15203 {
15204 "typeIdentifier": "t_uint256",
15205 "typeString": "uint256"
15206 }
15207 ],
15208 "expression": {
15209 "argumentTypes": null,
15210 "baseExpression": {
15211 "argumentTypes": null,
15212 "id": 12012,
15213 "name": "balances",
15214 "nodeType": "Identifier",
15215 "overloadedDeclarations": [],
15216 "referencedDeclaration": 11620,
15217 "src": "7286:8:38",
15218 "typeDescriptions": {
15219 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
15220 "typeString": "mapping(address => uint256)"
15221 }
15222 },
15223 "id": 12014,
15224 "indexExpression": {
15225 "argumentTypes": null,
15226 "id": 12013,
15227 "name": "_to",
15228 "nodeType": "Identifier",
15229 "overloadedDeclarations": [],
15230 "referencedDeclaration": 11991,
15231 "src": "7295:3:38",
15232 "typeDescriptions": {
15233 "typeIdentifier": "t_address",
15234 "typeString": "address"
15235 }
15236 },
15237 "isConstant": false,
15238 "isLValue": true,
15239 "isPure": false,
15240 "lValueRequested": false,
15241 "nodeType": "IndexAccess",
15242 "src": "7286:13:38",
15243 "typeDescriptions": {
15244 "typeIdentifier": "t_uint256",
15245 "typeString": "uint256"
15246 }
15247 },
15248 "id": 12015,
15249 "isConstant": false,
15250 "isLValue": false,
15251 "isPure": false,
15252 "lValueRequested": false,
15253 "memberName": "add",
15254 "nodeType": "MemberAccess",
15255 "referencedDeclaration": 11543,
15256 "src": "7286:17:38",
15257 "typeDescriptions": {
15258 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
15259 "typeString": "function (uint256,uint256) pure returns (uint256)"
15260 }
15261 },
15262 "id": 12017,
15263 "isConstant": false,
15264 "isLValue": false,
15265 "isPure": false,
15266 "kind": "functionCall",
15267 "lValueRequested": false,
15268 "names": [],
15269 "nodeType": "FunctionCall",
15270 "src": "7286:26:38",
15271 "typeDescriptions": {
15272 "typeIdentifier": "t_uint256",
15273 "typeString": "uint256"
15274 }
15275 },
15276 "src": "7270:42:38",
15277 "typeDescriptions": {
15278 "typeIdentifier": "t_uint256",
15279 "typeString": "uint256"
15280 }
15281 },
15282 "id": 12019,
15283 "nodeType": "ExpressionStatement",
15284 "src": "7270:42:38"
15285 },
15286 {
15287 "eventCall": {
15288 "argumentTypes": null,
15289 "arguments": [
15290 {
15291 "argumentTypes": null,
15292 "id": 12021,
15293 "name": "_to",
15294 "nodeType": "Identifier",
15295 "overloadedDeclarations": [],
15296 "referencedDeclaration": 11991,
15297 "src": "7332:3:38",
15298 "typeDescriptions": {
15299 "typeIdentifier": "t_address",
15300 "typeString": "address"
15301 }
15302 },
15303 {
15304 "argumentTypes": null,
15305 "id": 12022,
15306 "name": "_amount",
15307 "nodeType": "Identifier",
15308 "overloadedDeclarations": [],
15309 "referencedDeclaration": 11993,
15310 "src": "7337:7:38",
15311 "typeDescriptions": {
15312 "typeIdentifier": "t_uint256",
15313 "typeString": "uint256"
15314 }
15315 }
15316 ],
15317 "expression": {
15318 "argumentTypes": [
15319 {
15320 "typeIdentifier": "t_address",
15321 "typeString": "address"
15322 },
15323 {
15324 "typeIdentifier": "t_uint256",
15325 "typeString": "uint256"
15326 }
15327 ],
15328 "id": 12020,
15329 "name": "Mint",
15330 "nodeType": "Identifier",
15331 "overloadedDeclarations": [],
15332 "referencedDeclaration": 11975,
15333 "src": "7327:4:38",
15334 "typeDescriptions": {
15335 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
15336 "typeString": "function (address,uint256)"
15337 }
15338 },
15339 "id": 12023,
15340 "isConstant": false,
15341 "isLValue": false,
15342 "isPure": false,
15343 "kind": "functionCall",
15344 "lValueRequested": false,
15345 "names": [],
15346 "nodeType": "FunctionCall",
15347 "src": "7327:18:38",
15348 "typeDescriptions": {
15349 "typeIdentifier": "t_tuple$__$",
15350 "typeString": "tuple()"
15351 }
15352 },
15353 "id": 12024,
15354 "nodeType": "EmitStatement",
15355 "src": "7322:23:38"
15356 },
15357 {
15358 "eventCall": {
15359 "argumentTypes": null,
15360 "arguments": [
15361 {
15362 "argumentTypes": null,
15363 "hexValue": "307830",
15364 "id": 12026,
15365 "isConstant": false,
15366 "isLValue": false,
15367 "isPure": true,
15368 "kind": "number",
15369 "lValueRequested": false,
15370 "nodeType": "Literal",
15371 "src": "7369:3:38",
15372 "subdenomination": null,
15373 "typeDescriptions": {
15374 "typeIdentifier": "t_rational_0_by_1",
15375 "typeString": "int_const 0"
15376 },
15377 "value": "0x0"
15378 },
15379 {
15380 "argumentTypes": null,
15381 "id": 12027,
15382 "name": "_to",
15383 "nodeType": "Identifier",
15384 "overloadedDeclarations": [],
15385 "referencedDeclaration": 11991,
15386 "src": "7374:3:38",
15387 "typeDescriptions": {
15388 "typeIdentifier": "t_address",
15389 "typeString": "address"
15390 }
15391 },
15392 {
15393 "argumentTypes": null,
15394 "id": 12028,
15395 "name": "_amount",
15396 "nodeType": "Identifier",
15397 "overloadedDeclarations": [],
15398 "referencedDeclaration": 11993,
15399 "src": "7379:7:38",
15400 "typeDescriptions": {
15401 "typeIdentifier": "t_uint256",
15402 "typeString": "uint256"
15403 }
15404 }
15405 ],
15406 "expression": {
15407 "argumentTypes": [
15408 {
15409 "typeIdentifier": "t_rational_0_by_1",
15410 "typeString": "int_const 0"
15411 },
15412 {
15413 "typeIdentifier": "t_address",
15414 "typeString": "address"
15415 },
15416 {
15417 "typeIdentifier": "t_uint256",
15418 "typeString": "uint256"
15419 }
15420 ],
15421 "id": 12025,
15422 "name": "Transfer",
15423 "nodeType": "Identifier",
15424 "overloadedDeclarations": [],
15425 "referencedDeclaration": 11570,
15426 "src": "7360:8:38",
15427 "typeDescriptions": {
15428 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
15429 "typeString": "function (address,address,uint256)"
15430 }
15431 },
15432 "id": 12029,
15433 "isConstant": false,
15434 "isLValue": false,
15435 "isPure": false,
15436 "kind": "functionCall",
15437 "lValueRequested": false,
15438 "names": [],
15439 "nodeType": "FunctionCall",
15440 "src": "7360:27:38",
15441 "typeDescriptions": {
15442 "typeIdentifier": "t_tuple$__$",
15443 "typeString": "tuple()"
15444 }
15445 },
15446 "id": 12030,
15447 "nodeType": "EmitStatement",
15448 "src": "7355:32:38"
15449 },
15450 {
15451 "expression": {
15452 "argumentTypes": null,
15453 "hexValue": "74727565",
15454 "id": 12031,
15455 "isConstant": false,
15456 "isLValue": false,
15457 "isPure": true,
15458 "kind": "bool",
15459 "lValueRequested": false,
15460 "nodeType": "Literal",
15461 "src": "7404:4:38",
15462 "subdenomination": null,
15463 "typeDescriptions": {
15464 "typeIdentifier": "t_bool",
15465 "typeString": "bool"
15466 },
15467 "value": "true"
15468 },
15469 "functionReturnParameters": 12001,
15470 "id": 12032,
15471 "nodeType": "Return",
15472 "src": "7397:11:38"
15473 }
15474 ]
15475 },
15476 "documentation": "@dev Function to mint tokens\n@param _to The address that will receive the minted tokens.\n@param _amount The amount of tokens to mint.\n@return A boolean that indicates if the operation was successful.",
15477 "id": 12034,
15478 "implemented": true,
15479 "isConstructor": false,
15480 "isDeclaredConst": false,
15481 "modifiers": [
15482 {
15483 "arguments": null,
15484 "id": 11996,
15485 "modifierName": {
15486 "argumentTypes": null,
15487 "id": 11995,
15488 "name": "onlyOwner",
15489 "nodeType": "Identifier",
15490 "overloadedDeclarations": [],
15491 "referencedDeclaration": 11712,
15492 "src": "7172:9:38",
15493 "typeDescriptions": {
15494 "typeIdentifier": "t_modifier$__$",
15495 "typeString": "modifier ()"
15496 }
15497 },
15498 "nodeType": "ModifierInvocation",
15499 "src": "7172:9:38"
15500 },
15501 {
15502 "arguments": null,
15503 "id": 11998,
15504 "modifierName": {
15505 "argumentTypes": null,
15506 "id": 11997,
15507 "name": "canMint",
15508 "nodeType": "Identifier",
15509 "overloadedDeclarations": [],
15510 "referencedDeclaration": 11989,
15511 "src": "7182:7:38",
15512 "typeDescriptions": {
15513 "typeIdentifier": "t_modifier$__$",
15514 "typeString": "modifier ()"
15515 }
15516 },
15517 "nodeType": "ModifierInvocation",
15518 "src": "7182:7:38"
15519 }
15520 ],
15521 "name": "mint",
15522 "nodeType": "FunctionDefinition",
15523 "parameters": {
15524 "id": 11994,
15525 "nodeType": "ParameterList",
15526 "parameters": [
15527 {
15528 "constant": false,
15529 "id": 11991,
15530 "name": "_to",
15531 "nodeType": "VariableDeclaration",
15532 "scope": 12034,
15533 "src": "7142:11:38",
15534 "stateVariable": false,
15535 "storageLocation": "default",
15536 "typeDescriptions": {
15537 "typeIdentifier": "t_address",
15538 "typeString": "address"
15539 },
15540 "typeName": {
15541 "id": 11990,
15542 "name": "address",
15543 "nodeType": "ElementaryTypeName",
15544 "src": "7142:7:38",
15545 "typeDescriptions": {
15546 "typeIdentifier": "t_address",
15547 "typeString": "address"
15548 }
15549 },
15550 "value": null,
15551 "visibility": "internal"
15552 },
15553 {
15554 "constant": false,
15555 "id": 11993,
15556 "name": "_amount",
15557 "nodeType": "VariableDeclaration",
15558 "scope": 12034,
15559 "src": "7155:15:38",
15560 "stateVariable": false,
15561 "storageLocation": "default",
15562 "typeDescriptions": {
15563 "typeIdentifier": "t_uint256",
15564 "typeString": "uint256"
15565 },
15566 "typeName": {
15567 "id": 11992,
15568 "name": "uint256",
15569 "nodeType": "ElementaryTypeName",
15570 "src": "7155:7:38",
15571 "typeDescriptions": {
15572 "typeIdentifier": "t_uint256",
15573 "typeString": "uint256"
15574 }
15575 },
15576 "value": null,
15577 "visibility": "internal"
15578 }
15579 ],
15580 "src": "7141:30:38"
15581 },
15582 "payable": false,
15583 "returnParameters": {
15584 "id": 12001,
15585 "nodeType": "ParameterList",
15586 "parameters": [
15587 {
15588 "constant": false,
15589 "id": 12000,
15590 "name": "",
15591 "nodeType": "VariableDeclaration",
15592 "scope": 12034,
15593 "src": "7206:4:38",
15594 "stateVariable": false,
15595 "storageLocation": "default",
15596 "typeDescriptions": {
15597 "typeIdentifier": "t_bool",
15598 "typeString": "bool"
15599 },
15600 "typeName": {
15601 "id": 11999,
15602 "name": "bool",
15603 "nodeType": "ElementaryTypeName",
15604 "src": "7206:4:38",
15605 "typeDescriptions": {
15606 "typeIdentifier": "t_bool",
15607 "typeString": "bool"
15608 }
15609 },
15610 "value": null,
15611 "visibility": "internal"
15612 }
15613 ],
15614 "src": "7205:6:38"
15615 },
15616 "scope": 12052,
15617 "src": "7128:287:38",
15618 "stateMutability": "nonpayable",
15619 "superFunction": null,
15620 "visibility": "public"
15621 },
15622 {
15623 "body": {
15624 "id": 12050,
15625 "nodeType": "Block",
15626 "src": "7596:89:38",
15627 "statements": [
15628 {
15629 "expression": {
15630 "argumentTypes": null,
15631 "id": 12043,
15632 "isConstant": false,
15633 "isLValue": false,
15634 "isPure": false,
15635 "lValueRequested": false,
15636 "leftHandSide": {
15637 "argumentTypes": null,
15638 "id": 12041,
15639 "name": "mintingFinished",
15640 "nodeType": "Identifier",
15641 "overloadedDeclarations": [],
15642 "referencedDeclaration": 11980,
15643 "src": "7606:15:38",
15644 "typeDescriptions": {
15645 "typeIdentifier": "t_bool",
15646 "typeString": "bool"
15647 }
15648 },
15649 "nodeType": "Assignment",
15650 "operator": "=",
15651 "rightHandSide": {
15652 "argumentTypes": null,
15653 "hexValue": "74727565",
15654 "id": 12042,
15655 "isConstant": false,
15656 "isLValue": false,
15657 "isPure": true,
15658 "kind": "bool",
15659 "lValueRequested": false,
15660 "nodeType": "Literal",
15661 "src": "7624:4:38",
15662 "subdenomination": null,
15663 "typeDescriptions": {
15664 "typeIdentifier": "t_bool",
15665 "typeString": "bool"
15666 },
15667 "value": "true"
15668 },
15669 "src": "7606:22:38",
15670 "typeDescriptions": {
15671 "typeIdentifier": "t_bool",
15672 "typeString": "bool"
15673 }
15674 },
15675 "id": 12044,
15676 "nodeType": "ExpressionStatement",
15677 "src": "7606:22:38"
15678 },
15679 {
15680 "eventCall": {
15681 "argumentTypes": null,
15682 "arguments": [],
15683 "expression": {
15684 "argumentTypes": [],
15685 "id": 12045,
15686 "name": "MintFinished",
15687 "nodeType": "Identifier",
15688 "overloadedDeclarations": [],
15689 "referencedDeclaration": 11977,
15690 "src": "7643:12:38",
15691 "typeDescriptions": {
15692 "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
15693 "typeString": "function ()"
15694 }
15695 },
15696 "id": 12046,
15697 "isConstant": false,
15698 "isLValue": false,
15699 "isPure": false,
15700 "kind": "functionCall",
15701 "lValueRequested": false,
15702 "names": [],
15703 "nodeType": "FunctionCall",
15704 "src": "7643:14:38",
15705 "typeDescriptions": {
15706 "typeIdentifier": "t_tuple$__$",
15707 "typeString": "tuple()"
15708 }
15709 },
15710 "id": 12047,
15711 "nodeType": "EmitStatement",
15712 "src": "7638:19:38"
15713 },
15714 {
15715 "expression": {
15716 "argumentTypes": null,
15717 "hexValue": "74727565",
15718 "id": 12048,
15719 "isConstant": false,
15720 "isLValue": false,
15721 "isPure": true,
15722 "kind": "bool",
15723 "lValueRequested": false,
15724 "nodeType": "Literal",
15725 "src": "7674:4:38",
15726 "subdenomination": null,
15727 "typeDescriptions": {
15728 "typeIdentifier": "t_bool",
15729 "typeString": "bool"
15730 },
15731 "value": "true"
15732 },
15733 "functionReturnParameters": 12040,
15734 "id": 12049,
15735 "nodeType": "Return",
15736 "src": "7667:11:38"
15737 }
15738 ]
15739 },
15740 "documentation": "@dev Function to stop minting new tokens.\n@return True if the operation was successful.",
15741 "id": 12051,
15742 "implemented": true,
15743 "isConstructor": false,
15744 "isDeclaredConst": false,
15745 "modifiers": [
15746 {
15747 "arguments": null,
15748 "id": 12037,
15749 "modifierName": {
15750 "argumentTypes": null,
15751 "id": 12036,
15752 "name": "onlyOwner",
15753 "nodeType": "Identifier",
15754 "overloadedDeclarations": [],
15755 "referencedDeclaration": 11712,
15756 "src": "7564:9:38",
15757 "typeDescriptions": {
15758 "typeIdentifier": "t_modifier$__$",
15759 "typeString": "modifier ()"
15760 }
15761 },
15762 "nodeType": "ModifierInvocation",
15763 "src": "7564:9:38"
15764 }
15765 ],
15766 "name": "finishMinting",
15767 "nodeType": "FunctionDefinition",
15768 "parameters": {
15769 "id": 12035,
15770 "nodeType": "ParameterList",
15771 "parameters": [],
15772 "src": "7561:2:38"
15773 },
15774 "payable": false,
15775 "returnParameters": {
15776 "id": 12040,
15777 "nodeType": "ParameterList",
15778 "parameters": [
15779 {
15780 "constant": false,
15781 "id": 12039,
15782 "name": "",
15783 "nodeType": "VariableDeclaration",
15784 "scope": 12051,
15785 "src": "7590:4:38",
15786 "stateVariable": false,
15787 "storageLocation": "default",
15788 "typeDescriptions": {
15789 "typeIdentifier": "t_bool",
15790 "typeString": "bool"
15791 },
15792 "typeName": {
15793 "id": 12038,
15794 "name": "bool",
15795 "nodeType": "ElementaryTypeName",
15796 "src": "7590:4:38",
15797 "typeDescriptions": {
15798 "typeIdentifier": "t_bool",
15799 "typeString": "bool"
15800 }
15801 },
15802 "value": null,
15803 "visibility": "internal"
15804 }
15805 ],
15806 "src": "7589:6:38"
15807 },
15808 "scope": 12052,
15809 "src": "7539:146:38",
15810 "stateMutability": "nonpayable",
15811 "superFunction": null,
15812 "visibility": "public"
15813 }
15814 ],
15815 "scope": 12078,
15816 "src": "6632:1055:38"
15817 },
15818 {
15819 "baseContracts": [
15820 {
15821 "arguments": null,
15822 "baseName": {
15823 "contractScope": null,
15824 "id": 12053,
15825 "name": "MintableToken",
15826 "nodeType": "UserDefinedTypeName",
15827 "referencedDeclaration": 12052,
15828 "src": "7710:13:38",
15829 "typeDescriptions": {
15830 "typeIdentifier": "t_contract$_MintableToken_$12052",
15831 "typeString": "contract MintableToken"
15832 }
15833 },
15834 "id": 12054,
15835 "nodeType": "InheritanceSpecifier",
15836 "src": "7710:13:38"
15837 }
15838 ],
15839 "contractDependencies": [
15840 11571,
15841 11611,
15842 11684,
15843 11738,
15844 11965,
15845 12052
15846 ],
15847 "contractKind": "contract",
15848 "documentation": null,
15849 "fullyImplemented": true,
15850 "id": 12077,
15851 "linearizedBaseContracts": [
15852 12077,
15853 12052,
15854 11738,
15855 11965,
15856 11684,
15857 11611,
15858 11571
15859 ],
15860 "name": "ZapToken",
15861 "nodeType": "ContractDefinition",
15862 "nodes": [
15863 {
15864 "constant": false,
15865 "id": 12057,
15866 "name": "name",
15867 "nodeType": "VariableDeclaration",
15868 "scope": 12077,
15869 "src": "7730:33:38",
15870 "stateVariable": true,
15871 "storageLocation": "default",
15872 "typeDescriptions": {
15873 "typeIdentifier": "t_string_storage",
15874 "typeString": "string"
15875 },
15876 "typeName": {
15877 "id": 12055,
15878 "name": "string",
15879 "nodeType": "ElementaryTypeName",
15880 "src": "7730:6:38",
15881 "typeDescriptions": {
15882 "typeIdentifier": "t_string_storage_ptr",
15883 "typeString": "string"
15884 }
15885 },
15886 "value": {
15887 "argumentTypes": null,
15888 "hexValue": "5445535420544f4b454e",
15889 "id": 12056,
15890 "isConstant": false,
15891 "isLValue": false,
15892 "isPure": true,
15893 "kind": "string",
15894 "lValueRequested": false,
15895 "nodeType": "Literal",
15896 "src": "7751:12:38",
15897 "subdenomination": null,
15898 "typeDescriptions": {
15899 "typeIdentifier": "t_stringliteral_8cc07e74fc4859642fc3155159df3dd4457185a8cd596d0181af35ff8c613552",
15900 "typeString": "literal_string \"TEST TOKEN\""
15901 },
15902 "value": "TEST TOKEN"
15903 },
15904 "visibility": "public"
15905 },
15906 {
15907 "constant": false,
15908 "id": 12060,
15909 "name": "symbol",
15910 "nodeType": "VariableDeclaration",
15911 "scope": 12077,
15912 "src": "7769:29:38",
15913 "stateVariable": true,
15914 "storageLocation": "default",
15915 "typeDescriptions": {
15916 "typeIdentifier": "t_string_storage",
15917 "typeString": "string"
15918 },
15919 "typeName": {
15920 "id": 12058,
15921 "name": "string",
15922 "nodeType": "ElementaryTypeName",
15923 "src": "7769:6:38",
15924 "typeDescriptions": {
15925 "typeIdentifier": "t_string_storage_ptr",
15926 "typeString": "string"
15927 }
15928 },
15929 "value": {
15930 "argumentTypes": null,
15931 "hexValue": "54455354",
15932 "id": 12059,
15933 "isConstant": false,
15934 "isLValue": false,
15935 "isPure": true,
15936 "kind": "string",
15937 "lValueRequested": false,
15938 "nodeType": "Literal",
15939 "src": "7792:6:38",
15940 "subdenomination": null,
15941 "typeDescriptions": {
15942 "typeIdentifier": "t_stringliteral_852daa74cc3c31fe64542bb9b8764cfb91cc30f9acf9389071ffb44a9eefde46",
15943 "typeString": "literal_string \"TEST\""
15944 },
15945 "value": "TEST"
15946 },
15947 "visibility": "public"
15948 },
15949 {
15950 "constant": false,
15951 "id": 12063,
15952 "name": "decimals",
15953 "nodeType": "VariableDeclaration",
15954 "scope": 12077,
15955 "src": "7804:28:38",
15956 "stateVariable": true,
15957 "storageLocation": "default",
15958 "typeDescriptions": {
15959 "typeIdentifier": "t_uint256",
15960 "typeString": "uint256"
15961 },
15962 "typeName": {
15963 "id": 12061,
15964 "name": "uint256",
15965 "nodeType": "ElementaryTypeName",
15966 "src": "7804:7:38",
15967 "typeDescriptions": {
15968 "typeIdentifier": "t_uint256",
15969 "typeString": "uint256"
15970 }
15971 },
15972 "value": {
15973 "argumentTypes": null,
15974 "hexValue": "3138",
15975 "id": 12062,
15976 "isConstant": false,
15977 "isLValue": false,
15978 "isPure": true,
15979 "kind": "number",
15980 "lValueRequested": false,
15981 "nodeType": "Literal",
15982 "src": "7830:2:38",
15983 "subdenomination": null,
15984 "typeDescriptions": {
15985 "typeIdentifier": "t_rational_18_by_1",
15986 "typeString": "int_const 18"
15987 },
15988 "value": "18"
15989 },
15990 "visibility": "public"
15991 },
15992 {
15993 "body": {
15994 "id": 12075,
15995 "nodeType": "Block",
15996 "src": "7888:32:38",
15997 "statements": [
15998 {
15999 "expression": {
16000 "argumentTypes": null,
16001 "arguments": [
16002 {
16003 "argumentTypes": null,
16004 "id": 12071,
16005 "name": "to",
16006 "nodeType": "Identifier",
16007 "overloadedDeclarations": [],
16008 "referencedDeclaration": 12065,
16009 "src": "7903:2:38",
16010 "typeDescriptions": {
16011 "typeIdentifier": "t_address",
16012 "typeString": "address"
16013 }
16014 },
16015 {
16016 "argumentTypes": null,
16017 "id": 12072,
16018 "name": "amount",
16019 "nodeType": "Identifier",
16020 "overloadedDeclarations": [],
16021 "referencedDeclaration": 12067,
16022 "src": "7906:6:38",
16023 "typeDescriptions": {
16024 "typeIdentifier": "t_uint256",
16025 "typeString": "uint256"
16026 }
16027 }
16028 ],
16029 "expression": {
16030 "argumentTypes": [
16031 {
16032 "typeIdentifier": "t_address",
16033 "typeString": "address"
16034 },
16035 {
16036 "typeIdentifier": "t_uint256",
16037 "typeString": "uint256"
16038 }
16039 ],
16040 "id": 12070,
16041 "name": "mint",
16042 "nodeType": "Identifier",
16043 "overloadedDeclarations": [],
16044 "referencedDeclaration": 12034,
16045 "src": "7898:4:38",
16046 "typeDescriptions": {
16047 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
16048 "typeString": "function (address,uint256) returns (bool)"
16049 }
16050 },
16051 "id": 12073,
16052 "isConstant": false,
16053 "isLValue": false,
16054 "isPure": false,
16055 "kind": "functionCall",
16056 "lValueRequested": false,
16057 "names": [],
16058 "nodeType": "FunctionCall",
16059 "src": "7898:15:38",
16060 "typeDescriptions": {
16061 "typeIdentifier": "t_bool",
16062 "typeString": "bool"
16063 }
16064 },
16065 "id": 12074,
16066 "nodeType": "ExpressionStatement",
16067 "src": "7898:15:38"
16068 }
16069 ]
16070 },
16071 "documentation": null,
16072 "id": 12076,
16073 "implemented": true,
16074 "isConstructor": false,
16075 "isDeclaredConst": false,
16076 "modifiers": [],
16077 "name": "allocate",
16078 "nodeType": "FunctionDefinition",
16079 "parameters": {
16080 "id": 12068,
16081 "nodeType": "ParameterList",
16082 "parameters": [
16083 {
16084 "constant": false,
16085 "id": 12065,
16086 "name": "to",
16087 "nodeType": "VariableDeclaration",
16088 "scope": 12076,
16089 "src": "7857:10:38",
16090 "stateVariable": false,
16091 "storageLocation": "default",
16092 "typeDescriptions": {
16093 "typeIdentifier": "t_address",
16094 "typeString": "address"
16095 },
16096 "typeName": {
16097 "id": 12064,
16098 "name": "address",
16099 "nodeType": "ElementaryTypeName",
16100 "src": "7857:7:38",
16101 "typeDescriptions": {
16102 "typeIdentifier": "t_address",
16103 "typeString": "address"
16104 }
16105 },
16106 "value": null,
16107 "visibility": "internal"
16108 },
16109 {
16110 "constant": false,
16111 "id": 12067,
16112 "name": "amount",
16113 "nodeType": "VariableDeclaration",
16114 "scope": 12076,
16115 "src": "7869:11:38",
16116 "stateVariable": false,
16117 "storageLocation": "default",
16118 "typeDescriptions": {
16119 "typeIdentifier": "t_uint256",
16120 "typeString": "uint256"
16121 },
16122 "typeName": {
16123 "id": 12066,
16124 "name": "uint",
16125 "nodeType": "ElementaryTypeName",
16126 "src": "7869:4:38",
16127 "typeDescriptions": {
16128 "typeIdentifier": "t_uint256",
16129 "typeString": "uint256"
16130 }
16131 },
16132 "value": null,
16133 "visibility": "internal"
16134 }
16135 ],
16136 "src": "7856:25:38"
16137 },
16138 "payable": false,
16139 "returnParameters": {
16140 "id": 12069,
16141 "nodeType": "ParameterList",
16142 "parameters": [],
16143 "src": "7888:0:38"
16144 },
16145 "scope": 12077,
16146 "src": "7839:81:38",
16147 "stateMutability": "nonpayable",
16148 "superFunction": null,
16149 "visibility": "public"
16150 }
16151 ],
16152 "scope": 12078,
16153 "src": "7689:233:38"
16154 }
16155 ],
16156 "src": "0:7923:38"
16157 },
16158 "compiler": {
16159 "name": "solc",
16160 "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
16161 },
16162 "networks": {},
16163 "schemaVersion": "2.0.2",
16164 "updatedAt": "2019-06-25T21:15:14.211Z"
16165}
\No newline at end of file