@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
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
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { usePromise } from '@xylabs/react-promise'
|
|
1
|
+
import { State as PromiseState, usePromise } from '@xylabs/react-promise'
|
|
2
2
|
import { HDWallet } from '@xyo-network/account'
|
|
3
3
|
import { AccountInstance } from '@xyo-network/account-model'
|
|
4
4
|
import { WalletInstance } from '@xyo-network/wallet-model'
|
|
@@ -7,20 +7,28 @@ import { Mutex } from 'async-mutex'
|
|
|
7
7
|
let globalWrapperWallet: WalletInstance | undefined = undefined
|
|
8
8
|
const globalWrapperWalletMutex = new Mutex()
|
|
9
9
|
|
|
10
|
-
export const useWrapperAccount = (
|
|
11
|
-
|
|
10
|
+
export const useWrapperAccount = (
|
|
11
|
+
account?: AccountInstance | null,
|
|
12
|
+
): [AccountInstance | null | undefined, Error | undefined, PromiseState | undefined] => {
|
|
13
|
+
return usePromise(async () => {
|
|
12
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
|
+
|
|
13
20
|
if (globalWrapperWallet) {
|
|
14
21
|
return globalWrapperWallet
|
|
15
22
|
}
|
|
23
|
+
|
|
16
24
|
try {
|
|
17
25
|
globalWrapperWallet = await HDWallet.random()
|
|
26
|
+
console.log(`Global Wrapper Wallet Creation Success: ${globalWrapperWallet.address}`)
|
|
18
27
|
} catch (ex) {
|
|
19
28
|
const error = ex as Error
|
|
20
|
-
console.error(`Wrapper Wallet Creation Failed: ${error.message}`)
|
|
29
|
+
console.error(`Global Wrapper Wallet Creation Failed: ${error.message}`)
|
|
21
30
|
}
|
|
22
31
|
return globalWrapperWallet
|
|
23
32
|
})
|
|
24
|
-
}, [])
|
|
25
|
-
return account ?? wallet
|
|
33
|
+
}, [account])
|
|
26
34
|
}
|