@xyo-network/react-wallet 2.56.2 → 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/MaxAccounts/MaxAccountsTableRow.js +1 -1
- package/dist/cjs/components/MaxAccounts/MaxAccountsTableRow.js.map +1 -1
- package/dist/cjs/components/MaxAccounts/OutOfBoundsSnackBar.js +1 -1
- package/dist/cjs/components/MaxAccounts/OutOfBoundsSnackBar.js.map +1 -1
- package/dist/cjs/components/SeedPhrase/DefaultSeedPhrase.js +1 -1
- package/dist/cjs/components/SeedPhrase/DefaultSeedPhrase.js.map +1 -1
- package/dist/cjs/components/SeedPhrase/_shared/SeedPhraseIconButton.js +1 -1
- package/dist/cjs/components/SeedPhrase/_shared/SeedPhraseIconButton.js.map +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/SeedPhraseDialog.js +2 -2
- package/dist/cjs/components/SeedPhrase/dialog/SeedPhraseDialog.js.map +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/components/DialogActionButtons.js +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/components/DialogActionButtons.js.map +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/components/OverwriteWarning.js +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/components/OverwriteWarning.js.map +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/components/fields/NewPhraseTextField.js +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/components/fields/NewPhraseTextField.js.map +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.js +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.js.map +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/components/fields/validation-messages/InvalidPhrase.js +1 -1
- package/dist/cjs/components/SeedPhrase/dialog/components/fields/validation-messages/InvalidPhrase.js.map +1 -1
- package/dist/cjs/components/SeedPhrase/settings/SeedPhraseTableRow.js +1 -1
- package/dist/cjs/components/SeedPhrase/settings/SeedPhraseTableRow.js.map +1 -1
- package/dist/cjs/components/WalletAccountDetails/WalletAccountDetails.js +1 -1
- package/dist/cjs/components/WalletAccountDetails/WalletAccountDetails.js.map +1 -1
- package/dist/cjs/components/WalletAccountSelect/Select.js +3 -3
- package/dist/cjs/components/WalletAccountSelect/Select.js.map +1 -1
- package/dist/cjs/components/WalletAccountSelect/WalletInfo.js +1 -1
- package/dist/cjs/components/WalletAccountSelect/WalletInfo.js.map +1 -1
- package/dist/cjs/contexts/SeedPhrase/Provider.js +2 -2
- package/dist/cjs/contexts/SeedPhrase/Provider.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/index.js +1 -1
- package/dist/cjs/hooks/index.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/{useWrapperWallet.js → useWrapperAccount.js} +12 -8
- package/dist/cjs/hooks/useWrapperAccount.js.map +1 -0
- package/dist/docs.json +3111 -2677
- 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/index.js +1 -1
- package/dist/esm/hooks/index.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/{useWrapperWallet.js → useWrapperAccount.js} +10 -6
- package/dist/esm/hooks/useWrapperAccount.js.map +1 -0
- 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/index.d.ts +1 -1
- package/dist/types/hooks/index.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 +4 -0
- package/dist/types/hooks/useWrapperAccount.d.ts.map +1 -0
- package/package.json +13 -13
- 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/index.ts +1 -1
- 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 +34 -0
- package/dist/cjs/hooks/useWrapperWallet.js.map +0 -1
- package/dist/esm/hooks/useWrapperWallet.js.map +0 -1
- package/dist/types/hooks/useWrapperWallet.d.ts +0 -3
- package/dist/types/hooks/useWrapperWallet.d.ts.map +0 -1
- package/src/hooks/useWrapperWallet.tsx +0 -25
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
|
}
|
package/src/hooks/useWallet.tsx
CHANGED
|
@@ -4,20 +4,21 @@ import { DataLike } from '@xyo-network/core'
|
|
|
4
4
|
import { WalletInstance } from '@xyo-network/wallet-model'
|
|
5
5
|
import { useState } from 'react'
|
|
6
6
|
|
|
7
|
-
import { useSelectedWalletAccount } from '../contexts'
|
|
7
|
+
import { useSelectedWalletAccount, useWalletProvided } from '../contexts'
|
|
8
8
|
|
|
9
9
|
export interface WalletHookParams {
|
|
10
10
|
mnemonic?: string
|
|
11
11
|
path?: string
|
|
12
12
|
required?: boolean
|
|
13
13
|
seed?: DataLike
|
|
14
|
-
wallet?: WalletInstance
|
|
14
|
+
wallet?: WalletInstance | null
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export const useWallet = ({ mnemonic, wallet, path, required = false, seed }: WalletHookParams = {}): [
|
|
18
|
-
WalletInstance | undefined,
|
|
18
|
+
WalletInstance | null | undefined,
|
|
19
19
|
Error | undefined,
|
|
20
20
|
] => {
|
|
21
|
+
const walletContextProvided = useWalletProvided()
|
|
21
22
|
const [error, setError] = useState<Error>()
|
|
22
23
|
const [contextAccount] = useSelectedWalletAccount(!wallet && required)
|
|
23
24
|
const [activeAccount] = usePromise(async () => {
|
|
@@ -42,5 +43,5 @@ export const useWallet = ({ mnemonic, wallet, path, required = false, seed }: Wa
|
|
|
42
43
|
setError(ex as Error)
|
|
43
44
|
}
|
|
44
45
|
}, [mnemonic, contextAccount, seed, path, wallet])
|
|
45
|
-
return [activeAccount, error]
|
|
46
|
+
return [activeAccount ?? walletContextProvided ? null : activeAccount, error]
|
|
46
47
|
}
|
package/src/hooks/useWallets.tsx
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { usePromise } from '@xylabs/react-promise'
|
|
2
2
|
import { WalletInstance } from '@xyo-network/wallet-model'
|
|
3
3
|
|
|
4
|
+
import { useWalletProvided } from '../contexts'
|
|
4
5
|
import { useWallet } from './useWallet'
|
|
5
6
|
|
|
6
7
|
export interface WalletsHookParams {
|
|
7
8
|
paths: string[]
|
|
8
|
-
wallet?: WalletInstance
|
|
9
|
+
wallet?: WalletInstance | null
|
|
9
10
|
}
|
|
10
11
|
|
|
11
|
-
export const useWallets = ({ wallet, paths }: WalletsHookParams): [WalletInstance[] | undefined, Error | undefined] => {
|
|
12
|
+
export const useWallets = ({ wallet, paths }: WalletsHookParams): [WalletInstance[] | null | undefined, Error | undefined] => {
|
|
13
|
+
const walletContextProvided = useWalletProvided()
|
|
12
14
|
const [foundWallet] = useWallet({ wallet })
|
|
13
15
|
const [wallets, error] = usePromise(
|
|
14
16
|
() => (foundWallet ? Promise.all(paths.map((path) => foundWallet.derivePath(path))) : undefined),
|
|
15
17
|
[foundWallet, paths],
|
|
16
18
|
)
|
|
17
|
-
return [wallets, error]
|
|
19
|
+
return [wallets ?? walletContextProvided ? null : wallets, error]
|
|
18
20
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { State as PromiseState, usePromise } from '@xylabs/react-promise'
|
|
2
|
+
import { HDWallet } from '@xyo-network/account'
|
|
3
|
+
import { AccountInstance } from '@xyo-network/account-model'
|
|
4
|
+
import { WalletInstance } from '@xyo-network/wallet-model'
|
|
5
|
+
import { Mutex } from 'async-mutex'
|
|
6
|
+
|
|
7
|
+
let globalWrapperWallet: WalletInstance | undefined = undefined
|
|
8
|
+
const globalWrapperWalletMutex = new Mutex()
|
|
9
|
+
|
|
10
|
+
export const useWrapperAccount = (
|
|
11
|
+
account?: AccountInstance | null,
|
|
12
|
+
): [AccountInstance | null | undefined, Error | undefined, PromiseState | undefined] => {
|
|
13
|
+
return usePromise(async () => {
|
|
14
|
+
return await globalWrapperWalletMutex.runExclusive(async () => {
|
|
15
|
+
//if we are expecting to receive a wallet or did receive on, return the override account
|
|
16
|
+
if (account !== undefined) {
|
|
17
|
+
return account
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (globalWrapperWallet) {
|
|
21
|
+
return globalWrapperWallet
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
try {
|
|
25
|
+
globalWrapperWallet = await HDWallet.random()
|
|
26
|
+
console.log(`Global Wrapper Wallet Creation Success: ${globalWrapperWallet.address}`)
|
|
27
|
+
} catch (ex) {
|
|
28
|
+
const error = ex as Error
|
|
29
|
+
console.error(`Global Wrapper Wallet Creation Failed: ${error.message}`)
|
|
30
|
+
}
|
|
31
|
+
return globalWrapperWallet
|
|
32
|
+
})
|
|
33
|
+
}, [account])
|
|
34
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useWrapperWallet.js","sourceRoot":"","sources":["../../../src/hooks/useWrapperWallet.tsx"],"names":[],"mappings":";;;;AAAA,yDAAkD;AAClD,kDAA+C;AAE/C,6CAAmC;AAEnC,IAAI,mBAAmB,GAA+B,SAAS,CAAA;AAC/D,MAAM,wBAAwB,GAAG,IAAI,mBAAK,EAAE,CAAA;AAErC,MAAM,gBAAgB,GAAG,GAA+B,EAAE;IAC/D,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,0BAAU,EAAC,GAAS,EAAE;QACrC,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC,GAAS,EAAE;YAC5D,IAAI,mBAAmB,EAAE;gBACvB,OAAO,mBAAmB,CAAA;aAC3B;YACD,IAAI;gBACF,mBAAmB,GAAG,MAAM,kBAAQ,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,CAAA,CAAC,CAAA;IACJ,CAAC,CAAA,EAAE,EAAE,CAAC,CAAA;IACN,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAhBY,QAAA,gBAAgB,oBAgB5B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useWrapperWallet.js","sourceRoot":"","sources":["../../../src/hooks/useWrapperWallet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/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,gBAAgB,GAAG,GAA+B,EAAE;IAC/D,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,MAAM,CAAA;AACf,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useWrapperWallet.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWrapperWallet.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAM1D,eAAO,MAAM,gBAAgB,QAAO,cAAc,GAAG,SAgBpD,CAAA"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { usePromise } from '@xylabs/react-promise'
|
|
2
|
-
import { HDWallet } from '@xyo-network/account'
|
|
3
|
-
import { WalletInstance } from '@xyo-network/wallet-model'
|
|
4
|
-
import { Mutex } from 'async-mutex'
|
|
5
|
-
|
|
6
|
-
let globalWrapperWallet: WalletInstance | undefined = undefined
|
|
7
|
-
const globalWrapperWalletMutex = new Mutex()
|
|
8
|
-
|
|
9
|
-
export const useWrapperWallet = (): WalletInstance | undefined => {
|
|
10
|
-
const [wallet] = usePromise(async () => {
|
|
11
|
-
return await globalWrapperWalletMutex.runExclusive(async () => {
|
|
12
|
-
if (globalWrapperWallet) {
|
|
13
|
-
return globalWrapperWallet
|
|
14
|
-
}
|
|
15
|
-
try {
|
|
16
|
-
globalWrapperWallet = await HDWallet.random()
|
|
17
|
-
} catch (ex) {
|
|
18
|
-
const error = ex as Error
|
|
19
|
-
console.error(`Wrapper Wallet Creation Failed: ${error.message}`)
|
|
20
|
-
}
|
|
21
|
-
return globalWrapperWallet
|
|
22
|
-
})
|
|
23
|
-
}, [])
|
|
24
|
-
return wallet
|
|
25
|
-
}
|