@xyo-network/react-wallet 2.67.6 → 2.67.8
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/components/fields/validation-messages/PhraseHeaderBox.d.cts.map +1 -1
- package/dist/browser/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.d.mts.map +1 -1
- package/dist/browser/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.d.ts.map +1 -1
- package/dist/browser/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.d.cts.map +1 -1
- package/dist/browser/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.d.mts.map +1 -1
- package/dist/browser/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.d.ts.map +1 -1
- package/dist/browser/contexts/Wallet/use.d.cts.map +1 -1
- package/dist/browser/contexts/Wallet/use.d.mts.map +1 -1
- package/dist/browser/contexts/Wallet/use.d.ts.map +1 -1
- package/dist/browser/hooks/useWallet.d.cts.map +1 -1
- package/dist/browser/hooks/useWallet.d.mts.map +1 -1
- package/dist/browser/hooks/useWallet.d.ts.map +1 -1
- package/dist/browser/index.cjs +27 -26
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +27 -26
- package/dist/browser/index.js.map +1 -1
- package/dist/node/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.d.cts.map +1 -1
- package/dist/node/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.d.mts.map +1 -1
- package/dist/node/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.d.ts.map +1 -1
- package/dist/node/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.d.cts.map +1 -1
- package/dist/node/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.d.mts.map +1 -1
- package/dist/node/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.d.ts.map +1 -1
- package/dist/node/contexts/Wallet/use.d.cts.map +1 -1
- package/dist/node/contexts/Wallet/use.d.mts.map +1 -1
- package/dist/node/contexts/Wallet/use.d.ts.map +1 -1
- package/dist/node/hooks/useWallet.d.cts.map +1 -1
- package/dist/node/hooks/useWallet.d.mts.map +1 -1
- package/dist/node/hooks/useWallet.d.ts.map +1 -1
- package/dist/node/index.cjs +27 -26
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +27 -26
- package/dist/node/index.js.map +1 -1
- package/package.json +10 -10
- package/src/components/MaxAccounts/OutOfBoundsSnackBar.tsx +1 -1
- package/src/components/SeedPhrase/dialog/components/fields/NewPhraseTextField.tsx +1 -1
- package/src/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.tsx +1 -1
- package/src/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.tsx +12 -6
- package/src/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.ts +7 -4
- package/src/components/WalletAccountSelect/Select.tsx +2 -2
- package/src/contexts/Wallet/use.ts +1 -5
- package/src/hooks/useWallet.ts +1 -5
- package/src/hooks/useWrapperAccount.ts +1 -1
package/dist/node/index.cjs
CHANGED
|
@@ -74,7 +74,7 @@ var OutOfBoundsSnackBar = ({
|
|
|
74
74
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.Alert, { severity: "error", onClose: () => setShowSnackBar == null ? void 0 : setShowSnackBar(false), children: [
|
|
75
75
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.AlertTitle, { children: "Maximum Accounts Error" }),
|
|
76
76
|
"Your currently selected account number (",
|
|
77
|
-
activeAccountIndex
|
|
77
|
+
activeAccountIndex === void 0 ? "" : activeAccountIndex + 1,
|
|
78
78
|
") cannot be greater than the desired Maximum Accounts (",
|
|
79
79
|
desiredMaximumAccounts,
|
|
80
80
|
")."
|
|
@@ -392,11 +392,7 @@ var useIndexedWalletFromContext = (index, required = true) => {
|
|
|
392
392
|
var useSelectedWalletAccount = (required = true) => {
|
|
393
393
|
const { activeAccountIndex } = useWalletContext(required);
|
|
394
394
|
const [account] = useIndexedWalletFromContext(activeAccountIndex ?? 0, required);
|
|
395
|
-
|
|
396
|
-
return [null, void 0];
|
|
397
|
-
} else {
|
|
398
|
-
return [account, void 0];
|
|
399
|
-
}
|
|
395
|
+
return activeAccountIndex === void 0 && account === null ? [null, void 0] : [account, void 0];
|
|
400
396
|
};
|
|
401
397
|
|
|
402
398
|
// src/components/SeedPhrase/dialog/components/DialogActionButtons.tsx
|
|
@@ -420,12 +416,15 @@ var import_material7 = require("@mui/material");
|
|
|
420
416
|
// src/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.ts
|
|
421
417
|
var colorParser = (conditional) => {
|
|
422
418
|
switch (conditional) {
|
|
423
|
-
case true:
|
|
419
|
+
case true: {
|
|
424
420
|
return "success";
|
|
425
|
-
|
|
421
|
+
}
|
|
422
|
+
case false: {
|
|
426
423
|
return "error";
|
|
427
|
-
|
|
428
|
-
|
|
424
|
+
}
|
|
425
|
+
default: {
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
429
428
|
}
|
|
430
429
|
};
|
|
431
430
|
|
|
@@ -446,22 +445,28 @@ var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
|
446
445
|
var PhraseHeaderBox = ({ children, conditional, ...props }) => {
|
|
447
446
|
const state = (0, import_react6.useMemo)(() => {
|
|
448
447
|
switch (conditional) {
|
|
449
|
-
case true:
|
|
448
|
+
case true: {
|
|
450
449
|
return "success";
|
|
451
|
-
|
|
450
|
+
}
|
|
451
|
+
case false: {
|
|
452
452
|
return "error";
|
|
453
|
-
|
|
453
|
+
}
|
|
454
|
+
default: {
|
|
454
455
|
return null;
|
|
456
|
+
}
|
|
455
457
|
}
|
|
456
458
|
}, [conditional]);
|
|
457
459
|
const Icon = (0, import_react6.useMemo)(() => {
|
|
458
460
|
switch (state) {
|
|
459
|
-
case "success":
|
|
461
|
+
case "success": {
|
|
460
462
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_icons_material2.CheckCircleOutline, { fontSize: "small", color: "success" });
|
|
461
|
-
|
|
463
|
+
}
|
|
464
|
+
case "error": {
|
|
462
465
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_icons_material2.HighlightOff, { fontSize: "small", color: "error" });
|
|
463
|
-
|
|
466
|
+
}
|
|
467
|
+
default: {
|
|
464
468
|
return null;
|
|
469
|
+
}
|
|
465
470
|
}
|
|
466
471
|
}, [state]);
|
|
467
472
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react_flexbox.FlexRow, { justifyContent: "start", columnGap: 1, ...props, children: [
|
|
@@ -485,7 +490,7 @@ var NewPhraseTextField = (props) => {
|
|
|
485
490
|
error: validPhrase === false,
|
|
486
491
|
helperText: validPhrase === false ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(InvalidPhraseTypography, {}) : null,
|
|
487
492
|
fullWidth: true,
|
|
488
|
-
maxRows:
|
|
493
|
+
maxRows: Number.POSITIVE_INFINITY,
|
|
489
494
|
multiline: true,
|
|
490
495
|
onChange: (e) => setPhrase == null ? void 0 : setPhrase(e.target.value),
|
|
491
496
|
value: phrase,
|
|
@@ -519,7 +524,7 @@ var SavedPhraseTextField = (props) => {
|
|
|
519
524
|
error: validSeedPhrase === false,
|
|
520
525
|
helperText: validSeedPhrase === false ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(InvalidPhraseTypography, {}) : null,
|
|
521
526
|
fullWidth: true,
|
|
522
|
-
maxRows:
|
|
527
|
+
maxRows: Number.POSITIVE_INFINITY,
|
|
523
528
|
multiline: true,
|
|
524
529
|
...props
|
|
525
530
|
}
|
|
@@ -670,11 +675,7 @@ var useWallet = ({ mnemonic, wallet, path, required = false, seed } = {}) => {
|
|
|
670
675
|
}
|
|
671
676
|
return contextAccount;
|
|
672
677
|
})();
|
|
673
|
-
|
|
674
|
-
return (_a = newAccount == null ? void 0 : newAccount.derivePath) == null ? void 0 : _a.call(newAccount, path);
|
|
675
|
-
} else {
|
|
676
|
-
return newAccount ?? wallet;
|
|
677
|
-
}
|
|
678
|
+
return path ? (_a = newAccount == null ? void 0 : newAccount.derivePath) == null ? void 0 : _a.call(newAccount, path) : newAccount ?? wallet;
|
|
678
679
|
} catch (ex) {
|
|
679
680
|
setError(ex);
|
|
680
681
|
}
|
|
@@ -698,7 +699,7 @@ var useWallets = ({ wallet, paths }) => {
|
|
|
698
699
|
var import_react_promise6 = require("@xylabs/react-promise");
|
|
699
700
|
var import_account2 = require("@xyo-network/account");
|
|
700
701
|
var import_async_mutex = require("async-mutex");
|
|
701
|
-
var globalWrapperWallet
|
|
702
|
+
var globalWrapperWallet;
|
|
702
703
|
var globalWrapperWalletMutex = new import_async_mutex.Mutex();
|
|
703
704
|
var useWrapperAccount = (account) => {
|
|
704
705
|
return (0, import_react_promise6.usePromise)(async () => {
|
|
@@ -744,7 +745,7 @@ var import_react_select = require("@xylabs/react-select");
|
|
|
744
745
|
var import_react_address_render = require("@xyo-network/react-address-render");
|
|
745
746
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
746
747
|
var arrayRange = (length, start = 0) => {
|
|
747
|
-
return Array
|
|
748
|
+
return [...Array(length).keys()].map((x) => x + start);
|
|
748
749
|
};
|
|
749
750
|
var WalletAccountSelect = ({
|
|
750
751
|
addressNames = {},
|
|
@@ -786,7 +787,7 @@ var WalletAccountSelect = ({
|
|
|
786
787
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Item, {});
|
|
787
788
|
},
|
|
788
789
|
value: activeAccountIndex,
|
|
789
|
-
onChange: (event) => setActiveAccountIndex == null ? void 0 : setActiveAccountIndex(parseInt(`${event.target.value}`)),
|
|
790
|
+
onChange: (event) => setActiveAccountIndex == null ? void 0 : setActiveAccountIndex(Number.parseInt(`${event.target.value}`)),
|
|
790
791
|
size,
|
|
791
792
|
variant: "outlined",
|
|
792
793
|
...props,
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../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/SeedPhraseDialog.tsx","../../src/contexts/SeedPhrase/Context.ts","../../src/contexts/SeedPhrase/Provider.tsx","../../src/contexts/SeedPhrase/use.tsx","../../src/contexts/Wallet/Context.ts","../../src/contexts/Wallet/lib/WalletPath.ts","../../src/contexts/Wallet/Provider.tsx","../../src/contexts/Wallet/use.ts","../../src/components/SeedPhrase/dialog/components/DialogActionButtons.tsx","../../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/SavedPhraseTextField.tsx","../../src/components/SeedPhrase/dialog/components/OverwriteWarning.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/SelectBar.tsx"],"sourcesContent":["export * from './components'\nexport * from './contexts'\nexport * from './hooks'\n","import { ButtonGroup, TableCell, TableRow, TableRowProps, Typography } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { useState } from 'react'\n\nimport { OutOfBoundsSnackBar } from './OutOfBoundsSnackBar'\n\nexport interface MaxAccountsTableRow extends TableRowProps {\n activeAccountIndex?: number\n changeMaxAccounts?: (maxAccounts: number) => void\n maxAccounts?: number\n}\n\nexport const MaxAccountsTableRow: React.FC<MaxAccountsTableRow> = ({ activeAccountIndex, changeMaxAccounts, maxAccounts }) => {\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 { Alert, AlertTitle, Snackbar, SnackbarProps } from '@mui/material'\nimport { Dispatch, SetStateAction } from 'react'\n\nexport interface OutOfBoundsSnackBarProps extends SnackbarProps {\n activeAccountIndex?: number\n desiredMaximumAccounts?: number\n setShowSnackBar?: Dispatch<SetStateAction<boolean>>\n showSnackBar?: boolean\n}\n\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 ({activeAccountIndex !== undefined ? activeAccountIndex + 1 : ''}) cannot be greater than the desired\n Maximum Accounts ({desiredMaximumAccounts}).\n </Alert>\n </Snackbar>\n )\n}\n","import { HelpOutline as HelpOutlineIcon } from '@mui/icons-material'\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n IconButtonProps,\n Link,\n List,\n ListItem,\n Typography,\n} from '@mui/material'\nimport { useState } from 'react'\n\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 <Link target={'_blank'} href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">\n bip39 specification\n </Link>{' '}\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 { Alert, AlertTitle, Snackbar } from '@mui/material'\nimport { generateMnemonic } from '@scure/bip39'\n// eslint-disable-next-line import/no-internal-modules\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useEffect, useState } from 'react'\n\nexport interface DefaultSeedPhraseProps extends WithChildren {\n changeSeedPhrase?: (seedPhrase: string) => void\n hideDefaultSeedPhraseMessage?: boolean\n seedPhrase?: string\n}\n\nexport const DefaultSeedPhrase: React.FC<DefaultSeedPhraseProps> = ({ changeSeedPhrase, children, hideDefaultSeedPhraseMessage, seedPhrase }) => {\n const [showSnackBar, setShowSnackBar] = useState(false)\n\n useEffect(() => {\n if (!seedPhrase) {\n const mnemonic = generateMnemonic(wordlist, 256)\n changeSeedPhrase?.(mnemonic)\n setShowSnackBar(true)\n }\n }, [changeSeedPhrase, seedPhrase])\n\n return (\n <>\n {hideDefaultSeedPhraseMessage ? null : (\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 { Dialog, DialogContent, DialogProps, DialogTitle } from '@mui/material'\n\nimport { SeedPhraseProvider, useSeedPhrase } from '../../../contexts'\nimport { SeedPhraseIconButton } from '../_shared'\nimport { DialogActionButtons, NewPhraseTextField, OverwriteWarning, SavedPhraseTextField } from './components'\n\nexport interface SeedPhraseDialogProps extends DialogProps {\n changeSeedPhrase?: (value: string) => void\n seedPhrase?: string\n}\n\nexport const SeedPhraseDialog: React.FC<SeedPhraseDialogProps> = ({ changeSeedPhrase, seedPhrase, ...props }) => {\n return (\n <SeedPhraseProvider\n seedPhrase={seedPhrase}\n handleChangeSeedPhrase={changeSeedPhrase}\n open={props.open}\n saveCallback={() => props.onClose?.({}, 'escapeKeyDown')}\n >\n <SeedPhraseDialogInner {...props} />\n </SeedPhraseProvider>\n )\n}\n\nexport const SeedPhraseDialogInner: React.FC<SeedPhraseDialogProps> = (props) => {\n const { overwriteWarning, seedPhrase } = useSeedPhrase()\n\n return (\n <Dialog aria-labelledby=\"alert-dialog-title\" aria-describedby=\"alert-dialog-description\" fullWidth maxWidth={'sm'} {...props}>\n <DialogTitle id=\"alert-dialog-title\">\n Update Your Seed Phrase <SeedPhraseIconButton />\n </DialogTitle>\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', rowGap: 2 }}>\n <NewPhraseTextField />\n {seedPhrase ? <SavedPhraseTextField /> : null}\n {overwriteWarning ? <OverwriteWarning /> : null}\n </DialogContent>\n <DialogActionButtons onClose={props.onClose} />\n </Dialog>\n )\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { SeedPhraseContextState } from './State'\n\nexport const SeedPhraseContext = createContextEx<SeedPhraseContextState>()\n","import { generateMnemonic, validateMnemonic } from '@scure/bip39'\n// eslint-disable-next-line import/no-internal-modules\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useEffect, useMemo, useState } from 'react'\n\nimport { SeedPhraseContext } from './Context'\n\nexport interface SeedPhraseProviderProps extends WithChildren {\n defaultPhrase?: string\n handleChangeSeedPhrase?: (phrase: string) => void\n open?: boolean\n saveCallback?: () => void\n seedPhrase?: string\n}\n\nexport const SeedPhraseProvider: React.FC<SeedPhraseProviderProps> = ({\n children,\n defaultPhrase,\n handleChangeSeedPhrase,\n saveCallback,\n seedPhrase,\n open,\n}) => {\n const [phrase, setPhrase] = useState<string | undefined>()\n const [overwriteWarning, setOverwriteWarning] = useState(false)\n\n useEffect(() => {\n setPhrase(defaultPhrase)\n }, [defaultPhrase])\n\n useEffect(() => {\n if (!open) {\n handleCancelOverwrite()\n }\n }, [open])\n\n useEffect(() => {\n if (seedPhrase || open) {\n setPhrase?.(seedPhrase ?? '')\n }\n }, [seedPhrase, open, setPhrase])\n\n const handleGenerate = () => {\n const mnemonic = generateMnemonic(wordlist, 256)\n setPhrase?.(mnemonic)\n setOverwriteWarning?.(false)\n }\n\n const handleCancelOverwrite = () => {\n setOverwriteWarning?.(false)\n }\n\n const handleClear = () => {\n setPhrase?.('')\n setOverwriteWarning?.(false)\n }\n\n const handleSave = () => {\n if (!overwriteWarning && seedPhrase && seedPhrase !== phrase) {\n setOverwriteWarning?.(true)\n } else {\n handleChangeSeedPhrase?.(phrase ?? '')\n saveCallback?.()\n }\n }\n\n const validate = (passedPhrase?: string) => {\n if (!passedPhrase) {\n return null\n }\n return validateMnemonic(passedPhrase, wordlist)\n }\n\n const validSeedPhrase = useMemo(() => validate?.(seedPhrase), [seedPhrase])\n const validPhrase = useMemo(() => validate?.(phrase), [phrase])\n\n return (\n <SeedPhraseContext.Provider\n value={{\n handleCancelOverwrite,\n handleChangeSeedPhrase,\n handleClear,\n handleGenerate,\n handleSave,\n overwriteWarning,\n phrase,\n provided: true,\n seedPhrase,\n setOverwriteWarning,\n setPhrase,\n validPhrase,\n validSeedPhrase,\n validate,\n }}\n >\n {children}\n </SeedPhraseContext.Provider>\n )\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { SeedPhraseContext } from './Context'\n\nexport const useSeedPhrase = () => useContextEx(SeedPhraseContext, 'SeedPhrase', true)\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { WalletContextState } from './State'\n\nexport const WalletContext = createContextEx<WalletContextState>()\n","export const Bip44 = {\n base: 'm',\n coin_type: {\n /* https://github.com/satoshilabs/slips/blob/master/slip-0044.md */\n bitcoin: \"0'\",\n bitcoinTestnet: \"1'\",\n ether: \"60'\",\n etherClassic: \"61'\",\n },\n purpose: \"44'\",\n}\n\nexport const WalletRootPath = `${Bip44.base}/${Bip44.purpose}/${Bip44.coin_type.ether}`\n\nexport const ethereumAccountPath = (index: number, hardened = true) => {\n return `${WalletRootPath}/${index}${hardened ? \"'\" : ''}/0`\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useEffect, useState } from 'react'\n\nimport { WalletContext } from './Context'\nimport { WalletRootPath } from './lib'\n\nexport interface WalletProviderProps {\n basePath?: string\n defaultActiveAccountIndex?: number\n rootWallet?: WalletInstance | null\n}\n\nexport const WalletProvider: React.FC<WithChildren<WalletProviderProps>> = ({\n basePath = WalletRootPath,\n children,\n defaultActiveAccountIndex = 0,\n rootWallet = null,\n ...props\n}) => {\n const [activeAccountIndex, setActiveAccountIndex] = useState(defaultActiveAccountIndex)\n\n useEffect(() => {\n if (defaultActiveAccountIndex !== undefined) {\n setActiveAccountIndex(defaultActiveAccountIndex)\n }\n }, [defaultActiveAccountIndex])\n\n const [coinTypeWallet = null] = usePromise(async () => {\n // ensure the wallet has the proper base\n if (rootWallet) {\n if (rootWallet?.path !== basePath) {\n try {\n const result = await rootWallet?.derivePath(basePath)\n return result\n } catch (e) {\n console.error('Error setting proper wallet base path', e)\n }\n }\n } else {\n return rootWallet\n }\n }, [basePath, rootWallet])\n\n console.log(`coinTypeWallet: ${coinTypeWallet}`)\n\n const [activeAccount = null] = usePromise(\n async () => await coinTypeWallet?.derivePath(activeAccountIndex.toString()),\n [coinTypeWallet, activeAccountIndex],\n )\n\n return (\n <WalletContext.Provider\n value={{\n activeAccount,\n activeAccountIndex,\n basePath,\n coinTypeWallet,\n provided: true,\n rootWallet,\n setActiveAccountIndex,\n }}\n {...props}\n >\n {children}\n </WalletContext.Provider>\n )\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { useContextEx, useProvided } from '@xyo-network/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { WalletContext } from './Context'\n\nexport const useWalletContext = (required = true) => {\n return useContextEx(WalletContext, 'Wallet', required)\n}\n\nexport const useWalletProvided = () => {\n return useProvided(WalletContext)\n}\n\nexport const useCoinTypeWallet = (required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const { coinTypeWallet } = useWalletContext(required)\n return [coinTypeWallet, undefined]\n}\n\nexport const useRootWallet = (required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const { rootWallet } = useWalletContext(required)\n return [rootWallet, undefined]\n}\n\nexport const useIndexedWalletFromContext = (index: number, required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const [coinTypeWallet] = useCoinTypeWallet(required)\n const [wallet] = usePromise(async () => (await coinTypeWallet?.derivePath(index.toString())) ?? coinTypeWallet, [coinTypeWallet, index])\n return [wallet, undefined]\n}\n\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 if (activeAccountIndex === undefined && account === null) {\n return [null, undefined]\n } else {\n return [account, undefined]\n }\n}\n","import { Button, DialogActions, DialogActionsProps, DialogProps } from '@mui/material'\nimport { MouseEvent } from 'react'\n\nimport { useSeedPhrase } from '../../../../contexts'\n\ninterface DialogActionButtonsProps extends DialogActionsProps {\n onClose?: DialogProps['onClose']\n}\n\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 variant=\"outlined\" onClick={handleSave}>\n Save\n </Button>\n </DialogActions>\n )\n}\n","import { Button, DialogActions, FormControl, FormLabel, StandardTextFieldProps, TextField } from '@mui/material'\n\nimport { useSeedPhrase } from '../../../../../contexts'\nimport { colorParser, InvalidPhraseTypography, PhraseHeaderBox } from './validation-messages'\n\nexport const NewPhraseTextField: React.FC<StandardTextFieldProps> = (props) => {\n const { handleClear, handleGenerate, overwriteWarning, phrase, setPhrase, validPhrase } = useSeedPhrase()\n return (\n <>\n <FormControl fullWidth size=\"small\" sx={{ display: 'flex', flexDirection: 'column', rowGap: 1 }}>\n <FormLabel>\n <PhraseHeaderBox conditional={validPhrase}>New Seed Phrase</PhraseHeaderBox>\n </FormLabel>\n <TextField\n focused\n color={colorParser(validPhrase)}\n error={validPhrase === false}\n helperText={validPhrase === false ? <InvalidPhraseTypography /> : null}\n fullWidth\n maxRows={Infinity}\n multiline\n onChange={(e) => setPhrase?.(e.target.value)}\n value={phrase}\n {...props}\n />\n </FormControl>\n <DialogActions sx={{ justifyContent: 'center' }}>\n <Button disabled={overwriteWarning} variant=\"outlined\" onClick={handleGenerate}>\n Generate\n </Button>\n <Button variant=\"outlined\" onClick={handleClear}>\n Clear\n </Button>\n </DialogActions>\n </>\n )\n}\n","export const colorParser = (conditional?: boolean | null) => {\n switch (conditional) {\n case true:\n return 'success'\n case false:\n return 'error'\n default:\n return undefined\n }\n}\n","import { Link, Typography, TypographyProps } from '@mui/material'\n\nexport const InvalidPhraseTypography: React.FC<TypographyProps> = (props) => (\n <Typography variant={'caption'} color={'error'} {...props}>\n Invalid seed phrase. See -{' '}\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 { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useMemo } from 'react'\n\ninterface PhraseHeaderBox extends FlexBoxProps, WithChildren {\n conditional?: boolean | null\n}\n\nexport const PhraseHeaderBox: React.FC<PhraseHeaderBox> = ({ children, conditional, ...props }) => {\n const state = useMemo(() => {\n switch (conditional) {\n case true:\n return 'success'\n case false:\n return 'error'\n default:\n return null\n }\n }, [conditional])\n\n const Icon = useMemo(() => {\n switch (state) {\n case 'success':\n return <CheckCircleOutlineIcon fontSize=\"small\" color=\"success\" />\n case 'error':\n return <HighlightOffIcon fontSize=\"small\" color=\"error\" />\n default:\n return null\n }\n }, [state])\n\n return (\n <FlexRow justifyContent={'start'} columnGap={1} {...props}>\n {Icon}\n {children}\n </FlexRow>\n )\n}\n","import { Chip, FormControl, FormLabel, StandardTextFieldProps, TextField } from '@mui/material'\nimport { useState } from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts'\nimport { InvalidPhraseTypography, PhraseHeaderBox } from './validation-messages'\n\nexport const SavedPhraseTextField: React.FC<StandardTextFieldProps> = (props) => {\n const { validSeedPhrase, seedPhrase } = useSeedPhrase()\n\n const [visible, setVisible] = useState(false)\n\n return (\n <FormControl fullWidth size=\"small\" sx={{ display: 'flex', flexDirection: 'column', rowGap: 1 }}>\n <Chip label={visible ? 'Hide Saved Seed Phrase' : 'Reveal Saved Seed Phrase'} onClick={() => setVisible(!visible)} />\n {visible ? (\n <>\n <FormLabel>\n <PhraseHeaderBox conditional={validSeedPhrase}>Saved Seed Phrase</PhraseHeaderBox>\n </FormLabel>\n <TextField\n defaultValue={seedPhrase}\n disabled\n error={validSeedPhrase === false}\n helperText={validSeedPhrase === false ? <InvalidPhraseTypography /> : null}\n fullWidth\n maxRows={Infinity}\n multiline\n {...props}\n />\n </>\n ) : null}\n </FormControl>\n )\n}\n","import { Alert, Button } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\n\nimport { useSeedPhrase } from '../../../../contexts'\n\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 { Cancel as CancelIcon, RadioButtonChecked as RadioButtonCheckedIcon } from '@mui/icons-material'\nimport { Button, ButtonGroup, TableCell, TableRow, TableRowProps } from '@mui/material'\nimport { useState } from 'react'\n\nimport { SeedPhraseIconButton } from '../_shared'\nimport { SeedPhraseDialog } from '../dialog'\n\nexport interface SeedPhraseTableRowProps extends TableRowProps {\n changeSeedPhrase?: (seedPhrase: string) => void\n seedPhrase?: string\n}\n\nexport const SeedPhraseTableRow: React.FC<SeedPhraseTableRowProps> = ({ changeSeedPhrase, seedPhrase, ...props }) => {\n const [open, setOpen] = useState(false)\n\n const handleOpen = () => {\n setOpen(true)\n }\n return (\n <TableRow {...props}>\n <TableCell>\n Seed Phrase <SeedPhraseIconButton />\n </TableCell>\n <TableCell align=\"center\">{seedPhrase ? <RadioButtonCheckedIcon color=\"success\" /> : <CancelIcon color=\"error\" />}</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 { EthAddress } from '@xylabs/eth-address'\nimport { EthAccountButton } from '@xylabs/react-crypto'\nimport { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { NumberStatus } from '@xylabs/react-number-status'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { useAccount } from '../../hooks'\n\nexport interface WalletAccountDetailsProps extends FlexBoxProps {\n account?: WalletInstance\n exploreUrl?: string\n}\n\nexport const WalletAccountDetails: React.FC<WalletAccountDetailsProps> = ({ exploreUrl = 'https://explore.xyo.network', account, ...props }) => {\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={EthAddress.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 { AccountInstance } from '@xyo-network/account-model'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useState } from 'react'\n\nimport { useCoinTypeWallet, useWalletContext, useWalletProvided } from '../contexts'\n\nexport interface AccountHookParams {\n account?: AccountInstance\n index?: number\n required?: boolean\n wallet?: WalletInstance\n}\n\nexport const useAccount = ({ wallet, account, index, required = false }: 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(Error('useAccount can not have both a wallet and an account in the parameters'))\n }\n\n if (index && account && !validationError) {\n setValidationError(Error('useAccount can not have both a index and an account in the parameters'))\n }\n\n const [error, setError] = useState<Error>()\n const [coinTypeWallet] = useCoinTypeWallet(!wallet && required)\n const { activeAccountIndex } = useWalletContext(false)\n const [activeAccount] = usePromise(async () => {\n try {\n if (!validationError) {\n if (wallet) {\n return await wallet?.derivePath?.(`${index ?? 0}'\\0`)\n } else if (coinTypeWallet) {\n return await coinTypeWallet?.derivePath?.(`${index ?? activeAccountIndex ?? 0}'\\0`)\n }\n }\n } catch (ex) {\n const error = ex as Error\n console.error(error.message)\n setError(error)\n }\n }, [index, wallet, coinTypeWallet, activeAccountIndex, validationError])\n if (validationError && !error) {\n console.error(validationError.message)\n setError(validationError)\n }\n\n return [error ? undefined : account ?? activeAccount ?? walletContextProvided ? null : undefined, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { HDWallet } from '@xyo-network/account'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useState } from 'react'\n\nimport { useSelectedWalletAccount, useWalletProvided } from '../contexts'\n\nexport interface WalletHookParams {\n mnemonic?: string\n path?: string\n required?: boolean\n seed?: Uint8Array | string\n wallet?: WalletInstance | null\n}\n\nexport const useWallet = ({ mnemonic, wallet, path, required = false, seed }: WalletHookParams = {}): [\n WalletInstance | null | undefined,\n Error | undefined,\n] => {\n const walletContextProvided = useWalletProvided()\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 if (path) {\n return newAccount?.derivePath?.(path)\n } else {\n return newAccount ?? wallet\n }\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 { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { useWalletProvided } from '../contexts'\nimport { useWallet } from './useWallet'\n\nexport interface WalletsHookParams {\n paths: string[]\n wallet?: WalletInstance | null\n}\n\nexport const useWallets = ({ wallet, paths }: WalletsHookParams): [WalletInstance[] | null | undefined, Error | undefined] => {\n const walletContextProvided = useWalletProvided()\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 { State as PromiseState, usePromise } from '@xylabs/react-promise'\nimport { HDWallet } from '@xyo-network/account'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { Mutex } from 'async-mutex'\n\nlet globalWrapperWallet: WalletInstance | undefined = undefined\nconst globalWrapperWalletMutex = new Mutex()\n\nexport const useWrapperAccount = (\n account?: AccountInstance | null,\n): [AccountInstance | null | undefined, Error | undefined, PromiseState | 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 { CircularProgress, MenuItem, SelectProps } from '@mui/material'\nimport { SelectEx } from '@xylabs/react-select'\nimport { AddressRenderRowBox, AddressRenderRowBoxProps } from '@xyo-network/react-address-render'\n\nimport { useWalletContext } from '../../contexts'\nimport { useWallet } from '../../hooks'\n\ntype SharedAddressRenderRowBoxProps = Pick<AddressRenderRowBoxProps, 'iconOnly' | 'iconSize' | 'icons' | 'showFavorite'>\n\nexport interface WalletAccountSelectProps extends SharedAddressRenderRowBoxProps, SelectProps<number> {\n addressNames?: Record<string, string | undefined>\n maxAccounts?: number\n}\n\nconst arrayRange = (length: number, start = 0) => {\n return Array.from(Array(length).keys()).map((x) => x + start)\n}\n\nexport const WalletAccountSelect: React.FC<WalletAccountSelectProps> = ({\n addressNames = {},\n iconOnly,\n iconSize = 24,\n icons,\n maxAccounts = 1,\n showFavorite = false,\n size,\n ...props\n}) => {\n const { activeAccountIndex = 0, setActiveAccountIndex, coinTypeWallet } = useWalletContext()\n const disabled = !coinTypeWallet || activeAccountIndex === undefined\n\n return (\n <>\n {coinTypeWallet ? (\n <SelectEx\n margin=\"dense\"\n disabled={disabled}\n renderValue={(selectedAccountIndex) => {\n const Item: React.FC = () => {\n const [selectedAccount] = useWallet({ path: selectedAccountIndex.toString(), wallet: coinTypeWallet })\n const customName = selectedAccount ? addressNames[selectedAccount.address] : undefined\n const favorite = !!selectedAccount && selectedAccount.address in addressNames\n return (\n <MenuItem value={selectedAccountIndex} sx={{ minHeight: 0, paddingBottom: 0, paddingTop: 0 }}>\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 return <Item />\n }}\n value={activeAccountIndex}\n onChange={(event) => setActiveAccountIndex?.(parseInt(`${event.target.value}`))}\n size={size}\n variant=\"outlined\"\n {...props}\n >\n {arrayRange(maxAccounts).map((index) => {\n const Item: React.FC = () => {\n const [account] = useWallet({ path: index.toString(), wallet: coinTypeWallet })\n const customName = account ? addressNames[account.address] : undefined\n const favorite = !!account && account.address in addressNames\n return (\n <MenuItem key={account?.address} value={index} sx={{ minHeight: 0, paddingBottom: 0, paddingTop: 0 }}>\n <AddressRenderRowBox\n disableSharedRef={true}\n flexGrow={1}\n address={account?.address}\n favorite={favorite}\n iconOnly={iconOnly}\n iconSize={iconSize}\n icons={icons}\n name={customName}\n showFavorite={showFavorite}\n />\n </MenuItem>\n )\n }\n\n return <Item key={index} />\n })}\n </SelectEx>\n ) : (\n <CircularProgress size={24} />\n )}\n </>\n )\n}\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\n\nimport { WalletAccountSelect } from './Select'\n\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\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 />\n </FlexCol>\n )\n}\n"],"mappings":"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","names":["import_material","import_jsx_runtime","desiredMaximumAccounts","import_material","import_react","import_jsx_runtime","HelpOutlineIcon","import_material","import_react","import_jsx_runtime","import_material","import_bip39","import_english","import_react","import_jsx_runtime","import_react_shared","import_react_shared","import_react","import_jsx_runtime","import_react_promise","import_react_shared","import_material","import_jsx_runtime","import_material","import_material","import_jsx_runtime","import_icons_material","import_react","import_jsx_runtime","CheckCircleOutlineIcon","HighlightOffIcon","import_jsx_runtime","import_material","import_react","import_jsx_runtime","import_material","import_react_flexbox","import_jsx_runtime","import_jsx_runtime","import_icons_material","import_material","import_react","import_jsx_runtime","RadioButtonCheckedIcon","CancelIcon","import_react_flexbox","import_react_promise","import_react","error","import_react_promise","import_react","import_react_promise","import_react_promise","import_account","import_jsx_runtime","import_material","import_jsx_runtime","import_react_flexbox","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../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/SeedPhraseDialog.tsx","../../src/contexts/SeedPhrase/Context.ts","../../src/contexts/SeedPhrase/Provider.tsx","../../src/contexts/SeedPhrase/use.tsx","../../src/contexts/Wallet/Context.ts","../../src/contexts/Wallet/lib/WalletPath.ts","../../src/contexts/Wallet/Provider.tsx","../../src/contexts/Wallet/use.ts","../../src/components/SeedPhrase/dialog/components/DialogActionButtons.tsx","../../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/SavedPhraseTextField.tsx","../../src/components/SeedPhrase/dialog/components/OverwriteWarning.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/SelectBar.tsx"],"sourcesContent":["export * from './components'\nexport * from './contexts'\nexport * from './hooks'\n","import { ButtonGroup, TableCell, TableRow, TableRowProps, Typography } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { useState } from 'react'\n\nimport { OutOfBoundsSnackBar } from './OutOfBoundsSnackBar'\n\nexport interface MaxAccountsTableRow extends TableRowProps {\n activeAccountIndex?: number\n changeMaxAccounts?: (maxAccounts: number) => void\n maxAccounts?: number\n}\n\nexport const MaxAccountsTableRow: React.FC<MaxAccountsTableRow> = ({ activeAccountIndex, changeMaxAccounts, maxAccounts }) => {\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 { Alert, AlertTitle, Snackbar, SnackbarProps } from '@mui/material'\nimport { Dispatch, SetStateAction } from 'react'\n\nexport interface OutOfBoundsSnackBarProps extends SnackbarProps {\n activeAccountIndex?: number\n desiredMaximumAccounts?: number\n setShowSnackBar?: Dispatch<SetStateAction<boolean>>\n showSnackBar?: boolean\n}\n\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 ({activeAccountIndex === undefined ? '' : activeAccountIndex + 1}) cannot be greater than the desired\n Maximum Accounts ({desiredMaximumAccounts}).\n </Alert>\n </Snackbar>\n )\n}\n","import { HelpOutline as HelpOutlineIcon } from '@mui/icons-material'\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n IconButtonProps,\n Link,\n List,\n ListItem,\n Typography,\n} from '@mui/material'\nimport { useState } from 'react'\n\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 <Link target={'_blank'} href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">\n bip39 specification\n </Link>{' '}\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 { Alert, AlertTitle, Snackbar } from '@mui/material'\nimport { generateMnemonic } from '@scure/bip39'\n// eslint-disable-next-line import/no-internal-modules\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useEffect, useState } from 'react'\n\nexport interface DefaultSeedPhraseProps extends WithChildren {\n changeSeedPhrase?: (seedPhrase: string) => void\n hideDefaultSeedPhraseMessage?: boolean\n seedPhrase?: string\n}\n\nexport const DefaultSeedPhrase: React.FC<DefaultSeedPhraseProps> = ({ changeSeedPhrase, children, hideDefaultSeedPhraseMessage, seedPhrase }) => {\n const [showSnackBar, setShowSnackBar] = useState(false)\n\n useEffect(() => {\n if (!seedPhrase) {\n const mnemonic = generateMnemonic(wordlist, 256)\n changeSeedPhrase?.(mnemonic)\n setShowSnackBar(true)\n }\n }, [changeSeedPhrase, seedPhrase])\n\n return (\n <>\n {hideDefaultSeedPhraseMessage ? null : (\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 { Dialog, DialogContent, DialogProps, DialogTitle } from '@mui/material'\n\nimport { SeedPhraseProvider, useSeedPhrase } from '../../../contexts'\nimport { SeedPhraseIconButton } from '../_shared'\nimport { DialogActionButtons, NewPhraseTextField, OverwriteWarning, SavedPhraseTextField } from './components'\n\nexport interface SeedPhraseDialogProps extends DialogProps {\n changeSeedPhrase?: (value: string) => void\n seedPhrase?: string\n}\n\nexport const SeedPhraseDialog: React.FC<SeedPhraseDialogProps> = ({ changeSeedPhrase, seedPhrase, ...props }) => {\n return (\n <SeedPhraseProvider\n seedPhrase={seedPhrase}\n handleChangeSeedPhrase={changeSeedPhrase}\n open={props.open}\n saveCallback={() => props.onClose?.({}, 'escapeKeyDown')}\n >\n <SeedPhraseDialogInner {...props} />\n </SeedPhraseProvider>\n )\n}\n\nexport const SeedPhraseDialogInner: React.FC<SeedPhraseDialogProps> = (props) => {\n const { overwriteWarning, seedPhrase } = useSeedPhrase()\n\n return (\n <Dialog aria-labelledby=\"alert-dialog-title\" aria-describedby=\"alert-dialog-description\" fullWidth maxWidth={'sm'} {...props}>\n <DialogTitle id=\"alert-dialog-title\">\n Update Your Seed Phrase <SeedPhraseIconButton />\n </DialogTitle>\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', rowGap: 2 }}>\n <NewPhraseTextField />\n {seedPhrase ? <SavedPhraseTextField /> : null}\n {overwriteWarning ? <OverwriteWarning /> : null}\n </DialogContent>\n <DialogActionButtons onClose={props.onClose} />\n </Dialog>\n )\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { SeedPhraseContextState } from './State'\n\nexport const SeedPhraseContext = createContextEx<SeedPhraseContextState>()\n","import { generateMnemonic, validateMnemonic } from '@scure/bip39'\n// eslint-disable-next-line import/no-internal-modules\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useEffect, useMemo, useState } from 'react'\n\nimport { SeedPhraseContext } from './Context'\n\nexport interface SeedPhraseProviderProps extends WithChildren {\n defaultPhrase?: string\n handleChangeSeedPhrase?: (phrase: string) => void\n open?: boolean\n saveCallback?: () => void\n seedPhrase?: string\n}\n\nexport const SeedPhraseProvider: React.FC<SeedPhraseProviderProps> = ({\n children,\n defaultPhrase,\n handleChangeSeedPhrase,\n saveCallback,\n seedPhrase,\n open,\n}) => {\n const [phrase, setPhrase] = useState<string | undefined>()\n const [overwriteWarning, setOverwriteWarning] = useState(false)\n\n useEffect(() => {\n setPhrase(defaultPhrase)\n }, [defaultPhrase])\n\n useEffect(() => {\n if (!open) {\n handleCancelOverwrite()\n }\n }, [open])\n\n useEffect(() => {\n if (seedPhrase || open) {\n setPhrase?.(seedPhrase ?? '')\n }\n }, [seedPhrase, open, setPhrase])\n\n const handleGenerate = () => {\n const mnemonic = generateMnemonic(wordlist, 256)\n setPhrase?.(mnemonic)\n setOverwriteWarning?.(false)\n }\n\n const handleCancelOverwrite = () => {\n setOverwriteWarning?.(false)\n }\n\n const handleClear = () => {\n setPhrase?.('')\n setOverwriteWarning?.(false)\n }\n\n const handleSave = () => {\n if (!overwriteWarning && seedPhrase && seedPhrase !== phrase) {\n setOverwriteWarning?.(true)\n } else {\n handleChangeSeedPhrase?.(phrase ?? '')\n saveCallback?.()\n }\n }\n\n const validate = (passedPhrase?: string) => {\n if (!passedPhrase) {\n return null\n }\n return validateMnemonic(passedPhrase, wordlist)\n }\n\n const validSeedPhrase = useMemo(() => validate?.(seedPhrase), [seedPhrase])\n const validPhrase = useMemo(() => validate?.(phrase), [phrase])\n\n return (\n <SeedPhraseContext.Provider\n value={{\n handleCancelOverwrite,\n handleChangeSeedPhrase,\n handleClear,\n handleGenerate,\n handleSave,\n overwriteWarning,\n phrase,\n provided: true,\n seedPhrase,\n setOverwriteWarning,\n setPhrase,\n validPhrase,\n validSeedPhrase,\n validate,\n }}\n >\n {children}\n </SeedPhraseContext.Provider>\n )\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { SeedPhraseContext } from './Context'\n\nexport const useSeedPhrase = () => useContextEx(SeedPhraseContext, 'SeedPhrase', true)\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { WalletContextState } from './State'\n\nexport const WalletContext = createContextEx<WalletContextState>()\n","export const Bip44 = {\n base: 'm',\n coin_type: {\n /* https://github.com/satoshilabs/slips/blob/master/slip-0044.md */\n bitcoin: \"0'\",\n bitcoinTestnet: \"1'\",\n ether: \"60'\",\n etherClassic: \"61'\",\n },\n purpose: \"44'\",\n}\n\nexport const WalletRootPath = `${Bip44.base}/${Bip44.purpose}/${Bip44.coin_type.ether}`\n\nexport const ethereumAccountPath = (index: number, hardened = true) => {\n return `${WalletRootPath}/${index}${hardened ? \"'\" : ''}/0`\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useEffect, useState } from 'react'\n\nimport { WalletContext } from './Context'\nimport { WalletRootPath } from './lib'\n\nexport interface WalletProviderProps {\n basePath?: string\n defaultActiveAccountIndex?: number\n rootWallet?: WalletInstance | null\n}\n\nexport const WalletProvider: React.FC<WithChildren<WalletProviderProps>> = ({\n basePath = WalletRootPath,\n children,\n defaultActiveAccountIndex = 0,\n rootWallet = null,\n ...props\n}) => {\n const [activeAccountIndex, setActiveAccountIndex] = useState(defaultActiveAccountIndex)\n\n useEffect(() => {\n if (defaultActiveAccountIndex !== undefined) {\n setActiveAccountIndex(defaultActiveAccountIndex)\n }\n }, [defaultActiveAccountIndex])\n\n const [coinTypeWallet = null] = usePromise(async () => {\n // ensure the wallet has the proper base\n if (rootWallet) {\n if (rootWallet?.path !== basePath) {\n try {\n const result = await rootWallet?.derivePath(basePath)\n return result\n } catch (e) {\n console.error('Error setting proper wallet base path', e)\n }\n }\n } else {\n return rootWallet\n }\n }, [basePath, rootWallet])\n\n console.log(`coinTypeWallet: ${coinTypeWallet}`)\n\n const [activeAccount = null] = usePromise(\n async () => await coinTypeWallet?.derivePath(activeAccountIndex.toString()),\n [coinTypeWallet, activeAccountIndex],\n )\n\n return (\n <WalletContext.Provider\n value={{\n activeAccount,\n activeAccountIndex,\n basePath,\n coinTypeWallet,\n provided: true,\n rootWallet,\n setActiveAccountIndex,\n }}\n {...props}\n >\n {children}\n </WalletContext.Provider>\n )\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { useContextEx, useProvided } from '@xyo-network/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { WalletContext } from './Context'\n\nexport const useWalletContext = (required = true) => {\n return useContextEx(WalletContext, 'Wallet', required)\n}\n\nexport const useWalletProvided = () => {\n return useProvided(WalletContext)\n}\n\nexport const useCoinTypeWallet = (required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const { coinTypeWallet } = useWalletContext(required)\n return [coinTypeWallet, undefined]\n}\n\nexport const useRootWallet = (required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const { rootWallet } = useWalletContext(required)\n return [rootWallet, undefined]\n}\n\nexport const useIndexedWalletFromContext = (index: number, required = true): [WalletInstance | null | undefined, Error | undefined] => {\n const [coinTypeWallet] = useCoinTypeWallet(required)\n const [wallet] = usePromise(async () => (await coinTypeWallet?.derivePath(index.toString())) ?? coinTypeWallet, [coinTypeWallet, index])\n return [wallet, undefined]\n}\n\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 { Button, DialogActions, DialogActionsProps, DialogProps } from '@mui/material'\nimport { MouseEvent } from 'react'\n\nimport { useSeedPhrase } from '../../../../contexts'\n\ninterface DialogActionButtonsProps extends DialogActionsProps {\n onClose?: DialogProps['onClose']\n}\n\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 variant=\"outlined\" onClick={handleSave}>\n Save\n </Button>\n </DialogActions>\n )\n}\n","import { Button, DialogActions, FormControl, FormLabel, StandardTextFieldProps, TextField } from '@mui/material'\n\nimport { useSeedPhrase } from '../../../../../contexts'\nimport { colorParser, InvalidPhraseTypography, PhraseHeaderBox } from './validation-messages'\n\nexport const NewPhraseTextField: React.FC<StandardTextFieldProps> = (props) => {\n const { handleClear, handleGenerate, overwriteWarning, phrase, setPhrase, validPhrase } = useSeedPhrase()\n return (\n <>\n <FormControl fullWidth size=\"small\" sx={{ display: 'flex', flexDirection: 'column', rowGap: 1 }}>\n <FormLabel>\n <PhraseHeaderBox conditional={validPhrase}>New Seed Phrase</PhraseHeaderBox>\n </FormLabel>\n <TextField\n focused\n color={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 <DialogActions sx={{ justifyContent: 'center' }}>\n <Button disabled={overwriteWarning} variant=\"outlined\" onClick={handleGenerate}>\n Generate\n </Button>\n <Button variant=\"outlined\" onClick={handleClear}>\n Clear\n </Button>\n </DialogActions>\n </>\n )\n}\n","export 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 { Link, Typography, TypographyProps } from '@mui/material'\n\nexport const InvalidPhraseTypography: React.FC<TypographyProps> = (props) => (\n <Typography variant={'caption'} color={'error'} {...props}>\n Invalid seed phrase. See -{' '}\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 { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useMemo } from 'react'\n\ninterface PhraseHeaderBox extends FlexBoxProps, WithChildren {\n conditional?: boolean | null\n}\n\nexport const PhraseHeaderBox: React.FC<PhraseHeaderBox> = ({ children, conditional, ...props }) => {\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 { Chip, FormControl, FormLabel, StandardTextFieldProps, TextField } from '@mui/material'\nimport { useState } from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts'\nimport { InvalidPhraseTypography, PhraseHeaderBox } from './validation-messages'\n\nexport const SavedPhraseTextField: React.FC<StandardTextFieldProps> = (props) => {\n const { validSeedPhrase, seedPhrase } = useSeedPhrase()\n\n const [visible, setVisible] = useState(false)\n\n return (\n <FormControl fullWidth size=\"small\" sx={{ display: 'flex', flexDirection: 'column', rowGap: 1 }}>\n <Chip label={visible ? 'Hide Saved Seed Phrase' : 'Reveal Saved Seed Phrase'} onClick={() => setVisible(!visible)} />\n {visible ? (\n <>\n <FormLabel>\n <PhraseHeaderBox conditional={validSeedPhrase}>Saved Seed Phrase</PhraseHeaderBox>\n </FormLabel>\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 {...props}\n />\n </>\n ) : null}\n </FormControl>\n )\n}\n","import { Alert, Button } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\n\nimport { useSeedPhrase } from '../../../../contexts'\n\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 { Cancel as CancelIcon, RadioButtonChecked as RadioButtonCheckedIcon } from '@mui/icons-material'\nimport { Button, ButtonGroup, TableCell, TableRow, TableRowProps } from '@mui/material'\nimport { useState } from 'react'\n\nimport { SeedPhraseIconButton } from '../_shared'\nimport { SeedPhraseDialog } from '../dialog'\n\nexport interface SeedPhraseTableRowProps extends TableRowProps {\n changeSeedPhrase?: (seedPhrase: string) => void\n seedPhrase?: string\n}\n\nexport const SeedPhraseTableRow: React.FC<SeedPhraseTableRowProps> = ({ changeSeedPhrase, seedPhrase, ...props }) => {\n const [open, setOpen] = useState(false)\n\n const handleOpen = () => {\n setOpen(true)\n }\n return (\n <TableRow {...props}>\n <TableCell>\n Seed Phrase <SeedPhraseIconButton />\n </TableCell>\n <TableCell align=\"center\">{seedPhrase ? <RadioButtonCheckedIcon color=\"success\" /> : <CancelIcon color=\"error\" />}</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 { EthAddress } from '@xylabs/eth-address'\nimport { EthAccountButton } from '@xylabs/react-crypto'\nimport { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { NumberStatus } from '@xylabs/react-number-status'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { useAccount } from '../../hooks'\n\nexport interface WalletAccountDetailsProps extends FlexBoxProps {\n account?: WalletInstance\n exploreUrl?: string\n}\n\nexport const WalletAccountDetails: React.FC<WalletAccountDetailsProps> = ({ exploreUrl = 'https://explore.xyo.network', account, ...props }) => {\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={EthAddress.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 { AccountInstance } from '@xyo-network/account-model'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useState } from 'react'\n\nimport { useCoinTypeWallet, useWalletContext, useWalletProvided } from '../contexts'\n\nexport interface AccountHookParams {\n account?: AccountInstance\n index?: number\n required?: boolean\n wallet?: WalletInstance\n}\n\nexport const useAccount = ({ wallet, account, index, required = false }: 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(Error('useAccount can not have both a wallet and an account in the parameters'))\n }\n\n if (index && account && !validationError) {\n setValidationError(Error('useAccount can not have both a index and an account in the parameters'))\n }\n\n const [error, setError] = useState<Error>()\n const [coinTypeWallet] = useCoinTypeWallet(!wallet && required)\n const { activeAccountIndex } = useWalletContext(false)\n const [activeAccount] = usePromise(async () => {\n try {\n if (!validationError) {\n if (wallet) {\n return await wallet?.derivePath?.(`${index ?? 0}'\\0`)\n } else if (coinTypeWallet) {\n return await coinTypeWallet?.derivePath?.(`${index ?? activeAccountIndex ?? 0}'\\0`)\n }\n }\n } catch (ex) {\n const error = ex as Error\n console.error(error.message)\n setError(error)\n }\n }, [index, wallet, coinTypeWallet, activeAccountIndex, validationError])\n if (validationError && !error) {\n console.error(validationError.message)\n setError(validationError)\n }\n\n return [error ? undefined : account ?? activeAccount ?? walletContextProvided ? null : undefined, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { HDWallet } from '@xyo-network/account'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useState } from 'react'\n\nimport { useSelectedWalletAccount, useWalletProvided } from '../contexts'\n\nexport interface WalletHookParams {\n mnemonic?: string\n path?: string\n required?: boolean\n seed?: Uint8Array | string\n wallet?: WalletInstance | null\n}\n\nexport const useWallet = ({ mnemonic, wallet, path, required = false, seed }: WalletHookParams = {}): [\n WalletInstance | null | undefined,\n Error | undefined,\n] => {\n const walletContextProvided = useWalletProvided()\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 { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { useWalletProvided } from '../contexts'\nimport { useWallet } from './useWallet'\n\nexport interface WalletsHookParams {\n paths: string[]\n wallet?: WalletInstance | null\n}\n\nexport const useWallets = ({ wallet, paths }: WalletsHookParams): [WalletInstance[] | null | undefined, Error | undefined] => {\n const walletContextProvided = useWalletProvided()\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 { State as PromiseState, usePromise } from '@xylabs/react-promise'\nimport { HDWallet } from '@xyo-network/account'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { Mutex } from 'async-mutex'\n\nlet globalWrapperWallet: WalletInstance | undefined\nconst globalWrapperWalletMutex = new Mutex()\n\nexport const useWrapperAccount = (\n account?: AccountInstance | null,\n): [AccountInstance | null | undefined, Error | undefined, PromiseState | 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 { CircularProgress, MenuItem, SelectProps } from '@mui/material'\nimport { SelectEx } from '@xylabs/react-select'\nimport { AddressRenderRowBox, AddressRenderRowBoxProps } from '@xyo-network/react-address-render'\n\nimport { useWalletContext } from '../../contexts'\nimport { useWallet } from '../../hooks'\n\ntype SharedAddressRenderRowBoxProps = Pick<AddressRenderRowBoxProps, 'iconOnly' | 'iconSize' | 'icons' | 'showFavorite'>\n\nexport interface WalletAccountSelectProps extends SharedAddressRenderRowBoxProps, SelectProps<number> {\n addressNames?: Record<string, string | undefined>\n maxAccounts?: number\n}\n\nconst arrayRange = (length: number, start = 0) => {\n return [...Array(length).keys()].map((x) => x + start)\n}\n\nexport const WalletAccountSelect: React.FC<WalletAccountSelectProps> = ({\n addressNames = {},\n iconOnly,\n iconSize = 24,\n icons,\n maxAccounts = 1,\n showFavorite = false,\n size,\n ...props\n}) => {\n const { activeAccountIndex = 0, setActiveAccountIndex, coinTypeWallet } = useWalletContext()\n const disabled = !coinTypeWallet || activeAccountIndex === undefined\n\n return (\n <>\n {coinTypeWallet ? (\n <SelectEx\n margin=\"dense\"\n disabled={disabled}\n renderValue={(selectedAccountIndex) => {\n const Item: React.FC = () => {\n const [selectedAccount] = useWallet({ path: selectedAccountIndex.toString(), wallet: coinTypeWallet })\n const customName = selectedAccount ? addressNames[selectedAccount.address] : undefined\n const favorite = !!selectedAccount && selectedAccount.address in addressNames\n return (\n <MenuItem value={selectedAccountIndex} sx={{ minHeight: 0, paddingBottom: 0, paddingTop: 0 }}>\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 return <Item />\n }}\n value={activeAccountIndex}\n onChange={(event) => setActiveAccountIndex?.(Number.parseInt(`${event.target.value}`))}\n size={size}\n variant=\"outlined\"\n {...props}\n >\n {arrayRange(maxAccounts).map((index) => {\n const Item: React.FC = () => {\n const [account] = useWallet({ path: index.toString(), wallet: coinTypeWallet })\n const customName = account ? addressNames[account.address] : undefined\n const favorite = !!account && account.address in addressNames\n return (\n <MenuItem key={account?.address} value={index} sx={{ minHeight: 0, paddingBottom: 0, paddingTop: 0 }}>\n <AddressRenderRowBox\n disableSharedRef={true}\n flexGrow={1}\n address={account?.address}\n favorite={favorite}\n iconOnly={iconOnly}\n iconSize={iconSize}\n icons={icons}\n name={customName}\n showFavorite={showFavorite}\n />\n </MenuItem>\n )\n }\n\n return <Item key={index} />\n })}\n </SelectEx>\n ) : (\n <CircularProgress size={24} />\n )}\n </>\n )\n}\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\n\nimport { WalletAccountSelect } from './Select'\n\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\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 />\n </FlexCol>\n )\n}\n"],"mappings":"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","names":["import_material","import_jsx_runtime","desiredMaximumAccounts","import_material","import_react","import_jsx_runtime","HelpOutlineIcon","import_material","import_react","import_jsx_runtime","import_material","import_bip39","import_english","import_react","import_jsx_runtime","import_react_shared","import_react_shared","import_react","import_jsx_runtime","import_react_promise","import_react_shared","import_material","import_jsx_runtime","import_material","import_material","import_jsx_runtime","import_icons_material","import_react","import_jsx_runtime","CheckCircleOutlineIcon","HighlightOffIcon","import_jsx_runtime","import_material","import_react","import_jsx_runtime","import_material","import_react_flexbox","import_jsx_runtime","import_jsx_runtime","import_icons_material","import_material","import_react","import_jsx_runtime","RadioButtonCheckedIcon","CancelIcon","import_react_flexbox","import_react_promise","import_react","error","import_react_promise","import_react","import_react_promise","import_react_promise","import_account","import_jsx_runtime","import_material","import_jsx_runtime","import_react_flexbox","import_jsx_runtime"]}
|
package/dist/node/index.js
CHANGED
|
@@ -22,7 +22,7 @@ var OutOfBoundsSnackBar = ({
|
|
|
22
22
|
children: /* @__PURE__ */ jsxs(Alert, { severity: "error", onClose: () => setShowSnackBar == null ? void 0 : setShowSnackBar(false), children: [
|
|
23
23
|
/* @__PURE__ */ jsx(AlertTitle, { children: "Maximum Accounts Error" }),
|
|
24
24
|
"Your currently selected account number (",
|
|
25
|
-
activeAccountIndex
|
|
25
|
+
activeAccountIndex === void 0 ? "" : activeAccountIndex + 1,
|
|
26
26
|
") cannot be greater than the desired Maximum Accounts (",
|
|
27
27
|
desiredMaximumAccounts,
|
|
28
28
|
")."
|
|
@@ -351,11 +351,7 @@ var useIndexedWalletFromContext = (index, required = true) => {
|
|
|
351
351
|
var useSelectedWalletAccount = (required = true) => {
|
|
352
352
|
const { activeAccountIndex } = useWalletContext(required);
|
|
353
353
|
const [account] = useIndexedWalletFromContext(activeAccountIndex ?? 0, required);
|
|
354
|
-
|
|
355
|
-
return [null, void 0];
|
|
356
|
-
} else {
|
|
357
|
-
return [account, void 0];
|
|
358
|
-
}
|
|
354
|
+
return activeAccountIndex === void 0 && account === null ? [null, void 0] : [account, void 0];
|
|
359
355
|
};
|
|
360
356
|
|
|
361
357
|
// src/components/SeedPhrase/dialog/components/DialogActionButtons.tsx
|
|
@@ -379,12 +375,15 @@ import { Button as Button3, DialogActions as DialogActions3, FormControl, FormLa
|
|
|
379
375
|
// src/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.ts
|
|
380
376
|
var colorParser = (conditional) => {
|
|
381
377
|
switch (conditional) {
|
|
382
|
-
case true:
|
|
378
|
+
case true: {
|
|
383
379
|
return "success";
|
|
384
|
-
|
|
380
|
+
}
|
|
381
|
+
case false: {
|
|
385
382
|
return "error";
|
|
386
|
-
|
|
387
|
-
|
|
383
|
+
}
|
|
384
|
+
default: {
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
388
387
|
}
|
|
389
388
|
};
|
|
390
389
|
|
|
@@ -405,22 +404,28 @@ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
|
405
404
|
var PhraseHeaderBox = ({ children, conditional, ...props }) => {
|
|
406
405
|
const state = useMemo2(() => {
|
|
407
406
|
switch (conditional) {
|
|
408
|
-
case true:
|
|
407
|
+
case true: {
|
|
409
408
|
return "success";
|
|
410
|
-
|
|
409
|
+
}
|
|
410
|
+
case false: {
|
|
411
411
|
return "error";
|
|
412
|
-
|
|
412
|
+
}
|
|
413
|
+
default: {
|
|
413
414
|
return null;
|
|
415
|
+
}
|
|
414
416
|
}
|
|
415
417
|
}, [conditional]);
|
|
416
418
|
const Icon = useMemo2(() => {
|
|
417
419
|
switch (state) {
|
|
418
|
-
case "success":
|
|
420
|
+
case "success": {
|
|
419
421
|
return /* @__PURE__ */ jsx9(CheckCircleOutlineIcon, { fontSize: "small", color: "success" });
|
|
420
|
-
|
|
422
|
+
}
|
|
423
|
+
case "error": {
|
|
421
424
|
return /* @__PURE__ */ jsx9(HighlightOffIcon, { fontSize: "small", color: "error" });
|
|
422
|
-
|
|
425
|
+
}
|
|
426
|
+
default: {
|
|
423
427
|
return null;
|
|
428
|
+
}
|
|
424
429
|
}
|
|
425
430
|
}, [state]);
|
|
426
431
|
return /* @__PURE__ */ jsxs7(FlexRow, { justifyContent: "start", columnGap: 1, ...props, children: [
|
|
@@ -444,7 +449,7 @@ var NewPhraseTextField = (props) => {
|
|
|
444
449
|
error: validPhrase === false,
|
|
445
450
|
helperText: validPhrase === false ? /* @__PURE__ */ jsx10(InvalidPhraseTypography, {}) : null,
|
|
446
451
|
fullWidth: true,
|
|
447
|
-
maxRows:
|
|
452
|
+
maxRows: Number.POSITIVE_INFINITY,
|
|
448
453
|
multiline: true,
|
|
449
454
|
onChange: (e) => setPhrase == null ? void 0 : setPhrase(e.target.value),
|
|
450
455
|
value: phrase,
|
|
@@ -478,7 +483,7 @@ var SavedPhraseTextField = (props) => {
|
|
|
478
483
|
error: validSeedPhrase === false,
|
|
479
484
|
helperText: validSeedPhrase === false ? /* @__PURE__ */ jsx11(InvalidPhraseTypography, {}) : null,
|
|
480
485
|
fullWidth: true,
|
|
481
|
-
maxRows:
|
|
486
|
+
maxRows: Number.POSITIVE_INFINITY,
|
|
482
487
|
multiline: true,
|
|
483
488
|
...props
|
|
484
489
|
}
|
|
@@ -629,11 +634,7 @@ var useWallet = ({ mnemonic, wallet, path, required = false, seed } = {}) => {
|
|
|
629
634
|
}
|
|
630
635
|
return contextAccount;
|
|
631
636
|
})();
|
|
632
|
-
|
|
633
|
-
return (_a = newAccount == null ? void 0 : newAccount.derivePath) == null ? void 0 : _a.call(newAccount, path);
|
|
634
|
-
} else {
|
|
635
|
-
return newAccount ?? wallet;
|
|
636
|
-
}
|
|
637
|
+
return path ? (_a = newAccount == null ? void 0 : newAccount.derivePath) == null ? void 0 : _a.call(newAccount, path) : newAccount ?? wallet;
|
|
637
638
|
} catch (ex) {
|
|
638
639
|
setError(ex);
|
|
639
640
|
}
|
|
@@ -657,7 +658,7 @@ var useWallets = ({ wallet, paths }) => {
|
|
|
657
658
|
import { usePromise as usePromise6 } from "@xylabs/react-promise";
|
|
658
659
|
import { HDWallet as HDWallet2 } from "@xyo-network/account";
|
|
659
660
|
import { Mutex } from "async-mutex";
|
|
660
|
-
var globalWrapperWallet
|
|
661
|
+
var globalWrapperWallet;
|
|
661
662
|
var globalWrapperWalletMutex = new Mutex();
|
|
662
663
|
var useWrapperAccount = (account) => {
|
|
663
664
|
return usePromise6(async () => {
|
|
@@ -703,7 +704,7 @@ import { SelectEx } from "@xylabs/react-select";
|
|
|
703
704
|
import { AddressRenderRowBox } from "@xyo-network/react-address-render";
|
|
704
705
|
import { Fragment as Fragment5, jsx as jsx16 } from "react/jsx-runtime";
|
|
705
706
|
var arrayRange = (length, start = 0) => {
|
|
706
|
-
return Array
|
|
707
|
+
return [...Array(length).keys()].map((x) => x + start);
|
|
707
708
|
};
|
|
708
709
|
var WalletAccountSelect = ({
|
|
709
710
|
addressNames = {},
|
|
@@ -745,7 +746,7 @@ var WalletAccountSelect = ({
|
|
|
745
746
|
return /* @__PURE__ */ jsx16(Item, {});
|
|
746
747
|
},
|
|
747
748
|
value: activeAccountIndex,
|
|
748
|
-
onChange: (event) => setActiveAccountIndex == null ? void 0 : setActiveAccountIndex(parseInt(`${event.target.value}`)),
|
|
749
|
+
onChange: (event) => setActiveAccountIndex == null ? void 0 : setActiveAccountIndex(Number.parseInt(`${event.target.value}`)),
|
|
749
750
|
size,
|
|
750
751
|
variant: "outlined",
|
|
751
752
|
...props,
|