mainnet-js 1.1.34-alpha.1 → 2.0.0

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 (121) hide show
  1. package/dist/index.html +1 -1
  2. package/dist/{mainnet-1.1.34-alpha.1.js → mainnet-2.0.0.js} +26 -338
  3. package/dist/module/db/SqlProvider.d.ts +2 -2
  4. package/dist/module/db/SqlProvider.d.ts.map +1 -1
  5. package/dist/module/db/SqlProvider.js +6 -24
  6. package/dist/module/db/SqlProvider.js.map +1 -1
  7. package/dist/module/index.d.ts +0 -3
  8. package/dist/module/index.d.ts.map +1 -1
  9. package/dist/module/index.js +3 -6
  10. package/dist/module/index.js.map +1 -1
  11. package/dist/module/transaction/Wif.d.ts +4 -8
  12. package/dist/module/transaction/Wif.d.ts.map +1 -1
  13. package/dist/module/transaction/Wif.js +6 -10
  14. package/dist/module/transaction/Wif.js.map +1 -1
  15. package/dist/module/util/deriveCashaddr.d.ts +1 -0
  16. package/dist/module/util/deriveCashaddr.d.ts.map +1 -1
  17. package/dist/module/util/deriveCashaddr.js +8 -1
  18. package/dist/module/util/deriveCashaddr.js.map +1 -1
  19. package/dist/module/wallet/Base.d.ts +1 -1
  20. package/dist/module/wallet/Base.js +1 -1
  21. package/dist/module/wallet/Bcmr.d.ts.map +1 -1
  22. package/dist/module/wallet/Bcmr.js +0 -1
  23. package/dist/module/wallet/Bcmr.js.map +1 -1
  24. package/dist/module/wallet/Util.d.ts +2 -2
  25. package/dist/module/wallet/Util.js +2 -2
  26. package/dist/module/wallet/Wif.d.ts +0 -28
  27. package/dist/module/wallet/Wif.d.ts.map +1 -1
  28. package/dist/module/wallet/Wif.js +2 -109
  29. package/dist/module/wallet/Wif.js.map +1 -1
  30. package/dist/module/wallet/createWallet.d.ts +0 -12
  31. package/dist/module/wallet/createWallet.d.ts.map +1 -1
  32. package/dist/module/wallet/createWallet.js +0 -43
  33. package/dist/module/wallet/createWallet.js.map +1 -1
  34. package/dist/module/wallet/interface.d.ts +0 -2
  35. package/dist/module/wallet/interface.d.ts.map +1 -1
  36. package/dist/module/webhook/Webhook.d.ts +1 -6
  37. package/dist/module/webhook/Webhook.d.ts.map +1 -1
  38. package/dist/module/webhook/Webhook.js +0 -4
  39. package/dist/module/webhook/Webhook.js.map +1 -1
  40. package/dist/module/webhook/index.d.ts +0 -1
  41. package/dist/module/webhook/index.d.ts.map +1 -1
  42. package/dist/module/webhook/index.js +0 -1
  43. package/dist/module/webhook/index.js.map +1 -1
  44. package/dist/module/webhook/interface.d.ts +0 -1
  45. package/dist/module/webhook/interface.d.ts.map +1 -1
  46. package/dist/tsconfig.tsbuildinfo +1 -1
  47. package/package.json +5 -10
  48. package/src/db/SqlProvider.test.ts +2 -18
  49. package/src/db/SqlProvider.ts +5 -26
  50. package/src/index.ts +3 -7
  51. package/src/transaction/Wif.ts +2 -19
  52. package/src/util/deriveCashaddr.test.ts +8 -0
  53. package/src/util/deriveCashaddr.ts +9 -0
  54. package/src/wallet/Base.ts +1 -1
  55. package/src/wallet/Bcmr.ts +0 -1
  56. package/src/wallet/Util.ts +2 -2
  57. package/src/wallet/Wif.test.ts +0 -23
  58. package/src/wallet/Wif.ts +2 -148
  59. package/src/wallet/createWallet.ts +0 -53
  60. package/src/wallet/interface.ts +0 -2
  61. package/src/webhook/Webhook.ts +4 -10
  62. package/src/webhook/index.ts +0 -1
  63. package/src/webhook/interface.ts +0 -1
  64. package/webpack.config.cjs +7 -7
  65. package/dist/module/slp/GsppProvider.d.ts +0 -55
  66. package/dist/module/slp/GsppProvider.d.ts.map +0 -1
  67. package/dist/module/slp/GsppProvider.js +0 -204
  68. package/dist/module/slp/GsppProvider.js.map +0 -1
  69. package/dist/module/slp/SlpDbProvider.d.ts +0 -52
  70. package/dist/module/slp/SlpDbProvider.d.ts.map +0 -1
  71. package/dist/module/slp/SlpDbProvider.js +0 -175
  72. package/dist/module/slp/SlpDbProvider.js.map +0 -1
  73. package/dist/module/slp/SlpDbTemplates.d.ts +0 -313
  74. package/dist/module/slp/SlpDbTemplates.d.ts.map +0 -1
  75. package/dist/module/slp/SlpDbTemplates.js +0 -375
  76. package/dist/module/slp/SlpDbTemplates.js.map +0 -1
  77. package/dist/module/slp/SlpLibAuth.d.ts +0 -210
  78. package/dist/module/slp/SlpLibAuth.d.ts.map +0 -1
  79. package/dist/module/slp/SlpLibAuth.js +0 -451
  80. package/dist/module/slp/SlpLibAuth.js.map +0 -1
  81. package/dist/module/slp/SlpProvider.d.ts +0 -24
  82. package/dist/module/slp/SlpProvider.d.ts.map +0 -1
  83. package/dist/module/slp/SlpProvider.js +0 -29
  84. package/dist/module/slp/SlpProvider.js.map +0 -1
  85. package/dist/module/slp/index.d.ts +0 -6
  86. package/dist/module/slp/index.d.ts.map +0 -1
  87. package/dist/module/slp/index.js +0 -5
  88. package/dist/module/slp/index.js.map +0 -1
  89. package/dist/module/slp/interface.d.ts +0 -114
  90. package/dist/module/slp/interface.d.ts.map +0 -1
  91. package/dist/module/slp/interface.js +0 -7
  92. package/dist/module/slp/interface.js.map +0 -1
  93. package/dist/module/util/bchaddr.d.ts +0 -2
  94. package/dist/module/util/bchaddr.d.ts.map +0 -1
  95. package/dist/module/util/bchaddr.js +0 -16
  96. package/dist/module/util/bchaddr.js.map +0 -1
  97. package/dist/module/wallet/Slp.d.ts +0 -431
  98. package/dist/module/wallet/Slp.d.ts.map +0 -1
  99. package/dist/module/wallet/Slp.js +0 -770
  100. package/dist/module/wallet/Slp.js.map +0 -1
  101. package/dist/module/webhook/WebhookSlp.d.ts +0 -15
  102. package/dist/module/webhook/WebhookSlp.d.ts.map +0 -1
  103. package/dist/module/webhook/WebhookSlp.js +0 -100
  104. package/dist/module/webhook/WebhookSlp.js.map +0 -1
  105. package/src/slp/GsppProvider.test.ts +0 -40
  106. package/src/slp/GsppProvider.ts +0 -329
  107. package/src/slp/SlpDbProvider.test.ts +0 -27
  108. package/src/slp/SlpDbProvider.ts +0 -291
  109. package/src/slp/SlpDbTemplates.ts +0 -400
  110. package/src/slp/SlpLibAuth.test.ts +0 -162
  111. package/src/slp/SlpLibAuth.ts +0 -532
  112. package/src/slp/SlpProvider.ts +0 -100
  113. package/src/slp/index.ts +0 -6
  114. package/src/slp/interface.ts +0 -128
  115. package/src/util/bchaddr.test.ts +0 -27
  116. package/src/util/bchaddr.ts +0 -27
  117. package/src/wallet/Slp.test.headless.js +0 -120
  118. package/src/wallet/Slp.test.ts +0 -1000
  119. package/src/wallet/Slp.ts +0 -1014
  120. package/src/webhook/WebhookSlp.test.ts +0 -288
  121. package/src/webhook/WebhookSlp.ts +0 -123
@@ -1,1000 +0,0 @@
1
- import { RegTestWallet, TestNetWallet, Wallet } from "./Wif";
2
-
3
- import { Network } from "..";
4
- import { disconnectProviders, initProviders } from "../network";
5
-
6
- import { mine } from "../mine/mine";
7
-
8
- import { SlpGenesisOptions, SlpGenesisResult } from "../slp/interface";
9
- import { DUST_UTXO_THRESHOLD } from "../constant";
10
- import { ElectrumRawTransaction } from "../network/interface";
11
- import { delay } from "../util/delay";
12
- import BigNumber from "bignumber.js";
13
- import { SlpDbProvider } from "../slp/SlpDbProvider";
14
- import { GsppProvider } from "../slp/GsppProvider";
15
- import { createSlpWallet, walletFromId } from "./createWallet";
16
- import { WalletTypeEnum } from "./enum";
17
-
18
- describe.skip("Slp wallet tests", () => {
19
- beforeAll(async () => {
20
- await initProviders([Network.MAINNET, Network.REGTEST]);
21
- });
22
-
23
- afterAll(async () => {
24
- await disconnectProviders([Network.MAINNET, Network.REGTEST]);
25
- });
26
-
27
- let ticker: string = Math.random().toString(36).substring(8).toUpperCase();
28
- let tokenId: string;
29
-
30
- const genesisOptions: SlpGenesisOptions = {
31
- name: "Mainnet coin",
32
- ticker: ticker,
33
- decimals: 2,
34
- initialAmount: 10000,
35
- documentUrl: "https://mainnet.cash",
36
- documentHash:
37
- "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
38
- };
39
-
40
- const useTestnet = false;
41
-
42
- async function getAliceWallet(): Promise<Wallet> {
43
- if (useTestnet) {
44
- let aliceWif = `${process.env.ALICE_TESTNET_WALLET_ID!}`;
45
- let aliceWallet = await TestNetWallet.fromId(aliceWif);
46
-
47
- return aliceWallet;
48
- }
49
-
50
- const aliceWif = `${process.env.PRIVATE_WIF!}`;
51
- const aliceWallet = await RegTestWallet.fromWIF(aliceWif);
52
-
53
- return aliceWallet;
54
- }
55
-
56
- async function getRandomWallet(): Promise<Wallet> {
57
- if (useTestnet) {
58
- const bobWallet = await TestNetWallet.newRandom();
59
- return bobWallet;
60
- }
61
-
62
- const bobWallet = await RegTestWallet.newRandom();
63
-
64
- return bobWallet;
65
- }
66
-
67
- test("Genesis test", async () => {
68
- const aliceWallet = await getAliceWallet();
69
-
70
- const result: SlpGenesisResult = await aliceWallet.slp.genesis(
71
- genesisOptions
72
- );
73
-
74
- tokenId = result.tokenId;
75
- expect(result.balance.value.isEqualTo(10000));
76
- expect(result.balance.name).toBe("Mainnet coin");
77
- expect(result.balance.ticker).toBe(ticker);
78
- expect(result.balance.tokenId).toBe(tokenId);
79
-
80
- const info = await aliceWallet.slp.getTokenInfo(tokenId);
81
- expect(info!.tokenId).toBe(result.tokenId);
82
- delete (info as any).tokenId;
83
- delete (info as any).parentTokenId;
84
- const tokenInfo = {
85
- decimals: 2,
86
- documentHash:
87
- "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
88
- documentUrl: "https://mainnet.cash",
89
- initialAmount: new BigNumber(10000),
90
- name: "Mainnet coin",
91
- ticker: genesisOptions.ticker,
92
- type: 1,
93
- };
94
-
95
- expect(info).toEqual(tokenInfo);
96
- });
97
-
98
- test("Genesis test, utxos are not suitable", async () => {
99
- const bobWallet = await getRandomWallet();
100
- await mine({ cashaddr: bobWallet.cashaddr!, blocks: 5 });
101
- await expect(bobWallet.slp.genesis(genesisOptions)).rejects.toThrow();
102
- });
103
-
104
- test("Send test", async () => {
105
- const aliceWallet = await getAliceWallet();
106
- const bobWallet = await getRandomWallet();
107
-
108
- let result = await aliceWallet.slp.send([
109
- {
110
- slpaddr: bobWallet.slp.slpaddr,
111
- value: 5,
112
- tokenId: tokenId,
113
- },
114
- ]);
115
-
116
- expect(result.balance.value.isEqualTo(9995));
117
- expect(result.balance.name).toBe("Mainnet coin");
118
- expect(result.balance.ticker).toBe(ticker);
119
- expect(result.balance.tokenId).toBe(tokenId);
120
- expect(result.explorerUrl).toContain(result.txId);
121
-
122
- expect(await bobWallet.slpAware(false).getBalance("satoshi")).toBe(
123
- DUST_UTXO_THRESHOLD
124
- );
125
- expect(await bobWallet.slpAware().getBalance("satoshi")).toBe(0);
126
- let bobBalance = await bobWallet.slp.getBalance(tokenId);
127
- expect(bobBalance.value.isEqualTo(5));
128
- expect(bobBalance.name).toBe("Mainnet coin");
129
- expect(bobBalance.ticker).toBe(ticker);
130
- expect(bobBalance.tokenId).toBe(tokenId);
131
-
132
- // send without token id
133
- result = await aliceWallet.slp.send([
134
- { slpaddr: bobWallet.slp.slpaddr, value: 5, tokenId: tokenId },
135
- ]);
136
-
137
- expect(result.balance.value.isEqualTo(9990));
138
- expect(result.balance.name).toBe("Mainnet coin");
139
- expect(result.balance.ticker).toBe(ticker);
140
- expect(result.balance.tokenId).toBe(tokenId);
141
-
142
- expect(await bobWallet.slpAware(false).getBalance("satoshi")).toBe(
143
- 2 * DUST_UTXO_THRESHOLD
144
- );
145
- expect(await bobWallet.slpAware().getBalance("satoshi")).toBe(0);
146
- bobBalance = await bobWallet.slp.getBalance(tokenId);
147
- expect(bobBalance.value.isEqualTo(10));
148
- expect(bobBalance.name).toBe("Mainnet coin");
149
- expect(bobBalance.ticker).toBe(ticker);
150
- expect(bobBalance.tokenId).toBe(tokenId);
151
-
152
- // send twice to bob
153
- result = await aliceWallet.slp.send([
154
- { slpaddr: bobWallet.slp.slpaddr, value: 5, tokenId: tokenId },
155
- { slpaddr: bobWallet.slp.slpaddr, value: 5, tokenId: tokenId },
156
- ]);
157
-
158
- expect(result.balance.value.isEqualTo(9980));
159
- expect(result.balance.name).toBe("Mainnet coin");
160
- expect(result.balance.ticker).toBe(ticker);
161
- expect(result.balance.tokenId).toBe(tokenId);
162
-
163
- expect(await bobWallet.slpAware(false).getBalance("satoshi")).toBe(
164
- 4 * DUST_UTXO_THRESHOLD
165
- );
166
- expect(await bobWallet.slpAware().getBalance("satoshi")).toBe(0);
167
- bobBalance = await bobWallet.slp.getBalance(tokenId);
168
- expect(bobBalance.value.isEqualTo(20));
169
- expect(bobBalance.name).toBe("Mainnet coin");
170
- expect(bobBalance.ticker).toBe(ticker);
171
- expect(bobBalance.tokenId).toBe(tokenId);
172
-
173
- const charlieWallet = await getRandomWallet();
174
- result = await aliceWallet.slp.send([
175
- { slpaddr: bobWallet.slp.slpaddr, value: 5, tokenId: tokenId },
176
- { slpaddr: charlieWallet.slp.slpaddr, value: 5, tokenId: tokenId },
177
- ]);
178
-
179
- expect(result.balance.value.isEqualTo(9970));
180
- expect(result.balance.name).toBe("Mainnet coin");
181
- expect(result.balance.ticker).toBe(ticker);
182
- expect(result.balance.tokenId).toBe(tokenId);
183
-
184
- expect(await bobWallet.slpAware(false).getBalance("satoshi")).toBe(
185
- 5 * DUST_UTXO_THRESHOLD
186
- );
187
- expect(await bobWallet.slpAware().getBalance("satoshi")).toBe(0);
188
- bobBalance = await bobWallet.slp.getBalance(tokenId);
189
- expect(bobBalance.value.isEqualTo(25));
190
- expect(bobBalance.name).toBe("Mainnet coin");
191
- expect(bobBalance.ticker).toBe(ticker);
192
- expect(bobBalance.tokenId).toBe(tokenId);
193
-
194
- expect(await charlieWallet.slpAware(false).getBalance("satoshi")).toBe(
195
- 1 * DUST_UTXO_THRESHOLD
196
- );
197
- expect(await charlieWallet.slpAware().getBalance("satoshi")).toBe(0);
198
- const charlieBalance = await charlieWallet.slp.getBalance(tokenId);
199
- expect(charlieBalance.value.isEqualTo(25));
200
- expect(charlieBalance.name).toBe("Mainnet coin");
201
- expect(charlieBalance.ticker).toBe(ticker);
202
- expect(charlieBalance.tokenId).toBe(tokenId);
203
- });
204
-
205
- test("Send-return test", async () => {
206
- let aliceWallet = await getAliceWallet();
207
- let bobWallet = await getRandomWallet();
208
-
209
- genesisOptions.ticker = ticker + "_SR";
210
- let genesis: SlpGenesisResult = await aliceWallet.slp.genesis(
211
- genesisOptions
212
- );
213
-
214
- // send bob some bch gas to enable him to send slp
215
- await aliceWallet
216
- .slpAware()
217
- .send([{ cashaddr: bobWallet.cashaddr!, value: 3000, unit: "sat" }]);
218
-
219
- let aliceSlpBalance = (await aliceWallet.slp.getBalance(genesis.tokenId))
220
- .value;
221
- let result = await aliceWallet.slp.send([
222
- {
223
- slpaddr: bobWallet.slp.slpaddr,
224
- value: 5,
225
- tokenId: genesis.tokenId,
226
- },
227
- ]);
228
- let rawTransaction = (await aliceWallet.provider!.getRawTransactionObject(
229
- result.txId
230
- )) as ElectrumRawTransaction;
231
- expect(rawTransaction.vout.length).toBe(4);
232
-
233
- // slp op_return
234
- expect(rawTransaction.vout[0].value).toBe(0);
235
-
236
- // slp target
237
- expect(rawTransaction.vout[1].value).toBe(DUST_UTXO_THRESHOLD / 1e8);
238
- expect(rawTransaction.vout[1].scriptPubKey.addresses[0]).toBe(
239
- bobWallet.cashaddr
240
- );
241
-
242
- // slp change
243
- expect(rawTransaction.vout[2].value).toBe(DUST_UTXO_THRESHOLD / 1e8);
244
- expect(rawTransaction.vout[2].scriptPubKey.addresses[0]).toBe(
245
- aliceWallet.cashaddr
246
- );
247
-
248
- // bch change
249
- expect(rawTransaction.vout[3].scriptPubKey.addresses[0]).toBe(
250
- aliceWallet.cashaddr
251
- );
252
-
253
- expect(result.balance.value.isEqualTo(aliceSlpBalance.minus(5)));
254
-
255
- let bobSlpBalance = await bobWallet.slp.getBalance(genesis.tokenId);
256
- expect(bobSlpBalance.value.toNumber()).toBe(5);
257
-
258
- result = await bobWallet.slp.sendMax(
259
- aliceWallet.slp.slpaddr,
260
- genesis.tokenId
261
- );
262
- expect(result.balance.value.toNumber()).toBe(0);
263
-
264
- rawTransaction = (await aliceWallet.provider!.getRawTransactionObject(
265
- result.txId
266
- )) as ElectrumRawTransaction;
267
- expect(rawTransaction.vout.length).toBe(3);
268
-
269
- // slp op_return
270
- expect(rawTransaction.vout[0].value).toBe(0);
271
-
272
- // slp target
273
- expect(rawTransaction.vout[1].value).toBe(DUST_UTXO_THRESHOLD / 1e8);
274
- expect(rawTransaction.vout[1].scriptPubKey.addresses[0]).toBe(
275
- aliceWallet.cashaddr
276
- );
277
-
278
- // no slp change!
279
-
280
- // bch change
281
- expect(rawTransaction.vout[2].scriptPubKey.addresses[0]).toBe(
282
- bobWallet.cashaddr
283
- );
284
-
285
- let aliceSlpNewBalance = (await aliceWallet.slp.getBalance(genesis.tokenId))
286
- .value;
287
- expect(aliceSlpNewBalance.toString()).toBe(aliceSlpBalance.toString());
288
-
289
- // await bobWallet.sendMax(aliceWallet.cashaddr!);
290
-
291
- // check non-slp send did not burn tokens
292
- aliceSlpNewBalance = (await aliceWallet.slp.getBalance(genesis.tokenId))
293
- .value;
294
- expect(aliceSlpNewBalance.toString()).toBe(aliceSlpBalance.toString());
295
-
296
- // send bob some bch gas to enable him to send slp
297
- // aliceBalance = await aliceWallet.slpAware().send([{cashaddr: bobWallet.cashaddr!, value: 3000, unit: "sat"}]);
298
-
299
- aliceSlpBalance = (await aliceWallet.slp.getBalance(genesis.tokenId)).value;
300
- result = await aliceWallet.slp.send([
301
- {
302
- slpaddr: bobWallet.slp.slpaddr,
303
- value: 5,
304
- tokenId: genesis.tokenId,
305
- },
306
- ]);
307
- rawTransaction = (await aliceWallet.provider!.getRawTransactionObject(
308
- result.txId
309
- )) as ElectrumRawTransaction;
310
- expect(rawTransaction.vout.length).toBe(3);
311
-
312
- // slp op_return
313
- expect(rawTransaction.vout[0].value).toBe(0);
314
-
315
- // slp target
316
- expect(rawTransaction.vout[1].value).toBe(DUST_UTXO_THRESHOLD / 1e8);
317
- expect(rawTransaction.vout[1].scriptPubKey.addresses[0]).toBe(
318
- bobWallet.cashaddr
319
- );
320
-
321
- // no slp change! since we have sent the utxo we received from bob
322
-
323
- // bch change
324
- expect(rawTransaction.vout[2].scriptPubKey.addresses[0]).toBe(
325
- aliceWallet.cashaddr
326
- );
327
-
328
- expect(result.balance.value.isEqualTo(aliceSlpBalance.minus(5)));
329
-
330
- result = await bobWallet.slp.sendMax(
331
- aliceWallet.slp.slpaddr,
332
- genesis.tokenId
333
- );
334
- expect(result.balance.value.toNumber()).toBe(0);
335
-
336
- rawTransaction = (await aliceWallet.provider!.getRawTransactionObject(
337
- result.txId
338
- )) as ElectrumRawTransaction;
339
- expect(rawTransaction.vout.length).toBe(3);
340
-
341
- // slp op_return
342
- expect(rawTransaction.vout[0].value).toBe(0);
343
-
344
- // slp target
345
- expect(rawTransaction.vout[1].value).toBe(DUST_UTXO_THRESHOLD / 1e8);
346
- expect(rawTransaction.vout[1].scriptPubKey.addresses[0]).toBe(
347
- aliceWallet.cashaddr
348
- );
349
-
350
- // no slp change!
351
-
352
- // bch change
353
- expect(rawTransaction.vout[2].scriptPubKey.addresses[0]).toBe(
354
- bobWallet.cashaddr
355
- );
356
-
357
- aliceSlpNewBalance = (await aliceWallet.slp.getBalance(genesis.tokenId))
358
- .value;
359
- expect(aliceSlpNewBalance.toString()).toBe(aliceSlpBalance.toString());
360
-
361
- await bobWallet.sendMax(aliceWallet.cashaddr!);
362
-
363
- // check non-slp send did not burn tokens
364
- aliceSlpNewBalance = (await aliceWallet.slp.getBalance(genesis.tokenId))
365
- .value;
366
- expect(aliceSlpNewBalance.toString()).toBe(aliceSlpBalance.toString());
367
- });
368
-
369
- test("Mint test", async () => {
370
- const aliceWallet = await getAliceWallet();
371
-
372
- // can not mint less than or 0 tokens
373
- await expect(
374
- aliceWallet.slp.mint({ value: -1, tokenId })
375
- ).rejects.toThrow();
376
-
377
- let result = await aliceWallet.slp.mint({ value: 50, tokenId });
378
- expect(result.balance.value.isEqualTo(10040));
379
- expect(result.balance.name).toBe("Mainnet coin");
380
- expect(result.balance.ticker).toBe(ticker);
381
- expect(result.balance.tokenId).toBe(tokenId);
382
-
383
- // the baton must survive the first mint, and we end it now
384
- result = await aliceWallet.slp.mint({ value: 50, tokenId, endBaton: true });
385
- expect(result.balance.value.isEqualTo(10090));
386
- expect(result.balance.name).toBe("Mainnet coin");
387
- expect(result.balance.ticker).toBe(ticker);
388
- expect(result.balance.tokenId).toBe(tokenId);
389
-
390
- // can not mint after baton is burnt
391
- await expect(
392
- aliceWallet.slp.mint({ value: 50, tokenId })
393
- ).rejects.toThrow();
394
- });
395
-
396
- test("Test mint baton transfer", async () => {
397
- const aliceWallet = await getAliceWallet();
398
- const bobWallet = await getRandomWallet();
399
-
400
- const options = { ...genesisOptions };
401
- options.ticker = ticker + "TR";
402
- options.batonReceiverSlpAddr = bobWallet.slp.slpaddr;
403
- options.tokenReceiverSlpAddr = bobWallet.slp.slpaddr;
404
- const genesis: SlpGenesisResult = await aliceWallet.slp.genesis(options);
405
-
406
- let aliceBalance = await aliceWallet.slp.getBalance(genesis.tokenId);
407
- expect(aliceBalance.value.isEqualTo(0));
408
-
409
- let bobBalance = await bobWallet.slp.getBalance(genesis.tokenId);
410
- expect(bobBalance.value.isEqualTo(10000));
411
-
412
- await aliceWallet.send([
413
- { cashaddr: bobWallet.cashaddr!, value: 10000, unit: "sat" },
414
- ]);
415
-
416
- const mintOptions = {
417
- tokenId: genesis.tokenId,
418
- value: 0,
419
- tokenReceiverSlpAddr: aliceWallet.slp.slpaddr,
420
- batonReceiverSlpAddr: aliceWallet.slp.slpaddr,
421
- };
422
- await expect(aliceWallet.slp.mint(mintOptions)).rejects.toThrow();
423
-
424
- await bobWallet.slp.mint(mintOptions);
425
-
426
- aliceBalance = await aliceWallet.slp.getBalance(genesis.tokenId);
427
- expect(aliceBalance.value.isEqualTo(0));
428
-
429
- bobBalance = await bobWallet.slp.getBalance(genesis.tokenId);
430
- expect(bobBalance.value.isEqualTo(10000));
431
-
432
- await expect(bobWallet.slp.mint(mintOptions)).rejects.toThrow();
433
- });
434
-
435
- test("Test tokenId ambiguity", async () => {
436
- const aliceWallet = await getAliceWallet();
437
-
438
- genesisOptions.ticker = ticker + "_AMBIGUOS";
439
- const genesis1: SlpGenesisResult = await aliceWallet.slp.genesis(
440
- genesisOptions
441
- );
442
- const genesis2: SlpGenesisResult = await aliceWallet.slp.genesis(
443
- genesisOptions
444
- );
445
-
446
- // test empty send requests throw
447
- await expect(aliceWallet.slp.send([])).rejects.toThrow();
448
-
449
- // test sending zero amount should throw
450
- await expect(
451
- aliceWallet.slp.send([
452
- {
453
- slpaddr: aliceWallet.slp.slpaddr,
454
- value: 0,
455
- tokenId: genesis1.tokenId,
456
- },
457
- ])
458
- ).rejects.toThrow();
459
-
460
- const sendRequests = [...Array(20).keys()].map((_) => ({
461
- slpaddr: aliceWallet.slp.slpaddr,
462
- value: 1000,
463
- tokenId: genesis1.tokenId,
464
- }));
465
-
466
- // test throw more than 19 send requests are not allowed
467
- await expect(aliceWallet.slp.send(sendRequests)).rejects.toThrow();
468
-
469
- // test tokenId is invalid
470
- await expect(
471
- aliceWallet.slp.send([
472
- {
473
- slpaddr: aliceWallet.slp.slpaddr,
474
- value: 1000,
475
- tokenId: "my cool token",
476
- },
477
- ])
478
- ).rejects.toThrow();
479
-
480
- // test sending two tokens with different tokenIds in a single transaction should throw
481
- await expect(
482
- aliceWallet.slp.send([
483
- {
484
- slpaddr: aliceWallet.slp.slpaddr,
485
- value: 10,
486
- tokenId: genesis1.tokenId,
487
- },
488
- {
489
- slpaddr: aliceWallet.slp.slpaddr,
490
- value: 10,
491
- tokenId: genesis2.tokenId,
492
- },
493
- ])
494
- ).rejects.toThrow();
495
-
496
- const result = await aliceWallet.slp.mint({
497
- value: 50,
498
- tokenId: genesis1.tokenId,
499
- });
500
- expect(result.balance.value.isEqualTo(10050));
501
- expect(result.balance.name).toBe("Mainnet coin");
502
- expect(result.balance.ticker).toBe(genesisOptions.ticker);
503
- expect(result.balance.tokenId).toBe(genesis1.tokenId);
504
- });
505
-
506
- test("Test watching slp balance", async () => {
507
- const aliceWallet = await getAliceWallet();
508
- const bobWallet = await getRandomWallet();
509
-
510
- genesisOptions.ticker = ticker + "WB";
511
- const genesis = await aliceWallet.slp.genesis(genesisOptions);
512
-
513
- const cancelFn = bobWallet.slp.watchBalance((balance) => {
514
- expect(balance.value.toNumber()).toBeGreaterThan(0);
515
- }, genesis.tokenId);
516
- await aliceWallet.slp.send([
517
- {
518
- slpaddr: bobWallet.slp.slpaddr,
519
- value: 10,
520
- tokenId: genesis.tokenId,
521
- },
522
- ]);
523
-
524
- delay(2000);
525
- cancelFn();
526
- });
527
-
528
- test("Test waiting for slp certain balance", async () => {
529
- const aliceWallet = await getAliceWallet();
530
- const bobWallet = await getRandomWallet();
531
-
532
- genesisOptions.ticker = ticker + "_WFB";
533
- const genesis = await aliceWallet.slp.genesis(genesisOptions);
534
- setTimeout(async () => {
535
- await aliceWallet.slp.send([
536
- {
537
- slpaddr: bobWallet.slp.slpaddr,
538
- value: 20,
539
- tokenId: genesis.tokenId,
540
- },
541
- ]);
542
- }, 3000);
543
- const balance = await bobWallet.slp.waitForBalance(10, genesis.tokenId);
544
- expect(balance.value.isEqualTo(20));
545
- await mine({ cashaddr: aliceWallet.cashaddr!, blocks: 1 });
546
- });
547
-
548
- test.skip("Test waiting for slp transaction", async () => {
549
- const aliceWallet = await getAliceWallet();
550
- const bobWallet = await getRandomWallet();
551
-
552
- genesisOptions.ticker = ticker + "_WT";
553
- const genesis: SlpGenesisResult = await aliceWallet.slp.genesis(
554
- genesisOptions
555
- );
556
-
557
- setTimeout(async () => {
558
- await aliceWallet.slp.send([
559
- {
560
- slpaddr: bobWallet.slp.slpaddr,
561
- value: 20,
562
- tokenId: genesis.tokenId,
563
- },
564
- ]);
565
- }, 3000);
566
- const transaction = await bobWallet.slp.waitForTransaction(genesis.tokenId);
567
- expect(transaction.tx_hash.length).toBe(64);
568
- });
569
-
570
- test("Test getting history", async () => {
571
- const aliceWallet = await getAliceWallet();
572
-
573
- if (aliceWallet.slp.provider instanceof GsppProvider) {
574
- return;
575
- }
576
-
577
- const history = await aliceWallet.slp.getHistory();
578
- expect(history.length).toBeGreaterThan(0);
579
-
580
- const lastTx = await aliceWallet.slp.getLastTransaction(true);
581
- expect(lastTx.txid.length).toBe(64);
582
- });
583
-
584
- test("Test utilities", async () => {
585
- const aliceWallet = await getAliceWallet();
586
-
587
- expect(aliceWallet.slp.getDepositAddress()).toContain("slp");
588
- expect(aliceWallet.slp.getDepositQr().src).toContain("data:image");
589
- });
590
-
591
- test("Test faulty wallet", async () => {
592
- let options = { ...genesisOptions };
593
-
594
- const bobWallet = await getRandomWallet();
595
- bobWallet.privateKey = Uint8Array.from([0, 1, 2, 3, 4]);
596
- // not enough funds
597
- await expect(bobWallet.slp.genesis(options)).rejects.toThrow();
598
-
599
- // no private key set
600
- bobWallet.privateKey = undefined;
601
- await expect(bobWallet.slp.genesis(options)).rejects.toThrow();
602
- bobWallet.privateKey = Uint8Array.from([0, 1, 2, 3, 4]);
603
-
604
- // no network provider set
605
- const provider = bobWallet.provider;
606
- bobWallet.provider = undefined;
607
- await expect(bobWallet.slp.genesis(options)).rejects.toThrow();
608
- bobWallet.provider = provider;
609
-
610
- // tokenReceiverSlpAddr is bad
611
- options.tokenReceiverSlpAddr = "test";
612
- await expect(bobWallet.slp.genesis(options)).rejects.toThrow();
613
-
614
- options = { ...genesisOptions };
615
-
616
- // batonReceiverSlpAddr is bad
617
- options.batonReceiverSlpAddr = "test";
618
- await expect(bobWallet.slp.genesis(options)).rejects.toThrow();
619
-
620
- options = { ...genesisOptions };
621
-
622
- // bob's slpaddr is bad
623
- bobWallet.slp.slpaddr = "test";
624
- options.batonReceiverSlpAddr = undefined;
625
- options.tokenReceiverSlpAddr = undefined;
626
- await expect(bobWallet.slp.genesis(options)).rejects.toThrow();
627
- });
628
-
629
- test("Test genesis ends baton", async () => {
630
- const aliceWallet = await getAliceWallet();
631
-
632
- const options = { ...genesisOptions };
633
- options.ticker = ticker + "baton_end";
634
- options.documentUrl = undefined;
635
- options.documentHash = undefined;
636
- options.endBaton = true;
637
- const result: SlpGenesisResult = await aliceWallet.slp.genesis(options);
638
-
639
- tokenId = result.tokenId;
640
-
641
- await expect(
642
- aliceWallet.slp.mint({ value: 100, tokenId, endBaton: false })
643
- ).rejects.toThrow();
644
- });
645
-
646
- test("Test should get formatted slp utxos", async () => {
647
- const aliceWallet = await getAliceWallet();
648
-
649
- const utxos: any = await aliceWallet.slp.getFormattedSlpUtxos();
650
- expect(utxos.length).toBeGreaterThan(0);
651
- expect(utxos[0].utxoId).toContain(":");
652
- });
653
-
654
- test("Test NFT Parent creation and transfer", async () => {
655
- const aliceWallet = await getAliceWallet();
656
- const bobWallet = await getRandomWallet();
657
-
658
- const nftParentGenesis = { ...genesisOptions };
659
- nftParentGenesis.ticker = ticker + "NFTP";
660
- nftParentGenesis.name = "Mainnet NFT Parent";
661
- nftParentGenesis.decimals = 0;
662
- const parentResult: SlpGenesisResult =
663
- await aliceWallet.slp.nftParentGenesis(nftParentGenesis);
664
-
665
- const info = await aliceWallet.slp.getTokenInfo(parentResult.tokenId);
666
- expect(info!.tokenId).toBe(parentResult.tokenId);
667
- delete (info as any).tokenId;
668
-
669
- const parentTokenInfo = {
670
- decimals: 0,
671
- documentHash:
672
- "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
673
- documentUrl: "https://mainnet.cash",
674
- initialAmount: new BigNumber(10000),
675
- name: "Mainnet NFT Parent",
676
- ticker: nftParentGenesis.ticker,
677
- type: 0x81,
678
- };
679
-
680
- delete (info as any).tokenId;
681
- delete (info as any).parentTokenId;
682
-
683
- expect(info).toEqual(parentTokenInfo);
684
-
685
- let sendResult = await aliceWallet.slp.send([
686
- {
687
- slpaddr: bobWallet.slp.slpaddr,
688
- value: 5,
689
- tokenId: parentResult.tokenId,
690
- },
691
- ]);
692
-
693
- expect(sendResult.balance.value.isEqualTo(9995));
694
- expect(sendResult.balance.ticker).toBe(nftParentGenesis.ticker);
695
- expect(sendResult.balance.tokenId).toBe(parentResult.tokenId);
696
-
697
- expect(await bobWallet.slpAware(false).getBalance("satoshi")).toBe(
698
- DUST_UTXO_THRESHOLD
699
- );
700
- expect(await bobWallet.slpAware().getBalance("satoshi")).toBe(0);
701
- let bobBalance = await bobWallet.slp.getBalance(parentResult.tokenId);
702
- expect(bobBalance.value.isEqualTo(5));
703
- expect(bobBalance.ticker).toBe(nftParentGenesis.ticker);
704
- expect(bobBalance.tokenId).toBe(parentResult.tokenId);
705
- });
706
-
707
- test("Test NFT Child creation and transfer", async () => {
708
- const aliceWallet = await getAliceWallet();
709
- const bobWallet = await getRandomWallet();
710
-
711
- const nftParentGenesis = { ...genesisOptions };
712
- nftParentGenesis.ticker = ticker + "NFTP";
713
- nftParentGenesis.name = "Mainnet NFT Parent";
714
- nftParentGenesis.decimals = 0;
715
- nftParentGenesis.initialAmount = 2;
716
- const parentResult: SlpGenesisResult =
717
- await aliceWallet.slp.nftParentGenesis(nftParentGenesis);
718
-
719
- const nftChildGenesis = { ...genesisOptions };
720
- nftChildGenesis.ticker = ticker + "NFTC";
721
- nftChildGenesis.name = "Mainnet NFT Child";
722
- nftChildGenesis.parentTokenId = parentResult.tokenId;
723
-
724
- const childResult: SlpGenesisResult = await aliceWallet.slp.nftChildGenesis(
725
- nftChildGenesis
726
- );
727
-
728
- const childInfo = await aliceWallet.slp.getTokenInfo(childResult.tokenId);
729
- expect(childInfo!.tokenId).toBe(childResult.tokenId);
730
- if (aliceWallet.slp.provider instanceof GsppProvider)
731
- expect((childInfo! as any).parentTokenId).toBe(parentResult.tokenId);
732
-
733
- delete (childInfo as any).tokenId;
734
-
735
- const childTokenInfo = {
736
- decimals: 0,
737
- documentHash:
738
- "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
739
- documentUrl: "https://mainnet.cash",
740
- initialAmount: new BigNumber(1),
741
- name: "Mainnet NFT Child",
742
- ticker: nftChildGenesis.ticker,
743
- type: 0x41,
744
- };
745
-
746
- delete (childInfo as any).tokenId;
747
- delete (childInfo as any).parentTokenId;
748
-
749
- expect(childInfo).toEqual(childTokenInfo);
750
-
751
- let aliceParentBalance = await aliceWallet.slp.getBalance(
752
- parentResult.tokenId
753
- );
754
- expect(aliceParentBalance.value.isEqualTo(1));
755
- expect(aliceParentBalance.ticker).toBe(nftParentGenesis.ticker);
756
- expect(aliceParentBalance.tokenId).toBe(parentResult.tokenId);
757
-
758
- let aliceChildBalance = await aliceWallet.slp.getBalance(
759
- childResult.tokenId
760
- );
761
- expect(aliceChildBalance.value.isEqualTo(1));
762
- expect(aliceChildBalance.ticker).toBe(nftChildGenesis.ticker);
763
- expect(aliceChildBalance.tokenId).toBe(childResult.tokenId);
764
-
765
- let sendResult = await aliceWallet.slp.send([
766
- {
767
- slpaddr: bobWallet.slp.slpaddr,
768
- value: 1,
769
- tokenId: childResult.tokenId,
770
- },
771
- ]);
772
-
773
- expect(sendResult.balance.value.isEqualTo(0));
774
- expect(sendResult.balance.tokenId).toBe(childResult.tokenId);
775
-
776
- expect(await bobWallet.slpAware(false).getBalance("satoshi")).toBe(
777
- DUST_UTXO_THRESHOLD
778
- );
779
- expect(await bobWallet.slpAware().getBalance("satoshi")).toBe(0);
780
- let bobBalance = await bobWallet.slp.getBalance(childResult.tokenId);
781
- expect(bobBalance.value.isEqualTo(1));
782
- expect(bobBalance.ticker).toBe(nftChildGenesis.ticker);
783
- expect(bobBalance.tokenId).toBe(childResult.tokenId);
784
-
785
- // should throw if parent token is not in possession
786
- nftChildGenesis.parentTokenId =
787
- "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef";
788
-
789
- await expect(
790
- aliceWallet.slp.nftChildGenesis(nftChildGenesis)
791
- ).rejects.toThrow();
792
-
793
- // should throw if parent token is not of type 0x81
794
- nftChildGenesis.parentTokenId = childResult.tokenId;
795
- await expect(
796
- aliceWallet.slp.nftChildGenesis(nftChildGenesis)
797
- ).rejects.toThrow();
798
-
799
- // bug in the SLPDB, the parent burn check is not triggered until new block arrives
800
- // if (aliceWallet.slp.provider! instanceof SlpDbProvider) {
801
- // await mine({ cashaddr: aliceWallet.cashaddr!, blocks: 1 });
802
- // await delay(1000);
803
- // }
804
-
805
- // spend last token
806
- const genesis1 = { ...nftChildGenesis };
807
- genesis1.parentTokenId = parentResult.tokenId;
808
- genesis1.ticker = ticker + "1";
809
-
810
- const childResultLast: SlpGenesisResult =
811
- await aliceWallet.slp.nftChildGenesis(genesis1);
812
-
813
- aliceParentBalance = await aliceWallet.slp.getBalance(parentResult.tokenId);
814
- expect(aliceParentBalance.value.isEqualTo(0));
815
- aliceChildBalance = await aliceWallet.slp.getBalance(
816
- childResultLast.tokenId
817
- );
818
- expect(aliceParentBalance.value.isEqualTo(1));
819
-
820
- // fail to to perform child genesis. we are out of parent tokens
821
- const genesis2 = { ...nftChildGenesis };
822
- genesis2.parentTokenId = parentResult.tokenId;
823
- genesis2.ticker = ticker + "0";
824
-
825
- await expect(aliceWallet.slp.nftChildGenesis(genesis2)).rejects.toThrow();
826
- });
827
-
828
- test("Test SLPDB NFT bug", async () => {
829
- const aliceWallet = await getAliceWallet();
830
-
831
- const nftParentGenesis = { ...genesisOptions };
832
- nftParentGenesis.ticker = ticker + "NFTP_Bug";
833
- nftParentGenesis.name = "Mainnet NFT Parent";
834
- nftParentGenesis.decimals = 0;
835
- nftParentGenesis.initialAmount = 1;
836
- const parentResult: SlpGenesisResult =
837
- await aliceWallet.slp.nftParentGenesis(nftParentGenesis);
838
-
839
- const nftChildGenesis1 = { ...genesisOptions };
840
- nftChildGenesis1.ticker = ticker + "NFTC_Bug";
841
- nftChildGenesis1.name = "Mainnet NFT Child";
842
- nftChildGenesis1.parentTokenId = parentResult.tokenId;
843
-
844
- const childResult: SlpGenesisResult = await aliceWallet.slp.nftChildGenesis(
845
- nftChildGenesis1
846
- );
847
-
848
- // // bug in the SLPDB, the parent burn check is not triggered until new block arrives
849
- // await mine({ cashaddr: aliceWallet.cashaddr!, blocks: 1 });
850
- // await delay(5000);
851
-
852
- // fail to to perform child genesis. we are out of parent tokens
853
- const nftChildGenesis2 = { ...genesisOptions };
854
- nftChildGenesis2.ticker = ticker + "1_Bug";
855
- nftChildGenesis2.parentTokenId = parentResult.tokenId;
856
-
857
- await expect(
858
- aliceWallet.slp.nftChildGenesis(nftChildGenesis2)
859
- ).rejects.toThrow();
860
- });
861
-
862
- test.skip("test times", async () => {
863
- // const aliceWallet = await getAliceWallet();
864
-
865
- const slpDbProvider = new SlpDbProvider(Network.REGTEST);
866
- const gsppProvider = new GsppProvider(Network.REGTEST);
867
-
868
- const start1 = new Date().getTime();
869
- const count1 = await slpDbProvider.SlpUtxos(
870
- "simpleledger:qqr7rg6t5pd0xux35297etxklhe4l6p6uua8f5gump"
871
- );
872
- const end1 = new Date().getTime();
873
-
874
- const start2 = new Date().getTime();
875
- const count2 = await gsppProvider.SlpUtxos(
876
- "simpleledger:qqr7rg6t5pd0xux35297etxklhe4l6p6uua8f5gump"
877
- );
878
- const end2 = new Date().getTime();
879
- // console.log("Slpdb", end1-start1);
880
- console.log(
881
- "Slpdb",
882
- end1 - start1,
883
- "Gspp",
884
- end2 - start2,
885
- count1.length,
886
- count2.length
887
- );
888
-
889
- // expect(count1.length).toBe(count2.length);
890
- // console.log(count1.length, count2.length);
891
- });
892
-
893
- test("Slp wallet creation", async () => {
894
- const m = await Wallet.slp.named("wallet");
895
- expect(m.name).toBe("wallet");
896
- expect(m.network).toBe(Network.MAINNET);
897
- expect(m.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
898
- expect(m.derivationPath).toBe("m/44'/245'/0'/0/0");
899
-
900
- const t = await TestNetWallet.slp.named("testnetwallet");
901
- expect(t.name).toBe("testnetwallet");
902
- expect(t.network).toBe(Network.TESTNET);
903
- expect(t.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
904
- expect(t.derivationPath).toBe("m/44'/245'/0'/0/0");
905
-
906
- const r = await RegTestWallet.slp.named("regwallet");
907
- expect(r.name).toBe("regwallet");
908
- expect(r.network).toBe(Network.REGTEST);
909
- expect(r.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
910
- expect(r.derivationPath).toBe("m/44'/245'/0'/0/0");
911
-
912
- let wallet: Wallet;
913
- wallet = await Wallet.slp.fromSeed(new Array(12).join("abandon "));
914
- expect(wallet.derivationPath).toBe("m/44'/245'/0'/0/0");
915
- expect(wallet.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
916
- expect(wallet.network).toBe(Network.MAINNET);
917
-
918
- wallet = await TestNetWallet.slp.fromSeed(
919
- new Array(12).join("abandon "),
920
- "m/44'/200'/0'/0/0"
921
- );
922
- expect(wallet.derivationPath).toBe("m/44'/200'/0'/0/0");
923
- expect(wallet.getSeed().derivationPath).toBe("m/44'/200'/0'/0/0");
924
- expect(wallet.network).toBe(Network.TESTNET);
925
-
926
- wallet = await Wallet.slp.newRandom();
927
- expect(wallet.derivationPath).toBe("m/44'/245'/0'/0/0");
928
- expect(wallet.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
929
- expect(wallet.network).toBe(Network.MAINNET);
930
-
931
- wallet = await Wallet.slp.newRandom("name", "name");
932
- expect(wallet.derivationPath).toBe("m/44'/245'/0'/0/0");
933
- expect(wallet.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
934
- expect(wallet.network).toBe(Network.MAINNET);
935
-
936
- wallet = await createSlpWallet({
937
- name: "test",
938
- network: "mainnet",
939
- type: WalletTypeEnum.Seed,
940
- });
941
- expect(wallet.derivationPath).toBe("m/44'/245'/0'/0/0");
942
- expect(wallet.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
943
- expect(wallet.network).toBe(Network.MAINNET);
944
-
945
- wallet = await createSlpWallet({
946
- name: "test2",
947
- network: "testnet",
948
- type: WalletTypeEnum.Seed,
949
- });
950
- expect(wallet.derivationPath).toBe("m/44'/245'/0'/0/0");
951
- expect(wallet.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
952
- expect(wallet.network).toBe(Network.TESTNET);
953
-
954
- wallet = await createSlpWallet({
955
- name: "test3",
956
- network: "regtest",
957
- type: WalletTypeEnum.Seed,
958
- });
959
- expect(wallet.derivationPath).toBe("m/44'/245'/0'/0/0");
960
- expect(wallet.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
961
- expect(wallet.network).toBe(Network.REGTEST);
962
-
963
- wallet = await createSlpWallet({
964
- network: "mainnet",
965
- type: WalletTypeEnum.Seed,
966
- });
967
- expect(wallet.derivationPath).toBe("m/44'/245'/0'/0/0");
968
- expect(wallet.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
969
- expect(wallet.network).toBe(Network.MAINNET);
970
-
971
- wallet = await createSlpWallet({
972
- network: "testnet",
973
- type: WalletTypeEnum.Seed,
974
- });
975
- expect(wallet.derivationPath).toBe("m/44'/245'/0'/0/0");
976
- expect(wallet.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
977
- expect(wallet.network).toBe(Network.TESTNET);
978
-
979
- wallet = await createSlpWallet({
980
- network: "regtest",
981
- type: WalletTypeEnum.Seed,
982
- });
983
- expect(wallet.derivationPath).toBe("m/44'/245'/0'/0/0");
984
- expect(wallet.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
985
- expect(wallet.network).toBe(Network.REGTEST);
986
- });
987
-
988
- test("Slp wallet retrieval", async () => {
989
- let wallet: Wallet;
990
- wallet = await createSlpWallet({
991
- name: "test",
992
- network: "testnet",
993
- type: WalletTypeEnum.Seed,
994
- });
995
- expect(wallet.derivationPath).toBe("m/44'/245'/0'/0/0");
996
- expect(wallet.getSeed().derivationPath).toBe("m/44'/245'/0'/0/0");
997
- expect(wallet.network).toBe(Network.TESTNET);
998
- expect(wallet.name).toBe("test");
999
- });
1000
- });