github.com/Evanesco-Labs/go-evanesco@v1.0.1/internal/web3ext/web3ext.go (about) 1 // Copyright 2015 The go-ethereum Authors 2 // This file is part of the go-ethereum library. 3 // 4 // The go-ethereum 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-ethereum 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-ethereum 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 "vflux": VfluxJs, 37 } 38 39 const ChequebookJs = ` 40 web3._extend({ 41 property: 'chequebook', 42 methods: [ 43 new web3._extend.Method({ 44 name: 'deposit', 45 call: 'chequebook_deposit', 46 params: 1, 47 inputFormatter: [null] 48 }), 49 new web3._extend.Property({ 50 name: 'balance', 51 getter: 'chequebook_balance', 52 outputFormatter: web3._extend.utils.toDecimal 53 }), 54 new web3._extend.Method({ 55 name: 'cash', 56 call: 'chequebook_cash', 57 params: 1, 58 inputFormatter: [null] 59 }), 60 new web3._extend.Method({ 61 name: 'issue', 62 call: 'chequebook_issue', 63 params: 2, 64 inputFormatter: [null, null] 65 }), 66 ] 67 }); 68 ` 69 70 const CliqueJs = ` 71 web3._extend({ 72 property: 'clique', 73 methods: [ 74 new web3._extend.Method({ 75 name: 'getSnapshot', 76 call: 'clique_getSnapshot', 77 params: 1, 78 inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter] 79 }), 80 new web3._extend.Method({ 81 name: 'getSnapshotAtHash', 82 call: 'clique_getSnapshotAtHash', 83 params: 1 84 }), 85 new web3._extend.Method({ 86 name: 'getSigners', 87 call: 'clique_getSigners', 88 params: 1, 89 inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter] 90 }), 91 new web3._extend.Method({ 92 name: 'getSignersAtHash', 93 call: 'clique_getSignersAtHash', 94 params: 1 95 }), 96 new web3._extend.Method({ 97 name: 'propose', 98 call: 'clique_propose', 99 params: 2 100 }), 101 new web3._extend.Method({ 102 name: 'discard', 103 call: 'clique_discard', 104 params: 1 105 }), 106 new web3._extend.Method({ 107 name: 'status', 108 call: 'clique_status', 109 params: 0 110 }), 111 ], 112 properties: [ 113 new web3._extend.Property({ 114 name: 'proposals', 115 getter: 'clique_proposals' 116 }), 117 ] 118 }); 119 ` 120 121 const EthashJs = ` 122 web3._extend({ 123 property: 'ethash', 124 methods: [ 125 new web3._extend.Method({ 126 name: 'getWork', 127 call: 'ethash_getWork', 128 params: 0 129 }), 130 new web3._extend.Method({ 131 name: 'getHashrate', 132 call: 'ethash_getHashrate', 133 params: 0 134 }), 135 new web3._extend.Method({ 136 name: 'submitWork', 137 call: 'ethash_submitWork', 138 params: 3, 139 }), 140 new web3._extend.Method({ 141 name: 'submitHashrate', 142 call: 'ethash_submitHashrate', 143 params: 2, 144 }), 145 ] 146 }); 147 ` 148 149 const AdminJs = ` 150 web3._extend({ 151 property: 'admin', 152 methods: [ 153 new web3._extend.Method({ 154 name: 'addPeer', 155 call: 'admin_addPeer', 156 params: 1 157 }), 158 new web3._extend.Method({ 159 name: 'removePeer', 160 call: 'admin_removePeer', 161 params: 1 162 }), 163 new web3._extend.Method({ 164 name: 'addTrustedPeer', 165 call: 'admin_addTrustedPeer', 166 params: 1 167 }), 168 new web3._extend.Method({ 169 name: 'removeTrustedPeer', 170 call: 'admin_removeTrustedPeer', 171 params: 1 172 }), 173 new web3._extend.Method({ 174 name: 'exportChain', 175 call: 'admin_exportChain', 176 params: 3, 177 inputFormatter: [null, null, null] 178 }), 179 new web3._extend.Method({ 180 name: 'importChain', 181 call: 'admin_importChain', 182 params: 1 183 }), 184 new web3._extend.Method({ 185 name: 'sleepBlocks', 186 call: 'admin_sleepBlocks', 187 params: 2 188 }), 189 new web3._extend.Method({ 190 name: 'startHTTP', 191 call: 'admin_startHTTP', 192 params: 5, 193 inputFormatter: [null, null, null, null, null] 194 }), 195 new web3._extend.Method({ 196 name: 'stopHTTP', 197 call: 'admin_stopHTTP' 198 }), 199 // This method is deprecated. 200 new web3._extend.Method({ 201 name: 'startRPC', 202 call: 'admin_startRPC', 203 params: 5, 204 inputFormatter: [null, null, null, null, null] 205 }), 206 // This method is deprecated. 207 new web3._extend.Method({ 208 name: 'stopRPC', 209 call: 'admin_stopRPC' 210 }), 211 new web3._extend.Method({ 212 name: 'startWS', 213 call: 'admin_startWS', 214 params: 4, 215 inputFormatter: [null, null, null, null] 216 }), 217 new web3._extend.Method({ 218 name: 'stopWS', 219 call: 'admin_stopWS' 220 }), 221 ], 222 properties: [ 223 new web3._extend.Property({ 224 name: 'nodeInfo', 225 getter: 'admin_nodeInfo' 226 }), 227 new web3._extend.Property({ 228 name: 'peers', 229 getter: 'admin_peers' 230 }), 231 new web3._extend.Property({ 232 name: 'datadir', 233 getter: 'admin_datadir' 234 }), 235 ] 236 }); 237 ` 238 239 const DebugJs = ` 240 web3._extend({ 241 property: 'debug', 242 methods: [ 243 new web3._extend.Method({ 244 name: 'accountRange', 245 call: 'debug_accountRange', 246 params: 6, 247 inputFormatter: [web3._extend.formatters.inputDefaultBlockNumberFormatter, null, null, null, null, null], 248 }), 249 new web3._extend.Method({ 250 name: 'printBlock', 251 call: 'debug_printBlock', 252 params: 1, 253 outputFormatter: console.log 254 }), 255 new web3._extend.Method({ 256 name: 'getBlockRlp', 257 call: 'debug_getBlockRlp', 258 params: 1 259 }), 260 new web3._extend.Method({ 261 name: 'testSignCliqueBlock', 262 call: 'debug_testSignCliqueBlock', 263 params: 2, 264 inputFormatter: [web3._extend.formatters.inputAddressFormatter, null], 265 }), 266 new web3._extend.Method({ 267 name: 'setHead', 268 call: 'debug_setHead', 269 params: 1 270 }), 271 new web3._extend.Method({ 272 name: 'seedHash', 273 call: 'debug_seedHash', 274 params: 1 275 }), 276 new web3._extend.Method({ 277 name: 'dumpBlock', 278 call: 'debug_dumpBlock', 279 params: 1, 280 inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter] 281 }), 282 new web3._extend.Method({ 283 name: 'chaindbProperty', 284 call: 'debug_chaindbProperty', 285 params: 1, 286 outputFormatter: console.log 287 }), 288 new web3._extend.Method({ 289 name: 'chaindbCompact', 290 call: 'debug_chaindbCompact', 291 }), 292 new web3._extend.Method({ 293 name: 'verbosity', 294 call: 'debug_verbosity', 295 params: 1 296 }), 297 new web3._extend.Method({ 298 name: 'vmodule', 299 call: 'debug_vmodule', 300 params: 1 301 }), 302 new web3._extend.Method({ 303 name: 'backtraceAt', 304 call: 'debug_backtraceAt', 305 params: 1, 306 }), 307 new web3._extend.Method({ 308 name: 'stacks', 309 call: 'debug_stacks', 310 params: 0, 311 outputFormatter: console.log 312 }), 313 new web3._extend.Method({ 314 name: 'freeOSMemory', 315 call: 'debug_freeOSMemory', 316 params: 0, 317 }), 318 new web3._extend.Method({ 319 name: 'setGCPercent', 320 call: 'debug_setGCPercent', 321 params: 1, 322 }), 323 new web3._extend.Method({ 324 name: 'memStats', 325 call: 'debug_memStats', 326 params: 0, 327 }), 328 new web3._extend.Method({ 329 name: 'gcStats', 330 call: 'debug_gcStats', 331 params: 0, 332 }), 333 new web3._extend.Method({ 334 name: 'cpuProfile', 335 call: 'debug_cpuProfile', 336 params: 2 337 }), 338 new web3._extend.Method({ 339 name: 'startCPUProfile', 340 call: 'debug_startCPUProfile', 341 params: 1 342 }), 343 new web3._extend.Method({ 344 name: 'stopCPUProfile', 345 call: 'debug_stopCPUProfile', 346 params: 0 347 }), 348 new web3._extend.Method({ 349 name: 'goTrace', 350 call: 'debug_goTrace', 351 params: 2 352 }), 353 new web3._extend.Method({ 354 name: 'startGoTrace', 355 call: 'debug_startGoTrace', 356 params: 1 357 }), 358 new web3._extend.Method({ 359 name: 'stopGoTrace', 360 call: 'debug_stopGoTrace', 361 params: 0 362 }), 363 new web3._extend.Method({ 364 name: 'blockProfile', 365 call: 'debug_blockProfile', 366 params: 2 367 }), 368 new web3._extend.Method({ 369 name: 'setBlockProfileRate', 370 call: 'debug_setBlockProfileRate', 371 params: 1 372 }), 373 new web3._extend.Method({ 374 name: 'writeBlockProfile', 375 call: 'debug_writeBlockProfile', 376 params: 1 377 }), 378 new web3._extend.Method({ 379 name: 'mutexProfile', 380 call: 'debug_mutexProfile', 381 params: 2 382 }), 383 new web3._extend.Method({ 384 name: 'setMutexProfileFraction', 385 call: 'debug_setMutexProfileFraction', 386 params: 1 387 }), 388 new web3._extend.Method({ 389 name: 'writeMutexProfile', 390 call: 'debug_writeMutexProfile', 391 params: 1 392 }), 393 new web3._extend.Method({ 394 name: 'writeMemProfile', 395 call: 'debug_writeMemProfile', 396 params: 1 397 }), 398 new web3._extend.Method({ 399 name: 'traceBlock', 400 call: 'debug_traceBlock', 401 params: 2, 402 inputFormatter: [null, null] 403 }), 404 new web3._extend.Method({ 405 name: 'traceBlockFromFile', 406 call: 'debug_traceBlockFromFile', 407 params: 2, 408 inputFormatter: [null, null] 409 }), 410 new web3._extend.Method({ 411 name: 'traceBadBlock', 412 call: 'debug_traceBadBlock', 413 params: 1, 414 inputFormatter: [null] 415 }), 416 new web3._extend.Method({ 417 name: 'standardTraceBadBlockToFile', 418 call: 'debug_standardTraceBadBlockToFile', 419 params: 2, 420 inputFormatter: [null, null] 421 }), 422 new web3._extend.Method({ 423 name: 'standardTraceBlockToFile', 424 call: 'debug_standardTraceBlockToFile', 425 params: 2, 426 inputFormatter: [null, null] 427 }), 428 new web3._extend.Method({ 429 name: 'traceBlockByNumber', 430 call: 'debug_traceBlockByNumber', 431 params: 2, 432 inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter, null] 433 }), 434 new web3._extend.Method({ 435 name: 'traceBlockByHash', 436 call: 'debug_traceBlockByHash', 437 params: 2, 438 inputFormatter: [null, null] 439 }), 440 new web3._extend.Method({ 441 name: 'traceTransaction', 442 call: 'debug_traceTransaction', 443 params: 2, 444 inputFormatter: [null, null] 445 }), 446 new web3._extend.Method({ 447 name: 'traceCall', 448 call: 'debug_traceCall', 449 params: 3, 450 inputFormatter: [null, null, null] 451 }), 452 new web3._extend.Method({ 453 name: 'preimage', 454 call: 'debug_preimage', 455 params: 1, 456 inputFormatter: [null] 457 }), 458 new web3._extend.Method({ 459 name: 'getBadBlocks', 460 call: 'debug_getBadBlocks', 461 params: 0, 462 }), 463 new web3._extend.Method({ 464 name: 'storageRangeAt', 465 call: 'debug_storageRangeAt', 466 params: 5, 467 }), 468 new web3._extend.Method({ 469 name: 'getModifiedAccountsByNumber', 470 call: 'debug_getModifiedAccountsByNumber', 471 params: 2, 472 inputFormatter: [null, null], 473 }), 474 new web3._extend.Method({ 475 name: 'getModifiedAccountsByHash', 476 call: 'debug_getModifiedAccountsByHash', 477 params: 2, 478 inputFormatter:[null, null], 479 }), 480 new web3._extend.Method({ 481 name: 'freezeClient', 482 call: 'debug_freezeClient', 483 params: 1, 484 }), 485 ], 486 properties: [] 487 }); 488 ` 489 490 const EthJs = ` 491 web3._extend({ 492 property: 'eth', 493 methods: [ 494 new web3._extend.Method({ 495 name: 'chainId', 496 call: 'eth_chainId', 497 params: 0 498 }), 499 new web3._extend.Method({ 500 name: 'sign', 501 call: 'eth_sign', 502 params: 2, 503 inputFormatter: [web3._extend.formatters.inputAddressFormatter, null] 504 }), 505 new web3._extend.Method({ 506 name: 'resend', 507 call: 'eth_resend', 508 params: 3, 509 inputFormatter: [web3._extend.formatters.inputTransactionFormatter, web3._extend.utils.fromDecimal, web3._extend.utils.fromDecimal] 510 }), 511 new web3._extend.Method({ 512 name: 'signTransaction', 513 call: 'eth_signTransaction', 514 params: 1, 515 inputFormatter: [web3._extend.formatters.inputTransactionFormatter] 516 }), 517 new web3._extend.Method({ 518 name: 'estimateGas', 519 call: 'eth_estimateGas', 520 params: 2, 521 inputFormatter: [web3._extend.formatters.inputCallFormatter, web3._extend.formatters.inputBlockNumberFormatter], 522 outputFormatter: web3._extend.utils.toDecimal 523 }), 524 new web3._extend.Method({ 525 name: 'submitTransaction', 526 call: 'eth_submitTransaction', 527 params: 1, 528 inputFormatter: [web3._extend.formatters.inputTransactionFormatter] 529 }), 530 new web3._extend.Method({ 531 name: 'fillTransaction', 532 call: 'eth_fillTransaction', 533 params: 1, 534 inputFormatter: [web3._extend.formatters.inputTransactionFormatter] 535 }), 536 new web3._extend.Method({ 537 name: 'getHeaderByNumber', 538 call: 'eth_getHeaderByNumber', 539 params: 1, 540 inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter] 541 }), 542 new web3._extend.Method({ 543 name: 'getHeaderByHash', 544 call: 'eth_getHeaderByHash', 545 params: 1 546 }), 547 new web3._extend.Method({ 548 name: 'getBlockByNumber', 549 call: 'eth_getBlockByNumber', 550 params: 2, 551 inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter, function (val) { return !!val; }] 552 }), 553 new web3._extend.Method({ 554 name: 'getBlockByHash', 555 call: 'eth_getBlockByHash', 556 params: 2, 557 inputFormatter: [null, function (val) { return !!val; }] 558 }), 559 new web3._extend.Method({ 560 name: 'getRawTransaction', 561 call: 'eth_getRawTransactionByHash', 562 params: 1 563 }), 564 new web3._extend.Method({ 565 name: 'getRawTransactionFromBlock', 566 call: function(args) { 567 return (web3._extend.utils.isString(args[0]) && args[0].indexOf('0x') === 0) ? 'eth_getRawTransactionByBlockHashAndIndex' : 'eth_getRawTransactionByBlockNumberAndIndex'; 568 }, 569 params: 2, 570 inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter, web3._extend.utils.toHex] 571 }), 572 new web3._extend.Method({ 573 name: 'getProof', 574 call: 'eth_getProof', 575 params: 3, 576 inputFormatter: [web3._extend.formatters.inputAddressFormatter, null, web3._extend.formatters.inputBlockNumberFormatter] 577 }), 578 new web3._extend.Method({ 579 name: 'createAccessList', 580 call: 'eth_createAccessList', 581 params: 2, 582 inputFormatter: [null, web3._extend.formatters.inputBlockNumberFormatter], 583 }), 584 new web3._extend.Method({ 585 name: 'feeHistory', 586 call: 'eth_feeHistory', 587 params: 3, 588 inputFormatter: [null, web3._extend.formatters.inputBlockNumberFormatter, null] 589 }), 590 ], 591 properties: [ 592 new web3._extend.Property({ 593 name: 'pendingTransactions', 594 getter: 'eth_pendingTransactions', 595 outputFormatter: function(txs) { 596 var formatted = []; 597 for (var i = 0; i < txs.length; i++) { 598 formatted.push(web3._extend.formatters.outputTransactionFormatter(txs[i])); 599 formatted[i].blockHash = null; 600 } 601 return formatted; 602 } 603 }), 604 new web3._extend.Property({ 605 name: 'maxPriorityFeePerGas', 606 getter: 'eth_maxPriorityFeePerGas', 607 outputFormatter: web3._extend.utils.toBigNumber 608 }), 609 ] 610 }); 611 ` 612 613 const MinerJs = ` 614 web3._extend({ 615 property: 'miner', 616 methods: [ 617 new web3._extend.Method({ 618 name: 'start', 619 call: 'miner_start', 620 params: 1, 621 inputFormatter: [null] 622 }), 623 new web3._extend.Method({ 624 name: 'stop', 625 call: 'miner_stop' 626 }), 627 new web3._extend.Method({ 628 name: 'setEtherbase', 629 call: 'miner_setEtherbase', 630 params: 1, 631 inputFormatter: [web3._extend.formatters.inputAddressFormatter] 632 }), 633 new web3._extend.Method({ 634 name: 'setExtra', 635 call: 'miner_setExtra', 636 params: 1 637 }), 638 new web3._extend.Method({ 639 name: 'setGasPrice', 640 call: 'miner_setGasPrice', 641 params: 1, 642 inputFormatter: [web3._extend.utils.fromDecimal] 643 }), 644 new web3._extend.Method({ 645 name: 'setRecommitInterval', 646 call: 'miner_setRecommitInterval', 647 params: 1, 648 }), 649 new web3._extend.Method({ 650 name: 'getHashrate', 651 call: 'miner_getHashrate' 652 }), 653 ], 654 properties: [] 655 }); 656 ` 657 658 const NetJs = ` 659 web3._extend({ 660 property: 'net', 661 methods: [], 662 properties: [ 663 new web3._extend.Property({ 664 name: 'version', 665 getter: 'net_version' 666 }), 667 ] 668 }); 669 ` 670 671 const PersonalJs = ` 672 web3._extend({ 673 property: 'personal', 674 methods: [ 675 new web3._extend.Method({ 676 name: 'importRawKey', 677 call: 'personal_importRawKey', 678 params: 2 679 }), 680 new web3._extend.Method({ 681 name: 'sign', 682 call: 'personal_sign', 683 params: 3, 684 inputFormatter: [null, web3._extend.formatters.inputAddressFormatter, null] 685 }), 686 new web3._extend.Method({ 687 name: 'ecRecover', 688 call: 'personal_ecRecover', 689 params: 2 690 }), 691 new web3._extend.Method({ 692 name: 'openWallet', 693 call: 'personal_openWallet', 694 params: 2 695 }), 696 new web3._extend.Method({ 697 name: 'deriveAccount', 698 call: 'personal_deriveAccount', 699 params: 3 700 }), 701 new web3._extend.Method({ 702 name: 'signTransaction', 703 call: 'personal_signTransaction', 704 params: 2, 705 inputFormatter: [web3._extend.formatters.inputTransactionFormatter, null] 706 }), 707 new web3._extend.Method({ 708 name: 'unpair', 709 call: 'personal_unpair', 710 params: 2 711 }), 712 new web3._extend.Method({ 713 name: 'initializeWallet', 714 call: 'personal_initializeWallet', 715 params: 1 716 }) 717 ], 718 properties: [ 719 new web3._extend.Property({ 720 name: 'listWallets', 721 getter: 'personal_listWallets' 722 }), 723 ] 724 }) 725 ` 726 727 const RpcJs = ` 728 web3._extend({ 729 property: 'rpc', 730 methods: [], 731 properties: [ 732 new web3._extend.Property({ 733 name: 'modules', 734 getter: 'rpc_modules' 735 }), 736 ] 737 }); 738 ` 739 740 const ShhJs = ` 741 web3._extend({ 742 property: 'shh', 743 methods: [ 744 ], 745 properties: 746 [ 747 new web3._extend.Property({ 748 name: 'version', 749 getter: 'shh_version', 750 outputFormatter: web3._extend.utils.toDecimal 751 }), 752 new web3._extend.Property({ 753 name: 'info', 754 getter: 'shh_info' 755 }), 756 ] 757 }); 758 ` 759 760 const SwarmfsJs = ` 761 web3._extend({ 762 property: 'swarmfs', 763 methods: 764 [ 765 new web3._extend.Method({ 766 name: 'mount', 767 call: 'swarmfs_mount', 768 params: 2 769 }), 770 new web3._extend.Method({ 771 name: 'unmount', 772 call: 'swarmfs_unmount', 773 params: 1 774 }), 775 new web3._extend.Method({ 776 name: 'listmounts', 777 call: 'swarmfs_listmounts', 778 params: 0 779 }), 780 ] 781 }); 782 ` 783 784 const TxpoolJs = ` 785 web3._extend({ 786 property: 'txpool', 787 methods: [], 788 properties: 789 [ 790 new web3._extend.Property({ 791 name: 'content', 792 getter: 'txpool_content' 793 }), 794 new web3._extend.Property({ 795 name: 'inspect', 796 getter: 'txpool_inspect' 797 }), 798 new web3._extend.Property({ 799 name: 'status', 800 getter: 'txpool_status', 801 outputFormatter: function(status) { 802 status.pending = web3._extend.utils.toDecimal(status.pending); 803 status.queued = web3._extend.utils.toDecimal(status.queued); 804 return status; 805 } 806 }), 807 ] 808 }); 809 ` 810 811 const AccountingJs = ` 812 web3._extend({ 813 property: 'accounting', 814 methods: [ 815 new web3._extend.Property({ 816 name: 'balance', 817 getter: 'account_balance' 818 }), 819 new web3._extend.Property({ 820 name: 'balanceCredit', 821 getter: 'account_balanceCredit' 822 }), 823 new web3._extend.Property({ 824 name: 'balanceDebit', 825 getter: 'account_balanceDebit' 826 }), 827 new web3._extend.Property({ 828 name: 'bytesCredit', 829 getter: 'account_bytesCredit' 830 }), 831 new web3._extend.Property({ 832 name: 'bytesDebit', 833 getter: 'account_bytesDebit' 834 }), 835 new web3._extend.Property({ 836 name: 'msgCredit', 837 getter: 'account_msgCredit' 838 }), 839 new web3._extend.Property({ 840 name: 'msgDebit', 841 getter: 'account_msgDebit' 842 }), 843 new web3._extend.Property({ 844 name: 'peerDrops', 845 getter: 'account_peerDrops' 846 }), 847 new web3._extend.Property({ 848 name: 'selfDrops', 849 getter: 'account_selfDrops' 850 }), 851 ] 852 }); 853 ` 854 855 const LESJs = ` 856 web3._extend({ 857 property: 'les', 858 methods: 859 [ 860 new web3._extend.Method({ 861 name: 'getCheckpoint', 862 call: 'les_getCheckpoint', 863 params: 1 864 }), 865 new web3._extend.Method({ 866 name: 'clientInfo', 867 call: 'les_clientInfo', 868 params: 1 869 }), 870 new web3._extend.Method({ 871 name: 'priorityClientInfo', 872 call: 'les_priorityClientInfo', 873 params: 3 874 }), 875 new web3._extend.Method({ 876 name: 'setClientParams', 877 call: 'les_setClientParams', 878 params: 2 879 }), 880 new web3._extend.Method({ 881 name: 'setDefaultParams', 882 call: 'les_setDefaultParams', 883 params: 1 884 }), 885 new web3._extend.Method({ 886 name: 'addBalance', 887 call: 'les_addBalance', 888 params: 2 889 }), 890 ], 891 properties: 892 [ 893 new web3._extend.Property({ 894 name: 'latestCheckpoint', 895 getter: 'les_latestCheckpoint' 896 }), 897 new web3._extend.Property({ 898 name: 'checkpointContractAddress', 899 getter: 'les_getCheckpointContractAddress' 900 }), 901 new web3._extend.Property({ 902 name: 'serverInfo', 903 getter: 'les_serverInfo' 904 }), 905 ] 906 }); 907 ` 908 909 const VfluxJs = ` 910 web3._extend({ 911 property: 'vflux', 912 methods: 913 [ 914 new web3._extend.Method({ 915 name: 'distribution', 916 call: 'vflux_distribution', 917 params: 2 918 }), 919 new web3._extend.Method({ 920 name: 'timeout', 921 call: 'vflux_timeout', 922 params: 2 923 }), 924 new web3._extend.Method({ 925 name: 'value', 926 call: 'vflux_value', 927 params: 2 928 }), 929 ], 930 properties: 931 [ 932 new web3._extend.Property({ 933 name: 'requestStats', 934 getter: 'vflux_requestStats' 935 }), 936 ] 937 }); 938 `