mainnet-js 0.5.9 → 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (684) hide show
  1. package/dist/index.html +9 -1
  2. package/dist/mainnet-1.0.0-rc.1.js +2928 -0
  3. package/dist/module/chain.d.ts +1 -0
  4. package/dist/module/chain.d.ts.map +1 -0
  5. package/dist/module/cli.d.ts +1 -0
  6. package/dist/module/cli.d.ts.map +1 -0
  7. package/dist/module/cli.js +2 -2
  8. package/dist/module/cli.js.map +1 -1
  9. package/dist/module/constant.d.ts +1 -0
  10. package/dist/module/constant.d.ts.map +1 -0
  11. package/dist/module/db/ExchangeRateProvider.d.ts +2 -1
  12. package/dist/module/db/ExchangeRateProvider.d.ts.map +1 -0
  13. package/dist/module/db/IndexedDBProvider.d.ts +3 -2
  14. package/dist/module/db/IndexedDBProvider.d.ts.map +1 -0
  15. package/dist/module/db/SqlProvider.d.ts +7 -8
  16. package/dist/module/db/SqlProvider.d.ts.map +1 -0
  17. package/dist/module/db/SqlProvider.js +10 -8
  18. package/dist/module/db/SqlProvider.js.map +1 -1
  19. package/dist/module/db/StorageProvider.d.ts +2 -1
  20. package/dist/module/db/StorageProvider.d.ts.map +1 -0
  21. package/dist/module/db/getStorageProvider.d.ts +3 -0
  22. package/dist/module/db/getStorageProvider.d.ts.map +1 -0
  23. package/dist/module/db/getStorageProvider.js +19 -0
  24. package/dist/module/db/getStorageProvider.js.map +1 -0
  25. package/dist/module/db/index.d.ts +4 -3
  26. package/dist/module/db/index.d.ts.map +1 -0
  27. package/dist/module/db/index.js +2 -2
  28. package/dist/module/db/index.js.map +1 -1
  29. package/dist/module/db/interface.d.ts +1 -0
  30. package/dist/module/db/interface.d.ts.map +1 -0
  31. package/dist/module/db/util.d.ts +2 -3
  32. package/dist/module/db/util.d.ts.map +1 -0
  33. package/dist/module/db/util.js +0 -17
  34. package/dist/module/db/util.js.map +1 -1
  35. package/dist/module/enum.d.ts +1 -0
  36. package/dist/module/enum.d.ts.map +1 -0
  37. package/dist/module/history/electrumTransformer.d.ts +3 -2
  38. package/dist/module/history/electrumTransformer.d.ts.map +1 -0
  39. package/dist/module/history/electrumTransformer.js +11 -11
  40. package/dist/module/history/electrumTransformer.js.map +1 -1
  41. package/dist/module/history/interface.d.ts +2 -1
  42. package/dist/module/history/interface.d.ts.map +1 -0
  43. package/dist/module/index.d.ts +26 -21
  44. package/dist/module/index.d.ts.map +1 -0
  45. package/dist/module/index.js +25 -17
  46. package/dist/module/index.js.map +1 -1
  47. package/dist/module/interface.d.ts +14 -0
  48. package/dist/module/interface.d.ts.map +1 -0
  49. package/dist/module/interface.js +5 -0
  50. package/dist/module/interface.js.map +1 -1
  51. package/dist/module/message/index.d.ts +3 -2
  52. package/dist/module/message/index.d.ts.map +1 -0
  53. package/dist/module/message/index.js +2 -2
  54. package/dist/module/message/index.js.map +1 -1
  55. package/dist/module/message/interface.d.ts +1 -0
  56. package/dist/module/message/interface.d.ts.map +1 -0
  57. package/dist/module/message/signed.d.ts +2 -1
  58. package/dist/module/message/signed.d.ts.map +1 -0
  59. package/dist/module/message/signed.js +10 -4
  60. package/dist/module/message/signed.js.map +1 -1
  61. package/dist/module/mine/index.d.ts +2 -1
  62. package/dist/module/mine/index.d.ts.map +1 -0
  63. package/dist/module/mine/index.js +1 -1
  64. package/dist/module/mine/index.js.map +1 -1
  65. package/dist/module/mine/mine.d.ts +1 -0
  66. package/dist/module/mine/mine.d.ts.map +1 -0
  67. package/dist/module/mine/mine.js +3 -3
  68. package/dist/module/mine/mine.js.map +1 -1
  69. package/dist/module/network/Connection.d.ts +3 -2
  70. package/dist/module/network/Connection.d.ts.map +1 -0
  71. package/dist/module/network/Connection.js +3 -3
  72. package/dist/module/network/Connection.js.map +1 -1
  73. package/dist/module/network/ElectrumNetworkProvider.d.ts +8 -5
  74. package/dist/module/network/ElectrumNetworkProvider.d.ts.map +1 -0
  75. package/dist/module/network/ElectrumNetworkProvider.js +59 -13
  76. package/dist/module/network/ElectrumNetworkProvider.js.map +1 -1
  77. package/dist/module/network/NetworkProvider.d.ts +2 -1
  78. package/dist/module/network/NetworkProvider.d.ts.map +1 -0
  79. package/dist/module/network/configuration.d.ts +8 -10
  80. package/dist/module/network/configuration.d.ts.map +1 -0
  81. package/dist/module/network/configuration.js +29 -17
  82. package/dist/module/network/configuration.js.map +1 -1
  83. package/dist/module/network/constant.d.ts +1 -0
  84. package/dist/module/network/constant.d.ts.map +1 -0
  85. package/dist/module/network/constant.js +8 -4
  86. package/dist/module/network/constant.js.map +1 -1
  87. package/dist/module/network/default.d.ts +4 -3
  88. package/dist/module/network/default.d.ts.map +1 -0
  89. package/dist/module/network/default.js +7 -7
  90. package/dist/module/network/default.js.map +1 -1
  91. package/dist/module/network/getRelayFeeCache.d.ts +2 -1
  92. package/dist/module/network/getRelayFeeCache.d.ts.map +1 -0
  93. package/dist/module/network/getRelayFeeCache.js +2 -2
  94. package/dist/module/network/getRelayFeeCache.js.map +1 -1
  95. package/dist/module/network/index.d.ts +3 -2
  96. package/dist/module/network/index.d.ts.map +1 -0
  97. package/dist/module/network/index.js +2 -2
  98. package/dist/module/network/index.js.map +1 -1
  99. package/dist/module/network/interface.d.ts +1 -0
  100. package/dist/module/network/interface.d.ts.map +1 -0
  101. package/dist/module/network/util.d.ts +2 -1
  102. package/dist/module/network/util.d.ts.map +1 -0
  103. package/dist/module/qr/Qr.d.ts +2 -1
  104. package/dist/module/qr/Qr.d.ts.map +1 -0
  105. package/dist/module/qr/Qr.js +2 -2
  106. package/dist/module/qr/Qr.js.map +1 -1
  107. package/dist/module/qr/interface.d.ts +1 -0
  108. package/dist/module/qr/interface.d.ts.map +1 -0
  109. package/dist/module/rate/ExchangeRate.d.ts +1 -0
  110. package/dist/module/rate/ExchangeRate.d.ts.map +1 -0
  111. package/dist/module/rate/ExchangeRate.js +5 -5
  112. package/dist/module/rate/ExchangeRate.js.map +1 -1
  113. package/dist/module/slp/GsppProvider.d.ts +4 -3
  114. package/dist/module/slp/GsppProvider.d.ts.map +1 -0
  115. package/dist/module/slp/GsppProvider.js +7 -7
  116. package/dist/module/slp/GsppProvider.js.map +1 -1
  117. package/dist/module/slp/SlpDbProvider.d.ts +4 -3
  118. package/dist/module/slp/SlpDbProvider.d.ts.map +1 -0
  119. package/dist/module/slp/SlpDbProvider.js +8 -8
  120. package/dist/module/slp/SlpDbProvider.js.map +1 -1
  121. package/dist/module/slp/SlpDbTemplates.d.ts +1 -0
  122. package/dist/module/slp/SlpDbTemplates.d.ts.map +1 -0
  123. package/dist/module/slp/SlpLibAuth.d.ts +7 -14
  124. package/dist/module/slp/SlpLibAuth.d.ts.map +1 -0
  125. package/dist/module/slp/SlpLibAuth.js +48 -39
  126. package/dist/module/slp/SlpLibAuth.js.map +1 -1
  127. package/dist/module/slp/SlpProvider.d.ts +2 -1
  128. package/dist/module/slp/SlpProvider.d.ts.map +1 -0
  129. package/dist/module/slp/SlpProvider.js.map +1 -1
  130. package/dist/module/slp/index.d.ts +5 -4
  131. package/dist/module/slp/index.d.ts.map +1 -0
  132. package/dist/module/slp/index.js +3 -3
  133. package/dist/module/slp/index.js.map +1 -1
  134. package/dist/module/slp/interface.d.ts +2 -1
  135. package/dist/module/slp/interface.d.ts.map +1 -0
  136. package/dist/module/test/axios.d.ts +3 -0
  137. package/dist/module/test/axios.d.ts.map +1 -0
  138. package/dist/module/test/axios.js +35 -0
  139. package/dist/module/test/axios.js.map +1 -0
  140. package/dist/module/test/expect.d.ts +6 -1
  141. package/dist/module/test/expect.d.ts.map +1 -0
  142. package/dist/module/test/expect.js +22 -1
  143. package/dist/module/test/expect.js.map +1 -1
  144. package/dist/module/transaction/Wif.d.ts +19 -16
  145. package/dist/module/transaction/Wif.d.ts.map +1 -0
  146. package/dist/module/transaction/Wif.js +152 -55
  147. package/dist/module/transaction/Wif.js.map +1 -1
  148. package/dist/module/transaction/allocateFee.d.ts +5 -4
  149. package/dist/module/transaction/allocateFee.d.ts.map +1 -0
  150. package/dist/module/transaction/allocateFee.js +11 -8
  151. package/dist/module/transaction/allocateFee.js.map +1 -1
  152. package/dist/module/util/amountInSatoshi.d.ts +1 -0
  153. package/dist/module/util/amountInSatoshi.d.ts.map +1 -0
  154. package/dist/module/util/amountInSatoshi.js +4 -4
  155. package/dist/module/util/amountInSatoshi.js.map +1 -1
  156. package/dist/module/util/asSendRequestObject.d.ts +3 -2
  157. package/dist/module/util/asSendRequestObject.d.ts.map +1 -0
  158. package/dist/module/util/asSendRequestObject.js +6 -3
  159. package/dist/module/util/asSendRequestObject.js.map +1 -1
  160. package/dist/module/util/balanceObjectFromSatoshi.d.ts +1 -0
  161. package/dist/module/util/balanceObjectFromSatoshi.d.ts.map +1 -0
  162. package/dist/module/util/balanceObjectFromSatoshi.js +5 -5
  163. package/dist/module/util/balanceObjectFromSatoshi.js.map +1 -1
  164. package/dist/module/util/base64.d.ts +2 -1
  165. package/dist/module/util/base64.d.ts.map +1 -0
  166. package/dist/module/util/base64.js +5 -25
  167. package/dist/module/util/base64.js.map +1 -1
  168. package/dist/module/util/bchaddr.d.ts +1 -0
  169. package/dist/module/util/bchaddr.d.ts.map +1 -0
  170. package/dist/module/util/browserNotSupported.d.ts +1 -0
  171. package/dist/module/util/browserNotSupported.d.ts.map +1 -0
  172. package/dist/module/util/browserNotSupported.js +1 -1
  173. package/dist/module/util/browserNotSupported.js.map +1 -1
  174. package/dist/module/util/checkForEmptySeed.d.ts +1 -0
  175. package/dist/module/util/checkForEmptySeed.d.ts.map +1 -0
  176. package/dist/module/util/checkWifNetwork.d.ts +2 -1
  177. package/dist/module/util/checkWifNetwork.d.ts.map +1 -0
  178. package/dist/module/util/checkWifNetwork.js +1 -1
  179. package/dist/module/util/checkWifNetwork.js.map +1 -1
  180. package/dist/module/util/convert.d.ts +1 -0
  181. package/dist/module/util/convert.d.ts.map +1 -0
  182. package/dist/module/util/convert.js +2 -2
  183. package/dist/module/util/convert.js.map +1 -1
  184. package/dist/module/util/delay.d.ts +1 -0
  185. package/dist/module/util/delay.d.ts.map +1 -0
  186. package/dist/module/util/deriveCashaddr.d.ts +6 -1
  187. package/dist/module/util/deriveCashaddr.d.ts.map +1 -0
  188. package/dist/module/util/deriveCashaddr.js +85 -6
  189. package/dist/module/util/deriveCashaddr.js.map +1 -1
  190. package/dist/module/util/deriveLockscript.d.ts +1 -0
  191. package/dist/module/util/deriveLockscript.d.ts.map +1 -0
  192. package/dist/module/util/deriveNetwork.d.ts +1 -0
  193. package/dist/module/util/deriveNetwork.d.ts.map +1 -0
  194. package/dist/module/util/deriveNetwork.js +2 -2
  195. package/dist/module/util/deriveNetwork.js.map +1 -1
  196. package/dist/module/util/derivePublicKeyHash.d.ts +3 -1
  197. package/dist/module/util/derivePublicKeyHash.d.ts.map +1 -0
  198. package/dist/module/util/derivePublicKeyHash.js +1 -1
  199. package/dist/module/util/derivePublicKeyHash.js.map +1 -1
  200. package/dist/module/util/eventsource.d.ts +1 -0
  201. package/dist/module/util/eventsource.d.ts.map +1 -0
  202. package/dist/module/util/eventsource.js +3 -2
  203. package/dist/module/util/eventsource.js.map +1 -1
  204. package/dist/module/util/floor.d.ts +1 -0
  205. package/dist/module/util/floor.d.ts.map +1 -0
  206. package/dist/module/util/getAddrsByXpubKey.d.ts +8 -8
  207. package/dist/module/util/getAddrsByXpubKey.d.ts.map +1 -0
  208. package/dist/module/util/getAddrsByXpubKey.js +17 -21
  209. package/dist/module/util/getAddrsByXpubKey.js.map +1 -1
  210. package/dist/module/util/getRuntimePlatform.d.ts +1 -0
  211. package/dist/module/util/getRuntimePlatform.d.ts.map +1 -0
  212. package/dist/module/util/getUsdRate.d.ts +1 -0
  213. package/dist/module/util/getUsdRate.d.ts.map +1 -0
  214. package/dist/module/util/getUsdRate.js +1 -1
  215. package/dist/module/util/getUsdRate.js.map +1 -1
  216. package/dist/module/util/getXPubKey.d.ts +2 -1
  217. package/dist/module/util/getXPubKey.d.ts.map +1 -0
  218. package/dist/module/util/getXPubKey.js +6 -7
  219. package/dist/module/util/getXPubKey.js.map +1 -1
  220. package/dist/module/util/hash160.d.ts +2 -1
  221. package/dist/module/util/hash160.d.ts.map +1 -0
  222. package/dist/module/util/hash160.js +2 -4
  223. package/dist/module/util/hash160.js.map +1 -1
  224. package/dist/module/util/index.d.ts +21 -20
  225. package/dist/module/util/index.d.ts.map +1 -0
  226. package/dist/module/util/index.js +20 -20
  227. package/dist/module/util/index.js.map +1 -1
  228. package/dist/module/util/randomBytes.d.ts +3 -1
  229. package/dist/module/util/randomBytes.d.ts.map +1 -0
  230. package/dist/module/util/randomBytes.js +2 -3
  231. package/dist/module/util/randomBytes.js.map +1 -1
  232. package/dist/module/util/randomInt.d.ts +1 -0
  233. package/dist/module/util/randomInt.d.ts.map +1 -0
  234. package/dist/module/util/randomValues.d.ts +1 -0
  235. package/dist/module/util/randomValues.d.ts.map +1 -0
  236. package/dist/module/util/randomValues.js +7 -7
  237. package/dist/module/util/randomValues.js.map +1 -1
  238. package/dist/module/util/sanitizeAddress.d.ts +1 -0
  239. package/dist/module/util/sanitizeAddress.d.ts.map +1 -0
  240. package/dist/module/util/sanitizeAddress.js +1 -1
  241. package/dist/module/util/sanitizeAddress.js.map +1 -1
  242. package/dist/module/util/sanitizeUnit.d.ts +2 -1
  243. package/dist/module/util/sanitizeUnit.d.ts.map +1 -0
  244. package/dist/module/util/satoshiToAmount.d.ts +1 -0
  245. package/dist/module/util/satoshiToAmount.d.ts.map +1 -0
  246. package/dist/module/util/satoshiToAmount.js +4 -4
  247. package/dist/module/util/satoshiToAmount.js.map +1 -1
  248. package/dist/module/util/sumSendRequestAmounts.d.ts +3 -2
  249. package/dist/module/util/sumSendRequestAmounts.d.ts.map +1 -0
  250. package/dist/module/util/sumSendRequestAmounts.js +5 -2
  251. package/dist/module/util/sumSendRequestAmounts.js.map +1 -1
  252. package/dist/module/util/sumUtxoValue.d.ts +4 -2
  253. package/dist/module/util/sumUtxoValue.d.ts.map +1 -0
  254. package/dist/module/util/sumUtxoValue.js +17 -3
  255. package/dist/module/util/sumUtxoValue.js.map +1 -1
  256. package/dist/module/util/transaction.d.ts +2 -0
  257. package/dist/module/util/transaction.d.ts.map +1 -0
  258. package/dist/module/util/transaction.js +7 -0
  259. package/dist/module/util/transaction.js.map +1 -0
  260. package/dist/module/wallet/Base.d.ts +8 -7
  261. package/dist/module/wallet/Base.d.ts.map +1 -0
  262. package/dist/module/wallet/Base.js +7 -7
  263. package/dist/module/wallet/Base.js.map +1 -1
  264. package/dist/module/wallet/Bcmr.d.ts +88 -0
  265. package/dist/module/wallet/Bcmr.d.ts.map +1 -0
  266. package/dist/module/wallet/Bcmr.js +281 -0
  267. package/dist/module/wallet/Bcmr.js.map +1 -0
  268. package/dist/module/wallet/Slp.d.ts +6 -5
  269. package/dist/module/wallet/Slp.d.ts.map +1 -0
  270. package/dist/module/wallet/Slp.js +15 -15
  271. package/dist/module/wallet/Slp.js.map +1 -1
  272. package/dist/module/wallet/Util.d.ts +3 -2
  273. package/dist/module/wallet/Util.d.ts.map +1 -0
  274. package/dist/module/wallet/Util.js +9 -14
  275. package/dist/module/wallet/Util.js.map +1 -1
  276. package/dist/module/wallet/Wif.d.ts +124 -20
  277. package/dist/module/wallet/Wif.d.ts.map +1 -0
  278. package/dist/module/wallet/Wif.js +406 -74
  279. package/dist/module/wallet/Wif.js.map +1 -1
  280. package/dist/module/wallet/bcmr-v1.schema.d.ts +623 -0
  281. package/dist/module/wallet/bcmr-v1.schema.d.ts.map +1 -0
  282. package/dist/module/wallet/bcmr-v1.schema.js +2 -0
  283. package/dist/module/wallet/bcmr-v1.schema.js.map +1 -0
  284. package/dist/module/wallet/createWallet.d.ts +3 -2
  285. package/dist/module/wallet/createWallet.d.ts.map +1 -0
  286. package/dist/module/wallet/createWallet.js +3 -3
  287. package/dist/module/wallet/createWallet.js.map +1 -1
  288. package/dist/module/wallet/enum.d.ts +1 -0
  289. package/dist/module/wallet/enum.d.ts.map +1 -0
  290. package/dist/module/wallet/interface.d.ts +10 -6
  291. package/dist/module/wallet/interface.d.ts.map +1 -0
  292. package/dist/module/wallet/model.d.ts +81 -5
  293. package/dist/module/wallet/model.d.ts.map +1 -0
  294. package/dist/module/wallet/model.js +102 -17
  295. package/dist/module/wallet/model.js.map +1 -1
  296. package/dist/module/webhook/Webhook.d.ts +3 -2
  297. package/dist/module/webhook/Webhook.d.ts.map +1 -0
  298. package/dist/module/webhook/Webhook.js +4 -1
  299. package/dist/module/webhook/Webhook.js.map +1 -1
  300. package/dist/module/webhook/WebhookBch.d.ts +4 -3
  301. package/dist/module/webhook/WebhookBch.d.ts.map +1 -0
  302. package/dist/module/webhook/WebhookBch.js +4 -4
  303. package/dist/module/webhook/WebhookBch.js.map +1 -1
  304. package/dist/module/webhook/WebhookSlp.d.ts +5 -4
  305. package/dist/module/webhook/WebhookSlp.d.ts.map +1 -0
  306. package/dist/module/webhook/WebhookSlp.js +4 -4
  307. package/dist/module/webhook/WebhookSlp.js.map +1 -1
  308. package/dist/module/webhook/WebhookWorker.d.ts +3 -2
  309. package/dist/module/webhook/WebhookWorker.d.ts.map +1 -0
  310. package/dist/module/webhook/WebhookWorker.js +1 -1
  311. package/dist/module/webhook/WebhookWorker.js.map +1 -1
  312. package/dist/module/webhook/index.d.ts +6 -5
  313. package/dist/module/webhook/index.d.ts.map +1 -0
  314. package/dist/module/webhook/index.js +5 -5
  315. package/dist/module/webhook/index.js.map +1 -1
  316. package/dist/module/webhook/interface.d.ts +1 -0
  317. package/dist/module/webhook/interface.d.ts.map +1 -0
  318. package/dist/tsconfig.tsbuildinfo +1 -1
  319. package/package.json +9 -9
  320. package/polyfill/{bip39.browser.js → bip39.browser.cjs} +1 -0
  321. package/polyfill/{util.js → util.cjs} +0 -0
  322. package/src/Wallet.test.headless.js +6 -6
  323. package/src/cli.ts +3 -3
  324. package/src/db/ExchangeRateProvider.ts +1 -1
  325. package/src/db/IndexedDBProvider.test.ts +0 -1
  326. package/src/db/IndexedDBProvider.ts +2 -2
  327. package/src/db/SqlProvider.ts +14 -12
  328. package/src/db/StorageProvider.ts +1 -1
  329. package/src/db/getStorageProvider.ts +20 -0
  330. package/src/db/index.ts +3 -3
  331. package/src/db/util.ts +1 -20
  332. package/src/history/electrumTransformer.ts +13 -14
  333. package/src/history/interface.ts +1 -1
  334. package/src/index.ts +29 -21
  335. package/src/interface.ts +15 -0
  336. package/src/message/index.ts +2 -2
  337. package/src/message/signed.test.ts +4 -4
  338. package/src/message/signed.ts +23 -6
  339. package/src/mine/index.ts +1 -1
  340. package/src/mine/mine.ts +3 -3
  341. package/src/network/Connection.ts +5 -5
  342. package/src/network/ElectrumNetworkProvider.ts +85 -20
  343. package/src/network/NetworkProvider.ts +1 -1
  344. package/src/network/configuration.test.ts +33 -8
  345. package/src/network/configuration.ts +33 -18
  346. package/src/network/constant.ts +9 -4
  347. package/src/network/default.ts +13 -10
  348. package/src/network/getRelayFeeCache.ts +3 -3
  349. package/src/network/index.ts +6 -2
  350. package/src/network/util.ts +1 -1
  351. package/src/qr/Qr.ts +3 -3
  352. package/src/rate/ExchangeRate.ts +14 -15
  353. package/src/slp/GsppProvider.test.ts +2 -2
  354. package/src/slp/GsppProvider.ts +11 -8
  355. package/src/slp/SlpDbProvider.test.ts +1 -1
  356. package/src/slp/SlpDbProvider.ts +12 -9
  357. package/src/slp/SlpLibAuth.test.ts +1 -1
  358. package/src/slp/SlpLibAuth.ts +52 -42
  359. package/src/slp/SlpProvider.ts +6 -1
  360. package/src/slp/index.ts +4 -4
  361. package/src/slp/interface.ts +1 -1
  362. package/src/test/axios.ts +47 -0
  363. package/src/test/expect.ts +27 -2
  364. package/src/transaction/Wif.ts +203 -77
  365. package/src/transaction/allocateFee.ts +32 -14
  366. package/src/util/amountInSatoshi.ts +4 -4
  367. package/src/util/asSendRequestObject.ts +42 -30
  368. package/src/util/balanceObjectFromSatoshi.ts +5 -5
  369. package/src/util/base64.ts +5 -24
  370. package/src/util/browserNotSupported.ts +1 -1
  371. package/src/util/checkWifNetwork.ts +1 -1
  372. package/src/util/convert.ts +2 -2
  373. package/src/util/deriveCashaddr.test.ts +43 -0
  374. package/src/util/deriveCashaddr.ts +123 -7
  375. package/src/util/deriveNetwork.ts +2 -2
  376. package/src/util/derivePublicKeyHash.test.ts +3 -0
  377. package/src/util/derivePublicKeyHash.ts +18 -5
  378. package/src/util/eventsource.ts +4 -2
  379. package/src/util/getAddrsByXpubKey.test.ts +5 -5
  380. package/src/util/getAddrsByXpubKey.ts +23 -28
  381. package/src/util/getUsdRate.ts +1 -1
  382. package/src/util/getXPubKey.ts +5 -7
  383. package/src/util/hash160.test.ts +2 -2
  384. package/src/util/hash160.ts +2 -4
  385. package/src/util/index.ts +26 -20
  386. package/src/util/randomBytes.ts +2 -3
  387. package/src/util/randomValues.ts +8 -8
  388. package/src/util/sanitizeAddress.ts +1 -1
  389. package/src/util/sanitizeUnit.ts +1 -1
  390. package/src/util/satoshiToAmount.ts +4 -4
  391. package/src/util/sumSendRequestAmounts.ts +10 -4
  392. package/src/util/sumUtxoValue.ts +19 -7
  393. package/src/util/transaction.ts +10 -0
  394. package/src/wallet/Base.ts +11 -11
  395. package/src/wallet/Bcmr.test.headless.js +353 -0
  396. package/src/wallet/Bcmr.test.ts +610 -0
  397. package/src/wallet/Bcmr.ts +390 -0
  398. package/src/wallet/Cashtokens.test.headless.js +467 -0
  399. package/src/wallet/Cashtokens.test.ts +475 -0
  400. package/src/wallet/Slp.test.headless.js +6 -8
  401. package/src/wallet/Slp.test.ts +2 -2
  402. package/src/wallet/Slp.ts +26 -22
  403. package/src/wallet/Util.ts +9 -20
  404. package/src/wallet/Wif.test.ts +20 -21
  405. package/src/wallet/Wif.ts +534 -99
  406. package/src/wallet/bcmr-v1.schema.ts +639 -0
  407. package/src/wallet/createWallet.test.ts +1 -0
  408. package/src/wallet/createWallet.ts +4 -4
  409. package/src/wallet/interface.ts +9 -6
  410. package/src/wallet/model.ts +190 -19
  411. package/src/webhook/Webhook.ts +7 -3
  412. package/src/webhook/WebhookBch.ts +7 -7
  413. package/src/webhook/WebhookSlp.test.ts +2 -2
  414. package/src/webhook/WebhookSlp.ts +6 -6
  415. package/src/webhook/WebhookWorker.ts +2 -2
  416. package/src/webhook/index.ts +5 -5
  417. package/tsconfig.browser.json +0 -3
  418. package/tsconfig.json +17 -5
  419. package/{webpack.config.js → webpack.config.cjs} +46 -14
  420. package/dist/main/chain.d.ts +0 -3
  421. package/dist/main/chain.js +0 -7
  422. package/dist/main/chain.js.map +0 -1
  423. package/dist/main/cli.d.ts +0 -1
  424. package/dist/main/cli.js +0 -35
  425. package/dist/main/cli.js.map +0 -1
  426. package/dist/main/constant.d.ts +0 -5
  427. package/dist/main/constant.js +0 -27
  428. package/dist/main/constant.js.map +0 -1
  429. package/dist/main/db/ExchangeRateProvider.d.ts +0 -11
  430. package/dist/main/db/ExchangeRateProvider.js +0 -47
  431. package/dist/main/db/ExchangeRateProvider.js.map +0 -1
  432. package/dist/main/db/IndexedDBProvider.d.ts +0 -15
  433. package/dist/main/db/IndexedDBProvider.js +0 -86
  434. package/dist/main/db/IndexedDBProvider.js.map +0 -1
  435. package/dist/main/db/SqlProvider.d.ts +0 -41
  436. package/dist/main/db/SqlProvider.js +0 -217
  437. package/dist/main/db/SqlProvider.js.map +0 -1
  438. package/dist/main/db/StorageProvider.d.ts +0 -52
  439. package/dist/main/db/StorageProvider.js +0 -3
  440. package/dist/main/db/StorageProvider.js.map +0 -1
  441. package/dist/main/db/index.d.ts +0 -3
  442. package/dist/main/db/index.js +0 -11
  443. package/dist/main/db/index.js.map +0 -1
  444. package/dist/main/db/interface.d.ts +0 -22
  445. package/dist/main/db/interface.js +0 -3
  446. package/dist/main/db/interface.js.map +0 -1
  447. package/dist/main/db/util.d.ts +0 -5
  448. package/dist/main/db/util.js +0 -53
  449. package/dist/main/db/util.js.map +0 -1
  450. package/dist/main/enum.d.ts +0 -33
  451. package/dist/main/enum.js +0 -39
  452. package/dist/main/enum.js.map +0 -1
  453. package/dist/main/history/electrumTransformer.d.ts +0 -4
  454. package/dist/main/history/electrumTransformer.js +0 -216
  455. package/dist/main/history/electrumTransformer.js.map +0 -1
  456. package/dist/main/history/interface.d.ts +0 -16
  457. package/dist/main/history/interface.js +0 -3
  458. package/dist/main/history/interface.js.map +0 -1
  459. package/dist/main/index.d.ts +0 -24
  460. package/dist/main/index.js +0 -62
  461. package/dist/main/index.js.map +0 -1
  462. package/dist/main/interface.d.ts +0 -31
  463. package/dist/main/interface.js +0 -12
  464. package/dist/main/interface.js.map +0 -1
  465. package/dist/main/message/index.d.ts +0 -2
  466. package/dist/main/message/index.js +0 -15
  467. package/dist/main/message/index.js.map +0 -1
  468. package/dist/main/message/interface.d.ts +0 -29
  469. package/dist/main/message/interface.js +0 -6
  470. package/dist/main/message/interface.js.map +0 -1
  471. package/dist/main/message/signed.d.ts +0 -33
  472. package/dist/main/message/signed.js +0 -141
  473. package/dist/main/message/signed.js.map +0 -1
  474. package/dist/main/mine/index.d.ts +0 -1
  475. package/dist/main/mine/index.js +0 -14
  476. package/dist/main/mine/index.js.map +0 -1
  477. package/dist/main/mine/mine.d.ts +0 -13
  478. package/dist/main/mine/mine.js +0 -37
  479. package/dist/main/mine/mine.js.map +0 -1
  480. package/dist/main/network/Connection.d.ts +0 -14
  481. package/dist/main/network/Connection.js +0 -71
  482. package/dist/main/network/Connection.js.map +0 -1
  483. package/dist/main/network/ElectrumNetworkProvider.d.ts +0 -49
  484. package/dist/main/network/ElectrumNetworkProvider.js +0 -338
  485. package/dist/main/network/ElectrumNetworkProvider.js.map +0 -1
  486. package/dist/main/network/NetworkProvider.d.ts +0 -107
  487. package/dist/main/network/NetworkProvider.js +0 -3
  488. package/dist/main/network/NetworkProvider.js.map +0 -1
  489. package/dist/main/network/configuration.d.ts +0 -12
  490. package/dist/main/network/configuration.js +0 -79
  491. package/dist/main/network/configuration.js.map +0 -1
  492. package/dist/main/network/constant.d.ts +0 -35
  493. package/dist/main/network/constant.js +0 -55
  494. package/dist/main/network/constant.js.map +0 -1
  495. package/dist/main/network/default.d.ts +0 -7
  496. package/dist/main/network/default.js +0 -107
  497. package/dist/main/network/default.js.map +0 -1
  498. package/dist/main/network/getRelayFeeCache.d.ts +0 -2
  499. package/dist/main/network/getRelayFeeCache.js +0 -27
  500. package/dist/main/network/getRelayFeeCache.js.map +0 -1
  501. package/dist/main/network/index.d.ts +0 -2
  502. package/dist/main/network/index.js +0 -10
  503. package/dist/main/network/index.js.map +0 -1
  504. package/dist/main/network/interface.d.ts +0 -60
  505. package/dist/main/network/interface.js +0 -3
  506. package/dist/main/network/interface.js.map +0 -1
  507. package/dist/main/network/util.d.ts +0 -2
  508. package/dist/main/network/util.js +0 -32
  509. package/dist/main/network/util.js.map +0 -1
  510. package/dist/main/qr/Qr.d.ts +0 -8
  511. package/dist/main/qr/Qr.js +0 -26
  512. package/dist/main/qr/Qr.js.map +0 -1
  513. package/dist/main/qr/interface.d.ts +0 -5
  514. package/dist/main/qr/interface.js +0 -3
  515. package/dist/main/qr/interface.js.map +0 -1
  516. package/dist/main/rate/ExchangeRate.d.ts +0 -19
  517. package/dist/main/rate/ExchangeRate.js +0 -147
  518. package/dist/main/rate/ExchangeRate.js.map +0 -1
  519. package/dist/main/slp/GsppProvider.d.ts +0 -54
  520. package/dist/main/slp/GsppProvider.js +0 -214
  521. package/dist/main/slp/GsppProvider.js.map +0 -1
  522. package/dist/main/slp/SlpDbProvider.d.ts +0 -51
  523. package/dist/main/slp/SlpDbProvider.js +0 -182
  524. package/dist/main/slp/SlpDbProvider.js.map +0 -1
  525. package/dist/main/slp/SlpDbTemplates.d.ts +0 -312
  526. package/dist/main/slp/SlpDbTemplates.js +0 -387
  527. package/dist/main/slp/SlpDbTemplates.js.map +0 -1
  528. package/dist/main/slp/SlpLibAuth.d.ts +0 -217
  529. package/dist/main/slp/SlpLibAuth.js +0 -452
  530. package/dist/main/slp/SlpLibAuth.js.map +0 -1
  531. package/dist/main/slp/SlpProvider.d.ts +0 -23
  532. package/dist/main/slp/SlpProvider.js +0 -39
  533. package/dist/main/slp/SlpProvider.js.map +0 -1
  534. package/dist/main/slp/index.d.ts +0 -5
  535. package/dist/main/slp/index.js +0 -24
  536. package/dist/main/slp/index.js.map +0 -1
  537. package/dist/main/slp/interface.d.ts +0 -113
  538. package/dist/main/slp/interface.js +0 -10
  539. package/dist/main/slp/interface.js.map +0 -1
  540. package/dist/main/test/expect.d.ts +0 -7
  541. package/dist/main/test/expect.js +0 -31
  542. package/dist/main/test/expect.js.map +0 -1
  543. package/dist/main/transaction/Wif.d.ts +0 -42
  544. package/dist/main/transaction/Wif.js +0 -214
  545. package/dist/main/transaction/Wif.js.map +0 -1
  546. package/dist/main/transaction/allocateFee.d.ts +0 -7
  547. package/dist/main/transaction/allocateFee.js +0 -118
  548. package/dist/main/transaction/allocateFee.js.map +0 -1
  549. package/dist/main/util/amountInSatoshi.d.ts +0 -9
  550. package/dist/main/util/amountInSatoshi.js +0 -38
  551. package/dist/main/util/amountInSatoshi.js.map +0 -1
  552. package/dist/main/util/asSendRequestObject.d.ts +0 -2
  553. package/dist/main/util/asSendRequestObject.js +0 -57
  554. package/dist/main/util/asSendRequestObject.js.map +0 -1
  555. package/dist/main/util/balanceObjectFromSatoshi.d.ts +0 -8
  556. package/dist/main/util/balanceObjectFromSatoshi.js +0 -62
  557. package/dist/main/util/balanceObjectFromSatoshi.js.map +0 -1
  558. package/dist/main/util/base64.d.ts +0 -2
  559. package/dist/main/util/base64.js +0 -36
  560. package/dist/main/util/base64.js.map +0 -1
  561. package/dist/main/util/bchaddr.d.ts +0 -1
  562. package/dist/main/util/bchaddr.js +0 -24
  563. package/dist/main/util/bchaddr.js.map +0 -1
  564. package/dist/main/util/browserNotSupported.d.ts +0 -1
  565. package/dist/main/util/browserNotSupported.js +0 -11
  566. package/dist/main/util/browserNotSupported.js.map +0 -1
  567. package/dist/main/util/checkForEmptySeed.d.ts +0 -2
  568. package/dist/main/util/checkForEmptySeed.js +0 -12
  569. package/dist/main/util/checkForEmptySeed.js.map +0 -1
  570. package/dist/main/util/checkWifNetwork.d.ts +0 -2
  571. package/dist/main/util/checkWifNetwork.js +0 -16
  572. package/dist/main/util/checkWifNetwork.js.map +0 -1
  573. package/dist/main/util/convert.d.ts +0 -15
  574. package/dist/main/util/convert.js +0 -24
  575. package/dist/main/util/convert.js.map +0 -1
  576. package/dist/main/util/delay.d.ts +0 -1
  577. package/dist/main/util/delay.js +0 -8
  578. package/dist/main/util/delay.js.map +0 -1
  579. package/dist/main/util/deriveCashaddr.d.ts +0 -2
  580. package/dist/main/util/deriveCashaddr.js +0 -13
  581. package/dist/main/util/deriveCashaddr.js.map +0 -1
  582. package/dist/main/util/deriveLockscript.d.ts +0 -8
  583. package/dist/main/util/deriveLockscript.js +0 -19
  584. package/dist/main/util/deriveLockscript.js.map +0 -1
  585. package/dist/main/util/deriveNetwork.d.ts +0 -1
  586. package/dist/main/util/deriveNetwork.js +0 -23
  587. package/dist/main/util/deriveNetwork.js.map +0 -1
  588. package/dist/main/util/derivePublicKeyHash.d.ts +0 -16
  589. package/dist/main/util/derivePublicKeyHash.js +0 -49
  590. package/dist/main/util/derivePublicKeyHash.js.map +0 -1
  591. package/dist/main/util/eventsource.d.ts +0 -2
  592. package/dist/main/util/eventsource.js +0 -12
  593. package/dist/main/util/eventsource.js.map +0 -1
  594. package/dist/main/util/floor.d.ts +0 -1
  595. package/dist/main/util/floor.js +0 -9
  596. package/dist/main/util/floor.js.map +0 -1
  597. package/dist/main/util/getAddrsByXpubKey.d.ts +0 -22
  598. package/dist/main/util/getAddrsByXpubKey.js +0 -79
  599. package/dist/main/util/getAddrsByXpubKey.js.map +0 -1
  600. package/dist/main/util/getRuntimePlatform.d.ts +0 -6
  601. package/dist/main/util/getRuntimePlatform.js +0 -34
  602. package/dist/main/util/getRuntimePlatform.js.map +0 -1
  603. package/dist/main/util/getUsdRate.d.ts +0 -1
  604. package/dist/main/util/getUsdRate.js +0 -9
  605. package/dist/main/util/getUsdRate.js.map +0 -1
  606. package/dist/main/util/getXPubKey.d.ts +0 -1
  607. package/dist/main/util/getXPubKey.js +0 -26
  608. package/dist/main/util/getXPubKey.js.map +0 -1
  609. package/dist/main/util/hash160.d.ts +0 -8
  610. package/dist/main/util/hash160.js +0 -18
  611. package/dist/main/util/hash160.js.map +0 -1
  612. package/dist/main/util/index.d.ts +0 -21
  613. package/dist/main/util/index.js +0 -72
  614. package/dist/main/util/index.js.map +0 -1
  615. package/dist/main/util/randomBytes.d.ts +0 -1
  616. package/dist/main/util/randomBytes.js +0 -18
  617. package/dist/main/util/randomBytes.js.map +0 -1
  618. package/dist/main/util/randomInt.d.ts +0 -1
  619. package/dist/main/util/randomInt.js +0 -9
  620. package/dist/main/util/randomInt.js.map +0 -1
  621. package/dist/main/util/randomValues.d.ts +0 -1
  622. package/dist/main/util/randomValues.js +0 -15
  623. package/dist/main/util/randomValues.js.map +0 -1
  624. package/dist/main/util/sanitizeAddress.d.ts +0 -1
  625. package/dist/main/util/sanitizeAddress.js +0 -15
  626. package/dist/main/util/sanitizeAddress.js.map +0 -1
  627. package/dist/main/util/sanitizeUnit.d.ts +0 -2
  628. package/dist/main/util/sanitizeUnit.js +0 -13
  629. package/dist/main/util/sanitizeUnit.js.map +0 -1
  630. package/dist/main/util/satoshiToAmount.d.ts +0 -9
  631. package/dist/main/util/satoshiToAmount.js +0 -41
  632. package/dist/main/util/satoshiToAmount.js.map +0 -1
  633. package/dist/main/util/sumSendRequestAmounts.d.ts +0 -2
  634. package/dist/main/util/sumSendRequestAmounts.js +0 -31
  635. package/dist/main/util/sumSendRequestAmounts.js.map +0 -1
  636. package/dist/main/util/sumUtxoValue.d.ts +0 -2
  637. package/dist/main/util/sumUtxoValue.js +0 -17
  638. package/dist/main/util/sumUtxoValue.js.map +0 -1
  639. package/dist/main/wallet/Base.d.ts +0 -202
  640. package/dist/main/wallet/Base.js +0 -438
  641. package/dist/main/wallet/Base.js.map +0 -1
  642. package/dist/main/wallet/Slp.d.ts +0 -430
  643. package/dist/main/wallet/Slp.js +0 -775
  644. package/dist/main/wallet/Slp.js.map +0 -1
  645. package/dist/main/wallet/Util.d.ts +0 -69
  646. package/dist/main/wallet/Util.js +0 -182
  647. package/dist/main/wallet/Util.js.map +0 -1
  648. package/dist/main/wallet/Wif.d.ts +0 -255
  649. package/dist/main/wallet/Wif.js +0 -1067
  650. package/dist/main/wallet/Wif.js.map +0 -1
  651. package/dist/main/wallet/createWallet.d.ts +0 -69
  652. package/dist/main/wallet/createWallet.js +0 -244
  653. package/dist/main/wallet/createWallet.js.map +0 -1
  654. package/dist/main/wallet/enum.d.ts +0 -16
  655. package/dist/main/wallet/enum.js +0 -22
  656. package/dist/main/wallet/enum.js.map +0 -1
  657. package/dist/main/wallet/interface.d.ts +0 -76
  658. package/dist/main/wallet/interface.js +0 -3
  659. package/dist/main/wallet/interface.js.map +0 -1
  660. package/dist/main/wallet/model.d.ts +0 -88
  661. package/dist/main/wallet/model.js +0 -129
  662. package/dist/main/wallet/model.js.map +0 -1
  663. package/dist/main/webhook/Webhook.d.ts +0 -40
  664. package/dist/main/webhook/Webhook.js +0 -82
  665. package/dist/main/webhook/Webhook.js.map +0 -1
  666. package/dist/main/webhook/WebhookBch.d.ts +0 -13
  667. package/dist/main/webhook/WebhookBch.js +0 -148
  668. package/dist/main/webhook/WebhookBch.js.map +0 -1
  669. package/dist/main/webhook/WebhookSlp.d.ts +0 -14
  670. package/dist/main/webhook/WebhookSlp.js +0 -107
  671. package/dist/main/webhook/WebhookSlp.js.map +0 -1
  672. package/dist/main/webhook/WebhookWorker.d.ts +0 -22
  673. package/dist/main/webhook/WebhookWorker.js +0 -100
  674. package/dist/main/webhook/WebhookWorker.js.map +0 -1
  675. package/dist/main/webhook/index.d.ts +0 -5
  676. package/dist/main/webhook/index.js +0 -23
  677. package/dist/main/webhook/index.js.map +0 -1
  678. package/dist/main/webhook/interface.d.ts +0 -8
  679. package/dist/main/webhook/interface.js +0 -3
  680. package/dist/main/webhook/interface.js.map +0 -1
  681. package/dist/mainnet-0.5.9.js +0 -2
  682. package/dist/mainnet-0.5.9.js.LICENSE.txt +0 -48
  683. package/dist/tsconfig.browser.tsbuildinfo +0 -1
  684. package/jest.config.js +0 -23
@@ -0,0 +1,43 @@
1
+ import { RegTestWallet, Wallet } from "../wallet/Wif";
2
+ import {
3
+ deriveCashaddr,
4
+ deriveTokenaddr,
5
+ isTokenaddr,
6
+ toCashaddr,
7
+ toTokenaddr,
8
+ } from "./deriveCashaddr";
9
+
10
+ test("Should derive cashaddr", async () => {
11
+ const wallet = await Wallet.newRandom();
12
+ expect(deriveCashaddr(wallet.privateKey!, wallet.networkPrefix)).toBe(
13
+ wallet.cashaddr!
14
+ );
15
+ expect(deriveTokenaddr(wallet.privateKey!, wallet.networkPrefix)).toBe(
16
+ wallet.tokenaddr!
17
+ );
18
+ expect(deriveTokenaddr(wallet.publicKey!, wallet.networkPrefix)).toBe(
19
+ wallet.tokenaddr!
20
+ );
21
+ expect(
22
+ deriveTokenaddr(wallet.publicKeyCompressed!, wallet.networkPrefix)
23
+ ).toBe(wallet.tokenaddr!);
24
+ expect(deriveTokenaddr(wallet.publicKeyHash!, wallet.networkPrefix)).toBe(
25
+ wallet.tokenaddr!
26
+ );
27
+ });
28
+
29
+ test("Test address conversion", async () => {
30
+ const wallet = await RegTestWallet.watchOnly(process.env.ADDRESS!);
31
+ expect(toTokenaddr(wallet.cashaddr!)).toBe(wallet.tokenaddr);
32
+ expect(toCashaddr(wallet.tokenaddr!)).toBe(wallet.cashaddr);
33
+
34
+ expect(toCashaddr(wallet.tokenaddr!)).toBe(
35
+ "bchreg:qpttdv3qg2usm4nm7talhxhl05mlhms3ys43u76rn0"
36
+ );
37
+ expect(toTokenaddr(wallet.cashaddr!)).toBe(
38
+ "bchreg:zpttdv3qg2usm4nm7talhxhl05mlhms3ysjm0q59vu"
39
+ );
40
+
41
+ expect(isTokenaddr(wallet.cashaddr!)).toBe(false);
42
+ expect(isTokenaddr(wallet.tokenaddr!)).toBe(true);
43
+ });
@@ -1,17 +1,133 @@
1
1
  import {
2
2
  CashAddressNetworkPrefix,
3
- instantiateSecp256k1,
4
3
  encodeCashAddress,
4
+ CashAddressType,
5
+ secp256k1,
6
+ decodeCashAddressFormat,
7
+ decodeCashAddressFormatWithoutPrefix,
8
+ CashAddressVersionByte,
5
9
  } from "@bitauth/libauth";
6
10
 
7
- import { hash160 } from "./hash160";
11
+ import { hash160 } from "./hash160.js";
8
12
 
9
- export async function deriveCashaddr(
13
+ export function deriveCashaddr(
10
14
  privateKey: Uint8Array,
11
15
  networkPrefix: CashAddressNetworkPrefix
12
- ) {
13
- const secp256k1 = await instantiateSecp256k1();
16
+ ): string {
14
17
  let publicKey = secp256k1.derivePublicKeyCompressed(privateKey);
15
- let pkh = await hash160(publicKey);
16
- return encodeCashAddress(networkPrefix, 0, pkh);
18
+ if (typeof publicKey === "string") {
19
+ throw new Error(publicKey);
20
+ }
21
+ let pkh = hash160(publicKey);
22
+ return encodeCashAddress(networkPrefix, CashAddressType.p2pkh, pkh);
23
+ }
24
+
25
+ export function deriveTokenaddr(
26
+ key: Uint8Array,
27
+ networkPrefix: CashAddressNetworkPrefix
28
+ ): string {
29
+ let publicKeyHash: Uint8Array;
30
+ // private key
31
+ if (key.length === 32) {
32
+ let publicKeyCompressed = secp256k1.derivePublicKeyCompressed(key);
33
+ if (typeof publicKeyCompressed === "string") {
34
+ throw new Error(publicKeyCompressed);
35
+ }
36
+ publicKeyHash = hash160(publicKeyCompressed);
37
+ } else if (key.length === 65) {
38
+ // uncompressed public key
39
+ let publicKeyCompressed = secp256k1.compressPublicKey(key);
40
+ if (typeof publicKeyCompressed === "string") {
41
+ throw new Error(publicKeyCompressed);
42
+ }
43
+ publicKeyHash = hash160(publicKeyCompressed);
44
+ } else if (key.length === 33) {
45
+ // compressed public key
46
+ publicKeyHash = hash160(key);
47
+ } else if (key.length === 20) {
48
+ // public key hash
49
+ publicKeyHash = key;
50
+ } else {
51
+ throw new Error("Unsupported type of key");
52
+ }
53
+
54
+ return encodeCashAddress(
55
+ networkPrefix,
56
+ CashAddressType.p2pkhWithTokens,
57
+ publicKeyHash
58
+ );
59
+ }
60
+
61
+ export function toCashaddr(tokenaddr: string): string {
62
+ let result:
63
+ | string
64
+ | { payload: Uint8Array; prefix: string; version: number }
65
+ | undefined;
66
+
67
+ // If the address has a prefix decode it as is
68
+ if (tokenaddr.includes(":")) {
69
+ result = decodeCashAddressFormat(tokenaddr);
70
+ }
71
+ // otherwise, derive the network from the tokenaddr without prefix
72
+ else {
73
+ result = decodeCashAddressFormatWithoutPrefix(tokenaddr);
74
+ }
75
+
76
+ if (typeof result === "string") throw new Error(result);
77
+
78
+ return encodeCashAddress(
79
+ result.prefix as CashAddressNetworkPrefix,
80
+ CashAddressType.p2pkh,
81
+ result.payload
82
+ );
83
+ }
84
+
85
+ export function toTokenaddr(cashaddr: string): string {
86
+ let result:
87
+ | string
88
+ | { payload: Uint8Array; prefix: string; version: number }
89
+ | undefined;
90
+
91
+ // If the address has a prefix decode it as is
92
+ if (cashaddr.includes(":")) {
93
+ result = decodeCashAddressFormat(cashaddr);
94
+ }
95
+ // otherwise, derive the network from the cashaddr without prefix
96
+ else {
97
+ result = decodeCashAddressFormatWithoutPrefix(cashaddr);
98
+ }
99
+
100
+ if (typeof result === "string") throw new Error(result);
101
+
102
+ return encodeCashAddress(
103
+ result.prefix as CashAddressNetworkPrefix,
104
+ CashAddressType.p2pkhWithTokens,
105
+ result.payload
106
+ );
107
+ }
108
+
109
+ export function isTokenaddr(address: string): boolean {
110
+ let result:
111
+ | string
112
+ | { payload: Uint8Array; prefix: string; version: number }
113
+ | undefined;
114
+
115
+ // If the address has a prefix decode it as is
116
+ if (address.includes(":")) {
117
+ result = decodeCashAddressFormat(address);
118
+ }
119
+ // otherwise, derive the network from the address without prefix
120
+ else {
121
+ result = decodeCashAddressFormatWithoutPrefix(address);
122
+ }
123
+
124
+ if (typeof result === "string") throw new Error(result);
125
+
126
+ return (
127
+ [
128
+ CashAddressVersionByte.p2pkhWithTokens,
129
+ CashAddressVersionByte.p2sh20WithTokens,
130
+ CashAddressVersionByte.p2sh32WithTokens,
131
+ ].indexOf(result.version) !== -1
132
+ );
17
133
  }
@@ -1,5 +1,5 @@
1
- import { derivePrefix } from "./derivePublicKeyHash";
2
- import { networkPrefixMap } from "../enum";
1
+ import { derivePrefix } from "./derivePublicKeyHash.js";
2
+ import { networkPrefixMap } from "../enum.js";
3
3
 
4
4
  // This function if for assuring that a list of addresses are on the name network
5
5
  // for a single address use: networkPrefixMap[derivePrefix(address)]
@@ -43,6 +43,9 @@ test("Should calculate public key hash consistent with hash160", async () => {
43
43
  let pkh = derivePublicKeyHash(w.getDepositAddress());
44
44
  // manually from compressed public key
45
45
  let publicKeyCompressed = secp256k1.derivePublicKeyCompressed(w.privateKey!);
46
+ if (typeof publicKeyCompressed === "string") {
47
+ throw new Error(publicKeyCompressed);
48
+ }
46
49
  let pkh2 = ripemd160.hash(sha256.hash(publicKeyCompressed));
47
50
  let pkh3 = w.publicKeyHash!;
48
51
  expect(pkh2.length).toBe(20);
@@ -1,4 +1,5 @@
1
1
  import {
2
+ CashAddressNetworkPrefix,
2
3
  decodeCashAddressFormat,
3
4
  decodeCashAddressFormatWithoutPrefix,
4
5
  } from "@bitauth/libauth";
@@ -11,7 +12,13 @@ import {
11
12
  * @returns a public key hash corresponding to the passed address
12
13
  */
13
14
  export function derivePublicKeyHash(address: string): Uint8Array {
14
- let result;
15
+ let result:
16
+ | string
17
+ | {
18
+ payload: Uint8Array;
19
+ prefix: string;
20
+ version: number;
21
+ };
15
22
 
16
23
  // If the address has a prefix decode it as is
17
24
  if (address.includes(":")) {
@@ -25,7 +32,7 @@ export function derivePublicKeyHash(address: string): Uint8Array {
25
32
  if (typeof result === "string") throw new Error(result);
26
33
 
27
34
  // return the public key hash
28
- return result.hash;
35
+ return result.payload;
29
36
  }
30
37
 
31
38
  /**
@@ -35,8 +42,14 @@ export function derivePublicKeyHash(address: string): Uint8Array {
35
42
  *
36
43
  * @returns the address prefix
37
44
  */
38
- export function derivePrefix(address: string): string {
39
- let result;
45
+ export function derivePrefix(address: string): CashAddressNetworkPrefix {
46
+ let result:
47
+ | string
48
+ | {
49
+ payload: Uint8Array;
50
+ prefix: string;
51
+ version: number;
52
+ };
40
53
 
41
54
  if (address.includes(":")) {
42
55
  result = decodeCashAddressFormat(address);
@@ -47,5 +60,5 @@ export function derivePrefix(address: string): string {
47
60
  if (typeof result === "string") throw new Error(result);
48
61
 
49
62
  // TODO pass the network in and check it or raise Error
50
- return result.prefix;
63
+ return result.prefix as CashAddressNetworkPrefix;
51
64
  }
@@ -1,10 +1,12 @@
1
- import { getRuntimePlatform } from "./getRuntimePlatform";
1
+ import { getRuntimePlatform } from "./getRuntimePlatform.js";
2
+
3
+ import { default as ES } from "eventsource";
2
4
 
3
5
  let EventSource;
4
6
  if (getRuntimePlatform() != "node") {
5
7
  EventSource = globalThis.EventSource;
6
8
  } else {
7
- EventSource = eval("require")("eventsource/");
9
+ EventSource = ES;
8
10
  }
9
11
 
10
12
  export default EventSource;
@@ -7,7 +7,7 @@ import {
7
7
  test("Should decode xpubInfo", async () => {
8
8
  let xpub =
9
9
  "xpub6BosfCnifzxcFwrSzQiqu2DBVTshkCXacvNsWGYJVVhhawA7d4R5WSWGFNbi8Aw6ZRc1brxMyWMzG3DSSSSoekkudhUd9yLb6qx39T9nMdj";
10
- let xpubInfo = await getXpubKeyInfo(xpub);
10
+ let xpubInfo = getXpubKeyInfo(xpub);
11
11
  expect(xpubInfo.version).toBe("mainnet");
12
12
  expect(xpubInfo.depth).toBe(3);
13
13
  expect(xpubInfo.parentFingerprint).toBe("155bca59");
@@ -57,7 +57,7 @@ test("Should derive list of cashaddrs from m/44'/0'/0' given xpub path, & limit"
57
57
  ];
58
58
 
59
59
  // M/44'/0'/0'/0/i
60
- const cashaddrs = await getAddrsByXpubKey(xpub, "0/0", 3);
60
+ const cashaddrs = getAddrsByXpubKey(xpub, "0/0", 3);
61
61
  expect(cashaddrs).toStrictEqual(vectors);
62
62
  });
63
63
 
@@ -76,7 +76,7 @@ test("Should derive list of change cashaddrs from m/44'/0'/0' given xpub path, &
76
76
  ];
77
77
 
78
78
  // M/44'/0'/0'/0/i
79
- const cashaddrs = await getAddrsByXpubKey(xpub, "1/0", 3);
79
+ const cashaddrs = getAddrsByXpubKey(xpub, "1/0", 3);
80
80
  expect(cashaddrs).toStrictEqual(vectors);
81
81
  });
82
82
 
@@ -94,7 +94,7 @@ test("Should derive list of cashaddrs from M/44'/145'/0' given xpub, path and li
94
94
  "bitcoincash:qqkuy34ntrye9a2h4xpdstcu4aq5wfrwscjtaphenr",
95
95
  ];
96
96
 
97
- const cashaddrs = await getAddrsByXpubKey(xpub, "0/0", 3);
97
+ const cashaddrs = getAddrsByXpubKey(xpub, "0/0", 3);
98
98
  expect(cashaddrs).toStrictEqual(vectors);
99
99
  });
100
100
  test("Should derive list of change cashaddrs from M/44'/145'/0' given xpub, path and limit", async () => {
@@ -110,6 +110,6 @@ test("Should derive list of change cashaddrs from M/44'/145'/0' given xpub, path
110
110
  // M/44'/145'/0'/1/2
111
111
  "bitcoincash:qp57cex47jtyhedphe2c63gpzsx3zs0ryvejxly47d",
112
112
  ];
113
- const cashaddrs = await getAddrsByXpubKey(xpub, "1/0", 3);
113
+ const cashaddrs = getAddrsByXpubKey(xpub, "1/0", 3);
114
114
  expect(cashaddrs).toStrictEqual(vectors);
115
115
  });
@@ -1,23 +1,20 @@
1
1
  import {
2
2
  deriveHdPublicNodeChild,
3
3
  decodeHdPublicKey,
4
- encodeHdPublicKey,
5
4
  encodeCashAddress,
6
- instantiateBIP32Crypto,
7
5
  deriveHdPath,
8
- HdPublicNode,
9
- HdKeyNetwork,
10
6
  binToHex,
7
+ CashAddressNetworkPrefix,
8
+ CashAddressType,
11
9
  } from "@bitauth/libauth";
12
- import path from "path";
13
10
 
14
- import { hash160 } from "./hash160";
11
+ import { hash160 } from "./hash160.js";
15
12
 
16
- export async function getAddrsByXpubKey(
13
+ export function getAddrsByXpubKey(
17
14
  xpub: string,
18
15
  path: string,
19
16
  count: number
20
- ) {
17
+ ): Array<string> {
21
18
  let pathComponents = path.split("/");
22
19
  let rootStr = pathComponents.shift()!;
23
20
  let root: number;
@@ -25,7 +22,7 @@ export async function getAddrsByXpubKey(
25
22
  rootStr = pathComponents.shift()!;
26
23
  }
27
24
  root = parseInt(rootStr);
28
- let result: any = [];
25
+ let result: Array<string> = [];
29
26
 
30
27
  const start = parseInt(pathComponents.pop()!);
31
28
  const end = start + count;
@@ -33,29 +30,28 @@ export async function getAddrsByXpubKey(
33
30
  let childPath = ["M", root, ...pathComponents, curr].join("/");
34
31
  result.push(derivePublicNodeCashaddr(xpub, root, childPath));
35
32
  }
36
- return await Promise.all(result).then((result) => {
37
- return result;
38
- });
33
+ return result;
39
34
  }
40
35
 
41
- export async function getAddrsByXpubKeyObject(obj) {
42
- return await getAddrsByXpubKey(obj.xpubkey, obj.path, obj.count);
36
+ export function getAddrsByXpubKeyObject(obj): Array<string> {
37
+ return getAddrsByXpubKey(obj.xpubkey, obj.path, obj.count);
43
38
  }
44
39
 
45
- export async function derivePublicNodeCashaddr(
40
+ export function derivePublicNodeCashaddr(
46
41
  xpub,
47
42
  index: number,
48
43
  path?: string
49
- ) {
50
- const crypto = await instantiateBIP32Crypto();
51
- const publicParent = await decodeHdPublicKey(crypto, xpub);
44
+ ): string {
45
+ const publicParent = decodeHdPublicKey(xpub);
52
46
 
53
47
  if (typeof publicParent === "string") {
54
48
  throw new Error(publicParent);
55
49
  }
56
- let prefix = publicParent.network === "mainnet" ? "bitcoincash" : "bchtest";
50
+ let prefix = (
51
+ publicParent.network === "mainnet" ? "bitcoincash" : "bchtest"
52
+ ) as CashAddressNetworkPrefix;
57
53
 
58
- let node = await deriveHdPublicNodeChild(crypto, publicParent.node, index);
54
+ let node = deriveHdPublicNodeChild(publicParent.node, index);
59
55
  if (typeof node === "string") {
60
56
  throw new Error(node);
61
57
  }
@@ -65,20 +61,19 @@ export async function derivePublicNodeCashaddr(
65
61
  if (path[0] !== "M") {
66
62
  throw Error("use M for public path derivation");
67
63
  }
68
- let childNode = deriveHdPath(crypto, publicParent.node, path);
64
+ let childNode = deriveHdPath(publicParent.node, path);
69
65
  if (typeof childNode === "string") {
70
66
  throw new Error(childNode);
71
67
  } else {
72
- let childPkh = await hash160(childNode.publicKey);
73
- cashaddr = encodeCashAddress(prefix, 0, childPkh);
68
+ let childPkh = hash160(childNode.publicKey);
69
+ cashaddr = encodeCashAddress(prefix, CashAddressType.p2pkh, childPkh);
74
70
  }
75
71
  }
76
72
  return cashaddr;
77
73
  }
78
74
 
79
- export async function getXpubKeyInfo(hdPublicKey) {
80
- const crypto = await instantiateBIP32Crypto();
81
- let node = decodeHdPublicKey(crypto, hdPublicKey);
75
+ export function getXpubKeyInfo(hdPublicKey: string) {
76
+ let node = decodeHdPublicKey(hdPublicKey);
82
77
  if (typeof node === "string") {
83
78
  throw new Error(node);
84
79
  }
@@ -89,10 +84,10 @@ export async function getXpubKeyInfo(hdPublicKey) {
89
84
  childNumber: node.node.childIndex,
90
85
  chain: binToHex(node.node.chainCode),
91
86
  data: binToHex(node.node.publicKey),
92
- fingerprint: binToHex((await hash160(node.node.publicKey)).slice(0, 4)),
87
+ fingerprint: binToHex(hash160(node.node.publicKey).slice(0, 4)),
93
88
  };
94
89
  }
95
90
 
96
91
  export async function getXpubKeyInfoObject(obj) {
97
- return await getXpubKeyInfo(obj.xpubkey);
92
+ return getXpubKeyInfo(obj.xpubkey);
98
93
  }
@@ -1,4 +1,4 @@
1
- import { ExchangeRate } from "../rate/ExchangeRate";
1
+ import { ExchangeRate } from "../rate/ExchangeRate.js";
2
2
 
3
3
  export function getUsdRate() {
4
4
  return ExchangeRate.get("usd");
@@ -4,11 +4,10 @@ import {
4
4
  deriveHdPublicNode,
5
5
  encodeHdPublicKey,
6
6
  HdKeyNetwork,
7
- instantiateBIP32Crypto,
8
7
  hexToBin,
9
8
  } from "@bitauth/libauth";
10
9
 
11
- export async function getXPubKey(
10
+ export function getXPubKey(
12
11
  seed: Uint8Array | string,
13
12
  derivationPath: string,
14
13
  network: string
@@ -16,19 +15,18 @@ export async function getXPubKey(
16
15
  if (typeof seed === "string") {
17
16
  seed = hexToBin(seed);
18
17
  }
19
- const crypto = await instantiateBIP32Crypto();
20
- let hdNode = deriveHdPrivateNodeFromSeed(crypto, seed);
18
+ let hdNode = deriveHdPrivateNodeFromSeed(seed);
21
19
  if (!hdNode.valid) {
22
20
  throw Error("Invalid private key derived from mnemonic seed");
23
21
  }
24
22
 
25
- let node = deriveHdPath(crypto, hdNode, derivationPath);
23
+ let node = deriveHdPath(hdNode, derivationPath);
26
24
  if (typeof node === "string") {
27
25
  throw node;
28
26
  }
29
- let parentPublicNode = deriveHdPublicNode(crypto, node);
27
+ let parentPublicNode = deriveHdPublicNode(node);
30
28
 
31
- let xPubKey = encodeHdPublicKey(crypto, {
29
+ let xPubKey = encodeHdPublicKey({
32
30
  network: network as HdKeyNetwork,
33
31
  node: parentPublicNode,
34
32
  });
@@ -3,7 +3,7 @@ import { hexToBin } from "@bitauth/libauth";
3
3
 
4
4
  test("Should calculate the correct hash from a publicKey", async () => {
5
5
  let pk = "02d531ce83a065cdc342b1e709106741bb070ea7aaec29d012f2dba956b9027675";
6
- let pkh = await hash160(hexToBin(pk));
6
+ let pkh = hash160(hexToBin(pk));
7
7
  expect(pkh).toStrictEqual(
8
8
  hexToBin("e8f538181a07625fc5b2194ea9fa3815f42900a2")
9
9
  );
@@ -11,7 +11,7 @@ test("Should calculate the correct hash from a publicKey", async () => {
11
11
 
12
12
  test("Should calculate the correct hash from a publicKey", async () => {
13
13
  let pk = "02b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a8737";
14
- let pkh = await hash160(hexToBin(pk));
14
+ let pkh = hash160(hexToBin(pk));
15
15
  expect(pkh).toStrictEqual(
16
16
  hexToBin("93ce48570b55c42c2af816aeaba06cfee1224fae")
17
17
  );
@@ -1,4 +1,4 @@
1
- import { instantiateSha256, instantiateRipemd160 } from "@bitauth/libauth";
1
+ import { ripemd160, sha256 } from "@bitauth/libauth";
2
2
 
3
3
  /**
4
4
  * hash160 - Calculate the sha256, ripemd160 hash of a value
@@ -7,8 +7,6 @@ import { instantiateSha256, instantiateRipemd160 } from "@bitauth/libauth";
7
7
  *
8
8
  * @returns a promise to the hash160 value of the input
9
9
  */
10
- export async function hash160(message: Uint8Array) {
11
- const ripemd160 = await instantiateRipemd160();
12
- const sha256 = await instantiateSha256();
10
+ export function hash160(message: Uint8Array) {
13
11
  return ripemd160.hash(sha256.hash(message));
14
12
  }
package/src/util/index.ts CHANGED
@@ -1,30 +1,36 @@
1
- export { amountInSatoshi } from "./amountInSatoshi";
2
- export { asSendRequestObject } from "./asSendRequestObject";
3
- export { atob, btoa } from "./base64";
4
- export { binToHex, hexToBin } from "@bitauth/libauth";
5
- export { convert, convertObject } from "./convert";
6
- export { delay } from "./delay";
7
- export { derivedNetwork } from "./deriveNetwork";
8
- export { derivePublicKeyHash } from "./derivePublicKeyHash";
1
+ export { amountInSatoshi } from "./amountInSatoshi.js";
2
+ export { asSendRequestObject } from "./asSendRequestObject.js";
3
+ export { atob, btoa } from "./base64.js";
4
+ export {
5
+ binToHex,
6
+ hexToBin,
7
+ utf8ToBin,
8
+ binToBase64,
9
+ sha256,
10
+ } from "@bitauth/libauth";
11
+ export { convert, convertObject } from "./convert.js";
12
+ export { delay } from "./delay.js";
13
+ export { derivedNetwork } from "./deriveNetwork.js";
14
+ export { derivePublicKeyHash } from "./derivePublicKeyHash.js";
9
15
  export {
10
16
  getAddrsByXpubKey,
11
17
  getAddrsByXpubKeyObject,
12
18
  getXpubKeyInfo,
13
19
  getXpubKeyInfoObject,
14
- } from "../util/getAddrsByXpubKey";
15
- export { getRuntimePlatform, RuntimePlatform } from "./getRuntimePlatform";
16
- export { getUsdRate } from "./getUsdRate";
17
- export { hash160 } from "./hash160";
18
- export { ExchangeRate } from "../rate/ExchangeRate";
19
- export { sanitizeAddress } from "./sanitizeAddress";
20
- export { sanitizeUnit } from "./sanitizeUnit";
21
- export { getRandomInt } from "./randomInt";
22
- export { getXPubKey } from "../util/getXPubKey";
23
- import * as randomValues from "./randomValues";
20
+ } from "../util/getAddrsByXpubKey.js";
21
+ export { getRuntimePlatform, RuntimePlatform } from "./getRuntimePlatform.js";
22
+ export { getUsdRate } from "./getUsdRate.js";
23
+ export { hash160 } from "./hash160.js";
24
+ export { ExchangeRate } from "../rate/ExchangeRate.js";
25
+ export { sanitizeAddress } from "./sanitizeAddress.js";
26
+ export { sanitizeUnit } from "./sanitizeUnit.js";
27
+ export { getRandomInt } from "./randomInt.js";
28
+ export { getXPubKey } from "../util/getXPubKey.js";
29
+ import * as randomValues from "./randomValues.js";
24
30
  export { randomValues };
25
- export { sumUtxoValue } from "./sumUtxoValue";
31
+ export { sumUtxoValue } from "./sumUtxoValue.js";
26
32
  export {
27
33
  BalanceResponse,
28
34
  balanceFromSatoshi,
29
35
  balanceResponseFromSatoshi,
30
- } from "./balanceObjectFromSatoshi";
36
+ } from "./balanceObjectFromSatoshi.js";
@@ -1,10 +1,9 @@
1
- import { getRuntimePlatform } from "./getRuntimePlatform";
1
+ import { getRuntimePlatform } from "./getRuntimePlatform.js";
2
+ import crypto from "crypto";
2
3
 
3
4
  export function generateRandomBytes(len = 32) {
4
5
  // nodejs
5
6
  if (getRuntimePlatform() === "node") {
6
- //
7
- const crypto = eval("require")("crypto");
8
7
  return crypto.randomBytes(len);
9
8
  }
10
9
  // window, webworkers, service workers
@@ -1,13 +1,13 @@
1
- import { getRuntimePlatform } from "./getRuntimePlatform";
1
+ import { getRuntimePlatform } from "./getRuntimePlatform.js";
2
+ import crypto from "crypto";
2
3
 
3
4
  if (getRuntimePlatform() === "node") {
4
5
  if (!globalThis.crypto || !globalThis.crypto.getRandomValues) {
5
- const crypto = require("crypto");
6
- globalThis.crypto = crypto;
7
- (globalThis.crypto as any).getRandomValues = (buf: Uint8Array) => {
8
- const bytes = crypto.randomBytes(buf.length);
9
- buf.set(bytes);
10
- return buf;
11
- };
6
+ (globalThis as any).crypto = crypto;
7
+ // (globalThis.crypto as any).getRandomValues = (buf: Uint8Array) => {
8
+ // const bytes = crypto.randomBytes(buf.length);
9
+ // buf.set(bytes);
10
+ // return buf;
11
+ // };
12
12
  }
13
13
  }
@@ -1,4 +1,4 @@
1
- import { derivePrefix } from "./derivePublicKeyHash";
1
+ import { derivePrefix } from "./derivePublicKeyHash.js";
2
2
 
3
3
  // Assure address is prefixed.
4
4
  export function sanitizeAddress(address: string) {
@@ -1,4 +1,4 @@
1
- import { UnitEnum } from "../enum";
1
+ import { UnitEnum } from "../enum.js";
2
2
 
3
3
  export function sanitizeUnit(rawUnit: any): UnitEnum {
4
4
  if (rawUnit) {
@@ -1,7 +1,7 @@
1
- import { bchParam } from "../chain";
2
- import { UnitEnum } from "../enum";
3
- import { ExchangeRate } from "../rate/ExchangeRate";
4
- import { sanitizeUnit } from "../util/sanitizeUnit";
1
+ import { bchParam } from "../chain.js";
2
+ import { UnitEnum } from "../enum.js";
3
+ import { ExchangeRate } from "../rate/ExchangeRate.js";
4
+ import { sanitizeUnit } from "../util/sanitizeUnit.js";
5
5
 
6
6
  /**
7
7
  * converts given value and unit from satoshi
@@ -1,15 +1,21 @@
1
- import { OpReturnData, SendRequest } from "../wallet/model";
2
- import { amountInSatoshi } from "./amountInSatoshi";
1
+ import {
2
+ OpReturnData,
3
+ SendRequest,
4
+ TokenSendRequest,
5
+ } from "../wallet/model.js";
6
+ import { amountInSatoshi } from "./amountInSatoshi.js";
3
7
 
4
8
  // This function sums a list of send request objects
5
9
  export async function sumSendRequestAmounts(
6
- requests: Array<SendRequest | OpReturnData>
10
+ requests: Array<SendRequest | TokenSendRequest | OpReturnData>
7
11
  ) {
8
12
  if (requests) {
9
13
  const balanceArray: (BigInt | Error)[] = await Promise.all(
10
- requests.map(async (r: SendRequest | OpReturnData) => {
14
+ requests.map(async (r: SendRequest | TokenSendRequest | OpReturnData) => {
11
15
  if (r instanceof SendRequest) {
12
16
  return BigInt(await amountInSatoshi(r.value, r.unit));
17
+ } else if (r instanceof TokenSendRequest) {
18
+ return BigInt(r.value || 1000);
13
19
  } else return BigInt(0);
14
20
  })
15
21
  );