@xyo-network/react-wallet 2.45.0 → 2.45.2
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 +9 -6
- package/dist/cjs/contexts/Wallet/Provider.js.map +1 -1
- package/dist/cjs/contexts/Wallet/index.js +1 -0
- package/dist/cjs/contexts/Wallet/index.js.map +1 -1
- package/dist/cjs/contexts/Wallet/lib/WalletPath.js +8 -0
- package/dist/cjs/contexts/Wallet/lib/WalletPath.js.map +1 -0
- package/dist/cjs/contexts/Wallet/lib/index.js +5 -0
- package/dist/cjs/contexts/Wallet/lib/index.js.map +1 -0
- package/dist/docs.json +249 -105
- package/dist/esm/components/WalletAccountSelect/Select.js +1 -1
- package/dist/esm/components/WalletAccountSelect/Select.js.map +1 -1
- package/dist/esm/contexts/Wallet/Provider.js +9 -6
- package/dist/esm/contexts/Wallet/Provider.js.map +1 -1
- package/dist/esm/contexts/Wallet/index.js +1 -0
- package/dist/esm/contexts/Wallet/index.js.map +1 -1
- package/dist/esm/contexts/Wallet/lib/WalletPath.js +5 -0
- package/dist/esm/contexts/Wallet/lib/WalletPath.js.map +1 -0
- package/dist/esm/contexts/Wallet/lib/index.js +2 -0
- package/dist/esm/contexts/Wallet/lib/index.js.map +1 -0
- package/dist/types/contexts/Wallet/Provider.d.ts +1 -0
- package/dist/types/contexts/Wallet/Provider.d.ts.map +1 -1
- package/dist/types/contexts/Wallet/State.d.ts +2 -0
- package/dist/types/contexts/Wallet/State.d.ts.map +1 -1
- package/dist/types/contexts/Wallet/index.d.ts +1 -0
- package/dist/types/contexts/Wallet/index.d.ts.map +1 -1
- package/dist/types/contexts/Wallet/lib/WalletPath.d.ts +5 -0
- package/dist/types/contexts/Wallet/lib/WalletPath.d.ts.map +1 -0
- package/dist/types/contexts/Wallet/lib/index.d.ts +2 -0
- package/dist/types/contexts/Wallet/lib/index.d.ts.map +1 -0
- package/package.json +7 -8
- package/src/components/WalletAccountSelect/Select.tsx +1 -1
- package/src/contexts/Wallet/Provider.tsx +15 -7
- package/src/contexts/Wallet/State.ts +2 -0
- package/src/contexts/Wallet/index.ts +1 -0
- package/src/contexts/Wallet/lib/WalletPath.ts +5 -0
- package/src/contexts/Wallet/lib/index.ts +1 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { MenuItem } from '@mui/material';
|
|
3
3
|
import { EthAddress } from '@xylabs/eth-address';
|
|
4
|
-
import { SelectEx } from '@xylabs/react-common';
|
|
5
4
|
import { EthAccountBox } from '@xylabs/react-crypto';
|
|
6
5
|
import { FlexRow } from '@xylabs/react-flexbox';
|
|
7
6
|
import { Identicon } from '@xylabs/react-identicon';
|
|
7
|
+
import { SelectEx } from '@xylabs/react-select';
|
|
8
8
|
import { useWallet } from '../../contexts';
|
|
9
9
|
const arrayRange = (length, start = 0) => {
|
|
10
10
|
return Array.from(Array(length).keys()).map((x) => x + start);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../src/components/WalletAccountSelect/Select.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../src/components/WalletAccountSelect/Select.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAS1C,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,EAAE,QAAQ,EAAE,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC7I,MAAM,EAAE,kBAAkB,GAAG,CAAC,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAE7E,OAAO,CACL,KAAC,QAAQ,IACP,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;YACxB,MAAM,OAAO,GAAG,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC1D,OAAO,CACL,MAAC,OAAO,IAAC,cAAc,EAAC,YAAY,EAAC,GAAG,EAAE,CAAC,aACxC,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,OAAO,cACN,KAAC,SAAS,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,GAAI,GACvD,CACX,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,aAAa,IAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,GAAI,IAC7G,CACX,CAAA;QACH,CAAC,EACD,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAC/E,IAAI,EAAE,IAAI,EACV,OAAO,EAAC,UAAU,KACd,KAAK,YAER,MAAM;YACL,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpC,MAAM,OAAO,GAAG,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACvD,OAAO,CACL,KAAC,QAAQ,IAAa,KAAK,EAAE,KAAK,YAChC,KAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,GAAI,IADhG,KAAK,CAET,CACZ,CAAA;YACH,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,GACC,CACZ,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -2,15 +2,14 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
3
|
import { AccountContext } from '../Account';
|
|
4
4
|
import { WalletContext } from './Context';
|
|
5
|
+
import { WalletRootPath } from './lib';
|
|
5
6
|
import { useWallet } from './use';
|
|
6
|
-
const WalletBase = 'm';
|
|
7
|
-
const WalletRootPath = "44'/60'/0'/0";
|
|
8
7
|
const AccountWalletProvider = (props) => {
|
|
9
8
|
const { wallet, activeAccountIndex = 0 } = useWallet();
|
|
10
9
|
return _jsx(AccountContext.Provider, { value: { account: wallet?.deriveAccount(activeAccountIndex.toString()), provided: true }, ...props });
|
|
11
10
|
};
|
|
12
|
-
export const WalletProvider = ({ children, defaultActiveAccountIndex = 0, defaultWallet, ...props }) => {
|
|
13
|
-
const [wallet, setWallet] = useState(
|
|
11
|
+
export const WalletProvider = ({ basePath = WalletRootPath, children, defaultActiveAccountIndex = 0, defaultWallet, ...props }) => {
|
|
12
|
+
const [wallet, setWallet] = useState();
|
|
14
13
|
const [activeAccountIndex, setActiveAccountIndex] = useState(defaultActiveAccountIndex);
|
|
15
14
|
useEffect(() => {
|
|
16
15
|
if (defaultActiveAccountIndex !== undefined) {
|
|
@@ -21,16 +20,20 @@ export const WalletProvider = ({ children, defaultActiveAccountIndex = 0, defaul
|
|
|
21
20
|
// ensure the wallet has the proper base
|
|
22
21
|
if (defaultWallet) {
|
|
23
22
|
try {
|
|
24
|
-
const walletWithBasePath = defaultWallet?.derivePath(
|
|
23
|
+
const walletWithBasePath = defaultWallet?.derivePath(basePath);
|
|
25
24
|
setWallet(walletWithBasePath);
|
|
26
25
|
}
|
|
27
26
|
catch (e) {
|
|
28
27
|
console.error('Error setting proper wallet base path', e);
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
|
-
|
|
30
|
+
else {
|
|
31
|
+
throw Error('WalletProvider requires a default HDWallet');
|
|
32
|
+
}
|
|
33
|
+
}, [basePath, defaultWallet]);
|
|
32
34
|
return (_jsx(WalletContext.Provider, { value: {
|
|
33
35
|
activeAccountIndex,
|
|
36
|
+
basePath,
|
|
34
37
|
provided: true,
|
|
35
38
|
setActiveAccountIndex,
|
|
36
39
|
setWallet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/Wallet/Provider.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/Wallet/Provider.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAQjC,MAAM,qBAAqB,GAA2B,CAAC,KAAK,EAAE,EAAE;IAC9D,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,CAAC,EAAE,GAAG,SAAS,EAAE,CAAA;IAEtD,OAAO,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAM,KAAK,GAAI,CAAA;AACzI,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAgD,CAAC,EAC1E,QAAQ,GAAG,cAAc,EACzB,QAAQ,EACR,yBAAyB,GAAG,CAAC,EAC7B,aAAa,EACb,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAwB,CAAA;IAC5D,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,SAAS,CAAC,GAAG,EAAE;QACb,wCAAwC;QACxC,IAAI,aAAa,EAAE;YACjB,IAAI;gBACF,MAAM,kBAAkB,GAAG,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;gBAC9D,SAAS,CAAC,kBAAkB,CAAC,CAAA;aAC9B;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAA;aAC1D;SACF;aAAM;YACL,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAA;SAC1D;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IAE7B,OAAO,CACL,KAAC,aAAa,CAAC,QAAQ,IACrB,KAAK,EAAE;YACL,kBAAkB;YAClB,QAAQ;YACR,QAAQ,EAAE,IAAI;YACd,qBAAqB;YACrB,SAAS;YACT,MAAM;SACP,KACG,KAAK,YAET,KAAC,qBAAqB,cAAE,QAAQ,GAAyB,GAClC,CAC1B,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contexts/Wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contexts/Wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletPath.js","sourceRoot":"","sources":["../../../../../src/contexts/Wallet/lib/WalletPath.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;AAC7B,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,UAAU,IAAI,CAAA;AAEtD,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAA;AAC5C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,UAAU,IAAI,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/contexts/Wallet/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/Provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/Provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAQ/C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,aAAa,CAAC,EAAE,QAAQ,CAAA;CACzB;AAQD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,CA6CtE,CAAA"}
|
|
@@ -3,6 +3,8 @@ import { ContextExState } from '@xyo-network/react-shared';
|
|
|
3
3
|
import { Dispatch, SetStateAction } from 'react';
|
|
4
4
|
export interface WalletContextState extends ContextExState {
|
|
5
5
|
activeAccountIndex?: number;
|
|
6
|
+
/** Base path from which the wallet was derived */
|
|
7
|
+
basePath?: string;
|
|
6
8
|
setActiveAccountIndex?: Dispatch<number>;
|
|
7
9
|
setWallet?: Dispatch<SetStateAction<HDWallet | undefined>>;
|
|
8
10
|
wallet?: HDWallet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEhD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxC,SAAS,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAA;IAC1D,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB"}
|
|
1
|
+
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEhD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qBAAqB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxC,SAAS,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAA;IAC1D,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletPath.d.ts","sourceRoot":"","sources":["../../../../../src/contexts/Wallet/lib/WalletPath.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,MAAM,CAAA;AAC7B,eAAO,MAAM,qBAAqB,QAAoB,CAAA;AAEtD,eAAO,MAAM,cAAc,iBAAiB,CAAA;AAC5C,eAAO,MAAM,UAAU,QAAoC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/contexts/Wallet/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
package/package.json
CHANGED
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@scure/bip39": "^1.1.1",
|
|
14
14
|
"@xylabs/eth-address": "^2.7.4",
|
|
15
|
-
"@xylabs/react-common": "^2.16.11",
|
|
16
15
|
"@xylabs/react-crypto": "^2.16.11",
|
|
17
16
|
"@xylabs/react-flexbox": "^2.16.11",
|
|
18
17
|
"@xylabs/react-identicon": "^2.16.11",
|
|
19
18
|
"@xylabs/react-number-status": "^2.16.11",
|
|
19
|
+
"@xylabs/react-select": "^2.16.11",
|
|
20
20
|
"@xylabs/react-shared": "^2.16.11",
|
|
21
|
-
"@xyo-network/account": "^2.51.
|
|
22
|
-
"@xyo-network/account-model": "^2.51.
|
|
23
|
-
"@xyo-network/react-network": "^2.45.
|
|
24
|
-
"@xyo-network/react-shared": "^2.45.
|
|
21
|
+
"@xyo-network/account": "^2.51.9",
|
|
22
|
+
"@xyo-network/account-model": "^2.51.9",
|
|
23
|
+
"@xyo-network/react-network": "^2.45.2",
|
|
24
|
+
"@xyo-network/react-shared": "^2.45.2"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"@mui/icons-material": "^5",
|
|
@@ -30,7 +30,6 @@
|
|
|
30
30
|
"axios": "^1",
|
|
31
31
|
"react": "^18",
|
|
32
32
|
"react-dom": "^18",
|
|
33
|
-
"react-helmet": "^6",
|
|
34
33
|
"react-router-dom": "^6"
|
|
35
34
|
},
|
|
36
35
|
"description": "Common React library for all XYO projects that use React",
|
|
@@ -38,7 +37,7 @@
|
|
|
38
37
|
"@storybook/react": "^6.5.16",
|
|
39
38
|
"@xylabs/ts-scripts-yarn3": "^2.16.1",
|
|
40
39
|
"@xylabs/tsconfig-react": "^2.16.1",
|
|
41
|
-
"@xyo-network/react-storybook": "^2.45.
|
|
40
|
+
"@xyo-network/react-storybook": "^2.45.2",
|
|
42
41
|
"require-from-string": "^2.0.2",
|
|
43
42
|
"typescript": "^4.9.5"
|
|
44
43
|
},
|
|
@@ -84,5 +83,5 @@
|
|
|
84
83
|
},
|
|
85
84
|
"sideEffects": false,
|
|
86
85
|
"types": "dist/types/index.d.ts",
|
|
87
|
-
"version": "2.45.
|
|
86
|
+
"version": "2.45.2"
|
|
88
87
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { MenuItem, SelectProps } from '@mui/material'
|
|
2
2
|
import { EthAddress } from '@xylabs/eth-address'
|
|
3
|
-
import { SelectEx } from '@xylabs/react-common'
|
|
4
3
|
import { EthAccountBox } from '@xylabs/react-crypto'
|
|
5
4
|
import { FlexRow } from '@xylabs/react-flexbox'
|
|
6
5
|
import { Identicon } from '@xylabs/react-identicon'
|
|
6
|
+
import { SelectEx } from '@xylabs/react-select'
|
|
7
7
|
|
|
8
8
|
import { useWallet } from '../../contexts'
|
|
9
9
|
|
|
@@ -4,12 +4,11 @@ import { useEffect, useState } from 'react'
|
|
|
4
4
|
|
|
5
5
|
import { AccountContext } from '../Account'
|
|
6
6
|
import { WalletContext } from './Context'
|
|
7
|
+
import { WalletRootPath } from './lib'
|
|
7
8
|
import { useWallet } from './use'
|
|
8
9
|
|
|
9
|
-
const WalletBase = 'm'
|
|
10
|
-
const WalletRootPath = "44'/60'/0'/0"
|
|
11
|
-
|
|
12
10
|
export interface WalletProviderProps {
|
|
11
|
+
basePath?: string
|
|
13
12
|
defaultActiveAccountIndex?: number
|
|
14
13
|
defaultWallet?: HDWallet
|
|
15
14
|
}
|
|
@@ -20,8 +19,14 @@ const AccountWalletProvider: React.FC<WithChildren> = (props) => {
|
|
|
20
19
|
return <AccountContext.Provider value={{ account: wallet?.deriveAccount(activeAccountIndex.toString()), provided: true }} {...props} />
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
export const WalletProvider: React.FC<WithChildren<WalletProviderProps>> = ({
|
|
24
|
-
|
|
22
|
+
export const WalletProvider: React.FC<WithChildren<WalletProviderProps>> = ({
|
|
23
|
+
basePath = WalletRootPath,
|
|
24
|
+
children,
|
|
25
|
+
defaultActiveAccountIndex = 0,
|
|
26
|
+
defaultWallet,
|
|
27
|
+
...props
|
|
28
|
+
}) => {
|
|
29
|
+
const [wallet, setWallet] = useState<HDWallet | undefined>()
|
|
25
30
|
const [activeAccountIndex, setActiveAccountIndex] = useState(defaultActiveAccountIndex)
|
|
26
31
|
|
|
27
32
|
useEffect(() => {
|
|
@@ -34,18 +39,21 @@ export const WalletProvider: React.FC<WithChildren<WalletProviderProps>> = ({ ch
|
|
|
34
39
|
// ensure the wallet has the proper base
|
|
35
40
|
if (defaultWallet) {
|
|
36
41
|
try {
|
|
37
|
-
const walletWithBasePath = defaultWallet?.derivePath(
|
|
42
|
+
const walletWithBasePath = defaultWallet?.derivePath(basePath)
|
|
38
43
|
setWallet(walletWithBasePath)
|
|
39
44
|
} catch (e) {
|
|
40
45
|
console.error('Error setting proper wallet base path', e)
|
|
41
46
|
}
|
|
47
|
+
} else {
|
|
48
|
+
throw Error('WalletProvider requires a default HDWallet')
|
|
42
49
|
}
|
|
43
|
-
}, [defaultWallet])
|
|
50
|
+
}, [basePath, defaultWallet])
|
|
44
51
|
|
|
45
52
|
return (
|
|
46
53
|
<WalletContext.Provider
|
|
47
54
|
value={{
|
|
48
55
|
activeAccountIndex,
|
|
56
|
+
basePath,
|
|
49
57
|
provided: true,
|
|
50
58
|
setActiveAccountIndex,
|
|
51
59
|
setWallet,
|
|
@@ -4,6 +4,8 @@ import { Dispatch, SetStateAction } from 'react'
|
|
|
4
4
|
|
|
5
5
|
export interface WalletContextState extends ContextExState {
|
|
6
6
|
activeAccountIndex?: number
|
|
7
|
+
/** Base path from which the wallet was derived */
|
|
8
|
+
basePath?: string
|
|
7
9
|
setActiveAccountIndex?: Dispatch<number>
|
|
8
10
|
setWallet?: Dispatch<SetStateAction<HDWallet | undefined>>
|
|
9
11
|
wallet?: HDWallet
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './WalletPath'
|