@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.
- package/dist/cjs/components/WalletAccountSelect/Select.js +2 -2
- package/dist/cjs/components/WalletAccountSelect/Select.js.map +1 -1
- package/dist/cjs/contexts/Wallet/Provider.js +3 -3
- package/dist/cjs/contexts/Wallet/Provider.js.map +1 -1
- package/dist/cjs/contexts/Wallet/use.js +13 -3
- package/dist/cjs/contexts/Wallet/use.js.map +1 -1
- package/dist/cjs/hooks/useAccount.js +6 -4
- package/dist/cjs/hooks/useAccount.js.map +1 -1
- package/dist/cjs/hooks/useWallet.js +2 -1
- package/dist/cjs/hooks/useWallet.js.map +1 -1
- package/dist/cjs/hooks/useWallets.js +3 -1
- package/dist/cjs/hooks/useWallets.js.map +1 -1
- package/dist/cjs/hooks/useWrapperAccount.js +8 -4
- package/dist/cjs/hooks/useWrapperAccount.js.map +1 -1
- package/dist/docs.json +497 -316
- package/dist/esm/components/WalletAccountSelect/Select.js +2 -2
- package/dist/esm/components/WalletAccountSelect/Select.js.map +1 -1
- package/dist/esm/contexts/Wallet/Provider.js +3 -3
- package/dist/esm/contexts/Wallet/Provider.js.map +1 -1
- package/dist/esm/contexts/Wallet/use.js +11 -3
- package/dist/esm/contexts/Wallet/use.js.map +1 -1
- package/dist/esm/hooks/useAccount.js +3 -2
- package/dist/esm/hooks/useAccount.js.map +1 -1
- package/dist/esm/hooks/useWallet.js +3 -2
- package/dist/esm/hooks/useWallet.js.map +1 -1
- package/dist/esm/hooks/useWallets.js +3 -1
- package/dist/esm/hooks/useWallets.js.map +1 -1
- package/dist/esm/hooks/useWrapperAccount.js +8 -4
- package/dist/esm/hooks/useWrapperAccount.js.map +1 -1
- package/dist/types/components/WalletAccountSelect/WalletInfo.d.ts +1 -1
- package/dist/types/components/WalletAccountSelect/WalletInfo.d.ts.map +1 -1
- package/dist/types/contexts/Wallet/Provider.d.ts +1 -1
- package/dist/types/contexts/Wallet/Provider.d.ts.map +1 -1
- package/dist/types/contexts/Wallet/State.d.ts +3 -3
- package/dist/types/contexts/Wallet/State.d.ts.map +1 -1
- package/dist/types/contexts/Wallet/use.d.ts +5 -4
- package/dist/types/contexts/Wallet/use.d.ts.map +1 -1
- package/dist/types/hooks/useAccount.d.ts +1 -1
- package/dist/types/hooks/useAccount.d.ts.map +1 -1
- package/dist/types/hooks/useWallet.d.ts +2 -2
- package/dist/types/hooks/useWallet.d.ts.map +1 -1
- package/dist/types/hooks/useWallets.d.ts +2 -2
- package/dist/types/hooks/useWallets.d.ts.map +1 -1
- package/dist/types/hooks/useWrapperAccount.d.ts +2 -1
- package/dist/types/hooks/useWrapperAccount.d.ts.map +1 -1
- package/package.json +11 -11
- package/src/components/WalletAccountSelect/Select.tsx +2 -2
- package/src/components/WalletAccountSelect/WalletInfo.tsx +1 -1
- package/src/contexts/Wallet/Provider.tsx +4 -4
- package/src/contexts/Wallet/State.ts +3 -3
- package/src/contexts/Wallet/use.ts +15 -7
- package/src/hooks/useAccount.tsx +4 -3
- package/src/hooks/useWallet.tsx +5 -4
- package/src/hooks/useWallets.tsx +5 -3
- 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":";AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAe,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAgC,MAAM,mCAAmC,CAAA;AAErG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AASnD,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;IAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAuC,CAAC,EACtE,YAAY,GAAG,EAAE,EACjB,QAAQ,EACR,QAAQ,GAAG,EAAE,EACb,KAAK,EACL,WAAW,GAAG,CAAC,EACf,YAAY,GAAG,KAAK,EACpB,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,kBAAkB,GAAG,CAAC,EAAE,qBAAqB,EAAE,cAAc,EAAE,GAAG,gBAAgB,EAAE,CAAA;IAC5F,MAAM,QAAQ,GAAG,CAAC,cAAc,IAAI,kBAAkB,KAAK,SAAS,CAAA;IAEpE,OAAO,CACL,4BACG,cAAc,CAAC,CAAC,CAAC,CAChB,KAAC,QAAQ,IACP,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACxB,MAAM,IAAI,GAAa,GAAG,EAAE;oBAC1B,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;oBAClF,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;oBACtE,MAAM,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,YAAY,CAAA;
|
|
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,
|
|
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
|
-
|
|
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;
|
|
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;
|
|
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;
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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;
|
|
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;
|
|
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
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
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,
|
|
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;
|
|
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;
|
|
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;
|
|
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":"
|
|
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.
|
|
24
|
-
"@xyo-network/account-model": "^2.64.
|
|
25
|
-
"@xyo-network/bip39": "^2.64.
|
|
26
|
-
"@xyo-network/core": "^2.64.
|
|
27
|
-
"@xyo-network/react-address-render": "^2.56.
|
|
28
|
-
"@xyo-network/react-network": "^2.56.
|
|
29
|
-
"@xyo-network/react-shared": "^2.56.
|
|
30
|
-
"@xyo-network/wallet-model": "^2.64.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
@@ -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
|
|
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
|
-
|
|
36
|
+
if (activeAccountIndex === undefined && account === null) {
|
|
37
|
+
return [null, undefined]
|
|
38
|
+
} else {
|
|
39
|
+
return [account, undefined]
|
|
40
|
+
}
|
|
33
41
|
}
|
package/src/hooks/useAccount.tsx
CHANGED
|
@@ -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
|
}
|