@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.
Files changed (95) hide show
  1. package/dist/cjs/components/MaxAccounts/MaxAccountsTableRow.js +1 -1
  2. package/dist/cjs/components/MaxAccounts/MaxAccountsTableRow.js.map +1 -1
  3. package/dist/cjs/components/MaxAccounts/OutOfBoundsSnackBar.js +1 -1
  4. package/dist/cjs/components/MaxAccounts/OutOfBoundsSnackBar.js.map +1 -1
  5. package/dist/cjs/components/SeedPhrase/DefaultSeedPhrase.js +1 -1
  6. package/dist/cjs/components/SeedPhrase/DefaultSeedPhrase.js.map +1 -1
  7. package/dist/cjs/components/SeedPhrase/_shared/SeedPhraseIconButton.js +1 -1
  8. package/dist/cjs/components/SeedPhrase/_shared/SeedPhraseIconButton.js.map +1 -1
  9. package/dist/cjs/components/SeedPhrase/dialog/SeedPhraseDialog.js +2 -2
  10. package/dist/cjs/components/SeedPhrase/dialog/SeedPhraseDialog.js.map +1 -1
  11. package/dist/cjs/components/SeedPhrase/dialog/components/DialogActionButtons.js +1 -1
  12. package/dist/cjs/components/SeedPhrase/dialog/components/DialogActionButtons.js.map +1 -1
  13. package/dist/cjs/components/SeedPhrase/dialog/components/OverwriteWarning.js +1 -1
  14. package/dist/cjs/components/SeedPhrase/dialog/components/OverwriteWarning.js.map +1 -1
  15. package/dist/cjs/components/SeedPhrase/dialog/components/fields/NewPhraseTextField.js +1 -1
  16. package/dist/cjs/components/SeedPhrase/dialog/components/fields/NewPhraseTextField.js.map +1 -1
  17. package/dist/cjs/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.js +1 -1
  18. package/dist/cjs/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.js.map +1 -1
  19. package/dist/cjs/components/SeedPhrase/dialog/components/fields/validation-messages/InvalidPhrase.js +1 -1
  20. package/dist/cjs/components/SeedPhrase/dialog/components/fields/validation-messages/InvalidPhrase.js.map +1 -1
  21. package/dist/cjs/components/SeedPhrase/settings/SeedPhraseTableRow.js +1 -1
  22. package/dist/cjs/components/SeedPhrase/settings/SeedPhraseTableRow.js.map +1 -1
  23. package/dist/cjs/components/WalletAccountDetails/WalletAccountDetails.js +1 -1
  24. package/dist/cjs/components/WalletAccountDetails/WalletAccountDetails.js.map +1 -1
  25. package/dist/cjs/components/WalletAccountSelect/Select.js +3 -3
  26. package/dist/cjs/components/WalletAccountSelect/Select.js.map +1 -1
  27. package/dist/cjs/components/WalletAccountSelect/WalletInfo.js +1 -1
  28. package/dist/cjs/components/WalletAccountSelect/WalletInfo.js.map +1 -1
  29. package/dist/cjs/contexts/SeedPhrase/Provider.js +2 -2
  30. package/dist/cjs/contexts/SeedPhrase/Provider.js.map +1 -1
  31. package/dist/cjs/contexts/Wallet/Provider.js +3 -3
  32. package/dist/cjs/contexts/Wallet/Provider.js.map +1 -1
  33. package/dist/cjs/contexts/Wallet/use.js +13 -3
  34. package/dist/cjs/contexts/Wallet/use.js.map +1 -1
  35. package/dist/cjs/hooks/index.js +1 -1
  36. package/dist/cjs/hooks/index.js.map +1 -1
  37. package/dist/cjs/hooks/useAccount.js +6 -4
  38. package/dist/cjs/hooks/useAccount.js.map +1 -1
  39. package/dist/cjs/hooks/useWallet.js +2 -1
  40. package/dist/cjs/hooks/useWallet.js.map +1 -1
  41. package/dist/cjs/hooks/useWallets.js +3 -1
  42. package/dist/cjs/hooks/useWallets.js.map +1 -1
  43. package/dist/cjs/hooks/{useWrapperWallet.js → useWrapperAccount.js} +12 -8
  44. package/dist/cjs/hooks/useWrapperAccount.js.map +1 -0
  45. package/dist/docs.json +3111 -2677
  46. package/dist/esm/components/WalletAccountSelect/Select.js +2 -2
  47. package/dist/esm/components/WalletAccountSelect/Select.js.map +1 -1
  48. package/dist/esm/contexts/Wallet/Provider.js +3 -3
  49. package/dist/esm/contexts/Wallet/Provider.js.map +1 -1
  50. package/dist/esm/contexts/Wallet/use.js +11 -3
  51. package/dist/esm/contexts/Wallet/use.js.map +1 -1
  52. package/dist/esm/hooks/index.js +1 -1
  53. package/dist/esm/hooks/index.js.map +1 -1
  54. package/dist/esm/hooks/useAccount.js +3 -2
  55. package/dist/esm/hooks/useAccount.js.map +1 -1
  56. package/dist/esm/hooks/useWallet.js +3 -2
  57. package/dist/esm/hooks/useWallet.js.map +1 -1
  58. package/dist/esm/hooks/useWallets.js +3 -1
  59. package/dist/esm/hooks/useWallets.js.map +1 -1
  60. package/dist/esm/hooks/{useWrapperWallet.js → useWrapperAccount.js} +10 -6
  61. package/dist/esm/hooks/useWrapperAccount.js.map +1 -0
  62. package/dist/types/components/WalletAccountSelect/WalletInfo.d.ts +1 -1
  63. package/dist/types/components/WalletAccountSelect/WalletInfo.d.ts.map +1 -1
  64. package/dist/types/contexts/Wallet/Provider.d.ts +1 -1
  65. package/dist/types/contexts/Wallet/Provider.d.ts.map +1 -1
  66. package/dist/types/contexts/Wallet/State.d.ts +3 -3
  67. package/dist/types/contexts/Wallet/State.d.ts.map +1 -1
  68. package/dist/types/contexts/Wallet/use.d.ts +5 -4
  69. package/dist/types/contexts/Wallet/use.d.ts.map +1 -1
  70. package/dist/types/hooks/index.d.ts +1 -1
  71. package/dist/types/hooks/index.d.ts.map +1 -1
  72. package/dist/types/hooks/useAccount.d.ts +1 -1
  73. package/dist/types/hooks/useAccount.d.ts.map +1 -1
  74. package/dist/types/hooks/useWallet.d.ts +2 -2
  75. package/dist/types/hooks/useWallet.d.ts.map +1 -1
  76. package/dist/types/hooks/useWallets.d.ts +2 -2
  77. package/dist/types/hooks/useWallets.d.ts.map +1 -1
  78. package/dist/types/hooks/useWrapperAccount.d.ts +4 -0
  79. package/dist/types/hooks/useWrapperAccount.d.ts.map +1 -0
  80. package/package.json +13 -13
  81. package/src/components/WalletAccountSelect/Select.tsx +2 -2
  82. package/src/components/WalletAccountSelect/WalletInfo.tsx +1 -1
  83. package/src/contexts/Wallet/Provider.tsx +4 -4
  84. package/src/contexts/Wallet/State.ts +3 -3
  85. package/src/contexts/Wallet/use.ts +15 -7
  86. package/src/hooks/index.ts +1 -1
  87. package/src/hooks/useAccount.tsx +4 -3
  88. package/src/hooks/useWallet.tsx +5 -4
  89. package/src/hooks/useWallets.tsx +5 -3
  90. package/src/hooks/useWrapperAccount.tsx +34 -0
  91. package/dist/cjs/hooks/useWrapperWallet.js.map +0 -1
  92. package/dist/esm/hooks/useWrapperWallet.js.map +0 -1
  93. package/dist/types/hooks/useWrapperWallet.d.ts +0 -3
  94. package/dist/types/hooks/useWrapperWallet.d.ts.map +0 -1
  95. package/src/hooks/useWrapperWallet.tsx +0 -25
@@ -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
  }
@@ -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
  }
@@ -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,3 +0,0 @@
1
- import { WalletInstance } from '@xyo-network/wallet-model';
2
- export declare const useWrapperWallet: () => WalletInstance | undefined;
3
- //# sourceMappingURL=useWrapperWallet.d.ts.map
@@ -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
- }