@xyo-network/wallet 5.3.29 → 5.4.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.
package/README.md CHANGED
@@ -38,1092 +38,6 @@ bun add {{name}}
38
38
 
39
39
  See the [LICENSE](LICENSE) file for license rights and limitations (LGPL-3.0-only).
40
40
 
41
- ## Reference
42
-
43
- ### packages
44
-
45
- ### protocol
46
-
47
- ### packages
48
-
49
- ### crypto
50
-
51
- ### packages
52
-
53
- ### wallet
54
-
55
- ### .temp-typedoc
56
-
57
- ### classes
58
-
59
- ### <a id="HDWallet"></a>HDWallet
60
-
61
- [**@xyo-network/wallet**](#../README)
62
-
63
- ***
64
-
65
- ## Extends
66
-
67
- - `Account`
68
-
69
- ## Implements
70
-
71
- - `WalletInstance`
72
-
73
- ## Constructors
74
-
75
- ### Constructor
76
-
77
- ```ts
78
- new HDWallet(
79
- key,
80
- node,
81
- privateKey): HDWallet;
82
- ```
83
-
84
- ### Parameters
85
-
86
- #### key
87
-
88
- `symbol`
89
-
90
- #### node
91
-
92
- `HDNodeWallet`
93
-
94
- #### privateKey
95
-
96
- `PrivateKeyInstance`
97
-
98
- ### Returns
99
-
100
- `HDWallet`
101
-
102
- ### Overrides
103
-
104
- ```ts
105
- Account.constructor
106
- ```
107
-
108
- ## Properties
109
-
110
- ### previousHashStore
111
-
112
- ```ts
113
- static previousHashStore: PreviousHashStore | undefined;
114
- ```
115
-
116
- ### Inherited from
117
-
118
- ```ts
119
- Account.previousHashStore
120
- ```
121
-
122
- ***
123
-
124
- ### \_protectedConstructorKey
125
-
126
- ```ts
127
- protected static _protectedConstructorKey: symbol;
128
- ```
129
-
130
- ### Inherited from
131
-
132
- ```ts
133
- Account._protectedConstructorKey
134
- ```
135
-
136
- ***
137
-
138
- ### \_node
139
-
140
- ```ts
141
- protected _node: HDNodeWallet | undefined;
142
- ```
143
-
144
- ### Inherited from
145
-
146
- ```ts
147
- Account._node
148
- ```
149
-
150
- ***
151
-
152
- ### \_previousHash?
153
-
154
- ```ts
155
- protected optional _previousHash?: ArrayBufferLike;
156
- ```
157
-
158
- ### Inherited from
159
-
160
- ```ts
161
- Account._previousHash
162
- ```
163
-
164
- ***
165
-
166
- ### uniqueName
167
-
168
- ```ts
169
- readonly static uniqueName: string;
170
- ```
171
-
172
- ### Overrides
173
-
174
- ```ts
175
- Account.uniqueName
176
- ```
177
-
178
- ***
179
-
180
- ### \_addressMap
181
-
182
- ```ts
183
- protected static _addressMap: Record<Address, WeakRef<WalletInstance>> = {};
184
- ```
185
-
186
- ### Overrides
187
-
188
- ```ts
189
- Account._addressMap
190
- ```
191
-
192
- ***
193
-
194
- ### node
195
-
196
- ```ts
197
- protected readonly node: HDNodeWallet;
198
- ```
199
-
200
- ***
201
-
202
- ### neuter
203
-
204
- ```ts
205
- neuter: () => HDWallet;
206
- ```
207
-
208
- ### Returns
209
-
210
- `HDWallet`
211
-
212
- ### Implementation of
213
-
214
- ```ts
215
- WalletInstance.neuter
216
- ```
217
-
218
- ## Accessors
219
-
220
- ### previousHash
221
-
222
- ### Get Signature
223
-
224
- ```ts
225
- get previousHash(): BrandedHash | undefined;
226
- ```
227
-
228
- #### Returns
229
-
230
- `BrandedHash` \| `undefined`
231
-
232
- ### Implementation of
233
-
234
- ```ts
235
- WalletInstance.previousHash
236
- ```
237
-
238
- ### Inherited from
239
-
240
- ```ts
241
- Account.previousHash
242
- ```
243
-
244
- ***
245
-
246
- ### previousHashBytes
247
-
248
- ### Get Signature
249
-
250
- ```ts
251
- get previousHashBytes(): ArrayBufferLike | undefined;
252
- ```
253
-
254
- #### Returns
255
-
256
- `ArrayBufferLike` \| `undefined`
257
-
258
- ### Implementation of
259
-
260
- ```ts
261
- WalletInstance.previousHashBytes
262
- ```
263
-
264
- ### Inherited from
265
-
266
- ```ts
267
- Account.previousHashBytes
268
- ```
269
-
270
- ***
271
-
272
- ### private
273
-
274
- ### Get Signature
275
-
276
- ```ts
277
- get private(): PrivateKeyInstance;
278
- ```
279
-
280
- #### Returns
281
-
282
- `PrivateKeyInstance`
283
-
284
- ### Implementation of
285
-
286
- ```ts
287
- WalletInstance.private
288
- ```
289
-
290
- ### Inherited from
291
-
292
- ```ts
293
- Account.private
294
- ```
295
-
296
- ***
297
-
298
- ### public
299
-
300
- ### Get Signature
301
-
302
- ```ts
303
- get public(): PublicKeyInstance;
304
- ```
305
-
306
- #### Returns
307
-
308
- `PublicKeyInstance`
309
-
310
- ### Implementation of
311
-
312
- ```ts
313
- WalletInstance.public
314
- ```
315
-
316
- ### Inherited from
317
-
318
- ```ts
319
- Account.public
320
- ```
321
-
322
- ***
323
-
324
- ### length
325
-
326
- ### Get Signature
327
-
328
- ```ts
329
- get length(): number;
330
- ```
331
-
332
- #### Returns
333
-
334
- `number`
335
-
336
- ### Inherited from
337
-
338
- ```ts
339
- Account.length
340
- ```
341
-
342
- ***
343
-
344
- ### base58
345
-
346
- ### Get Signature
347
-
348
- ```ts
349
- get base58(): string;
350
- ```
351
-
352
- #### Returns
353
-
354
- `string`
355
-
356
- ### Inherited from
357
-
358
- ```ts
359
- Account.base58
360
- ```
361
-
362
- ***
363
-
364
- ### bytes
365
-
366
- ### Get Signature
367
-
368
- ```ts
369
- get bytes(): ArrayBuffer | SharedArrayBuffer;
370
- ```
371
-
372
- #### Returns
373
-
374
- `ArrayBuffer` \| `SharedArrayBuffer`
375
-
376
- ### Inherited from
377
-
378
- ```ts
379
- Account.bytes
380
- ```
381
-
382
- ***
383
-
384
- ### hex
385
-
386
- ### Get Signature
387
-
388
- ```ts
389
- get hex(): BrandedHex;
390
- ```
391
-
392
- #### Returns
393
-
394
- `BrandedHex`
395
-
396
- ### Inherited from
397
-
398
- ```ts
399
- Account.hex
400
- ```
401
-
402
- ***
403
-
404
- ### keccak256
405
-
406
- ### Get Signature
407
-
408
- ```ts
409
- get keccak256(): ArrayBufferLike;
410
- ```
411
-
412
- #### Returns
413
-
414
- `ArrayBufferLike`
415
-
416
- ### Inherited from
417
-
418
- ```ts
419
- Account.keccak256
420
- ```
421
-
422
- ***
423
-
424
- ### address
425
-
426
- ### Get Signature
427
-
428
- ```ts
429
- get address(): BrandedAddress;
430
- ```
431
-
432
- #### Returns
433
-
434
- `BrandedAddress`
435
-
436
- ### Implementation of
437
-
438
- ```ts
439
- WalletInstance.address
440
- ```
441
-
442
- ### Overrides
443
-
444
- ```ts
445
- Account.address
446
- ```
447
-
448
- ***
449
-
450
- ### addressBytes
451
-
452
- ### Get Signature
453
-
454
- ```ts
455
- get addressBytes(): ArrayBufferLike;
456
- ```
457
-
458
- #### Returns
459
-
460
- `ArrayBufferLike`
461
-
462
- ### Implementation of
463
-
464
- ```ts
465
- WalletInstance.addressBytes
466
- ```
467
-
468
- ### Overrides
469
-
470
- ```ts
471
- Account.addressBytes
472
- ```
473
-
474
- ***
475
-
476
- ### chainCode
477
-
478
- ### Get Signature
479
-
480
- ```ts
481
- get chainCode(): string;
482
- ```
483
-
484
- #### Returns
485
-
486
- `string`
487
-
488
- ### Implementation of
489
-
490
- ```ts
491
- WalletInstance.chainCode
492
- ```
493
-
494
- ***
495
-
496
- ### depth
497
-
498
- ### Get Signature
499
-
500
- ```ts
501
- get depth(): number;
502
- ```
503
-
504
- #### Returns
505
-
506
- `number`
507
-
508
- ### Implementation of
509
-
510
- ```ts
511
- WalletInstance.depth
512
- ```
513
-
514
- ***
515
-
516
- ### extendedKey
517
-
518
- ### Get Signature
519
-
520
- ```ts
521
- get extendedKey(): string;
522
- ```
523
-
524
- #### Returns
525
-
526
- `string`
527
-
528
- ### Implementation of
529
-
530
- ```ts
531
- WalletInstance.extendedKey
532
- ```
533
-
534
- ***
535
-
536
- ### fingerprint
537
-
538
- ### Get Signature
539
-
540
- ```ts
541
- get fingerprint(): string;
542
- ```
543
-
544
- #### Returns
545
-
546
- `string`
547
-
548
- ### Implementation of
549
-
550
- ```ts
551
- WalletInstance.fingerprint
552
- ```
553
-
554
- ***
555
-
556
- ### index
557
-
558
- ### Get Signature
559
-
560
- ```ts
561
- get index(): number;
562
- ```
563
-
564
- #### Returns
565
-
566
- `number`
567
-
568
- ### Implementation of
569
-
570
- ```ts
571
- WalletInstance.index
572
- ```
573
-
574
- ***
575
-
576
- ### mnemonic
577
-
578
- ### Get Signature
579
-
580
- ```ts
581
- get mnemonic(): Mnemonic | null;
582
- ```
583
-
584
- #### Returns
585
-
586
- `Mnemonic` \| `null`
587
-
588
- ### Implementation of
589
-
590
- ```ts
591
- WalletInstance.mnemonic
592
- ```
593
-
594
- ***
595
-
596
- ### parentFingerprint
597
-
598
- ### Get Signature
599
-
600
- ```ts
601
- get parentFingerprint(): string;
602
- ```
603
-
604
- #### Returns
605
-
606
- `string`
607
-
608
- ### Implementation of
609
-
610
- ```ts
611
- WalletInstance.parentFingerprint
612
- ```
613
-
614
- ***
615
-
616
- ### path
617
-
618
- ### Get Signature
619
-
620
- ```ts
621
- get path(): string | null;
622
- ```
623
-
624
- #### Returns
625
-
626
- `string` \| `null`
627
-
628
- ### Implementation of
629
-
630
- ```ts
631
- WalletInstance.path
632
- ```
633
-
634
- ***
635
-
636
- ### privateKey
637
-
638
- ### Get Signature
639
-
640
- ```ts
641
- get privateKey(): BrandedHex;
642
- ```
643
-
644
- #### Returns
645
-
646
- `BrandedHex`
647
-
648
- ### Implementation of
649
-
650
- ```ts
651
- WalletInstance.privateKey
652
- ```
653
-
654
- ***
655
-
656
- ### publicKey
657
-
658
- ### Get Signature
659
-
660
- ```ts
661
- get publicKey(): BrandedHex;
662
- ```
663
-
664
- #### Returns
665
-
666
- `BrandedHex`
667
-
668
- ### Implementation of
669
-
670
- ```ts
671
- WalletInstance.publicKey
672
- ```
673
-
674
- ## Methods
675
-
676
- ### fromPrivateKey()
677
-
678
- ```ts
679
- static fromPrivateKey(key): Promise<AccountInstance>;
680
- ```
681
-
682
- ### Parameters
683
-
684
- #### key
685
-
686
- `string` \| `bigint` \| `ArrayBufferLike`
687
-
688
- ### Returns
689
-
690
- `Promise`\<`AccountInstance`\>
691
-
692
- ### Inherited from
693
-
694
- ```ts
695
- Account.fromPrivateKey
696
- ```
697
-
698
- ***
699
-
700
- ### isAddress()
701
-
702
- ```ts
703
- static isAddress(address): boolean;
704
- ```
705
-
706
- ### Parameters
707
-
708
- #### address
709
-
710
- `BrandedAddress`
711
-
712
- ### Returns
713
-
714
- `boolean`
715
-
716
- ### Inherited from
717
-
718
- ```ts
719
- Account.isAddress
720
- ```
721
-
722
- ***
723
-
724
- ### initialize()
725
-
726
- ```ts
727
- initialize(): Promise<HDWallet>;
728
- ```
729
-
730
- ### Returns
731
-
732
- `Promise`\<`HDWallet`\>
733
-
734
- ### Inherited from
735
-
736
- ```ts
737
- Account.initialize
738
- ```
739
-
740
- ***
741
-
742
- ### loadPreviousHash()
743
-
744
- ```ts
745
- loadPreviousHash(previousHash?): Promise<HDWallet>;
746
- ```
747
-
748
- ### Parameters
749
-
750
- #### previousHash?
751
-
752
- `string` \| `ArrayBufferLike`
753
-
754
- ### Returns
755
-
756
- `Promise`\<`HDWallet`\>
757
-
758
- ### Inherited from
759
-
760
- ```ts
761
- Account.loadPreviousHash
762
- ```
763
-
764
- ***
765
-
766
- ### sign()
767
-
768
- ```ts
769
- sign(hash, previousHash): Promise<[ArrayBufferLike, BrandedHash?]>;
770
- ```
771
-
772
- ### Parameters
773
-
774
- #### hash
775
-
776
- `ArrayBufferLike`
777
-
778
- #### previousHash
779
-
780
- `ArrayBufferLike` \| `undefined`
781
-
782
- ### Returns
783
-
784
- `Promise`\<\[`ArrayBufferLike`, `BrandedHash`?\]\>
785
-
786
- ### Implementation of
787
-
788
- ```ts
789
- WalletInstance.sign
790
- ```
791
-
792
- ### Inherited from
793
-
794
- ```ts
795
- Account.sign
796
- ```
797
-
798
- ***
799
-
800
- ### verify()
801
-
802
- ```ts
803
- verify(msg, signature): Promise<boolean>;
804
- ```
805
-
806
- ### Parameters
807
-
808
- #### msg
809
-
810
- `ArrayBufferLike`
811
-
812
- #### signature
813
-
814
- `ArrayBufferLike`
815
-
816
- ### Returns
817
-
818
- `Promise`\<`boolean`\>
819
-
820
- ### Implementation of
821
-
822
- ```ts
823
- WalletInstance.verify
824
- ```
825
-
826
- ### Inherited from
827
-
828
- ```ts
829
- Account.verify
830
- ```
831
-
832
- ***
833
-
834
- ### verifyUniqueAddress()
835
-
836
- ```ts
837
- verifyUniqueAddress(): HDWallet | AccountInstance;
838
- ```
839
-
840
- ### Returns
841
-
842
- `HDWallet` \| `AccountInstance`
843
-
844
- ### Inherited from
845
-
846
- ```ts
847
- Account.verifyUniqueAddress
848
- ```
849
-
850
- ***
851
-
852
- ### is()
853
-
854
- ```ts
855
- static is(value): value is AbstractData;
856
- ```
857
-
858
- ### Parameters
859
-
860
- #### value
861
-
862
- `unknown`
863
-
864
- ### Returns
865
-
866
- `value is AbstractData`
867
-
868
- ### Inherited from
869
-
870
- ```ts
871
- Account.is
872
- ```
873
-
874
- ***
875
-
876
- ### from()
877
-
878
- ```ts
879
- static from(data): Data | undefined;
880
- ```
881
-
882
- ### Parameters
883
-
884
- #### data
885
-
886
- `ArrayBuffer` \| `undefined`
887
-
888
- ### Returns
889
-
890
- `Data` \| `undefined`
891
-
892
- ### Inherited from
893
-
894
- ```ts
895
- Account.from
896
- ```
897
-
898
- ***
899
-
900
- ### create()
901
-
902
- ```ts
903
- static create(opts?): Promise<WalletInstance>;
904
- ```
905
-
906
- ### Parameters
907
-
908
- #### opts?
909
-
910
- `AccountConfig`
911
-
912
- ### Returns
913
-
914
- `Promise`\<`WalletInstance`\>
915
-
916
- ### Overrides
917
-
918
- ```ts
919
- Account.create
920
- ```
921
-
922
- ***
923
-
924
- ### createFromNode()
925
-
926
- ```ts
927
- static createFromNode(node, previousHash?): Promise<WalletInstance>;
928
- ```
929
-
930
- ### Parameters
931
-
932
- #### node
933
-
934
- `HDNodeWallet`
935
-
936
- #### previousHash?
937
-
938
- `string`
939
-
940
- ### Returns
941
-
942
- `Promise`\<`WalletInstance`\>
943
-
944
- ***
945
-
946
- ### fromExtendedKey()
947
-
948
- ```ts
949
- static fromExtendedKey(key): Promise<WalletInstance>;
950
- ```
951
-
952
- ### Parameters
953
-
954
- #### key
955
-
956
- `string`
957
-
958
- ### Returns
959
-
960
- `Promise`\<`WalletInstance`\>
961
-
962
- ***
963
-
964
- ### fromMnemonic()
965
-
966
- ```ts
967
- static fromMnemonic(mnemonic, path?): Promise<WalletInstance>;
968
- ```
969
-
970
- ### Parameters
971
-
972
- #### mnemonic
973
-
974
- `Mnemonic`
975
-
976
- #### path?
977
-
978
- `string` = `defaultPath`
979
-
980
- ### Returns
981
-
982
- `Promise`\<`WalletInstance`\>
983
-
984
- ***
985
-
986
- ### fromPhrase()
987
-
988
- ```ts
989
- static fromPhrase(phrase, path?): Promise<WalletInstance>;
990
- ```
991
-
992
- ### Parameters
993
-
994
- #### phrase
995
-
996
- `string`
997
-
998
- #### path?
999
-
1000
- `string` = `defaultPath`
1001
-
1002
- ### Returns
1003
-
1004
- `Promise`\<`WalletInstance`\>
1005
-
1006
- ***
1007
-
1008
- ### fromSeed()
1009
-
1010
- ```ts
1011
- static fromSeed(seed): Promise<WalletInstance>;
1012
- ```
1013
-
1014
- ### Parameters
1015
-
1016
- #### seed
1017
-
1018
- `string` \| `ArrayBufferLike`
1019
-
1020
- ### Returns
1021
-
1022
- `Promise`\<`WalletInstance`\>
1023
-
1024
- ***
1025
-
1026
- ### generateMnemonic()
1027
-
1028
- ```ts
1029
- static generateMnemonic(wordlist?, strength?): string;
1030
- ```
1031
-
1032
- ### Parameters
1033
-
1034
- #### wordlist?
1035
-
1036
- `string`[] = `englishWordlist`
1037
-
1038
- #### strength?
1039
-
1040
- `number` = `256`
1041
-
1042
- ### Returns
1043
-
1044
- `string`
1045
-
1046
- ***
1047
-
1048
- ### random()
1049
-
1050
- ```ts
1051
- static random(): Promise<WalletInstance>;
1052
- ```
1053
-
1054
- ### Returns
1055
-
1056
- `Promise`\<`WalletInstance`\>
1057
-
1058
- ### Overrides
1059
-
1060
- ```ts
1061
- Account.random
1062
- ```
1063
-
1064
- ***
1065
-
1066
- ### createFromNodeInternal()
1067
-
1068
- ```ts
1069
- protected static createFromNodeInternal(node, previousHash?): Promise<WalletInstance>;
1070
- ```
1071
-
1072
- ### Parameters
1073
-
1074
- #### node
1075
-
1076
- `HDNodeWallet`
1077
-
1078
- #### previousHash?
1079
-
1080
- `string`
1081
-
1082
- ### Returns
1083
-
1084
- `Promise`\<`WalletInstance`\>
1085
-
1086
- ***
1087
-
1088
- ### getCachedWalletOrCacheNewWallet()
1089
-
1090
- ```ts
1091
- protected static getCachedWalletOrCacheNewWallet(createdWallet): WalletInstance;
1092
- ```
1093
-
1094
- ### Parameters
1095
-
1096
- #### createdWallet
1097
-
1098
- `WalletInstance`
1099
-
1100
- ### Returns
1101
-
1102
- `WalletInstance`
1103
-
1104
- ***
1105
-
1106
- ### derivePath()
1107
-
1108
- ```ts
1109
- derivePath(path): Promise<WalletInstance>;
1110
- ```
1111
-
1112
- ### Parameters
1113
-
1114
- #### path
1115
-
1116
- `string`
1117
-
1118
- ### Returns
1119
-
1120
- `Promise`\<`WalletInstance`\>
1121
-
1122
- ### Implementation of
1123
-
1124
- ```ts
1125
- WalletInstance.derivePath
1126
- ```
1127
41
 
1128
42
 
1129
43
  [logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
@@ -1,8 +1,8 @@
1
- import { Address, Hex } from '@xylabs/sdk-js';
1
+ import type { Address, Hex } from '@xylabs/sdk-js';
2
2
  import { Account } from '@xyo-network/account';
3
- import { AccountConfig } from '@xyo-network/account-model';
3
+ import type { AccountConfig } from '@xyo-network/account-model';
4
4
  import type { PrivateKeyInstance } from '@xyo-network/key-model';
5
- import { WalletInstance } from '@xyo-network/wallet-model';
5
+ import type { WalletInstance } from '@xyo-network/wallet-model';
6
6
  import { HDNodeWallet, Mnemonic } from 'ethers';
7
7
  export declare class HDWallet extends Account implements WalletInstance {
8
8
  static readonly uniqueName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"HDWallet.d.ts","sourceRoot":"","sources":["../../src/HDWallet.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAEP,GAAG,EAEJ,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,OAAO,EAAc,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EACL,aAAa,EAId,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAgB,MAAM,2BAA2B,CAAA;AACxE,OAAO,EACQ,YAAY,EAAE,QAAQ,EACpC,MAAM,QAAQ,CAAA;AAEf,qBACa,QAAS,SAAQ,OAAQ,YAAW,cAAc;IAC7D,gBAAyB,UAAU,SAA8C;IACjF,iBAA0B,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAK;IAEpF,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;gBAGnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,kBAAkB;IAMhC,IAAa,OAAO,IAAI,OAAO,CAE9B;IAED,IAAa,YAAY,IAAI,eAAe,CAE3C;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,IAAI,UAAU,IAAI,GAAG,CAEpB;IAED,IAAI,SAAS,IAAI,GAAG,CAEnB;WAEqB,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;WAa9D,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAIlF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrD,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAI/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAM9E,MAAM,CAAC,gBAAgB,CAAC,QAAQ,GAAE,MAAM,EAAoB,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM;WAIvE,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;qBAIhC,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAOjH,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAAC,aAAa,EAAE,cAAc,GAAG,cAAc;IAUzF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAavD,MAAM,EAAE,MAAM,QAAQ,CAGrB;CACF"}
1
+ {"version":3,"file":"HDWallet.d.ts","sourceRoot":"","sources":["../../src/HDWallet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,OAAO,EACP,GAAG,EACJ,MAAM,gBAAgB,CAAA;AAMvB,OAAO,EAAE,OAAO,EAAc,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,2BAA2B,CAAA;AAC7E,OAAO,EACQ,YAAY,EAAE,QAAQ,EACpC,MAAM,QAAQ,CAAA;AAEf,qBACa,QAAS,SAAQ,OAAQ,YAAW,cAAc;IAC7D,gBAAyB,UAAU,SAA8C;IACjF,iBAA0B,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAK;IAEpF,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;gBAGnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,kBAAkB;IAMhC,IAAa,OAAO,IAAI,OAAO,CAE9B;IAED,IAAa,YAAY,IAAI,eAAe,CAE3C;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,IAAI,UAAU,IAAI,GAAG,CAEpB;IAED,IAAI,SAAS,IAAI,GAAG,CAEnB;WAEqB,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;WAa9D,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAIlF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrD,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAI/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAM9E,MAAM,CAAC,gBAAgB,CAAC,QAAQ,GAAE,MAAM,EAAoB,EAAE,QAAQ,SAAM,GAAG,MAAM;WAI/D,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;qBAIhC,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAOjH,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAAC,aAAa,EAAE,cAAc,GAAG,cAAc;IAUzF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAavD,MAAM,EAAE,MAAM,QAAQ,CAGrB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/HDWallet.ts"],"sourcesContent":["import { generateMnemonic } from '@scure/bip39'\nimport { wordlist as englishWordlist } from '@scure/bip39/wordlists/english.js'\nimport {\n Address, asAddress, assertEx,\n globallyUnique,\n Hex, hexFromHexString, staticImplements,\n toUint8Array,\n} from '@xylabs/sdk-js'\nimport { Account, PrivateKey } from '@xyo-network/account'\nimport {\n AccountConfig,\n isMnemonicInitializationConfig,\n isPhraseInitializationConfig,\n isPrivateKeyInitializationConfig,\n} from '@xyo-network/account-model'\nimport type { PrivateKeyInstance } from '@xyo-network/key-model'\nimport { WalletInstance, WalletStatic } from '@xyo-network/wallet-model'\nimport {\n defaultPath, HDNodeWallet, Mnemonic,\n} from 'ethers'\n\n@staticImplements<WalletStatic>()\nexport class HDWallet extends Account implements WalletInstance {\n static override readonly uniqueName = globallyUnique('HDWallet', HDWallet, 'xyo')\n protected static override _addressMap: Record<Address, WeakRef<WalletInstance>> = {}\n\n protected readonly node: HDNodeWallet\n\n constructor(\n key: symbol,\n node: HDNodeWallet,\n privateKey: PrivateKeyInstance,\n ) {\n super(key, privateKey)\n this.node = node\n }\n\n override get address(): Address {\n return asAddress(hexFromHexString(this.node.address, { prefix: false }), true)\n }\n\n override get addressBytes(): ArrayBufferLike {\n return toUint8Array(this.address, undefined, 16).buffer\n }\n\n get chainCode(): string {\n return this.node.chainCode\n }\n\n get depth(): number {\n return this.node.depth\n }\n\n get extendedKey(): string {\n return this.node.extendedKey\n }\n\n get fingerprint(): string {\n return this.node.fingerprint\n }\n\n get index(): number {\n return this.node.index\n }\n\n get mnemonic(): Mnemonic | null {\n return this.node.mnemonic\n }\n\n get parentFingerprint(): string {\n return this.node.parentFingerprint\n }\n\n get path(): string | null {\n return this.node.path\n }\n\n get privateKey(): Hex {\n return this.node.privateKey.toLowerCase() as Hex\n }\n\n get publicKey(): Hex {\n return this.node.publicKey.toLowerCase() as Hex\n }\n\n static override async create(opts?: AccountConfig): Promise<WalletInstance> {\n if (isPhraseInitializationConfig(opts)) {\n return await this.fromPhrase(opts.phrase)\n }\n if (isMnemonicInitializationConfig(opts)) {\n return await this.fromPhrase(opts.mnemonic, opts.path)\n }\n if (isPrivateKeyInitializationConfig(opts)) {\n throw new Error('Invalid initialization config. from privateKey not supported. Use Account.fromPrivateKey instead.')\n }\n throw new Error('Invalid initialization config')\n }\n\n static async createFromNode(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n return await this.createFromNodeInternal(node, previousHash)\n }\n\n static async fromExtendedKey(key: string): Promise<WalletInstance> {\n const node = HDNodeWallet.fromExtendedKey(key)\n /* TODO: Handle HDNodeVoidWallet */\n return await HDWallet.createFromNode(node as HDNodeWallet)\n }\n\n static async fromMnemonic(mnemonic: Mnemonic, path: string = defaultPath): Promise<WalletInstance> {\n const node = HDNodeWallet.fromMnemonic(mnemonic, path)\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static async fromPhrase(phrase: string, path: string = defaultPath): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(phrase), path)\n }\n\n static async fromSeed(seed: string | ArrayBufferLike): Promise<WalletInstance> {\n const node = HDNodeWallet.fromSeed(toUint8Array(seed))\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static generateMnemonic(wordlist: string[] = englishWordlist, strength: number = 256): string {\n return generateMnemonic(wordlist, strength)\n }\n\n static override async random(): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(HDWallet.generateMnemonic()))\n }\n\n protected static async createFromNodeInternal(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n const privateKey = toUint8Array(node.privateKey.replace('0x', ''))\n assertEx(privateKey.length === 32, () => `Private key must be 32 bytes [${privateKey?.length}]`)\n const newWallet = await new HDWallet(Account._protectedConstructorKey, node, await PrivateKey.create(privateKey.buffer)).loadPreviousHash(previousHash)\n return HDWallet._addressMap[newWallet.address]?.deref() ?? newWallet\n }\n\n protected static getCachedWalletOrCacheNewWallet(createdWallet: WalletInstance): WalletInstance {\n const existingWallet = this._addressMap[createdWallet.address]?.deref()\n if (existingWallet) {\n return existingWallet\n }\n const ref = new WeakRef(createdWallet)\n this._addressMap[createdWallet.address] = ref\n return createdWallet\n }\n\n async derivePath(path: string): Promise<WalletInstance> {\n // if an absolute path, check if it matches the parent root and work with it\n if (path.startsWith('m/')) {\n const parentPath = this.path\n if (parentPath !== null && path.startsWith(parentPath)) {\n const childPath = path.slice(parentPath.length + 1)\n return await HDWallet.createFromNode(this.node.derivePath(childPath))\n }\n throw new Error(`Invalid absolute path ${path} for wallet with path ${parentPath}`)\n }\n return await HDWallet.createFromNode(this.node.derivePath(path))\n }\n\n neuter: () => HDWallet = () => {\n this.node.neuter()\n return this\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/HDWallet.ts"],"sourcesContent":["import { generateMnemonic } from '@scure/bip39'\nimport { wordlist as englishWordlist } from '@scure/bip39/wordlists/english.js'\nimport type {\n Address,\n Hex,\n} from '@xylabs/sdk-js'\nimport {\n asAddress, assertEx,\n globallyUnique, hexFromHexString, staticImplements,\n toUint8Array,\n} from '@xylabs/sdk-js'\nimport { Account, PrivateKey } from '@xyo-network/account'\nimport type { AccountConfig } from '@xyo-network/account-model'\nimport {\n isMnemonicInitializationConfig,\n isPhraseInitializationConfig,\n isPrivateKeyInitializationConfig,\n} from '@xyo-network/account-model'\nimport type { PrivateKeyInstance } from '@xyo-network/key-model'\nimport type { WalletInstance, WalletStatic } from '@xyo-network/wallet-model'\nimport {\n defaultPath, HDNodeWallet, Mnemonic,\n} from 'ethers'\n\n@staticImplements<WalletStatic>()\nexport class HDWallet extends Account implements WalletInstance {\n static override readonly uniqueName = globallyUnique('HDWallet', HDWallet, 'xyo')\n protected static override _addressMap: Record<Address, WeakRef<WalletInstance>> = {}\n\n protected readonly node: HDNodeWallet\n\n constructor(\n key: symbol,\n node: HDNodeWallet,\n privateKey: PrivateKeyInstance,\n ) {\n super(key, privateKey)\n this.node = node\n }\n\n override get address(): Address {\n return asAddress(hexFromHexString(this.node.address, { prefix: false }), true)\n }\n\n override get addressBytes(): ArrayBufferLike {\n return toUint8Array(this.address, undefined, 16).buffer\n }\n\n get chainCode(): string {\n return this.node.chainCode\n }\n\n get depth(): number {\n return this.node.depth\n }\n\n get extendedKey(): string {\n return this.node.extendedKey\n }\n\n get fingerprint(): string {\n return this.node.fingerprint\n }\n\n get index(): number {\n return this.node.index\n }\n\n get mnemonic(): Mnemonic | null {\n return this.node.mnemonic\n }\n\n get parentFingerprint(): string {\n return this.node.parentFingerprint\n }\n\n get path(): string | null {\n return this.node.path\n }\n\n get privateKey(): Hex {\n return this.node.privateKey.toLowerCase() as Hex\n }\n\n get publicKey(): Hex {\n return this.node.publicKey.toLowerCase() as Hex\n }\n\n static override async create(opts?: AccountConfig): Promise<WalletInstance> {\n if (isPhraseInitializationConfig(opts)) {\n return await this.fromPhrase(opts.phrase)\n }\n if (isMnemonicInitializationConfig(opts)) {\n return await this.fromPhrase(opts.mnemonic, opts.path)\n }\n if (isPrivateKeyInitializationConfig(opts)) {\n throw new Error('Invalid initialization config. from privateKey not supported. Use Account.fromPrivateKey instead.')\n }\n throw new Error('Invalid initialization config')\n }\n\n static async createFromNode(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n return await this.createFromNodeInternal(node, previousHash)\n }\n\n static async fromExtendedKey(key: string): Promise<WalletInstance> {\n const node = HDNodeWallet.fromExtendedKey(key)\n /* TODO: Handle HDNodeVoidWallet */\n return await HDWallet.createFromNode(node as HDNodeWallet)\n }\n\n static async fromMnemonic(mnemonic: Mnemonic, path: string = defaultPath): Promise<WalletInstance> {\n const node = HDNodeWallet.fromMnemonic(mnemonic, path)\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static async fromPhrase(phrase: string, path: string = defaultPath): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(phrase), path)\n }\n\n static async fromSeed(seed: string | ArrayBufferLike): Promise<WalletInstance> {\n const node = HDNodeWallet.fromSeed(toUint8Array(seed))\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static generateMnemonic(wordlist: string[] = englishWordlist, strength = 256): string {\n return generateMnemonic(wordlist, strength)\n }\n\n static override async random(): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(HDWallet.generateMnemonic()))\n }\n\n protected static async createFromNodeInternal(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n const privateKey = toUint8Array(node.privateKey.replace('0x', ''))\n assertEx(privateKey.length === 32, () => `Private key must be 32 bytes [${privateKey?.length}]`)\n const newWallet = await new HDWallet(Account._protectedConstructorKey, node, await PrivateKey.create(privateKey.buffer)).loadPreviousHash(previousHash)\n return HDWallet._addressMap[newWallet.address]?.deref() ?? newWallet\n }\n\n protected static getCachedWalletOrCacheNewWallet(createdWallet: WalletInstance): WalletInstance {\n const existingWallet = this._addressMap[createdWallet.address]?.deref()\n if (existingWallet) {\n return existingWallet\n }\n const ref = new WeakRef(createdWallet)\n this._addressMap[createdWallet.address] = ref\n return createdWallet\n }\n\n async derivePath(path: string): Promise<WalletInstance> {\n // if an absolute path, check if it matches the parent root and work with it\n if (path.startsWith('m/')) {\n const parentPath = this.path\n if (parentPath !== null && path.startsWith(parentPath)) {\n const childPath = path.slice(parentPath.length + 1)\n return await HDWallet.createFromNode(this.node.derivePath(childPath))\n }\n throw new Error(`Invalid absolute path ${path} for wallet with path ${parentPath}`)\n }\n return await HDWallet.createFromNode(this.node.derivePath(path))\n }\n\n neuter: () => HDWallet = () => {\n this.node.neuter()\n return this\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,wBAAwB;AACjC,SAAS,YAAY,uBAAuB;AAK5C;AAAA,EACE;AAAA,EAAW;AAAA,EACX;AAAA,EAAgB;AAAA,EAAkB;AAAA,EAClC;AAAA,OACK;AACP,SAAS,SAAS,kBAAkB;AAEpC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EAAa;AAAA,EAAc;AAAA,OACtB;AAGA,IAAM,WAAN,cAAuB,QAAkC;AAAA,EAI3C;AAAA,EAEnB,YACE,KACA,MACA,YACA;AACA,UAAM,KAAK,UAAU;AACrB,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,IAAa,UAAmB;AAC9B,WAAO,UAAU,iBAAiB,KAAK,KAAK,SAAS,EAAE,QAAQ,MAAM,CAAC,GAAG,IAAI;AAAA,EAC/E;AAAA,EAEA,IAAa,eAAgC;AAC3C,WAAO,aAAa,KAAK,SAAS,QAAW,EAAE,EAAE;AAAA,EACnD;AAAA,EAEA,IAAI,YAAoB;AACtB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,cAAsB;AACxB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,cAAsB;AACxB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,WAA4B;AAC9B,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,oBAA4B;AAC9B,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,OAAsB;AACxB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,aAAkB;AACpB,WAAO,KAAK,KAAK,WAAW,YAAY;AAAA,EAC1C;AAAA,EAEA,IAAI,YAAiB;AACnB,WAAO,KAAK,KAAK,UAAU,YAAY;AAAA,EACzC;AAAA,EAEA,aAAsB,OAAO,MAA+C;AAC1E,QAAI,6BAA6B,IAAI,GAAG;AACtC,aAAO,MAAM,KAAK,WAAW,KAAK,MAAM;AAAA,IAC1C;AACA,QAAI,+BAA+B,IAAI,GAAG;AACxC,aAAO,MAAM,KAAK,WAAW,KAAK,UAAU,KAAK,IAAI;AAAA,IACvD;AACA,QAAI,iCAAiC,IAAI,GAAG;AAC1C,YAAM,IAAI,MAAM,oGAAoG;AAAA,IACtH;AACA,UAAM,IAAI,MAAM,+BAA+B;AAAA,EACjD;AAAA,EAEA,aAAa,eAAe,MAAoB,cAAgD;AAC9F,WAAO,MAAM,KAAK,uBAAuB,MAAM,YAAY;AAAA,EAC7D;AAAA,EAEA,aAAa,gBAAgB,KAAsC;AACjE,UAAM,OAAO,aAAa,gBAAgB,GAAG;AAE7C,WAAO,MAAM,SAAS,eAAe,IAAoB;AAAA,EAC3D;AAAA,EAEA,aAAa,aAAa,UAAoB,OAAe,aAAsC;AACjG,UAAM,OAAO,aAAa,aAAa,UAAU,IAAI;AACrD,UAAM,gBAAgB,MAAM,KAAK,uBAAuB,IAAI;AAC5D,WAAO,KAAK,gCAAgC,aAAa;AAAA,EAC3D;AAAA,EAEA,aAAa,WAAW,QAAgB,OAAe,aAAsC;AAC3F,WAAO,MAAM,KAAK,aAAa,SAAS,WAAW,MAAM,GAAG,IAAI;AAAA,EAClE;AAAA,EAEA,aAAa,SAAS,MAAyD;AAC7E,UAAM,OAAO,aAAa,SAAS,aAAa,IAAI,CAAC;AACrD,UAAM,gBAAgB,MAAM,KAAK,uBAAuB,IAAI;AAC5D,WAAO,KAAK,gCAAgC,aAAa;AAAA,EAC3D;AAAA,EAEA,OAAO,iBAAiB,WAAqB,iBAAiB,WAAW,KAAa;AACpF,WAAO,iBAAiB,UAAU,QAAQ;AAAA,EAC5C;AAAA,EAEA,aAAsB,SAAkC;AACtD,WAAO,MAAM,KAAK,aAAa,SAAS,WAAW,SAAS,iBAAiB,CAAC,CAAC;AAAA,EACjF;AAAA,EAEA,aAAuB,uBAAuB,MAAoB,cAAgD;AAChH,UAAM,aAAa,aAAa,KAAK,WAAW,QAAQ,MAAM,EAAE,CAAC;AACjE,aAAS,WAAW,WAAW,IAAI,MAAM,iCAAiC,YAAY,MAAM,GAAG;AAC/F,UAAM,YAAY,MAAM,IAAI,SAAS,QAAQ,0BAA0B,MAAM,MAAM,WAAW,OAAO,WAAW,MAAM,CAAC,EAAE,iBAAiB,YAAY;AACtJ,WAAO,SAAS,YAAY,UAAU,OAAO,GAAG,MAAM,KAAK;AAAA,EAC7D;AAAA,EAEA,OAAiB,gCAAgC,eAA+C;AAC9F,UAAM,iBAAiB,KAAK,YAAY,cAAc,OAAO,GAAG,MAAM;AACtE,QAAI,gBAAgB;AAClB,aAAO;AAAA,IACT;AACA,UAAM,MAAM,IAAI,QAAQ,aAAa;AACrC,SAAK,YAAY,cAAc,OAAO,IAAI;AAC1C,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,WAAW,MAAuC;AAEtD,QAAI,KAAK,WAAW,IAAI,GAAG;AACzB,YAAM,aAAa,KAAK;AACxB,UAAI,eAAe,QAAQ,KAAK,WAAW,UAAU,GAAG;AACtD,cAAM,YAAY,KAAK,MAAM,WAAW,SAAS,CAAC;AAClD,eAAO,MAAM,SAAS,eAAe,KAAK,KAAK,WAAW,SAAS,CAAC;AAAA,MACtE;AACA,YAAM,IAAI,MAAM,yBAAyB,IAAI,yBAAyB,UAAU,EAAE;AAAA,IACpF;AACA,WAAO,MAAM,SAAS,eAAe,KAAK,KAAK,WAAW,IAAI,CAAC;AAAA,EACjE;AAAA,EAEA,SAAyB,MAAM;AAC7B,SAAK,KAAK,OAAO;AACjB,WAAO;AAAA,EACT;AACF;AA/IE,cADW,UACc,cAAa,eAAe,YAAY,UAAU,KAAK;AAChF,cAFW,UAEe,eAAwD,CAAC;AAFxE,WAAN;AAAA,EADN,iBAA+B;AAAA,GACnB;","names":[]}
@@ -1,8 +1,8 @@
1
- import { Address, Hex } from '@xylabs/sdk-js';
1
+ import type { Address, Hex } from '@xylabs/sdk-js';
2
2
  import { Account } from '@xyo-network/account';
3
- import { AccountConfig } from '@xyo-network/account-model';
3
+ import type { AccountConfig } from '@xyo-network/account-model';
4
4
  import type { PrivateKeyInstance } from '@xyo-network/key-model';
5
- import { WalletInstance } from '@xyo-network/wallet-model';
5
+ import type { WalletInstance } from '@xyo-network/wallet-model';
6
6
  import { HDNodeWallet, Mnemonic } from 'ethers';
7
7
  export declare class HDWallet extends Account implements WalletInstance {
8
8
  static readonly uniqueName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"HDWallet.d.ts","sourceRoot":"","sources":["../../src/HDWallet.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAEP,GAAG,EAEJ,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,OAAO,EAAc,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EACL,aAAa,EAId,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAgB,MAAM,2BAA2B,CAAA;AACxE,OAAO,EACQ,YAAY,EAAE,QAAQ,EACpC,MAAM,QAAQ,CAAA;AAEf,qBACa,QAAS,SAAQ,OAAQ,YAAW,cAAc;IAC7D,gBAAyB,UAAU,SAA8C;IACjF,iBAA0B,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAK;IAEpF,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;gBAGnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,kBAAkB;IAMhC,IAAa,OAAO,IAAI,OAAO,CAE9B;IAED,IAAa,YAAY,IAAI,eAAe,CAE3C;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,IAAI,UAAU,IAAI,GAAG,CAEpB;IAED,IAAI,SAAS,IAAI,GAAG,CAEnB;WAEqB,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;WAa9D,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAIlF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrD,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAI/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAM9E,MAAM,CAAC,gBAAgB,CAAC,QAAQ,GAAE,MAAM,EAAoB,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM;WAIvE,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;qBAIhC,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAOjH,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAAC,aAAa,EAAE,cAAc,GAAG,cAAc;IAUzF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAavD,MAAM,EAAE,MAAM,QAAQ,CAGrB;CACF"}
1
+ {"version":3,"file":"HDWallet.d.ts","sourceRoot":"","sources":["../../src/HDWallet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,OAAO,EACP,GAAG,EACJ,MAAM,gBAAgB,CAAA;AAMvB,OAAO,EAAE,OAAO,EAAc,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,2BAA2B,CAAA;AAC7E,OAAO,EACQ,YAAY,EAAE,QAAQ,EACpC,MAAM,QAAQ,CAAA;AAEf,qBACa,QAAS,SAAQ,OAAQ,YAAW,cAAc;IAC7D,gBAAyB,UAAU,SAA8C;IACjF,iBAA0B,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAK;IAEpF,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;gBAGnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,kBAAkB;IAMhC,IAAa,OAAO,IAAI,OAAO,CAE9B;IAED,IAAa,YAAY,IAAI,eAAe,CAE3C;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,IAAI,UAAU,IAAI,GAAG,CAEpB;IAED,IAAI,SAAS,IAAI,GAAG,CAEnB;WAEqB,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;WAa9D,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAIlF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrD,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAI/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAM9E,MAAM,CAAC,gBAAgB,CAAC,QAAQ,GAAE,MAAM,EAAoB,EAAE,QAAQ,SAAM,GAAG,MAAM;WAI/D,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;qBAIhC,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAOjH,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAAC,aAAa,EAAE,cAAc,GAAG,cAAc;IAUzF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAavD,MAAM,EAAE,MAAM,QAAQ,CAGrB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/HDWallet.ts"],"sourcesContent":["import { generateMnemonic } from '@scure/bip39'\nimport { wordlist as englishWordlist } from '@scure/bip39/wordlists/english.js'\nimport {\n Address, asAddress, assertEx,\n globallyUnique,\n Hex, hexFromHexString, staticImplements,\n toUint8Array,\n} from '@xylabs/sdk-js'\nimport { Account, PrivateKey } from '@xyo-network/account'\nimport {\n AccountConfig,\n isMnemonicInitializationConfig,\n isPhraseInitializationConfig,\n isPrivateKeyInitializationConfig,\n} from '@xyo-network/account-model'\nimport type { PrivateKeyInstance } from '@xyo-network/key-model'\nimport { WalletInstance, WalletStatic } from '@xyo-network/wallet-model'\nimport {\n defaultPath, HDNodeWallet, Mnemonic,\n} from 'ethers'\n\n@staticImplements<WalletStatic>()\nexport class HDWallet extends Account implements WalletInstance {\n static override readonly uniqueName = globallyUnique('HDWallet', HDWallet, 'xyo')\n protected static override _addressMap: Record<Address, WeakRef<WalletInstance>> = {}\n\n protected readonly node: HDNodeWallet\n\n constructor(\n key: symbol,\n node: HDNodeWallet,\n privateKey: PrivateKeyInstance,\n ) {\n super(key, privateKey)\n this.node = node\n }\n\n override get address(): Address {\n return asAddress(hexFromHexString(this.node.address, { prefix: false }), true)\n }\n\n override get addressBytes(): ArrayBufferLike {\n return toUint8Array(this.address, undefined, 16).buffer\n }\n\n get chainCode(): string {\n return this.node.chainCode\n }\n\n get depth(): number {\n return this.node.depth\n }\n\n get extendedKey(): string {\n return this.node.extendedKey\n }\n\n get fingerprint(): string {\n return this.node.fingerprint\n }\n\n get index(): number {\n return this.node.index\n }\n\n get mnemonic(): Mnemonic | null {\n return this.node.mnemonic\n }\n\n get parentFingerprint(): string {\n return this.node.parentFingerprint\n }\n\n get path(): string | null {\n return this.node.path\n }\n\n get privateKey(): Hex {\n return this.node.privateKey.toLowerCase() as Hex\n }\n\n get publicKey(): Hex {\n return this.node.publicKey.toLowerCase() as Hex\n }\n\n static override async create(opts?: AccountConfig): Promise<WalletInstance> {\n if (isPhraseInitializationConfig(opts)) {\n return await this.fromPhrase(opts.phrase)\n }\n if (isMnemonicInitializationConfig(opts)) {\n return await this.fromPhrase(opts.mnemonic, opts.path)\n }\n if (isPrivateKeyInitializationConfig(opts)) {\n throw new Error('Invalid initialization config. from privateKey not supported. Use Account.fromPrivateKey instead.')\n }\n throw new Error('Invalid initialization config')\n }\n\n static async createFromNode(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n return await this.createFromNodeInternal(node, previousHash)\n }\n\n static async fromExtendedKey(key: string): Promise<WalletInstance> {\n const node = HDNodeWallet.fromExtendedKey(key)\n /* TODO: Handle HDNodeVoidWallet */\n return await HDWallet.createFromNode(node as HDNodeWallet)\n }\n\n static async fromMnemonic(mnemonic: Mnemonic, path: string = defaultPath): Promise<WalletInstance> {\n const node = HDNodeWallet.fromMnemonic(mnemonic, path)\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static async fromPhrase(phrase: string, path: string = defaultPath): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(phrase), path)\n }\n\n static async fromSeed(seed: string | ArrayBufferLike): Promise<WalletInstance> {\n const node = HDNodeWallet.fromSeed(toUint8Array(seed))\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static generateMnemonic(wordlist: string[] = englishWordlist, strength: number = 256): string {\n return generateMnemonic(wordlist, strength)\n }\n\n static override async random(): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(HDWallet.generateMnemonic()))\n }\n\n protected static async createFromNodeInternal(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n const privateKey = toUint8Array(node.privateKey.replace('0x', ''))\n assertEx(privateKey.length === 32, () => `Private key must be 32 bytes [${privateKey?.length}]`)\n const newWallet = await new HDWallet(Account._protectedConstructorKey, node, await PrivateKey.create(privateKey.buffer)).loadPreviousHash(previousHash)\n return HDWallet._addressMap[newWallet.address]?.deref() ?? newWallet\n }\n\n protected static getCachedWalletOrCacheNewWallet(createdWallet: WalletInstance): WalletInstance {\n const existingWallet = this._addressMap[createdWallet.address]?.deref()\n if (existingWallet) {\n return existingWallet\n }\n const ref = new WeakRef(createdWallet)\n this._addressMap[createdWallet.address] = ref\n return createdWallet\n }\n\n async derivePath(path: string): Promise<WalletInstance> {\n // if an absolute path, check if it matches the parent root and work with it\n if (path.startsWith('m/')) {\n const parentPath = this.path\n if (parentPath !== null && path.startsWith(parentPath)) {\n const childPath = path.slice(parentPath.length + 1)\n return await HDWallet.createFromNode(this.node.derivePath(childPath))\n }\n throw new Error(`Invalid absolute path ${path} for wallet with path ${parentPath}`)\n }\n return await HDWallet.createFromNode(this.node.derivePath(path))\n }\n\n neuter: () => HDWallet = () => {\n this.node.neuter()\n return this\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/HDWallet.ts"],"sourcesContent":["import { generateMnemonic } from '@scure/bip39'\nimport { wordlist as englishWordlist } from '@scure/bip39/wordlists/english.js'\nimport type {\n Address,\n Hex,\n} from '@xylabs/sdk-js'\nimport {\n asAddress, assertEx,\n globallyUnique, hexFromHexString, staticImplements,\n toUint8Array,\n} from '@xylabs/sdk-js'\nimport { Account, PrivateKey } from '@xyo-network/account'\nimport type { AccountConfig } from '@xyo-network/account-model'\nimport {\n isMnemonicInitializationConfig,\n isPhraseInitializationConfig,\n isPrivateKeyInitializationConfig,\n} from '@xyo-network/account-model'\nimport type { PrivateKeyInstance } from '@xyo-network/key-model'\nimport type { WalletInstance, WalletStatic } from '@xyo-network/wallet-model'\nimport {\n defaultPath, HDNodeWallet, Mnemonic,\n} from 'ethers'\n\n@staticImplements<WalletStatic>()\nexport class HDWallet extends Account implements WalletInstance {\n static override readonly uniqueName = globallyUnique('HDWallet', HDWallet, 'xyo')\n protected static override _addressMap: Record<Address, WeakRef<WalletInstance>> = {}\n\n protected readonly node: HDNodeWallet\n\n constructor(\n key: symbol,\n node: HDNodeWallet,\n privateKey: PrivateKeyInstance,\n ) {\n super(key, privateKey)\n this.node = node\n }\n\n override get address(): Address {\n return asAddress(hexFromHexString(this.node.address, { prefix: false }), true)\n }\n\n override get addressBytes(): ArrayBufferLike {\n return toUint8Array(this.address, undefined, 16).buffer\n }\n\n get chainCode(): string {\n return this.node.chainCode\n }\n\n get depth(): number {\n return this.node.depth\n }\n\n get extendedKey(): string {\n return this.node.extendedKey\n }\n\n get fingerprint(): string {\n return this.node.fingerprint\n }\n\n get index(): number {\n return this.node.index\n }\n\n get mnemonic(): Mnemonic | null {\n return this.node.mnemonic\n }\n\n get parentFingerprint(): string {\n return this.node.parentFingerprint\n }\n\n get path(): string | null {\n return this.node.path\n }\n\n get privateKey(): Hex {\n return this.node.privateKey.toLowerCase() as Hex\n }\n\n get publicKey(): Hex {\n return this.node.publicKey.toLowerCase() as Hex\n }\n\n static override async create(opts?: AccountConfig): Promise<WalletInstance> {\n if (isPhraseInitializationConfig(opts)) {\n return await this.fromPhrase(opts.phrase)\n }\n if (isMnemonicInitializationConfig(opts)) {\n return await this.fromPhrase(opts.mnemonic, opts.path)\n }\n if (isPrivateKeyInitializationConfig(opts)) {\n throw new Error('Invalid initialization config. from privateKey not supported. Use Account.fromPrivateKey instead.')\n }\n throw new Error('Invalid initialization config')\n }\n\n static async createFromNode(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n return await this.createFromNodeInternal(node, previousHash)\n }\n\n static async fromExtendedKey(key: string): Promise<WalletInstance> {\n const node = HDNodeWallet.fromExtendedKey(key)\n /* TODO: Handle HDNodeVoidWallet */\n return await HDWallet.createFromNode(node as HDNodeWallet)\n }\n\n static async fromMnemonic(mnemonic: Mnemonic, path: string = defaultPath): Promise<WalletInstance> {\n const node = HDNodeWallet.fromMnemonic(mnemonic, path)\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static async fromPhrase(phrase: string, path: string = defaultPath): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(phrase), path)\n }\n\n static async fromSeed(seed: string | ArrayBufferLike): Promise<WalletInstance> {\n const node = HDNodeWallet.fromSeed(toUint8Array(seed))\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static generateMnemonic(wordlist: string[] = englishWordlist, strength = 256): string {\n return generateMnemonic(wordlist, strength)\n }\n\n static override async random(): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(HDWallet.generateMnemonic()))\n }\n\n protected static async createFromNodeInternal(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n const privateKey = toUint8Array(node.privateKey.replace('0x', ''))\n assertEx(privateKey.length === 32, () => `Private key must be 32 bytes [${privateKey?.length}]`)\n const newWallet = await new HDWallet(Account._protectedConstructorKey, node, await PrivateKey.create(privateKey.buffer)).loadPreviousHash(previousHash)\n return HDWallet._addressMap[newWallet.address]?.deref() ?? newWallet\n }\n\n protected static getCachedWalletOrCacheNewWallet(createdWallet: WalletInstance): WalletInstance {\n const existingWallet = this._addressMap[createdWallet.address]?.deref()\n if (existingWallet) {\n return existingWallet\n }\n const ref = new WeakRef(createdWallet)\n this._addressMap[createdWallet.address] = ref\n return createdWallet\n }\n\n async derivePath(path: string): Promise<WalletInstance> {\n // if an absolute path, check if it matches the parent root and work with it\n if (path.startsWith('m/')) {\n const parentPath = this.path\n if (parentPath !== null && path.startsWith(parentPath)) {\n const childPath = path.slice(parentPath.length + 1)\n return await HDWallet.createFromNode(this.node.derivePath(childPath))\n }\n throw new Error(`Invalid absolute path ${path} for wallet with path ${parentPath}`)\n }\n return await HDWallet.createFromNode(this.node.derivePath(path))\n }\n\n neuter: () => HDWallet = () => {\n this.node.neuter()\n return this\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,8 +1,8 @@
1
- import { Address, Hex } from '@xylabs/sdk-js';
1
+ import type { Address, Hex } from '@xylabs/sdk-js';
2
2
  import { Account } from '@xyo-network/account';
3
- import { AccountConfig } from '@xyo-network/account-model';
3
+ import type { AccountConfig } from '@xyo-network/account-model';
4
4
  import type { PrivateKeyInstance } from '@xyo-network/key-model';
5
- import { WalletInstance } from '@xyo-network/wallet-model';
5
+ import type { WalletInstance } from '@xyo-network/wallet-model';
6
6
  import { HDNodeWallet, Mnemonic } from 'ethers';
7
7
  export declare class HDWallet extends Account implements WalletInstance {
8
8
  static readonly uniqueName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"HDWallet.d.ts","sourceRoot":"","sources":["../../src/HDWallet.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAEP,GAAG,EAEJ,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,OAAO,EAAc,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EACL,aAAa,EAId,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAgB,MAAM,2BAA2B,CAAA;AACxE,OAAO,EACQ,YAAY,EAAE,QAAQ,EACpC,MAAM,QAAQ,CAAA;AAEf,qBACa,QAAS,SAAQ,OAAQ,YAAW,cAAc;IAC7D,gBAAyB,UAAU,SAA8C;IACjF,iBAA0B,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAK;IAEpF,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;gBAGnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,kBAAkB;IAMhC,IAAa,OAAO,IAAI,OAAO,CAE9B;IAED,IAAa,YAAY,IAAI,eAAe,CAE3C;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,IAAI,UAAU,IAAI,GAAG,CAEpB;IAED,IAAI,SAAS,IAAI,GAAG,CAEnB;WAEqB,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;WAa9D,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAIlF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrD,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAI/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAM9E,MAAM,CAAC,gBAAgB,CAAC,QAAQ,GAAE,MAAM,EAAoB,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM;WAIvE,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;qBAIhC,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAOjH,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAAC,aAAa,EAAE,cAAc,GAAG,cAAc;IAUzF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAavD,MAAM,EAAE,MAAM,QAAQ,CAGrB;CACF"}
1
+ {"version":3,"file":"HDWallet.d.ts","sourceRoot":"","sources":["../../src/HDWallet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,OAAO,EACP,GAAG,EACJ,MAAM,gBAAgB,CAAA;AAMvB,OAAO,EAAE,OAAO,EAAc,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,2BAA2B,CAAA;AAC7E,OAAO,EACQ,YAAY,EAAE,QAAQ,EACpC,MAAM,QAAQ,CAAA;AAEf,qBACa,QAAS,SAAQ,OAAQ,YAAW,cAAc;IAC7D,gBAAyB,UAAU,SAA8C;IACjF,iBAA0B,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAK;IAEpF,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;gBAGnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,kBAAkB;IAMhC,IAAa,OAAO,IAAI,OAAO,CAE9B;IAED,IAAa,YAAY,IAAI,eAAe,CAE3C;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,IAAI,UAAU,IAAI,GAAG,CAEpB;IAED,IAAI,SAAS,IAAI,GAAG,CAEnB;WAEqB,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;WAa9D,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAIlF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrD,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAMrF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;WAI/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAM9E,MAAM,CAAC,gBAAgB,CAAC,QAAQ,GAAE,MAAM,EAAoB,EAAE,QAAQ,SAAM,GAAG,MAAM;WAI/D,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;qBAIhC,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAOjH,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAAC,aAAa,EAAE,cAAc,GAAG,cAAc;IAUzF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAavD,MAAM,EAAE,MAAM,QAAQ,CAGrB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/HDWallet.ts"],"sourcesContent":["import { generateMnemonic } from '@scure/bip39'\nimport { wordlist as englishWordlist } from '@scure/bip39/wordlists/english.js'\nimport {\n Address, asAddress, assertEx,\n globallyUnique,\n Hex, hexFromHexString, staticImplements,\n toUint8Array,\n} from '@xylabs/sdk-js'\nimport { Account, PrivateKey } from '@xyo-network/account'\nimport {\n AccountConfig,\n isMnemonicInitializationConfig,\n isPhraseInitializationConfig,\n isPrivateKeyInitializationConfig,\n} from '@xyo-network/account-model'\nimport type { PrivateKeyInstance } from '@xyo-network/key-model'\nimport { WalletInstance, WalletStatic } from '@xyo-network/wallet-model'\nimport {\n defaultPath, HDNodeWallet, Mnemonic,\n} from 'ethers'\n\n@staticImplements<WalletStatic>()\nexport class HDWallet extends Account implements WalletInstance {\n static override readonly uniqueName = globallyUnique('HDWallet', HDWallet, 'xyo')\n protected static override _addressMap: Record<Address, WeakRef<WalletInstance>> = {}\n\n protected readonly node: HDNodeWallet\n\n constructor(\n key: symbol,\n node: HDNodeWallet,\n privateKey: PrivateKeyInstance,\n ) {\n super(key, privateKey)\n this.node = node\n }\n\n override get address(): Address {\n return asAddress(hexFromHexString(this.node.address, { prefix: false }), true)\n }\n\n override get addressBytes(): ArrayBufferLike {\n return toUint8Array(this.address, undefined, 16).buffer\n }\n\n get chainCode(): string {\n return this.node.chainCode\n }\n\n get depth(): number {\n return this.node.depth\n }\n\n get extendedKey(): string {\n return this.node.extendedKey\n }\n\n get fingerprint(): string {\n return this.node.fingerprint\n }\n\n get index(): number {\n return this.node.index\n }\n\n get mnemonic(): Mnemonic | null {\n return this.node.mnemonic\n }\n\n get parentFingerprint(): string {\n return this.node.parentFingerprint\n }\n\n get path(): string | null {\n return this.node.path\n }\n\n get privateKey(): Hex {\n return this.node.privateKey.toLowerCase() as Hex\n }\n\n get publicKey(): Hex {\n return this.node.publicKey.toLowerCase() as Hex\n }\n\n static override async create(opts?: AccountConfig): Promise<WalletInstance> {\n if (isPhraseInitializationConfig(opts)) {\n return await this.fromPhrase(opts.phrase)\n }\n if (isMnemonicInitializationConfig(opts)) {\n return await this.fromPhrase(opts.mnemonic, opts.path)\n }\n if (isPrivateKeyInitializationConfig(opts)) {\n throw new Error('Invalid initialization config. from privateKey not supported. Use Account.fromPrivateKey instead.')\n }\n throw new Error('Invalid initialization config')\n }\n\n static async createFromNode(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n return await this.createFromNodeInternal(node, previousHash)\n }\n\n static async fromExtendedKey(key: string): Promise<WalletInstance> {\n const node = HDNodeWallet.fromExtendedKey(key)\n /* TODO: Handle HDNodeVoidWallet */\n return await HDWallet.createFromNode(node as HDNodeWallet)\n }\n\n static async fromMnemonic(mnemonic: Mnemonic, path: string = defaultPath): Promise<WalletInstance> {\n const node = HDNodeWallet.fromMnemonic(mnemonic, path)\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static async fromPhrase(phrase: string, path: string = defaultPath): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(phrase), path)\n }\n\n static async fromSeed(seed: string | ArrayBufferLike): Promise<WalletInstance> {\n const node = HDNodeWallet.fromSeed(toUint8Array(seed))\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static generateMnemonic(wordlist: string[] = englishWordlist, strength: number = 256): string {\n return generateMnemonic(wordlist, strength)\n }\n\n static override async random(): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(HDWallet.generateMnemonic()))\n }\n\n protected static async createFromNodeInternal(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n const privateKey = toUint8Array(node.privateKey.replace('0x', ''))\n assertEx(privateKey.length === 32, () => `Private key must be 32 bytes [${privateKey?.length}]`)\n const newWallet = await new HDWallet(Account._protectedConstructorKey, node, await PrivateKey.create(privateKey.buffer)).loadPreviousHash(previousHash)\n return HDWallet._addressMap[newWallet.address]?.deref() ?? newWallet\n }\n\n protected static getCachedWalletOrCacheNewWallet(createdWallet: WalletInstance): WalletInstance {\n const existingWallet = this._addressMap[createdWallet.address]?.deref()\n if (existingWallet) {\n return existingWallet\n }\n const ref = new WeakRef(createdWallet)\n this._addressMap[createdWallet.address] = ref\n return createdWallet\n }\n\n async derivePath(path: string): Promise<WalletInstance> {\n // if an absolute path, check if it matches the parent root and work with it\n if (path.startsWith('m/')) {\n const parentPath = this.path\n if (parentPath !== null && path.startsWith(parentPath)) {\n const childPath = path.slice(parentPath.length + 1)\n return await HDWallet.createFromNode(this.node.derivePath(childPath))\n }\n throw new Error(`Invalid absolute path ${path} for wallet with path ${parentPath}`)\n }\n return await HDWallet.createFromNode(this.node.derivePath(path))\n }\n\n neuter: () => HDWallet = () => {\n this.node.neuter()\n return this\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,wBAAwB;AACjC,SAAS,YAAY,uBAAuB;AAC5C;AAAA,EACW;AAAA,EAAW;AAAA,EACpB;AAAA,EACK;AAAA,EAAkB;AAAA,EACvB;AAAA,OACK;AACP,SAAS,SAAS,kBAAkB;AACpC;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EAAa;AAAA,EAAc;AAAA,OACtB;AAGA,IAAM,WAAN,cAAuB,QAAkC;AAAA,EAI3C;AAAA,EAEnB,YACE,KACA,MACA,YACA;AACA,UAAM,KAAK,UAAU;AACrB,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,IAAa,UAAmB;AAC9B,WAAO,UAAU,iBAAiB,KAAK,KAAK,SAAS,EAAE,QAAQ,MAAM,CAAC,GAAG,IAAI;AAAA,EAC/E;AAAA,EAEA,IAAa,eAAgC;AAC3C,WAAO,aAAa,KAAK,SAAS,QAAW,EAAE,EAAE;AAAA,EACnD;AAAA,EAEA,IAAI,YAAoB;AACtB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,cAAsB;AACxB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,cAAsB;AACxB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,WAA4B;AAC9B,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,oBAA4B;AAC9B,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,OAAsB;AACxB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,aAAkB;AACpB,WAAO,KAAK,KAAK,WAAW,YAAY;AAAA,EAC1C;AAAA,EAEA,IAAI,YAAiB;AACnB,WAAO,KAAK,KAAK,UAAU,YAAY;AAAA,EACzC;AAAA,EAEA,aAAsB,OAAO,MAA+C;AAC1E,QAAI,6BAA6B,IAAI,GAAG;AACtC,aAAO,MAAM,KAAK,WAAW,KAAK,MAAM;AAAA,IAC1C;AACA,QAAI,+BAA+B,IAAI,GAAG;AACxC,aAAO,MAAM,KAAK,WAAW,KAAK,UAAU,KAAK,IAAI;AAAA,IACvD;AACA,QAAI,iCAAiC,IAAI,GAAG;AAC1C,YAAM,IAAI,MAAM,oGAAoG;AAAA,IACtH;AACA,UAAM,IAAI,MAAM,+BAA+B;AAAA,EACjD;AAAA,EAEA,aAAa,eAAe,MAAoB,cAAgD;AAC9F,WAAO,MAAM,KAAK,uBAAuB,MAAM,YAAY;AAAA,EAC7D;AAAA,EAEA,aAAa,gBAAgB,KAAsC;AACjE,UAAM,OAAO,aAAa,gBAAgB,GAAG;AAE7C,WAAO,MAAM,SAAS,eAAe,IAAoB;AAAA,EAC3D;AAAA,EAEA,aAAa,aAAa,UAAoB,OAAe,aAAsC;AACjG,UAAM,OAAO,aAAa,aAAa,UAAU,IAAI;AACrD,UAAM,gBAAgB,MAAM,KAAK,uBAAuB,IAAI;AAC5D,WAAO,KAAK,gCAAgC,aAAa;AAAA,EAC3D;AAAA,EAEA,aAAa,WAAW,QAAgB,OAAe,aAAsC;AAC3F,WAAO,MAAM,KAAK,aAAa,SAAS,WAAW,MAAM,GAAG,IAAI;AAAA,EAClE;AAAA,EAEA,aAAa,SAAS,MAAyD;AAC7E,UAAM,OAAO,aAAa,SAAS,aAAa,IAAI,CAAC;AACrD,UAAM,gBAAgB,MAAM,KAAK,uBAAuB,IAAI;AAC5D,WAAO,KAAK,gCAAgC,aAAa;AAAA,EAC3D;AAAA,EAEA,OAAO,iBAAiB,WAAqB,iBAAiB,WAAmB,KAAa;AAC5F,WAAO,iBAAiB,UAAU,QAAQ;AAAA,EAC5C;AAAA,EAEA,aAAsB,SAAkC;AACtD,WAAO,MAAM,KAAK,aAAa,SAAS,WAAW,SAAS,iBAAiB,CAAC,CAAC;AAAA,EACjF;AAAA,EAEA,aAAuB,uBAAuB,MAAoB,cAAgD;AAChH,UAAM,aAAa,aAAa,KAAK,WAAW,QAAQ,MAAM,EAAE,CAAC;AACjE,aAAS,WAAW,WAAW,IAAI,MAAM,iCAAiC,YAAY,MAAM,GAAG;AAC/F,UAAM,YAAY,MAAM,IAAI,SAAS,QAAQ,0BAA0B,MAAM,MAAM,WAAW,OAAO,WAAW,MAAM,CAAC,EAAE,iBAAiB,YAAY;AACtJ,WAAO,SAAS,YAAY,UAAU,OAAO,GAAG,MAAM,KAAK;AAAA,EAC7D;AAAA,EAEA,OAAiB,gCAAgC,eAA+C;AAC9F,UAAM,iBAAiB,KAAK,YAAY,cAAc,OAAO,GAAG,MAAM;AACtE,QAAI,gBAAgB;AAClB,aAAO;AAAA,IACT;AACA,UAAM,MAAM,IAAI,QAAQ,aAAa;AACrC,SAAK,YAAY,cAAc,OAAO,IAAI;AAC1C,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,WAAW,MAAuC;AAEtD,QAAI,KAAK,WAAW,IAAI,GAAG;AACzB,YAAM,aAAa,KAAK;AACxB,UAAI,eAAe,QAAQ,KAAK,WAAW,UAAU,GAAG;AACtD,cAAM,YAAY,KAAK,MAAM,WAAW,SAAS,CAAC;AAClD,eAAO,MAAM,SAAS,eAAe,KAAK,KAAK,WAAW,SAAS,CAAC;AAAA,MACtE;AACA,YAAM,IAAI,MAAM,yBAAyB,IAAI,yBAAyB,UAAU,EAAE;AAAA,IACpF;AACA,WAAO,MAAM,SAAS,eAAe,KAAK,KAAK,WAAW,IAAI,CAAC;AAAA,EACjE;AAAA,EAEA,SAAyB,MAAM;AAC7B,SAAK,KAAK,OAAO;AACjB,WAAO;AAAA,EACT;AACF;AA/IE,cADW,UACc,cAAa,eAAe,YAAY,UAAU,KAAK;AAChF,cAFW,UAEe,eAAwD,CAAC;AAFxE,WAAN;AAAA,EADN,iBAA+B;AAAA,GACnB;","names":[]}
1
+ {"version":3,"sources":["../../src/HDWallet.ts"],"sourcesContent":["import { generateMnemonic } from '@scure/bip39'\nimport { wordlist as englishWordlist } from '@scure/bip39/wordlists/english.js'\nimport type {\n Address,\n Hex,\n} from '@xylabs/sdk-js'\nimport {\n asAddress, assertEx,\n globallyUnique, hexFromHexString, staticImplements,\n toUint8Array,\n} from '@xylabs/sdk-js'\nimport { Account, PrivateKey } from '@xyo-network/account'\nimport type { AccountConfig } from '@xyo-network/account-model'\nimport {\n isMnemonicInitializationConfig,\n isPhraseInitializationConfig,\n isPrivateKeyInitializationConfig,\n} from '@xyo-network/account-model'\nimport type { PrivateKeyInstance } from '@xyo-network/key-model'\nimport type { WalletInstance, WalletStatic } from '@xyo-network/wallet-model'\nimport {\n defaultPath, HDNodeWallet, Mnemonic,\n} from 'ethers'\n\n@staticImplements<WalletStatic>()\nexport class HDWallet extends Account implements WalletInstance {\n static override readonly uniqueName = globallyUnique('HDWallet', HDWallet, 'xyo')\n protected static override _addressMap: Record<Address, WeakRef<WalletInstance>> = {}\n\n protected readonly node: HDNodeWallet\n\n constructor(\n key: symbol,\n node: HDNodeWallet,\n privateKey: PrivateKeyInstance,\n ) {\n super(key, privateKey)\n this.node = node\n }\n\n override get address(): Address {\n return asAddress(hexFromHexString(this.node.address, { prefix: false }), true)\n }\n\n override get addressBytes(): ArrayBufferLike {\n return toUint8Array(this.address, undefined, 16).buffer\n }\n\n get chainCode(): string {\n return this.node.chainCode\n }\n\n get depth(): number {\n return this.node.depth\n }\n\n get extendedKey(): string {\n return this.node.extendedKey\n }\n\n get fingerprint(): string {\n return this.node.fingerprint\n }\n\n get index(): number {\n return this.node.index\n }\n\n get mnemonic(): Mnemonic | null {\n return this.node.mnemonic\n }\n\n get parentFingerprint(): string {\n return this.node.parentFingerprint\n }\n\n get path(): string | null {\n return this.node.path\n }\n\n get privateKey(): Hex {\n return this.node.privateKey.toLowerCase() as Hex\n }\n\n get publicKey(): Hex {\n return this.node.publicKey.toLowerCase() as Hex\n }\n\n static override async create(opts?: AccountConfig): Promise<WalletInstance> {\n if (isPhraseInitializationConfig(opts)) {\n return await this.fromPhrase(opts.phrase)\n }\n if (isMnemonicInitializationConfig(opts)) {\n return await this.fromPhrase(opts.mnemonic, opts.path)\n }\n if (isPrivateKeyInitializationConfig(opts)) {\n throw new Error('Invalid initialization config. from privateKey not supported. Use Account.fromPrivateKey instead.')\n }\n throw new Error('Invalid initialization config')\n }\n\n static async createFromNode(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n return await this.createFromNodeInternal(node, previousHash)\n }\n\n static async fromExtendedKey(key: string): Promise<WalletInstance> {\n const node = HDNodeWallet.fromExtendedKey(key)\n /* TODO: Handle HDNodeVoidWallet */\n return await HDWallet.createFromNode(node as HDNodeWallet)\n }\n\n static async fromMnemonic(mnemonic: Mnemonic, path: string = defaultPath): Promise<WalletInstance> {\n const node = HDNodeWallet.fromMnemonic(mnemonic, path)\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static async fromPhrase(phrase: string, path: string = defaultPath): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(phrase), path)\n }\n\n static async fromSeed(seed: string | ArrayBufferLike): Promise<WalletInstance> {\n const node = HDNodeWallet.fromSeed(toUint8Array(seed))\n const createdWallet = await this.createFromNodeInternal(node)\n return this.getCachedWalletOrCacheNewWallet(createdWallet)\n }\n\n static generateMnemonic(wordlist: string[] = englishWordlist, strength = 256): string {\n return generateMnemonic(wordlist, strength)\n }\n\n static override async random(): Promise<WalletInstance> {\n return await this.fromMnemonic(Mnemonic.fromPhrase(HDWallet.generateMnemonic()))\n }\n\n protected static async createFromNodeInternal(node: HDNodeWallet, previousHash?: string): Promise<WalletInstance> {\n const privateKey = toUint8Array(node.privateKey.replace('0x', ''))\n assertEx(privateKey.length === 32, () => `Private key must be 32 bytes [${privateKey?.length}]`)\n const newWallet = await new HDWallet(Account._protectedConstructorKey, node, await PrivateKey.create(privateKey.buffer)).loadPreviousHash(previousHash)\n return HDWallet._addressMap[newWallet.address]?.deref() ?? newWallet\n }\n\n protected static getCachedWalletOrCacheNewWallet(createdWallet: WalletInstance): WalletInstance {\n const existingWallet = this._addressMap[createdWallet.address]?.deref()\n if (existingWallet) {\n return existingWallet\n }\n const ref = new WeakRef(createdWallet)\n this._addressMap[createdWallet.address] = ref\n return createdWallet\n }\n\n async derivePath(path: string): Promise<WalletInstance> {\n // if an absolute path, check if it matches the parent root and work with it\n if (path.startsWith('m/')) {\n const parentPath = this.path\n if (parentPath !== null && path.startsWith(parentPath)) {\n const childPath = path.slice(parentPath.length + 1)\n return await HDWallet.createFromNode(this.node.derivePath(childPath))\n }\n throw new Error(`Invalid absolute path ${path} for wallet with path ${parentPath}`)\n }\n return await HDWallet.createFromNode(this.node.derivePath(path))\n }\n\n neuter: () => HDWallet = () => {\n this.node.neuter()\n return this\n }\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/wallet",
3
- "version": "5.3.29",
3
+ "version": "5.4.0",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -22,12 +22,10 @@
22
22
  "exports": {
23
23
  ".": {
24
24
  "types": "./dist/neutral/index.d.ts",
25
- "import": "./dist/neutral/index.mjs",
26
25
  "default": "./dist/neutral/index.mjs"
27
26
  },
28
27
  "./package.json": "./package.json"
29
28
  },
30
- "types": "dist/neutral/index.d.ts",
31
29
  "files": [
32
30
  "dist",
33
31
  "!**/*.bench.*",
@@ -37,39 +35,37 @@
37
35
  ],
38
36
  "dependencies": {
39
37
  "@scure/bip39": "~2.0.1",
40
- "@xyo-network/key-model": "~5.3.29"
38
+ "@xyo-network/key-model": "~5.4.0"
41
39
  },
42
40
  "devDependencies": {
43
41
  "@opentelemetry/api": "^1.9.1",
44
- "@types/node": "^25.5.2",
45
- "@xylabs/sdk-js": "^5.0.95",
46
- "@xylabs/ts-scripts-common": "~7.8.4",
47
- "@xylabs/ts-scripts-pnpm": "~7.8.4",
48
- "@xylabs/tsconfig": "~7.8.4",
49
- "@xylabs/vitest-matchers": "~5.0.95",
50
- "axios": "^1.14.0",
42
+ "@types/node": "^25.6.0",
43
+ "@xylabs/sdk-js": "^5.0.97",
44
+ "@xylabs/toolchain": "~7.10.8",
45
+ "@xylabs/tsconfig": "~7.10.8",
46
+ "@xylabs/vitest-matchers": "~5.0.97",
51
47
  "esbuild": "^0.28.0",
52
48
  "ethers": "^6.16.0",
53
49
  "pako": "~2.1.0",
54
50
  "tslib": "^2.8.1",
55
51
  "typescript": "~5.9.3",
56
- "vite": "^8.0.5",
57
- "vitest": "~4.1.2",
52
+ "vite": "^8.0.8",
53
+ "vitest": "~4.1.4",
58
54
  "zod": "^4.3.6",
59
- "@xyo-network/account-model": "~5.3.29",
60
- "@xyo-network/account": "~5.3.29",
61
- "@xyo-network/elliptic": "~5.3.29",
62
- "@xyo-network/data": "~5.3.29",
63
- "@xyo-network/wasm": "~5.3.29",
64
- "@xyo-network/wallet-model": "~5.3.29",
65
- "@xyo-network/previous-hash-store-model": "~5.3.29"
55
+ "@xyo-network/account": "~5.4.0",
56
+ "@xyo-network/account-model": "~5.4.0",
57
+ "@xyo-network/elliptic": "~5.4.0",
58
+ "@xyo-network/data": "~5.4.0",
59
+ "@xyo-network/previous-hash-store-model": "~5.4.0",
60
+ "@xyo-network/wasm": "~5.4.0",
61
+ "@xyo-network/wallet-model": "~5.4.0"
66
62
  },
67
63
  "peerDependencies": {
68
- "@xylabs/sdk-js": "^5",
69
- "ethers": "^6",
70
- "@xyo-network/account": "~5.3.29",
71
- "@xyo-network/wallet-model": "~5.3.29",
72
- "@xyo-network/account-model": "~5.3.29"
64
+ "@xylabs/sdk-js": "^5.0.97",
65
+ "@xyo-network/account": "~5.4",
66
+ "@xyo-network/account-model": "~5.4",
67
+ "@xyo-network/wallet-model": "~5.4",
68
+ "ethers": "^6"
73
69
  },
74
70
  "publishConfig": {
75
71
  "access": "public"