mainnet-js 3.1.7 → 4.0.0-next.10

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 (267) hide show
  1. package/dist/module/cache/IndexedDbCache.d.ts +1 -1
  2. package/dist/module/cache/IndexedDbCache.d.ts.map +1 -1
  3. package/dist/module/cache/MemoryCache.d.ts +1 -1
  4. package/dist/module/cache/MemoryCache.d.ts.map +1 -1
  5. package/dist/module/cache/WebStorageCache.d.ts +1 -1
  6. package/dist/module/cache/WebStorageCache.d.ts.map +1 -1
  7. package/dist/module/cache/walletCache.d.ts +16 -6
  8. package/dist/module/cache/walletCache.d.ts.map +1 -1
  9. package/dist/module/cache/walletCache.js +92 -34
  10. package/dist/module/cache/walletCache.js.map +1 -1
  11. package/dist/module/cli.js +1 -2
  12. package/dist/module/cli.js.map +1 -1
  13. package/dist/module/db/index.d.ts +1 -1
  14. package/dist/module/db/index.d.ts.map +1 -1
  15. package/dist/module/db/index.js +1 -1
  16. package/dist/module/db/index.js.map +1 -1
  17. package/dist/module/enum.d.ts +1 -1
  18. package/dist/module/enum.d.ts.map +1 -1
  19. package/dist/module/history/getHistory.d.ts +1 -1
  20. package/dist/module/history/getHistory.d.ts.map +1 -1
  21. package/dist/module/history/getHistory.js +3 -3
  22. package/dist/module/history/getHistory.js.map +1 -1
  23. package/dist/module/index.d.ts +25 -22
  24. package/dist/module/index.d.ts.map +1 -1
  25. package/dist/module/index.js +33 -26
  26. package/dist/module/index.js.map +1 -1
  27. package/dist/module/interface.d.ts +12 -2
  28. package/dist/module/interface.d.ts.map +1 -1
  29. package/dist/module/interface.js.map +1 -1
  30. package/dist/module/libauth.d.ts +1 -1
  31. package/dist/module/libauth.d.ts.map +1 -1
  32. package/dist/module/libauth.js +1 -1
  33. package/dist/module/libauth.js.map +1 -1
  34. package/dist/module/mine/mine.d.ts +2 -7
  35. package/dist/module/mine/mine.d.ts.map +1 -1
  36. package/dist/module/mine/mine.js +6 -27
  37. package/dist/module/mine/mine.js.map +1 -1
  38. package/dist/module/network/Connection.d.ts +1 -12
  39. package/dist/module/network/Connection.d.ts.map +1 -1
  40. package/dist/module/network/Connection.js +24 -33
  41. package/dist/module/network/Connection.js.map +1 -1
  42. package/dist/module/network/ElectrumNetworkProvider.d.ts +16 -17
  43. package/dist/module/network/ElectrumNetworkProvider.d.ts.map +1 -1
  44. package/dist/module/network/ElectrumNetworkProvider.js +91 -93
  45. package/dist/module/network/ElectrumNetworkProvider.js.map +1 -1
  46. package/dist/module/network/MockNetworkProvider.d.ts +28 -0
  47. package/dist/module/network/MockNetworkProvider.d.ts.map +1 -0
  48. package/dist/module/network/MockNetworkProvider.js +74 -0
  49. package/dist/module/network/MockNetworkProvider.js.map +1 -0
  50. package/dist/module/network/NetworkProvider.d.ts +9 -2
  51. package/dist/module/network/NetworkProvider.d.ts.map +1 -1
  52. package/dist/module/network/configuration.d.ts +2 -4
  53. package/dist/module/network/configuration.d.ts.map +1 -1
  54. package/dist/module/network/configuration.js +25 -50
  55. package/dist/module/network/configuration.js.map +1 -1
  56. package/dist/module/network/constant.d.ts +7 -7
  57. package/dist/module/network/constant.d.ts.map +1 -1
  58. package/dist/module/network/constant.js +21 -24
  59. package/dist/module/network/constant.js.map +1 -1
  60. package/dist/module/network/default.d.ts +5 -3
  61. package/dist/module/network/default.d.ts.map +1 -1
  62. package/dist/module/network/default.js +29 -51
  63. package/dist/module/network/default.js.map +1 -1
  64. package/dist/module/network/index.d.ts +4 -4
  65. package/dist/module/network/index.d.ts.map +1 -1
  66. package/dist/module/network/index.js +2 -2
  67. package/dist/module/network/index.js.map +1 -1
  68. package/dist/module/network/interface.d.ts +0 -6
  69. package/dist/module/network/interface.d.ts.map +1 -1
  70. package/dist/module/rate/ExchangeRate.d.ts +1 -1
  71. package/dist/module/rate/ExchangeRate.d.ts.map +1 -1
  72. package/dist/module/rate/ExchangeRate.js +13 -7
  73. package/dist/module/rate/ExchangeRate.js.map +1 -1
  74. package/dist/module/transaction/Wif.d.ts +3 -3
  75. package/dist/module/transaction/Wif.d.ts.map +1 -1
  76. package/dist/module/transaction/Wif.js +4 -4
  77. package/dist/module/transaction/Wif.js.map +1 -1
  78. package/dist/module/transaction/allocateFee.d.ts +1 -1
  79. package/dist/module/transaction/allocateFee.d.ts.map +1 -1
  80. package/dist/module/transaction/allocateFee.js +2 -2
  81. package/dist/module/transaction/allocateFee.js.map +1 -1
  82. package/dist/module/util/deriveCashaddr.js.map +1 -1
  83. package/dist/module/util/deriveNetwork.js +1 -1
  84. package/dist/module/util/deriveNetwork.js.map +1 -1
  85. package/dist/module/util/getAddrsByXpubKey.js +1 -1
  86. package/dist/module/util/getAddrsByXpubKey.js.map +1 -1
  87. package/dist/module/util/getXPubKey.js +1 -1
  88. package/dist/module/util/getXPubKey.js.map +1 -1
  89. package/dist/module/util/hd.d.ts +2 -0
  90. package/dist/module/util/hd.d.ts.map +1 -1
  91. package/dist/module/util/hd.js +41 -0
  92. package/dist/module/util/hd.js.map +1 -1
  93. package/dist/module/util/index.d.ts +7 -9
  94. package/dist/module/util/index.d.ts.map +1 -1
  95. package/dist/module/util/index.js +7 -9
  96. package/dist/module/util/index.js.map +1 -1
  97. package/dist/module/util/transaction.js +1 -1
  98. package/dist/module/util/transaction.js.map +1 -1
  99. package/dist/module/wallet/Base.d.ts +13 -9
  100. package/dist/module/wallet/Base.d.ts.map +1 -1
  101. package/dist/module/wallet/Base.js +54 -58
  102. package/dist/module/wallet/Base.js.map +1 -1
  103. package/dist/module/wallet/HDWallet.d.ts.map +1 -1
  104. package/dist/module/wallet/HDWallet.js +19 -38
  105. package/dist/module/wallet/HDWallet.js.map +1 -1
  106. package/dist/module/wallet/Util.d.ts +4 -22
  107. package/dist/module/wallet/Util.d.ts.map +1 -1
  108. package/dist/module/wallet/Util.js +75 -102
  109. package/dist/module/wallet/Util.js.map +1 -1
  110. package/dist/module/wallet/Watch.d.ts +24 -5
  111. package/dist/module/wallet/Watch.d.ts.map +1 -1
  112. package/dist/module/wallet/Watch.js +141 -17
  113. package/dist/module/wallet/Watch.js.map +1 -1
  114. package/dist/module/wallet/Wif.d.ts +2 -6
  115. package/dist/module/wallet/Wif.d.ts.map +1 -1
  116. package/dist/module/wallet/Wif.js +3 -69
  117. package/dist/module/wallet/Wif.js.map +1 -1
  118. package/dist/module/wallet/createWallet.d.ts +1 -1
  119. package/dist/module/wallet/createWallet.d.ts.map +1 -1
  120. package/dist/module/wallet/createWallet.js +2 -1
  121. package/dist/module/wallet/createWallet.js.map +1 -1
  122. package/dist/module/wallet/interface.d.ts +3 -2
  123. package/dist/module/wallet/interface.d.ts.map +1 -1
  124. package/dist/module/wallet/model.d.ts +2 -1
  125. package/dist/module/wallet/model.d.ts.map +1 -1
  126. package/dist/module/wallet/model.js +1 -1
  127. package/dist/module/wallet/model.js.map +1 -1
  128. package/package.json +17 -29
  129. package/dist/index.html +0 -9
  130. package/dist/mainnet-3.1.7.js +0 -2066
  131. package/dist/module/network/util.d.ts +0 -3
  132. package/dist/module/network/util.d.ts.map +0 -1
  133. package/dist/module/network/util.js +0 -27
  134. package/dist/module/network/util.js.map +0 -1
  135. package/dist/module/test/expect.d.ts +0 -12
  136. package/dist/module/test/expect.d.ts.map +0 -1
  137. package/dist/module/test/expect.js +0 -47
  138. package/dist/module/test/expect.js.map +0 -1
  139. package/dist/module/test/fetch.d.ts +0 -3
  140. package/dist/module/test/fetch.d.ts.map +0 -1
  141. package/dist/module/test/fetch.js +0 -32
  142. package/dist/module/test/fetch.js.map +0 -1
  143. package/dist/module/util/randomBytes.d.ts +0 -2
  144. package/dist/module/util/randomBytes.d.ts.map +0 -1
  145. package/dist/module/util/randomBytes.js +0 -13
  146. package/dist/module/util/randomBytes.js.map +0 -1
  147. package/dist/tsconfig.tsbuildinfo +0 -1
  148. package/src/cache/IndexedDbCache.test.ts +0 -15
  149. package/src/cache/IndexedDbCache.ts +0 -172
  150. package/src/cache/MemoryCache.test.ts +0 -15
  151. package/src/cache/MemoryCache.ts +0 -32
  152. package/src/cache/WebStorageCache.test.ts +0 -15
  153. package/src/cache/WebStorageCache.ts +0 -38
  154. package/src/cache/index.ts +0 -2
  155. package/src/cache/interface.ts +0 -9
  156. package/src/cache/walletCache.ts +0 -254
  157. package/src/chain.ts +0 -3
  158. package/src/cli.ts +0 -32
  159. package/src/config.ts +0 -23
  160. package/src/constant.ts +0 -27
  161. package/src/db/ExchangeRateProvider.ts +0 -28
  162. package/src/db/StorageProvider.ts +0 -64
  163. package/src/db/index.ts +0 -2
  164. package/src/db/interface.ts +0 -11
  165. package/src/enum.ts +0 -34
  166. package/src/history/getHistory.test.ts +0 -290
  167. package/src/history/getHistory.ts +0 -411
  168. package/src/history/interface.ts +0 -24
  169. package/src/index.ts +0 -48
  170. package/src/interface.ts +0 -72
  171. package/src/libauth.ts +0 -11
  172. package/src/message/index.ts +0 -2
  173. package/src/message/interface.ts +0 -40
  174. package/src/message/signed.test.ts +0 -309
  175. package/src/message/signed.ts +0 -201
  176. package/src/mine/index.ts +0 -1
  177. package/src/mine/mine.test.ts +0 -10
  178. package/src/mine/mine.ts +0 -42
  179. package/src/network/Connection.test.ts +0 -51
  180. package/src/network/Connection.ts +0 -73
  181. package/src/network/ElectrumNetworkProvider.ts +0 -657
  182. package/src/network/NetworkProvider.ts +0 -180
  183. package/src/network/Rpc.test.ts +0 -130
  184. package/src/network/configuration.test.ts +0 -59
  185. package/src/network/configuration.ts +0 -72
  186. package/src/network/constant.ts +0 -43
  187. package/src/network/default.ts +0 -120
  188. package/src/network/electrum.test.ts +0 -28
  189. package/src/network/getRelayFeeCache.test.ts +0 -15
  190. package/src/network/getRelayFeeCache.ts +0 -23
  191. package/src/network/index.ts +0 -14
  192. package/src/network/interface.ts +0 -80
  193. package/src/network/util.test.ts +0 -24
  194. package/src/network/util.ts +0 -30
  195. package/src/rate/ExchangeRate.test.headless.js +0 -35
  196. package/src/rate/ExchangeRate.test.ts +0 -51
  197. package/src/rate/ExchangeRate.ts +0 -142
  198. package/src/test/expect.ts +0 -59
  199. package/src/test/fetch.ts +0 -39
  200. package/src/test/json.test.ts +0 -13
  201. package/src/transaction/Wif.ts +0 -680
  202. package/src/transaction/allocateFee.test.ts +0 -298
  203. package/src/transaction/allocateFee.ts +0 -149
  204. package/src/util/amountInSatoshi.test.ts +0 -27
  205. package/src/util/amountInSatoshi.ts +0 -33
  206. package/src/util/asSendRequestObject.ts +0 -81
  207. package/src/util/base64.test.ts +0 -39
  208. package/src/util/base64.ts +0 -12
  209. package/src/util/browserNotSupported.ts +0 -7
  210. package/src/util/checkForEmptySeed.ts +0 -9
  211. package/src/util/checkUtxos.ts +0 -29
  212. package/src/util/checkWifNetwork.ts +0 -24
  213. package/src/util/convert.test.ts +0 -46
  214. package/src/util/convert.ts +0 -50
  215. package/src/util/delay.ts +0 -3
  216. package/src/util/deriveCashaddr.test.ts +0 -164
  217. package/src/util/deriveCashaddr.ts +0 -143
  218. package/src/util/deriveLockscript.ts +0 -16
  219. package/src/util/deriveNetwork.ts +0 -19
  220. package/src/util/derivePublicKeyHash.test.ts +0 -55
  221. package/src/util/derivePublicKeyHash.ts +0 -64
  222. package/src/util/floor.test.ts +0 -21
  223. package/src/util/floor.ts +0 -4
  224. package/src/util/getAddrsByXpubKey.test.ts +0 -115
  225. package/src/util/getAddrsByXpubKey.ts +0 -86
  226. package/src/util/getRuntimePlatform.test.headless.js +0 -40
  227. package/src/util/getRuntimePlatform.test.ts +0 -5
  228. package/src/util/getRuntimePlatform.ts +0 -31
  229. package/src/util/getUsdRate.ts +0 -5
  230. package/src/util/getXPubKey.ts +0 -39
  231. package/src/util/hash160.test.ts +0 -18
  232. package/src/util/hash160.ts +0 -12
  233. package/src/util/hd.ts +0 -16
  234. package/src/util/header.test.ts +0 -34
  235. package/src/util/header.ts +0 -26
  236. package/src/util/index.ts +0 -33
  237. package/src/util/randomBytes.ts +0 -13
  238. package/src/util/randomInt.test.ts +0 -15
  239. package/src/util/randomInt.ts +0 -4
  240. package/src/util/sanitizeAddress.ts +0 -10
  241. package/src/util/sanitizeUnit.ts +0 -11
  242. package/src/util/satoshiToAmount.test.ts +0 -6
  243. package/src/util/satoshiToAmount.ts +0 -33
  244. package/src/util/sumSendRequestAmounts.ts +0 -34
  245. package/src/util/sumUtxoValue.ts +0 -27
  246. package/src/util/transaction.ts +0 -10
  247. package/src/wallet/Base.ts +0 -1563
  248. package/src/wallet/Cashtokens.test.headless.js +0 -730
  249. package/src/wallet/Cashtokens.test.ts +0 -1411
  250. package/src/wallet/HDWallet.test.ts +0 -1086
  251. package/src/wallet/HDWallet.ts +0 -992
  252. package/src/wallet/Util.test.ts +0 -134
  253. package/src/wallet/Util.ts +0 -191
  254. package/src/wallet/WalletCache.test.ts +0 -45
  255. package/src/wallet/Watch.ts +0 -441
  256. package/src/wallet/Wif.bip39.test.ts +0 -48
  257. package/src/wallet/Wif.test.ts +0 -1189
  258. package/src/wallet/Wif.ts +0 -687
  259. package/src/wallet/Wif.watchOnly.test.ts +0 -58
  260. package/src/wallet/createWallet.ts +0 -238
  261. package/src/wallet/enum.ts +0 -18
  262. package/src/wallet/interface.ts +0 -102
  263. package/src/wallet/model.test.ts +0 -24
  264. package/src/wallet/model.ts +0 -352
  265. package/tsconfig.browser.json +0 -11
  266. package/tsconfig.json +0 -33
  267. package/webpack.config.cjs +0 -132
@@ -1,4 +1,4 @@
1
- import { decodeHdPublicKey, encodeCashAddress, binToHex, CashAddressType, deriveHdPathRelative, } from "@bitauth/libauth";
1
+ import { binToHex, CashAddressType, decodeHdPublicKey, deriveHdPathRelative, encodeCashAddress, } from "@bitauth/libauth";
2
2
  import { hash160 } from "./hash160.js";
3
3
  /**
4
4
  * Derive cashsaddresses given the `xpub`, relative `path` and count of addresses to derive.
@@ -1 +1 @@
1
- {"version":3,"file":"getAddrsByXpubKey.js","sourceRoot":"","sources":["../../../src/util/getAddrsByXpubKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getAddrsByXpubKey.js","sourceRoot":"","sources":["../../../src/util/getAddrsByXpubKey.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { deriveHdPrivateNodeFromSeed, deriveHdPath, deriveHdPublicNode, encodeHdPublicKey, hexToBin, } from "@bitauth/libauth";
1
+ import { deriveHdPath, deriveHdPrivateNodeFromSeed, deriveHdPublicNode, encodeHdPublicKey, hexToBin, } from "@bitauth/libauth";
2
2
  export function getXPubKey(seed, derivationPath, network) {
3
3
  if (typeof seed === "string") {
4
4
  seed = hexToBin(seed);
@@ -1 +1 @@
1
- {"version":3,"file":"getXPubKey.js","sourceRoot":"","sources":["../../../src/util/getXPubKey.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAEjB,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,UAAU,CACxB,IAAyB,EACzB,cAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,MAAM,GAAG,2BAA2B,CAAC,IAAI,EAAE;QAC7C,cAAc,EAAE,IAAI,EAAE,iFAAiF;QACvG,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC;IACb,CAAC;IACD,IAAI,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEhD,IAAI,OAAO,GAAG,iBAAiB,CAC7B;QACE,OAAO,EAAE,OAAuB;QAChC,IAAI,EAAE,gBAAgB;KACvB,EACD;QACE,WAAW,EAAE,IAAI;KAClB,CACF,CAAC,WAAW,CAAC;IACd,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"getXPubKey.js","sourceRoot":"","sources":["../../../src/util/getXPubKey.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EAEjB,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,UAAU,CACxB,IAAyB,EACzB,cAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,MAAM,GAAG,2BAA2B,CAAC,IAAI,EAAE;QAC7C,cAAc,EAAE,IAAI,EAAE,iFAAiF;QACvG,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC;IACb,CAAC;IACD,IAAI,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEhD,IAAI,OAAO,GAAG,iBAAiB,CAC7B;QACE,OAAO,EAAE,OAAuB;QAChC,IAAI,EAAE,gBAAgB;KACvB,EACD;QACE,WAAW,EAAE,IAAI;KAClB,CACF,CAAC,WAAW,CAAC;IACd,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,3 +1,5 @@
1
1
  export declare const arrayRange: (start: number, stop: number) => number[];
2
2
  export declare const getNextUnusedIndex: (index: number, statuses: Array<string | null>) => number;
3
+ export declare function deriveHdPaths(mnemonic: string, network: string, hdPaths: string[]): Promise<any[]>;
4
+ export declare function getXPubKeys(mnemonic: string, network: string, paths?: string[]): Promise<any[]>;
3
5
  //# sourceMappingURL=hd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hd.d.ts","sourceRoot":"","sources":["../../../src/util/hd.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,UAAW,MAAM,QAAQ,MAAM,aACa,CAAC;AAEpE,eAAO,MAAM,kBAAkB,UACtB,MAAM,YACH,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAC7B,MASF,CAAC"}
1
+ {"version":3,"file":"hd.d.ts","sourceRoot":"","sources":["../../../src/util/hd.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,UAAU,UAAW,MAAM,QAAQ,MAAM,aACa,CAAC;AAEpE,eAAO,MAAM,kBAAkB,UACtB,MAAM,YACH,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAC7B,MASF,CAAC;AAEF,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,GAAG,EAAE,CAAC,CAyChB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,GAAG,EAAE,CAAC,CAEhB"}
@@ -1,3 +1,7 @@
1
+ import { deriveHdPath, deriveHdPrivateNodeFromSeed, deriveHdPublicNode, deriveSeedFromBip39Mnemonic, encodeHdPublicKey, } from "@bitauth/libauth";
2
+ import { DERIVATION_PATHS } from "../constant.js";
3
+ import { XPubKey } from "../wallet/model.js";
4
+ import { checkForEmptySeed } from "./checkForEmptySeed.js";
1
5
  export const arrayRange = (start, stop) => Array.from({ length: stop - start }, (_, index) => start + index);
2
6
  export const getNextUnusedIndex = (index, statuses) => {
3
7
  if (index === -1) {
@@ -8,4 +12,41 @@ export const getNextUnusedIndex = (index, statuses) => {
8
12
  }
9
13
  return index;
10
14
  };
15
+ export async function deriveHdPaths(mnemonic, network, hdPaths) {
16
+ const seed = deriveSeedFromBip39Mnemonic(mnemonic);
17
+ checkForEmptySeed(seed);
18
+ const hdNode = deriveHdPrivateNodeFromSeed(seed, {
19
+ assumeValidity: true,
20
+ throwErrors: true,
21
+ });
22
+ const result = [];
23
+ for (const path of hdPaths) {
24
+ if (path === "m") {
25
+ throw Error("Storing or sharing of parent public key may lead to loss of funds. Storing or sharing *root* parent public keys is strongly discouraged, although all parent keys have risk. See: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#implications");
26
+ }
27
+ const childNode = deriveHdPath(hdNode, path);
28
+ if (typeof childNode === "string") {
29
+ throw Error(childNode);
30
+ }
31
+ const node = deriveHdPublicNode(childNode);
32
+ if (typeof node === "string") {
33
+ throw Error(node);
34
+ }
35
+ const xPubKey = encodeHdPublicKey({
36
+ network: network,
37
+ node: node,
38
+ }, {
39
+ throwErrors: true,
40
+ }).hdPublicKey;
41
+ const key = new XPubKey({
42
+ path: path,
43
+ xPubKey: xPubKey,
44
+ });
45
+ result.push(await key.ready());
46
+ }
47
+ return result;
48
+ }
49
+ export async function getXPubKeys(mnemonic, network, paths) {
50
+ return deriveHdPaths(mnemonic, network, paths ?? DERIVATION_PATHS);
51
+ }
11
52
  //# sourceMappingURL=hd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hd.js","sourceRoot":"","sources":["../../../src/util/hd.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CACxD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAa,EACb,QAA8B,EACtB,EAAE;IACV,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
1
+ {"version":3,"file":"hd.js","sourceRoot":"","sources":["../../../src/util/hd.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,2BAA2B,EAC3B,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,GAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CACxD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAa,EACb,QAA8B,EACtB,EAAE;IACV,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,OAAe,EACf,OAAiB;IAEjB,MAAM,IAAI,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACnD,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,2BAA2B,CAAC,IAAI,EAAE;QAC/C,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAU,EAAE,CAAC;IAEzB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,KAAK,CACT,+PAA+P,CAChQ,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAC/B;YACE,OAAO,EAAE,OAAuB;YAChC,IAAI,EAAE,IAAI;SACX,EACD;YACE,WAAW,EAAE,IAAI;SAClB,CACF,CAAC,WAAW,CAAC;QACd,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC;YACtB,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,OAAe,EACf,KAAgB;IAEhB,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,gBAAgB,CAAC,CAAC;AACrE,CAAC"}
@@ -1,23 +1,21 @@
1
+ export { binToHex, hexToBin } from "@bitauth/libauth";
2
+ export { ExchangeRate, getExchangeRatePromise } from "../rate/ExchangeRate.js";
1
3
  export { amountInSatoshi } from "./amountInSatoshi.js";
2
4
  export { asSendRequestObject } from "./asSendRequestObject.js";
3
5
  export { atob, btoa } from "./base64.js";
4
- export { binToHex, hexToBin, utf8ToBin, binToBase64, sha256, } from "@bitauth/libauth";
6
+ export * from "./checkUtxos.js";
5
7
  export * from "./convert.js";
6
8
  export { delay } from "./delay.js";
9
+ export * from "./deriveCashaddr.js";
7
10
  export { derivedNetwork } from "./deriveNetwork.js";
8
11
  export { derivePublicKeyHash } from "./derivePublicKeyHash.js";
9
- export * from "./deriveCashaddr.js";
10
- export { getAddrsByXpubKey, getAddrsByXpubKeyObject, getXpubKeyInfo, getXpubKeyInfoObject, } from "../util/getAddrsByXpubKey.js";
11
12
  export { getRuntimePlatform, RuntimePlatform } from "./getRuntimePlatform.js";
12
13
  export { getUsdRate } from "./getUsdRate.js";
13
14
  export { hash160 } from "./hash160.js";
14
- export { ExchangeRate, ExchageRatePromise } from "../rate/ExchangeRate.js";
15
+ export { decodeHeader } from "./header.js";
16
+ export { getWeakRandomInt } from "./randomInt.js";
15
17
  export { sanitizeAddress } from "./sanitizeAddress.js";
16
18
  export { sanitizeUnit } from "./sanitizeUnit.js";
17
- export { getWeakRandomInt } from "./randomInt.js";
18
- export { getXPubKey } from "../util/getXPubKey.js";
19
- export { sumUtxoValue } from "./sumUtxoValue.js";
20
19
  export * from "./sumUtxoValue.js";
21
- export { decodeHeader } from "./header.js";
22
- export * from "./checkUtxos.js";
20
+ export { sumUtxoValue } from "./sumUtxoValue.js";
23
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,WAAW,EACX,MAAM,GACP,MAAM,kBAAkB,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,23 +1,21 @@
1
+ export { binToHex, hexToBin } from "@bitauth/libauth";
2
+ export { ExchangeRate, getExchangeRatePromise } from "../rate/ExchangeRate.js";
1
3
  export { amountInSatoshi } from "./amountInSatoshi.js";
2
4
  export { asSendRequestObject } from "./asSendRequestObject.js";
3
5
  export { atob, btoa } from "./base64.js";
4
- export { binToHex, hexToBin, utf8ToBin, binToBase64, sha256, } from "@bitauth/libauth";
6
+ export * from "./checkUtxos.js";
5
7
  export * from "./convert.js";
6
8
  export { delay } from "./delay.js";
9
+ export * from "./deriveCashaddr.js";
7
10
  export { derivedNetwork } from "./deriveNetwork.js";
8
11
  export { derivePublicKeyHash } from "./derivePublicKeyHash.js";
9
- export * from "./deriveCashaddr.js";
10
- export { getAddrsByXpubKey, getAddrsByXpubKeyObject, getXpubKeyInfo, getXpubKeyInfoObject, } from "../util/getAddrsByXpubKey.js";
11
12
  export { getRuntimePlatform, RuntimePlatform } from "./getRuntimePlatform.js";
12
13
  export { getUsdRate } from "./getUsdRate.js";
13
14
  export { hash160 } from "./hash160.js";
14
- export { ExchangeRate, ExchageRatePromise } from "../rate/ExchangeRate.js";
15
+ export { decodeHeader } from "./header.js";
16
+ export { getWeakRandomInt } from "./randomInt.js";
15
17
  export { sanitizeAddress } from "./sanitizeAddress.js";
16
18
  export { sanitizeUnit } from "./sanitizeUnit.js";
17
- export { getWeakRandomInt } from "./randomInt.js";
18
- export { getXPubKey } from "../util/getXPubKey.js";
19
- export { sumUtxoValue } from "./sumUtxoValue.js";
20
19
  export * from "./sumUtxoValue.js";
21
- export { decodeHeader } from "./header.js";
22
- export * from "./checkUtxos.js";
20
+ export { sumUtxoValue } from "./sumUtxoValue.js";
23
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,WAAW,EACX,MAAM,GACP,MAAM,kBAAkB,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { hexToBin, sha256, binToHex } from "@bitauth/libauth";
1
+ import { binToHex, hexToBin, sha256 } from "@bitauth/libauth";
2
2
  export async function getTransactionHash(rawTransactionHex) {
3
3
  const transactionBin = hexToBin(rawTransactionHex);
4
4
  // transaction hash is a double sha256 of a raw transaction data, reversed byte order
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/util/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,iBAAyB;IAEzB,MAAM,cAAc,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAEnD,qFAAqF;IACrF,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/util/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,iBAAyB;IAEzB,MAAM,cAAc,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAEnD,qFAAqF;IACrF,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACtE,CAAC"}
@@ -2,14 +2,12 @@ import { CashAddressNetworkPrefix } from "@bitauth/libauth";
2
2
  import { WalletCache } from "../cache/walletCache.js";
3
3
  import StorageProvider from "../db/StorageProvider.js";
4
4
  import { NetworkType } from "../enum.js";
5
- import { HexHeaderI, TxI, Utxo } from "../interface.js";
6
- import { SignedMessageResponseI, VerifyMessageResponseI } from "../message/interface.js";
5
+ import { DsproofData, HexHeaderI, TxI, Utxo } from "../interface.js";
7
6
  import ElectrumNetworkProvider from "../network/ElectrumNetworkProvider.js";
8
7
  import { ElectrumRawTransaction } from "../network/interface.js";
9
8
  import { WalletTypeEnum } from "./enum.js";
10
9
  import { CancelFn, SendRequestOptionsI, WaitForTransactionOptions, WaitForTransactionResponse, WalletI, WalletInfoI } from "./interface.js";
11
- import { OpReturnData, SendRequest, SendRequestArray, SendRequestType, SendResponse, TokenBurnRequest, TokenGenesisRequest, TokenMintRequest, TokenSendRequest } from "./model.js";
12
- import { Util } from "./Util.js";
10
+ import { OpReturnData, SendRequest, SendRequestArray, SendRequestType, SendResponse, SourceOutput, TokenBurnRequest, TokenGenesisRequest, TokenMintRequest, TokenSendRequest } from "./model.js";
13
11
  export declare const placeholderCashAddr = "bitcoincash:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqfnhks603";
14
12
  export declare const placeholderTokenAddr = "bitcoincash:zqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqweyg7usz";
15
13
  /**
@@ -25,11 +23,8 @@ export declare class BaseWallet implements WalletI {
25
23
  _slpSemiAware: boolean;
26
24
  readonly isTestnet: boolean;
27
25
  name: string;
28
- _util?: Util;
29
26
  protected cancelFns: CancelFn[];
30
27
  get networkPrefix(): CashAddressNetworkPrefix;
31
- get util(): Util;
32
- static get util(): Util;
33
28
  getInfo(): WalletInfoI;
34
29
  slpSemiAware(value?: boolean): this;
35
30
  protected getNetworkProvider(network?: NetworkType): any;
@@ -203,6 +198,16 @@ export declare class BaseWallet implements WalletI {
203
198
  */
204
199
  watchTransactions(callback: (transaction: ElectrumRawTransaction) => void): Promise<CancelFn>;
205
200
  watchTokenTransactions(callback: (tx: ElectrumRawTransaction) => void): Promise<CancelFn>;
201
+ /**
202
+ * Watch for double-spend proofs on incoming transactions.
203
+ * For each new unconfirmed transaction, subscribes to its dsproof
204
+ * for a short window. If a dsproof arrives, the callback is invoked.
205
+ *
206
+ * @param callback - Called with the dsproof data when a double-spend is detected
207
+ * @param window - How long (ms) to watch each transaction for dsproofs (default 5000)
208
+ * @returns Cancel function to stop watching
209
+ */
210
+ watchDoubleSpends(callback: (dsproof: DsproofData) => void, window?: number): Promise<CancelFn>;
206
211
  protected _getMaxAmountToSend(params?: {
207
212
  outputCount?: number;
208
213
  options?: SendRequestOptionsI;
@@ -242,6 +247,7 @@ export declare class BaseWallet implements WalletI {
242
247
  * @returns the transaction id sent to the network
243
248
  */
244
249
  protected sendMaxRaw(cashaddr: string, options?: SendRequestOptionsI, privateKey?: Uint8Array): Promise<SendResponse>;
250
+ protected _send(encodedTransaction: Uint8Array, categories: string[], sourceOutputs: SourceOutput[] | undefined, options?: SendRequestOptionsI): Promise<SendResponse>;
245
251
  /**
246
252
  * encodeTransaction Encode and sign a transaction given a list of sendRequests, options and estimate fees.
247
253
  * @param {SendRequest[]} sendRequests SendRequests
@@ -351,8 +357,6 @@ export declare class BaseWallet implements WalletI {
351
357
  getAllNftTokenBalances(): Promise<{
352
358
  [category: string]: number;
353
359
  }>;
354
- sign(message: string, privateKey?: Uint8Array | undefined): SignedMessageResponseI;
355
- verify(message: string, sig: string, address?: string, publicKey?: Uint8Array): VerifyMessageResponseI;
356
360
  }
357
361
  /**
358
362
  * _checkContextSafety (internal) if running in nodejs, will disable saving
@@ -1 +1 @@
1
- {"version":3,"file":"Base.d.ts","sourceRoot":"","sources":["../../../src/wallet/Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,eAAe,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAwB,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAiB,GAAG,EAAE,IAAI,EAAU,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,uBAAuB,MAAM,uCAAuC,CAAC;AAE5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAiBjE,OAAO,EAAiB,cAAc,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,OAAO,EACP,WAAW,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,eAAO,MAAM,mBAAmB,2DAC0B,CAAC;AAC3D,eAAO,MAAM,oBAAoB,2DACyB,CAAC;AAE3D;;;GAGG;AACH,qBAAa,UAAW,YAAW,OAAO;IACxC,OAAc,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;IAEvD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,aAAa,EAAE,OAAO,CAAS;IAI/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAM;IAClB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAM;IAErC,IAAW,aAAa,IAAI,wBAAwB,CAEnD;IAGD,IAAW,IAAI,SAMd;IAGD,WAAkB,IAAI,SAErB;IAGM,OAAO,IAAI,WAAW;IAItB,YAAY,CAAC,KAAK,GAAE,OAAc,GAAG,IAAI;IAMhD,SAAS,CAAC,kBAAkB,CAE1B,OAAO,GAAE,WAAiC,GACzC,GAAG;IAIN;;;;;;;;OAQG;IACI,iBAAiB,IAAI,MAAM;IAKlC;;;;;;;;OAQG;IACI,gBAAgB,IAAI,MAAM;IAKjC;;;;OAIG;IACI,sBAAsB,IAAI,MAAM;IAKvC;;;;OAIG;IACI,qBAAqB,IAAI,MAAM;IAM/B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAS3C;;;;;OAKG;gBACS,OAAO,cAAsB;IASzC;;;;;;;;;;OAUG;cACa,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,IAAI,CAAC;IAqChB;;;;;;;;;;;OAWG;cACa,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IA4BhB;;;;;;;OAOG;cACa,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAoB5D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3C;;;;OAIG;IACI,UAAU,IAAI,MAAM;IAQpB,QAAQ;IAKf;;;;;OAKG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM;IAU/B;;;;;;;;OAQG;WACiB,KAAK,CAAC,CAAC,SAAS,OAAO,UAAU,EACnD,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAI3B;;;;;;;;;;;OAWG;WACiB,YAAY,CAAC,CAAC,SAAS,OAAO,UAAU,EAC1D,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAI3B;;;;;;;OAOG;WACiB,WAAW,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAInB,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD;;;OAGG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAM3B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;IAWrD;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC;;;;;OAKG;IACU,WAAW,CACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GACzD,OAAO,CAAC,QAAQ,CAAC;IAQpB;;;OAGG;IACU,aAAa,CACxB,QAAQ,GAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,GACL,OAAO,CAAC,IAAI,CAAC;IAIH,YAAY,CACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,OAAO,CAAC,QAAQ,CAAC;IASP,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc9C,iBAAiB,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,OAAO,CAAC,QAAQ,CAAC;IASP,mBAAmB,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAelB;;;;OAIG;IACU,sBAAsB,CACjC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACjC,OAAO,CAAC,QAAQ,CAAC;IA6BpB;;;;OAIG;IACU,iBAAiB,CAC5B,QAAQ,EAAE,CAAC,WAAW,EAAE,sBAAsB,KAAK,IAAI,GACtD,OAAO,CAAC,QAAQ,CAAC;IAOP,sBAAsB,CACjC,QAAQ,EAAE,CAAC,EAAE,EAAE,sBAAsB,KAAK,IAAI,GAC7C,OAAO,CAAC,QAAQ,CAAC;cAUJ,mBAAmB,CACjC,MAAM,GAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,mBAAmB,CAAC;QAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;KAIzB,GACA,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IA+D/B,kBAAkB,CAC7B,MAAM,GAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,mBAAmB,CAAC;KAI/B,GACA,OAAO,CAAC,MAAM,CAAC;IAMlB;;;;;;;OAOG;IACU,IAAI,CACf,QAAQ,EACJ,WAAW,GACX,gBAAgB,GAChB,YAAY,GACZ,KAAK,CAAC,WAAW,GAAG,gBAAgB,GAAG,YAAY,CAAC,GACpD,gBAAgB,EAAE,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IA+BxB;;;;;;;OAOG;IACU,OAAO,CAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAIxB;;;;;;;OAOG;cACa,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,mBAAmB,EAC7B,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,YAAY,CAAC;IAkDxB;;;;;OAKG;cACa,iBAAiB,CAC/B,QAAQ,EACJ,WAAW,GACX,gBAAgB,GAChB,YAAY,GACZ,KAAK,CAAC,WAAW,GAAG,gBAAgB,GAAG,YAAY,CAAC,GACpD,gBAAgB,EAAE,EACtB,aAAa,GAAE,OAAe,EAC9B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,UAAU,CAAC,EAAE,UAAU;;;;;IAgMZ,iBAAiB,CAC5B,WAAW,EAAE,UAAU,EACvB,gBAAgB,GAAE,OAAc,GAC/B,OAAO,CAAC,MAAM,CAAC;IAYL,aAAa,CACxB,UAAU,GAAE,MAAU,EACtB,QAAQ,GAAE,MAAW,GACpB,OAAO,CAAC,GAAG,EAAE,CAAC;IAKJ,kBAAkB,CAC7B,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAe5B,kBAAkB,CAC7B,OAAO,GAAE,yBAIR,GACA,OAAO,CAAC,0BAA0B,CAAC;IAkEtC;;;;;;;OAOG;IACU,WAAW,CACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EACtC,iBAAiB,GAAE,OAAc,GAChC,OAAO,CAAC,QAAQ,CAAC;IAIpB;;;;;OAKG;IACU,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAO/D;;;;;;;;;;OAUG;IACU,YAAY,CACvB,cAAc,EAAE,mBAAmB,EACnC,YAAY,GAAE,eAAe,GAAG,eAAe,EAAO,EACtD,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAwCxB;;;;;;;;;;;OAWG;IACU,SAAS,CACpB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,EACxD,iBAAiB,GAAE,OAAe,EAClC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAwDxB;;;;;;;;;;;;;;;OAeG;IACU,SAAS,CACpB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAmGxB;;;;;OAKG;IACU,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAO9D;;;;;OAKG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO/D;;;;;;OAMG;IACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOlE;;;OAGG;IACU,mBAAmB,IAAI,OAAO,CAAC;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAc3E;;;OAGG;IACU,sBAAsB,IAAI,OAAO,CAAC;QAC7C,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;KAC5B,CAAC;IAeK,IAAI,CACT,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,UAAU,GAAG,SAAqB,GAC7C,sBAAsB;IAQlB,MAAM,CACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,UAAU,GACrB,sBAAsB;CAS1B;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,WAAqB,UAAU,SAU9D,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAsB7B;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,GACb,eAAe,GAAG,SAAS,CAK7B"}
1
+ {"version":3,"file":"Base.d.ts","sourceRoot":"","sources":["../../../src/wallet/Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,wBAAwB,EAAU,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,eAAe,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAwB,MAAM,YAAY,CAAC;AAC/D,OAAO,EACL,WAAW,EACX,UAAU,EAEV,GAAG,EACH,IAAI,EAEL,MAAM,iBAAiB,CAAC;AAEzB,OAAO,uBAAuB,MAAM,uCAAuC,CAAC;AAE5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAiBjE,OAAO,EAAiB,cAAc,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,OAAO,EACP,WAAW,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,mBAAmB,2DAC0B,CAAC;AAC3D,eAAO,MAAM,oBAAoB,2DACyB,CAAC;AAE3D;;;GAGG;AACH,qBAAa,UAAW,YAAW,OAAO;IACxC,OAAc,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;IAEvD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,aAAa,EAAE,OAAO,CAAS;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAM;IAClB,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAM;IAErC,IAAW,aAAa,IAAI,wBAAwB,CAEnD;IAGM,OAAO,IAAI,WAAW;IAItB,YAAY,CAAC,KAAK,GAAE,OAAc,GAAG,IAAI;IAMhD,SAAS,CAAC,kBAAkB,CAE1B,OAAO,GAAE,WAAiC,GACzC,GAAG;IAIN;;;;;;;;OAQG;IACI,iBAAiB,IAAI,MAAM;IAKlC;;;;;;;;OAQG;IACI,gBAAgB,IAAI,MAAM;IAKjC;;;;OAIG;IACI,sBAAsB,IAAI,MAAM;IAKvC;;;;OAIG;IACI,qBAAqB,IAAI,MAAM;IAM/B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAS3C;;;;;OAKG;gBACS,OAAO,cAAsB;IASzC;;;;;;;;;;OAUG;cACa,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,IAAI,CAAC;IAqChB;;;;;;;;;;;OAWG;cACa,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IA4BhB;;;;;;;OAOG;cACa,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAoB5D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3C;;;;OAIG;IACI,UAAU,IAAI,MAAM;IAQpB,QAAQ;IAKf;;;;;OAKG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM;IAU/B;;;;;;;;OAQG;WACiB,KAAK,CAAC,CAAC,SAAS,OAAO,UAAU,EACnD,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAI3B;;;;;;;;;;;OAWG;WACiB,YAAY,CAAC,CAAC,SAAS,OAAO,UAAU,EAC1D,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAI3B;;;;;;;OAOG;WACiB,WAAW,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAInB,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD;;;OAGG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAM3B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;IAWrD;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC;;;;;OAKG;IACU,WAAW,CACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GACzD,OAAO,CAAC,QAAQ,CAAC;IAQpB;;;OAGG;IACU,aAAa,CACxB,QAAQ,GAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,GACL,OAAO,CAAC,IAAI,CAAC;IAIH,YAAY,CACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,OAAO,CAAC,QAAQ,CAAC;IASP,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB9C,iBAAiB,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,OAAO,CAAC,QAAQ,CAAC;IASP,mBAAmB,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAqBlB;;;;OAIG;IACU,sBAAsB,CACjC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACjC,OAAO,CAAC,QAAQ,CAAC;IA6BpB;;;;OAIG;IACU,iBAAiB,CAC5B,QAAQ,EAAE,CAAC,WAAW,EAAE,sBAAsB,KAAK,IAAI,GACtD,OAAO,CAAC,QAAQ,CAAC;IAOP,sBAAsB,CACjC,QAAQ,EAAE,CAAC,EAAE,EAAE,sBAAsB,KAAK,IAAI,GAC7C,OAAO,CAAC,QAAQ,CAAC;IAUpB;;;;;;;;OAQG;IACU,iBAAiB,CAC5B,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,EACxC,MAAM,GAAE,MAAa,GACpB,OAAO,CAAC,QAAQ,CAAC;cAeJ,mBAAmB,CACjC,MAAM,GAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,mBAAmB,CAAC;QAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;KAIzB,GACA,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IA+D/B,kBAAkB,CAC7B,MAAM,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,mBAAmB,CAAA;KAG5D,GACA,OAAO,CAAC,MAAM,CAAC;IAMlB;;;;;;;OAOG;IACU,IAAI,CACf,QAAQ,EACJ,WAAW,GACX,gBAAgB,GAChB,YAAY,GACZ,KAAK,CAAC,WAAW,GAAG,gBAAgB,GAAG,YAAY,CAAC,GACpD,gBAAgB,EAAE,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAMxB;;;;;;;OAOG;IACU,OAAO,CAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAIxB;;;;;;;OAOG;cACa,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,mBAAmB,EAC7B,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,YAAY,CAAC;cAyBR,KAAK,CACnB,kBAAkB,EAAE,UAAU,EAC9B,UAAU,EAAE,MAAM,EAAE,EACpB,aAAa,EAAE,YAAY,EAAE,GAAG,SAAS,EACzC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAyCxB;;;;;OAKG;cACa,iBAAiB,CAC/B,QAAQ,EACJ,WAAW,GACX,gBAAgB,GAChB,YAAY,GACZ,KAAK,CAAC,WAAW,GAAG,gBAAgB,GAAG,YAAY,CAAC,GACpD,gBAAgB,EAAE,EACtB,aAAa,GAAE,OAAe,EAC9B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,UAAU,CAAC,EAAE,UAAU;;;;;IAgMZ,iBAAiB,CAC5B,WAAW,EAAE,UAAU,EACvB,gBAAgB,GAAE,OAAc,GAC/B,OAAO,CAAC,MAAM,CAAC;IAYL,aAAa,CACxB,UAAU,GAAE,MAAU,EACtB,QAAQ,GAAE,MAAW,GACpB,OAAO,CAAC,GAAG,EAAE,CAAC;IAKJ,kBAAkB,CAC7B,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAe5B,kBAAkB,CAC7B,OAAO,GAAE,yBAIR,GACA,OAAO,CAAC,0BAA0B,CAAC;IA2DtC;;;;;;;OAOG;IACU,WAAW,CACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EACtC,iBAAiB,GAAE,OAAc,GAChC,OAAO,CAAC,QAAQ,CAAC;IAIpB;;;;;OAKG;IACU,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAO/D;;;;;;;;;;OAUG;IACU,YAAY,CACvB,cAAc,EAAE,mBAAmB,EACnC,YAAY,GAAE,eAAe,GAAG,eAAe,EAAO,EACtD,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAwCxB;;;;;;;;;;;OAWG;IACU,SAAS,CACpB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,EACxD,iBAAiB,GAAE,OAAe,EAClC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAwDxB;;;;;;;;;;;;;;;OAeG;IACU,SAAS,CACpB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAmGxB;;;;;OAKG;IACU,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAO9D;;;;;OAKG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO/D;;;;;;OAMG;IACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOlE;;;OAGG;IACU,mBAAmB,IAAI,OAAO,CAAC;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAc3E;;;OAGG;IACU,sBAAsB,IAAI,OAAO,CAAC;QAC7C,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;KAC5B,CAAC;CAcH;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,WAAqB,UAAU,SAU9D,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAsB7B;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,GACb,eAAe,GAAG,SAAS,CAK7B"}
@@ -1,6 +1,6 @@
1
- import { binToHex } from "@bitauth/libauth";
1
+ import { binToHex, sha256 } from "@bitauth/libauth";
2
2
  import { NetworkType, prefixFromNetworkMap } from "../enum.js";
3
- import { NFTCapability } from "../interface.js";
3
+ import { NFTCapability, } from "../interface.js";
4
4
  import { getNetworkProvider } from "../network/default.js";
5
5
  import { getRelayFeeCache } from "../network/getRelayFeeCache.js";
6
6
  import { buildEncodedTransaction, getFeeAmount, getFeeAmountSimple, getSuitableUtxos, placeholderPrivateKeyBin, } from "../transaction/Wif.js";
@@ -9,8 +9,6 @@ import { asSendRequestObject, getRuntimePlatform, sumTokenAmounts, sumUtxoValue,
9
9
  import { sumSendRequestAmounts } from "../util/sumSendRequestAmounts.js";
10
10
  import { FeePaidByEnum, WalletTypeEnum } from "./enum.js";
11
11
  import { fromUtxoId, OpReturnData, SendRequest, SendResponse, TokenSendRequest, } from "./model.js";
12
- import { Util } from "./Util.js";
13
- import { SignedMessage } from "../message/signed.js";
14
12
  export const placeholderCashAddr = "bitcoincash:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqfnhks603";
15
13
  export const placeholderTokenAddr = "bitcoincash:zqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqweyg7usz";
16
14
  /**
@@ -21,17 +19,6 @@ export class BaseWallet {
21
19
  get networkPrefix() {
22
20
  return prefixFromNetworkMap[this.network];
23
21
  }
24
- // interface to util functions. see Util.ts
25
- get util() {
26
- if (!this._util) {
27
- this._util = new Util(this.network);
28
- }
29
- return this._util;
30
- }
31
- // interface to util util. see Util.Util
32
- static get util() {
33
- return new this().util;
34
- }
35
22
  // Return wallet info
36
23
  getInfo() {
37
24
  throw Error("getInfo not implemented in BaseWallet");
@@ -355,6 +342,11 @@ export class BaseWallet {
355
342
  // waits for address balance to be greater than or equal to the target value
356
343
  // this call halts the execution
357
344
  async waitForBalance(value) {
345
+ // Check if condition is already met before watching
346
+ const currentBalance = await this.getBalance();
347
+ if (currentBalance >= value) {
348
+ return currentBalance;
349
+ }
358
350
  return new Promise(async (resolve) => {
359
351
  let watchCancel;
360
352
  watchCancel = await this.watchBalance(async (balance) => {
@@ -376,6 +368,11 @@ export class BaseWallet {
376
368
  // waits for address token balance to be greater than or equal to the target amount
377
369
  // this call halts the execution
378
370
  async waitForTokenBalance(category, amount) {
371
+ // Check if condition is already met before watching
372
+ const currentBalance = await this.getTokenBalance(category);
373
+ if (currentBalance >= amount) {
374
+ return currentBalance;
375
+ }
379
376
  return new Promise(async (resolve) => {
380
377
  let watchCancel;
381
378
  watchCancel = await this.watchTokenBalance(category, async (balance) => {
@@ -429,6 +426,25 @@ export class BaseWallet {
429
426
  }
430
427
  });
431
428
  }
429
+ /**
430
+ * Watch for double-spend proofs on incoming transactions.
431
+ * For each new unconfirmed transaction, subscribes to its dsproof
432
+ * for a short window. If a dsproof arrives, the callback is invoked.
433
+ *
434
+ * @param callback - Called with the dsproof data when a double-spend is detected
435
+ * @param window - How long (ms) to watch each transaction for dsproofs (default 5000)
436
+ * @returns Cancel function to stop watching
437
+ */
438
+ async watchDoubleSpends(callback, window = 5000) {
439
+ return this.watchTransactionHashes(async (txHash) => {
440
+ const cancel = await this.provider.subscribeToDsproof(txHash, ([proofTxHash, dsproof]) => {
441
+ if (txHash === proofTxHash && dsproof !== null) {
442
+ callback(dsproof);
443
+ }
444
+ });
445
+ setTimeout(() => cancel(), window);
446
+ });
447
+ }
432
448
  async _getMaxAmountToSend(params = {
433
449
  outputCount: 1,
434
450
  options: {},
@@ -495,23 +511,7 @@ export class BaseWallet {
495
511
  */
496
512
  async send(requests, options) {
497
513
  const { encodedTransaction, categories, sourceOutputs } = await this.encodeTransaction(requests, undefined, options);
498
- const resp = new SendResponse({});
499
- resp.categories = categories;
500
- if (options?.buildUnsigned !== true) {
501
- const txId = await this.submitTransaction(encodedTransaction, options?.awaitTransactionPropagation === undefined ||
502
- options?.awaitTransactionPropagation === true);
503
- resp.txId = txId;
504
- resp.explorerUrl = this.explorerUrl(resp.txId);
505
- if (options?.queryBalance === undefined ||
506
- options?.queryBalance === true) {
507
- resp.balance = await this.getBalance();
508
- }
509
- }
510
- else {
511
- resp.unsignedTransaction = binToHex(encodedTransaction);
512
- resp.sourceOutputs = sourceOutputs;
513
- }
514
- return resp;
514
+ return this._send(encodedTransaction, categories, sourceOutputs, options);
515
515
  }
516
516
  /**
517
517
  * sendMax Send all available funds to a destination cash address
@@ -547,11 +547,26 @@ export class BaseWallet {
547
547
  value: maxSpendableAmount,
548
548
  });
549
549
  const { encodedTransaction, categories, sourceOutputs } = await this.encodeTransaction([sendRequest], true, options, privateKey);
550
+ return this._send(encodedTransaction, categories, sourceOutputs, options);
551
+ }
552
+ async _send(encodedTransaction, categories, sourceOutputs, options) {
550
553
  const resp = new SendResponse({});
551
554
  resp.categories = categories;
552
- if (options?.buildUnsigned !== true) {
553
- const txId = await this.submitTransaction(encodedTransaction, options?.awaitTransactionPropagation === undefined ||
554
- options?.awaitTransactionPropagation === true);
555
+ if (options?.broadcast === false) {
556
+ resp.transaction = binToHex(encodedTransaction);
557
+ resp.txId = binToHex(sha256.hash(sha256.hash(encodedTransaction)).reverse());
558
+ }
559
+ else if (options?.buildUnsigned !== true) {
560
+ const awaitPropagation = options?.awaitTransactionPropagation === undefined ||
561
+ options?.awaitTransactionPropagation === true;
562
+ let updatePromise;
563
+ if (awaitPropagation) {
564
+ updatePromise = this.waitForUpdate({ timeout: 2500 });
565
+ }
566
+ const [_, txId] = await Promise.all([
567
+ updatePromise,
568
+ this.submitTransaction(encodedTransaction, awaitPropagation),
569
+ ]);
555
570
  resp.txId = txId;
556
571
  resp.explorerUrl = this.explorerUrl(resp.txId);
557
572
  if (options?.queryBalance === undefined ||
@@ -712,7 +727,7 @@ export class BaseWallet {
712
727
  if (!this.provider) {
713
728
  throw Error("Wallet network provider was not initialized");
714
729
  }
715
- let rawTransaction = binToHex(transaction);
730
+ const rawTransaction = binToHex(transaction);
716
731
  return await this.provider.sendRawTransaction(rawTransaction, awaitPropagation);
717
732
  }
718
733
  // gets transaction history of this wallet
@@ -776,14 +791,9 @@ export class BaseWallet {
776
791
  }
777
792
  // waiting for any address transaction
778
793
  let watchCancel;
779
- let initialResponseSeen = false;
780
794
  watchCancel = await this.watchStatus(async (_status) => {
781
- if (initialResponseSeen) {
782
- await watchCancel?.();
783
- resolve(makeResponse());
784
- return;
785
- }
786
- initialResponseSeen = true;
795
+ await watchCancel?.();
796
+ resolve(makeResponse());
787
797
  });
788
798
  });
789
799
  }
@@ -1019,7 +1029,7 @@ export class BaseWallet {
1019
1029
  * @returns {bigint} fungible token balance
1020
1030
  */
1021
1031
  async getTokenBalance(category) {
1022
- const utxos = (await this.getTokenUtxos(category)).filter((val) => val.token?.amount);
1032
+ const utxos = (await this.getTokenUtxos(category)).filter((val) => val.token?.amount && val.token?.category === category);
1023
1033
  return sumTokenAmounts(utxos, category);
1024
1034
  }
1025
1035
  /**
@@ -1063,20 +1073,6 @@ export class BaseWallet {
1063
1073
  }
1064
1074
  return result;
1065
1075
  }
1066
- //#endregion Cashtokens
1067
- sign(message, privateKey = undefined) {
1068
- if (!privateKey) {
1069
- throw new Error("Signing private key not provided");
1070
- }
1071
- return new SignedMessage().sign(message, privateKey);
1072
- }
1073
- // Convenience wrapper to verify interface
1074
- verify(message, sig, address, publicKey) {
1075
- if (!address && !publicKey) {
1076
- throw new Error("Either address or publicKey must be provided for verification");
1077
- }
1078
- return new SignedMessage().verify(message, sig, address, publicKey);
1079
- }
1080
1076
  }
1081
1077
  /**
1082
1078
  * _checkContextSafety (internal) if running in nodejs, will disable saving