├── .gitignore ├── README.md ├── build └── contracts │ ├── BasicToken.json │ ├── ERC20.json │ ├── ERC20Basic.json │ ├── Migrations.json │ ├── SafeMath.json │ ├── StandardToken.json │ └── TutorialToken.json ├── contracts ├── Migrations.sol └── TutorialCoin.sol ├── front ├── .gitignore ├── README.md ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ └── manifest.json ├── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── contracts │ ├── index.css │ ├── index.js │ ├── logo.svg │ └── registerServiceWorker.js └── yarn.lock ├── migrations ├── 1_initial_migration.js └── 2_deploy_contract.js ├── package.json ├── truffle-config.js ├── truffle.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | front/node_modules/ 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ethereum Token Tutorial 2 | 3 | This is example repo for my articles about simple ERC20 compliant token: 4 | 5 | * [Part 1](http://maksimivanov.com/posts/ethereum-react-dapp-tutorial) 6 | * [Part 2](http://maksimivanov.com/posts/ethereum-react-dapp-tutorial-part-2) 7 | 8 | ## How to run 9 | 10 | First install truffle and ganache globally: 11 | 12 | ```sh 13 | npm install -g truffle 14 | npm install -g ganache-cli 15 | ``` 16 | 17 | Now run `ganache-cli` on port `7545`: 18 | 19 | ```sh 20 | ganache-cli -b 3 -p 7545 21 | ``` 22 | 23 | Run the migrations (contracts are already compiled): 24 | 25 | ```sh 26 | truffle migrate 27 | ``` 28 | 29 | Install [🦊 Metamask](https://metamask.io/) browser extension and connect to local network (custom RPC, `http://localhost:7545`) 30 | 31 | Go to `/front` folder install dependencies and run the app: 32 | 33 | ```sh 34 | cd front 35 | yarn 36 | yarn start 37 | ``` 38 | 39 | Web app should be available on `http://localhost:3000`. 40 | 41 |  42 | 43 | Login to Metamask using first private key from `ganache-cli` output. This account has all the Tutorial Tokens. 44 | 45 | Try to send tokens to one of other accounts. You can get their addresses from `ganache-cli` as well. 46 | -------------------------------------------------------------------------------- /build/contracts/ERC20.json: -------------------------------------------------------------------------------- 1 | { 2 | "contractName": "ERC20", 3 | "abi": [ 4 | { 5 | "constant": false, 6 | "inputs": [ 7 | { 8 | "name": "spender", 9 | "type": "address" 10 | }, 11 | { 12 | "name": "value", 13 | "type": "uint256" 14 | } 15 | ], 16 | "name": "approve", 17 | "outputs": [ 18 | { 19 | "name": "", 20 | "type": "bool" 21 | } 22 | ], 23 | "payable": false, 24 | "stateMutability": "nonpayable", 25 | "type": "function" 26 | }, 27 | { 28 | "constant": true, 29 | "inputs": [], 30 | "name": "totalSupply", 31 | "outputs": [ 32 | { 33 | "name": "", 34 | "type": "uint256" 35 | } 36 | ], 37 | "payable": false, 38 | "stateMutability": "view", 39 | "type": "function" 40 | }, 41 | { 42 | "constant": false, 43 | "inputs": [ 44 | { 45 | "name": "from", 46 | "type": "address" 47 | }, 48 | { 49 | "name": "to", 50 | "type": "address" 51 | }, 52 | { 53 | "name": "value", 54 | "type": "uint256" 55 | } 56 | ], 57 | "name": "transferFrom", 58 | "outputs": [ 59 | { 60 | "name": "", 61 | "type": "bool" 62 | } 63 | ], 64 | "payable": false, 65 | "stateMutability": "nonpayable", 66 | "type": "function" 67 | }, 68 | { 69 | "constant": true, 70 | "inputs": [ 71 | { 72 | "name": "who", 73 | "type": "address" 74 | } 75 | ], 76 | "name": "balanceOf", 77 | "outputs": [ 78 | { 79 | "name": "", 80 | "type": "uint256" 81 | } 82 | ], 83 | "payable": false, 84 | "stateMutability": "view", 85 | "type": "function" 86 | }, 87 | { 88 | "constant": false, 89 | "inputs": [ 90 | { 91 | "name": "to", 92 | "type": "address" 93 | }, 94 | { 95 | "name": "value", 96 | "type": "uint256" 97 | } 98 | ], 99 | "name": "transfer", 100 | "outputs": [ 101 | { 102 | "name": "", 103 | "type": "bool" 104 | } 105 | ], 106 | "payable": false, 107 | "stateMutability": "nonpayable", 108 | "type": "function" 109 | }, 110 | { 111 | "constant": true, 112 | "inputs": [ 113 | { 114 | "name": "owner", 115 | "type": "address" 116 | }, 117 | { 118 | "name": "spender", 119 | "type": "address" 120 | } 121 | ], 122 | "name": "allowance", 123 | "outputs": [ 124 | { 125 | "name": "", 126 | "type": "uint256" 127 | } 128 | ], 129 | "payable": false, 130 | "stateMutability": "view", 131 | "type": "function" 132 | }, 133 | { 134 | "anonymous": false, 135 | "inputs": [ 136 | { 137 | "indexed": true, 138 | "name": "owner", 139 | "type": "address" 140 | }, 141 | { 142 | "indexed": true, 143 | "name": "spender", 144 | "type": "address" 145 | }, 146 | { 147 | "indexed": false, 148 | "name": "value", 149 | "type": "uint256" 150 | } 151 | ], 152 | "name": "Approval", 153 | "type": "event" 154 | }, 155 | { 156 | "anonymous": false, 157 | "inputs": [ 158 | { 159 | "indexed": true, 160 | "name": "from", 161 | "type": "address" 162 | }, 163 | { 164 | "indexed": true, 165 | "name": "to", 166 | "type": "address" 167 | }, 168 | { 169 | "indexed": false, 170 | "name": "value", 171 | "type": "uint256" 172 | } 173 | ], 174 | "name": "Transfer", 175 | "type": "event" 176 | } 177 | ], 178 | "bytecode": "0x", 179 | "deployedBytecode": "0x", 180 | "sourceMap": "", 181 | "deployedSourceMap": "", 182 | "source": "pragma solidity ^0.4.18;\n\nimport \"./ERC20Basic.sol\";\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 view 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", 183 | "sourcePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", 184 | "ast": { 185 | "attributes": { 186 | "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", 187 | "exportedSymbols": { 188 | "ERC20": [ 189 | 326 190 | ] 191 | } 192 | }, 193 | "children": [ 194 | { 195 | "attributes": { 196 | "literals": [ 197 | "solidity", 198 | "^", 199 | "0.4", 200 | ".18" 201 | ] 202 | }, 203 | "id": 285, 204 | "name": "PragmaDirective", 205 | "src": "0:24:4" 206 | }, 207 | { 208 | "attributes": { 209 | "SourceUnit": 359, 210 | "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", 211 | "file": "./ERC20Basic.sol", 212 | "scope": 327, 213 | "symbolAliases": [ 214 | null 215 | ], 216 | "unitAlias": "" 217 | }, 218 | "id": 286, 219 | "name": "ImportDirective", 220 | "src": "26:26:4" 221 | }, 222 | { 223 | "attributes": { 224 | "contractDependencies": [ 225 | 358 226 | ], 227 | "contractKind": "contract", 228 | "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", 229 | "fullyImplemented": false, 230 | "linearizedBaseContracts": [ 231 | 326, 232 | 358 233 | ], 234 | "name": "ERC20", 235 | "scope": 327 236 | }, 237 | "children": [ 238 | { 239 | "attributes": { 240 | "arguments": [ 241 | null 242 | ] 243 | }, 244 | "children": [ 245 | { 246 | "attributes": { 247 | "contractScope": null, 248 | "name": "ERC20Basic", 249 | "referencedDeclaration": 358, 250 | "type": "contract ERC20Basic" 251 | }, 252 | "id": 287, 253 | "name": "UserDefinedTypeName", 254 | "src": "162:10:4" 255 | } 256 | ], 257 | "id": 288, 258 | "name": "InheritanceSpecifier", 259 | "src": "162:10:4" 260 | }, 261 | { 262 | "attributes": { 263 | "body": null, 264 | "constant": true, 265 | "implemented": false, 266 | "isConstructor": false, 267 | "modifiers": [ 268 | null 269 | ], 270 | "name": "allowance", 271 | "payable": false, 272 | "scope": 326, 273 | "stateMutability": "view", 274 | "superFunction": null, 275 | "visibility": "public" 276 | }, 277 | "children": [ 278 | { 279 | "children": [ 280 | { 281 | "attributes": { 282 | "constant": false, 283 | "name": "owner", 284 | "scope": 297, 285 | "stateVariable": false, 286 | "storageLocation": "default", 287 | "type": "address", 288 | "value": null, 289 | "visibility": "internal" 290 | }, 291 | "children": [ 292 | { 293 | "attributes": { 294 | "name": "address", 295 | "type": "address" 296 | }, 297 | "id": 289, 298 | "name": "ElementaryTypeName", 299 | "src": "196:7:4" 300 | } 301 | ], 302 | "id": 290, 303 | "name": "VariableDeclaration", 304 | "src": "196:13:4" 305 | }, 306 | { 307 | "attributes": { 308 | "constant": false, 309 | "name": "spender", 310 | "scope": 297, 311 | "stateVariable": false, 312 | "storageLocation": "default", 313 | "type": "address", 314 | "value": null, 315 | "visibility": "internal" 316 | }, 317 | "children": [ 318 | { 319 | "attributes": { 320 | "name": "address", 321 | "type": "address" 322 | }, 323 | "id": 291, 324 | "name": "ElementaryTypeName", 325 | "src": "211:7:4" 326 | } 327 | ], 328 | "id": 292, 329 | "name": "VariableDeclaration", 330 | "src": "211:15:4" 331 | } 332 | ], 333 | "id": 293, 334 | "name": "ParameterList", 335 | "src": "195:32:4" 336 | }, 337 | { 338 | "children": [ 339 | { 340 | "attributes": { 341 | "constant": false, 342 | "name": "", 343 | "scope": 297, 344 | "stateVariable": false, 345 | "storageLocation": "default", 346 | "type": "uint256", 347 | "value": null, 348 | "visibility": "internal" 349 | }, 350 | "children": [ 351 | { 352 | "attributes": { 353 | "name": "uint256", 354 | "type": "uint256" 355 | }, 356 | "id": 294, 357 | "name": "ElementaryTypeName", 358 | "src": "249:7:4" 359 | } 360 | ], 361 | "id": 295, 362 | "name": "VariableDeclaration", 363 | "src": "249:7:4" 364 | } 365 | ], 366 | "id": 296, 367 | "name": "ParameterList", 368 | "src": "248:9:4" 369 | } 370 | ], 371 | "id": 297, 372 | "name": "FunctionDefinition", 373 | "src": "177:81:4" 374 | }, 375 | { 376 | "attributes": { 377 | "body": null, 378 | "constant": false, 379 | "implemented": false, 380 | "isConstructor": false, 381 | "modifiers": [ 382 | null 383 | ], 384 | "name": "transferFrom", 385 | "payable": false, 386 | "scope": 326, 387 | "stateMutability": "nonpayable", 388 | "superFunction": null, 389 | "visibility": "public" 390 | }, 391 | "children": [ 392 | { 393 | "children": [ 394 | { 395 | "attributes": { 396 | "constant": false, 397 | "name": "from", 398 | "scope": 308, 399 | "stateVariable": false, 400 | "storageLocation": "default", 401 | "type": "address", 402 | "value": null, 403 | "visibility": "internal" 404 | }, 405 | "children": [ 406 | { 407 | "attributes": { 408 | "name": "address", 409 | "type": "address" 410 | }, 411 | "id": 298, 412 | "name": "ElementaryTypeName", 413 | "src": "283:7:4" 414 | } 415 | ], 416 | "id": 299, 417 | "name": "VariableDeclaration", 418 | "src": "283:12:4" 419 | }, 420 | { 421 | "attributes": { 422 | "constant": false, 423 | "name": "to", 424 | "scope": 308, 425 | "stateVariable": false, 426 | "storageLocation": "default", 427 | "type": "address", 428 | "value": null, 429 | "visibility": "internal" 430 | }, 431 | "children": [ 432 | { 433 | "attributes": { 434 | "name": "address", 435 | "type": "address" 436 | }, 437 | "id": 300, 438 | "name": "ElementaryTypeName", 439 | "src": "297:7:4" 440 | } 441 | ], 442 | "id": 301, 443 | "name": "VariableDeclaration", 444 | "src": "297:10:4" 445 | }, 446 | { 447 | "attributes": { 448 | "constant": false, 449 | "name": "value", 450 | "scope": 308, 451 | "stateVariable": false, 452 | "storageLocation": "default", 453 | "type": "uint256", 454 | "value": null, 455 | "visibility": "internal" 456 | }, 457 | "children": [ 458 | { 459 | "attributes": { 460 | "name": "uint256", 461 | "type": "uint256" 462 | }, 463 | "id": 302, 464 | "name": "ElementaryTypeName", 465 | "src": "309:7:4" 466 | } 467 | ], 468 | "id": 303, 469 | "name": "VariableDeclaration", 470 | "src": "309:13:4" 471 | } 472 | ], 473 | "id": 304, 474 | "name": "ParameterList", 475 | "src": "282:41:4" 476 | }, 477 | { 478 | "children": [ 479 | { 480 | "attributes": { 481 | "constant": false, 482 | "name": "", 483 | "scope": 308, 484 | "stateVariable": false, 485 | "storageLocation": "default", 486 | "type": "bool", 487 | "value": null, 488 | "visibility": "internal" 489 | }, 490 | "children": [ 491 | { 492 | "attributes": { 493 | "name": "bool", 494 | "type": "bool" 495 | }, 496 | "id": 305, 497 | "name": "ElementaryTypeName", 498 | "src": "340:4:4" 499 | } 500 | ], 501 | "id": 306, 502 | "name": "VariableDeclaration", 503 | "src": "340:4:4" 504 | } 505 | ], 506 | "id": 307, 507 | "name": "ParameterList", 508 | "src": "339:6:4" 509 | } 510 | ], 511 | "id": 308, 512 | "name": "FunctionDefinition", 513 | "src": "261:85:4" 514 | }, 515 | { 516 | "attributes": { 517 | "body": null, 518 | "constant": false, 519 | "implemented": false, 520 | "isConstructor": false, 521 | "modifiers": [ 522 | null 523 | ], 524 | "name": "approve", 525 | "payable": false, 526 | "scope": 326, 527 | "stateMutability": "nonpayable", 528 | "superFunction": null, 529 | "visibility": "public" 530 | }, 531 | "children": [ 532 | { 533 | "children": [ 534 | { 535 | "attributes": { 536 | "constant": false, 537 | "name": "spender", 538 | "scope": 317, 539 | "stateVariable": false, 540 | "storageLocation": "default", 541 | "type": "address", 542 | "value": null, 543 | "visibility": "internal" 544 | }, 545 | "children": [ 546 | { 547 | "attributes": { 548 | "name": "address", 549 | "type": "address" 550 | }, 551 | "id": 309, 552 | "name": "ElementaryTypeName", 553 | "src": "366:7:4" 554 | } 555 | ], 556 | "id": 310, 557 | "name": "VariableDeclaration", 558 | "src": "366:15:4" 559 | }, 560 | { 561 | "attributes": { 562 | "constant": false, 563 | "name": "value", 564 | "scope": 317, 565 | "stateVariable": false, 566 | "storageLocation": "default", 567 | "type": "uint256", 568 | "value": null, 569 | "visibility": "internal" 570 | }, 571 | "children": [ 572 | { 573 | "attributes": { 574 | "name": "uint256", 575 | "type": "uint256" 576 | }, 577 | "id": 311, 578 | "name": "ElementaryTypeName", 579 | "src": "383:7:4" 580 | } 581 | ], 582 | "id": 312, 583 | "name": "VariableDeclaration", 584 | "src": "383:13:4" 585 | } 586 | ], 587 | "id": 313, 588 | "name": "ParameterList", 589 | "src": "365:32:4" 590 | }, 591 | { 592 | "children": [ 593 | { 594 | "attributes": { 595 | "constant": false, 596 | "name": "", 597 | "scope": 317, 598 | "stateVariable": false, 599 | "storageLocation": "default", 600 | "type": "bool", 601 | "value": null, 602 | "visibility": "internal" 603 | }, 604 | "children": [ 605 | { 606 | "attributes": { 607 | "name": "bool", 608 | "type": "bool" 609 | }, 610 | "id": 314, 611 | "name": "ElementaryTypeName", 612 | "src": "414:4:4" 613 | } 614 | ], 615 | "id": 315, 616 | "name": "VariableDeclaration", 617 | "src": "414:4:4" 618 | } 619 | ], 620 | "id": 316, 621 | "name": "ParameterList", 622 | "src": "413:6:4" 623 | } 624 | ], 625 | "id": 317, 626 | "name": "FunctionDefinition", 627 | "src": "349:71:4" 628 | }, 629 | { 630 | "attributes": { 631 | "anonymous": false, 632 | "name": "Approval" 633 | }, 634 | "children": [ 635 | { 636 | "children": [ 637 | { 638 | "attributes": { 639 | "constant": false, 640 | "indexed": true, 641 | "name": "owner", 642 | "scope": 325, 643 | "stateVariable": false, 644 | "storageLocation": "default", 645 | "type": "address", 646 | "value": null, 647 | "visibility": "internal" 648 | }, 649 | "children": [ 650 | { 651 | "attributes": { 652 | "name": "address", 653 | "type": "address" 654 | }, 655 | "id": 318, 656 | "name": "ElementaryTypeName", 657 | "src": "438:7:4" 658 | } 659 | ], 660 | "id": 319, 661 | "name": "VariableDeclaration", 662 | "src": "438:21:4" 663 | }, 664 | { 665 | "attributes": { 666 | "constant": false, 667 | "indexed": true, 668 | "name": "spender", 669 | "scope": 325, 670 | "stateVariable": false, 671 | "storageLocation": "default", 672 | "type": "address", 673 | "value": null, 674 | "visibility": "internal" 675 | }, 676 | "children": [ 677 | { 678 | "attributes": { 679 | "name": "address", 680 | "type": "address" 681 | }, 682 | "id": 320, 683 | "name": "ElementaryTypeName", 684 | "src": "461:7:4" 685 | } 686 | ], 687 | "id": 321, 688 | "name": "VariableDeclaration", 689 | "src": "461:23:4" 690 | }, 691 | { 692 | "attributes": { 693 | "constant": false, 694 | "indexed": false, 695 | "name": "value", 696 | "scope": 325, 697 | "stateVariable": false, 698 | "storageLocation": "default", 699 | "type": "uint256", 700 | "value": null, 701 | "visibility": "internal" 702 | }, 703 | "children": [ 704 | { 705 | "attributes": { 706 | "name": "uint256", 707 | "type": "uint256" 708 | }, 709 | "id": 322, 710 | "name": "ElementaryTypeName", 711 | "src": "486:7:4" 712 | } 713 | ], 714 | "id": 323, 715 | "name": "VariableDeclaration", 716 | "src": "486:13:4" 717 | } 718 | ], 719 | "id": 324, 720 | "name": "ParameterList", 721 | "src": "437:63:4" 722 | } 723 | ], 724 | "id": 325, 725 | "name": "EventDefinition", 726 | "src": "423:78:4" 727 | } 728 | ], 729 | "id": 326, 730 | "name": "ContractDefinition", 731 | "src": "144:359:4" 732 | } 733 | ], 734 | "id": 327, 735 | "name": "SourceUnit", 736 | "src": "0:504:4" 737 | }, 738 | "compiler": { 739 | "name": "solc", 740 | "version": "0.4.18+commit.9cf6e910.Emscripten.clang" 741 | }, 742 | "networks": {}, 743 | "schemaVersion": "1.0.1", 744 | "updatedAt": "2018-02-25T14:07:01.552Z" 745 | } -------------------------------------------------------------------------------- /build/contracts/ERC20Basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "contractName": "ERC20Basic", 3 | "abi": [ 4 | { 5 | "constant": true, 6 | "inputs": [], 7 | "name": "totalSupply", 8 | "outputs": [ 9 | { 10 | "name": "", 11 | "type": "uint256" 12 | } 13 | ], 14 | "payable": false, 15 | "stateMutability": "view", 16 | "type": "function" 17 | }, 18 | { 19 | "constant": true, 20 | "inputs": [ 21 | { 22 | "name": "who", 23 | "type": "address" 24 | } 25 | ], 26 | "name": "balanceOf", 27 | "outputs": [ 28 | { 29 | "name": "", 30 | "type": "uint256" 31 | } 32 | ], 33 | "payable": false, 34 | "stateMutability": "view", 35 | "type": "function" 36 | }, 37 | { 38 | "constant": false, 39 | "inputs": [ 40 | { 41 | "name": "to", 42 | "type": "address" 43 | }, 44 | { 45 | "name": "value", 46 | "type": "uint256" 47 | } 48 | ], 49 | "name": "transfer", 50 | "outputs": [ 51 | { 52 | "name": "", 53 | "type": "bool" 54 | } 55 | ], 56 | "payable": false, 57 | "stateMutability": "nonpayable", 58 | "type": "function" 59 | }, 60 | { 61 | "anonymous": false, 62 | "inputs": [ 63 | { 64 | "indexed": true, 65 | "name": "from", 66 | "type": "address" 67 | }, 68 | { 69 | "indexed": true, 70 | "name": "to", 71 | "type": "address" 72 | }, 73 | { 74 | "indexed": false, 75 | "name": "value", 76 | "type": "uint256" 77 | } 78 | ], 79 | "name": "Transfer", 80 | "type": "event" 81 | } 82 | ], 83 | "bytecode": "0x", 84 | "deployedBytecode": "0x", 85 | "sourceMap": "", 86 | "deployedSourceMap": "", 87 | "source": "pragma solidity ^0.4.18;\n\n\n/**\n * @title ERC20Basic\n * @dev Simpler version of ERC20 interface\n * @dev see https://github.com/ethereum/EIPs/issues/179\n */\ncontract ERC20Basic {\n function totalSupply() public view returns (uint256);\n function balanceOf(address who) public view 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", 88 | "sourcePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", 89 | "ast": { 90 | "attributes": { 91 | "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", 92 | "exportedSymbols": { 93 | "ERC20Basic": [ 94 | 358 95 | ] 96 | } 97 | }, 98 | "children": [ 99 | { 100 | "attributes": { 101 | "literals": [ 102 | "solidity", 103 | "^", 104 | "0.4", 105 | ".18" 106 | ] 107 | }, 108 | "id": 328, 109 | "name": "PragmaDirective", 110 | "src": "0:24:5" 111 | }, 112 | { 113 | "attributes": { 114 | "baseContracts": [ 115 | null 116 | ], 117 | "contractDependencies": [ 118 | null 119 | ], 120 | "contractKind": "contract", 121 | "documentation": "@title ERC20Basic\n@dev Simpler version of ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/179", 122 | "fullyImplemented": false, 123 | "linearizedBaseContracts": [ 124 | 358 125 | ], 126 | "name": "ERC20Basic", 127 | "scope": 359 128 | }, 129 | "children": [ 130 | { 131 | "attributes": { 132 | "body": null, 133 | "constant": true, 134 | "implemented": false, 135 | "isConstructor": false, 136 | "modifiers": [ 137 | null 138 | ], 139 | "name": "totalSupply", 140 | "payable": false, 141 | "scope": 358, 142 | "stateMutability": "view", 143 | "superFunction": null, 144 | "visibility": "public" 145 | }, 146 | "children": [ 147 | { 148 | "attributes": { 149 | "parameters": [ 150 | null 151 | ] 152 | }, 153 | "children": [], 154 | "id": 329, 155 | "name": "ParameterList", 156 | "src": "199:2:5" 157 | }, 158 | { 159 | "children": [ 160 | { 161 | "attributes": { 162 | "constant": false, 163 | "name": "", 164 | "scope": 333, 165 | "stateVariable": false, 166 | "storageLocation": "default", 167 | "type": "uint256", 168 | "value": null, 169 | "visibility": "internal" 170 | }, 171 | "children": [ 172 | { 173 | "attributes": { 174 | "name": "uint256", 175 | "type": "uint256" 176 | }, 177 | "id": 330, 178 | "name": "ElementaryTypeName", 179 | "src": "223:7:5" 180 | } 181 | ], 182 | "id": 331, 183 | "name": "VariableDeclaration", 184 | "src": "223:7:5" 185 | } 186 | ], 187 | "id": 332, 188 | "name": "ParameterList", 189 | "src": "222:9:5" 190 | } 191 | ], 192 | "id": 333, 193 | "name": "FunctionDefinition", 194 | "src": "179:53:5" 195 | }, 196 | { 197 | "attributes": { 198 | "body": null, 199 | "constant": true, 200 | "implemented": false, 201 | "isConstructor": false, 202 | "modifiers": [ 203 | null 204 | ], 205 | "name": "balanceOf", 206 | "payable": false, 207 | "scope": 358, 208 | "stateMutability": "view", 209 | "superFunction": null, 210 | "visibility": "public" 211 | }, 212 | "children": [ 213 | { 214 | "children": [ 215 | { 216 | "attributes": { 217 | "constant": false, 218 | "name": "who", 219 | "scope": 340, 220 | "stateVariable": false, 221 | "storageLocation": "default", 222 | "type": "address", 223 | "value": null, 224 | "visibility": "internal" 225 | }, 226 | "children": [ 227 | { 228 | "attributes": { 229 | "name": "address", 230 | "type": "address" 231 | }, 232 | "id": 334, 233 | "name": "ElementaryTypeName", 234 | "src": "254:7:5" 235 | } 236 | ], 237 | "id": 335, 238 | "name": "VariableDeclaration", 239 | "src": "254:11:5" 240 | } 241 | ], 242 | "id": 336, 243 | "name": "ParameterList", 244 | "src": "253:13:5" 245 | }, 246 | { 247 | "children": [ 248 | { 249 | "attributes": { 250 | "constant": false, 251 | "name": "", 252 | "scope": 340, 253 | "stateVariable": false, 254 | "storageLocation": "default", 255 | "type": "uint256", 256 | "value": null, 257 | "visibility": "internal" 258 | }, 259 | "children": [ 260 | { 261 | "attributes": { 262 | "name": "uint256", 263 | "type": "uint256" 264 | }, 265 | "id": 337, 266 | "name": "ElementaryTypeName", 267 | "src": "288:7:5" 268 | } 269 | ], 270 | "id": 338, 271 | "name": "VariableDeclaration", 272 | "src": "288:7:5" 273 | } 274 | ], 275 | "id": 339, 276 | "name": "ParameterList", 277 | "src": "287:9:5" 278 | } 279 | ], 280 | "id": 340, 281 | "name": "FunctionDefinition", 282 | "src": "235:62:5" 283 | }, 284 | { 285 | "attributes": { 286 | "body": null, 287 | "constant": false, 288 | "implemented": false, 289 | "isConstructor": false, 290 | "modifiers": [ 291 | null 292 | ], 293 | "name": "transfer", 294 | "payable": false, 295 | "scope": 358, 296 | "stateMutability": "nonpayable", 297 | "superFunction": null, 298 | "visibility": "public" 299 | }, 300 | "children": [ 301 | { 302 | "children": [ 303 | { 304 | "attributes": { 305 | "constant": false, 306 | "name": "to", 307 | "scope": 349, 308 | "stateVariable": false, 309 | "storageLocation": "default", 310 | "type": "address", 311 | "value": null, 312 | "visibility": "internal" 313 | }, 314 | "children": [ 315 | { 316 | "attributes": { 317 | "name": "address", 318 | "type": "address" 319 | }, 320 | "id": 341, 321 | "name": "ElementaryTypeName", 322 | "src": "318:7:5" 323 | } 324 | ], 325 | "id": 342, 326 | "name": "VariableDeclaration", 327 | "src": "318:10:5" 328 | }, 329 | { 330 | "attributes": { 331 | "constant": false, 332 | "name": "value", 333 | "scope": 349, 334 | "stateVariable": false, 335 | "storageLocation": "default", 336 | "type": "uint256", 337 | "value": null, 338 | "visibility": "internal" 339 | }, 340 | "children": [ 341 | { 342 | "attributes": { 343 | "name": "uint256", 344 | "type": "uint256" 345 | }, 346 | "id": 343, 347 | "name": "ElementaryTypeName", 348 | "src": "330:7:5" 349 | } 350 | ], 351 | "id": 344, 352 | "name": "VariableDeclaration", 353 | "src": "330:13:5" 354 | } 355 | ], 356 | "id": 345, 357 | "name": "ParameterList", 358 | "src": "317:27:5" 359 | }, 360 | { 361 | "children": [ 362 | { 363 | "attributes": { 364 | "constant": false, 365 | "name": "", 366 | "scope": 349, 367 | "stateVariable": false, 368 | "storageLocation": "default", 369 | "type": "bool", 370 | "value": null, 371 | "visibility": "internal" 372 | }, 373 | "children": [ 374 | { 375 | "attributes": { 376 | "name": "bool", 377 | "type": "bool" 378 | }, 379 | "id": 346, 380 | "name": "ElementaryTypeName", 381 | "src": "361:4:5" 382 | } 383 | ], 384 | "id": 347, 385 | "name": "VariableDeclaration", 386 | "src": "361:4:5" 387 | } 388 | ], 389 | "id": 348, 390 | "name": "ParameterList", 391 | "src": "360:6:5" 392 | } 393 | ], 394 | "id": 349, 395 | "name": "FunctionDefinition", 396 | "src": "300:67:5" 397 | }, 398 | { 399 | "attributes": { 400 | "anonymous": false, 401 | "name": "Transfer" 402 | }, 403 | "children": [ 404 | { 405 | "children": [ 406 | { 407 | "attributes": { 408 | "constant": false, 409 | "indexed": true, 410 | "name": "from", 411 | "scope": 357, 412 | "stateVariable": false, 413 | "storageLocation": "default", 414 | "type": "address", 415 | "value": null, 416 | "visibility": "internal" 417 | }, 418 | "children": [ 419 | { 420 | "attributes": { 421 | "name": "address", 422 | "type": "address" 423 | }, 424 | "id": 350, 425 | "name": "ElementaryTypeName", 426 | "src": "385:7:5" 427 | } 428 | ], 429 | "id": 351, 430 | "name": "VariableDeclaration", 431 | "src": "385:20:5" 432 | }, 433 | { 434 | "attributes": { 435 | "constant": false, 436 | "indexed": true, 437 | "name": "to", 438 | "scope": 357, 439 | "stateVariable": false, 440 | "storageLocation": "default", 441 | "type": "address", 442 | "value": null, 443 | "visibility": "internal" 444 | }, 445 | "children": [ 446 | { 447 | "attributes": { 448 | "name": "address", 449 | "type": "address" 450 | }, 451 | "id": 352, 452 | "name": "ElementaryTypeName", 453 | "src": "407:7:5" 454 | } 455 | ], 456 | "id": 353, 457 | "name": "VariableDeclaration", 458 | "src": "407:18:5" 459 | }, 460 | { 461 | "attributes": { 462 | "constant": false, 463 | "indexed": false, 464 | "name": "value", 465 | "scope": 357, 466 | "stateVariable": false, 467 | "storageLocation": "default", 468 | "type": "uint256", 469 | "value": null, 470 | "visibility": "internal" 471 | }, 472 | "children": [ 473 | { 474 | "attributes": { 475 | "name": "uint256", 476 | "type": "uint256" 477 | }, 478 | "id": 354, 479 | "name": "ElementaryTypeName", 480 | "src": "427:7:5" 481 | } 482 | ], 483 | "id": 355, 484 | "name": "VariableDeclaration", 485 | "src": "427:13:5" 486 | } 487 | ], 488 | "id": 356, 489 | "name": "ParameterList", 490 | "src": "384:57:5" 491 | } 492 | ], 493 | "id": 357, 494 | "name": "EventDefinition", 495 | "src": "370:72:5" 496 | } 497 | ], 498 | "id": 358, 499 | "name": "ContractDefinition", 500 | "src": "155:289:5" 501 | } 502 | ], 503 | "id": 359, 504 | "name": "SourceUnit", 505 | "src": "0:445:5" 506 | }, 507 | "compiler": { 508 | "name": "solc", 509 | "version": "0.4.18+commit.9cf6e910.Emscripten.clang" 510 | }, 511 | "networks": {}, 512 | "schemaVersion": "1.0.1", 513 | "updatedAt": "2018-02-25T14:07:01.552Z" 514 | } -------------------------------------------------------------------------------- /build/contracts/Migrations.json: -------------------------------------------------------------------------------- 1 | { 2 | "contractName": "Migrations", 3 | "abi": [ 4 | { 5 | "constant": false, 6 | "inputs": [ 7 | { 8 | "name": "new_address", 9 | "type": "address" 10 | } 11 | ], 12 | "name": "upgrade", 13 | "outputs": [], 14 | "payable": false, 15 | "stateMutability": "nonpayable", 16 | "type": "function" 17 | }, 18 | { 19 | "constant": true, 20 | "inputs": [], 21 | "name": "last_completed_migration", 22 | "outputs": [ 23 | { 24 | "name": "", 25 | "type": "uint256" 26 | } 27 | ], 28 | "payable": false, 29 | "stateMutability": "view", 30 | "type": "function" 31 | }, 32 | { 33 | "constant": true, 34 | "inputs": [], 35 | "name": "owner", 36 | "outputs": [ 37 | { 38 | "name": "", 39 | "type": "address" 40 | } 41 | ], 42 | "payable": false, 43 | "stateMutability": "view", 44 | "type": "function" 45 | }, 46 | { 47 | "constant": false, 48 | "inputs": [ 49 | { 50 | "name": "completed", 51 | "type": "uint256" 52 | } 53 | ], 54 | "name": "setCompleted", 55 | "outputs": [], 56 | "payable": false, 57 | "stateMutability": "nonpayable", 58 | "type": "function" 59 | }, 60 | { 61 | "inputs": [], 62 | "payable": false, 63 | "stateMutability": "nonpayable", 64 | "type": "constructor" 65 | } 66 | ], 67 | "bytecode": "0x6060604052341561000f57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102db8061005e6000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100a05780638da5cb5b146100c9578063fdacd5761461011e575b600080fd5b341561007257600080fd5b61009e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610141565b005b34156100ab57600080fd5b6100b3610224565b6040518082815260200191505060405180910390f35b34156100d457600080fd5b6100dc61022a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561012957600080fd5b61013f600480803590602001909190505061024f565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610220578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561020b57600080fd5b6102c65a03f1151561021c57600080fd5b5050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102ac57806001819055505b505600a165627a7a72305820e3cd5b2195a5868845b151d54f80c132f54fd988b5cbcdcdd1ae3f6cc86ca9270029", 68 | "deployedBytecode": "0x606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100a05780638da5cb5b146100c9578063fdacd5761461011e575b600080fd5b341561007257600080fd5b61009e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610141565b005b34156100ab57600080fd5b6100b3610224565b6040518082815260200191505060405180910390f35b34156100d457600080fd5b6100dc61022a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561012957600080fd5b61013f600480803590602001909190505061024f565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610220578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561020b57600080fd5b6102c65a03f1151561021c57600080fd5b5050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102ac57806001819055505b505600a165627a7a72305820e3cd5b2195a5868845b151d54f80c132f54fd988b5cbcdcdd1ae3f6cc86ca9270029", 69 | "sourceMap": "26:488:0:-;;;178:58;;;;;;;;221:10;213:5;;:18;;;;;;;;;;;;;;;;;;26:488;;;;;;", 70 | "deployedSourceMap": "26:488:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;74:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;240:103;;;;;;;;;;;;;;;;;;;;;;;;;;347:165;409:19;161:5;;;;;;;;;;;147:19;;:10;:19;;;143:26;;;442:11;409:45;;460:8;:21;;;482:24;;460:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;143:26;347:165;;:::o;74:36::-;;;;:::o;50:20::-;;;;;;;;;;;;;:::o;240:103::-;161:5;;;;;;;;;;;147:19;;:10;:19;;;143:26;;;329:9;302:24;:36;;;;143:26;240:103;:::o", 71 | "source": "pragma solidity ^0.4.17;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function Migrations() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", 72 | "sourcePath": "/Users/satansdeersatansdeer/Workspace/ethereum-token-tutorial/contracts/Migrations.sol", 73 | "ast": { 74 | "attributes": { 75 | "absolutePath": "/Users/satansdeersatansdeer/Workspace/ethereum-token-tutorial/contracts/Migrations.sol", 76 | "exportedSymbols": { 77 | "Migrations": [ 78 | 56 79 | ] 80 | } 81 | }, 82 | "children": [ 83 | { 84 | "attributes": { 85 | "literals": [ 86 | "solidity", 87 | "^", 88 | "0.4", 89 | ".17" 90 | ] 91 | }, 92 | "id": 1, 93 | "name": "PragmaDirective", 94 | "src": "0:24:0" 95 | }, 96 | { 97 | "attributes": { 98 | "baseContracts": [ 99 | null 100 | ], 101 | "contractDependencies": [ 102 | null 103 | ], 104 | "contractKind": "contract", 105 | "documentation": null, 106 | "fullyImplemented": true, 107 | "linearizedBaseContracts": [ 108 | 56 109 | ], 110 | "name": "Migrations", 111 | "scope": 57 112 | }, 113 | "children": [ 114 | { 115 | "attributes": { 116 | "constant": false, 117 | "name": "owner", 118 | "scope": 56, 119 | "stateVariable": true, 120 | "storageLocation": "default", 121 | "type": "address", 122 | "value": null, 123 | "visibility": "public" 124 | }, 125 | "children": [ 126 | { 127 | "attributes": { 128 | "name": "address", 129 | "type": "address" 130 | }, 131 | "id": 2, 132 | "name": "ElementaryTypeName", 133 | "src": "50:7:0" 134 | } 135 | ], 136 | "id": 3, 137 | "name": "VariableDeclaration", 138 | "src": "50:20:0" 139 | }, 140 | { 141 | "attributes": { 142 | "constant": false, 143 | "name": "last_completed_migration", 144 | "scope": 56, 145 | "stateVariable": true, 146 | "storageLocation": "default", 147 | "type": "uint256", 148 | "value": null, 149 | "visibility": "public" 150 | }, 151 | "children": [ 152 | { 153 | "attributes": { 154 | "name": "uint", 155 | "type": "uint256" 156 | }, 157 | "id": 4, 158 | "name": "ElementaryTypeName", 159 | "src": "74:4:0" 160 | } 161 | ], 162 | "id": 5, 163 | "name": "VariableDeclaration", 164 | "src": "74:36:0" 165 | }, 166 | { 167 | "attributes": { 168 | "name": "restricted", 169 | "visibility": "internal" 170 | }, 171 | "children": [ 172 | { 173 | "attributes": { 174 | "parameters": [ 175 | null 176 | ] 177 | }, 178 | "children": [], 179 | "id": 6, 180 | "name": "ParameterList", 181 | "src": "134:2:0" 182 | }, 183 | { 184 | "children": [ 185 | { 186 | "attributes": { 187 | "falseBody": null 188 | }, 189 | "children": [ 190 | { 191 | "attributes": { 192 | "argumentTypes": null, 193 | "commonType": { 194 | "typeIdentifier": "t_address", 195 | "typeString": "address" 196 | }, 197 | "isConstant": false, 198 | "isLValue": false, 199 | "isPure": false, 200 | "lValueRequested": false, 201 | "operator": "==", 202 | "type": "bool" 203 | }, 204 | "children": [ 205 | { 206 | "attributes": { 207 | "argumentTypes": null, 208 | "isConstant": false, 209 | "isLValue": false, 210 | "isPure": false, 211 | "lValueRequested": false, 212 | "member_name": "sender", 213 | "referencedDeclaration": null, 214 | "type": "address" 215 | }, 216 | "children": [ 217 | { 218 | "attributes": { 219 | "argumentTypes": null, 220 | "overloadedDeclarations": [ 221 | null 222 | ], 223 | "referencedDeclaration": 616, 224 | "type": "msg", 225 | "value": "msg" 226 | }, 227 | "id": 7, 228 | "name": "Identifier", 229 | "src": "147:3:0" 230 | } 231 | ], 232 | "id": 8, 233 | "name": "MemberAccess", 234 | "src": "147:10:0" 235 | }, 236 | { 237 | "attributes": { 238 | "argumentTypes": null, 239 | "overloadedDeclarations": [ 240 | null 241 | ], 242 | "referencedDeclaration": 3, 243 | "type": "address", 244 | "value": "owner" 245 | }, 246 | "id": 9, 247 | "name": "Identifier", 248 | "src": "161:5:0" 249 | } 250 | ], 251 | "id": 10, 252 | "name": "BinaryOperation", 253 | "src": "147:19:0" 254 | }, 255 | { 256 | "id": 11, 257 | "name": "PlaceholderStatement", 258 | "src": "168:1:0" 259 | } 260 | ], 261 | "id": 12, 262 | "name": "IfStatement", 263 | "src": "143:26:0" 264 | } 265 | ], 266 | "id": 13, 267 | "name": "Block", 268 | "src": "137:37:0" 269 | } 270 | ], 271 | "id": 14, 272 | "name": "ModifierDefinition", 273 | "src": "115:59:0" 274 | }, 275 | { 276 | "attributes": { 277 | "constant": false, 278 | "implemented": true, 279 | "isConstructor": true, 280 | "modifiers": [ 281 | null 282 | ], 283 | "name": "Migrations", 284 | "payable": false, 285 | "scope": 56, 286 | "stateMutability": "nonpayable", 287 | "superFunction": null, 288 | "visibility": "public" 289 | }, 290 | "children": [ 291 | { 292 | "attributes": { 293 | "parameters": [ 294 | null 295 | ] 296 | }, 297 | "children": [], 298 | "id": 15, 299 | "name": "ParameterList", 300 | "src": "197:2:0" 301 | }, 302 | { 303 | "attributes": { 304 | "parameters": [ 305 | null 306 | ] 307 | }, 308 | "children": [], 309 | "id": 16, 310 | "name": "ParameterList", 311 | "src": "207:0:0" 312 | }, 313 | { 314 | "children": [ 315 | { 316 | "children": [ 317 | { 318 | "attributes": { 319 | "argumentTypes": null, 320 | "isConstant": false, 321 | "isLValue": false, 322 | "isPure": false, 323 | "lValueRequested": false, 324 | "operator": "=", 325 | "type": "address" 326 | }, 327 | "children": [ 328 | { 329 | "attributes": { 330 | "argumentTypes": null, 331 | "overloadedDeclarations": [ 332 | null 333 | ], 334 | "referencedDeclaration": 3, 335 | "type": "address", 336 | "value": "owner" 337 | }, 338 | "id": 17, 339 | "name": "Identifier", 340 | "src": "213:5:0" 341 | }, 342 | { 343 | "attributes": { 344 | "argumentTypes": null, 345 | "isConstant": false, 346 | "isLValue": false, 347 | "isPure": false, 348 | "lValueRequested": false, 349 | "member_name": "sender", 350 | "referencedDeclaration": null, 351 | "type": "address" 352 | }, 353 | "children": [ 354 | { 355 | "attributes": { 356 | "argumentTypes": null, 357 | "overloadedDeclarations": [ 358 | null 359 | ], 360 | "referencedDeclaration": 616, 361 | "type": "msg", 362 | "value": "msg" 363 | }, 364 | "id": 18, 365 | "name": "Identifier", 366 | "src": "221:3:0" 367 | } 368 | ], 369 | "id": 19, 370 | "name": "MemberAccess", 371 | "src": "221:10:0" 372 | } 373 | ], 374 | "id": 20, 375 | "name": "Assignment", 376 | "src": "213:18:0" 377 | } 378 | ], 379 | "id": 21, 380 | "name": "ExpressionStatement", 381 | "src": "213:18:0" 382 | } 383 | ], 384 | "id": 22, 385 | "name": "Block", 386 | "src": "207:29:0" 387 | } 388 | ], 389 | "id": 23, 390 | "name": "FunctionDefinition", 391 | "src": "178:58:0" 392 | }, 393 | { 394 | "attributes": { 395 | "constant": false, 396 | "implemented": true, 397 | "isConstructor": false, 398 | "name": "setCompleted", 399 | "payable": false, 400 | "scope": 56, 401 | "stateMutability": "nonpayable", 402 | "superFunction": null, 403 | "visibility": "public" 404 | }, 405 | "children": [ 406 | { 407 | "children": [ 408 | { 409 | "attributes": { 410 | "constant": false, 411 | "name": "completed", 412 | "scope": 35, 413 | "stateVariable": false, 414 | "storageLocation": "default", 415 | "type": "uint256", 416 | "value": null, 417 | "visibility": "internal" 418 | }, 419 | "children": [ 420 | { 421 | "attributes": { 422 | "name": "uint", 423 | "type": "uint256" 424 | }, 425 | "id": 24, 426 | "name": "ElementaryTypeName", 427 | "src": "262:4:0" 428 | } 429 | ], 430 | "id": 25, 431 | "name": "VariableDeclaration", 432 | "src": "262:14:0" 433 | } 434 | ], 435 | "id": 26, 436 | "name": "ParameterList", 437 | "src": "261:16:0" 438 | }, 439 | { 440 | "attributes": { 441 | "parameters": [ 442 | null 443 | ] 444 | }, 445 | "children": [], 446 | "id": 29, 447 | "name": "ParameterList", 448 | "src": "296:0:0" 449 | }, 450 | { 451 | "attributes": { 452 | "arguments": [ 453 | null 454 | ] 455 | }, 456 | "children": [ 457 | { 458 | "attributes": { 459 | "argumentTypes": null, 460 | "overloadedDeclarations": [ 461 | null 462 | ], 463 | "referencedDeclaration": 14, 464 | "type": "modifier ()", 465 | "value": "restricted" 466 | }, 467 | "id": 27, 468 | "name": "Identifier", 469 | "src": "285:10:0" 470 | } 471 | ], 472 | "id": 28, 473 | "name": "ModifierInvocation", 474 | "src": "285:10:0" 475 | }, 476 | { 477 | "children": [ 478 | { 479 | "children": [ 480 | { 481 | "attributes": { 482 | "argumentTypes": null, 483 | "isConstant": false, 484 | "isLValue": false, 485 | "isPure": false, 486 | "lValueRequested": false, 487 | "operator": "=", 488 | "type": "uint256" 489 | }, 490 | "children": [ 491 | { 492 | "attributes": { 493 | "argumentTypes": null, 494 | "overloadedDeclarations": [ 495 | null 496 | ], 497 | "referencedDeclaration": 5, 498 | "type": "uint256", 499 | "value": "last_completed_migration" 500 | }, 501 | "id": 30, 502 | "name": "Identifier", 503 | "src": "302:24:0" 504 | }, 505 | { 506 | "attributes": { 507 | "argumentTypes": null, 508 | "overloadedDeclarations": [ 509 | null 510 | ], 511 | "referencedDeclaration": 25, 512 | "type": "uint256", 513 | "value": "completed" 514 | }, 515 | "id": 31, 516 | "name": "Identifier", 517 | "src": "329:9:0" 518 | } 519 | ], 520 | "id": 32, 521 | "name": "Assignment", 522 | "src": "302:36:0" 523 | } 524 | ], 525 | "id": 33, 526 | "name": "ExpressionStatement", 527 | "src": "302:36:0" 528 | } 529 | ], 530 | "id": 34, 531 | "name": "Block", 532 | "src": "296:47:0" 533 | } 534 | ], 535 | "id": 35, 536 | "name": "FunctionDefinition", 537 | "src": "240:103:0" 538 | }, 539 | { 540 | "attributes": { 541 | "constant": false, 542 | "implemented": true, 543 | "isConstructor": false, 544 | "name": "upgrade", 545 | "payable": false, 546 | "scope": 56, 547 | "stateMutability": "nonpayable", 548 | "superFunction": null, 549 | "visibility": "public" 550 | }, 551 | "children": [ 552 | { 553 | "children": [ 554 | { 555 | "attributes": { 556 | "constant": false, 557 | "name": "new_address", 558 | "scope": 55, 559 | "stateVariable": false, 560 | "storageLocation": "default", 561 | "type": "address", 562 | "value": null, 563 | "visibility": "internal" 564 | }, 565 | "children": [ 566 | { 567 | "attributes": { 568 | "name": "address", 569 | "type": "address" 570 | }, 571 | "id": 36, 572 | "name": "ElementaryTypeName", 573 | "src": "364:7:0" 574 | } 575 | ], 576 | "id": 37, 577 | "name": "VariableDeclaration", 578 | "src": "364:19:0" 579 | } 580 | ], 581 | "id": 38, 582 | "name": "ParameterList", 583 | "src": "363:21:0" 584 | }, 585 | { 586 | "attributes": { 587 | "parameters": [ 588 | null 589 | ] 590 | }, 591 | "children": [], 592 | "id": 41, 593 | "name": "ParameterList", 594 | "src": "403:0:0" 595 | }, 596 | { 597 | "attributes": { 598 | "arguments": [ 599 | null 600 | ] 601 | }, 602 | "children": [ 603 | { 604 | "attributes": { 605 | "argumentTypes": null, 606 | "overloadedDeclarations": [ 607 | null 608 | ], 609 | "referencedDeclaration": 14, 610 | "type": "modifier ()", 611 | "value": "restricted" 612 | }, 613 | "id": 39, 614 | "name": "Identifier", 615 | "src": "392:10:0" 616 | } 617 | ], 618 | "id": 40, 619 | "name": "ModifierInvocation", 620 | "src": "392:10:0" 621 | }, 622 | { 623 | "children": [ 624 | { 625 | "attributes": { 626 | "assignments": [ 627 | 43 628 | ] 629 | }, 630 | "children": [ 631 | { 632 | "attributes": { 633 | "constant": false, 634 | "name": "upgraded", 635 | "scope": 55, 636 | "stateVariable": false, 637 | "storageLocation": "default", 638 | "type": "contract Migrations", 639 | "value": null, 640 | "visibility": "internal" 641 | }, 642 | "children": [ 643 | { 644 | "attributes": { 645 | "contractScope": null, 646 | "name": "Migrations", 647 | "referencedDeclaration": 56, 648 | "type": "contract Migrations" 649 | }, 650 | "id": 42, 651 | "name": "UserDefinedTypeName", 652 | "src": "409:10:0" 653 | } 654 | ], 655 | "id": 43, 656 | "name": "VariableDeclaration", 657 | "src": "409:19:0" 658 | }, 659 | { 660 | "attributes": { 661 | "argumentTypes": null, 662 | "isConstant": false, 663 | "isLValue": false, 664 | "isPure": false, 665 | "isStructConstructorCall": false, 666 | "lValueRequested": false, 667 | "names": [ 668 | null 669 | ], 670 | "type": "contract Migrations", 671 | "type_conversion": true 672 | }, 673 | "children": [ 674 | { 675 | "attributes": { 676 | "argumentTypes": [ 677 | { 678 | "typeIdentifier": "t_address", 679 | "typeString": "address" 680 | } 681 | ], 682 | "overloadedDeclarations": [ 683 | null 684 | ], 685 | "referencedDeclaration": 56, 686 | "type": "type(contract Migrations)", 687 | "value": "Migrations" 688 | }, 689 | "id": 44, 690 | "name": "Identifier", 691 | "src": "431:10:0" 692 | }, 693 | { 694 | "attributes": { 695 | "argumentTypes": null, 696 | "overloadedDeclarations": [ 697 | null 698 | ], 699 | "referencedDeclaration": 37, 700 | "type": "address", 701 | "value": "new_address" 702 | }, 703 | "id": 45, 704 | "name": "Identifier", 705 | "src": "442:11:0" 706 | } 707 | ], 708 | "id": 46, 709 | "name": "FunctionCall", 710 | "src": "431:23:0" 711 | } 712 | ], 713 | "id": 47, 714 | "name": "VariableDeclarationStatement", 715 | "src": "409:45:0" 716 | }, 717 | { 718 | "children": [ 719 | { 720 | "attributes": { 721 | "argumentTypes": null, 722 | "isConstant": false, 723 | "isLValue": false, 724 | "isPure": false, 725 | "isStructConstructorCall": false, 726 | "lValueRequested": false, 727 | "names": [ 728 | null 729 | ], 730 | "type": "tuple()", 731 | "type_conversion": false 732 | }, 733 | "children": [ 734 | { 735 | "attributes": { 736 | "argumentTypes": [ 737 | { 738 | "typeIdentifier": "t_uint256", 739 | "typeString": "uint256" 740 | } 741 | ], 742 | "isConstant": false, 743 | "isLValue": false, 744 | "isPure": false, 745 | "lValueRequested": false, 746 | "member_name": "setCompleted", 747 | "referencedDeclaration": 35, 748 | "type": "function (uint256) external" 749 | }, 750 | "children": [ 751 | { 752 | "attributes": { 753 | "argumentTypes": null, 754 | "overloadedDeclarations": [ 755 | null 756 | ], 757 | "referencedDeclaration": 43, 758 | "type": "contract Migrations", 759 | "value": "upgraded" 760 | }, 761 | "id": 48, 762 | "name": "Identifier", 763 | "src": "460:8:0" 764 | } 765 | ], 766 | "id": 50, 767 | "name": "MemberAccess", 768 | "src": "460:21:0" 769 | }, 770 | { 771 | "attributes": { 772 | "argumentTypes": null, 773 | "overloadedDeclarations": [ 774 | null 775 | ], 776 | "referencedDeclaration": 5, 777 | "type": "uint256", 778 | "value": "last_completed_migration" 779 | }, 780 | "id": 51, 781 | "name": "Identifier", 782 | "src": "482:24:0" 783 | } 784 | ], 785 | "id": 52, 786 | "name": "FunctionCall", 787 | "src": "460:47:0" 788 | } 789 | ], 790 | "id": 53, 791 | "name": "ExpressionStatement", 792 | "src": "460:47:0" 793 | } 794 | ], 795 | "id": 54, 796 | "name": "Block", 797 | "src": "403:109:0" 798 | } 799 | ], 800 | "id": 55, 801 | "name": "FunctionDefinition", 802 | "src": "347:165:0" 803 | } 804 | ], 805 | "id": 56, 806 | "name": "ContractDefinition", 807 | "src": "26:488:0" 808 | } 809 | ], 810 | "id": 57, 811 | "name": "SourceUnit", 812 | "src": "0:515:0" 813 | }, 814 | "compiler": { 815 | "name": "solc", 816 | "version": "0.4.18+commit.9cf6e910.Emscripten.clang" 817 | }, 818 | "networks": { 819 | "5777": { 820 | "events": {}, 821 | "links": {}, 822 | "address": "0x8cdaf0cd259887258bc13a92c0a6da92698644c0" 823 | }, 824 | "1519586516424": { 825 | "events": {}, 826 | "links": {}, 827 | "address": "0x74c132f163795866e7559cee5480f8b59c709758" 828 | }, 829 | "1519669908684": { 830 | "events": {}, 831 | "links": {}, 832 | "address": "0x4bf32953e1fc0bd20285874d5fe04f24c5c918b4" 833 | } 834 | }, 835 | "schemaVersion": "1.0.1", 836 | "updatedAt": "2018-02-26T18:34:22.069Z" 837 | } -------------------------------------------------------------------------------- /build/contracts/SafeMath.json: -------------------------------------------------------------------------------- 1 | { 2 | "contractName": "SafeMath", 3 | "abi": [], 4 | "bytecode": "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582085b98ec293e9438e310bbebacc08b922030089634f6ded62a1c4066506c8945a0029", 5 | "deployedBytecode": "0x6060604052600080fd00a165627a7a7230582085b98ec293e9438e310bbebacc08b922030089634f6ded62a1c4066506c8945a0029", 6 | "sourceMap": "117:1022:2:-;;;;;;;;;;;;;;;;;", 7 | "deployedSourceMap": "117:1022:2:-;;;;;", 8 | "source": "pragma solidity ^0.4.18;\n\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that throw on error\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, throws on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n uint256 c = a * b;\n assert(c / a == b);\n return c;\n }\n\n /**\n * @dev Integer division of two numbers, truncating the quotient.\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\n /**\n * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n /**\n * @dev Adds two numbers, throws on overflow.\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", 9 | "sourcePath": "zeppelin-solidity/contracts/math/SafeMath.sol", 10 | "ast": { 11 | "attributes": { 12 | "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", 13 | "exportedSymbols": { 14 | "SafeMath": [ 15 | 187 16 | ] 17 | } 18 | }, 19 | "children": [ 20 | { 21 | "attributes": { 22 | "literals": [ 23 | "solidity", 24 | "^", 25 | "0.4", 26 | ".18" 27 | ] 28 | }, 29 | "id": 91, 30 | "name": "PragmaDirective", 31 | "src": "0:24:2" 32 | }, 33 | { 34 | "attributes": { 35 | "baseContracts": [ 36 | null 37 | ], 38 | "contractDependencies": [ 39 | null 40 | ], 41 | "contractKind": "library", 42 | "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", 43 | "fullyImplemented": true, 44 | "linearizedBaseContracts": [ 45 | 187 46 | ], 47 | "name": "SafeMath", 48 | "scope": 188 49 | }, 50 | "children": [ 51 | { 52 | "attributes": { 53 | "constant": true, 54 | "implemented": true, 55 | "isConstructor": false, 56 | "modifiers": [ 57 | null 58 | ], 59 | "name": "mul", 60 | "payable": false, 61 | "scope": 187, 62 | "stateMutability": "pure", 63 | "superFunction": null, 64 | "visibility": "internal" 65 | }, 66 | "children": [ 67 | { 68 | "children": [ 69 | { 70 | "attributes": { 71 | "constant": false, 72 | "name": "a", 73 | "scope": 124, 74 | "stateVariable": false, 75 | "storageLocation": "default", 76 | "type": "uint256", 77 | "value": null, 78 | "visibility": "internal" 79 | }, 80 | "children": [ 81 | { 82 | "attributes": { 83 | "name": "uint256", 84 | "type": "uint256" 85 | }, 86 | "id": 92, 87 | "name": "ElementaryTypeName", 88 | "src": "216:7:2" 89 | } 90 | ], 91 | "id": 93, 92 | "name": "VariableDeclaration", 93 | "src": "216:9:2" 94 | }, 95 | { 96 | "attributes": { 97 | "constant": false, 98 | "name": "b", 99 | "scope": 124, 100 | "stateVariable": false, 101 | "storageLocation": "default", 102 | "type": "uint256", 103 | "value": null, 104 | "visibility": "internal" 105 | }, 106 | "children": [ 107 | { 108 | "attributes": { 109 | "name": "uint256", 110 | "type": "uint256" 111 | }, 112 | "id": 94, 113 | "name": "ElementaryTypeName", 114 | "src": "227:7:2" 115 | } 116 | ], 117 | "id": 95, 118 | "name": "VariableDeclaration", 119 | "src": "227:9:2" 120 | } 121 | ], 122 | "id": 96, 123 | "name": "ParameterList", 124 | "src": "215:22:2" 125 | }, 126 | { 127 | "children": [ 128 | { 129 | "attributes": { 130 | "constant": false, 131 | "name": "", 132 | "scope": 124, 133 | "stateVariable": false, 134 | "storageLocation": "default", 135 | "type": "uint256", 136 | "value": null, 137 | "visibility": "internal" 138 | }, 139 | "children": [ 140 | { 141 | "attributes": { 142 | "name": "uint256", 143 | "type": "uint256" 144 | }, 145 | "id": 97, 146 | "name": "ElementaryTypeName", 147 | "src": "261:7:2" 148 | } 149 | ], 150 | "id": 98, 151 | "name": "VariableDeclaration", 152 | "src": "261:7:2" 153 | } 154 | ], 155 | "id": 99, 156 | "name": "ParameterList", 157 | "src": "260:9:2" 158 | }, 159 | { 160 | "children": [ 161 | { 162 | "attributes": { 163 | "falseBody": null 164 | }, 165 | "children": [ 166 | { 167 | "attributes": { 168 | "argumentTypes": null, 169 | "commonType": { 170 | "typeIdentifier": "t_uint256", 171 | "typeString": "uint256" 172 | }, 173 | "isConstant": false, 174 | "isLValue": false, 175 | "isPure": false, 176 | "lValueRequested": false, 177 | "operator": "==", 178 | "type": "bool" 179 | }, 180 | "children": [ 181 | { 182 | "attributes": { 183 | "argumentTypes": null, 184 | "overloadedDeclarations": [ 185 | null 186 | ], 187 | "referencedDeclaration": 93, 188 | "type": "uint256", 189 | "value": "a" 190 | }, 191 | "id": 100, 192 | "name": "Identifier", 193 | "src": "280:1:2" 194 | }, 195 | { 196 | "attributes": { 197 | "argumentTypes": null, 198 | "hexvalue": "30", 199 | "isConstant": false, 200 | "isLValue": false, 201 | "isPure": true, 202 | "lValueRequested": false, 203 | "subdenomination": null, 204 | "token": "number", 205 | "type": "int_const 0", 206 | "value": "0" 207 | }, 208 | "id": 101, 209 | "name": "Literal", 210 | "src": "285:1:2" 211 | } 212 | ], 213 | "id": 102, 214 | "name": "BinaryOperation", 215 | "src": "280:6:2" 216 | }, 217 | { 218 | "children": [ 219 | { 220 | "attributes": { 221 | "functionReturnParameters": 99 222 | }, 223 | "children": [ 224 | { 225 | "attributes": { 226 | "argumentTypes": null, 227 | "hexvalue": "30", 228 | "isConstant": false, 229 | "isLValue": false, 230 | "isPure": true, 231 | "lValueRequested": false, 232 | "subdenomination": null, 233 | "token": "number", 234 | "type": "int_const 0", 235 | "value": "0" 236 | }, 237 | "id": 103, 238 | "name": "Literal", 239 | "src": "303:1:2" 240 | } 241 | ], 242 | "id": 104, 243 | "name": "Return", 244 | "src": "296:8:2" 245 | } 246 | ], 247 | "id": 105, 248 | "name": "Block", 249 | "src": "288:23:2" 250 | } 251 | ], 252 | "id": 106, 253 | "name": "IfStatement", 254 | "src": "276:35:2" 255 | }, 256 | { 257 | "attributes": { 258 | "assignments": [ 259 | 108 260 | ] 261 | }, 262 | "children": [ 263 | { 264 | "attributes": { 265 | "constant": false, 266 | "name": "c", 267 | "scope": 124, 268 | "stateVariable": false, 269 | "storageLocation": "default", 270 | "type": "uint256", 271 | "value": null, 272 | "visibility": "internal" 273 | }, 274 | "children": [ 275 | { 276 | "attributes": { 277 | "name": "uint256", 278 | "type": "uint256" 279 | }, 280 | "id": 107, 281 | "name": "ElementaryTypeName", 282 | "src": "316:7:2" 283 | } 284 | ], 285 | "id": 108, 286 | "name": "VariableDeclaration", 287 | "src": "316:9:2" 288 | }, 289 | { 290 | "attributes": { 291 | "argumentTypes": null, 292 | "commonType": { 293 | "typeIdentifier": "t_uint256", 294 | "typeString": "uint256" 295 | }, 296 | "isConstant": false, 297 | "isLValue": false, 298 | "isPure": false, 299 | "lValueRequested": false, 300 | "operator": "*", 301 | "type": "uint256" 302 | }, 303 | "children": [ 304 | { 305 | "attributes": { 306 | "argumentTypes": null, 307 | "overloadedDeclarations": [ 308 | null 309 | ], 310 | "referencedDeclaration": 93, 311 | "type": "uint256", 312 | "value": "a" 313 | }, 314 | "id": 109, 315 | "name": "Identifier", 316 | "src": "328:1:2" 317 | }, 318 | { 319 | "attributes": { 320 | "argumentTypes": null, 321 | "overloadedDeclarations": [ 322 | null 323 | ], 324 | "referencedDeclaration": 95, 325 | "type": "uint256", 326 | "value": "b" 327 | }, 328 | "id": 110, 329 | "name": "Identifier", 330 | "src": "332:1:2" 331 | } 332 | ], 333 | "id": 111, 334 | "name": "BinaryOperation", 335 | "src": "328:5:2" 336 | } 337 | ], 338 | "id": 112, 339 | "name": "VariableDeclarationStatement", 340 | "src": "316:17:2" 341 | }, 342 | { 343 | "children": [ 344 | { 345 | "attributes": { 346 | "argumentTypes": null, 347 | "isConstant": false, 348 | "isLValue": false, 349 | "isPure": false, 350 | "isStructConstructorCall": false, 351 | "lValueRequested": false, 352 | "names": [ 353 | null 354 | ], 355 | "type": "tuple()", 356 | "type_conversion": false 357 | }, 358 | "children": [ 359 | { 360 | "attributes": { 361 | "argumentTypes": [ 362 | { 363 | "typeIdentifier": "t_bool", 364 | "typeString": "bool" 365 | } 366 | ], 367 | "overloadedDeclarations": [ 368 | null 369 | ], 370 | "referencedDeclaration": 607, 371 | "type": "function (bool) pure", 372 | "value": "assert" 373 | }, 374 | "id": 113, 375 | "name": "Identifier", 376 | "src": "339:6:2" 377 | }, 378 | { 379 | "attributes": { 380 | "argumentTypes": null, 381 | "commonType": { 382 | "typeIdentifier": "t_uint256", 383 | "typeString": "uint256" 384 | }, 385 | "isConstant": false, 386 | "isLValue": false, 387 | "isPure": false, 388 | "lValueRequested": false, 389 | "operator": "==", 390 | "type": "bool" 391 | }, 392 | "children": [ 393 | { 394 | "attributes": { 395 | "argumentTypes": null, 396 | "commonType": { 397 | "typeIdentifier": "t_uint256", 398 | "typeString": "uint256" 399 | }, 400 | "isConstant": false, 401 | "isLValue": false, 402 | "isPure": false, 403 | "lValueRequested": false, 404 | "operator": "/", 405 | "type": "uint256" 406 | }, 407 | "children": [ 408 | { 409 | "attributes": { 410 | "argumentTypes": null, 411 | "overloadedDeclarations": [ 412 | null 413 | ], 414 | "referencedDeclaration": 108, 415 | "type": "uint256", 416 | "value": "c" 417 | }, 418 | "id": 114, 419 | "name": "Identifier", 420 | "src": "346:1:2" 421 | }, 422 | { 423 | "attributes": { 424 | "argumentTypes": null, 425 | "overloadedDeclarations": [ 426 | null 427 | ], 428 | "referencedDeclaration": 93, 429 | "type": "uint256", 430 | "value": "a" 431 | }, 432 | "id": 115, 433 | "name": "Identifier", 434 | "src": "350:1:2" 435 | } 436 | ], 437 | "id": 116, 438 | "name": "BinaryOperation", 439 | "src": "346:5:2" 440 | }, 441 | { 442 | "attributes": { 443 | "argumentTypes": null, 444 | "overloadedDeclarations": [ 445 | null 446 | ], 447 | "referencedDeclaration": 95, 448 | "type": "uint256", 449 | "value": "b" 450 | }, 451 | "id": 117, 452 | "name": "Identifier", 453 | "src": "355:1:2" 454 | } 455 | ], 456 | "id": 118, 457 | "name": "BinaryOperation", 458 | "src": "346:10:2" 459 | } 460 | ], 461 | "id": 119, 462 | "name": "FunctionCall", 463 | "src": "339:18:2" 464 | } 465 | ], 466 | "id": 120, 467 | "name": "ExpressionStatement", 468 | "src": "339:18:2" 469 | }, 470 | { 471 | "attributes": { 472 | "functionReturnParameters": 99 473 | }, 474 | "children": [ 475 | { 476 | "attributes": { 477 | "argumentTypes": null, 478 | "overloadedDeclarations": [ 479 | null 480 | ], 481 | "referencedDeclaration": 108, 482 | "type": "uint256", 483 | "value": "c" 484 | }, 485 | "id": 121, 486 | "name": "Identifier", 487 | "src": "370:1:2" 488 | } 489 | ], 490 | "id": 122, 491 | "name": "Return", 492 | "src": "363:8:2" 493 | } 494 | ], 495 | "id": 123, 496 | "name": "Block", 497 | "src": "270:106:2" 498 | } 499 | ], 500 | "id": 124, 501 | "name": "FunctionDefinition", 502 | "src": "203:173:2" 503 | }, 504 | { 505 | "attributes": { 506 | "constant": true, 507 | "implemented": true, 508 | "isConstructor": false, 509 | "modifiers": [ 510 | null 511 | ], 512 | "name": "div", 513 | "payable": false, 514 | "scope": 187, 515 | "stateMutability": "pure", 516 | "superFunction": null, 517 | "visibility": "internal" 518 | }, 519 | "children": [ 520 | { 521 | "children": [ 522 | { 523 | "attributes": { 524 | "constant": false, 525 | "name": "a", 526 | "scope": 142, 527 | "stateVariable": false, 528 | "storageLocation": "default", 529 | "type": "uint256", 530 | "value": null, 531 | "visibility": "internal" 532 | }, 533 | "children": [ 534 | { 535 | "attributes": { 536 | "name": "uint256", 537 | "type": "uint256" 538 | }, 539 | "id": 125, 540 | "name": "ElementaryTypeName", 541 | "src": "471:7:2" 542 | } 543 | ], 544 | "id": 126, 545 | "name": "VariableDeclaration", 546 | "src": "471:9:2" 547 | }, 548 | { 549 | "attributes": { 550 | "constant": false, 551 | "name": "b", 552 | "scope": 142, 553 | "stateVariable": false, 554 | "storageLocation": "default", 555 | "type": "uint256", 556 | "value": null, 557 | "visibility": "internal" 558 | }, 559 | "children": [ 560 | { 561 | "attributes": { 562 | "name": "uint256", 563 | "type": "uint256" 564 | }, 565 | "id": 127, 566 | "name": "ElementaryTypeName", 567 | "src": "482:7:2" 568 | } 569 | ], 570 | "id": 128, 571 | "name": "VariableDeclaration", 572 | "src": "482:9:2" 573 | } 574 | ], 575 | "id": 129, 576 | "name": "ParameterList", 577 | "src": "470:22:2" 578 | }, 579 | { 580 | "children": [ 581 | { 582 | "attributes": { 583 | "constant": false, 584 | "name": "", 585 | "scope": 142, 586 | "stateVariable": false, 587 | "storageLocation": "default", 588 | "type": "uint256", 589 | "value": null, 590 | "visibility": "internal" 591 | }, 592 | "children": [ 593 | { 594 | "attributes": { 595 | "name": "uint256", 596 | "type": "uint256" 597 | }, 598 | "id": 130, 599 | "name": "ElementaryTypeName", 600 | "src": "516:7:2" 601 | } 602 | ], 603 | "id": 131, 604 | "name": "VariableDeclaration", 605 | "src": "516:7:2" 606 | } 607 | ], 608 | "id": 132, 609 | "name": "ParameterList", 610 | "src": "515:9:2" 611 | }, 612 | { 613 | "children": [ 614 | { 615 | "attributes": { 616 | "assignments": [ 617 | 134 618 | ] 619 | }, 620 | "children": [ 621 | { 622 | "attributes": { 623 | "constant": false, 624 | "name": "c", 625 | "scope": 142, 626 | "stateVariable": false, 627 | "storageLocation": "default", 628 | "type": "uint256", 629 | "value": null, 630 | "visibility": "internal" 631 | }, 632 | "children": [ 633 | { 634 | "attributes": { 635 | "name": "uint256", 636 | "type": "uint256" 637 | }, 638 | "id": 133, 639 | "name": "ElementaryTypeName", 640 | "src": "605:7:2" 641 | } 642 | ], 643 | "id": 134, 644 | "name": "VariableDeclaration", 645 | "src": "605:9:2" 646 | }, 647 | { 648 | "attributes": { 649 | "argumentTypes": null, 650 | "commonType": { 651 | "typeIdentifier": "t_uint256", 652 | "typeString": "uint256" 653 | }, 654 | "isConstant": false, 655 | "isLValue": false, 656 | "isPure": false, 657 | "lValueRequested": false, 658 | "operator": "/", 659 | "type": "uint256" 660 | }, 661 | "children": [ 662 | { 663 | "attributes": { 664 | "argumentTypes": null, 665 | "overloadedDeclarations": [ 666 | null 667 | ], 668 | "referencedDeclaration": 126, 669 | "type": "uint256", 670 | "value": "a" 671 | }, 672 | "id": 135, 673 | "name": "Identifier", 674 | "src": "617:1:2" 675 | }, 676 | { 677 | "attributes": { 678 | "argumentTypes": null, 679 | "overloadedDeclarations": [ 680 | null 681 | ], 682 | "referencedDeclaration": 128, 683 | "type": "uint256", 684 | "value": "b" 685 | }, 686 | "id": 136, 687 | "name": "Identifier", 688 | "src": "621:1:2" 689 | } 690 | ], 691 | "id": 137, 692 | "name": "BinaryOperation", 693 | "src": "617:5:2" 694 | } 695 | ], 696 | "id": 138, 697 | "name": "VariableDeclarationStatement", 698 | "src": "605:17:2" 699 | }, 700 | { 701 | "attributes": { 702 | "functionReturnParameters": 132 703 | }, 704 | "children": [ 705 | { 706 | "attributes": { 707 | "argumentTypes": null, 708 | "overloadedDeclarations": [ 709 | null 710 | ], 711 | "referencedDeclaration": 134, 712 | "type": "uint256", 713 | "value": "c" 714 | }, 715 | "id": 139, 716 | "name": "Identifier", 717 | "src": "717:1:2" 718 | } 719 | ], 720 | "id": 140, 721 | "name": "Return", 722 | "src": "710:8:2" 723 | } 724 | ], 725 | "id": 141, 726 | "name": "Block", 727 | "src": "525:198:2" 728 | } 729 | ], 730 | "id": 142, 731 | "name": "FunctionDefinition", 732 | "src": "458:265:2" 733 | }, 734 | { 735 | "attributes": { 736 | "constant": true, 737 | "implemented": true, 738 | "isConstructor": false, 739 | "modifiers": [ 740 | null 741 | ], 742 | "name": "sub", 743 | "payable": false, 744 | "scope": 187, 745 | "stateMutability": "pure", 746 | "superFunction": null, 747 | "visibility": "internal" 748 | }, 749 | "children": [ 750 | { 751 | "children": [ 752 | { 753 | "attributes": { 754 | "constant": false, 755 | "name": "a", 756 | "scope": 162, 757 | "stateVariable": false, 758 | "storageLocation": "default", 759 | "type": "uint256", 760 | "value": null, 761 | "visibility": "internal" 762 | }, 763 | "children": [ 764 | { 765 | "attributes": { 766 | "name": "uint256", 767 | "type": "uint256" 768 | }, 769 | "id": 143, 770 | "name": "ElementaryTypeName", 771 | "src": "849:7:2" 772 | } 773 | ], 774 | "id": 144, 775 | "name": "VariableDeclaration", 776 | "src": "849:9:2" 777 | }, 778 | { 779 | "attributes": { 780 | "constant": false, 781 | "name": "b", 782 | "scope": 162, 783 | "stateVariable": false, 784 | "storageLocation": "default", 785 | "type": "uint256", 786 | "value": null, 787 | "visibility": "internal" 788 | }, 789 | "children": [ 790 | { 791 | "attributes": { 792 | "name": "uint256", 793 | "type": "uint256" 794 | }, 795 | "id": 145, 796 | "name": "ElementaryTypeName", 797 | "src": "860:7:2" 798 | } 799 | ], 800 | "id": 146, 801 | "name": "VariableDeclaration", 802 | "src": "860:9:2" 803 | } 804 | ], 805 | "id": 147, 806 | "name": "ParameterList", 807 | "src": "848:22:2" 808 | }, 809 | { 810 | "children": [ 811 | { 812 | "attributes": { 813 | "constant": false, 814 | "name": "", 815 | "scope": 162, 816 | "stateVariable": false, 817 | "storageLocation": "default", 818 | "type": "uint256", 819 | "value": null, 820 | "visibility": "internal" 821 | }, 822 | "children": [ 823 | { 824 | "attributes": { 825 | "name": "uint256", 826 | "type": "uint256" 827 | }, 828 | "id": 148, 829 | "name": "ElementaryTypeName", 830 | "src": "894:7:2" 831 | } 832 | ], 833 | "id": 149, 834 | "name": "VariableDeclaration", 835 | "src": "894:7:2" 836 | } 837 | ], 838 | "id": 150, 839 | "name": "ParameterList", 840 | "src": "893:9:2" 841 | }, 842 | { 843 | "children": [ 844 | { 845 | "children": [ 846 | { 847 | "attributes": { 848 | "argumentTypes": null, 849 | "isConstant": false, 850 | "isLValue": false, 851 | "isPure": false, 852 | "isStructConstructorCall": false, 853 | "lValueRequested": false, 854 | "names": [ 855 | null 856 | ], 857 | "type": "tuple()", 858 | "type_conversion": false 859 | }, 860 | "children": [ 861 | { 862 | "attributes": { 863 | "argumentTypes": [ 864 | { 865 | "typeIdentifier": "t_bool", 866 | "typeString": "bool" 867 | } 868 | ], 869 | "overloadedDeclarations": [ 870 | null 871 | ], 872 | "referencedDeclaration": 607, 873 | "type": "function (bool) pure", 874 | "value": "assert" 875 | }, 876 | "id": 151, 877 | "name": "Identifier", 878 | "src": "909:6:2" 879 | }, 880 | { 881 | "attributes": { 882 | "argumentTypes": null, 883 | "commonType": { 884 | "typeIdentifier": "t_uint256", 885 | "typeString": "uint256" 886 | }, 887 | "isConstant": false, 888 | "isLValue": false, 889 | "isPure": false, 890 | "lValueRequested": false, 891 | "operator": "<=", 892 | "type": "bool" 893 | }, 894 | "children": [ 895 | { 896 | "attributes": { 897 | "argumentTypes": null, 898 | "overloadedDeclarations": [ 899 | null 900 | ], 901 | "referencedDeclaration": 146, 902 | "type": "uint256", 903 | "value": "b" 904 | }, 905 | "id": 152, 906 | "name": "Identifier", 907 | "src": "916:1:2" 908 | }, 909 | { 910 | "attributes": { 911 | "argumentTypes": null, 912 | "overloadedDeclarations": [ 913 | null 914 | ], 915 | "referencedDeclaration": 144, 916 | "type": "uint256", 917 | "value": "a" 918 | }, 919 | "id": 153, 920 | "name": "Identifier", 921 | "src": "921:1:2" 922 | } 923 | ], 924 | "id": 154, 925 | "name": "BinaryOperation", 926 | "src": "916:6:2" 927 | } 928 | ], 929 | "id": 155, 930 | "name": "FunctionCall", 931 | "src": "909:14:2" 932 | } 933 | ], 934 | "id": 156, 935 | "name": "ExpressionStatement", 936 | "src": "909:14:2" 937 | }, 938 | { 939 | "attributes": { 940 | "functionReturnParameters": 150 941 | }, 942 | "children": [ 943 | { 944 | "attributes": { 945 | "argumentTypes": null, 946 | "commonType": { 947 | "typeIdentifier": "t_uint256", 948 | "typeString": "uint256" 949 | }, 950 | "isConstant": false, 951 | "isLValue": false, 952 | "isPure": false, 953 | "lValueRequested": false, 954 | "operator": "-", 955 | "type": "uint256" 956 | }, 957 | "children": [ 958 | { 959 | "attributes": { 960 | "argumentTypes": null, 961 | "overloadedDeclarations": [ 962 | null 963 | ], 964 | "referencedDeclaration": 144, 965 | "type": "uint256", 966 | "value": "a" 967 | }, 968 | "id": 157, 969 | "name": "Identifier", 970 | "src": "936:1:2" 971 | }, 972 | { 973 | "attributes": { 974 | "argumentTypes": null, 975 | "overloadedDeclarations": [ 976 | null 977 | ], 978 | "referencedDeclaration": 146, 979 | "type": "uint256", 980 | "value": "b" 981 | }, 982 | "id": 158, 983 | "name": "Identifier", 984 | "src": "940:1:2" 985 | } 986 | ], 987 | "id": 159, 988 | "name": "BinaryOperation", 989 | "src": "936:5:2" 990 | } 991 | ], 992 | "id": 160, 993 | "name": "Return", 994 | "src": "929:12:2" 995 | } 996 | ], 997 | "id": 161, 998 | "name": "Block", 999 | "src": "903:43:2" 1000 | } 1001 | ], 1002 | "id": 162, 1003 | "name": "FunctionDefinition", 1004 | "src": "836:110:2" 1005 | }, 1006 | { 1007 | "attributes": { 1008 | "constant": true, 1009 | "implemented": true, 1010 | "isConstructor": false, 1011 | "modifiers": [ 1012 | null 1013 | ], 1014 | "name": "add", 1015 | "payable": false, 1016 | "scope": 187, 1017 | "stateMutability": "pure", 1018 | "superFunction": null, 1019 | "visibility": "internal" 1020 | }, 1021 | "children": [ 1022 | { 1023 | "children": [ 1024 | { 1025 | "attributes": { 1026 | "constant": false, 1027 | "name": "a", 1028 | "scope": 186, 1029 | "stateVariable": false, 1030 | "storageLocation": "default", 1031 | "type": "uint256", 1032 | "value": null, 1033 | "visibility": "internal" 1034 | }, 1035 | "children": [ 1036 | { 1037 | "attributes": { 1038 | "name": "uint256", 1039 | "type": "uint256" 1040 | }, 1041 | "id": 163, 1042 | "name": "ElementaryTypeName", 1043 | "src": "1021:7:2" 1044 | } 1045 | ], 1046 | "id": 164, 1047 | "name": "VariableDeclaration", 1048 | "src": "1021:9:2" 1049 | }, 1050 | { 1051 | "attributes": { 1052 | "constant": false, 1053 | "name": "b", 1054 | "scope": 186, 1055 | "stateVariable": false, 1056 | "storageLocation": "default", 1057 | "type": "uint256", 1058 | "value": null, 1059 | "visibility": "internal" 1060 | }, 1061 | "children": [ 1062 | { 1063 | "attributes": { 1064 | "name": "uint256", 1065 | "type": "uint256" 1066 | }, 1067 | "id": 165, 1068 | "name": "ElementaryTypeName", 1069 | "src": "1032:7:2" 1070 | } 1071 | ], 1072 | "id": 166, 1073 | "name": "VariableDeclaration", 1074 | "src": "1032:9:2" 1075 | } 1076 | ], 1077 | "id": 167, 1078 | "name": "ParameterList", 1079 | "src": "1020:22:2" 1080 | }, 1081 | { 1082 | "children": [ 1083 | { 1084 | "attributes": { 1085 | "constant": false, 1086 | "name": "", 1087 | "scope": 186, 1088 | "stateVariable": false, 1089 | "storageLocation": "default", 1090 | "type": "uint256", 1091 | "value": null, 1092 | "visibility": "internal" 1093 | }, 1094 | "children": [ 1095 | { 1096 | "attributes": { 1097 | "name": "uint256", 1098 | "type": "uint256" 1099 | }, 1100 | "id": 168, 1101 | "name": "ElementaryTypeName", 1102 | "src": "1066:7:2" 1103 | } 1104 | ], 1105 | "id": 169, 1106 | "name": "VariableDeclaration", 1107 | "src": "1066:7:2" 1108 | } 1109 | ], 1110 | "id": 170, 1111 | "name": "ParameterList", 1112 | "src": "1065:9:2" 1113 | }, 1114 | { 1115 | "children": [ 1116 | { 1117 | "attributes": { 1118 | "assignments": [ 1119 | 172 1120 | ] 1121 | }, 1122 | "children": [ 1123 | { 1124 | "attributes": { 1125 | "constant": false, 1126 | "name": "c", 1127 | "scope": 186, 1128 | "stateVariable": false, 1129 | "storageLocation": "default", 1130 | "type": "uint256", 1131 | "value": null, 1132 | "visibility": "internal" 1133 | }, 1134 | "children": [ 1135 | { 1136 | "attributes": { 1137 | "name": "uint256", 1138 | "type": "uint256" 1139 | }, 1140 | "id": 171, 1141 | "name": "ElementaryTypeName", 1142 | "src": "1081:7:2" 1143 | } 1144 | ], 1145 | "id": 172, 1146 | "name": "VariableDeclaration", 1147 | "src": "1081:9:2" 1148 | }, 1149 | { 1150 | "attributes": { 1151 | "argumentTypes": null, 1152 | "commonType": { 1153 | "typeIdentifier": "t_uint256", 1154 | "typeString": "uint256" 1155 | }, 1156 | "isConstant": false, 1157 | "isLValue": false, 1158 | "isPure": false, 1159 | "lValueRequested": false, 1160 | "operator": "+", 1161 | "type": "uint256" 1162 | }, 1163 | "children": [ 1164 | { 1165 | "attributes": { 1166 | "argumentTypes": null, 1167 | "overloadedDeclarations": [ 1168 | null 1169 | ], 1170 | "referencedDeclaration": 164, 1171 | "type": "uint256", 1172 | "value": "a" 1173 | }, 1174 | "id": 173, 1175 | "name": "Identifier", 1176 | "src": "1093:1:2" 1177 | }, 1178 | { 1179 | "attributes": { 1180 | "argumentTypes": null, 1181 | "overloadedDeclarations": [ 1182 | null 1183 | ], 1184 | "referencedDeclaration": 166, 1185 | "type": "uint256", 1186 | "value": "b" 1187 | }, 1188 | "id": 174, 1189 | "name": "Identifier", 1190 | "src": "1097:1:2" 1191 | } 1192 | ], 1193 | "id": 175, 1194 | "name": "BinaryOperation", 1195 | "src": "1093:5:2" 1196 | } 1197 | ], 1198 | "id": 176, 1199 | "name": "VariableDeclarationStatement", 1200 | "src": "1081:17:2" 1201 | }, 1202 | { 1203 | "children": [ 1204 | { 1205 | "attributes": { 1206 | "argumentTypes": null, 1207 | "isConstant": false, 1208 | "isLValue": false, 1209 | "isPure": false, 1210 | "isStructConstructorCall": false, 1211 | "lValueRequested": false, 1212 | "names": [ 1213 | null 1214 | ], 1215 | "type": "tuple()", 1216 | "type_conversion": false 1217 | }, 1218 | "children": [ 1219 | { 1220 | "attributes": { 1221 | "argumentTypes": [ 1222 | { 1223 | "typeIdentifier": "t_bool", 1224 | "typeString": "bool" 1225 | } 1226 | ], 1227 | "overloadedDeclarations": [ 1228 | null 1229 | ], 1230 | "referencedDeclaration": 607, 1231 | "type": "function (bool) pure", 1232 | "value": "assert" 1233 | }, 1234 | "id": 177, 1235 | "name": "Identifier", 1236 | "src": "1104:6:2" 1237 | }, 1238 | { 1239 | "attributes": { 1240 | "argumentTypes": null, 1241 | "commonType": { 1242 | "typeIdentifier": "t_uint256", 1243 | "typeString": "uint256" 1244 | }, 1245 | "isConstant": false, 1246 | "isLValue": false, 1247 | "isPure": false, 1248 | "lValueRequested": false, 1249 | "operator": ">=", 1250 | "type": "bool" 1251 | }, 1252 | "children": [ 1253 | { 1254 | "attributes": { 1255 | "argumentTypes": null, 1256 | "overloadedDeclarations": [ 1257 | null 1258 | ], 1259 | "referencedDeclaration": 172, 1260 | "type": "uint256", 1261 | "value": "c" 1262 | }, 1263 | "id": 178, 1264 | "name": "Identifier", 1265 | "src": "1111:1:2" 1266 | }, 1267 | { 1268 | "attributes": { 1269 | "argumentTypes": null, 1270 | "overloadedDeclarations": [ 1271 | null 1272 | ], 1273 | "referencedDeclaration": 164, 1274 | "type": "uint256", 1275 | "value": "a" 1276 | }, 1277 | "id": 179, 1278 | "name": "Identifier", 1279 | "src": "1116:1:2" 1280 | } 1281 | ], 1282 | "id": 180, 1283 | "name": "BinaryOperation", 1284 | "src": "1111:6:2" 1285 | } 1286 | ], 1287 | "id": 181, 1288 | "name": "FunctionCall", 1289 | "src": "1104:14:2" 1290 | } 1291 | ], 1292 | "id": 182, 1293 | "name": "ExpressionStatement", 1294 | "src": "1104:14:2" 1295 | }, 1296 | { 1297 | "attributes": { 1298 | "functionReturnParameters": 170 1299 | }, 1300 | "children": [ 1301 | { 1302 | "attributes": { 1303 | "argumentTypes": null, 1304 | "overloadedDeclarations": [ 1305 | null 1306 | ], 1307 | "referencedDeclaration": 172, 1308 | "type": "uint256", 1309 | "value": "c" 1310 | }, 1311 | "id": 183, 1312 | "name": "Identifier", 1313 | "src": "1131:1:2" 1314 | } 1315 | ], 1316 | "id": 184, 1317 | "name": "Return", 1318 | "src": "1124:8:2" 1319 | } 1320 | ], 1321 | "id": 185, 1322 | "name": "Block", 1323 | "src": "1075:62:2" 1324 | } 1325 | ], 1326 | "id": 186, 1327 | "name": "FunctionDefinition", 1328 | "src": "1008:129:2" 1329 | } 1330 | ], 1331 | "id": 187, 1332 | "name": "ContractDefinition", 1333 | "src": "117:1022:2" 1334 | } 1335 | ], 1336 | "id": 188, 1337 | "name": "SourceUnit", 1338 | "src": "0:1140:2" 1339 | }, 1340 | "compiler": { 1341 | "name": "solc", 1342 | "version": "0.4.18+commit.9cf6e910.Emscripten.clang" 1343 | }, 1344 | "networks": {}, 1345 | "schemaVersion": "1.0.1", 1346 | "updatedAt": "2018-02-25T14:07:01.551Z" 1347 | } -------------------------------------------------------------------------------- /build/contracts/TutorialToken.json: -------------------------------------------------------------------------------- 1 | { 2 | "contractName": "TutorialToken", 3 | "abi": [ 4 | { 5 | "constant": true, 6 | "inputs": [], 7 | "name": "name", 8 | "outputs": [ 9 | { 10 | "name": "", 11 | "type": "string" 12 | } 13 | ], 14 | "payable": false, 15 | "stateMutability": "view", 16 | "type": "function" 17 | }, 18 | { 19 | "constant": false, 20 | "inputs": [ 21 | { 22 | "name": "_spender", 23 | "type": "address" 24 | }, 25 | { 26 | "name": "_value", 27 | "type": "uint256" 28 | } 29 | ], 30 | "name": "approve", 31 | "outputs": [ 32 | { 33 | "name": "", 34 | "type": "bool" 35 | } 36 | ], 37 | "payable": false, 38 | "stateMutability": "nonpayable", 39 | "type": "function" 40 | }, 41 | { 42 | "constant": true, 43 | "inputs": [], 44 | "name": "totalSupply", 45 | "outputs": [ 46 | { 47 | "name": "", 48 | "type": "uint256" 49 | } 50 | ], 51 | "payable": false, 52 | "stateMutability": "view", 53 | "type": "function" 54 | }, 55 | { 56 | "constant": false, 57 | "inputs": [ 58 | { 59 | "name": "_from", 60 | "type": "address" 61 | }, 62 | { 63 | "name": "_to", 64 | "type": "address" 65 | }, 66 | { 67 | "name": "_value", 68 | "type": "uint256" 69 | } 70 | ], 71 | "name": "transferFrom", 72 | "outputs": [ 73 | { 74 | "name": "", 75 | "type": "bool" 76 | } 77 | ], 78 | "payable": false, 79 | "stateMutability": "nonpayable", 80 | "type": "function" 81 | }, 82 | { 83 | "constant": true, 84 | "inputs": [], 85 | "name": "INITIAL_SUPPLY", 86 | "outputs": [ 87 | { 88 | "name": "", 89 | "type": "uint256" 90 | } 91 | ], 92 | "payable": false, 93 | "stateMutability": "view", 94 | "type": "function" 95 | }, 96 | { 97 | "constant": true, 98 | "inputs": [], 99 | "name": "decimals", 100 | "outputs": [ 101 | { 102 | "name": "", 103 | "type": "uint8" 104 | } 105 | ], 106 | "payable": false, 107 | "stateMutability": "view", 108 | "type": "function" 109 | }, 110 | { 111 | "constant": false, 112 | "inputs": [ 113 | { 114 | "name": "_spender", 115 | "type": "address" 116 | }, 117 | { 118 | "name": "_subtractedValue", 119 | "type": "uint256" 120 | } 121 | ], 122 | "name": "decreaseApproval", 123 | "outputs": [ 124 | { 125 | "name": "", 126 | "type": "bool" 127 | } 128 | ], 129 | "payable": false, 130 | "stateMutability": "nonpayable", 131 | "type": "function" 132 | }, 133 | { 134 | "constant": true, 135 | "inputs": [ 136 | { 137 | "name": "_owner", 138 | "type": "address" 139 | } 140 | ], 141 | "name": "balanceOf", 142 | "outputs": [ 143 | { 144 | "name": "balance", 145 | "type": "uint256" 146 | } 147 | ], 148 | "payable": false, 149 | "stateMutability": "view", 150 | "type": "function" 151 | }, 152 | { 153 | "constant": true, 154 | "inputs": [], 155 | "name": "symbol", 156 | "outputs": [ 157 | { 158 | "name": "", 159 | "type": "string" 160 | } 161 | ], 162 | "payable": false, 163 | "stateMutability": "view", 164 | "type": "function" 165 | }, 166 | { 167 | "constant": false, 168 | "inputs": [ 169 | { 170 | "name": "_to", 171 | "type": "address" 172 | }, 173 | { 174 | "name": "_value", 175 | "type": "uint256" 176 | } 177 | ], 178 | "name": "transfer", 179 | "outputs": [ 180 | { 181 | "name": "", 182 | "type": "bool" 183 | } 184 | ], 185 | "payable": false, 186 | "stateMutability": "nonpayable", 187 | "type": "function" 188 | }, 189 | { 190 | "constant": false, 191 | "inputs": [ 192 | { 193 | "name": "_spender", 194 | "type": "address" 195 | }, 196 | { 197 | "name": "_addedValue", 198 | "type": "uint256" 199 | } 200 | ], 201 | "name": "increaseApproval", 202 | "outputs": [ 203 | { 204 | "name": "", 205 | "type": "bool" 206 | } 207 | ], 208 | "payable": false, 209 | "stateMutability": "nonpayable", 210 | "type": "function" 211 | }, 212 | { 213 | "constant": true, 214 | "inputs": [ 215 | { 216 | "name": "_owner", 217 | "type": "address" 218 | }, 219 | { 220 | "name": "_spender", 221 | "type": "address" 222 | } 223 | ], 224 | "name": "allowance", 225 | "outputs": [ 226 | { 227 | "name": "", 228 | "type": "uint256" 229 | } 230 | ], 231 | "payable": false, 232 | "stateMutability": "view", 233 | "type": "function" 234 | }, 235 | { 236 | "inputs": [], 237 | "payable": false, 238 | "stateMutability": "nonpayable", 239 | "type": "constructor" 240 | }, 241 | { 242 | "anonymous": false, 243 | "inputs": [ 244 | { 245 | "indexed": true, 246 | "name": "owner", 247 | "type": "address" 248 | }, 249 | { 250 | "indexed": true, 251 | "name": "spender", 252 | "type": "address" 253 | }, 254 | { 255 | "indexed": false, 256 | "name": "value", 257 | "type": "uint256" 258 | } 259 | ], 260 | "name": "Approval", 261 | "type": "event" 262 | }, 263 | { 264 | "anonymous": false, 265 | "inputs": [ 266 | { 267 | "indexed": true, 268 | "name": "from", 269 | "type": "address" 270 | }, 271 | { 272 | "indexed": true, 273 | "name": "to", 274 | "type": "address" 275 | }, 276 | { 277 | "indexed": false, 278 | "name": "value", 279 | "type": "uint256" 280 | } 281 | ], 282 | "name": "Transfer", 283 | "type": "event" 284 | } 285 | ], 286 | "bytecode": "0x60606040526040805190810160405280600e81526020017f5475746f7269616c20546f6b656e000000000000000000000000000000000000815250600390805190602001906200005192919062000122565b506040805190810160405280600381526020017f5455540000000000000000000000000000000000000000000000000000000000815250600490805190602001906200009f92919062000122565b506002600560006101000a81548160ff021916908360ff160217905550612ee06006553415620000ce57600080fd5b6006546001819055506006546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b6112df80620001e16000396000f3006060604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100bf578063095ea7b31461014d57806318160ddd146101a757806323b872dd146101d05780632ff2e9dc14610249578063313ce5671461027257806366188463146102a157806370a08231146102fb57806395d89b4114610348578063a9059cbb146103d6578063d73dd62314610430578063dd62ed3e1461048a575b600080fd5b34156100ca57600080fd5b6100d26104f6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101125780820151818401526020810190506100f7565b50505050905090810190601f16801561013f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015857600080fd5b61018d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610594565b604051808215151515815260200191505060405180910390f35b34156101b257600080fd5b6101ba610686565b6040518082815260200191505060405180910390f35b34156101db57600080fd5b61022f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610690565b604051808215151515815260200191505060405180910390f35b341561025457600080fd5b61025c610a4a565b6040518082815260200191505060405180910390f35b341561027d57600080fd5b610285610a50565b604051808260ff1660ff16815260200191505060405180910390f35b34156102ac57600080fd5b6102e1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a63565b604051808215151515815260200191505060405180910390f35b341561030657600080fd5b610332600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cf4565b6040518082815260200191505060405180910390f35b341561035357600080fd5b61035b610d3c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039b578082015181840152602081019050610380565b50505050905090810190601f1680156103c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e157600080fd5b610416600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610dda565b604051808215151515815260200191505060405180910390f35b341561043b57600080fd5b610470600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ff9565b604051808215151515815260200191505060405180910390f35b341561049557600080fd5b6104e0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111f5565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561058c5780601f106105615761010080835404028352916020019161058c565b820191906000526020600020905b81548152906001019060200180831161056f57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106cd57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561071a57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107a557600080fd5b6107f6826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127c90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610889826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061095a82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127c90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481565b600560009054906101000a900460ff1681565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b74576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c08565b610b87838261127c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd25780601f10610da757610100808354040283529160200191610dd2565b820191906000526020600020905b815481529060010190602001808311610db557829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1757600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6457600080fd5b610eb5826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127c90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f48826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061108a82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129590919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561128a57fe5b818303905092915050565b60008082840190508381101515156112a957fe5b80915050929150505600a165627a7a72305820378d05b58a18d5258be94e6db26ef245f73c3f297b4bf703383d9b7c0431c7170029", 287 | "deployedBytecode": "0x6060604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100bf578063095ea7b31461014d57806318160ddd146101a757806323b872dd146101d05780632ff2e9dc14610249578063313ce5671461027257806366188463146102a157806370a08231146102fb57806395d89b4114610348578063a9059cbb146103d6578063d73dd62314610430578063dd62ed3e1461048a575b600080fd5b34156100ca57600080fd5b6100d26104f6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101125780820151818401526020810190506100f7565b50505050905090810190601f16801561013f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015857600080fd5b61018d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610594565b604051808215151515815260200191505060405180910390f35b34156101b257600080fd5b6101ba610686565b6040518082815260200191505060405180910390f35b34156101db57600080fd5b61022f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610690565b604051808215151515815260200191505060405180910390f35b341561025457600080fd5b61025c610a4a565b6040518082815260200191505060405180910390f35b341561027d57600080fd5b610285610a50565b604051808260ff1660ff16815260200191505060405180910390f35b34156102ac57600080fd5b6102e1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a63565b604051808215151515815260200191505060405180910390f35b341561030657600080fd5b610332600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cf4565b6040518082815260200191505060405180910390f35b341561035357600080fd5b61035b610d3c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039b578082015181840152602081019050610380565b50505050905090810190601f1680156103c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e157600080fd5b610416600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610dda565b604051808215151515815260200191505060405180910390f35b341561043b57600080fd5b610470600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ff9565b604051808215151515815260200191505060405180910390f35b341561049557600080fd5b6104e0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111f5565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561058c5780601f106105615761010080835404028352916020019161058c565b820191906000526020600020905b81548152906001019060200180831161056f57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106cd57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561071a57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107a557600080fd5b6107f6826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127c90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610889826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061095a82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127c90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481565b600560009054906101000a900460ff1681565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b74576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c08565b610b87838261127c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd25780601f10610da757610100808354040283529160200191610dd2565b820191906000526020600020905b815481529060010190602001808311610db557829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1757600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6457600080fd5b610eb5826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127c90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f48826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061108a82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129590919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561128a57fe5b818303905092915050565b60008082840190508381101515156112a957fe5b80915050929150505600a165627a7a72305820378d05b58a18d5258be94e6db26ef245f73c3f297b4bf703383d9b7c0431c7170029", 288 | "sourceMap": "95:302:1:-;;;139:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;180:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;236:1;212:25;;;;;;;;;;;;;;;;;;;;270:5;241:34;;280:115;;;;;;;;333:14;;318:12;:29;;;;376:14;;353:8;:20;362:10;353:20;;;;;;;;;;;;;;;:37;;;;95:302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", 289 | "deployedSourceMap": "95:302:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;139:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1798:183:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;736:439:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;241:34:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;212:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3602:398:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:107:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;180:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:379:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2883:257:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2300:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;139:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1798:183:6:-;1865:4;1909:6;1877:7;:19;1885:10;1877:19;;;;;;;;;;;;;;;:29;1897:8;1877:29;;;;;;;;;;;;;;;:38;;;;1942:8;1921:38;;1930:10;1921:38;;;1952:6;1921:38;;;;;;;;;;;;;;;;;;1972:4;1965:11;;1798:183;;;;:::o;371:83:3:-;415:7;437:12;;430:19;;371:83;:::o;736:439:6:-;818:4;853:1;838:17;;:3;:17;;;;830:26;;;;;;;;880:8;:15;889:5;880:15;;;;;;;;;;;;;;;;870:6;:25;;862:34;;;;;;;;920:7;:14;928:5;920:14;;;;;;;;;;;;;;;:26;935:10;920:26;;;;;;;;;;;;;;;;910:6;:36;;902:45;;;;;;;;972:27;992:6;972:8;:15;981:5;972:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;954:8;:15;963:5;954:15;;;;;;;;;;;;;;;:45;;;;1021:25;1039:6;1021:8;:13;1030:3;1021:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1005:8;:13;1014:3;1005:13;;;;;;;;;;;;;;;:41;;;;1081:38;1112:6;1081:7;:14;1089:5;1081:14;;;;;;;;;;;;;;;:26;1096:10;1081:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1052:7;:14;1060:5;1052:14;;;;;;;;;;;;;;;:26;1067:10;1052:26;;;;;;;;;;;;;;;:67;;;;1141:3;1125:28;;1134:5;1125:28;;;1146:6;1125:28;;;;;;;;;;;;;;;;;;1166:4;1159:11;;736:439;;;;;:::o;241:34:1:-;;;;:::o;212:25::-;;;;;;;;;;;;;:::o;3602:398:6:-;3685:4;3697:13;3713:7;:19;3721:10;3713:19;;;;;;;;;;;;;;;:29;3733:8;3713:29;;;;;;;;;;;;;;;;3697:45;;3771:8;3752:16;:27;3748:164;;;3821:1;3789:7;:19;3797:10;3789:19;;;;;;;;;;;;;;;:29;3809:8;3789:29;;;;;;;;;;;;;;;:33;;;;3748:164;;;3875:30;3888:16;3875:8;:12;;:30;;;;:::i;:::-;3843:7;:19;3851:10;3843:19;;;;;;;;;;;;;;;:29;3863:8;3843:29;;;;;;;;;;;;;;;:62;;;;3748:164;3938:8;3917:61;;3926:10;3917:61;;;3948:7;:19;3956:10;3948:19;;;;;;;;;;;;;;;:29;3968:8;3948:29;;;;;;;;;;;;;;;;3917:61;;;;;;;;;;;;;;;;;;3991:4;3984:11;;3602:398;;;;;:::o;1189:107:3:-;1245:15;1275:8;:16;1284:6;1275:16;;;;;;;;;;;;;;;;1268:23;;1189:107;;;:::o;180:28:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:379:3:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;847:32;872:6;847:8;:20;856:10;847:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;824:8;:20;833:10;824:20;;;;;;;;;;;;;;;:55;;;;901:25;919:6;901:8;:13;910:3;901:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;885:8;:13;894:3;885:13;;;;;;;;;;;;;;;:41;;;;953:3;932:33;;941:10;932:33;;;958:6;932:33;;;;;;;;;;;;;;;;;;978:4;971:11;;608:379;;;;:::o;2883:257:6:-;2961:4;3005:46;3039:11;3005:7;:19;3013:10;3005:19;;;;;;;;;;;;;;;:29;3025:8;3005:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;2973:7;:19;2981:10;2973:19;;;;;;;;;;;;;;;:29;2993:8;2973:29;;;;;;;;;;;;;;;:78;;;;3078:8;3057:61;;3066:10;3057:61;;;3088:7;:19;3096:10;3088:19;;;;;;;;;;;;;;;:29;3108:8;3088:29;;;;;;;;;;;;;;;;3057:61;;;;;;;;;;;;;;;;;;3131:4;3124:11;;2883:257;;;;:::o;2300:126::-;2374:7;2396;:15;2404:6;2396:15;;;;;;;;;;;;;;;:25;2412:8;2396:25;;;;;;;;;;;;;;;;2389:32;;2300:126;;;;:::o;836:110:2:-;894:7;921:1;916;:6;;909:14;;;;;;940:1;936;:5;929:12;;836:110;;;;:::o;1008:129::-;1066:7;1081:9;1097:1;1093;:5;1081:17;;1116:1;1111;:6;;1104:14;;;;;;1131:1;1124:8;;1008:129;;;;;:::o", 290 | "source": "pragma solidity ^0.4.17;\n\nimport 'zeppelin-solidity/contracts/token/ERC20/StandardToken.sol';\n\ncontract TutorialToken is StandardToken {\n string public name = 'Tutorial Token';\n string public symbol = 'TUT';\n uint8 public decimals = 2;\n uint public INITIAL_SUPPLY = 12000;\n\n function TutorialToken() public {\n totalSupply_ = INITIAL_SUPPLY;\n balances[msg.sender] = INITIAL_SUPPLY;\n }\n}\n", 291 | "sourcePath": "/Users/satansdeersatansdeer/Workspace/ethereum-token-tutorial/contracts/TutorialCoin.sol", 292 | "ast": { 293 | "attributes": { 294 | "absolutePath": "/Users/satansdeersatansdeer/Workspace/ethereum-token-tutorial/contracts/TutorialCoin.sol", 295 | "exportedSymbols": { 296 | "TutorialToken": [ 297 | 89 298 | ] 299 | } 300 | }, 301 | "children": [ 302 | { 303 | "attributes": { 304 | "literals": [ 305 | "solidity", 306 | "^", 307 | "0.4", 308 | ".17" 309 | ] 310 | }, 311 | "id": 58, 312 | "name": "PragmaDirective", 313 | "src": "0:24:1" 314 | }, 315 | { 316 | "attributes": { 317 | "SourceUnit": 605, 318 | "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", 319 | "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", 320 | "scope": 90, 321 | "symbolAliases": [ 322 | null 323 | ], 324 | "unitAlias": "" 325 | }, 326 | "id": 59, 327 | "name": "ImportDirective", 328 | "src": "26:67:1" 329 | }, 330 | { 331 | "attributes": { 332 | "contractDependencies": [ 333 | 283, 334 | 326, 335 | 358, 336 | 604 337 | ], 338 | "contractKind": "contract", 339 | "documentation": null, 340 | "fullyImplemented": true, 341 | "linearizedBaseContracts": [ 342 | 89, 343 | 604, 344 | 283, 345 | 326, 346 | 358 347 | ], 348 | "name": "TutorialToken", 349 | "scope": 90 350 | }, 351 | "children": [ 352 | { 353 | "attributes": { 354 | "arguments": [ 355 | null 356 | ] 357 | }, 358 | "children": [ 359 | { 360 | "attributes": { 361 | "contractScope": null, 362 | "name": "StandardToken", 363 | "referencedDeclaration": 604, 364 | "type": "contract StandardToken" 365 | }, 366 | "id": 60, 367 | "name": "UserDefinedTypeName", 368 | "src": "121:13:1" 369 | } 370 | ], 371 | "id": 61, 372 | "name": "InheritanceSpecifier", 373 | "src": "121:13:1" 374 | }, 375 | { 376 | "attributes": { 377 | "constant": false, 378 | "name": "name", 379 | "scope": 89, 380 | "stateVariable": true, 381 | "storageLocation": "default", 382 | "type": "string storage ref", 383 | "visibility": "public" 384 | }, 385 | "children": [ 386 | { 387 | "attributes": { 388 | "name": "string", 389 | "type": "string storage pointer" 390 | }, 391 | "id": 62, 392 | "name": "ElementaryTypeName", 393 | "src": "139:6:1" 394 | }, 395 | { 396 | "attributes": { 397 | "argumentTypes": null, 398 | "hexvalue": "5475746f7269616c20546f6b656e", 399 | "isConstant": false, 400 | "isLValue": false, 401 | "isPure": true, 402 | "lValueRequested": false, 403 | "subdenomination": null, 404 | "token": "string", 405 | "type": "literal_string \"Tutorial Token\"", 406 | "value": "Tutorial Token" 407 | }, 408 | "id": 63, 409 | "name": "Literal", 410 | "src": "160:16:1" 411 | } 412 | ], 413 | "id": 64, 414 | "name": "VariableDeclaration", 415 | "src": "139:37:1" 416 | }, 417 | { 418 | "attributes": { 419 | "constant": false, 420 | "name": "symbol", 421 | "scope": 89, 422 | "stateVariable": true, 423 | "storageLocation": "default", 424 | "type": "string storage ref", 425 | "visibility": "public" 426 | }, 427 | "children": [ 428 | { 429 | "attributes": { 430 | "name": "string", 431 | "type": "string storage pointer" 432 | }, 433 | "id": 65, 434 | "name": "ElementaryTypeName", 435 | "src": "180:6:1" 436 | }, 437 | { 438 | "attributes": { 439 | "argumentTypes": null, 440 | "hexvalue": "545554", 441 | "isConstant": false, 442 | "isLValue": false, 443 | "isPure": true, 444 | "lValueRequested": false, 445 | "subdenomination": null, 446 | "token": "string", 447 | "type": "literal_string \"TUT\"", 448 | "value": "TUT" 449 | }, 450 | "id": 66, 451 | "name": "Literal", 452 | "src": "203:5:1" 453 | } 454 | ], 455 | "id": 67, 456 | "name": "VariableDeclaration", 457 | "src": "180:28:1" 458 | }, 459 | { 460 | "attributes": { 461 | "constant": false, 462 | "name": "decimals", 463 | "scope": 89, 464 | "stateVariable": true, 465 | "storageLocation": "default", 466 | "type": "uint8", 467 | "visibility": "public" 468 | }, 469 | "children": [ 470 | { 471 | "attributes": { 472 | "name": "uint8", 473 | "type": "uint8" 474 | }, 475 | "id": 68, 476 | "name": "ElementaryTypeName", 477 | "src": "212:5:1" 478 | }, 479 | { 480 | "attributes": { 481 | "argumentTypes": null, 482 | "hexvalue": "32", 483 | "isConstant": false, 484 | "isLValue": false, 485 | "isPure": true, 486 | "lValueRequested": false, 487 | "subdenomination": null, 488 | "token": "number", 489 | "type": "int_const 2", 490 | "value": "2" 491 | }, 492 | "id": 69, 493 | "name": "Literal", 494 | "src": "236:1:1" 495 | } 496 | ], 497 | "id": 70, 498 | "name": "VariableDeclaration", 499 | "src": "212:25:1" 500 | }, 501 | { 502 | "attributes": { 503 | "constant": false, 504 | "name": "INITIAL_SUPPLY", 505 | "scope": 89, 506 | "stateVariable": true, 507 | "storageLocation": "default", 508 | "type": "uint256", 509 | "visibility": "public" 510 | }, 511 | "children": [ 512 | { 513 | "attributes": { 514 | "name": "uint", 515 | "type": "uint256" 516 | }, 517 | "id": 71, 518 | "name": "ElementaryTypeName", 519 | "src": "241:4:1" 520 | }, 521 | { 522 | "attributes": { 523 | "argumentTypes": null, 524 | "hexvalue": "3132303030", 525 | "isConstant": false, 526 | "isLValue": false, 527 | "isPure": true, 528 | "lValueRequested": false, 529 | "subdenomination": null, 530 | "token": "number", 531 | "type": "int_const 12000", 532 | "value": "12000" 533 | }, 534 | "id": 72, 535 | "name": "Literal", 536 | "src": "270:5:1" 537 | } 538 | ], 539 | "id": 73, 540 | "name": "VariableDeclaration", 541 | "src": "241:34:1" 542 | }, 543 | { 544 | "attributes": { 545 | "constant": false, 546 | "implemented": true, 547 | "isConstructor": true, 548 | "modifiers": [ 549 | null 550 | ], 551 | "name": "TutorialToken", 552 | "payable": false, 553 | "scope": 89, 554 | "stateMutability": "nonpayable", 555 | "superFunction": null, 556 | "visibility": "public" 557 | }, 558 | "children": [ 559 | { 560 | "attributes": { 561 | "parameters": [ 562 | null 563 | ] 564 | }, 565 | "children": [], 566 | "id": 74, 567 | "name": "ParameterList", 568 | "src": "302:2:1" 569 | }, 570 | { 571 | "attributes": { 572 | "parameters": [ 573 | null 574 | ] 575 | }, 576 | "children": [], 577 | "id": 75, 578 | "name": "ParameterList", 579 | "src": "312:0:1" 580 | }, 581 | { 582 | "children": [ 583 | { 584 | "children": [ 585 | { 586 | "attributes": { 587 | "argumentTypes": null, 588 | "isConstant": false, 589 | "isLValue": false, 590 | "isPure": false, 591 | "lValueRequested": false, 592 | "operator": "=", 593 | "type": "uint256" 594 | }, 595 | "children": [ 596 | { 597 | "attributes": { 598 | "argumentTypes": null, 599 | "overloadedDeclarations": [ 600 | null 601 | ], 602 | "referencedDeclaration": 202, 603 | "type": "uint256", 604 | "value": "totalSupply_" 605 | }, 606 | "id": 76, 607 | "name": "Identifier", 608 | "src": "318:12:1" 609 | }, 610 | { 611 | "attributes": { 612 | "argumentTypes": null, 613 | "overloadedDeclarations": [ 614 | null 615 | ], 616 | "referencedDeclaration": 73, 617 | "type": "uint256", 618 | "value": "INITIAL_SUPPLY" 619 | }, 620 | "id": 77, 621 | "name": "Identifier", 622 | "src": "333:14:1" 623 | } 624 | ], 625 | "id": 78, 626 | "name": "Assignment", 627 | "src": "318:29:1" 628 | } 629 | ], 630 | "id": 79, 631 | "name": "ExpressionStatement", 632 | "src": "318:29:1" 633 | }, 634 | { 635 | "children": [ 636 | { 637 | "attributes": { 638 | "argumentTypes": null, 639 | "isConstant": false, 640 | "isLValue": false, 641 | "isPure": false, 642 | "lValueRequested": false, 643 | "operator": "=", 644 | "type": "uint256" 645 | }, 646 | "children": [ 647 | { 648 | "attributes": { 649 | "argumentTypes": null, 650 | "isConstant": false, 651 | "isLValue": true, 652 | "isPure": false, 653 | "lValueRequested": true, 654 | "type": "uint256" 655 | }, 656 | "children": [ 657 | { 658 | "attributes": { 659 | "argumentTypes": null, 660 | "overloadedDeclarations": [ 661 | null 662 | ], 663 | "referencedDeclaration": 200, 664 | "type": "mapping(address => uint256)", 665 | "value": "balances" 666 | }, 667 | "id": 80, 668 | "name": "Identifier", 669 | "src": "353:8:1" 670 | }, 671 | { 672 | "attributes": { 673 | "argumentTypes": null, 674 | "isConstant": false, 675 | "isLValue": false, 676 | "isPure": false, 677 | "lValueRequested": false, 678 | "member_name": "sender", 679 | "referencedDeclaration": null, 680 | "type": "address" 681 | }, 682 | "children": [ 683 | { 684 | "attributes": { 685 | "argumentTypes": null, 686 | "overloadedDeclarations": [ 687 | null 688 | ], 689 | "referencedDeclaration": 616, 690 | "type": "msg", 691 | "value": "msg" 692 | }, 693 | "id": 81, 694 | "name": "Identifier", 695 | "src": "362:3:1" 696 | } 697 | ], 698 | "id": 82, 699 | "name": "MemberAccess", 700 | "src": "362:10:1" 701 | } 702 | ], 703 | "id": 83, 704 | "name": "IndexAccess", 705 | "src": "353:20:1" 706 | }, 707 | { 708 | "attributes": { 709 | "argumentTypes": null, 710 | "overloadedDeclarations": [ 711 | null 712 | ], 713 | "referencedDeclaration": 73, 714 | "type": "uint256", 715 | "value": "INITIAL_SUPPLY" 716 | }, 717 | "id": 84, 718 | "name": "Identifier", 719 | "src": "376:14:1" 720 | } 721 | ], 722 | "id": 85, 723 | "name": "Assignment", 724 | "src": "353:37:1" 725 | } 726 | ], 727 | "id": 86, 728 | "name": "ExpressionStatement", 729 | "src": "353:37:1" 730 | } 731 | ], 732 | "id": 87, 733 | "name": "Block", 734 | "src": "312:83:1" 735 | } 736 | ], 737 | "id": 88, 738 | "name": "FunctionDefinition", 739 | "src": "280:115:1" 740 | } 741 | ], 742 | "id": 89, 743 | "name": "ContractDefinition", 744 | "src": "95:302:1" 745 | } 746 | ], 747 | "id": 90, 748 | "name": "SourceUnit", 749 | "src": "0:398:1" 750 | }, 751 | "compiler": { 752 | "name": "solc", 753 | "version": "0.4.18+commit.9cf6e910.Emscripten.clang" 754 | }, 755 | "networks": { 756 | "5777": { 757 | "events": {}, 758 | "links": {}, 759 | "address": "0x345ca3e014aaf5dca488057592ee47305d9b3e10" 760 | }, 761 | "1519586516424": { 762 | "events": {}, 763 | "links": {}, 764 | "address": "0xe9679cc1936203bfcbb562af9b11e532c76a79fc" 765 | }, 766 | "1519669908684": { 767 | "events": {}, 768 | "links": {}, 769 | "address": "0x24c23e20d13dc9932b350c2e4c8f6259ae9fbfb1" 770 | } 771 | }, 772 | "schemaVersion": "1.0.1", 773 | "updatedAt": "2018-02-26T18:34:22.065Z" 774 | } -------------------------------------------------------------------------------- /contracts/Migrations.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.17; 2 | 3 | contract Migrations { 4 | address public owner; 5 | uint public last_completed_migration; 6 | 7 | modifier restricted() { 8 | if (msg.sender == owner) _; 9 | } 10 | 11 | function Migrations() public { 12 | owner = msg.sender; 13 | } 14 | 15 | function setCompleted(uint completed) public restricted { 16 | last_completed_migration = completed; 17 | } 18 | 19 | function upgrade(address new_address) public restricted { 20 | Migrations upgraded = Migrations(new_address); 21 | upgraded.setCompleted(last_completed_migration); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /contracts/TutorialCoin.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.17; 2 | 3 | import 'zeppelin-solidity/contracts/token/ERC20/StandardToken.sol'; 4 | 5 | contract TutorialToken is StandardToken { 6 | string public name = 'Tutorial Token'; 7 | string public symbol = 'TUT'; 8 | uint8 public decimals = 2; 9 | uint public INITIAL_SUPPLY = 12000; 10 | 11 | function TutorialToken() public { 12 | totalSupply_ = INITIAL_SUPPLY; 13 | balances[msg.sender] = INITIAL_SUPPLY; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /front/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | -------------------------------------------------------------------------------- /front/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "front", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "drizzle": "^1.0.1", 7 | "drizzle-react": "^1.0.1", 8 | "react": "^16.2.0", 9 | "react-dom": "^16.2.0", 10 | "react-scripts": "1.1.1", 11 | "redux": "^3.7.2" 12 | }, 13 | "scripts": { 14 | "start": "react-scripts start", 15 | "build": "react-scripts build", 16 | "test": "react-scripts test --env=jsdom", 17 | "eject": "react-scripts eject" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /front/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/satansdeer/ethereum-token-tutorial/bcccb3c30f22e1beced99e37f31e27ea9863ca86/front/public/favicon.ico -------------------------------------------------------------------------------- /front/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 11 | 12 | 13 | 22 |
19 | Total Supply:{" "}
20 |
32 | My Balance:{" "}
33 |