github.com/bigzoro/my_simplechain@v0.0.0-20240315012955-8ad0a2a29bb9/internal/web3ext/web3ext.go (about) 1 // Copyright 2015 The go-simplechain Authors 2 // This file is part of the go-simplechain library. 3 // 4 // The go-simplechain library is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Lesser General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // The go-simplechain library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Lesser General Public License for more details. 13 // 14 // You should have received a copy of the GNU Lesser General Public License 15 // along with the go-simplechain library. If not, see <http://www.gnu.org/licenses/>. 16 17 // package web3ext contains geth specific web3.js extensions. 18 package web3ext 19 20 var Modules = map[string]string{ 21 "accounting": AccountingJs, 22 "admin": AdminJs, 23 "chequebook": ChequebookJs, 24 "clique": CliqueJs, 25 "ethash": EthashJs, 26 "debug": DebugJs, 27 "eth": EthJs, 28 "miner": MinerJs, 29 "net": NetJs, 30 "personal": PersonalJs, 31 "rpc": RpcJs, 32 "shh": ShhJs, 33 "swarmfs": SwarmfsJs, 34 "txpool": TxpoolJs, 35 "les": LESJs, 36 "permission": Permission_JS, 37 "raft": Raft_JS, 38 "pbft": PBFT_JS, 39 "hotstuff": HOTSTUFF_JS, 40 } 41 42 const HOTSTUFF_JS = ` 43 web3._extend({ 44 property: 'hotstuff', 45 methods: [ 46 new web3._extend.Method({ 47 name: 'add', 48 call: 'hotstuff_add', 49 params: 4, 50 }), 51 new web3._extend.Method({ 52 name: 'remove', 53 call: 'hotstuff_remove', 54 params: 3, 55 }), 56 new web3._extend.Method({ 57 name: 'proposeAdd', 58 call: 'hotstuff_proposeAdd', 59 params: 3, 60 }), 61 new web3._extend.Method({ 62 name: 'proposeRemove', 63 call: 'hotstuff_proposeRemove', 64 params: 2, 65 }), 66 new web3._extend.Method({ 67 name: 'aggregate', 68 call: 'hotstuff_aggregate', 69 params: 1, 70 }), 71 new web3._extend.Method({ 72 name: 'getReplicaInfo', 73 call: 'hotstuff_getReplicaInfo', 74 params: 1, 75 }), 76 ] 77 }); 78 ` 79 80 const PBFT_JS = ` 81 web3._extend({ 82 property: 'pbft', 83 methods: 84 [ 85 new web3._extend.Method({ 86 name: 'getSnapshot', 87 call: 'pbft_getSnapshot', 88 params: 1, 89 inputFormatter: [null] 90 }), 91 new web3._extend.Method({ 92 name: 'getSnapshotAtHash', 93 call: 'pbft_getSnapshotAtHash', 94 params: 1 95 }), 96 new web3._extend.Method({ 97 name: 'getValidators', 98 call: 'pbft_getValidators', 99 params: 1, 100 inputFormatter: [null] 101 }), 102 new web3._extend.Method({ 103 name: 'getValidatorsAtHash', 104 call: 'pbft_getValidatorsAtHash', 105 params: 1 106 }), 107 new web3._extend.Method({ 108 name: 'propose', 109 call: 'pbft_propose', 110 params: 2 111 }), 112 new web3._extend.Method({ 113 name: 'discard', 114 call: 'pbft_discard', 115 params: 1 116 }), 117 118 new web3._extend.Method({ 119 name: 'getSignersFromBlock', 120 call: 'pbft_getSignersFromBlock', 121 params: 1, 122 inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter] 123 }), 124 new web3._extend.Method({ 125 name: 'getSignersFromBlockByHash', 126 call: 'pbft_getSignersFromBlockByHash', 127 params: 1 128 }), 129 ], 130 properties: 131 [ 132 new web3._extend.Property({ 133 name: 'candidates', 134 getter: 'pbft_candidates' 135 }), 136 new web3._extend.Property({ 137 name: 'nodeAddress', 138 getter: 'pbft_nodeAddress' 139 }), 140 ] 141 }); 142 ` 143 144 const Raft_JS = `web3._extend({ 145 property: 'raft', 146 methods: 147 [ 148 ], 149 properties: 150 [ 151 new web3._extend.Property({ 152 name: 'role', 153 getter: 'raft_role' 154 }), 155 new web3._extend.Method({ 156 name: 'changeRole', 157 call: 'raft_changeRole', 158 params: 1 159 }), 160 new web3._extend.Method({ 161 name: 'addPeer', 162 call: 'raft_addPeer', 163 params: 1 164 }), 165 new web3._extend.Method({ 166 name: 'removePeer', 167 call: 'raft_removePeer', 168 params: 1 169 }), 170 new web3._extend.Property({ 171 name: 'getMaxRaftId', 172 getter: 'raft_getMaxRaftId' 173 }), 174 new web3._extend.Property({ 175 name: 'leader', 176 getter: 'raft_leader' 177 }), 178 new web3._extend.Property({ 179 name: 'cluster', 180 getter: 'raft_cluster' 181 }), 182 ] 183 }) 184 ` 185 186 const Permission_JS = `web3._extend({ 187 property: 'permission', 188 methods: [ 189 new web3._extend.Method({ 190 name: 'addPeer', 191 call: 'permission_addPeer', 192 params: 2, 193 inputFormatter: [null, web3._extend.formatters.inputAddressFormatter] 194 }), 195 new web3._extend.Method({ 196 name: 'removePeer', 197 call: 'permission_removePeer', 198 params: 1, 199 inputFormatter: [null] 200 }), 201 new web3._extend.Method({ 202 name: 'setAdminNode', 203 call: 'permission_setAdminNode', 204 params: 4, 205 inputFormatter: [null, null, web3._extend.formatters.inputAddressFormatter, web3._extend.formatters.inputAddressFormatter] 206 }), 207 new web3._extend.Method({ 208 name: 'initFinish', 209 call: 'permission_initFinish', 210 params: 1, 211 inputFormatter: [web3._extend.formatters.inputAddressFormatter] 212 }), 213 new web3._extend.Method({ 214 name: 'makeProposalForJoin', 215 call: 'permission_makeProposalForJoin', 216 params: 4, 217 inputFormatter: [null, null, web3._extend.formatters.inputAddressFormatter, web3._extend.formatters.inputAddressFormatter] 218 }), 219 new web3._extend.Method({ 220 name: 'acceptProposalForJoin', 221 call: 'permission_acceptProposalForJoin', 222 params: 2, 223 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 224 }), 225 new web3._extend.Method({ 226 name: 'rejectProposalForJoin', 227 call: 'permission_rejectProposalForJoin', 228 params: 2, 229 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 230 }), 231 new web3._extend.Method({ 232 name: 'makeProposalForAdmin', 233 call: 'permission_makeProposalForAdmin', 234 params: 2, 235 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 236 }), 237 new web3._extend.Method({ 238 name: 'acceptProposalForAdmin', 239 call: 'permission_acceptProposalForAdmin', 240 params: 2, 241 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 242 }), 243 new web3._extend.Method({ 244 name: 'rejectProposalForAdmin', 245 call: 'permission_rejectProposalForAdmin', 246 params: 2, 247 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 248 }), 249 new web3._extend.Method({ 250 name: 'makeProposalForCommon', 251 call: 'permission_makeProposalForCommon', 252 params: 2, 253 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 254 }), 255 new web3._extend.Method({ 256 name: 'acceptProposalForCommon', 257 call: 'permission_acceptProposalForCommon', 258 params: 2, 259 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 260 }), 261 new web3._extend.Method({ 262 name: 'rejectProposalForCommon', 263 call: 'permission_rejectProposalForCommon', 264 params: 2, 265 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 266 }), 267 new web3._extend.Method({ 268 name: 'makeProposalForExit', 269 call: 'permission_makeProposalForExit', 270 params: 2, 271 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 272 }), 273 new web3._extend.Method({ 274 name: 'acceptProposalForExit', 275 call: 'permission_acceptProposalForExit', 276 params: 2, 277 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 278 }), 279 new web3._extend.Method({ 280 name: 'rejectProposalForExit', 281 call: 'permission_rejectProposalForExit', 282 params: 2, 283 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 284 }), 285 new web3._extend.Method({ 286 name: 'isNetworkInitFinished', 287 call: 'permission_isNetworkInitFinished', 288 params: 0, 289 inputFormatter: [] 290 }), 291 new web3._extend.Method({ 292 name: 'updateNodeInfo', 293 call: 'permission_updateNodeInfo', 294 params: 3, 295 inputFormatter: [null,null,web3._extend.formatters.inputAddressFormatter] 296 }), 297 new web3._extend.Method({ 298 name: 'exit', 299 call: 'permission_exit', 300 params: 1, 301 inputFormatter: [web3._extend.formatters.inputAddressFormatter] 302 }), 303 new web3._extend.Method({ 304 name: 'getNodeByRole', 305 call: 'permission_getNodeByRole', 306 params: 2, 307 inputFormatter: [null, web3._extend.formatters.inputAddressFormatter] 308 }), 309 new web3._extend.Method({ 310 name: 'getNodeRole', 311 call: 'permission_getNodeRole', 312 params: 2, 313 inputFormatter: [null, web3._extend.formatters.inputAddressFormatter] 314 }), 315 new web3._extend.Method({ 316 name: 'getNodeInfoByName', 317 call: 'permission_getNodeInfoByName', 318 params: 2, 319 inputFormatter: [null, web3._extend.formatters.inputAddressFormatter] 320 }), 321 new web3._extend.Method({ 322 name: 'getStateMap', 323 call: 'permission_getStateMap', 324 params: 3, 325 inputFormatter: [null, null,web3._extend.formatters.inputAddressFormatter] 326 }), 327 new web3._extend.Method({ 328 name: 'getNodeInfo', 329 call: 'permission_getNodeInfo', 330 params: 2, 331 inputFormatter: [null, web3._extend.formatters.inputAddressFormatter] 332 }), 333 new web3._extend.Method({ 334 name: 'getAllStatingRecord', 335 call: 'permission_getAllStatingRecord', 336 params: 1, 337 inputFormatter: [web3._extend.formatters.inputAddressFormatter] 338 }), 339 new web3._extend.Method({ 340 name: 'isAdmin', 341 call: 'permission_isAdmin', 342 params: 2, 343 inputFormatter: [null, web3._extend.formatters.inputAddressFormatter] 344 }), 345 new web3._extend.Method({ 346 name: 'setPermissionContractAddress', 347 call: 'permission_setPermissionContractAddress', 348 params: 1, 349 inputFormatter: [web3._extend.formatters.inputAddressFormatter] 350 }), 351 new web3._extend.Method({ 352 name: 'getPermissionContractAddress', 353 call: 'permission_getPermissionContractAddress', 354 params: 0, 355 inputFormatter: [] 356 }), 357 new web3._extend.Method({ 358 name: 'setStoreContractAddress', 359 call: 'permission_setStoreContractAddress', 360 params: 1, 361 inputFormatter: [web3._extend.formatters.inputAddressFormatter] 362 }), 363 new web3._extend.Method({ 364 name: 'getStoreContractAddress', 365 call: 'permission_getStoreContractAddress', 366 params: 0, 367 inputFormatter: [] 368 }), 369 new web3._extend.Method({ 370 name: 'storeContractAbi', 371 call: 'permission_storeContractAbi', 372 params: 4, 373 inputFormatter: [web3._extend.formatters.inputAddressFormatter,null,null,web3._extend.formatters.inputAddressFormatter] 374 }), 375 new web3._extend.Method({ 376 name: 'getContractAbi', 377 call: 'permission_getContractAbi', 378 params: 2, 379 inputFormatter: [null,web3._extend.formatters.inputAddressFormatter] 380 }), 381 new web3._extend.Method({ 382 name: 'updateNodeName', 383 call: 'permission_updateNodeName', 384 params: 3, 385 inputFormatter: [null,null,web3._extend.formatters.inputAddressFormatter] 386 }), 387 new web3._extend.Method({ 388 name: 'getAdminCount', 389 call: 'permission_getAdminCount', 390 params: 0, 391 inputFormatter: [] 392 }), 393 new web3._extend.Method({ 394 name: 'nodeExists', 395 call: 'permission_nodeExists', 396 params: 1, 397 inputFormatter: [null] 398 }) 399 ], 400 properties: 401 [ 402 new web3._extend.Property({ 403 name: 'retreive', 404 getter: 'permission_retreive' 405 }), 406 ] 407 });` 408 409 const ChequebookJs = ` 410 web3._extend({ 411 property: 'chequebook', 412 methods: [ 413 new web3._extend.Method({ 414 name: 'deposit', 415 call: 'chequebook_deposit', 416 params: 1, 417 inputFormatter: [null] 418 }), 419 new web3._extend.Property({ 420 name: 'balance', 421 getter: 'chequebook_balance', 422 outputFormatter: web3._extend.utils.toDecimal 423 }), 424 new web3._extend.Method({ 425 name: 'cash', 426 call: 'chequebook_cash', 427 params: 1, 428 inputFormatter: [null] 429 }), 430 new web3._extend.Method({ 431 name: 'issue', 432 call: 'chequebook_issue', 433 params: 2, 434 inputFormatter: [null, null] 435 }), 436 ] 437 }); 438 ` 439 440 const CliqueJs = ` 441 web3._extend({ 442 property: 'clique', 443 methods: [ 444 new web3._extend.Method({ 445 name: 'getSnapshot', 446 call: 'clique_getSnapshot', 447 params: 1, 448 inputFormatter: [web3._extend.utils.fromDecimal] 449 }), 450 new web3._extend.Method({ 451 name: 'getSnapshotAtHash', 452 call: 'clique_getSnapshotAtHash', 453 params: 1 454 }), 455 new web3._extend.Method({ 456 name: 'getSigners', 457 call: 'clique_getSigners', 458 params: 1, 459 inputFormatter: [web3._extend.utils.fromDecimal] 460 }), 461 new web3._extend.Method({ 462 name: 'getSignersAtHash', 463 call: 'clique_getSignersAtHash', 464 params: 1 465 }), 466 new web3._extend.Method({ 467 name: 'propose', 468 call: 'clique_propose', 469 params: 2 470 }), 471 new web3._extend.Method({ 472 name: 'discard', 473 call: 'clique_discard', 474 params: 1 475 }), 476 new web3._extend.Method({ 477 name: 'status', 478 call: 'clique_status', 479 params: 0 480 }), 481 ], 482 properties: [ 483 new web3._extend.Property({ 484 name: 'proposals', 485 getter: 'clique_proposals' 486 }), 487 ] 488 }); 489 ` 490 491 const EthashJs = ` 492 web3._extend({ 493 property: 'ethash', 494 methods: [ 495 new web3._extend.Method({ 496 name: 'getWork', 497 call: 'ethash_getWork', 498 params: 0 499 }), 500 new web3._extend.Method({ 501 name: 'getHashrate', 502 call: 'ethash_getHashrate', 503 params: 0 504 }), 505 new web3._extend.Method({ 506 name: 'submitWork', 507 call: 'ethash_submitWork', 508 params: 3, 509 }), 510 new web3._extend.Method({ 511 name: 'submitHashRate', 512 call: 'ethash_submitHashRate', 513 params: 2, 514 }), 515 ] 516 }); 517 ` 518 519 const AdminJs = ` 520 web3._extend({ 521 property: 'admin', 522 methods: [ 523 //new web3._extend.Method({ 524 // name: 'addPeer', 525 // call: 'admin_addPeer', 526 // params: 1 527 //}), 528 //new web3._extend.Method({ 529 // name: 'removePeer', 530 // call: 'admin_removePeer', 531 // params: 1 532 //}), 533 new web3._extend.Method({ 534 name: 'addTrustedPeer', 535 call: 'admin_addTrustedPeer', 536 params: 1 537 }), 538 new web3._extend.Method({ 539 name: 'removeTrustedPeer', 540 call: 'admin_removeTrustedPeer', 541 params: 1 542 }), 543 new web3._extend.Method({ 544 name: 'exportChain', 545 call: 'admin_exportChain', 546 params: 1, 547 inputFormatter: [null] 548 }), 549 new web3._extend.Method({ 550 name: 'importChain', 551 call: 'admin_importChain', 552 params: 1 553 }), 554 new web3._extend.Method({ 555 name: 'sleepBlocks', 556 call: 'admin_sleepBlocks', 557 params: 2 558 }), 559 new web3._extend.Method({ 560 name: 'startRPC', 561 call: 'admin_startRPC', 562 params: 4, 563 inputFormatter: [null, null, null, null] 564 }), 565 new web3._extend.Method({ 566 name: 'stopRPC', 567 call: 'admin_stopRPC' 568 }), 569 new web3._extend.Method({ 570 name: 'startWS', 571 call: 'admin_startWS', 572 params: 4, 573 inputFormatter: [null, null, null, null] 574 }), 575 new web3._extend.Method({ 576 name: 'stopWS', 577 call: 'admin_stopWS' 578 }), 579 ], 580 properties: [ 581 new web3._extend.Property({ 582 name: 'nodeInfo', 583 getter: 'admin_nodeInfo' 584 }), 585 new web3._extend.Property({ 586 name: 'peers', 587 getter: 'admin_peers' 588 }), 589 new web3._extend.Property({ 590 name: 'datadir', 591 getter: 'admin_datadir' 592 }), 593 ] 594 }); 595 ` 596 597 const DebugJs = ` 598 web3._extend({ 599 property: 'debug', 600 methods: [ 601 new web3._extend.Method({ 602 name: 'accountRange', 603 call: 'debug_accountRange', 604 params: 2 605 }), 606 new web3._extend.Method({ 607 name: 'printBlock', 608 call: 'debug_printBlock', 609 params: 1 610 }), 611 new web3._extend.Method({ 612 name: 'getBlockRlp', 613 call: 'debug_getBlockRlp', 614 params: 1 615 }), 616 new web3._extend.Method({ 617 name: 'testSignCliqueBlock', 618 call: 'debug_testSignCliqueBlock', 619 params: 2, 620 inputFormatters: [web3._extend.formatters.inputAddressFormatter, null], 621 }), 622 new web3._extend.Method({ 623 name: 'setHead', 624 call: 'debug_setHead', 625 params: 1 626 }), 627 new web3._extend.Method({ 628 name: 'seedHash', 629 call: 'debug_seedHash', 630 params: 1 631 }), 632 new web3._extend.Method({ 633 name: 'dumpBlock', 634 call: 'debug_dumpBlock', 635 params: 1 636 }), 637 new web3._extend.Method({ 638 name: 'chaindbProperty', 639 call: 'debug_chaindbProperty', 640 params: 1, 641 outputFormatter: console.log 642 }), 643 new web3._extend.Method({ 644 name: 'chaindbCompact', 645 call: 'debug_chaindbCompact', 646 }), 647 new web3._extend.Method({ 648 name: 'verbosity', 649 call: 'debug_verbosity', 650 params: 1 651 }), 652 new web3._extend.Method({ 653 name: 'vmodule', 654 call: 'debug_vmodule', 655 params: 1 656 }), 657 new web3._extend.Method({ 658 name: 'backtraceAt', 659 call: 'debug_backtraceAt', 660 params: 1, 661 }), 662 new web3._extend.Method({ 663 name: 'stacks', 664 call: 'debug_stacks', 665 params: 0, 666 outputFormatter: console.log 667 }), 668 new web3._extend.Method({ 669 name: 'freeOSMemory', 670 call: 'debug_freeOSMemory', 671 params: 0, 672 }), 673 new web3._extend.Method({ 674 name: 'setGCPercent', 675 call: 'debug_setGCPercent', 676 params: 1, 677 }), 678 new web3._extend.Method({ 679 name: 'memStats', 680 call: 'debug_memStats', 681 params: 0, 682 }), 683 new web3._extend.Method({ 684 name: 'gcStats', 685 call: 'debug_gcStats', 686 params: 0, 687 }), 688 new web3._extend.Method({ 689 name: 'cpuProfile', 690 call: 'debug_cpuProfile', 691 params: 2 692 }), 693 new web3._extend.Method({ 694 name: 'startCPUProfile', 695 call: 'debug_startCPUProfile', 696 params: 1 697 }), 698 new web3._extend.Method({ 699 name: 'stopCPUProfile', 700 call: 'debug_stopCPUProfile', 701 params: 0 702 }), 703 new web3._extend.Method({ 704 name: 'goTrace', 705 call: 'debug_goTrace', 706 params: 2 707 }), 708 new web3._extend.Method({ 709 name: 'startGoTrace', 710 call: 'debug_startGoTrace', 711 params: 1 712 }), 713 new web3._extend.Method({ 714 name: 'stopGoTrace', 715 call: 'debug_stopGoTrace', 716 params: 0 717 }), 718 new web3._extend.Method({ 719 name: 'blockProfile', 720 call: 'debug_blockProfile', 721 params: 2 722 }), 723 new web3._extend.Method({ 724 name: 'setBlockProfileRate', 725 call: 'debug_setBlockProfileRate', 726 params: 1 727 }), 728 new web3._extend.Method({ 729 name: 'writeBlockProfile', 730 call: 'debug_writeBlockProfile', 731 params: 1 732 }), 733 new web3._extend.Method({ 734 name: 'mutexProfile', 735 call: 'debug_mutexProfile', 736 params: 2 737 }), 738 new web3._extend.Method({ 739 name: 'setMutexProfileFraction', 740 call: 'debug_setMutexProfileFraction', 741 params: 1 742 }), 743 new web3._extend.Method({ 744 name: 'writeMutexProfile', 745 call: 'debug_writeMutexProfile', 746 params: 1 747 }), 748 new web3._extend.Method({ 749 name: 'writeMemProfile', 750 call: 'debug_writeMemProfile', 751 params: 1 752 }), 753 new web3._extend.Method({ 754 name: 'traceBlock', 755 call: 'debug_traceBlock', 756 params: 2, 757 inputFormatter: [null, null] 758 }), 759 new web3._extend.Method({ 760 name: 'traceBlockFromFile', 761 call: 'debug_traceBlockFromFile', 762 params: 2, 763 inputFormatter: [null, null] 764 }), 765 new web3._extend.Method({ 766 name: 'traceBadBlock', 767 call: 'debug_traceBadBlock', 768 params: 1, 769 inputFormatter: [null] 770 }), 771 new web3._extend.Method({ 772 name: 'standardTraceBadBlockToFile', 773 call: 'debug_standardTraceBadBlockToFile', 774 params: 2, 775 inputFormatter: [null, null] 776 }), 777 new web3._extend.Method({ 778 name: 'standardTraceBlockToFile', 779 call: 'debug_standardTraceBlockToFile', 780 params: 2, 781 inputFormatter: [null, null] 782 }), 783 new web3._extend.Method({ 784 name: 'traceBlockByNumber', 785 call: 'debug_traceBlockByNumber', 786 params: 2, 787 inputFormatter: [null, null] 788 }), 789 new web3._extend.Method({ 790 name: 'traceBlockByHash', 791 call: 'debug_traceBlockByHash', 792 params: 2, 793 inputFormatter: [null, null] 794 }), 795 new web3._extend.Method({ 796 name: 'traceTransaction', 797 call: 'debug_traceTransaction', 798 params: 2, 799 inputFormatter: [null, null] 800 }), 801 new web3._extend.Method({ 802 name: 'preimage', 803 call: 'debug_preimage', 804 params: 1, 805 inputFormatter: [null] 806 }), 807 new web3._extend.Method({ 808 name: 'getBadBlocks', 809 call: 'debug_getBadBlocks', 810 params: 0, 811 }), 812 new web3._extend.Method({ 813 name: 'storageRangeAt', 814 call: 'debug_storageRangeAt', 815 params: 5, 816 }), 817 new web3._extend.Method({ 818 name: 'getModifiedAccountsByNumber', 819 call: 'debug_getModifiedAccountsByNumber', 820 params: 2, 821 inputFormatter: [null, null], 822 }), 823 new web3._extend.Method({ 824 name: 'getModifiedAccountsByHash', 825 call: 'debug_getModifiedAccountsByHash', 826 params: 2, 827 inputFormatter:[null, null], 828 }), 829 new web3._extend.Method({ 830 name: 'freezeClient', 831 call: 'debug_freezeClient', 832 params: 1, 833 }), 834 ], 835 properties: [] 836 }); 837 ` 838 839 const EthJs = ` 840 web3._extend({ 841 property: 'eth', 842 methods: [ 843 new web3._extend.Method({ 844 name: 'chainId', 845 call: 'eth_chainId', 846 params: 0 847 }), 848 new web3._extend.Method({ 849 name: 'sign', 850 call: 'eth_sign', 851 params: 2, 852 inputFormatter: [web3._extend.formatters.inputAddressFormatter, null] 853 }), 854 new web3._extend.Method({ 855 name: 'resend', 856 call: 'eth_resend', 857 params: 3, 858 inputFormatter: [web3._extend.formatters.inputTransactionFormatter, web3._extend.utils.fromDecimal, web3._extend.utils.fromDecimal] 859 }), 860 new web3._extend.Method({ 861 name: 'signTransaction', 862 call: 'eth_signTransaction', 863 params: 1, 864 inputFormatter: [web3._extend.formatters.inputTransactionFormatter] 865 }), 866 new web3._extend.Method({ 867 name: 'submitTransaction', 868 call: 'eth_submitTransaction', 869 params: 1, 870 inputFormatter: [web3._extend.formatters.inputTransactionFormatter] 871 }), 872 new web3._extend.Method({ 873 name: 'fillTransaction', 874 call: 'eth_fillTransaction', 875 params: 1, 876 inputFormatter: [web3._extend.formatters.inputTransactionFormatter] 877 }), 878 new web3._extend.Method({ 879 name: 'getHeaderByNumber', 880 call: 'eth_getHeaderByNumber', 881 params: 1 882 }), 883 new web3._extend.Method({ 884 name: 'getHeaderByHash', 885 call: 'eth_getHeaderByHash', 886 params: 1 887 }), 888 new web3._extend.Method({ 889 name: 'getBlockByNumber', 890 call: 'eth_getBlockByNumber', 891 params: 2 892 }), 893 new web3._extend.Method({ 894 name: 'getBlockByHash', 895 call: 'eth_getBlockByHash', 896 params: 2 897 }), 898 new web3._extend.Method({ 899 name: 'getLatestBlockNumber', 900 call: 'eth_getLatestBlockNumber', 901 params: 0 902 }), 903 new web3._extend.Method({ 904 name: 'getRawTransaction', 905 call: 'eth_getRawTransactionByHash', 906 params: 1 907 }), 908 new web3._extend.Method({ 909 name: 'getRawTransactionFromBlock', 910 call: function(args) { 911 return (web3._extend.utils.isString(args[0]) && args[0].indexOf('0x') === 0) ? 'eth_getRawTransactionByBlockHashAndIndex' : 'eth_getRawTransactionByBlockNumberAndIndex'; 912 }, 913 params: 2, 914 inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter, web3._extend.utils.toHex] 915 }), 916 new web3._extend.Method({ 917 name: 'getProof', 918 call: 'eth_getProof', 919 params: 3, 920 inputFormatter: [web3._extend.formatters.inputAddressFormatter, null, web3._extend.formatters.inputBlockNumberFormatter] 921 }), 922 ], 923 properties: [ 924 new web3._extend.Property({ 925 name: 'pendingTransactions', 926 getter: 'eth_pendingTransactions', 927 outputFormatter: function(txs) { 928 var formatted = []; 929 for (var i = 0; i < txs.length; i++) { 930 formatted.push(web3._extend.formatters.outputTransactionFormatter(txs[i])); 931 formatted[i].blockHash = null; 932 } 933 return formatted; 934 } 935 }), 936 ] 937 }); 938 ` 939 940 const MinerJs = ` 941 web3._extend({ 942 property: 'miner', 943 methods: [ 944 new web3._extend.Method({ 945 name: 'start', 946 call: 'miner_start', 947 params: 1, 948 inputFormatter: [null] 949 }), 950 new web3._extend.Method({ 951 name: 'stop', 952 call: 'miner_stop' 953 }), 954 new web3._extend.Method({ 955 name: 'setEtherbase', 956 call: 'miner_setEtherbase', 957 params: 1, 958 inputFormatter: [web3._extend.formatters.inputAddressFormatter] 959 }), 960 new web3._extend.Method({ 961 name: 'setExtra', 962 call: 'miner_setExtra', 963 params: 1 964 }), 965 new web3._extend.Method({ 966 name: 'setGasPrice', 967 call: 'miner_setGasPrice', 968 params: 1, 969 inputFormatter: [web3._extend.utils.fromDecimal] 970 }), 971 new web3._extend.Method({ 972 name: 'setRecommitInterval', 973 call: 'miner_setRecommitInterval', 974 params: 1, 975 }), 976 new web3._extend.Method({ 977 name: 'getHashrate', 978 call: 'miner_getHashrate' 979 }), 980 ], 981 properties: [] 982 }); 983 ` 984 985 const NetJs = ` 986 web3._extend({ 987 property: 'net', 988 methods: [], 989 properties: [ 990 new web3._extend.Property({ 991 name: 'version', 992 getter: 'net_version' 993 }), 994 ] 995 }); 996 ` 997 998 const PersonalJs = ` 999 web3._extend({ 1000 property: 'personal', 1001 methods: [ 1002 new web3._extend.Method({ 1003 name: 'importRawKey', 1004 call: 'personal_importRawKey', 1005 params: 2 1006 }), 1007 new web3._extend.Method({ 1008 name: 'sign', 1009 call: 'personal_sign', 1010 params: 3, 1011 inputFormatter: [null, web3._extend.formatters.inputAddressFormatter, null] 1012 }), 1013 new web3._extend.Method({ 1014 name: 'ecRecover', 1015 call: 'personal_ecRecover', 1016 params: 2 1017 }), 1018 new web3._extend.Method({ 1019 name: 'openWallet', 1020 call: 'personal_openWallet', 1021 params: 2 1022 }), 1023 new web3._extend.Method({ 1024 name: 'deriveAccount', 1025 call: 'personal_deriveAccount', 1026 params: 3 1027 }), 1028 new web3._extend.Method({ 1029 name: 'signTransaction', 1030 call: 'personal_signTransaction', 1031 params: 2, 1032 inputFormatter: [web3._extend.formatters.inputTransactionFormatter, null] 1033 }), 1034 new web3._extend.Method({ 1035 name: 'unpair', 1036 call: 'personal_unpair', 1037 params: 2 1038 }), 1039 new web3._extend.Method({ 1040 name: 'initializeWallet', 1041 call: 'personal_initializeWallet', 1042 params: 1 1043 }) 1044 ], 1045 properties: [ 1046 new web3._extend.Property({ 1047 name: 'listWallets', 1048 getter: 'personal_listWallets' 1049 }), 1050 ] 1051 }) 1052 ` 1053 1054 const RpcJs = ` 1055 web3._extend({ 1056 property: 'rpc', 1057 methods: [], 1058 properties: [ 1059 new web3._extend.Property({ 1060 name: 'modules', 1061 getter: 'rpc_modules' 1062 }), 1063 ] 1064 }); 1065 ` 1066 1067 const ShhJs = ` 1068 web3._extend({ 1069 property: 'shh', 1070 methods: [ 1071 ], 1072 properties: 1073 [ 1074 new web3._extend.Property({ 1075 name: 'version', 1076 getter: 'shh_version', 1077 outputFormatter: web3._extend.utils.toDecimal 1078 }), 1079 new web3._extend.Property({ 1080 name: 'info', 1081 getter: 'shh_info' 1082 }), 1083 ] 1084 }); 1085 ` 1086 1087 const SwarmfsJs = ` 1088 web3._extend({ 1089 property: 'swarmfs', 1090 methods: 1091 [ 1092 new web3._extend.Method({ 1093 name: 'mount', 1094 call: 'swarmfs_mount', 1095 params: 2 1096 }), 1097 new web3._extend.Method({ 1098 name: 'unmount', 1099 call: 'swarmfs_unmount', 1100 params: 1 1101 }), 1102 new web3._extend.Method({ 1103 name: 'listmounts', 1104 call: 'swarmfs_listmounts', 1105 params: 0 1106 }), 1107 ] 1108 }); 1109 ` 1110 1111 const TxpoolJs = ` 1112 web3._extend({ 1113 property: 'txpool', 1114 methods: [], 1115 properties: 1116 [ 1117 new web3._extend.Property({ 1118 name: 'content', 1119 getter: 'txpool_content' 1120 }), 1121 new web3._extend.Property({ 1122 name: 'inspect', 1123 getter: 'txpool_inspect' 1124 }), 1125 new web3._extend.Property({ 1126 name: 'status', 1127 getter: 'txpool_status', 1128 outputFormatter: function(status) { 1129 status.pending = web3._extend.utils.toDecimal(status.pending); 1130 status.queued = web3._extend.utils.toDecimal(status.queued); 1131 return status; 1132 } 1133 }), 1134 ] 1135 }); 1136 ` 1137 1138 const AccountingJs = ` 1139 web3._extend({ 1140 property: 'accounting', 1141 methods: [ 1142 new web3._extend.Property({ 1143 name: 'balance', 1144 getter: 'account_balance' 1145 }), 1146 new web3._extend.Property({ 1147 name: 'balanceCredit', 1148 getter: 'account_balanceCredit' 1149 }), 1150 new web3._extend.Property({ 1151 name: 'balanceDebit', 1152 getter: 'account_balanceDebit' 1153 }), 1154 new web3._extend.Property({ 1155 name: 'bytesCredit', 1156 getter: 'account_bytesCredit' 1157 }), 1158 new web3._extend.Property({ 1159 name: 'bytesDebit', 1160 getter: 'account_bytesDebit' 1161 }), 1162 new web3._extend.Property({ 1163 name: 'msgCredit', 1164 getter: 'account_msgCredit' 1165 }), 1166 new web3._extend.Property({ 1167 name: 'msgDebit', 1168 getter: 'account_msgDebit' 1169 }), 1170 new web3._extend.Property({ 1171 name: 'peerDrops', 1172 getter: 'account_peerDrops' 1173 }), 1174 new web3._extend.Property({ 1175 name: 'selfDrops', 1176 getter: 'account_selfDrops' 1177 }), 1178 ] 1179 }); 1180 ` 1181 1182 const LESJs = ` 1183 web3._extend({ 1184 property: 'les', 1185 methods: 1186 [ 1187 new web3._extend.Method({ 1188 name: 'getCheckpoint', 1189 call: 'les_getCheckpoint', 1190 params: 1 1191 }), 1192 new web3._extend.Method({ 1193 name: 'clientInfo', 1194 call: 'les_clientInfo', 1195 params: 1 1196 }), 1197 new web3._extend.Method({ 1198 name: 'priorityClientInfo', 1199 call: 'les_priorityClientInfo', 1200 params: 3 1201 }), 1202 new web3._extend.Method({ 1203 name: 'setClientParams', 1204 call: 'les_setClientParams', 1205 params: 2 1206 }), 1207 new web3._extend.Method({ 1208 name: 'setDefaultParams', 1209 call: 'les_setDefaultParams', 1210 params: 1 1211 }), 1212 new web3._extend.Method({ 1213 name: 'addBalance', 1214 call: 'les_addBalance', 1215 params: 3 1216 }), 1217 ], 1218 properties: 1219 [ 1220 new web3._extend.Property({ 1221 name: 'latestCheckpoint', 1222 getter: 'les_latestCheckpoint' 1223 }), 1224 new web3._extend.Property({ 1225 name: 'checkpointContractAddress', 1226 getter: 'les_getCheckpointContractAddress' 1227 }), 1228 new web3._extend.Property({ 1229 name: 'serverInfo', 1230 getter: 'les_serverInfo' 1231 }), 1232 ] 1233 }); 1234 `