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,11 +1,10 @@
1
- import { ConnectionStatus, } from "@electrum-cash/network";
2
- import { Network } from "../interface.js";
3
- import { getTransactionHash } from "../util/transaction.js";
4
- import { Config } from "../config.js";
5
- import { decodeHeader } from "../util/header.js";
6
1
  import { IndexedDbCache } from "../cache/IndexedDbCache.js";
7
- import { WebStorageCache } from "../cache/WebStorageCache.js";
8
2
  import { MemoryCache } from "../cache/MemoryCache.js";
3
+ import { WebStorageCache } from "../cache/WebStorageCache.js";
4
+ import { Config } from "../config.js";
5
+ import { Network, } from "../interface.js";
6
+ import { decodeHeader } from "../util/header.js";
7
+ import { getTransactionHash } from "../util/transaction.js";
9
8
  export default class ElectrumNetworkProvider {
10
9
  get cache() {
11
10
  if (!Config.UseMemoryCache &&
@@ -29,21 +28,22 @@ export default class ElectrumNetworkProvider {
29
28
  }
30
29
  return this._cache;
31
30
  }
32
- constructor(electrum, network = Network.MAINNET, manualConnectionManagement) {
31
+ constructor(transport, network = Network.MAINNET) {
33
32
  this.network = network;
34
- this.manualConnectionManagement = manualConnectionManagement;
35
33
  this.subscriptions = 0;
36
- this.subscriptionMap = {};
37
34
  this.currentHeight = 0;
38
- if (electrum) {
39
- this.electrum = electrum;
35
+ if (transport) {
36
+ this.transport = transport;
40
37
  }
41
38
  else {
42
- throw new Error(`A electrum-cash client is required.`);
39
+ throw new Error(`A transport is required.`);
43
40
  }
44
41
  }
45
42
  async getUtxos(cashaddr) {
46
- const result = await this.performRequest("blockchain.address.listunspent", cashaddr, "include_tokens");
43
+ const result = await this.performRequest("blockchain.address.listunspent", [
44
+ cashaddr,
45
+ "include_tokens",
46
+ ]);
47
47
  return result.map((utxo) => ({
48
48
  address: cashaddr,
49
49
  txid: utxo.tx_hash,
@@ -59,7 +59,9 @@ export default class ElectrumNetworkProvider {
59
59
  }));
60
60
  }
61
61
  async getBalance(cashaddr) {
62
- const result = await this.performRequest("blockchain.address.get_balance", cashaddr);
62
+ const result = await this.performRequest("blockchain.address.get_balance", [
63
+ cashaddr,
64
+ ]);
63
65
  return BigInt(result.confirmed) + BigInt(result.unconfirmed);
64
66
  }
65
67
  async getHeader(height, verbose = false) {
@@ -70,7 +72,7 @@ export default class ElectrumNetworkProvider {
70
72
  return verbose ? decodeHeader(JSON.parse(cached)) : JSON.parse(cached);
71
73
  }
72
74
  }
73
- const result = await this.performRequest("blockchain.header.get", height);
75
+ const result = await this.performRequest("blockchain.header.get", [height]);
74
76
  if (this.cache) {
75
77
  await this.cache.setItem(key, JSON.stringify(result));
76
78
  }
@@ -97,8 +99,12 @@ export default class ElectrumNetworkProvider {
97
99
  }
98
100
  }
99
101
  if (misses.length > 0) {
102
+ // rpckit automatically batches concurrent requests via BatchScheduler
100
103
  const fetched = await Promise.all(misses.map(async (hash) => {
101
- const tx = await this.performRequest("blockchain.transaction.get", hash, false);
104
+ const tx = await this.performRequest("blockchain.transaction.get", [
105
+ hash,
106
+ false,
107
+ ]);
102
108
  return [hash, tx];
103
109
  }));
104
110
  // batch cache write
@@ -136,8 +142,11 @@ export default class ElectrumNetworkProvider {
136
142
  }
137
143
  }
138
144
  if (misses.length > 0) {
145
+ // rpckit automatically batches concurrent requests via BatchScheduler
139
146
  const fetched = await Promise.all(misses.map(async (height) => {
140
- const result = await this.performRequest("blockchain.header.get", height);
147
+ const result = await this.performRequest("blockchain.header.get", [
148
+ height,
149
+ ]);
141
150
  return [height, result];
142
151
  }));
143
152
  // batch cache write
@@ -190,7 +199,10 @@ export default class ElectrumNetworkProvider {
190
199
  }
191
200
  }
192
201
  try {
193
- const result = await this.performRequest("blockchain.transaction.get", txHash, verbose);
202
+ const result = await this.performRequest("blockchain.transaction.get", [
203
+ txHash,
204
+ verbose,
205
+ ]);
194
206
  if (!verbose) {
195
207
  const hex = result;
196
208
  if (this.cache) {
@@ -211,7 +223,7 @@ export default class ElectrumNetworkProvider {
211
223
  return transaction;
212
224
  }
213
225
  catch (error) {
214
- if (error.message.indexOf("No such mempool or blockchain transaction.") > -1)
226
+ if (error.message.indexOf("No such mempool or blockchain transaction") > -1)
215
227
  throw Error(`Could not decode transaction ${txHash}. It might not exist on the current blockchain (${this.network}).`);
216
228
  else
217
229
  throw error;
@@ -240,7 +252,7 @@ export default class ElectrumNetworkProvider {
240
252
  return new Promise(async (resolve, reject) => {
241
253
  let txHash = await getTransactionHash(txHex);
242
254
  if (!awaitPropagation) {
243
- this.performRequest("blockchain.transaction.broadcast", txHex);
255
+ this.performRequest("blockchain.transaction.broadcast", [txHex]).catch(() => { });
244
256
  resolve(txHash);
245
257
  }
246
258
  else {
@@ -252,7 +264,7 @@ export default class ElectrumNetworkProvider {
252
264
  }
253
265
  };
254
266
  cancel = await this.subscribeToTransaction(txHash, waitForTransactionCallback);
255
- this.performRequest("blockchain.transaction.broadcast", txHex).catch(async (error) => {
267
+ this.performRequest("blockchain.transaction.broadcast", [txHex]).catch(async (error) => {
256
268
  await cancel?.();
257
269
  reject(error);
258
270
  });
@@ -261,13 +273,15 @@ export default class ElectrumNetworkProvider {
261
273
  }
262
274
  // Get transaction history of a given cashaddr
263
275
  async getHistory(cashaddr, fromHeight = 0, toHeight = -1) {
264
- const result = await this.performRequest("blockchain.address.get_history", cashaddr, fromHeight, toHeight);
265
- return result;
276
+ return this.performRequest("blockchain.address.get_history", [
277
+ cashaddr,
278
+ fromHeight,
279
+ toHeight,
280
+ ]);
266
281
  }
267
282
  // Get the minimum fee a low-priority transaction must pay in order to be accepted to the daemon's memory pool.
268
283
  async getRelayFee() {
269
- const result = (await this.performRequest("blockchain.relayfee"));
270
- return result;
284
+ return this.performRequest("blockchain.relayfee");
271
285
  }
272
286
  async watchAddressStatus(cashaddr, callback) {
273
287
  const watchAddressStatusCallback = async (data) => {
@@ -299,8 +313,8 @@ export default class ElectrumNetworkProvider {
299
313
  async waitForBlock(height) {
300
314
  return new Promise(async (resolve) => {
301
315
  let cancelWatch;
302
- if (this.electrum.chainHeight && !height) {
303
- height = this.electrum.chainHeight + 1;
316
+ if (this.currentHeight && !height) {
317
+ height = this.currentHeight + 1;
304
318
  }
305
319
  cancelWatch = await this.watchBlocks(async (header) => {
306
320
  if (!height) {
@@ -317,83 +331,73 @@ export default class ElectrumNetworkProvider {
317
331
  }
318
332
  // subscribe to notifications sent when new block is found, the block header is sent to callback
319
333
  async subscribeToHeaders(callback) {
320
- return this.subscribeRequest("blockchain.headers.subscribe", (data) => {
321
- callback(data[0] ?? data);
334
+ return this.subscribeRequest("blockchain.headers.subscribe", [], (data) => {
335
+ callback(data[0]);
322
336
  });
323
337
  }
324
338
  async subscribeToAddress(cashaddr, callback) {
325
- return this.subscribeRequest("blockchain.address.subscribe", callback, cashaddr);
339
+ return this.subscribeRequest("blockchain.address.subscribe", [cashaddr], callback);
326
340
  }
327
341
  async subscribeToTransaction(txHash, callback) {
328
- return this.subscribeRequest("blockchain.transaction.subscribe", callback, txHash);
342
+ return this.subscribeRequest("blockchain.transaction.subscribe", [txHash], callback);
343
+ }
344
+ async subscribeToDsproof(txHash, callback) {
345
+ return this.subscribeRequest("blockchain.transaction.dsproof.subscribe", [txHash], callback);
346
+ }
347
+ async daemonPassthrough(method, params = []) {
348
+ await this.ready();
349
+ return this.transport.request("daemon.passthrough", {
350
+ method,
351
+ params,
352
+ });
329
353
  }
330
- async performRequest(name, ...parameters) {
354
+ async mine(cashaddr, blocks) {
355
+ return this.daemonPassthrough("generatetoaddress", [blocks, cashaddr]);
356
+ }
357
+ async performRequest(method, parameters) {
331
358
  await this.ready();
332
- const requestTimeout = new Promise(function (_resolve, reject) {
359
+ const TIMEOUT_MSG = "electrum-cash request timed out, retrying";
360
+ const makeTimeout = () => new Promise(function (_resolve, reject) {
333
361
  setTimeout(function () {
334
- reject("electrum-cash request timed out, retrying");
362
+ reject(TIMEOUT_MSG);
335
363
  }, 30000);
336
- }).catch(function (e) {
337
- throw e;
338
364
  });
339
- const request = this.electrum.request(name, ...parameters);
340
- return await Promise.race([request, requestTimeout])
341
- .then((value) => {
365
+ const ensureError = (e) => {
366
+ if (e instanceof Error)
367
+ return e;
368
+ if (typeof e === "object" && e !== null && "message" in e)
369
+ return Object.assign(new Error(e.message), e);
370
+ return new Error(typeof e === "string" ? e : String(e));
371
+ };
372
+ const request = this.transport.request(method, parameters);
373
+ try {
374
+ const value = await Promise.race([request, makeTimeout()]);
342
375
  if (value instanceof Error)
343
376
  throw value;
344
- let result = value;
345
- return result;
346
- })
347
- .catch(async () => {
348
- return await Promise.race([request, requestTimeout])
349
- .then((value) => {
377
+ return value;
378
+ }
379
+ catch (e) {
380
+ const error = ensureError(e);
381
+ // Only retry on timeout, not on server errors
382
+ if (error.message !== TIMEOUT_MSG)
383
+ throw error;
384
+ try {
385
+ const value = await Promise.race([request, makeTimeout()]);
350
386
  if (value instanceof Error)
351
387
  throw value;
352
- let result = value;
353
- return result;
354
- })
355
- .catch(function (e) {
356
- throw e;
357
- });
358
- });
359
- }
360
- async trackSubscription(methodName, ...parameters) {
361
- const key = `${methodName}-${this.network}-${JSON.stringify(parameters)}`;
362
- if (this.subscriptionMap[key]) {
363
- this.subscriptionMap[key]++;
364
- }
365
- else {
366
- this.subscriptionMap[key] = 1;
367
- }
368
- await this.electrum.subscribe(methodName, ...parameters);
369
- }
370
- async untrackSubscription(methodName, ...parameters) {
371
- const key = `${methodName}-${this.network}-${JSON.stringify(parameters)}`;
372
- if (this.subscriptionMap[key]) {
373
- this.subscriptionMap[key]--;
374
- if (this.subscriptionMap[key] <= 0) {
375
- // only really unsubscribe if there are no more subscriptions for this `key`
376
- delete this.subscriptionMap[key];
377
- try {
378
- await this.electrum.unsubscribe(methodName, ...parameters);
379
- }
380
- catch { }
388
+ return value;
389
+ }
390
+ catch (e2) {
391
+ throw ensureError(e2);
381
392
  }
382
393
  }
383
394
  }
384
- async subscribeRequest(methodName, callback, ...parameters) {
395
+ async subscribeRequest(method, parameters, callback) {
385
396
  await this.ready();
386
- const handler = (data) => {
387
- if (data.method === methodName) {
388
- callback(data.params);
389
- }
390
- };
391
- this.electrum.on("notification", handler);
392
- await this.trackSubscription(methodName, ...parameters);
397
+ const unsubscribe = await this.transport.subscribe(method, parameters, callback);
393
398
  this.subscriptions++;
394
399
  return async () => {
395
- this.electrum.off("notification", handler);
396
- await this.untrackSubscription(methodName, ...parameters);
400
+ await unsubscribe();
397
401
  this.subscriptions--;
398
402
  };
399
403
  }
@@ -402,18 +406,12 @@ export default class ElectrumNetworkProvider {
402
406
  }
403
407
  async connect() {
404
408
  await this.cache?.init();
405
- if (this.electrum.status !== ConnectionStatus.CONNECTED) {
406
- await this.electrum.connect();
407
- }
409
+ await this.transport.connect();
408
410
  }
409
411
  async disconnect() {
410
- if (this.subscriptions > 0) {
411
- // console.warn(
412
- // `Trying to disconnect a network provider with ${this.subscriptions} active subscriptions. This is in most cases a bad idea.`
413
- // );
414
- }
415
412
  await this.headerCancelFn?.();
416
- return this.electrum.disconnect(true, false);
413
+ await this.transport.close();
414
+ return true;
417
415
  }
418
416
  }
419
417
  //# sourceMappingURL=ElectrumNetworkProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElectrumNetworkProvider.js","sourceRoot":"","sources":["../../../src/network/ElectrumNetworkProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ElectrumNetworkProvider.js","sourceRoot":"","sources":["../../../src/network/ElectrumNetworkProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { ElectrumCashTestSchema, Indexer, IndexerConfig } from "@mem-cash/electrum";
2
+ import { Utxo } from "../interface.js";
3
+ import ElectrumNetworkProvider from "./ElectrumNetworkProvider.js";
4
+ export interface MockNetworkProviderOptions {
5
+ /** Indexer config passed to createIndexer. */
6
+ indexerConfig?: Partial<IndexerConfig>;
7
+ }
8
+ /**
9
+ * In-memory NetworkProvider backed by @mem-cash/electrum.
10
+ *
11
+ * Inherits all Electrum protocol handling from ElectrumNetworkProvider.
12
+ * Only adds test helpers (addUtxo, mine, setBlockHeight, reset) and
13
+ * overrides mine() to use test.mine instead of daemon.passthrough.
14
+ */
15
+ export declare class MockNetworkProvider extends ElectrumNetworkProvider<ElectrumCashTestSchema> {
16
+ /** The backing Indexer instance (extends Node). */
17
+ mc: Indexer;
18
+ private connPromise?;
19
+ constructor(options?: MockNetworkProviderOptions);
20
+ connect(): Promise<void>;
21
+ private doInit;
22
+ addUtxo(address: string, utxo: Omit<Utxo, "address">): Promise<void>;
23
+ mine(cashaddr: string, blocks: number): Promise<string[]>;
24
+ setBlockHeight(height: number): Promise<void>;
25
+ reset(): Promise<void>;
26
+ seedAlice(): Promise<void>;
27
+ }
28
+ //# sourceMappingURL=MockNetworkProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockNetworkProvider.d.ts","sourceRoot":"","sources":["../../../src/network/MockNetworkProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,OAAO,EACP,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAW,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE,MAAM,WAAW,0BAA0B;IACzC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACxC;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,uBAAuB,CAAC,sBAAsB,CAAC;IACtF,mDAAmD;IAC5C,EAAE,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,WAAW,CAAC,CAAgB;gBACxB,OAAO,CAAC,EAAE,0BAA0B;IAWjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAOzB,MAAM;IAad,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IASlE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAejC"}
@@ -0,0 +1,74 @@
1
+ import { asTransport, createIndexer } from "@mem-cash/electrum";
2
+ import { Network } from "../interface.js";
3
+ import ElectrumNetworkProvider from "./ElectrumNetworkProvider.js";
4
+ /**
5
+ * In-memory NetworkProvider backed by @mem-cash/electrum.
6
+ *
7
+ * Inherits all Electrum protocol handling from ElectrumNetworkProvider.
8
+ * Only adds test helpers (addUtxo, mine, setBlockHeight, reset) and
9
+ * overrides mine() to use test.mine instead of daemon.passthrough.
10
+ */
11
+ export class MockNetworkProvider extends ElectrumNetworkProvider {
12
+ constructor(options) {
13
+ const mc = createIndexer({
14
+ addressPrefix: "bchreg",
15
+ ...options?.indexerConfig,
16
+ });
17
+ // IndexerTransport and rpckit Transport are structurally identical
18
+ // but TypeScript sees distinct ExtractParams types across packages.
19
+ super(asTransport(mc), Network.REGTEST);
20
+ this.mc = mc;
21
+ }
22
+ async connect() {
23
+ if (!this.connPromise) {
24
+ this.connPromise = this.doInit();
25
+ }
26
+ return this.connPromise;
27
+ }
28
+ async doInit() {
29
+ // set_chain_tip creates headers for max(0, h-10)..h only (11 headers).
30
+ // Fill headers for heights 0..189 so that UTXOs placed at lower heights
31
+ // have matching block headers for verbose transaction lookups.
32
+ for (let h = 0; h < 190; h++) {
33
+ const hash = h.toString(16).padStart(64, "0");
34
+ await this.mc.request("test.add_header", [hash, h, 1700000000 + h]);
35
+ }
36
+ await this.mc.request("test.set_chain_tip", [200, 1700000200]);
37
+ }
38
+ // --- Test helpers ---
39
+ async addUtxo(address, utxo) {
40
+ await this.ready();
41
+ await this.mc.request("test.add_utxo", [address, utxo]);
42
+ }
43
+ async mine(cashaddr, blocks) {
44
+ await this.ready();
45
+ const result = (await this.mc.request("test.mine", [cashaddr, blocks]));
46
+ return result.coinbaseTxids;
47
+ }
48
+ async setBlockHeight(height) {
49
+ await this.ready();
50
+ await this.mc.request("test.set_chain_tip", [height, 1700000000]);
51
+ }
52
+ async reset() {
53
+ await this.ready();
54
+ await this.mc.request("test.reset", []);
55
+ await this.mc.request("test.set_chain_tip", [200, 1700000000]);
56
+ }
57
+ async seedAlice() {
58
+ const address = process.env.ADDRESS;
59
+ if (!address)
60
+ return;
61
+ await this.ready();
62
+ for (let i = 0; i < 110; i++) {
63
+ await this.mc.request("test.add_utxo", [
64
+ address,
65
+ {
66
+ vout: 0,
67
+ satoshis: 5_000_000_000,
68
+ height: i + 1,
69
+ },
70
+ ]);
71
+ }
72
+ }
73
+ }
74
+ //# sourceMappingURL=MockNetworkProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockNetworkProvider.js","sourceRoot":"","sources":["../../../src/network/MockNetworkProvider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { TxI, Utxo, Network, HexHeaderI, HeaderI } from "../interface.js";
2
- import { ElectrumRawTransaction, ElectrumRawTransactionWithInputValues } from "./interface.js";
1
+ import { HeaderI, HexHeaderI, Network, TxI, Utxo } from "../interface.js";
3
2
  import { CancelFn } from "../wallet/interface.js";
3
+ import { ElectrumRawTransaction, ElectrumRawTransactionWithInputValues } from "./interface.js";
4
4
  export default interface NetworkProvider {
5
5
  /**
6
6
  * Variable indicating the network that this provider connects to.
@@ -100,6 +100,13 @@ export default interface NetworkProvider {
100
100
  * @returns nothing.
101
101
  */
102
102
  subscribeToTransaction(txHash: string, callback: (data: any) => void): Promise<CancelFn>;
103
+ /**
104
+ * Mine blocks to a regtest address.
105
+ * @param cashaddr The address to mine to (receives coinbase rewards).
106
+ * @param blocks The number of blocks to mine.
107
+ * @returns Array of block hashes or implementation-specific result.
108
+ */
109
+ mine(cashaddr: string, blocks: number): Promise<any>;
103
110
  /**
104
111
  * Function to wait for connection to be ready
105
112
  * @param timeout number of milliseconds to wait before throwing error
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkProvider.d.ts","sourceRoot":"","sources":["../../../src/network/NetworkProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetworkProvider.d.ts","sourceRoot":"","sources":["../../../src/network/NetworkProvider.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
1
  import { Network } from "../interface.js";
2
2
  export declare class DefaultProvider {
3
3
  static servers: {
4
- [name: string]: string[];
4
+ [name: string]: string;
5
5
  };
6
6
  }
7
- export declare function getDefaultServers(network: Network): string[];
8
- export declare function getUserAgent(): any;
9
- export declare function getConfidence(): any;
7
+ export declare function getDefaultServers(network: Network): string;
10
8
  //# sourceMappingURL=configuration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../src/network/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAQ1C,qBAAa,eAAe;IAC1B,MAAM,CAAC,OAAO,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAI1C;CACH;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,YA6BjD;AAED,wBAAgB,YAAY,QAW3B;AAED,wBAAgB,aAAa,QAW5B"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../src/network/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI1C,qBAAa,eAAe;IAC1B,MAAM,CAAC,OAAO,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAIxC;CACH;AAWD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAwB1D"}
@@ -1,13 +1,22 @@
1
1
  import { getRuntimePlatform } from "../util/index.js";
2
2
  import * as primary from "./constant.js";
3
- let mainnetServers, testnetServers, regtestServers;
4
3
  export class DefaultProvider {
5
4
  static { this.servers = {
6
- mainnet: [],
7
- testnet: [],
8
- regtest: [],
5
+ mainnet: "",
6
+ testnet: "",
7
+ regtest: "",
9
8
  }; }
10
9
  }
10
+ // Detect plain comma-separated URLs (not already in parse notation like "fallback(...)") and convert
11
+ function normalizeServers(value) {
12
+ if (!value)
13
+ return value;
14
+ // Already parse notation (contains parens) or a single URL - pass through
15
+ if (value.includes("(") || !value.includes(","))
16
+ return value;
17
+ // Plain comma-separated URLs: convert to parse notation with fallback
18
+ return primary.toParseNotation(value.split(",").map((s) => s.trim()));
19
+ }
11
20
  export function getDefaultServers(network) {
12
21
  let env;
13
22
  if (getRuntimePlatform() == "node") {
@@ -16,51 +25,17 @@ export function getDefaultServers(network) {
16
25
  else {
17
26
  env = {};
18
27
  }
19
- mainnetServers = DefaultProvider.servers.mainnet.length
20
- ? DefaultProvider.servers.mainnet
21
- : env.ELECTRUM
22
- ? env.ELECTRUM.split(",")
23
- : primary.mainnetServers;
24
- testnetServers = DefaultProvider.servers.testnet.length
25
- ? DefaultProvider.servers.testnet
26
- : env.ELECTRUM_TESTNET
27
- ? env.ELECTRUM_TESTNET.split(",")
28
- : primary.testnetServers;
29
- regtestServers = DefaultProvider.servers.regtest.length
30
- ? DefaultProvider.servers.regtest
31
- : env.ELECTRUM_REGTEST
32
- ? env.ELECTRUM_REGTEST.split(",")
33
- : primary.regtestServers;
34
- return {
35
- mainnet: mainnetServers,
36
- testnet: testnetServers,
37
- regtest: regtestServers,
38
- }[network];
39
- }
40
- export function getUserAgent() {
41
- // Allow users to configure the cluster confidence
42
- let ua;
43
- if (getRuntimePlatform() === "node") {
44
- ua = process.env.ELECTRUM_USER_AGENT
45
- ? process.env.ELECTRUM_USER_AGENT
46
- : "mainnet-js-" + getRuntimePlatform();
47
- }
48
- else {
49
- ua = "mainnet-js-" + getRuntimePlatform();
50
- }
51
- return ua;
52
- }
53
- export function getConfidence() {
54
- // Allow users to configure the cluster confidence
55
- let confidence;
56
- if (getRuntimePlatform() === "node") {
57
- confidence = process.env.ELECTRUM_CONFIDENCE
58
- ? parseInt(process.env.ELECTRUM_CONFIDENCE)
59
- : 1;
60
- }
61
- else {
62
- confidence = 1;
63
- }
64
- return confidence;
28
+ const servers = {
29
+ mainnet: DefaultProvider.servers.mainnet ||
30
+ normalizeServers(env.ELECTRUM) ||
31
+ primary.mainnetServers,
32
+ testnet: DefaultProvider.servers.testnet ||
33
+ normalizeServers(env.ELECTRUM_TESTNET) ||
34
+ primary.testnetServers,
35
+ regtest: DefaultProvider.servers.regtest ||
36
+ normalizeServers(env.ELECTRUM_REGTEST) ||
37
+ primary.regtestServers,
38
+ };
39
+ return servers[network];
65
40
  }
66
41
  //# sourceMappingURL=configuration.js.map