web3ext.go 21 KB

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