@xyo-network/react-wallet 2.56.3 → 2.56.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/cjs/components/WalletAccountSelect/Select.js +2 -2
  2. package/dist/cjs/components/WalletAccountSelect/Select.js.map +1 -1
  3. package/dist/cjs/contexts/Wallet/Provider.js +3 -3
  4. package/dist/cjs/contexts/Wallet/Provider.js.map +1 -1
  5. package/dist/cjs/contexts/Wallet/use.js +13 -3
  6. package/dist/cjs/contexts/Wallet/use.js.map +1 -1
  7. package/dist/cjs/hooks/useAccount.js +6 -4
  8. package/dist/cjs/hooks/useAccount.js.map +1 -1
  9. package/dist/cjs/hooks/useWallet.js +2 -1
  10. package/dist/cjs/hooks/useWallet.js.map +1 -1
  11. package/dist/cjs/hooks/useWallets.js +3 -1
  12. package/dist/cjs/hooks/useWallets.js.map +1 -1
  13. package/dist/cjs/hooks/useWrapperAccount.js +8 -4
  14. package/dist/cjs/hooks/useWrapperAccount.js.map +1 -1
  15. package/dist/docs.json +497 -316
  16. package/dist/esm/components/WalletAccountSelect/Select.js +2 -2
  17. package/dist/esm/components/WalletAccountSelect/Select.js.map +1 -1
  18. package/dist/esm/contexts/Wallet/Provider.js +3 -3
  19. package/dist/esm/contexts/Wallet/Provider.js.map +1 -1
  20. package/dist/esm/contexts/Wallet/use.js +11 -3
  21. package/dist/esm/contexts/Wallet/use.js.map +1 -1
  22. package/dist/esm/hooks/useAccount.js +3 -2
  23. package/dist/esm/hooks/useAccount.js.map +1 -1
  24. package/dist/esm/hooks/useWallet.js +3 -2
  25. package/dist/esm/hooks/useWallet.js.map +1 -1
  26. package/dist/esm/hooks/useWallets.js +3 -1
  27. package/dist/esm/hooks/useWallets.js.map +1 -1
  28. package/dist/esm/hooks/useWrapperAccount.js +8 -4
  29. package/dist/esm/hooks/useWrapperAccount.js.map +1 -1
  30. package/dist/types/components/WalletAccountSelect/WalletInfo.d.ts +1 -1
  31. package/dist/types/components/WalletAccountSelect/WalletInfo.d.ts.map +1 -1
  32. package/dist/types/contexts/Wallet/Provider.d.ts +1 -1
  33. package/dist/types/contexts/Wallet/Provider.d.ts.map +1 -1
  34. package/dist/types/contexts/Wallet/State.d.ts +3 -3
  35. package/dist/types/contexts/Wallet/State.d.ts.map +1 -1
  36. package/dist/types/contexts/Wallet/use.d.ts +5 -4
  37. package/dist/types/contexts/Wallet/use.d.ts.map +1 -1
  38. package/dist/types/hooks/useAccount.d.ts +1 -1
  39. package/dist/types/hooks/useAccount.d.ts.map +1 -1
  40. package/dist/types/hooks/useWallet.d.ts +2 -2
  41. package/dist/types/hooks/useWallet.d.ts.map +1 -1
  42. package/dist/types/hooks/useWallets.d.ts +2 -2
  43. package/dist/types/hooks/useWallets.d.ts.map +1 -1
  44. package/dist/types/hooks/useWrapperAccount.d.ts +2 -1
  45. package/dist/types/hooks/useWrapperAccount.d.ts.map +1 -1
  46. package/package.json +11 -11
  47. package/src/components/WalletAccountSelect/Select.tsx +2 -2
  48. package/src/components/WalletAccountSelect/WalletInfo.tsx +1 -1
  49. package/src/contexts/Wallet/Provider.tsx +4 -4
  50. package/src/contexts/Wallet/State.ts +3 -3
  51. package/src/contexts/Wallet/use.ts +15 -7
  52. package/src/hooks/useAccount.tsx +4 -3
  53. package/src/hooks/useWallet.tsx +5 -4
  54. package/src/hooks/useWallets.tsx +5 -3
  55. package/src/hooks/useWrapperAccount.tsx +14 -6
@@ -14,7 +14,7 @@ export const WalletAccountSelect = ({ addressNames = {}, iconOnly, iconSize = 24
14
14
  const Item = () => {
15
15
  const [account] = useWallet({ path: selected.toString(), wallet: coinTypeWallet });
16
16
  const customName = account ? addressNames[account.address] : undefined;
17
- const favorite = account && account.address in addressNames;
17
+ const favorite = !!account && account.address in addressNames;
18
18
  return (_jsx(AddressRenderRowBox, { address: account?.address, iconOnly: iconOnly, iconSize: iconSize, icons: icons, name: customName, favorite: favorite, showFavorite: showFavorite }));
19
19
  };
20
20
  return _jsx(Item, {});
@@ -22,7 +22,7 @@ export const WalletAccountSelect = ({ addressNames = {}, iconOnly, iconSize = 24
22
22
  const Item = () => {
23
23
  const [account] = useAccount({ index, wallet: coinTypeWallet });
24
24
  const customName = account ? addressNames[account.address] : undefined;
25
- const favorite = account && account.address in addressNames;
25
+ const favorite = !!account && account.address in addressNames;
26
26
  return (_jsx(MenuItem, { value: index, children: _jsx(AddressRenderRowBox, { address: account?.address, favorite: favorite, iconOnly: iconOnly, iconSize: iconSize, icons: icons, name: customName, showFavorite: showFavorite }) }, account?.address));
27
27
  };
28
28
  return _jsx(Item, {}, index);
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../src/components/WalletAccountSelect/Select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../src/components/WalletAccountSelect/Select.tsx"],"names":[],"mappings":"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"}
@@ -3,14 +3,14 @@ import { usePromise } from '@xylabs/react-promise';
3
3
  import { useEffect, useState } from 'react';
4
4
  import { WalletContext } from './Context';
5
5
  import { WalletRootPath } from './lib';
6
- export const WalletProvider = ({ basePath = WalletRootPath, children, defaultActiveAccountIndex = 0, rootWallet, ...props }) => {
6
+ export const WalletProvider = ({ basePath = WalletRootPath, children, defaultActiveAccountIndex = 0, rootWallet = null, ...props }) => {
7
7
  const [activeAccountIndex, setActiveAccountIndex] = useState(defaultActiveAccountIndex);
8
8
  useEffect(() => {
9
9
  if (defaultActiveAccountIndex !== undefined) {
10
10
  setActiveAccountIndex(defaultActiveAccountIndex);
11
11
  }
12
12
  }, [defaultActiveAccountIndex]);
13
- const [coinTypeWallet] = usePromise(async () => {
13
+ const [coinTypeWallet = null] = usePromise(async () => {
14
14
  // ensure the wallet has the proper base
15
15
  if (rootWallet) {
16
16
  if (!rootWallet?.path.includes(basePath)) {
@@ -26,7 +26,7 @@ export const WalletProvider = ({ basePath = WalletRootPath, children, defaultAct
26
26
  return undefined;
27
27
  }
28
28
  }, [basePath, rootWallet]);
29
- const [activeAccount] = usePromise(() => coinTypeWallet?.derivePath(activeAccountIndex.toString()), [coinTypeWallet, activeAccountIndex]);
29
+ const [activeAccount = null] = usePromise(() => coinTypeWallet?.derivePath(activeAccountIndex.toString()), [coinTypeWallet, activeAccountIndex]);
30
30
  return (_jsx(WalletContext.Provider, { value: {
31
31
  activeAccount,
32
32
  activeAccountIndex,
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/Wallet/Provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAQtC,MAAM,CAAC,MAAM,cAAc,GAAgD,CAAC,EAC1E,QAAQ,GAAG,cAAc,EACzB,QAAQ,EACR,yBAAyB,GAAG,CAAC,EAC7B,UAAU,EACV,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,yBAAyB,CAAC,CAAA;IAEvF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,yBAAyB,KAAK,SAAS,EAAE;YAC3C,qBAAqB,CAAC,yBAAyB,CAAC,CAAA;SACjD;IACH,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAA;IAE/B,MAAM,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QAC7C,wCAAwC;QACxC,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACxC,IAAI;oBACF,OAAO,MAAM,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;iBAC9C;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAA;iBAC1D;aACF;SACF;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAE1B,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAEzI,OAAO,CACL,KAAC,aAAa,CAAC,QAAQ,IACrB,KAAK,EAAE;YACL,aAAa;YACb,kBAAkB;YAClB,QAAQ;YACR,cAAc;YACd,QAAQ,EAAE,IAAI;YACd,UAAU;YACV,qBAAqB;SACtB,KACG,KAAK,YAER,QAAQ,GACc,CAC1B,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/Wallet/Provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAQtC,MAAM,CAAC,MAAM,cAAc,GAAgD,CAAC,EAC1E,QAAQ,GAAG,cAAc,EACzB,QAAQ,EACR,yBAAyB,GAAG,CAAC,EAC7B,UAAU,GAAG,IAAI,EACjB,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,yBAAyB,CAAC,CAAA;IAEvF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,yBAAyB,KAAK,SAAS,EAAE;YAC3C,qBAAqB,CAAC,yBAAyB,CAAC,CAAA;SACjD;IACH,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAA;IAE/B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACpD,wCAAwC;QACxC,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACxC,IAAI;oBACF,OAAO,MAAM,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;iBAC9C;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAA;iBAC1D;aACF;SACF;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAE1B,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAEhJ,OAAO,CACL,KAAC,aAAa,CAAC,QAAQ,IACrB,KAAK,EAAE;YACL,aAAa;YACb,kBAAkB;YAClB,QAAQ;YACR,cAAc;YACd,QAAQ,EAAE,IAAI;YACd,UAAU;YACV,qBAAqB;SACtB,KACG,KAAK,YAER,QAAQ,GACc,CAC1B,CAAA;AACH,CAAC,CAAA"}
@@ -1,9 +1,12 @@
1
1
  import { usePromise } from '@xylabs/react-promise';
2
- import { useContextEx } from '@xyo-network/react-shared';
2
+ import { useContextEx, useProvided } from '@xyo-network/react-shared';
3
3
  import { WalletContext } from './Context';
4
4
  export const useWalletContext = (required = true) => {
5
5
  return useContextEx(WalletContext, 'Wallet', required);
6
6
  };
7
+ export const useWalletProvided = () => {
8
+ return useProvided(WalletContext);
9
+ };
7
10
  export const useCoinTypeWallet = (required = true) => {
8
11
  const { coinTypeWallet } = useWalletContext(required);
9
12
  return [coinTypeWallet, undefined];
@@ -14,7 +17,7 @@ export const useRootWallet = (required = true) => {
14
17
  };
15
18
  export const useIndexedWalletFromContext = (index, required = true) => {
16
19
  const [coinTypeWallet] = useCoinTypeWallet(required);
17
- const [wallet] = usePromise(() => coinTypeWallet?.derivePath(index.toString()), [coinTypeWallet, index]);
20
+ const [wallet] = usePromise(async () => (await coinTypeWallet?.derivePath(index.toString())) ?? coinTypeWallet, [coinTypeWallet, index]);
18
21
  return [wallet, undefined];
19
22
  };
20
23
  export const useSelectedWalletAccount = (required = true) => {
@@ -22,6 +25,11 @@ export const useSelectedWalletAccount = (required = true) => {
22
25
  //we pass in 0 as default since we can not call the hook optionally,
23
26
  //we resolve this false result by checking whether activeAccountIndex is defined before returning it
24
27
  const [account] = useIndexedWalletFromContext(activeAccountIndex ?? 0, required);
25
- return [activeAccountIndex !== undefined ? account : undefined, undefined];
28
+ if (activeAccountIndex === undefined && account === null) {
29
+ return [null, undefined];
30
+ }
31
+ else {
32
+ return [account, undefined];
33
+ }
26
34
  };
27
35
  //# sourceMappingURL=use.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../../src/contexts/Wallet/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAE,EAAE;IAClD,OAAO,YAAY,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAmD,EAAE;IACpG,MAAM,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACrD,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;AACpC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAmD,EAAE;IAChG,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACjD,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAa,EAAE,QAAQ,GAAG,IAAI,EAAmD,EAAE;IAC7H,MAAM,CAAC,cAAc,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACpD,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAA;IACxG,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAmD,EAAE;IAC3G,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACzD,oEAAoE;IACpE,oGAAoG;IACpG,MAAM,CAAC,OAAO,CAAC,GAAG,2BAA2B,CAAC,kBAAkB,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAA;IAChF,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AAC5E,CAAC,CAAA"}
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../../src/contexts/Wallet/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAE,EAAE;IAClD,OAAO,YAAY,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,OAAO,WAAW,CAAC,aAAa,CAAC,CAAA;AACnC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAQ,GAAG,IAAI,EAA0D,EAAE;IAC3G,MAAM,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACrD,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;AACpC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,GAAG,IAAI,EAA0D,EAAE;IACvG,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACjD,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAa,EAAE,QAAQ,GAAG,IAAI,EAA0D,EAAE;IACpI,MAAM,CAAC,cAAc,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACpD,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAA;IACxI,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,GAAG,IAAI,EAA0D,EAAE;IAClH,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACzD,oEAAoE;IACpE,oGAAoG;IACpG,MAAM,CAAC,OAAO,CAAC,GAAG,2BAA2B,CAAC,kBAAkB,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAA;IAChF,IAAI,kBAAkB,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;QACxD,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;KACzB;SAAM;QACL,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;KAC5B;AACH,CAAC,CAAA"}
@@ -1,7 +1,8 @@
1
1
  import { usePromise } from '@xylabs/react-promise';
2
2
  import { useState } from 'react';
3
- import { useCoinTypeWallet, useWalletContext } from '../contexts';
3
+ import { useCoinTypeWallet, useWalletContext, useWalletProvided } from '../contexts';
4
4
  export const useAccount = ({ wallet, account, index, required = false } = {}) => {
5
+ const walletContextProvided = useWalletProvided();
5
6
  const [validationError, setValidationError] = useState();
6
7
  if (wallet && account && !validationError) {
7
8
  setValidationError(Error('useAccount can not have both a wallet and an account in the parameters'));
@@ -33,6 +34,6 @@ export const useAccount = ({ wallet, account, index, required = false } = {}) =>
33
34
  console.error(validationError.message);
34
35
  setError(validationError);
35
36
  }
36
- return [error ? undefined : account ?? activeAccount, error];
37
+ return [error ? undefined : account ?? activeAccount ?? walletContextProvided ? null : undefined, error];
37
38
  };
38
39
  //# sourceMappingURL=useAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAccount.js","sourceRoot":"","sources":["../../../src/hooks/useAccount.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AASjE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,KAAwB,EAAE,EAG7F,EAAE;IACF,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC/D,IAAI,MAAM,IAAI,OAAO,IAAI,CAAC,eAAe,EAAE;QACzC,kBAAkB,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC,CAAA;KACpG;IAED,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,eAAe,EAAE;QACxC,kBAAkB,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC,CAAA;KACnG;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,MAAM,CAAC,cAAc,CAAC,GAAG,iBAAiB,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAA;IAC/D,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACtD,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI;YACF,IAAI,CAAC,eAAe,EAAE;gBACpB,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,CAAA;iBACtD;qBAAM,IAAI,cAAc,EAAE;oBACzB,OAAO,MAAM,cAAc,EAAE,UAAU,EAAE,CAAC,GAAG,KAAK,IAAI,kBAAkB,IAAI,CAAC,KAAK,CAAC,CAAA;iBACpF;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,EAAW,CAAA;YACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5B,QAAQ,CAAC,KAAK,CAAC,CAAA;SAChB;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAA;IACxE,IAAI,eAAe,IAAI,CAAC,KAAK,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACtC,QAAQ,CAAC,eAAe,CAAC,CAAA;KAC1B;IAED,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,aAAa,EAAE,KAAK,CAAC,CAAA;AAC9D,CAAC,CAAA"}
1
+ {"version":3,"file":"useAccount.js","sourceRoot":"","sources":["../../../src/hooks/useAccount.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AASpF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,KAAwB,EAAE,EAG7F,EAAE;IACF,MAAM,qBAAqB,GAAG,iBAAiB,EAAE,CAAA;IACjD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC/D,IAAI,MAAM,IAAI,OAAO,IAAI,CAAC,eAAe,EAAE;QACzC,kBAAkB,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC,CAAA;KACpG;IAED,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,eAAe,EAAE;QACxC,kBAAkB,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC,CAAA;KACnG;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,MAAM,CAAC,cAAc,CAAC,GAAG,iBAAiB,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAA;IAC/D,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACtD,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI;YACF,IAAI,CAAC,eAAe,EAAE;gBACpB,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,CAAA;iBACtD;qBAAM,IAAI,cAAc,EAAE;oBACzB,OAAO,MAAM,cAAc,EAAE,UAAU,EAAE,CAAC,GAAG,KAAK,IAAI,kBAAkB,IAAI,CAAC,KAAK,CAAC,CAAA;iBACpF;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,EAAW,CAAA;YACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5B,QAAQ,CAAC,KAAK,CAAC,CAAA;SAChB;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAA;IACxE,IAAI,eAAe,IAAI,CAAC,KAAK,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACtC,QAAQ,CAAC,eAAe,CAAC,CAAA;KAC1B;IAED,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,aAAa,IAAI,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AAC1G,CAAC,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import { usePromise } from '@xylabs/react-promise';
2
2
  import { HDWallet } from '@xyo-network/account';
3
3
  import { useState } from 'react';
4
- import { useSelectedWalletAccount } from '../contexts';
4
+ import { useSelectedWalletAccount, useWalletProvided } from '../contexts';
5
5
  export const useWallet = ({ mnemonic, wallet, path, required = false, seed } = {}) => {
6
+ const walletContextProvided = useWalletProvided();
6
7
  const [error, setError] = useState();
7
8
  const [contextAccount] = useSelectedWalletAccount(!wallet && required);
8
9
  const [activeAccount] = usePromise(async () => {
@@ -30,6 +31,6 @@ export const useWallet = ({ mnemonic, wallet, path, required = false, seed } = {
30
31
  setError(ex);
31
32
  }
32
33
  }, [mnemonic, contextAccount, seed, path, wallet]);
33
- return [activeAccount, error];
34
+ return [activeAccount ?? walletContextProvided ? null : activeAccount, error];
34
35
  };
35
36
  //# sourceMappingURL=useWallet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../../src/hooks/useWallet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAG/C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAUtD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,IAAI,KAAuB,EAAE,EAGjG,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,MAAM,CAAC,cAAc,CAAC,GAAG,wBAAwB,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAA;IACtE,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI;YACF,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE;gBAC7B,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAA;iBACd;qBAAM,IAAI,QAAQ,EAAE;oBACnB,OAAO,QAAQ,CAAC,YAAY,CAAC,QAAkB,CAAC,CAAA;iBACjD;qBAAM,IAAI,IAAI,EAAE;oBACf,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;iBAC/B;gBACD,OAAO,cAAc,CAAA;YACvB,CAAC,CAAC,EAAE,CAAA;YAEJ,IAAI,IAAI,EAAE;gBACR,OAAO,UAAU,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,CAAA;aACtC;iBAAM;gBACL,OAAO,UAAU,IAAI,MAAM,CAAA;aAC5B;SACF;QAAC,OAAO,EAAE,EAAE;YACX,QAAQ,CAAC,EAAW,CAAC,CAAA;SACtB;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;AAC/B,CAAC,CAAA"}
1
+ {"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../../src/hooks/useWallet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAG/C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAUzE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,IAAI,KAAuB,EAAE,EAGjG,EAAE;IACF,MAAM,qBAAqB,GAAG,iBAAiB,EAAE,CAAA;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,MAAM,CAAC,cAAc,CAAC,GAAG,wBAAwB,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAA;IACtE,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI;YACF,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE;gBAC7B,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAA;iBACd;qBAAM,IAAI,QAAQ,EAAE;oBACnB,OAAO,QAAQ,CAAC,YAAY,CAAC,QAAkB,CAAC,CAAA;iBACjD;qBAAM,IAAI,IAAI,EAAE;oBACf,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;iBAC/B;gBACD,OAAO,cAAc,CAAA;YACvB,CAAC,CAAC,EAAE,CAAA;YAEJ,IAAI,IAAI,EAAE;gBACR,OAAO,UAAU,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,CAAA;aACtC;iBAAM;gBACL,OAAO,UAAU,IAAI,MAAM,CAAA;aAC5B;SACF;QAAC,OAAO,EAAE,EAAE;YACX,QAAQ,CAAC,EAAW,CAAC,CAAA;SACtB;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,OAAO,CAAC,aAAa,IAAI,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;AAC/E,CAAC,CAAA"}
@@ -1,8 +1,10 @@
1
1
  import { usePromise } from '@xylabs/react-promise';
2
+ import { useWalletProvided } from '../contexts';
2
3
  import { useWallet } from './useWallet';
3
4
  export const useWallets = ({ wallet, paths }) => {
5
+ const walletContextProvided = useWalletProvided();
4
6
  const [foundWallet] = useWallet({ wallet });
5
7
  const [wallets, error] = usePromise(() => (foundWallet ? Promise.all(paths.map((path) => foundWallet.derivePath(path))) : undefined), [foundWallet, paths]);
6
- return [wallets, error];
8
+ return [wallets ?? walletContextProvided ? null : wallets, error];
7
9
  };
8
10
  //# sourceMappingURL=useWallets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWallets.js","sourceRoot":"","sources":["../../../src/hooks/useWallets.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAOvC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAqB,EAAqD,EAAE;IACpH,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3C,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,UAAU,CACjC,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAChG,CAAC,WAAW,EAAE,KAAK,CAAC,CACrB,CAAA;IACD,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA"}
1
+ {"version":3,"file":"useWallets.js","sourceRoot":"","sources":["../../../src/hooks/useWallets.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAOvC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAqB,EAA4D,EAAE;IAC3H,MAAM,qBAAqB,GAAG,iBAAiB,EAAE,CAAA;IACjD,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3C,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,UAAU,CACjC,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAChG,CAAC,WAAW,EAAE,KAAK,CAAC,CACrB,CAAA;IACD,OAAO,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACnE,CAAC,CAAA"}
@@ -4,21 +4,25 @@ import { Mutex } from 'async-mutex';
4
4
  let globalWrapperWallet = undefined;
5
5
  const globalWrapperWalletMutex = new Mutex();
6
6
  export const useWrapperAccount = (account) => {
7
- const [wallet] = usePromise(async () => {
7
+ return usePromise(async () => {
8
8
  return await globalWrapperWalletMutex.runExclusive(async () => {
9
+ //if we are expecting to receive a wallet or did receive on, return the override account
10
+ if (account !== undefined) {
11
+ return account;
12
+ }
9
13
  if (globalWrapperWallet) {
10
14
  return globalWrapperWallet;
11
15
  }
12
16
  try {
13
17
  globalWrapperWallet = await HDWallet.random();
18
+ console.log(`Global Wrapper Wallet Creation Success: ${globalWrapperWallet.address}`);
14
19
  }
15
20
  catch (ex) {
16
21
  const error = ex;
17
- console.error(`Wrapper Wallet Creation Failed: ${error.message}`);
22
+ console.error(`Global Wrapper Wallet Creation Failed: ${error.message}`);
18
23
  }
19
24
  return globalWrapperWallet;
20
25
  });
21
- }, []);
22
- return account ?? wallet;
26
+ }, [account]);
23
27
  };
24
28
  //# sourceMappingURL=useWrapperAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWrapperAccount.js","sourceRoot":"","sources":["../../../src/hooks/useWrapperAccount.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAG/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,IAAI,mBAAmB,GAA+B,SAAS,CAAA;AAC/D,MAAM,wBAAwB,GAAG,IAAI,KAAK,EAAE,CAAA;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAyB,EAA+B,EAAE;IAC1F,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACrC,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC5D,IAAI,mBAAmB,EAAE;gBACvB,OAAO,mBAAmB,CAAA;aAC3B;YACD,IAAI;gBACF,mBAAmB,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAA;aAC9C;YAAC,OAAO,EAAE,EAAE;gBACX,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,CAAC,KAAK,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;aAClE;YACD,OAAO,mBAAmB,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,OAAO,OAAO,IAAI,MAAM,CAAA;AAC1B,CAAC,CAAA"}
1
+ {"version":3,"file":"useWrapperAccount.js","sourceRoot":"","sources":["../../../src/hooks/useWrapperAccount.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAG/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,IAAI,mBAAmB,GAA+B,SAAS,CAAA;AAC/D,MAAM,wBAAwB,GAAG,IAAI,KAAK,EAAE,CAAA;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgC,EACmD,EAAE;IACrF,OAAO,UAAU,CAAC,KAAK,IAAI,EAAE;QAC3B,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC5D,wFAAwF;YACxF,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,OAAO,OAAO,CAAA;aACf;YAED,IAAI,mBAAmB,EAAE;gBACvB,OAAO,mBAAmB,CAAA;aAC3B;YAED,IAAI;gBACF,mBAAmB,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAA;gBAC7C,OAAO,CAAC,GAAG,CAAC,2CAA2C,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAA;aACtF;YAAC,OAAO,EAAE,EAAE;gBACX,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,CAAC,KAAK,CAAC,0CAA0C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;aACzE;YACD,OAAO,mBAAmB,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;AACf,CAAC,CAAA"}
@@ -6,7 +6,7 @@ export interface WalletErrorProps {
6
6
  }
7
7
  export declare const WalletError: React.FC<WalletErrorProps>;
8
8
  export interface WalletIdenticonProps {
9
- account?: AccountInstance;
9
+ account?: AccountInstance | null;
10
10
  name: string;
11
11
  }
12
12
  export declare const WalletIdenticon: React.FC<WalletIdenticonProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"WalletInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/WalletAccountSelect/WalletInfo.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAK5D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAYlD,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgB1D,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQrD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQjD,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQrD,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQ7C,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQ9C,CAAA"}
1
+ {"version":3,"file":"WalletInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/WalletAccountSelect/WalletInfo.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAK5D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAYlD,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgB1D,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQrD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQjD,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQrD,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQ7C,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQ9C,CAAA"}
@@ -4,7 +4,7 @@ import { WalletInstance } from '@xyo-network/wallet-model';
4
4
  export interface WalletProviderProps {
5
5
  basePath?: string;
6
6
  defaultActiveAccountIndex?: number;
7
- rootWallet?: WalletInstance;
7
+ rootWallet?: WalletInstance | null;
8
8
  }
9
9
  export declare const WalletProvider: React.FC<WithChildren<WalletProviderProps>>;
10
10
  //# sourceMappingURL=Provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/Provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAM1D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAgDtE,CAAA"}
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/Provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAM1D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;CACnC;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAgDtE,CAAA"}
@@ -3,15 +3,15 @@ import { WalletInstance } from '@xyo-network/wallet-model';
3
3
  import { Dispatch } from 'react';
4
4
  export interface WalletContextState extends ContextExState {
5
5
  /** Currently selected account */
6
- activeAccount?: WalletInstance;
6
+ activeAccount?: WalletInstance | null;
7
7
  /** Currently selected index */
8
8
  activeAccountIndex?: number;
9
9
  /** Base path from which the wallet was derived */
10
10
  basePath?: string;
11
11
  /** The coin_type derived wallet being used */
12
- coinTypeWallet?: WalletInstance;
12
+ coinTypeWallet?: WalletInstance | null;
13
13
  /** The root wallet being used */
14
- rootWallet?: WalletInstance;
14
+ rootWallet?: WalletInstance | null;
15
15
  /** Set currently selected index */
16
16
  setActiveAccountIndex?: Dispatch<number>;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,iCAAiC;IACjC,aAAa,CAAC,EAAE,cAAc,CAAA;IAC9B,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,iCAAiC;IACjC,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,mCAAmC;IACnC,qBAAqB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;CACzC"}
1
+ {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,iCAAiC;IACjC,aAAa,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACrC,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACtC,iCAAiC;IACjC,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAClC,mCAAmC;IACnC,qBAAqB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;CACzC"}
@@ -1,7 +1,8 @@
1
1
  import { WalletInstance } from '@xyo-network/wallet-model';
2
2
  export declare const useWalletContext: (required?: boolean) => Omit<import("./State").WalletContextState & import("@xyo-network/react-shared").ContextExState, "provided">;
3
- export declare const useCoinTypeWallet: (required?: boolean) => [WalletInstance | undefined, Error | undefined];
4
- export declare const useRootWallet: (required?: boolean) => [WalletInstance | undefined, Error | undefined];
5
- export declare const useIndexedWalletFromContext: (index: number, required?: boolean) => [WalletInstance | undefined, Error | undefined];
6
- export declare const useSelectedWalletAccount: (required?: boolean) => [WalletInstance | undefined, Error | undefined];
3
+ export declare const useWalletProvided: () => boolean;
4
+ export declare const useCoinTypeWallet: (required?: boolean) => [WalletInstance | null | undefined, Error | undefined];
5
+ export declare const useRootWallet: (required?: boolean) => [WalletInstance | null | undefined, Error | undefined];
6
+ export declare const useIndexedWalletFromContext: (index: number, required?: boolean) => [WalletInstance | null | undefined, Error | undefined];
7
+ export declare const useSelectedWalletAccount: (required?: boolean) => [WalletInstance | null | undefined, Error | undefined];
7
8
  //# sourceMappingURL=use.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/use.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,eAAO,MAAM,gBAAgB,qIAE5B,CAAA;AAED,eAAO,MAAM,iBAAiB,0BAAsB,CAAC,cAAc,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAGjG,CAAA;AAED,eAAO,MAAM,aAAa,0BAAsB,CAAC,cAAc,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAG7F,CAAA;AAED,eAAO,MAAM,2BAA2B,UAAW,MAAM,yBAAoB,CAAC,cAAc,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAI1H,CAAA;AAED,eAAO,MAAM,wBAAwB,0BAAsB,CAAC,cAAc,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAMxG,CAAA"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/use.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,eAAO,MAAM,gBAAgB,qIAE5B,CAAA;AAED,eAAO,MAAM,iBAAiB,eAE7B,CAAA;AAED,eAAO,MAAM,iBAAiB,0BAAsB,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAGxG,CAAA;AAED,eAAO,MAAM,aAAa,0BAAsB,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAGpG,CAAA;AAED,eAAO,MAAM,2BAA2B,UAAW,MAAM,yBAAoB,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAIjI,CAAA;AAED,eAAO,MAAM,wBAAwB,0BAAsB,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAU/G,CAAA"}
@@ -7,7 +7,7 @@ export interface AccountHookParams {
7
7
  wallet?: WalletInstance;
8
8
  }
9
9
  export declare const useAccount: ({ wallet, account, index, required }?: AccountHookParams) => [
10
- AccountInstance | undefined,
10
+ AccountInstance | null | undefined,
11
11
  Error | undefined
12
12
  ];
13
13
  //# sourceMappingURL=useAccount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAccount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAccount.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAK1D,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,eAAO,MAAM,UAAU,0CAAkD,iBAAiB,KAAQ;IAChG,eAAe,GAAG,SAAS;IAC3B,KAAK,GAAG,SAAS;CAmClB,CAAA"}
1
+ {"version":3,"file":"useAccount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAccount.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAK1D,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,eAAO,MAAM,UAAU,0CAAkD,iBAAiB,KAAQ;IAChG,eAAe,GAAG,IAAI,GAAG,SAAS;IAClC,KAAK,GAAG,SAAS;CAoClB,CAAA"}
@@ -5,10 +5,10 @@ export interface WalletHookParams {
5
5
  path?: string;
6
6
  required?: boolean;
7
7
  seed?: DataLike;
8
- wallet?: WalletInstance;
8
+ wallet?: WalletInstance | null;
9
9
  }
10
10
  export declare const useWallet: ({ mnemonic, wallet, path, required, seed }?: WalletHookParams) => [
11
- WalletInstance | undefined,
11
+ WalletInstance | null | undefined,
12
12
  Error | undefined
13
13
  ];
14
14
  //# sourceMappingURL=useWallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWallet.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAK1D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,eAAO,MAAM,SAAS,gDAAwD,gBAAgB,KAAQ;IACpG,cAAc,GAAG,SAAS;IAC1B,KAAK,GAAG,SAAS;CA2BlB,CAAA"}
1
+ {"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWallet.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAK1D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;CAC/B;AAED,eAAO,MAAM,SAAS,gDAAwD,gBAAgB,KAAQ;IACpG,cAAc,GAAG,IAAI,GAAG,SAAS;IACjC,KAAK,GAAG,SAAS;CA4BlB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { WalletInstance } from '@xyo-network/wallet-model';
2
2
  export interface WalletsHookParams {
3
3
  paths: string[];
4
- wallet?: WalletInstance;
4
+ wallet?: WalletInstance | null;
5
5
  }
6
- export declare const useWallets: ({ wallet, paths }: WalletsHookParams) => [WalletInstance[] | undefined, Error | undefined];
6
+ export declare const useWallets: ({ wallet, paths }: WalletsHookParams) => [WalletInstance[] | null | undefined, Error | undefined];
7
7
  //# sourceMappingURL=useWallets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWallets.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWallets.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,eAAO,MAAM,UAAU,sBAAuB,iBAAiB,KAAG,CAAC,cAAc,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAOjH,CAAA"}
1
+ {"version":3,"file":"useWallets.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWallets.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAK1D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;CAC/B;AAED,eAAO,MAAM,UAAU,sBAAuB,iBAAiB,KAAG,CAAC,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAQxH,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { State as PromiseState } from '@xylabs/react-promise';
1
2
  import { AccountInstance } from '@xyo-network/account-model';
2
- export declare const useWrapperAccount: (account?: AccountInstance) => AccountInstance | undefined;
3
+ export declare const useWrapperAccount: (account?: AccountInstance | null) => [AccountInstance | null | undefined, Error | undefined, PromiseState | undefined];
3
4
  //# sourceMappingURL=useWrapperAccount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWrapperAccount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWrapperAccount.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAO5D,eAAO,MAAM,iBAAiB,aAAc,eAAe,KAAG,eAAe,GAAG,SAgB/E,CAAA"}
1
+ {"version":3,"file":"useWrapperAccount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWrapperAccount.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,YAAY,EAAc,MAAM,uBAAuB,CAAA;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAO5D,eAAO,MAAM,iBAAiB,aAClB,eAAe,GAAG,IAAI,KAC/B,CAAC,eAAe,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,YAAY,GAAG,SAAS,CAsBlF,CAAA"}
package/package.json CHANGED
@@ -20,14 +20,14 @@
20
20
  "@xylabs/react-quick-tip-button": "^2.17.6",
21
21
  "@xylabs/react-select": "^2.17.6",
22
22
  "@xylabs/react-shared": "^2.17.6",
23
- "@xyo-network/account": "^2.64.1",
24
- "@xyo-network/account-model": "^2.64.1",
25
- "@xyo-network/bip39": "^2.64.1",
26
- "@xyo-network/core": "^2.64.1",
27
- "@xyo-network/react-address-render": "^2.56.3",
28
- "@xyo-network/react-network": "^2.56.3",
29
- "@xyo-network/react-shared": "^2.56.3",
30
- "@xyo-network/wallet-model": "^2.64.1",
23
+ "@xyo-network/account": "^2.64.3",
24
+ "@xyo-network/account-model": "^2.64.3",
25
+ "@xyo-network/bip39": "^2.64.3",
26
+ "@xyo-network/core": "^2.64.3",
27
+ "@xyo-network/react-address-render": "^2.56.4",
28
+ "@xyo-network/react-network": "^2.56.4",
29
+ "@xyo-network/react-shared": "^2.56.4",
30
+ "@xyo-network/wallet-model": "^2.64.3",
31
31
  "async-mutex": "^0.4.0"
32
32
  },
33
33
  "peerDependencies": {
@@ -41,10 +41,10 @@
41
41
  },
42
42
  "description": "Common React library for all XYO projects that use React",
43
43
  "devDependencies": {
44
- "@storybook/react": "^7.0.24",
44
+ "@storybook/react": "^7.0.25",
45
45
  "@xylabs/ts-scripts-yarn3": "^2.18.7",
46
46
  "@xylabs/tsconfig-react": "^2.18.7",
47
- "@xyo-network/react-storybook": "^2.56.3",
47
+ "@xyo-network/react-storybook": "^2.56.4",
48
48
  "typescript": "^5.1.6"
49
49
  },
50
50
  "browser": "dist/esm/index.js",
@@ -89,5 +89,5 @@
89
89
  },
90
90
  "sideEffects": false,
91
91
  "types": "dist/types/index.d.ts",
92
- "version": "2.56.3"
92
+ "version": "2.56.4"
93
93
  }
@@ -38,7 +38,7 @@ export const WalletAccountSelect: React.FC<WalletAccountSelectProps> = ({
38
38
  const Item: React.FC = () => {
39
39
  const [account] = useWallet({ path: selected.toString(), wallet: coinTypeWallet })
40
40
  const customName = account ? addressNames[account.address] : undefined
41
- const favorite = account && account.address in addressNames
41
+ const favorite = !!account && account.address in addressNames
42
42
  return (
43
43
  <AddressRenderRowBox
44
44
  address={account?.address}
@@ -63,7 +63,7 @@ export const WalletAccountSelect: React.FC<WalletAccountSelectProps> = ({
63
63
  const Item: React.FC = () => {
64
64
  const [account] = useAccount({ index, wallet: coinTypeWallet })
65
65
  const customName = account ? addressNames[account.address] : undefined
66
- const favorite = account && account.address in addressNames
66
+ const favorite = !!account && account.address in addressNames
67
67
  return (
68
68
  <MenuItem key={account?.address} value={index}>
69
69
  <AddressRenderRowBox
@@ -27,7 +27,7 @@ export const WalletError: React.FC<WalletErrorProps> = ({ error }) => {
27
27
  }
28
28
 
29
29
  export interface WalletIdenticonProps {
30
- account?: AccountInstance
30
+ account?: AccountInstance | null
31
31
  name: string
32
32
  }
33
33
 
@@ -9,14 +9,14 @@ import { WalletRootPath } from './lib'
9
9
  export interface WalletProviderProps {
10
10
  basePath?: string
11
11
  defaultActiveAccountIndex?: number
12
- rootWallet?: WalletInstance
12
+ rootWallet?: WalletInstance | null
13
13
  }
14
14
 
15
15
  export const WalletProvider: React.FC<WithChildren<WalletProviderProps>> = ({
16
16
  basePath = WalletRootPath,
17
17
  children,
18
18
  defaultActiveAccountIndex = 0,
19
- rootWallet,
19
+ rootWallet = null,
20
20
  ...props
21
21
  }) => {
22
22
  const [activeAccountIndex, setActiveAccountIndex] = useState(defaultActiveAccountIndex)
@@ -27,7 +27,7 @@ export const WalletProvider: React.FC<WithChildren<WalletProviderProps>> = ({
27
27
  }
28
28
  }, [defaultActiveAccountIndex])
29
29
 
30
- const [coinTypeWallet] = usePromise(async () => {
30
+ const [coinTypeWallet = null] = usePromise(async () => {
31
31
  // ensure the wallet has the proper base
32
32
  if (rootWallet) {
33
33
  if (!rootWallet?.path.includes(basePath)) {
@@ -42,7 +42,7 @@ export const WalletProvider: React.FC<WithChildren<WalletProviderProps>> = ({
42
42
  }
43
43
  }, [basePath, rootWallet])
44
44
 
45
- const [activeAccount] = usePromise(() => coinTypeWallet?.derivePath(activeAccountIndex.toString()), [coinTypeWallet, activeAccountIndex])
45
+ const [activeAccount = null] = usePromise(() => coinTypeWallet?.derivePath(activeAccountIndex.toString()), [coinTypeWallet, activeAccountIndex])
46
46
 
47
47
  return (
48
48
  <WalletContext.Provider
@@ -4,15 +4,15 @@ import { Dispatch } from 'react'
4
4
 
5
5
  export interface WalletContextState extends ContextExState {
6
6
  /** Currently selected account */
7
- activeAccount?: WalletInstance
7
+ activeAccount?: WalletInstance | null
8
8
  /** Currently selected index */
9
9
  activeAccountIndex?: number
10
10
  /** Base path from which the wallet was derived */
11
11
  basePath?: string
12
12
  /** The coin_type derived wallet being used */
13
- coinTypeWallet?: WalletInstance
13
+ coinTypeWallet?: WalletInstance | null
14
14
  /** The root wallet being used */
15
- rootWallet?: WalletInstance
15
+ rootWallet?: WalletInstance | null
16
16
  /** Set currently selected index */
17
17
  setActiveAccountIndex?: Dispatch<number>
18
18
  }
@@ -1,5 +1,5 @@
1
1
  import { usePromise } from '@xylabs/react-promise'
2
- import { useContextEx } from '@xyo-network/react-shared'
2
+ import { useContextEx, useProvided } from '@xyo-network/react-shared'
3
3
  import { WalletInstance } from '@xyo-network/wallet-model'
4
4
 
5
5
  import { WalletContext } from './Context'
@@ -8,26 +8,34 @@ export const useWalletContext = (required = true) => {
8
8
  return useContextEx(WalletContext, 'Wallet', required)
9
9
  }
10
10
 
11
- export const useCoinTypeWallet = (required = true): [WalletInstance | undefined, Error | undefined] => {
11
+ export const useWalletProvided = () => {
12
+ return useProvided(WalletContext)
13
+ }
14
+
15
+ export const useCoinTypeWallet = (required = true): [WalletInstance | null | undefined, Error | undefined] => {
12
16
  const { coinTypeWallet } = useWalletContext(required)
13
17
  return [coinTypeWallet, undefined]
14
18
  }
15
19
 
16
- export const useRootWallet = (required = true): [WalletInstance | undefined, Error | undefined] => {
20
+ export const useRootWallet = (required = true): [WalletInstance | null | undefined, Error | undefined] => {
17
21
  const { rootWallet } = useWalletContext(required)
18
22
  return [rootWallet, undefined]
19
23
  }
20
24
 
21
- export const useIndexedWalletFromContext = (index: number, required = true): [WalletInstance | undefined, Error | undefined] => {
25
+ export const useIndexedWalletFromContext = (index: number, required = true): [WalletInstance | null | undefined, Error | undefined] => {
22
26
  const [coinTypeWallet] = useCoinTypeWallet(required)
23
- const [wallet] = usePromise(() => coinTypeWallet?.derivePath(index.toString()), [coinTypeWallet, index])
27
+ const [wallet] = usePromise(async () => (await coinTypeWallet?.derivePath(index.toString())) ?? coinTypeWallet, [coinTypeWallet, index])
24
28
  return [wallet, undefined]
25
29
  }
26
30
 
27
- export const useSelectedWalletAccount = (required = true): [WalletInstance | undefined, Error | undefined] => {
31
+ export const useSelectedWalletAccount = (required = true): [WalletInstance | null | undefined, Error | undefined] => {
28
32
  const { activeAccountIndex } = useWalletContext(required)
29
33
  //we pass in 0 as default since we can not call the hook optionally,
30
34
  //we resolve this false result by checking whether activeAccountIndex is defined before returning it
31
35
  const [account] = useIndexedWalletFromContext(activeAccountIndex ?? 0, required)
32
- return [activeAccountIndex !== undefined ? account : undefined, undefined]
36
+ if (activeAccountIndex === undefined && account === null) {
37
+ return [null, undefined]
38
+ } else {
39
+ return [account, undefined]
40
+ }
33
41
  }
@@ -3,7 +3,7 @@ import { AccountInstance } from '@xyo-network/account-model'
3
3
  import { WalletInstance } from '@xyo-network/wallet-model'
4
4
  import { useState } from 'react'
5
5
 
6
- import { useCoinTypeWallet, useWalletContext } from '../contexts'
6
+ import { useCoinTypeWallet, useWalletContext, useWalletProvided } from '../contexts'
7
7
 
8
8
  export interface AccountHookParams {
9
9
  account?: AccountInstance
@@ -13,9 +13,10 @@ export interface AccountHookParams {
13
13
  }
14
14
 
15
15
  export const useAccount = ({ wallet, account, index, required = false }: AccountHookParams = {}): [
16
- AccountInstance | undefined,
16
+ AccountInstance | null | undefined,
17
17
  Error | undefined,
18
18
  ] => {
19
+ const walletContextProvided = useWalletProvided()
19
20
  const [validationError, setValidationError] = useState<Error>()
20
21
  if (wallet && account && !validationError) {
21
22
  setValidationError(Error('useAccount can not have both a wallet and an account in the parameters'))
@@ -48,5 +49,5 @@ export const useAccount = ({ wallet, account, index, required = false }: Account
48
49
  setError(validationError)
49
50
  }
50
51
 
51
- return [error ? undefined : account ?? activeAccount, error]
52
+ return [error ? undefined : account ?? activeAccount ?? walletContextProvided ? null : undefined, error]
52
53
  }