web3ext.go 20 KB

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