@xyo-network/react-wallet 7.6.3 → 8.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.
- package/dist/browser/components/SeedPhrase/dialog/SeedPhraseDialog.d.ts.map +1 -1
- package/dist/browser/components/SeedPhrase/dialog/components/OverwriteWarning.d.ts.map +1 -1
- package/dist/browser/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.d.ts.map +1 -1
- package/dist/browser/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.d.ts.map +1 -1
- package/dist/browser/components/WalletAccountSelect/SelectBar.d.ts.map +1 -1
- package/dist/browser/components/WalletAccountSelect/WalletInfo.d.ts.map +1 -1
- package/dist/browser/index.mjs +124 -63
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +38 -37
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeedPhraseDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/SeedPhrase/dialog/SeedPhraseDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,cAAc;AACd,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,SAAS,CAAA;IACpC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,cAAc;AACd,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAa5D,CAAA;AAED,cAAc;AACd,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"SeedPhraseDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/SeedPhrase/dialog/SeedPhraseDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,cAAc;AACd,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,SAAS,CAAA;IACpC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,cAAc;AACd,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAa5D,CAAA;AAED,cAAc;AACd,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA6CjE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverwriteWarning.d.ts","sourceRoot":"","sources":["../../../../../../src/components/SeedPhrase/dialog/components/OverwriteWarning.tsx"],"names":[],"mappings":"AAMA,cAAc;AACd,eAAO,MAAM,gBAAgB,+
|
|
1
|
+
{"version":3,"file":"OverwriteWarning.d.ts","sourceRoot":"","sources":["../../../../../../src/components/SeedPhrase/dialog/components/OverwriteWarning.tsx"],"names":[],"mappings":"AAMA,cAAc;AACd,eAAO,MAAM,gBAAgB,+CA8B5B,CAAA"}
|
package/dist/browser/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SavedPhraseTextField.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAO3D,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,cAAc;AACd,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,cAAc;AACd,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"SavedPhraseTextField.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAO3D,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,cAAc;AACd,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,cAAc;AACd,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAyFpE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhraseHeaderBox.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,KAAkB,MAAM,OAAO,CAAA;AAEtC,cAAc;AACd,MAAM,WAAW,oBAAqB,SAAQ,YAAY,EAAE,iBAAiB;IAC3E,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAC7B;AAED,cAAc;AACd,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"PhraseHeaderBox.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,KAAkB,MAAM,OAAO,CAAA;AAEtC,cAAc;AACd,MAAM,WAAW,oBAAqB,SAAQ,YAAY,EAAE,iBAAiB;IAC3E,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAC7B;AAED,cAAc;AACd,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAyD1D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectBar.d.ts","sourceRoot":"","sources":["../../../../src/components/WalletAccountSelect/SelectBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,cAAc;AACd,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAC1B;AAED,cAAc;AACd,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,
|
|
1
|
+
{"version":3,"file":"SelectBar.d.ts","sourceRoot":"","sources":["../../../../src/components/WalletAccountSelect/SelectBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,cAAc;AACd,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAC1B;AAED,cAAc;AACd,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CA4BxE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/WalletAccountSelect/WalletInfo.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAIzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,cAAc;AACd,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,cAAc;AACd,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAmBlD,CAAA;AAED,cAAc;AACd,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,cAAc;AACd,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA+B1D,CAAA;AAED,cAAc;AACd,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"WalletInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/WalletAccountSelect/WalletInfo.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAIzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,cAAc;AACd,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,cAAc;AACd,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAmBlD,CAAA;AAED,cAAc;AACd,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,cAAc;AACd,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA+B1D,CAAA;AAED,cAAc;AACd,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAWjD,CAAA;AAED,cAAc;AACd,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAWrD,CAAA;AAED,cAAc;AACd,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAW7C,CAAA;AAED,cAAc;AACd,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAW9C,CAAA"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -97,7 +97,7 @@ var MaxAccountsTableRow = ({
|
|
|
97
97
|
};
|
|
98
98
|
|
|
99
99
|
// src/components/SeedPhrase/_shared/SeedPhraseIconButton.tsx
|
|
100
|
-
import {
|
|
100
|
+
import { HelpOutlined as HelpOutlineIcon } from "@mui/icons-material";
|
|
101
101
|
import {
|
|
102
102
|
Button,
|
|
103
103
|
Dialog,
|
|
@@ -384,7 +384,7 @@ var InvalidPhraseTypography = (props) => /* @__PURE__ */ jsxs6(Typography3, { va
|
|
|
384
384
|
] });
|
|
385
385
|
|
|
386
386
|
// src/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.tsx
|
|
387
|
-
import {
|
|
387
|
+
import { CheckCircleOutlined as CheckCircleOutlineIcon, HighlightOff as HighlightOffIcon } from "@mui/icons-material";
|
|
388
388
|
import { FlexRow } from "@xylabs/react-flexbox";
|
|
389
389
|
import { useMemo as useMemo3 } from "react";
|
|
390
390
|
import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
@@ -409,20 +409,46 @@ var PhraseHeaderBox = ({
|
|
|
409
409
|
const Icon = useMemo3(() => {
|
|
410
410
|
switch (state) {
|
|
411
411
|
case "success": {
|
|
412
|
-
return /* @__PURE__ */ jsx9(
|
|
412
|
+
return /* @__PURE__ */ jsx9(
|
|
413
|
+
CheckCircleOutlineIcon,
|
|
414
|
+
{
|
|
415
|
+
sx: {
|
|
416
|
+
fontSize: "small",
|
|
417
|
+
color: "success"
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
);
|
|
413
421
|
}
|
|
414
422
|
case "error": {
|
|
415
|
-
return /* @__PURE__ */ jsx9(
|
|
423
|
+
return /* @__PURE__ */ jsx9(
|
|
424
|
+
HighlightOffIcon,
|
|
425
|
+
{
|
|
426
|
+
sx: {
|
|
427
|
+
fontSize: "small",
|
|
428
|
+
color: "error"
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
);
|
|
416
432
|
}
|
|
417
433
|
default: {
|
|
418
434
|
return null;
|
|
419
435
|
}
|
|
420
436
|
}
|
|
421
437
|
}, [state]);
|
|
422
|
-
return /* @__PURE__ */ jsxs7(
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
438
|
+
return /* @__PURE__ */ jsxs7(
|
|
439
|
+
FlexRow,
|
|
440
|
+
{
|
|
441
|
+
...props,
|
|
442
|
+
sx: [{
|
|
443
|
+
justifyContent: "start",
|
|
444
|
+
columnGap: 1
|
|
445
|
+
}, ...Array.isArray(props.sx) ? props.sx : [props.sx]],
|
|
446
|
+
children: [
|
|
447
|
+
Icon,
|
|
448
|
+
children
|
|
449
|
+
]
|
|
450
|
+
}
|
|
451
|
+
);
|
|
426
452
|
};
|
|
427
453
|
|
|
428
454
|
// src/components/SeedPhrase/dialog/components/fields/NewPhraseTextField.tsx
|
|
@@ -453,7 +479,6 @@ var NewPhraseTextField = ({
|
|
|
453
479
|
TextField,
|
|
454
480
|
{
|
|
455
481
|
focused: true,
|
|
456
|
-
color: disableColor ? void 0 : colorParser(validPhrase),
|
|
457
482
|
error: validPhrase === false,
|
|
458
483
|
helperText: validPhrase === false ? /* @__PURE__ */ jsx10(InvalidPhraseTypography, {}) : null,
|
|
459
484
|
fullWidth: true,
|
|
@@ -461,7 +486,8 @@ var NewPhraseTextField = ({
|
|
|
461
486
|
multiline: true,
|
|
462
487
|
onChange: (e) => setPhrase?.(e.target.value),
|
|
463
488
|
value: phrase,
|
|
464
|
-
...props
|
|
489
|
+
...props,
|
|
490
|
+
sx: [{ color: disableColor ? void 0 : colorParser(validPhrase) }, ...Array.isArray(props.sx) ? props.sx : [props.sx]]
|
|
465
491
|
}
|
|
466
492
|
)
|
|
467
493
|
]
|
|
@@ -540,7 +566,7 @@ var SavedPhraseTextField = ({
|
|
|
540
566
|
rowGap: 1
|
|
541
567
|
},
|
|
542
568
|
children: [
|
|
543
|
-
/* @__PURE__ */ jsxs10(FlexRow2, { gap: 0.5, children: [
|
|
569
|
+
/* @__PURE__ */ jsxs10(FlexRow2, { sx: { gap: 0.5 }, children: [
|
|
544
570
|
/* @__PURE__ */ jsx12(
|
|
545
571
|
Chip,
|
|
546
572
|
{
|
|
@@ -561,7 +587,7 @@ var SavedPhraseTextField = ({
|
|
|
561
587
|
transition: "all .25s ease-in-out",
|
|
562
588
|
width: visible ? "max-content" : 0
|
|
563
589
|
},
|
|
564
|
-
children: /* @__PURE__ */ jsx12(ContentCopy, { fontSize: "small" })
|
|
590
|
+
children: /* @__PURE__ */ jsx12(ContentCopy, { sx: { fontSize: "small" } })
|
|
565
591
|
}
|
|
566
592
|
) })
|
|
567
593
|
] }),
|
|
@@ -607,8 +633,26 @@ var OverwriteWarning = () => {
|
|
|
607
633
|
variant: "outlined",
|
|
608
634
|
severity: "warning",
|
|
609
635
|
action: /* @__PURE__ */ jsxs11(FlexRow3, { sx: { columnGap: 1 }, children: [
|
|
610
|
-
/* @__PURE__ */ jsx13(
|
|
611
|
-
|
|
636
|
+
/* @__PURE__ */ jsx13(
|
|
637
|
+
Button4,
|
|
638
|
+
{
|
|
639
|
+
variant: "outlined",
|
|
640
|
+
size: "small",
|
|
641
|
+
onClick: handleSave,
|
|
642
|
+
sx: { color: "inherit" },
|
|
643
|
+
children: "Overwrite"
|
|
644
|
+
}
|
|
645
|
+
),
|
|
646
|
+
/* @__PURE__ */ jsx13(
|
|
647
|
+
Button4,
|
|
648
|
+
{
|
|
649
|
+
variant: "outlined",
|
|
650
|
+
size: "small",
|
|
651
|
+
onClick: handleCancelOverwrite,
|
|
652
|
+
sx: { color: "inherit" },
|
|
653
|
+
children: "Cancel"
|
|
654
|
+
}
|
|
655
|
+
)
|
|
612
656
|
] }),
|
|
613
657
|
children: "Are you sure you want to overwrite existing seed phrase? This action cannot be undone."
|
|
614
658
|
}
|
|
@@ -652,40 +696,50 @@ var SeedPhraseDialogInner = ({
|
|
|
652
696
|
seedPhrase,
|
|
653
697
|
validPhrase
|
|
654
698
|
} = useSeedPhrase();
|
|
655
|
-
return /* @__PURE__ */ jsxs12(
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
699
|
+
return /* @__PURE__ */ jsxs12(
|
|
700
|
+
Dialog2,
|
|
701
|
+
{
|
|
702
|
+
"aria-labelledby": "alert-dialog-title",
|
|
703
|
+
"aria-describedby": "alert-dialog-description",
|
|
704
|
+
fullWidth: true,
|
|
705
|
+
...props,
|
|
706
|
+
sx: [{ maxWidth: "sm" }, ...Array.isArray(props.sx) ? props.sx : [props.sx]],
|
|
707
|
+
children: [
|
|
708
|
+
/* @__PURE__ */ jsxs12(
|
|
709
|
+
DialogTitle2,
|
|
710
|
+
{
|
|
711
|
+
id: "alert-dialog-title",
|
|
712
|
+
sx: {
|
|
713
|
+
alignItems: "center",
|
|
714
|
+
display: "inline-flex",
|
|
715
|
+
flexDirection: "row"
|
|
716
|
+
},
|
|
717
|
+
children: [
|
|
718
|
+
dialogTitle,
|
|
719
|
+
/* @__PURE__ */ jsx14(SeedPhraseIconButton, {})
|
|
720
|
+
]
|
|
721
|
+
}
|
|
722
|
+
),
|
|
723
|
+
/* @__PURE__ */ jsxs12(
|
|
724
|
+
DialogContent2,
|
|
725
|
+
{
|
|
726
|
+
sx: {
|
|
727
|
+
display: "flex",
|
|
728
|
+
flexDirection: "column",
|
|
729
|
+
rowGap: 2
|
|
730
|
+
},
|
|
731
|
+
children: [
|
|
732
|
+
/* @__PURE__ */ jsx14(NewPhraseTextField, { children: /* @__PURE__ */ jsx14(FormLabel2, { children: /* @__PURE__ */ jsx14(PhraseHeaderBox, { conditional: validPhrase, children: seedPhraseTextFieldTitle }) }) }),
|
|
733
|
+
/* @__PURE__ */ jsx14(PhraseDialogActions, {}),
|
|
734
|
+
seedPhrase ? /* @__PURE__ */ jsx14(SavedPhraseTextField, { showCopyButton }) : null,
|
|
735
|
+
overwriteWarning ? /* @__PURE__ */ jsx14(OverwriteWarning, {}) : null
|
|
736
|
+
]
|
|
737
|
+
}
|
|
738
|
+
),
|
|
739
|
+
/* @__PURE__ */ jsx14(DialogActionButtons, { onClose: props.onClose })
|
|
740
|
+
]
|
|
741
|
+
}
|
|
742
|
+
);
|
|
689
743
|
};
|
|
690
744
|
|
|
691
745
|
// src/components/SeedPhrase/settings/SeedPhraseTableRow.tsx
|
|
@@ -860,7 +914,7 @@ var WalletAccountDetails = ({
|
|
|
860
914
|
const exploreAddressUrl = `${exploreUrl}/recent?account=${accountToUse?.address}&network=${network?.name ?? "main"}`;
|
|
861
915
|
return /* @__PURE__ */ jsxs14(FlexCol, { ...props, children: [
|
|
862
916
|
/* @__PURE__ */ jsx16(EthAccountButton, { address: EthAddressWrapper.fromString(accountToUse?.address) }),
|
|
863
|
-
/* @__PURE__ */ jsxs14(FlexRow4, { gap: 1, children: [
|
|
917
|
+
/* @__PURE__ */ jsxs14(FlexRow4, { sx: { gap: 1 }, children: [
|
|
864
918
|
/* @__PURE__ */ jsx16(NumberStatus, { rounded: true, title: "Tokens", value: 0, to: `${exploreAddressUrl}&schema=network.xyo.account.tokens`, target: "_blank" }),
|
|
865
919
|
/* @__PURE__ */ jsx16(NumberStatus, { rounded: true, title: "NFTs", value: 0, to: `${exploreAddressUrl}&schema=network.xyo.account.nfts`, target: "_blank" }),
|
|
866
920
|
/* @__PURE__ */ jsx16(NumberStatus, { rounded: true, title: "Signatures", value: 0, to: `${exploreAddressUrl}&schema=network.xyo.account.signatures`, target: "_blank" }),
|
|
@@ -902,14 +956,14 @@ var RenderedAccountMenuItem = ({
|
|
|
902
956
|
AddressRenderRowBox,
|
|
903
957
|
{
|
|
904
958
|
disableSharedRef: true,
|
|
905
|
-
flexGrow: 1,
|
|
906
959
|
address: selectedAccount?.address,
|
|
907
960
|
iconOnly,
|
|
908
961
|
iconSize,
|
|
909
962
|
icons,
|
|
910
963
|
name: customName,
|
|
911
964
|
favorite,
|
|
912
|
-
showFavorite
|
|
965
|
+
showFavorite,
|
|
966
|
+
sx: { flexGrow: 1 }
|
|
913
967
|
}
|
|
914
968
|
)
|
|
915
969
|
}
|
|
@@ -992,20 +1046,27 @@ var WalletAccountSelectBar = ({
|
|
|
992
1046
|
size = "small",
|
|
993
1047
|
...props
|
|
994
1048
|
}) => {
|
|
995
|
-
return /* @__PURE__ */ jsx19(
|
|
996
|
-
|
|
1049
|
+
return /* @__PURE__ */ jsx19(
|
|
1050
|
+
FlexCol2,
|
|
997
1051
|
{
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1052
|
+
...props,
|
|
1053
|
+
sx: [{ alignItems: "stretch" }, ...Array.isArray(props.sx) ? props.sx : [props.sx]],
|
|
1054
|
+
children: /* @__PURE__ */ jsx19(
|
|
1055
|
+
WalletAccountSelect,
|
|
1056
|
+
{
|
|
1057
|
+
addressNames,
|
|
1058
|
+
fullWidth: true,
|
|
1059
|
+
showFavorite,
|
|
1060
|
+
iconSize,
|
|
1061
|
+
iconOnly,
|
|
1062
|
+
icons,
|
|
1063
|
+
maxAccounts,
|
|
1064
|
+
size: size ?? "small",
|
|
1065
|
+
variant: "outlined"
|
|
1066
|
+
}
|
|
1067
|
+
)
|
|
1007
1068
|
}
|
|
1008
|
-
)
|
|
1069
|
+
);
|
|
1009
1070
|
};
|
|
1010
1071
|
export {
|
|
1011
1072
|
DefaultSeedPhrase,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/MaxAccounts/MaxAccountsTableRow.tsx","../../src/components/MaxAccounts/OutOfBoundsSnackBar.tsx","../../src/components/SeedPhrase/_shared/SeedPhraseIconButton.tsx","../../src/components/SeedPhrase/DefaultSeedPhrase.tsx","../../src/components/SeedPhrase/dialog/components/DialogActionButtons.tsx","../../src/contexts/SeedPhrase/Context.ts","../../src/contexts/SeedPhrase/Provider.tsx","../../src/contexts/SeedPhrase/use.ts","../../src/contexts/Wallet/Context.ts","../../src/contexts/Wallet/Provider.tsx","../../src/contexts/Wallet/use.ts","../../src/components/SeedPhrase/dialog/components/fields/NewPhraseTextField.tsx","../../src/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.ts","../../src/components/SeedPhrase/dialog/components/fields/validation-messages/InvalidPhrase.tsx","../../src/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.tsx","../../src/components/SeedPhrase/dialog/components/fields/PhraseDialogActions.tsx","../../src/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.tsx","../../src/components/SeedPhrase/dialog/components/OverwriteWarning.tsx","../../src/components/SeedPhrase/dialog/SeedPhraseDialog.tsx","../../src/components/SeedPhrase/settings/SeedPhraseTableRow.tsx","../../src/components/WalletAccountDetails/WalletAccountDetails.tsx","../../src/hooks/useAccount.ts","../../src/hooks/useWallet.ts","../../src/hooks/useWallets.ts","../../src/hooks/useWrapperAccount.ts","../../src/components/WalletAccountSelect/Select.tsx","../../src/components/WalletAccountSelect/RenderedMenuItem.tsx","../../src/components/WalletAccountSelect/SelectBar.tsx"],"sourcesContent":["import type { TableRowProps } from '@mui/material'\nimport {\n ButtonGroup, TableCell, TableRow, Typography,\n} from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport React, { useState } from 'react'\n\nimport { OutOfBoundsSnackBar } from './OutOfBoundsSnackBar.tsx'\n\n/** @public */\nexport interface MaxAccountsTableRow extends TableRowProps {\n activeAccountIndex?: number\n changeMaxAccounts?: (maxAccounts: number) => void\n maxAccounts?: number\n}\n\n/** @public */\nexport const MaxAccountsTableRow: React.FC<MaxAccountsTableRow> = ({\n activeAccountIndex, changeMaxAccounts, maxAccounts,\n}) => {\n const [desiredMaximumAccounts, setDesiredMaximumAccounts] = useState<number | undefined>()\n const [showSnackBar, setShowSnackBar] = useState(false)\n\n const handleChangeMaxAccounts = (change: 'increase' | 'decrease') => {\n if (maxAccounts !== undefined && activeAccountIndex !== undefined) {\n switch (change) {\n case 'decrease': {\n const desiredMaximumAccounts = maxAccounts - 1\n const validMaximumAccounts = desiredMaximumAccounts > 0\n const maxAccountsWithinRange = activeAccountIndex + 1 <= desiredMaximumAccounts\n if (validMaximumAccounts && maxAccountsWithinRange) {\n changeMaxAccounts?.(desiredMaximumAccounts)\n }\n if (!maxAccountsWithinRange) setShowSnackBar(true)\n setDesiredMaximumAccounts(desiredMaximumAccounts)\n return\n }\n case 'increase': {\n changeMaxAccounts?.(maxAccounts + 1)\n return\n }\n default: {\n console.error(change, 'is not a recognized value')\n }\n }\n } else {\n throw new Error('Max Accounts is unset and needs a default')\n }\n }\n\n return (\n <TableRow>\n <TableCell>Maximum Accounts</TableCell>\n <TableCell align=\"center\">\n <Typography variant=\"caption\">{maxAccounts}</Typography>\n </TableCell>\n <TableCell align=\"center\">\n <ButtonGroup>\n <ButtonEx onClick={() => handleChangeMaxAccounts('decrease')} variant=\"contained\" size=\"small\">\n -\n </ButtonEx>\n <ButtonEx onClick={() => handleChangeMaxAccounts('increase')} variant=\"contained\" size=\"small\">\n +\n </ButtonEx>\n </ButtonGroup>\n <OutOfBoundsSnackBar\n desiredMaximumAccounts={desiredMaximumAccounts}\n activeAccountIndex={activeAccountIndex}\n setShowSnackBar={setShowSnackBar}\n showSnackBar={showSnackBar}\n />\n </TableCell>\n </TableRow>\n )\n}\n","import type { SnackbarProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Snackbar,\n} from '@mui/material'\nimport type { Dispatch, SetStateAction } from 'react'\nimport React from 'react'\n\n/** @public */\nexport interface OutOfBoundsSnackBarProps extends SnackbarProps {\n activeAccountIndex?: number\n desiredMaximumAccounts?: number\n setShowSnackBar?: Dispatch<SetStateAction<boolean>>\n showSnackBar?: boolean\n}\n\n/** @public */\nexport const OutOfBoundsSnackBar: React.FC<OutOfBoundsSnackBarProps> = ({\n activeAccountIndex,\n desiredMaximumAccounts,\n setShowSnackBar,\n showSnackBar,\n}) => {\n return (\n <Snackbar\n anchorOrigin={{ horizontal: 'center', vertical: 'top' }}\n autoHideDuration={5000}\n onClose={() => setShowSnackBar?.(false)}\n open={showSnackBar}\n >\n <Alert severity=\"error\" onClose={() => setShowSnackBar?.(false)}>\n <AlertTitle>Maximum Accounts Error</AlertTitle>\n Your currently selected account number (\n {activeAccountIndex === undefined ? '' : activeAccountIndex + 1}\n ) cannot be greater than the desired\n Maximum Accounts (\n {desiredMaximumAccounts}\n ).\n </Alert>\n </Snackbar>\n )\n}\n","import { HelpOutline as HelpOutlineIcon } from '@mui/icons-material'\nimport type { IconButtonProps } from '@mui/material'\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n Link,\n List,\n ListItem,\n Typography,\n} from '@mui/material'\nimport React, { useState } from 'react'\n\n/** @internal */\nexport const SeedPhraseIconButton: React.FC<IconButtonProps> = (props) => {\n const [open, setOpen] = useState(false)\n const onClose = () => setOpen(false)\n return (\n <>\n <IconButton onClick={() => setOpen(true)} {...props}>\n <HelpOutlineIcon fontSize=\"small\" />\n </IconButton>\n <Dialog open={open}>\n <DialogTitle>Understanding your Seed Phrase</DialogTitle>\n <DialogContent>\n <Typography>\n Your Seed Phrase should adhere to the\n {' '}\n <Link target=\"_blank\" href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">\n bip39 specification\n </Link>\n {' '}\n and is used to generate accounts which identify your data on the XYO Network.\n </Typography>\n <List>\n <ListItem>Do not share this phrase with anyone.</ListItem>\n <ListItem>Do not save it to a public computer.</ListItem>\n <ListItem>Do not use a existing phrase from another wallet (i.e. Metamask).</ListItem>\n <ListItem>Do not use before copying it down somewhere safe.</ListItem>\n </List>\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose} variant=\"outlined\">\n OK\n </Button>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import {\n Alert, AlertTitle, Snackbar,\n} from '@mui/material'\nimport { generateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english.js'\nimport { isUndefinedOrNull } from '@xylabs/sdk-js'\nimport type { PropsWithChildren } from 'react'\nimport React, { useState } from 'react'\n\n/** @public */\nexport interface DefaultSeedPhraseProps extends PropsWithChildren {\n changeSeedPhrase?: (seedPhrase: string) => void\n hideDefaultSeedPhraseMessage?: boolean\n seedPhrase?: string\n}\n\n/** @public */\nexport const DefaultSeedPhrase: React.FC<DefaultSeedPhraseProps> = ({\n changeSeedPhrase, children, hideDefaultSeedPhraseMessage, seedPhrase,\n}) => {\n const [showSnackBar, setShowSnackBar] = useState(false)\n const [previousSeedPhrase, setPreviousSeedPhrase] = useState<string | undefined>()\n if (seedPhrase !== previousSeedPhrase) {\n setPreviousSeedPhrase(seedPhrase)\n if (isUndefinedOrNull(previousSeedPhrase) && !isUndefinedOrNull(seedPhrase)) {\n const mnemonic = generateMnemonic(wordlist, 256)\n changeSeedPhrase?.(mnemonic)\n setShowSnackBar(true)\n }\n }\n\n return (\n <>\n {hideDefaultSeedPhraseMessage\n ? null\n : (\n <Snackbar\n open={showSnackBar}\n autoHideDuration={5000}\n onClose={() => setShowSnackBar(false)}\n anchorOrigin={{ horizontal: 'center', vertical: 'top' }}\n >\n <Alert severity=\"success\">\n <AlertTitle>Default Seed Phrase Generated</AlertTitle>\n Go to application settings to save it.\n </Alert>\n </Snackbar>\n )}\n {children}\n </>\n )\n}\n","import type { DialogActionsProps, DialogProps } from '@mui/material'\nimport { Button, DialogActions } from '@mui/material'\nimport type { MouseEvent } from 'react'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../contexts/index.ts'\n\n/** @public */\nexport interface DialogActionButtonsProps extends DialogActionsProps {\n onClose?: DialogProps['onClose']\n}\n\n/** @public */\nexport const DialogActionButtons: React.FC<DialogActionButtonsProps> = ({ onClose, ...props }) => {\n const { handleSave, setPhrase } = useSeedPhrase()\n\n const wrappedOnClose = (e: MouseEvent<HTMLElement>) => {\n // clear local copy of phrase when modal closes\n setPhrase?.('')\n onClose?.(e, 'escapeKeyDown')\n }\n\n return (\n <DialogActions {...props}>\n <Button variant=\"outlined\" onClick={wrappedOnClose}>\n Cancel\n </Button>\n <Button type=\"submit\" variant=\"contained\" onClick={handleSave}>\n Save\n </Button>\n </DialogActions>\n )\n}\n","import { createContextEx } from '@xylabs/react-shared'\n\nimport type { SeedPhraseContextState } from './State.ts'\n\n/** @public */\nexport const SeedPhraseContext = createContextEx<SeedPhraseContextState>()\n","import { generateMnemonic, validateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english.js'\nimport { useResetState } from '@xylabs/react-hooks'\nimport type { PropsWithChildren } from 'react'\nimport React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react'\n\nimport { SeedPhraseContext } from './Context.ts'\nimport type { SeedPhraseContextState } from './State.ts'\n\n/** @public */\nexport interface SeedPhraseProviderProps extends PropsWithChildren {\n defaultPhrase?: string\n handleChangeSeedPhrase?: (phrase: string) => void\n open?: boolean\n saveCallback?: () => void\n seedPhrase?: string\n}\n\nconst validate = (passedPhrase?: string) => {\n if (!passedPhrase) {\n return null\n }\n return validateMnemonic(passedPhrase, wordlist)\n}\n\n/** @public */\nexport const SeedPhraseProvider: React.FC<SeedPhraseProviderProps> = ({\n children,\n defaultPhrase,\n handleChangeSeedPhrase,\n saveCallback,\n seedPhrase,\n open,\n}) => {\n const [phrase, setPhrase] = useResetState<string | undefined>(defaultPhrase)\n const [overwriteWarning, setOverwriteWarning] = useState(false)\n\n useEffect(() => {\n if (seedPhrase || open) {\n setPhrase?.(seedPhrase ?? '')\n }\n }, [seedPhrase, open, setPhrase])\n\n const handleGenerate = useCallback(() => {\n const mnemonic = generateMnemonic(wordlist, 256)\n setPhrase?.(mnemonic)\n setOverwriteWarning?.(false)\n }, [setPhrase])\n\n const handleCancelOverwrite = useCallback(() => {\n // eslint-disable-next-line react-x/set-state-in-effect\n setOverwriteWarning(false)\n }, [setOverwriteWarning])\n\n const handleClear = useCallback(() => {\n setPhrase('')\n setOverwriteWarning(false)\n }, [setPhrase, setOverwriteWarning])\n\n const handleSave = useCallback(() => {\n if (!overwriteWarning && seedPhrase && seedPhrase !== phrase) {\n setOverwriteWarning?.(true)\n } else {\n handleChangeSeedPhrase?.(phrase ?? '')\n saveCallback?.()\n }\n }, [handleChangeSeedPhrase, overwriteWarning, phrase, saveCallback, seedPhrase])\n\n useEffect(() => {\n if (!open) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n handleCancelOverwrite()\n }\n }, [handleCancelOverwrite, open])\n\n const validSeedPhrase = useMemo(() => validate?.(seedPhrase), [seedPhrase])\n const validPhrase = useMemo(() => validate?.(phrase), [phrase])\n\n const value: SeedPhraseContextState = useMemo(() => ({\n handleCancelOverwrite,\n handleChangeSeedPhrase,\n handleClear,\n handleGenerate,\n handleSave,\n overwriteWarning,\n phrase,\n provided: true as const,\n seedPhrase,\n setOverwriteWarning,\n setPhrase,\n validPhrase,\n validSeedPhrase,\n validate,\n }), [handleCancelOverwrite, handleChangeSeedPhrase, handleClear, handleGenerate, handleSave, overwriteWarning, phrase, seedPhrase, setOverwriteWarning, setPhrase, validPhrase, validSeedPhrase])\n\n return (\n <SeedPhraseContext\n value={value}\n >\n {children}\n </SeedPhraseContext>\n )\n}\n","import { useContextEx } from '@xylabs/react-shared'\n\nimport { SeedPhraseContext } from './Context.ts'\n\n/** @public */\nexport const useSeedPhrase = () => useContextEx(SeedPhraseContext, 'SeedPhrase', true)\n","import { createContextEx } from '@xylabs/react-shared'\n\nimport type { WalletContextState } from './State.ts'\n\n/** @public */\nexport const WalletContext = createContextEx<WalletContextState>()\n","import { useResetState } from '@xylabs/react-hooks'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport { WalletContext } from './Context.ts'\nimport type { WalletContextState } from './State.ts'\n\n/** @public */\nexport interface WalletProviderProps {\n defaultActiveAccountIndex?: number\n rootWallet?: WalletInstance | null\n}\n\n/** @public */\nexport const WalletProvider: React.FC<PropsWithChildren<WalletProviderProps>> = ({\n children,\n defaultActiveAccountIndex = 0,\n rootWallet = null,\n ...props\n}) => {\n const [activeAccountIndex, setActiveAccountIndex] = useResetState(defaultActiveAccountIndex)\n\n const [activeAccount = null] = usePromise(async () => await rootWallet?.derivePath(activeAccountIndex.toString()), [activeAccountIndex, rootWallet])\n\n const value: WalletContextState = useMemo(() => ({\n activeAccount,\n activeAccountIndex,\n provided: true,\n rootWallet,\n setActiveAccountIndex,\n }), [activeAccount,\n activeAccountIndex,\n rootWallet,\n setActiveAccountIndex])\n\n return (\n <WalletContext\n value={value}\n {...props}\n >\n {children}\n </WalletContext>\n )\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { useContextEx, useProvided } from '@xylabs/react-shared'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { WalletContext } from './Context.ts'\n\n/** @public */\nexport const useWalletContext = (required = true) => {\n return useContextEx(WalletContext, 'Wallet', required)\n}\n\n/** @public */\nexport const useWalletProvided = () => {\n return useProvided(WalletContext)\n}\n\n/** @public */\nexport const useRootWallet = (required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const { rootWallet } = useWalletContext(required)\n return [rootWallet, undefined]\n}\n\n/** @public */\nexport const useIndexedWalletFromContext = (index: number, required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const { rootWallet } = useWalletContext(required)\n const [wallet] = usePromise(async () => (await rootWallet?.derivePath(index.toString())) ?? rootWallet, [rootWallet, index])\n return [wallet, undefined]\n}\n\n/** @public */\nexport const useSelectedWalletAccount = (required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const { activeAccountIndex } = useWalletContext(required)\n // we pass in 0 as default since we can not call the hook optionally,\n // we resolve this false result by checking whether activeAccountIndex is defined before returning it\n const [account] = useIndexedWalletFromContext(activeAccountIndex ?? 0, required)\n return activeAccountIndex === undefined && account === null ? [null, undefined] : [account, undefined]\n}\n","import type { StandardTextFieldProps } from '@mui/material'\nimport { FormControl, TextField } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts/index.ts'\nimport { colorParser, InvalidPhraseTypography } from './validation-messages/index.ts'\n\n/** @public */\nexport interface NewPhraseTextFieldProps extends StandardTextFieldProps {\n children?: ReactNode\n disableColor?: boolean\n}\n\n/** @public */\nexport const NewPhraseTextField: React.FC<NewPhraseTextFieldProps> = ({\n children, disableColor, ...props\n}) => {\n const {\n phrase, setPhrase, validPhrase,\n } = useSeedPhrase()\n return (\n <FormControl\n fullWidth\n size=\"small\"\n sx={{\n display: 'flex', flexDirection: 'column', rowGap: 1,\n }}\n >\n {children}\n <TextField\n focused\n color={disableColor ? undefined : colorParser(validPhrase)}\n error={validPhrase === false}\n helperText={validPhrase === false ? <InvalidPhraseTypography /> : null}\n fullWidth\n maxRows={Number.POSITIVE_INFINITY}\n multiline\n onChange={e => setPhrase?.(e.target.value)}\n value={phrase}\n {...props}\n />\n </FormControl>\n )\n}\n","/** @public */\nexport const colorParser = (conditional?: boolean | null) => {\n switch (conditional) {\n case true: {\n return 'success'\n }\n case false: {\n return 'error'\n }\n default: {\n return\n }\n }\n}\n","import type { TypographyProps } from '@mui/material'\nimport { Link, Typography } from '@mui/material'\nimport React from 'react'\n\n/** @public */\nexport const InvalidPhraseTypography: React.FC<TypographyProps> = props => (\n <Typography variant=\"caption\" color=\"error\" {...props}>\n Invalid seed phrase. See -\n {' '}\n <Link target=\"_blank\" href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">\n bip39 Proposal\n </Link>\n </Typography>\n)\n","import { CheckCircleOutline as CheckCircleOutlineIcon, HighlightOff as HighlightOffIcon } from '@mui/icons-material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\n/** @public */\nexport interface PhraseHeaderBoxProps extends FlexBoxProps, PropsWithChildren {\n conditional?: boolean | null\n}\n\n/** @public */\nexport const PhraseHeaderBox: React.FC<PhraseHeaderBoxProps> = ({\n children, conditional, ...props\n}) => {\n const state = useMemo(() => {\n switch (conditional) {\n case true: {\n return 'success'\n }\n case false: {\n return 'error'\n }\n default: {\n return null\n }\n }\n }, [conditional])\n\n const Icon = useMemo(() => {\n switch (state) {\n case 'success': {\n return <CheckCircleOutlineIcon fontSize=\"small\" color=\"success\" />\n }\n case 'error': {\n return <HighlightOffIcon fontSize=\"small\" color=\"error\" />\n }\n default: {\n return null\n }\n }\n }, [state])\n\n return (\n <FlexRow justifyContent=\"start\" columnGap={1} {...props}>\n {Icon}\n {children}\n </FlexRow>\n )\n}\n","import type { DialogActionsProps } from '@mui/material'\nimport { Button, DialogActions } from '@mui/material'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts/index.ts'\n\nexport interface PhraseDialogActionsProps extends DialogActionsProps {\n hideClear?: boolean\n hideGenerate?: boolean\n}\n\n/** @public */\nexport const PhraseDialogActions: React.FC<PhraseDialogActionsProps> = ({\n hideClear, hideGenerate, ...props\n}) => {\n const {\n handleClear, handleGenerate, overwriteWarning,\n } = useSeedPhrase()\n return (\n <DialogActions sx={{ justifyContent: 'center' }} {...props}>\n {hideGenerate\n ? null\n : (\n <Button disabled={overwriteWarning} variant=\"contained\" onClick={handleGenerate}>\n Generate\n </Button>\n )}\n {hideClear\n ? null\n : (\n <Button variant=\"outlined\" onClick={handleClear}>\n Clear\n </Button>\n\n )}\n </DialogActions>\n )\n}\n","import { ContentCopy } from '@mui/icons-material'\nimport type { StandardTextFieldProps } from '@mui/material'\nimport {\n Chip, FormControl, FormLabel, IconButton, TextField,\n Tooltip,\n useTheme,\n} from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React, { useState } from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts/index.ts'\nimport { InvalidPhraseTypography, PhraseHeaderBox } from './validation-messages/index.ts'\n\n/** @public */\nexport interface SavedPhraseTextFieldProps extends StandardTextFieldProps {\n fullWidth?: boolean\n showCopyButton?: boolean\n showPhraseHeader?: boolean\n visible?: boolean\n}\n\n/** @public */\nexport const SavedPhraseTextField: React.FC<SavedPhraseTextFieldProps> = ({\n\n fullWidth, showCopyButton, showPhraseHeader, visible: visibleProp, ...props\n}) => {\n const { validSeedPhrase, seedPhrase } = useSeedPhrase()\n const theme = useTheme()\n\n const [visible, setVisible] = useState(visibleProp)\n\n const [previousVisibleProp, setPreviousVisibleProp] = useState(visibleProp)\n if (visibleProp !== previousVisibleProp) {\n setPreviousVisibleProp(visibleProp)\n setVisible(visibleProp)\n }\n\n const [copied, setCopied] = useState(false)\n const onCopyPhrase = async () => {\n if (seedPhrase) {\n try {\n await navigator.clipboard.writeText(seedPhrase)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n } catch (e) {\n console.error('Error copying resolvedSelectedAddress to clipboard', e)\n }\n }\n }\n\n return (\n <FormControl\n fullWidth={fullWidth}\n size=\"small\"\n sx={{\n display: 'flex', flexDirection: 'column', rowGap: 1,\n }}\n >\n <FlexRow gap={0.5}>\n <Chip\n label=\"Show Seed Phrase\"\n onClick={() => setVisible(!visible)}\n // Margin is set to 2px to match the Copy Button size and remove jumping during animation\n sx={{ alignSelf: 'center', my: '2px' }}\n />\n <Tooltip title={copied ? 'Copied!' : 'Copy'}>\n <IconButton\n onClick={() => void onCopyPhrase()}\n sx={{\n height: visible ? 'auto' : 0,\n opacity: visible ? 1 : 0,\n overflow: 'hidden',\n padding: visible ? theme.spacing(1) : 0,\n transition: 'all .25s ease-in-out',\n width: visible ? 'max-content' : 0,\n }}\n >\n <ContentCopy fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n </FlexRow>\n {visible && showPhraseHeader\n ? (\n <FormLabel>\n <PhraseHeaderBox conditional={validSeedPhrase}>Saved Seed Phrase</PhraseHeaderBox>\n </FormLabel>\n )\n : null}\n <TextField\n defaultValue={seedPhrase}\n disabled\n error={validSeedPhrase === false}\n helperText={validSeedPhrase === false ? <InvalidPhraseTypography /> : null}\n fullWidth\n maxRows={Number.POSITIVE_INFINITY}\n multiline\n slotProps={{\n input: {\n style: {\n height: visible ? 'auto' : '0',\n overflow: 'hidden',\n opacity: visible ? 1 : 0,\n padding: visible ? theme.spacing(1) : 0,\n transition: 'all .25s ease-in-out',\n },\n },\n }}\n {...props}\n />\n\n </FormControl>\n )\n}\n","import { Alert, Button } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../contexts/index.ts'\n\n/** @public */\nexport const OverwriteWarning = () => {\n const { handleCancelOverwrite, handleSave } = useSeedPhrase()\n return (\n <Alert\n variant=\"outlined\"\n severity=\"warning\"\n action={(\n <FlexRow sx={{ columnGap: 1 }}>\n <Button variant=\"outlined\" color=\"inherit\" size=\"small\" onClick={handleSave}>\n Overwrite\n </Button>\n <Button variant=\"outlined\" color=\"inherit\" size=\"small\" onClick={handleCancelOverwrite}>\n Cancel\n </Button>\n </FlexRow>\n )}\n >\n Are you sure you want to overwrite existing seed phrase? This action cannot be undone.\n </Alert>\n )\n}\n","import type { DialogProps } from '@mui/material'\nimport {\n Dialog, DialogContent, DialogTitle, FormLabel,\n} from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport { SeedPhraseProvider, useSeedPhrase } from '../../../contexts/index.ts'\nimport { SeedPhraseIconButton } from '../_shared/index.ts'\nimport {\n DialogActionButtons,\n NewPhraseTextField,\n OverwriteWarning,\n PhraseDialogActions,\n PhraseHeaderBox,\n SavedPhraseTextField,\n} from './components/index.ts'\n\n/** @public */\nexport interface SeedPhraseDialogProps extends DialogProps {\n changeSeedPhrase?: (value: string) => void\n dialogTitle?: ReactNode\n seedPhrase?: string\n seedPhraseTextFieldTitle?: ReactNode\n showCopyButton?: boolean\n}\n\n/** @public */\nexport const SeedPhraseDialog: React.FC<SeedPhraseDialogProps> = ({\n changeSeedPhrase, dialogTitle = 'Update Your Seed Phrase', seedPhrase, seedPhraseTextFieldTitle = 'New Seed Phrase', ...props\n}) => {\n return (\n <SeedPhraseProvider\n seedPhrase={seedPhrase}\n handleChangeSeedPhrase={changeSeedPhrase}\n open={props.open}\n saveCallback={() => props.onClose?.({}, 'escapeKeyDown')}\n >\n <SeedPhraseDialogInner dialogTitle={dialogTitle} seedPhraseTextFieldTitle={seedPhraseTextFieldTitle} {...props} />\n </SeedPhraseProvider>\n )\n}\n\n/** @public */\nexport const SeedPhraseDialogInner: React.FC<SeedPhraseDialogProps> = ({\n dialogTitle, seedPhraseTextFieldTitle, showCopyButton, ...props\n}) => {\n const {\n overwriteWarning, seedPhrase, validPhrase,\n } = useSeedPhrase()\n\n return (\n <Dialog aria-labelledby=\"alert-dialog-title\" aria-describedby=\"alert-dialog-description\" fullWidth maxWidth=\"sm\" {...props}>\n <DialogTitle\n id=\"alert-dialog-title\"\n sx={{\n alignItems: 'center', display: 'inline-flex', flexDirection: 'row',\n }}\n >\n {dialogTitle}\n <SeedPhraseIconButton />\n </DialogTitle>\n <DialogContent sx={{\n display: 'flex', flexDirection: 'column', rowGap: 2,\n }}\n >\n\n <NewPhraseTextField>\n <FormLabel>\n <PhraseHeaderBox conditional={validPhrase}>{seedPhraseTextFieldTitle}</PhraseHeaderBox>\n </FormLabel>\n </NewPhraseTextField>\n <PhraseDialogActions />\n {seedPhrase\n ? <SavedPhraseTextField showCopyButton={showCopyButton} />\n : null}\n {overwriteWarning\n ? <OverwriteWarning />\n : null}\n </DialogContent>\n <DialogActionButtons onClose={props.onClose} />\n </Dialog>\n )\n}\n","import { Cancel as CancelIcon, RadioButtonChecked as RadioButtonCheckedIcon } from '@mui/icons-material'\nimport type { TableRowProps } from '@mui/material'\nimport {\n Button, ButtonGroup, TableCell, TableRow,\n} from '@mui/material'\nimport React, { useState } from 'react'\n\nimport { SeedPhraseIconButton } from '../_shared/index.ts'\nimport { SeedPhraseDialog } from '../dialog/index.ts'\n\n/** @public */\nexport interface SeedPhraseTableRowProps extends TableRowProps {\n changeSeedPhrase?: (seedPhrase: string) => void\n seedPhrase?: string\n}\n\n/** @public */\nexport const SeedPhraseTableRow: React.FC<SeedPhraseTableRowProps> = ({\n changeSeedPhrase, seedPhrase, ...props\n}) => {\n const [open, setOpen] = useState(false)\n\n const handleOpen = () => {\n setOpen(true)\n }\n return (\n <TableRow {...props}>\n <TableCell>\n Seed Phrase\n {' '}\n <SeedPhraseIconButton />\n </TableCell>\n <TableCell align=\"center\">\n {seedPhrase\n ? <RadioButtonCheckedIcon color=\"success\" />\n : <CancelIcon color=\"error\" />}\n </TableCell>\n <TableCell>\n <SeedPhraseDialog changeSeedPhrase={changeSeedPhrase} open={open} onClose={() => setOpen(false)} seedPhrase={seedPhrase} />\n <ButtonGroup fullWidth>\n <Button variant=\"contained\" size=\"small\" onClick={handleOpen}>\n Update\n </Button>\n </ButtonGroup>\n </TableCell>\n </TableRow>\n )\n}\n","import { EthAccountButton } from '@xylabs/react-crypto'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { NumberStatus } from '@xylabs/react-number-status'\nimport { EthAddressWrapper } from '@xylabs/sdk-js'\nimport { useNetwork } from '@xyo-network/react-network'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport React from 'react'\n\nimport { useAccount } from '../../hooks/index.ts'\n\n/** @public */\nexport interface WalletAccountDetailsProps extends FlexBoxProps {\n account?: WalletInstance\n exploreUrl?: string\n}\n\n/** @public */\nexport const WalletAccountDetails: React.FC<WalletAccountDetailsProps> = ({\n exploreUrl = 'https://explore.xyo.network', account, ...props\n}) => {\n const [accountToUse] = useAccount({ account })\n const { network } = useNetwork()\n const exploreAddressUrl = `${exploreUrl}/recent?account=${accountToUse?.address}&network=${network?.name ?? 'main'}`\n\n return (\n <FlexCol {...props}>\n <EthAccountButton address={EthAddressWrapper.fromString(accountToUse?.address)} />\n <FlexRow gap={1}>\n <NumberStatus rounded title=\"Tokens\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.tokens`} target=\"_blank\" />\n <NumberStatus rounded title=\"NFTs\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.nfts`} target=\"_blank\" />\n <NumberStatus rounded title=\"Signatures\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.signatures`} target=\"_blank\" />\n <NumberStatus rounded title=\"Signins\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.signins`} target=\"_blank\" />\n </FlexRow>\n </FlexCol>\n )\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport { useState } from 'react'\n\nimport {\n useRootWallet, useWalletContext, useWalletProvided,\n} from '../contexts/index.ts'\n\n/** @public */\nexport interface AccountHookParams {\n account?: AccountInstance\n index?: number\n required?: boolean\n wallet?: WalletInstance\n}\n\n/** @public */\nexport const useAccount = ({\n wallet, account, index, required = false,\n}: AccountHookParams = {}): [\n AccountInstance | null | undefined,\n Error | undefined,\n] => {\n const walletContextProvided = useWalletProvided()\n const [validationError, setValidationError] = useState<Error>()\n if (wallet && account && !validationError) {\n setValidationError(new Error('useAccount can not have both a wallet and an account in the parameters'))\n }\n\n if (index && account && !validationError) {\n setValidationError(new Error('useAccount can not have both a index and an account in the parameters'))\n }\n\n const [error, setError] = useState<Error>()\n const [rootWallet] = useRootWallet(!wallet && required)\n const { activeAccountIndex } = useWalletContext(false)\n const [activeAccount] = usePromise(async () => {\n try {\n if (!validationError) {\n if (wallet) {\n const path = `${index ?? 0}'\\0`\n return await wallet?.derivePath?.(path)\n } else if (rootWallet) {\n const path = `${index ?? activeAccountIndex ?? 0}'\\/0`\n return await rootWallet?.derivePath?.(path)\n }\n }\n } catch (ex) {\n const error = ex as Error\n console.error(error.message)\n setError(error)\n }\n }, [index, wallet, rootWallet, activeAccountIndex, validationError])\n if (validationError && !error) {\n console.error(validationError.message)\n setError(validationError)\n }\n\n return [\n error\n ? undefined\n : (account ?? activeAccount ?? walletContextProvided)\n ? null\n : undefined,\n error,\n ]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { HDWallet } from '@xyo-network/wallet'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport { useState } from 'react'\n\nimport { useSelectedWalletAccount, useWalletContext } from '../contexts/index.ts'\n\n/** @public */\nexport interface WalletHookParams {\n mnemonic?: string\n path?: string\n required?: boolean\n seed?: ArrayBufferLike | string\n wallet?: WalletInstance | null\n}\n\n/** @public */\nexport const useWallet = ({\n mnemonic, wallet, path, required = false, seed,\n}: WalletHookParams = {}): [\n WalletInstance | null | undefined,\n Error | undefined,\n] => {\n const walletContextProvided = useWalletContext(false)\n const [error, setError] = useState<Error>()\n const [contextAccount] = useSelectedWalletAccount(!wallet && required)\n const [activeAccount] = usePromise(async () => {\n try {\n const newAccount = await (() => {\n if (wallet) {\n return wallet\n } else if (mnemonic) {\n return HDWallet.fromPhrase(mnemonic)\n } else if (seed) {\n return HDWallet.fromSeed(seed)\n }\n return contextAccount\n })()\n\n return path ? newAccount?.derivePath?.(path) : (newAccount ?? wallet)\n } catch (ex) {\n setError(ex as Error)\n }\n }, [mnemonic, contextAccount, seed, path, wallet])\n return [activeAccount ?? (walletContextProvided ? null : activeAccount), error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { useWalletContext } from '../contexts/index.ts'\nimport { useWallet } from './useWallet.ts'\n\n/** @public */\nexport interface WalletsHookParams {\n paths: string[]\n wallet?: WalletInstance | null\n}\n\n/** @public */\nexport const useWallets = ({ wallet, paths }: WalletsHookParams): [WalletInstance[] | null | undefined, Error | undefined] => {\n const walletContextProvided = useWalletContext(false)\n const [foundWallet] = useWallet({ wallet })\n const [wallets, error] = usePromise(\n async () => (foundWallet ? await Promise.all(paths.map(path => foundWallet.derivePath(path))) : undefined),\n [foundWallet, paths],\n )\n return [wallets ?? (walletContextProvided ? null : wallets), error]\n}\n","import type { UsePromiseState } from '@xylabs/react-promise'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport { HDWallet } from '@xyo-network/wallet'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport { Mutex } from 'async-mutex'\n\nlet globalWrapperWallet: WalletInstance | undefined\nconst globalWrapperWalletMutex = new Mutex()\n\n/** @public */\nexport const useWrapperAccount = (\n account?: AccountInstance | null,\n): [AccountInstance | null | undefined, Error | undefined, UsePromiseState | undefined] => {\n return usePromise(async () => {\n return await globalWrapperWalletMutex.runExclusive(async () => {\n // if we are expecting to receive a wallet or did receive on, return the override account\n if (account !== undefined) {\n return account\n }\n\n if (globalWrapperWallet) {\n return globalWrapperWallet\n }\n\n try {\n globalWrapperWallet = await HDWallet.random()\n console.log(`Global Wrapper Wallet Creation Success: ${globalWrapperWallet.address}`)\n } catch (ex) {\n const error = ex as Error\n console.error(`Global Wrapper Wallet Creation Failed: ${error.message}`)\n }\n return globalWrapperWallet\n })\n }, [account])\n}\n","import type { SelectProps } from '@mui/material'\nimport { CircularProgress } from '@mui/material'\nimport { SelectEx } from '@xylabs/react-select'\nimport type { AddressRenderRowBoxProps } from '@xyo-network/react-address-render'\nimport React from 'react'\n\nimport { useWalletContext } from '../../contexts/index.ts'\nimport { RenderedAccountMenuItem } from './RenderedMenuItem.tsx'\n\ntype SharedAddressRenderRowBoxProps = Pick<AddressRenderRowBoxProps, 'iconOnly' | 'iconSize' | 'icons' | 'showFavorite'>\n\n/** @public */\nexport type WalletAccountSelectProps = SharedAddressRenderRowBoxProps\n & Omit<SelectProps<number>, 'variant'>\n & Partial<SelectProps<number>> & {\n addressNames?: Record<string, string | undefined>\n maxAccounts?: number\n }\n\nconst arrayRange = (length: number, start = 0) => {\n return [...Array.from({ length }).keys()].map(x => x + start)\n}\n\n/** @public */\nexport const WalletAccountSelect: React.FC<WalletAccountSelectProps> = ({\n addressNames,\n iconOnly,\n iconSize = 24,\n icons,\n maxAccounts = 1,\n showFavorite = false,\n size,\n variant = 'outlined',\n ...props\n}) => {\n const {\n activeAccountIndex, setActiveAccountIndex, rootWallet,\n } = useWalletContext()\n const disabled = !rootWallet || activeAccountIndex === undefined\n\n return (\n <>\n {rootWallet\n ? (\n <SelectEx\n margin=\"dense\"\n disabled={disabled}\n renderValue={(selectedAccountIndex) => {\n return (\n <RenderedAccountMenuItem\n addressNames={addressNames}\n iconOnly={iconOnly}\n iconSize={iconSize}\n icons={icons}\n rootWallet={rootWallet}\n selectedAccountIndex={selectedAccountIndex}\n showFavorite={showFavorite}\n />\n )\n }}\n value={activeAccountIndex === undefined ? '' : activeAccountIndex}\n onChange={event => setActiveAccountIndex?.(Number.parseInt(`${event.target.value}`))}\n size={size}\n variant={variant}\n {...props}\n >\n {rootWallet && arrayRange(maxAccounts).map(index => (\n <RenderedAccountMenuItem\n key={index}\n addressNames={addressNames}\n iconOnly={iconOnly}\n iconSize={iconSize}\n icons={icons}\n rootWallet={rootWallet}\n selectedAccountIndex={index}\n showFavorite={showFavorite}\n />\n ))}\n </SelectEx>\n )\n : <CircularProgress size={24} />}\n </>\n )\n}\n","import { MenuItem, type MenuItemProps } from '@mui/material'\nimport { AddressRenderRowBox } from '@xyo-network/react-address-render'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport React from 'react'\n\nimport { useWallet } from '../../hooks/index.ts'\n\n/** @public */\nexport interface RenderedAccountMenuItemProps extends MenuItemProps {\n addressNames?: Record<string, string | undefined>\n iconOnly?: boolean\n iconSize?: number\n icons?: boolean\n rootWallet: WalletInstance\n selectedAccountIndex?: number\n showFavorite?: boolean\n}\n\n/** @public */\nexport const RenderedAccountMenuItem: React.FC<RenderedAccountMenuItemProps> = ({\n selectedAccountIndex,\n rootWallet,\n addressNames,\n iconOnly,\n iconSize,\n icons,\n showFavorite,\n}) => {\n const [selectedAccount] = useWallet({ path: selectedAccountIndex?.toString(), wallet: rootWallet })\n const customName = selectedAccount ? addressNames?.[selectedAccount.address] : undefined\n const favorite = !!selectedAccount && selectedAccount.address in (addressNames ?? {})\n return (\n <MenuItem\n value={selectedAccountIndex}\n sx={{\n minHeight: 0, paddingBottom: 0, paddingTop: 0,\n }}\n >\n <AddressRenderRowBox\n disableSharedRef={true}\n flexGrow={1}\n address={selectedAccount?.address}\n iconOnly={iconOnly}\n iconSize={iconSize}\n icons={icons}\n name={customName}\n favorite={favorite}\n showFavorite={showFavorite}\n />\n </MenuItem>\n )\n}\n","import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport { WalletAccountSelect } from './Select.tsx'\n\n/** @public */\nexport interface WalletAccountSelectBarProps extends FlexBoxProps {\n addressNames?: Record<string, string | undefined>\n iconOnly?: boolean\n iconSize?: number\n icons?: boolean\n maxAccounts?: number\n showFavorite?: boolean\n size?: 'small' | 'medium'\n}\n\n/** @public */\nexport const WalletAccountSelectBar: React.FC<WalletAccountSelectBarProps> = ({\n addressNames,\n iconOnly,\n iconSize,\n icons,\n maxAccounts = 1,\n showFavorite = false,\n size = 'small',\n ...props\n}) => {\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n <WalletAccountSelect\n addressNames={addressNames}\n fullWidth\n showFavorite={showFavorite}\n iconSize={iconSize}\n iconOnly={iconOnly}\n icons={icons}\n maxAccounts={maxAccounts}\n size={size ?? 'small'}\n variant=\"outlined\"\n />\n </FlexCol>\n )\n}\n"],"mappings":"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","names":["jsx","jsxs","desiredMaximumAccounts","Typography","useState","jsx","jsxs","Alert","AlertTitle","Snackbar","useState","Fragment","jsx","jsxs","Button","DialogActions","generateMnemonic","wordlist","useState","jsx","wordlist","useState","generateMnemonic","createContextEx","useResetState","useMemo","jsx","useResetState","useMemo","usePromise","useContextEx","useContextEx","usePromise","jsx","jsxs","DialogActions","Button","Link","Typography","jsx","jsxs","useMemo","jsx","jsxs","jsx","jsxs","Button","DialogActions","jsx","jsxs","DialogActions","Button","FormControl","IconButton","TextField","FlexRow","useState","jsx","jsxs","useState","FormControl","FlexRow","IconButton","TextField","Alert","Button","FlexRow","jsx","jsxs","Alert","FlexRow","Button","Dialog","DialogContent","DialogTitle","FormLabel","jsx","jsxs","Dialog","DialogTitle","DialogContent","FormLabel","Button","ButtonGroup","TableCell","TableRow","useState","jsx","jsxs","useState","TableRow","TableCell","ButtonGroup","Button","FlexRow","usePromise","useState","useState","usePromise","error","usePromise","useState","useState","usePromise","usePromise","usePromise","usePromise","HDWallet","jsx","jsxs","FlexRow","jsx","Fragment","jsx","FlexCol","jsx","FlexCol"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/MaxAccounts/MaxAccountsTableRow.tsx","../../src/components/MaxAccounts/OutOfBoundsSnackBar.tsx","../../src/components/SeedPhrase/_shared/SeedPhraseIconButton.tsx","../../src/components/SeedPhrase/DefaultSeedPhrase.tsx","../../src/components/SeedPhrase/dialog/components/DialogActionButtons.tsx","../../src/contexts/SeedPhrase/Context.ts","../../src/contexts/SeedPhrase/Provider.tsx","../../src/contexts/SeedPhrase/use.ts","../../src/contexts/Wallet/Context.ts","../../src/contexts/Wallet/Provider.tsx","../../src/contexts/Wallet/use.ts","../../src/components/SeedPhrase/dialog/components/fields/NewPhraseTextField.tsx","../../src/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.ts","../../src/components/SeedPhrase/dialog/components/fields/validation-messages/InvalidPhrase.tsx","../../src/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.tsx","../../src/components/SeedPhrase/dialog/components/fields/PhraseDialogActions.tsx","../../src/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.tsx","../../src/components/SeedPhrase/dialog/components/OverwriteWarning.tsx","../../src/components/SeedPhrase/dialog/SeedPhraseDialog.tsx","../../src/components/SeedPhrase/settings/SeedPhraseTableRow.tsx","../../src/components/WalletAccountDetails/WalletAccountDetails.tsx","../../src/hooks/useAccount.ts","../../src/hooks/useWallet.ts","../../src/hooks/useWallets.ts","../../src/hooks/useWrapperAccount.ts","../../src/components/WalletAccountSelect/Select.tsx","../../src/components/WalletAccountSelect/RenderedMenuItem.tsx","../../src/components/WalletAccountSelect/SelectBar.tsx"],"sourcesContent":["import type { TableRowProps } from '@mui/material'\nimport {\n ButtonGroup, TableCell, TableRow, Typography,\n} from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport React, { useState } from 'react'\n\nimport { OutOfBoundsSnackBar } from './OutOfBoundsSnackBar.tsx'\n\n/** @public */\nexport interface MaxAccountsTableRow extends TableRowProps {\n activeAccountIndex?: number\n changeMaxAccounts?: (maxAccounts: number) => void\n maxAccounts?: number\n}\n\n/** @public */\nexport const MaxAccountsTableRow: React.FC<MaxAccountsTableRow> = ({\n activeAccountIndex, changeMaxAccounts, maxAccounts,\n}) => {\n const [desiredMaximumAccounts, setDesiredMaximumAccounts] = useState<number | undefined>()\n const [showSnackBar, setShowSnackBar] = useState(false)\n\n const handleChangeMaxAccounts = (change: 'increase' | 'decrease') => {\n if (maxAccounts !== undefined && activeAccountIndex !== undefined) {\n switch (change) {\n case 'decrease': {\n const desiredMaximumAccounts = maxAccounts - 1\n const validMaximumAccounts = desiredMaximumAccounts > 0\n const maxAccountsWithinRange = activeAccountIndex + 1 <= desiredMaximumAccounts\n if (validMaximumAccounts && maxAccountsWithinRange) {\n changeMaxAccounts?.(desiredMaximumAccounts)\n }\n if (!maxAccountsWithinRange) setShowSnackBar(true)\n setDesiredMaximumAccounts(desiredMaximumAccounts)\n return\n }\n case 'increase': {\n changeMaxAccounts?.(maxAccounts + 1)\n return\n }\n default: {\n console.error(change, 'is not a recognized value')\n }\n }\n } else {\n throw new Error('Max Accounts is unset and needs a default')\n }\n }\n\n return (\n <TableRow>\n <TableCell>Maximum Accounts</TableCell>\n <TableCell align=\"center\">\n <Typography variant=\"caption\">{maxAccounts}</Typography>\n </TableCell>\n <TableCell align=\"center\">\n <ButtonGroup>\n <ButtonEx onClick={() => handleChangeMaxAccounts('decrease')} variant=\"contained\" size=\"small\">\n -\n </ButtonEx>\n <ButtonEx onClick={() => handleChangeMaxAccounts('increase')} variant=\"contained\" size=\"small\">\n +\n </ButtonEx>\n </ButtonGroup>\n <OutOfBoundsSnackBar\n desiredMaximumAccounts={desiredMaximumAccounts}\n activeAccountIndex={activeAccountIndex}\n setShowSnackBar={setShowSnackBar}\n showSnackBar={showSnackBar}\n />\n </TableCell>\n </TableRow>\n )\n}\n","import type { SnackbarProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Snackbar,\n} from '@mui/material'\nimport type { Dispatch, SetStateAction } from 'react'\nimport React from 'react'\n\n/** @public */\nexport interface OutOfBoundsSnackBarProps extends SnackbarProps {\n activeAccountIndex?: number\n desiredMaximumAccounts?: number\n setShowSnackBar?: Dispatch<SetStateAction<boolean>>\n showSnackBar?: boolean\n}\n\n/** @public */\nexport const OutOfBoundsSnackBar: React.FC<OutOfBoundsSnackBarProps> = ({\n activeAccountIndex,\n desiredMaximumAccounts,\n setShowSnackBar,\n showSnackBar,\n}) => {\n return (\n <Snackbar\n anchorOrigin={{ horizontal: 'center', vertical: 'top' }}\n autoHideDuration={5000}\n onClose={() => setShowSnackBar?.(false)}\n open={showSnackBar}\n >\n <Alert severity=\"error\" onClose={() => setShowSnackBar?.(false)}>\n <AlertTitle>Maximum Accounts Error</AlertTitle>\n Your currently selected account number (\n {activeAccountIndex === undefined ? '' : activeAccountIndex + 1}\n ) cannot be greater than the desired\n Maximum Accounts (\n {desiredMaximumAccounts}\n ).\n </Alert>\n </Snackbar>\n )\n}\n","import { HelpOutlined as HelpOutlineIcon } from '@mui/icons-material'\nimport type { IconButtonProps } from '@mui/material'\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n Link,\n List,\n ListItem,\n Typography,\n} from '@mui/material'\nimport React, { useState } from 'react'\n\n/** @internal */\nexport const SeedPhraseIconButton: React.FC<IconButtonProps> = (props) => {\n const [open, setOpen] = useState(false)\n const onClose = () => setOpen(false)\n return (\n <>\n <IconButton onClick={() => setOpen(true)} {...props}>\n <HelpOutlineIcon fontSize=\"small\" />\n </IconButton>\n <Dialog open={open}>\n <DialogTitle>Understanding your Seed Phrase</DialogTitle>\n <DialogContent>\n <Typography>\n Your Seed Phrase should adhere to the\n {' '}\n <Link target=\"_blank\" href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">\n bip39 specification\n </Link>\n {' '}\n and is used to generate accounts which identify your data on the XYO Network.\n </Typography>\n <List>\n <ListItem>Do not share this phrase with anyone.</ListItem>\n <ListItem>Do not save it to a public computer.</ListItem>\n <ListItem>Do not use a existing phrase from another wallet (i.e. Metamask).</ListItem>\n <ListItem>Do not use before copying it down somewhere safe.</ListItem>\n </List>\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose} variant=\"outlined\">\n OK\n </Button>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import {\n Alert, AlertTitle, Snackbar,\n} from '@mui/material'\nimport { generateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english.js'\nimport { isUndefinedOrNull } from '@xylabs/sdk-js'\nimport type { PropsWithChildren } from 'react'\nimport React, { useState } from 'react'\n\n/** @public */\nexport interface DefaultSeedPhraseProps extends PropsWithChildren {\n changeSeedPhrase?: (seedPhrase: string) => void\n hideDefaultSeedPhraseMessage?: boolean\n seedPhrase?: string\n}\n\n/** @public */\nexport const DefaultSeedPhrase: React.FC<DefaultSeedPhraseProps> = ({\n changeSeedPhrase, children, hideDefaultSeedPhraseMessage, seedPhrase,\n}) => {\n const [showSnackBar, setShowSnackBar] = useState(false)\n const [previousSeedPhrase, setPreviousSeedPhrase] = useState<string | undefined>()\n if (seedPhrase !== previousSeedPhrase) {\n setPreviousSeedPhrase(seedPhrase)\n if (isUndefinedOrNull(previousSeedPhrase) && !isUndefinedOrNull(seedPhrase)) {\n const mnemonic = generateMnemonic(wordlist, 256)\n changeSeedPhrase?.(mnemonic)\n setShowSnackBar(true)\n }\n }\n\n return (\n <>\n {hideDefaultSeedPhraseMessage\n ? null\n : (\n <Snackbar\n open={showSnackBar}\n autoHideDuration={5000}\n onClose={() => setShowSnackBar(false)}\n anchorOrigin={{ horizontal: 'center', vertical: 'top' }}\n >\n <Alert severity=\"success\">\n <AlertTitle>Default Seed Phrase Generated</AlertTitle>\n Go to application settings to save it.\n </Alert>\n </Snackbar>\n )}\n {children}\n </>\n )\n}\n","import type { DialogActionsProps, DialogProps } from '@mui/material'\nimport { Button, DialogActions } from '@mui/material'\nimport type { MouseEvent } from 'react'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../contexts/index.ts'\n\n/** @public */\nexport interface DialogActionButtonsProps extends DialogActionsProps {\n onClose?: DialogProps['onClose']\n}\n\n/** @public */\nexport const DialogActionButtons: React.FC<DialogActionButtonsProps> = ({ onClose, ...props }) => {\n const { handleSave, setPhrase } = useSeedPhrase()\n\n const wrappedOnClose = (e: MouseEvent<HTMLElement>) => {\n // clear local copy of phrase when modal closes\n setPhrase?.('')\n onClose?.(e, 'escapeKeyDown')\n }\n\n return (\n <DialogActions {...props}>\n <Button variant=\"outlined\" onClick={wrappedOnClose}>\n Cancel\n </Button>\n <Button type=\"submit\" variant=\"contained\" onClick={handleSave}>\n Save\n </Button>\n </DialogActions>\n )\n}\n","import { createContextEx } from '@xylabs/react-shared'\n\nimport type { SeedPhraseContextState } from './State.ts'\n\n/** @public */\nexport const SeedPhraseContext = createContextEx<SeedPhraseContextState>()\n","import { generateMnemonic, validateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english.js'\nimport { useResetState } from '@xylabs/react-hooks'\nimport type { PropsWithChildren } from 'react'\nimport React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react'\n\nimport { SeedPhraseContext } from './Context.ts'\nimport type { SeedPhraseContextState } from './State.ts'\n\n/** @public */\nexport interface SeedPhraseProviderProps extends PropsWithChildren {\n defaultPhrase?: string\n handleChangeSeedPhrase?: (phrase: string) => void\n open?: boolean\n saveCallback?: () => void\n seedPhrase?: string\n}\n\nconst validate = (passedPhrase?: string) => {\n if (!passedPhrase) {\n return null\n }\n return validateMnemonic(passedPhrase, wordlist)\n}\n\n/** @public */\nexport const SeedPhraseProvider: React.FC<SeedPhraseProviderProps> = ({\n children,\n defaultPhrase,\n handleChangeSeedPhrase,\n saveCallback,\n seedPhrase,\n open,\n}) => {\n const [phrase, setPhrase] = useResetState<string | undefined>(defaultPhrase)\n const [overwriteWarning, setOverwriteWarning] = useState(false)\n\n useEffect(() => {\n if (seedPhrase || open) {\n setPhrase?.(seedPhrase ?? '')\n }\n }, [seedPhrase, open, setPhrase])\n\n const handleGenerate = useCallback(() => {\n const mnemonic = generateMnemonic(wordlist, 256)\n setPhrase?.(mnemonic)\n setOverwriteWarning?.(false)\n }, [setPhrase])\n\n const handleCancelOverwrite = useCallback(() => {\n // eslint-disable-next-line react-x/set-state-in-effect\n setOverwriteWarning(false)\n }, [setOverwriteWarning])\n\n const handleClear = useCallback(() => {\n setPhrase('')\n setOverwriteWarning(false)\n }, [setPhrase, setOverwriteWarning])\n\n const handleSave = useCallback(() => {\n if (!overwriteWarning && seedPhrase && seedPhrase !== phrase) {\n setOverwriteWarning?.(true)\n } else {\n handleChangeSeedPhrase?.(phrase ?? '')\n saveCallback?.()\n }\n }, [handleChangeSeedPhrase, overwriteWarning, phrase, saveCallback, seedPhrase])\n\n useEffect(() => {\n if (!open) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n handleCancelOverwrite()\n }\n }, [handleCancelOverwrite, open])\n\n const validSeedPhrase = useMemo(() => validate?.(seedPhrase), [seedPhrase])\n const validPhrase = useMemo(() => validate?.(phrase), [phrase])\n\n const value: SeedPhraseContextState = useMemo(() => ({\n handleCancelOverwrite,\n handleChangeSeedPhrase,\n handleClear,\n handleGenerate,\n handleSave,\n overwriteWarning,\n phrase,\n provided: true as const,\n seedPhrase,\n setOverwriteWarning,\n setPhrase,\n validPhrase,\n validSeedPhrase,\n validate,\n }), [handleCancelOverwrite, handleChangeSeedPhrase, handleClear, handleGenerate, handleSave, overwriteWarning, phrase, seedPhrase, setOverwriteWarning, setPhrase, validPhrase, validSeedPhrase])\n\n return (\n <SeedPhraseContext\n value={value}\n >\n {children}\n </SeedPhraseContext>\n )\n}\n","import { useContextEx } from '@xylabs/react-shared'\n\nimport { SeedPhraseContext } from './Context.ts'\n\n/** @public */\nexport const useSeedPhrase = () => useContextEx(SeedPhraseContext, 'SeedPhrase', true)\n","import { createContextEx } from '@xylabs/react-shared'\n\nimport type { WalletContextState } from './State.ts'\n\n/** @public */\nexport const WalletContext = createContextEx<WalletContextState>()\n","import { useResetState } from '@xylabs/react-hooks'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport { WalletContext } from './Context.ts'\nimport type { WalletContextState } from './State.ts'\n\n/** @public */\nexport interface WalletProviderProps {\n defaultActiveAccountIndex?: number\n rootWallet?: WalletInstance | null\n}\n\n/** @public */\nexport const WalletProvider: React.FC<PropsWithChildren<WalletProviderProps>> = ({\n children,\n defaultActiveAccountIndex = 0,\n rootWallet = null,\n ...props\n}) => {\n const [activeAccountIndex, setActiveAccountIndex] = useResetState(defaultActiveAccountIndex)\n\n const [activeAccount = null] = usePromise(async () => await rootWallet?.derivePath(activeAccountIndex.toString()), [activeAccountIndex, rootWallet])\n\n const value: WalletContextState = useMemo(() => ({\n activeAccount,\n activeAccountIndex,\n provided: true,\n rootWallet,\n setActiveAccountIndex,\n }), [activeAccount,\n activeAccountIndex,\n rootWallet,\n setActiveAccountIndex])\n\n return (\n <WalletContext\n value={value}\n {...props}\n >\n {children}\n </WalletContext>\n )\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { useContextEx, useProvided } from '@xylabs/react-shared'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { WalletContext } from './Context.ts'\n\n/** @public */\nexport const useWalletContext = (required = true) => {\n return useContextEx(WalletContext, 'Wallet', required)\n}\n\n/** @public */\nexport const useWalletProvided = () => {\n return useProvided(WalletContext)\n}\n\n/** @public */\nexport const useRootWallet = (required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const { rootWallet } = useWalletContext(required)\n return [rootWallet, undefined]\n}\n\n/** @public */\nexport const useIndexedWalletFromContext = (index: number, required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const { rootWallet } = useWalletContext(required)\n const [wallet] = usePromise(async () => (await rootWallet?.derivePath(index.toString())) ?? rootWallet, [rootWallet, index])\n return [wallet, undefined]\n}\n\n/** @public */\nexport const useSelectedWalletAccount = (required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const { activeAccountIndex } = useWalletContext(required)\n // we pass in 0 as default since we can not call the hook optionally,\n // we resolve this false result by checking whether activeAccountIndex is defined before returning it\n const [account] = useIndexedWalletFromContext(activeAccountIndex ?? 0, required)\n return activeAccountIndex === undefined && account === null ? [null, undefined] : [account, undefined]\n}\n","import type { StandardTextFieldProps } from '@mui/material'\nimport { FormControl, TextField } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts/index.ts'\nimport { colorParser, InvalidPhraseTypography } from './validation-messages/index.ts'\n\n/** @public */\nexport interface NewPhraseTextFieldProps extends StandardTextFieldProps {\n children?: ReactNode\n disableColor?: boolean\n}\n\n/** @public */\nexport const NewPhraseTextField: React.FC<NewPhraseTextFieldProps> = ({\n children, disableColor, ...props\n}) => {\n const {\n phrase, setPhrase, validPhrase,\n } = useSeedPhrase()\n return (\n <FormControl\n fullWidth\n size=\"small\"\n sx={{\n display: 'flex', flexDirection: 'column', rowGap: 1,\n }}\n >\n {children}\n <TextField\n focused\n error={validPhrase === false}\n helperText={validPhrase === false ? <InvalidPhraseTypography /> : null}\n fullWidth\n maxRows={Number.POSITIVE_INFINITY}\n multiline\n onChange={e => setPhrase?.(e.target.value)}\n value={phrase}\n {...props}\n sx={[{ color: disableColor ? undefined : colorParser(validPhrase) }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n />\n </FormControl>\n )\n}\n","/** @public */\nexport const colorParser = (conditional?: boolean | null) => {\n switch (conditional) {\n case true: {\n return 'success'\n }\n case false: {\n return 'error'\n }\n default: {\n return\n }\n }\n}\n","import type { TypographyProps } from '@mui/material'\nimport { Link, Typography } from '@mui/material'\nimport React from 'react'\n\n/** @public */\nexport const InvalidPhraseTypography: React.FC<TypographyProps> = props => (\n <Typography variant=\"caption\" color=\"error\" {...props}>\n Invalid seed phrase. See -\n {' '}\n <Link target=\"_blank\" href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">\n bip39 Proposal\n </Link>\n </Typography>\n)\n","import { CheckCircleOutlined as CheckCircleOutlineIcon, HighlightOff as HighlightOffIcon } from '@mui/icons-material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\n/** @public */\nexport interface PhraseHeaderBoxProps extends FlexBoxProps, PropsWithChildren {\n conditional?: boolean | null\n}\n\n/** @public */\nexport const PhraseHeaderBox: React.FC<PhraseHeaderBoxProps> = ({\n children, conditional, ...props\n}) => {\n const state = useMemo(() => {\n switch (conditional) {\n case true: {\n return 'success'\n }\n case false: {\n return 'error'\n }\n default: {\n return null\n }\n }\n }, [conditional])\n\n const Icon = useMemo(() => {\n switch (state) {\n case 'success': {\n return (\n <CheckCircleOutlineIcon\n sx={{\n fontSize: 'small',\n color: 'success',\n }}\n />\n )\n }\n case 'error': {\n return (\n <HighlightOffIcon\n sx={{\n fontSize: 'small',\n color: 'error',\n }}\n />\n )\n }\n default: {\n return null\n }\n }\n }, [state])\n\n return (\n <FlexRow\n {...props}\n sx={[{\n justifyContent: 'start',\n columnGap: 1,\n }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n >\n {Icon}\n {children}\n </FlexRow>\n )\n}\n","import type { DialogActionsProps } from '@mui/material'\nimport { Button, DialogActions } from '@mui/material'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts/index.ts'\n\nexport interface PhraseDialogActionsProps extends DialogActionsProps {\n hideClear?: boolean\n hideGenerate?: boolean\n}\n\n/** @public */\nexport const PhraseDialogActions: React.FC<PhraseDialogActionsProps> = ({\n hideClear, hideGenerate, ...props\n}) => {\n const {\n handleClear, handleGenerate, overwriteWarning,\n } = useSeedPhrase()\n return (\n <DialogActions sx={{ justifyContent: 'center' }} {...props}>\n {hideGenerate\n ? null\n : (\n <Button disabled={overwriteWarning} variant=\"contained\" onClick={handleGenerate}>\n Generate\n </Button>\n )}\n {hideClear\n ? null\n : (\n <Button variant=\"outlined\" onClick={handleClear}>\n Clear\n </Button>\n\n )}\n </DialogActions>\n )\n}\n","import { ContentCopy } from '@mui/icons-material'\nimport type { StandardTextFieldProps } from '@mui/material'\nimport {\n Chip, FormControl, FormLabel, IconButton, TextField,\n Tooltip,\n useTheme,\n} from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React, { useState } from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts/index.ts'\nimport { InvalidPhraseTypography, PhraseHeaderBox } from './validation-messages/index.ts'\n\n/** @public */\nexport interface SavedPhraseTextFieldProps extends StandardTextFieldProps {\n fullWidth?: boolean\n showCopyButton?: boolean\n showPhraseHeader?: boolean\n visible?: boolean\n}\n\n/** @public */\nexport const SavedPhraseTextField: React.FC<SavedPhraseTextFieldProps> = ({\n\n fullWidth, showCopyButton, showPhraseHeader, visible: visibleProp, ...props\n}) => {\n const { validSeedPhrase, seedPhrase } = useSeedPhrase()\n const theme = useTheme()\n\n const [visible, setVisible] = useState(visibleProp)\n\n const [previousVisibleProp, setPreviousVisibleProp] = useState(visibleProp)\n if (visibleProp !== previousVisibleProp) {\n setPreviousVisibleProp(visibleProp)\n setVisible(visibleProp)\n }\n\n const [copied, setCopied] = useState(false)\n const onCopyPhrase = async () => {\n if (seedPhrase) {\n try {\n await navigator.clipboard.writeText(seedPhrase)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n } catch (e) {\n console.error('Error copying resolvedSelectedAddress to clipboard', e)\n }\n }\n }\n\n return (\n <FormControl\n fullWidth={fullWidth}\n size=\"small\"\n sx={{\n display: 'flex', flexDirection: 'column', rowGap: 1,\n }}\n >\n <FlexRow sx={{ gap: 0.5 }}>\n <Chip\n label=\"Show Seed Phrase\"\n onClick={() => setVisible(!visible)}\n // Margin is set to 2px to match the Copy Button size and remove jumping during animation\n sx={{ alignSelf: 'center', my: '2px' }}\n />\n <Tooltip title={copied ? 'Copied!' : 'Copy'}>\n <IconButton\n onClick={() => void onCopyPhrase()}\n sx={{\n height: visible ? 'auto' : 0,\n opacity: visible ? 1 : 0,\n overflow: 'hidden',\n padding: visible ? theme.spacing(1) : 0,\n transition: 'all .25s ease-in-out',\n width: visible ? 'max-content' : 0,\n }}\n >\n <ContentCopy sx={{ fontSize: 'small' }} />\n </IconButton>\n </Tooltip>\n </FlexRow>\n {visible && showPhraseHeader\n ? (\n <FormLabel>\n <PhraseHeaderBox conditional={validSeedPhrase}>Saved Seed Phrase</PhraseHeaderBox>\n </FormLabel>\n )\n : null}\n <TextField\n defaultValue={seedPhrase}\n disabled\n error={validSeedPhrase === false}\n helperText={validSeedPhrase === false ? <InvalidPhraseTypography /> : null}\n fullWidth\n maxRows={Number.POSITIVE_INFINITY}\n multiline\n slotProps={{\n input: {\n style: {\n height: visible ? 'auto' : '0',\n overflow: 'hidden',\n opacity: visible ? 1 : 0,\n padding: visible ? theme.spacing(1) : 0,\n transition: 'all .25s ease-in-out',\n },\n },\n }}\n {...props}\n />\n </FormControl>\n )\n}\n","import { Alert, Button } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../contexts/index.ts'\n\n/** @public */\nexport const OverwriteWarning = () => {\n const { handleCancelOverwrite, handleSave } = useSeedPhrase()\n return (\n <Alert\n variant=\"outlined\"\n severity=\"warning\"\n action={(\n <FlexRow sx={{ columnGap: 1 }}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n onClick={handleSave}\n sx={{ color: 'inherit' }}\n >\n Overwrite\n </Button>\n <Button\n variant=\"outlined\"\n size=\"small\"\n onClick={handleCancelOverwrite}\n sx={{ color: 'inherit' }}\n >\n Cancel\n </Button>\n </FlexRow>\n )}\n >\n Are you sure you want to overwrite existing seed phrase? This action cannot be undone.\n </Alert>\n )\n}\n","import type { DialogProps } from '@mui/material'\nimport {\n Dialog, DialogContent, DialogTitle, FormLabel,\n} from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport { SeedPhraseProvider, useSeedPhrase } from '../../../contexts/index.ts'\nimport { SeedPhraseIconButton } from '../_shared/index.ts'\nimport {\n DialogActionButtons,\n NewPhraseTextField,\n OverwriteWarning,\n PhraseDialogActions,\n PhraseHeaderBox,\n SavedPhraseTextField,\n} from './components/index.ts'\n\n/** @public */\nexport interface SeedPhraseDialogProps extends DialogProps {\n changeSeedPhrase?: (value: string) => void\n dialogTitle?: ReactNode\n seedPhrase?: string\n seedPhraseTextFieldTitle?: ReactNode\n showCopyButton?: boolean\n}\n\n/** @public */\nexport const SeedPhraseDialog: React.FC<SeedPhraseDialogProps> = ({\n changeSeedPhrase, dialogTitle = 'Update Your Seed Phrase', seedPhrase, seedPhraseTextFieldTitle = 'New Seed Phrase', ...props\n}) => {\n return (\n <SeedPhraseProvider\n seedPhrase={seedPhrase}\n handleChangeSeedPhrase={changeSeedPhrase}\n open={props.open}\n saveCallback={() => props.onClose?.({}, 'escapeKeyDown')}\n >\n <SeedPhraseDialogInner dialogTitle={dialogTitle} seedPhraseTextFieldTitle={seedPhraseTextFieldTitle} {...props} />\n </SeedPhraseProvider>\n )\n}\n\n/** @public */\nexport const SeedPhraseDialogInner: React.FC<SeedPhraseDialogProps> = ({\n dialogTitle, seedPhraseTextFieldTitle, showCopyButton, ...props\n}) => {\n const {\n overwriteWarning, seedPhrase, validPhrase,\n } = useSeedPhrase()\n\n return (\n <Dialog\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n fullWidth\n {...props}\n sx={[{ maxWidth: 'sm' }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n >\n <DialogTitle\n id=\"alert-dialog-title\"\n sx={{\n alignItems: 'center', display: 'inline-flex', flexDirection: 'row',\n }}\n >\n {dialogTitle}\n <SeedPhraseIconButton />\n </DialogTitle>\n <DialogContent sx={{\n display: 'flex', flexDirection: 'column', rowGap: 2,\n }}\n >\n\n <NewPhraseTextField>\n <FormLabel>\n <PhraseHeaderBox conditional={validPhrase}>{seedPhraseTextFieldTitle}</PhraseHeaderBox>\n </FormLabel>\n </NewPhraseTextField>\n <PhraseDialogActions />\n {seedPhrase\n ? <SavedPhraseTextField showCopyButton={showCopyButton} />\n : null}\n {overwriteWarning\n ? <OverwriteWarning />\n : null}\n </DialogContent>\n <DialogActionButtons onClose={props.onClose} />\n </Dialog>\n )\n}\n","import { Cancel as CancelIcon, RadioButtonChecked as RadioButtonCheckedIcon } from '@mui/icons-material'\nimport type { TableRowProps } from '@mui/material'\nimport {\n Button, ButtonGroup, TableCell, TableRow,\n} from '@mui/material'\nimport React, { useState } from 'react'\n\nimport { SeedPhraseIconButton } from '../_shared/index.ts'\nimport { SeedPhraseDialog } from '../dialog/index.ts'\n\n/** @public */\nexport interface SeedPhraseTableRowProps extends TableRowProps {\n changeSeedPhrase?: (seedPhrase: string) => void\n seedPhrase?: string\n}\n\n/** @public */\nexport const SeedPhraseTableRow: React.FC<SeedPhraseTableRowProps> = ({\n changeSeedPhrase, seedPhrase, ...props\n}) => {\n const [open, setOpen] = useState(false)\n\n const handleOpen = () => {\n setOpen(true)\n }\n return (\n <TableRow {...props}>\n <TableCell>\n Seed Phrase\n {' '}\n <SeedPhraseIconButton />\n </TableCell>\n <TableCell align=\"center\">\n {seedPhrase\n ? <RadioButtonCheckedIcon color=\"success\" />\n : <CancelIcon color=\"error\" />}\n </TableCell>\n <TableCell>\n <SeedPhraseDialog changeSeedPhrase={changeSeedPhrase} open={open} onClose={() => setOpen(false)} seedPhrase={seedPhrase} />\n <ButtonGroup fullWidth>\n <Button variant=\"contained\" size=\"small\" onClick={handleOpen}>\n Update\n </Button>\n </ButtonGroup>\n </TableCell>\n </TableRow>\n )\n}\n","import { EthAccountButton } from '@xylabs/react-crypto'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { NumberStatus } from '@xylabs/react-number-status'\nimport { EthAddressWrapper } from '@xylabs/sdk-js'\nimport { useNetwork } from '@xyo-network/react-network'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport React from 'react'\n\nimport { useAccount } from '../../hooks/index.ts'\n\n/** @public */\nexport interface WalletAccountDetailsProps extends FlexBoxProps {\n account?: WalletInstance\n exploreUrl?: string\n}\n\n/** @public */\nexport const WalletAccountDetails: React.FC<WalletAccountDetailsProps> = ({\n exploreUrl = 'https://explore.xyo.network', account, ...props\n}) => {\n const [accountToUse] = useAccount({ account })\n const { network } = useNetwork()\n const exploreAddressUrl = `${exploreUrl}/recent?account=${accountToUse?.address}&network=${network?.name ?? 'main'}`\n\n return (\n <FlexCol {...props}>\n <EthAccountButton address={EthAddressWrapper.fromString(accountToUse?.address)} />\n <FlexRow sx={{ gap: 1 }}>\n <NumberStatus rounded title=\"Tokens\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.tokens`} target=\"_blank\" />\n <NumberStatus rounded title=\"NFTs\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.nfts`} target=\"_blank\" />\n <NumberStatus rounded title=\"Signatures\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.signatures`} target=\"_blank\" />\n <NumberStatus rounded title=\"Signins\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.signins`} target=\"_blank\" />\n </FlexRow>\n </FlexCol>\n )\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport { useState } from 'react'\n\nimport {\n useRootWallet, useWalletContext, useWalletProvided,\n} from '../contexts/index.ts'\n\n/** @public */\nexport interface AccountHookParams {\n account?: AccountInstance\n index?: number\n required?: boolean\n wallet?: WalletInstance\n}\n\n/** @public */\nexport const useAccount = ({\n wallet, account, index, required = false,\n}: AccountHookParams = {}): [\n AccountInstance | null | undefined,\n Error | undefined,\n] => {\n const walletContextProvided = useWalletProvided()\n const [validationError, setValidationError] = useState<Error>()\n if (wallet && account && !validationError) {\n setValidationError(new Error('useAccount can not have both a wallet and an account in the parameters'))\n }\n\n if (index && account && !validationError) {\n setValidationError(new Error('useAccount can not have both a index and an account in the parameters'))\n }\n\n const [error, setError] = useState<Error>()\n const [rootWallet] = useRootWallet(!wallet && required)\n const { activeAccountIndex } = useWalletContext(false)\n const [activeAccount] = usePromise(async () => {\n try {\n if (!validationError) {\n if (wallet) {\n const path = `${index ?? 0}'\\0`\n return await wallet?.derivePath?.(path)\n } else if (rootWallet) {\n const path = `${index ?? activeAccountIndex ?? 0}'\\/0`\n return await rootWallet?.derivePath?.(path)\n }\n }\n } catch (ex) {\n const error = ex as Error\n console.error(error.message)\n setError(error)\n }\n }, [index, wallet, rootWallet, activeAccountIndex, validationError])\n if (validationError && !error) {\n console.error(validationError.message)\n setError(validationError)\n }\n\n return [\n error\n ? undefined\n : (account ?? activeAccount ?? walletContextProvided)\n ? null\n : undefined,\n error,\n ]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { HDWallet } from '@xyo-network/wallet'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport { useState } from 'react'\n\nimport { useSelectedWalletAccount, useWalletContext } from '../contexts/index.ts'\n\n/** @public */\nexport interface WalletHookParams {\n mnemonic?: string\n path?: string\n required?: boolean\n seed?: ArrayBufferLike | string\n wallet?: WalletInstance | null\n}\n\n/** @public */\nexport const useWallet = ({\n mnemonic, wallet, path, required = false, seed,\n}: WalletHookParams = {}): [\n WalletInstance | null | undefined,\n Error | undefined,\n] => {\n const walletContextProvided = useWalletContext(false)\n const [error, setError] = useState<Error>()\n const [contextAccount] = useSelectedWalletAccount(!wallet && required)\n const [activeAccount] = usePromise(async () => {\n try {\n const newAccount = await (() => {\n if (wallet) {\n return wallet\n } else if (mnemonic) {\n return HDWallet.fromPhrase(mnemonic)\n } else if (seed) {\n return HDWallet.fromSeed(seed)\n }\n return contextAccount\n })()\n\n return path ? newAccount?.derivePath?.(path) : (newAccount ?? wallet)\n } catch (ex) {\n setError(ex as Error)\n }\n }, [mnemonic, contextAccount, seed, path, wallet])\n return [activeAccount ?? (walletContextProvided ? null : activeAccount), error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { useWalletContext } from '../contexts/index.ts'\nimport { useWallet } from './useWallet.ts'\n\n/** @public */\nexport interface WalletsHookParams {\n paths: string[]\n wallet?: WalletInstance | null\n}\n\n/** @public */\nexport const useWallets = ({ wallet, paths }: WalletsHookParams): [WalletInstance[] | null | undefined, Error | undefined] => {\n const walletContextProvided = useWalletContext(false)\n const [foundWallet] = useWallet({ wallet })\n const [wallets, error] = usePromise(\n async () => (foundWallet ? await Promise.all(paths.map(path => foundWallet.derivePath(path))) : undefined),\n [foundWallet, paths],\n )\n return [wallets ?? (walletContextProvided ? null : wallets), error]\n}\n","import type { UsePromiseState } from '@xylabs/react-promise'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport { HDWallet } from '@xyo-network/wallet'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport { Mutex } from 'async-mutex'\n\nlet globalWrapperWallet: WalletInstance | undefined\nconst globalWrapperWalletMutex = new Mutex()\n\n/** @public */\nexport const useWrapperAccount = (\n account?: AccountInstance | null,\n): [AccountInstance | null | undefined, Error | undefined, UsePromiseState | undefined] => {\n return usePromise(async () => {\n return await globalWrapperWalletMutex.runExclusive(async () => {\n // if we are expecting to receive a wallet or did receive on, return the override account\n if (account !== undefined) {\n return account\n }\n\n if (globalWrapperWallet) {\n return globalWrapperWallet\n }\n\n try {\n globalWrapperWallet = await HDWallet.random()\n console.log(`Global Wrapper Wallet Creation Success: ${globalWrapperWallet.address}`)\n } catch (ex) {\n const error = ex as Error\n console.error(`Global Wrapper Wallet Creation Failed: ${error.message}`)\n }\n return globalWrapperWallet\n })\n }, [account])\n}\n","import type { SelectProps } from '@mui/material'\nimport { CircularProgress } from '@mui/material'\nimport { SelectEx } from '@xylabs/react-select'\nimport type { AddressRenderRowBoxProps } from '@xyo-network/react-address-render'\nimport React from 'react'\n\nimport { useWalletContext } from '../../contexts/index.ts'\nimport { RenderedAccountMenuItem } from './RenderedMenuItem.tsx'\n\ntype SharedAddressRenderRowBoxProps = Pick<AddressRenderRowBoxProps, 'iconOnly' | 'iconSize' | 'icons' | 'showFavorite'>\n\n/** @public */\nexport type WalletAccountSelectProps = SharedAddressRenderRowBoxProps\n & Omit<SelectProps<number>, 'variant'>\n & Partial<SelectProps<number>> & {\n addressNames?: Record<string, string | undefined>\n maxAccounts?: number\n }\n\nconst arrayRange = (length: number, start = 0) => {\n return [...Array.from({ length }).keys()].map(x => x + start)\n}\n\n/** @public */\nexport const WalletAccountSelect: React.FC<WalletAccountSelectProps> = ({\n addressNames,\n iconOnly,\n iconSize = 24,\n icons,\n maxAccounts = 1,\n showFavorite = false,\n size,\n variant = 'outlined',\n ...props\n}) => {\n const {\n activeAccountIndex, setActiveAccountIndex, rootWallet,\n } = useWalletContext()\n const disabled = !rootWallet || activeAccountIndex === undefined\n\n return (\n <>\n {rootWallet\n ? (\n <SelectEx\n margin=\"dense\"\n disabled={disabled}\n renderValue={(selectedAccountIndex) => {\n return (\n <RenderedAccountMenuItem\n addressNames={addressNames}\n iconOnly={iconOnly}\n iconSize={iconSize}\n icons={icons}\n rootWallet={rootWallet}\n selectedAccountIndex={selectedAccountIndex}\n showFavorite={showFavorite}\n />\n )\n }}\n value={activeAccountIndex === undefined ? '' : activeAccountIndex}\n onChange={event => setActiveAccountIndex?.(Number.parseInt(`${event.target.value}`))}\n size={size}\n variant={variant}\n {...props}\n >\n {rootWallet && arrayRange(maxAccounts).map(index => (\n <RenderedAccountMenuItem\n key={index}\n addressNames={addressNames}\n iconOnly={iconOnly}\n iconSize={iconSize}\n icons={icons}\n rootWallet={rootWallet}\n selectedAccountIndex={index}\n showFavorite={showFavorite}\n />\n ))}\n </SelectEx>\n )\n : <CircularProgress size={24} />}\n </>\n )\n}\n","import { MenuItem, type MenuItemProps } from '@mui/material'\nimport { AddressRenderRowBox } from '@xyo-network/react-address-render'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport React from 'react'\n\nimport { useWallet } from '../../hooks/index.ts'\n\n/** @public */\nexport interface RenderedAccountMenuItemProps extends MenuItemProps {\n addressNames?: Record<string, string | undefined>\n iconOnly?: boolean\n iconSize?: number\n icons?: boolean\n rootWallet: WalletInstance\n selectedAccountIndex?: number\n showFavorite?: boolean\n}\n\n/** @public */\nexport const RenderedAccountMenuItem: React.FC<RenderedAccountMenuItemProps> = ({\n selectedAccountIndex,\n rootWallet,\n addressNames,\n iconOnly,\n iconSize,\n icons,\n showFavorite,\n}) => {\n const [selectedAccount] = useWallet({ path: selectedAccountIndex?.toString(), wallet: rootWallet })\n const customName = selectedAccount ? addressNames?.[selectedAccount.address] : undefined\n const favorite = !!selectedAccount && selectedAccount.address in (addressNames ?? {})\n return (\n <MenuItem\n value={selectedAccountIndex}\n sx={{\n minHeight: 0, paddingBottom: 0, paddingTop: 0,\n }}\n >\n <AddressRenderRowBox\n disableSharedRef={true}\n address={selectedAccount?.address}\n iconOnly={iconOnly}\n iconSize={iconSize}\n icons={icons}\n name={customName}\n favorite={favorite}\n showFavorite={showFavorite}\n sx={{ flexGrow: 1 }}\n />\n </MenuItem>\n )\n}\n","import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport { WalletAccountSelect } from './Select.tsx'\n\n/** @public */\nexport interface WalletAccountSelectBarProps extends FlexBoxProps {\n addressNames?: Record<string, string | undefined>\n iconOnly?: boolean\n iconSize?: number\n icons?: boolean\n maxAccounts?: number\n showFavorite?: boolean\n size?: 'small' | 'medium'\n}\n\n/** @public */\nexport const WalletAccountSelectBar: React.FC<WalletAccountSelectBarProps> = ({\n addressNames,\n iconOnly,\n iconSize,\n icons,\n maxAccounts = 1,\n showFavorite = false,\n size = 'small',\n ...props\n}) => {\n return (\n <FlexCol\n {...props}\n sx={[{ alignItems: 'stretch' }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n >\n <WalletAccountSelect\n addressNames={addressNames}\n fullWidth\n showFavorite={showFavorite}\n iconSize={iconSize}\n iconOnly={iconOnly}\n icons={icons}\n maxAccounts={maxAccounts}\n size={size ?? 'small'}\n variant=\"outlined\"\n />\n </FlexCol>\n )\n}\n"],"mappings":"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","names":["jsx","jsxs","desiredMaximumAccounts","Typography","useState","jsx","jsxs","Alert","AlertTitle","Snackbar","useState","Fragment","jsx","jsxs","Button","DialogActions","generateMnemonic","wordlist","useState","jsx","wordlist","useState","generateMnemonic","createContextEx","useResetState","useMemo","jsx","useResetState","useMemo","usePromise","useContextEx","useContextEx","usePromise","jsx","jsxs","DialogActions","Button","Link","Typography","jsx","jsxs","useMemo","jsx","jsxs","jsx","jsxs","Button","DialogActions","jsx","jsxs","DialogActions","Button","FormControl","IconButton","TextField","FlexRow","useState","jsx","jsxs","useState","FormControl","FlexRow","IconButton","TextField","Alert","Button","FlexRow","jsx","jsxs","Alert","FlexRow","Button","Dialog","DialogContent","DialogTitle","FormLabel","jsx","jsxs","Dialog","DialogTitle","DialogContent","FormLabel","Button","ButtonGroup","TableCell","TableRow","useState","jsx","jsxs","useState","TableRow","TableCell","ButtonGroup","Button","FlexRow","usePromise","useState","useState","usePromise","error","usePromise","useState","useState","usePromise","usePromise","usePromise","usePromise","HDWallet","jsx","jsxs","FlexRow","jsx","Fragment","jsx","FlexCol","jsx","FlexCol"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/react-wallet",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Common React library for all XYO projects that use React",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xyo",
|
|
@@ -41,13 +41,13 @@
|
|
|
41
41
|
"README.md"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@xyo-network/react-
|
|
45
|
-
"@xyo-network/react-
|
|
44
|
+
"@xyo-network/react-network": "~8.0.0",
|
|
45
|
+
"@xyo-network/react-address-render": "~8.0.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@bitauth/libauth": "~3.0.0",
|
|
49
|
-
"@mui/icons-material": "
|
|
50
|
-
"@mui/material": "
|
|
49
|
+
"@mui/icons-material": "~9.0",
|
|
50
|
+
"@mui/material": "~9.0",
|
|
51
51
|
"@opentelemetry/api": "^1.9.1",
|
|
52
52
|
"@opentelemetry/sdk-trace-base": "^2.7.1",
|
|
53
53
|
"@react-spring/web": "~10.0.3",
|
|
@@ -56,24 +56,24 @@
|
|
|
56
56
|
"@storybook/react-vite": "~10.3.6",
|
|
57
57
|
"@types/react": "^19.2.14",
|
|
58
58
|
"@xylabs/pixel": "~5.1.2",
|
|
59
|
-
"@xylabs/react-button": "~
|
|
60
|
-
"@xylabs/react-crypto": "~
|
|
61
|
-
"@xylabs/react-flexbox": "~
|
|
62
|
-
"@xylabs/react-hooks": "~
|
|
63
|
-
"@xylabs/react-identicon": "~
|
|
64
|
-
"@xylabs/react-link": "~
|
|
65
|
-
"@xylabs/react-number-status": "~
|
|
66
|
-
"@xylabs/react-promise": "~
|
|
67
|
-
"@xylabs/react-quick-tip-button": "~
|
|
68
|
-
"@xylabs/react-select": "~
|
|
69
|
-
"@xylabs/react-shared": "~
|
|
70
|
-
"@xylabs/react-theme": "~
|
|
59
|
+
"@xylabs/react-button": "~8.0",
|
|
60
|
+
"@xylabs/react-crypto": "~8.0",
|
|
61
|
+
"@xylabs/react-flexbox": "~8.0",
|
|
62
|
+
"@xylabs/react-hooks": "~8.0",
|
|
63
|
+
"@xylabs/react-identicon": "~8.0",
|
|
64
|
+
"@xylabs/react-link": "~8.0",
|
|
65
|
+
"@xylabs/react-number-status": "~8.0",
|
|
66
|
+
"@xylabs/react-promise": "~8.0",
|
|
67
|
+
"@xylabs/react-quick-tip-button": "~8.0.0",
|
|
68
|
+
"@xylabs/react-select": "~8.0",
|
|
69
|
+
"@xylabs/react-shared": "~8.0",
|
|
70
|
+
"@xylabs/react-theme": "~8.0",
|
|
71
71
|
"@xylabs/sdk-js": "^5.1.2",
|
|
72
72
|
"@xylabs/threads": "~5.1.2",
|
|
73
|
-
"@xylabs/toolchain": "~7.13.
|
|
74
|
-
"@xylabs/tsconfig": "^7.13.
|
|
75
|
-
"@xylabs/tsconfig-dom": "^7.13.
|
|
76
|
-
"@xylabs/tsconfig-react": "~7.13.
|
|
73
|
+
"@xylabs/toolchain": "~7.13.22",
|
|
74
|
+
"@xylabs/tsconfig": "^7.13.22",
|
|
75
|
+
"@xylabs/tsconfig-dom": "^7.13.22",
|
|
76
|
+
"@xylabs/tsconfig-react": "~7.13.22",
|
|
77
77
|
"@xyo-network/account-model": "^5.6.3",
|
|
78
78
|
"@xyo-network/boundwitness-model": "^5.6.3",
|
|
79
79
|
"@xyo-network/boundwitness-validator": "^5.6.2",
|
|
@@ -108,33 +108,33 @@
|
|
|
108
108
|
"spark-md5": "~3.0.2",
|
|
109
109
|
"storybook": "^10.3.6",
|
|
110
110
|
"typescript": "^5.9.3",
|
|
111
|
-
"viem": "~2.48.
|
|
112
|
-
"vite": "^8.0.
|
|
111
|
+
"viem": "~2.48.11",
|
|
112
|
+
"vite": "^8.0.11",
|
|
113
113
|
"wasm-feature-detect": "~1.8.0",
|
|
114
114
|
"zod": "^4.4.3",
|
|
115
|
-
"@xyo-network/react-storybook": "~
|
|
115
|
+
"@xyo-network/react-storybook": "~8.0.0"
|
|
116
116
|
},
|
|
117
117
|
"peerDependencies": {
|
|
118
118
|
"@bitauth/libauth": "~3.0",
|
|
119
|
-
"@mui/icons-material": "
|
|
120
|
-
"@mui/material": "
|
|
119
|
+
"@mui/icons-material": "~9.0",
|
|
120
|
+
"@mui/material": "~9.0",
|
|
121
121
|
"@opentelemetry/api": "^1.9",
|
|
122
122
|
"@opentelemetry/sdk-trace-base": "^2.7",
|
|
123
123
|
"@react-spring/web": "~10.0",
|
|
124
124
|
"@scure/base": "~2.2",
|
|
125
125
|
"@scure/bip39": "~2.2",
|
|
126
126
|
"@xylabs/pixel": "~5.1",
|
|
127
|
-
"@xylabs/react-button": "~
|
|
128
|
-
"@xylabs/react-crypto": "~
|
|
129
|
-
"@xylabs/react-flexbox": "~
|
|
130
|
-
"@xylabs/react-hooks": "~
|
|
131
|
-
"@xylabs/react-identicon": "~
|
|
132
|
-
"@xylabs/react-link": "~
|
|
133
|
-
"@xylabs/react-number-status": "~
|
|
134
|
-
"@xylabs/react-promise": "~
|
|
135
|
-
"@xylabs/react-select": "~
|
|
136
|
-
"@xylabs/react-shared": "~
|
|
137
|
-
"@xylabs/react-theme": "~
|
|
127
|
+
"@xylabs/react-button": "~8.0",
|
|
128
|
+
"@xylabs/react-crypto": "~8.0",
|
|
129
|
+
"@xylabs/react-flexbox": "~8.0",
|
|
130
|
+
"@xylabs/react-hooks": "~8.0",
|
|
131
|
+
"@xylabs/react-identicon": "~8.0",
|
|
132
|
+
"@xylabs/react-link": "~8.0",
|
|
133
|
+
"@xylabs/react-number-status": "~8.0",
|
|
134
|
+
"@xylabs/react-promise": "~8.0",
|
|
135
|
+
"@xylabs/react-select": "~8.0",
|
|
136
|
+
"@xylabs/react-shared": "~8.0",
|
|
137
|
+
"@xylabs/react-theme": "~8.0",
|
|
138
138
|
"@xylabs/sdk-js": "^5.1",
|
|
139
139
|
"@xylabs/threads": "~5.1",
|
|
140
140
|
"@xyo-network/account-model": "^5.6",
|
|
@@ -168,6 +168,7 @@
|
|
|
168
168
|
"react-router-dom": "^7.15",
|
|
169
169
|
"recharts": "~3.8",
|
|
170
170
|
"spark-md5": "~3.0",
|
|
171
|
+
"typescript": "^5.9",
|
|
171
172
|
"viem": "~2.48",
|
|
172
173
|
"wasm-feature-detect": "~1.8",
|
|
173
174
|
"zod": "^4.4"
|