@xyo-network/react-wallet 2.56.3 → 2.56.5

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 +545 -364
  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 → useAccount.ts} +4 -3
  53. package/src/hooks/{useWallet.tsx → useWallet.ts} +5 -4
  54. package/src/hooks/{useWallets.tsx → useWallets.ts} +5 -3
  55. package/src/hooks/{useWrapperAccount.tsx → useWrapperAccount.ts} +14 -6
@@ -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
  }
@@ -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 = (account?: AccountInstance): AccountInstance | undefined => {
11
- const [wallet] = usePromise(async () => {
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
  }