@rango-dev/wallets-react 0.48.1-next.4 → 0.48.1-next.6

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 (82) hide show
  1. package/dist/context.d.ts.map +1 -0
  2. package/dist/helpers.d.ts +1 -1
  3. package/dist/hooks.d.ts +3 -0
  4. package/dist/hooks.d.ts.map +1 -0
  5. package/dist/hub/autoConnect.d.ts +2 -4
  6. package/dist/hub/autoConnect.d.ts.map +1 -1
  7. package/dist/hub/constants.d.ts +0 -1
  8. package/dist/hub/constants.d.ts.map +1 -1
  9. package/dist/hub/helpers.d.ts +2 -0
  10. package/dist/hub/helpers.d.ts.map +1 -1
  11. package/dist/hub/lastConnectedWallets.d.ts +1 -2
  12. package/dist/hub/lastConnectedWallets.d.ts.map +1 -1
  13. package/dist/hub/mod.d.ts +1 -1
  14. package/dist/hub/mod.d.ts.map +1 -1
  15. package/dist/hub/persistor.d.ts +11 -0
  16. package/dist/hub/persistor.d.ts.map +1 -0
  17. package/dist/{legacy → hub}/useAutoConnect.d.ts +1 -1
  18. package/dist/hub/useAutoConnect.d.ts.map +1 -0
  19. package/dist/hub/useHubAdapter.d.ts +1 -5
  20. package/dist/hub/useHubAdapter.d.ts.map +1 -1
  21. package/dist/hub/utils.d.ts +8 -9
  22. package/dist/hub/utils.d.ts.map +1 -1
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +4 -4
  27. package/dist/legacy/mod.d.ts +2 -4
  28. package/dist/legacy/mod.d.ts.map +1 -1
  29. package/dist/legacy/types.d.ts +89 -69
  30. package/dist/legacy/types.d.ts.map +1 -1
  31. package/dist/provider.d.ts +1 -1
  32. package/dist/provider.d.ts.map +1 -1
  33. package/dist/types.d.ts +39 -0
  34. package/dist/types.d.ts.map +1 -0
  35. package/package.json +7 -11
  36. package/src/{legacy/context.ts → context.ts} +0 -3
  37. package/src/helpers.ts +1 -1
  38. package/src/hooks.ts +13 -0
  39. package/src/hub/autoConnect.ts +26 -35
  40. package/src/hub/constants.ts +0 -1
  41. package/src/hub/helpers.ts +11 -4
  42. package/src/hub/lastConnectedWallets.ts +3 -51
  43. package/src/hub/mod.ts +1 -5
  44. package/src/hub/persistor.ts +19 -0
  45. package/src/{legacy → hub}/useAutoConnect.ts +2 -2
  46. package/src/hub/useHubAdapter.ts +37 -35
  47. package/src/hub/utils.ts +21 -56
  48. package/src/index.ts +2 -2
  49. package/src/legacy/mod.ts +6 -9
  50. package/src/legacy/types.ts +112 -97
  51. package/src/provider.tsx +8 -4
  52. package/src/types.ts +58 -0
  53. package/dist/helpers/index.d.ts +0 -2
  54. package/dist/helpers/index.d.ts.map +0 -1
  55. package/dist/helpers/index.js +0 -2
  56. package/dist/helpers/index.js.map +0 -7
  57. package/dist/legacy/autoConnect.d.ts +0 -7
  58. package/dist/legacy/autoConnect.d.ts.map +0 -1
  59. package/dist/legacy/context.d.ts.map +0 -1
  60. package/dist/legacy/helpers.d.ts +0 -31
  61. package/dist/legacy/helpers.d.ts.map +0 -1
  62. package/dist/legacy/hooks.d.ts +0 -10
  63. package/dist/legacy/hooks.d.ts.map +0 -1
  64. package/dist/legacy/useAutoConnect.d.ts.map +0 -1
  65. package/dist/legacy/useLegacyProviders.d.ts +0 -7
  66. package/dist/legacy/useLegacyProviders.d.ts.map +0 -1
  67. package/dist/legacy/utils.d.ts +0 -3
  68. package/dist/legacy/utils.d.ts.map +0 -1
  69. package/dist/test-utils/fixtures.d.ts +0 -14
  70. package/dist/test-utils/fixtures.d.ts.map +0 -1
  71. package/dist/useProviders.d.ts +0 -4
  72. package/dist/useProviders.d.ts.map +0 -1
  73. package/helpers/package.json +0 -8
  74. package/src/helpers/index.ts +0 -1
  75. package/src/legacy/autoConnect.ts +0 -69
  76. package/src/legacy/helpers.ts +0 -193
  77. package/src/legacy/hooks.ts +0 -54
  78. package/src/legacy/useLegacyProviders.ts +0 -246
  79. package/src/legacy/utils.ts +0 -7
  80. package/src/test-utils/fixtures.ts +0 -164
  81. package/src/useProviders.ts +0 -121
  82. /package/dist/{legacy/context.d.ts → context.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmClD,eAAO,MAAM,aAAa,0CAAiD,CAAC"}
package/dist/helpers.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import type { ProviderContext } from './index.js';
1
+ import type { ProviderContext } from './types.js';
2
2
  export declare function withErrorLoggingApi(api: ProviderContext): ProviderContext;
3
3
  //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1,3 @@
1
+ import type { ProviderContext } from './types.js';
2
+ export declare function useWallets(): ProviderContext;
3
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,wBAAgB,UAAU,IAAI,eAAe,CAM5C"}
@@ -1,10 +1,8 @@
1
1
  import type { UseAdapterParams } from './useHubAdapter.js';
2
- import type { Hub } from '@hub3js/core';
3
- import type { LegacyProviderInterface, LegacyWalletType as WalletType } from '@rango-dev/wallets-core/legacy';
4
- import { Provider } from '@hub3js/core';
2
+ import type { Hub, Provider, WalletType } from '@hub3js/core';
5
3
  export declare function autoConnect(deps: {
6
4
  getHub: () => Hub;
7
5
  allBlockChains: UseAdapterParams['allBlockChains'];
8
- wallets?: (WalletType | LegacyProviderInterface | Provider)[];
6
+ wallets?: (WalletType | Provider)[];
9
7
  }): Promise<void>;
10
8
  //# sourceMappingURL=autoConnect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autoConnect.d.ts","sourceRoot":"","sources":["../../src/hub/autoConnect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGxC,OAAO,KAAK,EAEV,uBAAuB,EACvB,gBAAgB,IAAI,UAAU,EAC/B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AA4KxC,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,MAAM,GAAG,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,uBAAuB,GAAG,QAAQ,CAAC,EAAE,CAAC;CAC/D,GAAG,OAAO,CAAC,IAAI,CAAC,CAqEhB"}
1
+ {"version":3,"file":"autoConnect.d.ts","sourceRoot":"","sources":["../../src/hub/autoConnect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAiL9D,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,MAAM,GAAG,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;CACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DhB"}
@@ -1,3 +1,2 @@
1
- export declare const LEGACY_LAST_CONNECTED_WALLETS = "last-connected-wallets";
2
1
  export declare const HUB_LAST_CONNECTED_WALLETS = "hub-v1-last-connected-wallets";
3
2
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/hub/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;AACtE,eAAO,MAAM,0BAA0B,kCAAkC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/hub/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,kCAAkC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { AllProxiedNamespaces } from './types.js';
2
+ import type { ProviderProps } from '../types.js';
2
3
  import type { Accounts, AccountsWithActiveChain } from '@hub3js/std/types';
3
4
  import type { Result } from 'ts-results';
4
5
  import { type ChainIdParams } from 'caip';
@@ -29,4 +30,5 @@ export declare function createQueue(options?: {
29
30
  removeCurrentKeyFromQueue: () => void;
30
31
  }) => void;
31
32
  }): <T>(task: () => Promise<T>, key: string) => Promise<Result<T, unknown>>;
33
+ export declare function shouldTryAutoConnect(props: Pick<ProviderProps, 'allBlockChains' | 'autoConnect'>): boolean;
32
34
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/hub/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAYzC,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAGrD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,aAAa,GAAG,MAAM,GAC9B,MAAM,CAmCR;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED;;GAEG;AAEH,wBAAsB,6BAA6B,CAAC,CAAC,EACnD,QAAQ,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAU/B;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,GAC3D,MAAM,IAAI,uBAAuB,CAEnC;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,GAC3D,MAAM,IAAI,QAAQ,CAEpB;AAOD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE;IACpC,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QACP,yBAAyB,EAAE,MAAM,IAAI,CAAC;KACvC,KACE,IAAI,CAAC;CACX,IAgD0B,CAAC,QAClB,MAAM,OAAO,CAAC,CAAC,CAAC,OACjB,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAW/B"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/hub/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAYzC,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAGrD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,aAAa,GAAG,MAAM,GAC9B,MAAM,CAmCR;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED;;GAEG;AAEH,wBAAsB,6BAA6B,CAAC,CAAC,EACnD,QAAQ,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAU/B;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,GAC3D,MAAM,IAAI,uBAAuB,CAEnC;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,GAC3D,MAAM,IAAI,QAAQ,CAEpB;AAOD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE;IACpC,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QACP,yBAAyB,EAAE,MAAM,IAAI,CAAC;KACvC,KACE,IAAI,CAAC;CACX,IAgD0B,CAAC,QAClB,MAAM,OAAO,CAAC,CAAC,CAAC,OACjB,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAW/B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,GAAG,aAAa,CAAC,GAC3D,OAAO,CAET"}
@@ -6,10 +6,9 @@ export interface NamespaceInput {
6
6
  export interface LastConnectedWalletsStorage {
7
7
  [providerId: string]: NamespaceInput[];
8
8
  }
9
- export type LegacyLastConnectedWalletsStorage = string[];
10
9
  /**
11
10
  * We are doing some certain actions on storage for `last-connected-wallets` key.
12
- * This class helps us to define them in one place and also it has support for both legacy and hub.
11
+ * This class helps us to define them in one place.
13
12
  */
14
13
  export declare class LastConnectedWalletsFromStorage {
15
14
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"lastConnectedWallets.d.ts","sourceRoot":"","sources":["../../src/hub/lastConnectedWallets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AASpD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CACxC;AAED,MAAM,MAAM,iCAAiC,GAAG,MAAM,EAAE,CAAC;AAEzD;;;GAGG;AACH,qBAAa,+BAA+B;;gBAG9B,UAAU,EAAE,MAAM;IAI9B,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI;IAQjE,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ3C,IAAI,IAAI,2BAA2B;IAQnC,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;CA8GtE"}
1
+ {"version":3,"file":"lastConnectedWallets.d.ts","sourceRoot":"","sources":["../../src/hub/lastConnectedWallets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAKpD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CACxC;AAED;;;GAGG;AACH,qBAAa,+BAA+B;;gBAG9B,UAAU,EAAE,MAAM;IAI9B,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI;IAMjE,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAM3C,IAAI,IAAI,2BAA2B;IAMnC,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;CA0EtE"}
package/dist/hub/mod.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { separateLegacyAndHubProviders, getAllLegacyProviders, findProviderByType, } from './utils.js';
1
+ export { getHubProviders, findProviderByType } from './utils.js';
2
2
  export { useHubAdapter } from './useHubAdapter.js';
3
3
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/hub/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/hub/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface PersistStorage<T> {
2
+ getItem: (name: string) => T | null;
3
+ setItem: (name: string, value: T) => void;
4
+ removeItem: (name: string) => void;
5
+ }
6
+ export declare class Persistor<T> implements PersistStorage<T> {
7
+ getItem(name: string): T | null;
8
+ setItem(name: string, value: T): void;
9
+ removeItem(name: string): void;
10
+ }
11
+ //# sourceMappingURL=persistor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistor.d.ts","sourceRoot":"","sources":["../../src/hub/persistor.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,EAAE,MAAM;IAKpB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAG9B,UAAU,CAAC,IAAI,EAAE,MAAM;CAGxB"}
@@ -1,4 +1,4 @@
1
- import type { ProviderProps } from './types.js';
1
+ import type { ProviderProps } from '../types.js';
2
2
  export declare function useAutoConnect(props: Pick<ProviderProps, 'allBlockChains' | 'autoConnect'> & {
3
3
  /**
4
4
  * A function to run autoConnect on instances
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAutoConnect.d.ts","sourceRoot":"","sources":["../../src/hub/useAutoConnect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,GAAG,aAAa,CAAC,GAAG;IAC7D;;OAEG;IACH,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC,QAUF"}
@@ -1,11 +1,7 @@
1
- import type { ProviderContext } from '../index.js';
1
+ import type { ProviderContext, ProviderProps } from '../types.js';
2
2
  import type { Provider } from '@hub3js/core';
3
- import type { VersionedProviders } from '@hub3js/core/utils';
4
- import { type ProviderProps } from '../legacy/mod.js';
5
3
  export type UseAdapterParams = Omit<ProviderProps, 'providers'> & {
6
4
  providers: Provider[];
7
- /** This is only will be used to access some parts of the legacy provider that doesn't exists in Hub. */
8
- allVersionedProviders: VersionedProviders[];
9
5
  };
10
6
  export declare function useHubAdapter(params: UseAdapterParams): ProviderContext;
11
7
  //# sourceMappingURL=useHubAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHubAdapter.d.ts","sourceRoot":"","sources":["../../src/hub/useHubAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAgB7D,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAgB1B,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG;IAChE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,wGAAwG;IACxG,qBAAqB,EAAE,kBAAkB,EAAE,CAAC;CAC7C,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,CAkdvE"}
1
+ {"version":3,"file":"useHubAdapter.d.ts","sourceRoot":"","sources":["../../src/hub/useHubAdapter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AA6BzD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG;IAChE,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,CAydvE"}
@@ -1,32 +1,31 @@
1
1
  import type { AllProxiedNamespaces } from './types.js';
2
- import type { Hub, Provider, ProxiedNamespace } from '@hub3js/core';
2
+ import type { ConnectResult, NamespaceInputForConnect, EventHandler as WalletEventHandler } from '../legacy/mod.js';
3
+ import type { ProviderProps } from '../types.js';
4
+ import type { UtxoActions } from '@hub3js/bip122';
5
+ import type { Hub, Provider, ProxiedNamespace, WalletType } from '@hub3js/core';
3
6
  import type { Event } from '@hub3js/core/store';
4
7
  import type { Chain as AddEthereumChainParameter, EvmActions } from '@hub3js/evm';
5
8
  import type { SolanaActions } from '@hub3js/solana';
6
- import type { LegacyNamespaceInputForConnect, LegacyProviderInterface, LegacyEventHandler as WalletEventHandler, LegacyWalletType as WalletType } from '@rango-dev/wallets-core/legacy';
7
- import type { UtxoActions } from '@rango-dev/wallets-core/namespaces/utxo';
8
9
  import { type VersionedProviders } from '@hub3js/core/utils';
9
10
  import { type BlockchainMeta } from 'rango-types';
10
- import { type ConnectResult, type ProviderProps } from '../legacy/mod.js';
11
- export declare function separateLegacyAndHubProviders(providers: VersionedProviders[]): [LegacyProviderInterface[], Provider[]];
11
+ export declare function getHubProviders(providers: VersionedProviders[]): Provider[];
12
12
  export declare function findProviderByType(providers: Provider[], type: string): Provider | undefined;
13
13
  export declare function mapHubEventsToLegacy(hub: Hub, event: Event, onUpdateState: WalletEventHandler, metadata: {
14
14
  allBlockChains: ProviderProps['allBlockChains'];
15
15
  lastConnectAttemptParams: {
16
- [type: WalletType]: LegacyNamespaceInputForConnect[];
16
+ [type: WalletType]: NamespaceInputForConnect[];
17
17
  };
18
18
  }): void;
19
- export declare function getAllLegacyProviders(allProviders: VersionedProviders[]): LegacyProviderInterface[];
20
19
  /**
21
20
  * In legacy mode, for those who have switch network functionality (like evm), we are using an enum for network names
22
21
  * this enum only has meaning for us, and when we are going to connect an instance (e.g. window.ethereum) we should pass chain id.
23
22
  */
24
- export declare function convertNamespaceNetworkToEvmChainId(namespace: LegacyNamespaceInputForConnect, meta: BlockchainMeta[]): AddEthereumChainParameter | undefined;
23
+ export declare function convertNamespaceNetworkToEvmChainId(namespace: NamespaceInputForConnect, meta: BlockchainMeta[]): AddEthereumChainParameter | undefined;
25
24
  /**
26
25
  * We are passing an string for chain id (e.g. ETH, POLYGON), but wallet's instances (e.g. window.ethereum) needs chainId (e.g. 0x1).
27
26
  * This function will help us to map these strings to proper hex ids.
28
27
  */
29
- export declare function tryConvertNamespaceNetworkToChainInfo(namespace: LegacyNamespaceInputForConnect, meta: BlockchainMeta[]): string | AddEthereumChainParameter | undefined;
28
+ export declare function tryConvertNamespaceNetworkToChainInfo(namespace: NamespaceInputForConnect, meta: BlockchainMeta[]): string | AddEthereumChainParameter | undefined;
30
29
  export declare function transformHubResultToLegacyResult(res: Awaited<ReturnType<AllProxiedNamespaces['connect']>>): ConnectResult;
31
30
  /**
32
31
  * Synchronizes providers in the hub with the configuration providers.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/hub/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EACV,KAAK,IAAI,yBAAyB,EAClC,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,8BAA8B,EAC9B,uBAAuB,EACvB,kBAAkB,IAAI,kBAAkB,EACxC,gBAAgB,IAAI,UAAU,EAC/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAW1E,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,aAAa,CAAC;AAEnE,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAU1B,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,kBAAkB,EAAE,GAC9B,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAkBzC;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,QAAQ,EAAE,EACrB,IAAI,EAAE,MAAM,GACX,QAAQ,GAAG,SAAS,CAEtB;AAWD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,kBAAkB,EACjC,QAAQ,EAAE;IACR,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAChD,wBAAwB,EAAE;QACxB,CAAC,IAAI,EAAE,UAAU,GAAG,8BAA8B,EAAE,CAAC;KACtD,CAAC;CACH,GACA,IAAI,CAqLN;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,kBAAkB,EAAE,GACjC,uBAAuB,EAAE,CAW3B;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,8BAA8B,EACzC,IAAI,EAAE,cAAc,EAAE,GACrB,yBAAyB,GAAG,SAAS,CASvC;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,8BAA8B,EACzC,IAAI,EAAE,cAAc,EAAE,GACrB,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAMhD;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,GACxD,aAAa,CAoBf;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,GAAG,EACR,sBAAsB,EAAE,QAAQ,EAAE,QAwBnC;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,aAAa,CAAC,GAAG;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,CAE5D;AACD,wBAAgB,cAAc,CAC5B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,UAAU,CAAC,GAAG;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAEtD;AACD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,WAAW,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAExD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/hub/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EACV,aAAa,EACb,wBAAwB,EACxB,YAAY,IAAI,kBAAkB,EACnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EACV,KAAK,IAAI,yBAAyB,EAClC,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAQ1E,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,aAAa,CAAC;AAYnE,wBAAgB,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,QAAQ,EAAE,CAU3E;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,QAAQ,EAAE,EACrB,IAAI,EAAE,MAAM,GACX,QAAQ,GAAG,SAAS,CAEtB;AAWD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,kBAAkB,EACjC,QAAQ,EAAE;IACR,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAChD,wBAAwB,EAAE;QACxB,CAAC,IAAI,EAAE,UAAU,GAAG,wBAAwB,EAAE,CAAC;KAChD,CAAC;CACH,GACA,IAAI,CAqLN;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,wBAAwB,EACnC,IAAI,EAAE,cAAc,EAAE,GACrB,yBAAyB,GAAG,SAAS,CASvC;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,wBAAwB,EACnC,IAAI,EAAE,cAAc,EAAE,GACrB,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAMhD;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,GACxD,aAAa,CAiBf;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,GAAG,EACR,sBAAsB,EAAE,QAAQ,EAAE,QAwBnC;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,aAAa,CAAC,GAAG;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,CAE5D;AACD,wBAAgB,cAAc,CAC5B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,UAAU,CAAC,GAAG;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAEtD;AACD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,WAAW,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAExD"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export * from './legacy/helpers.js';
2
1
  export { default as Provider } from './provider.js';
3
- export { useWallets } from './legacy/hooks.js';
2
+ export { useWallets } from './hooks.js';
3
+ export type * from './types.js';
4
4
  export * from './legacy/types.js';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,mBAAmB,YAAY,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var Ee=Object.defineProperty;var c=(e,t)=>Ee(e,"name",{value:t,configurable:!0});import{Persistor as Ne}from"@rango-dev/wallets-core/legacy";var P="last-connected-wallets",E="hub-v1-last-connected-wallets";import{Persistor as L}from"@rango-dev/wallets-core/legacy";var N=class{static{c(this,"LastConnectedWalletsFromStorage")}#e;constructor(t){this.#e=t}addWallet(t,r){if(this.#e===E)return this.#t(t,r);if(this.#e===P)return this.#a(t);throw new Error("Not implemented")}removeWallets(t){if(this.#e===E)return this.#r(t);if(this.#e===P)return this.#c(t);throw new Error("Not implemented")}list(){if(this.#e===E)return this.#n();if(this.#e===P)return this.#o();throw new Error("Not implemented")}removeNamespacesFromWallet(t,r){if(this.#e===E)return this.#s(t,r);throw new Error("Not implemented")}#o(){let r=new L().getItem(P)||[],a={};return r.forEach(n=>{a[n]=[]}),a}#n(){return new L().getItem(E)||{}}#t(t,r){let a=new L,n=a.getItem(this.#e)||{},u=r;if(n[t]){let p=n[t];u=p.concat(r.filter(l=>!p.some(o=>o.namespace===l.namespace)))}a.setItem(this.#e,{...n,[t]:u})}#a(t){let r=new L,a=r.getItem(this.#e)||[];r.setItem(P,a.concat(t))}#r(t){let r=new L,a=r.getItem(this.#e)||{};if(!t){r.setItem(this.#e,{});return}t.forEach(n=>{a[n]&&delete a[n]}),r.setItem(this.#e,a)}#s(t,r){let p=(new L().getItem(this.#e)||{})[t]?.filter(l=>!r.includes(l.namespace));this.#r([t]),p?.length>0&&this.#t(t,p)}#c(t){let r=new L,a=r.getItem(this.#e)||[];if(!t){r.setItem(this.#e,[]);return}r.setItem(P,a.filter(n=>!t.includes(n)))}};function Nt(e,t){return e.find(r=>r.type===t)||null}c(Nt,"choose");var F={connected:!1,connecting:!1,reachable:!1,installed:!1,accounts:null,network:null};function z(e,t){if(t.type==="new_state"){let r=e[t.wallet];return r?{...e,[t.wallet]:{...r,[t.name]:t.value}}:{...e,[t.wallet]:{...F,[t.name]:t.value}}}return e}c(z,"stateReducer");function X(e){return Object.entries(e).filter(([,t])=>t?.connected).map(([t])=>t)}c(X,"connectedWallets");function Z(e){return Object.entries(e).map(([t])=>t)}c(Z,"availableWallets");function J(e){let t=new Map;return e.forEach(r=>{let{config:a,...n}=r;t.set(a.type,{actions:n,config:a})}),t}c(J,"checkWalletProviders");function kt(e){return e?.constructor?.name==="AsyncFunction"}c(kt,"isAsync");function At(e){let{checkInstallation:t=!0}=e.config;return t}c(At,"needsCheckInstallation");async function ee({type:e,walletActions:t,getState:r}){if(t.canEagerConnect){let a=new N(P),u=!!a.list()[e];u&&!r(e).connected&&O(),u||a.addWallet(e,[])}}c(ee,"tryPersistWallet");function te({type:e,walletActions:t}){t.canEagerConnect&&new N(P).removeWallets([e])}c(te,"tryRemoveWalletFromPersistance");function O(){let e=new Ne;e.getItem(P)&&e.removeItem(P)}c(O,"clearPersistance");function j(e,t){return c((a,n,u,p,l)=>{e({type:"new_state",wallet:a,name:n,value:u}),t&&t(a,n,u,p,l)},"handler")}c(j,"makeEventHandler");import dt from"react";import{createContext as ke}from"react";var I="Context hasn't been initialized yet.",Ae={async connect(){throw new Error(I)},async disconnect(){throw new Error(I)},async disconnectAll(){throw new Error(I)},async suggestAndConnect(){throw new Error(I)},state(){throw new Error(I)},canSwitchNetworkTo(){throw new Error(I)},providers(){throw new Error(I)},getWalletInfo(){throw new Error(I)},getSigners(){throw new Error(I)},hubProvider(){throw new Error(I)}},b=ke(Ae);import{debug as Ie}from"@rango-dev/logging-core";function re(e,t,r){let a=r instanceof Error?r:new Error(String(r));Ie(a,{context:{method:e,args:t},tags:{type:"wallet-error"}})}c(re,"logError");function Te(e,t){return(...r)=>{try{let a=t(...r);return a instanceof Promise?a.catch(n=>{throw re(e,r,n),n}):a}catch(a){throw re(e,r,a),a}}}c(Te,"withErrorLogging");function oe(e){let t=Object.entries(e).map(([r,a])=>[r,Te(r,a.bind(e))]);return Object.fromEntries(t)}c(oe,"withErrorLoggingApi");import{pickVersion as ue}from"@hub3js/core/utils";import{convertEvmBlockchainMetaToEvmChainInfo as Ve,getSupportedChainsFromProvider as Ge}from"@rango-dev/internal-blockchains";import{LegacyEvents as T,legacyFormatAddressWithNetwork as Qe,legacyGetBlockChainNameFromId as Ke}from"@rango-dev/wallets-core/legacy";import{AccountId as ze}from"caip";import{isEvmBlockchain as Xe}from"rango-types";import{useEffect as D,useReducer as _e}from"react";async function ne(e,t){let r=new N(P),a=r.list(),n=Object.keys(a);if(n.length){let u=[];n.forEach(o=>{let s=e.get(o);if(s){let d=t(s);u.push({walletType:o,eagerConnect:d.eagerConnect.bind(d)})}});let p=await Promise.allSettled(u.map(async({eagerConnect:o})=>o())),l=[];p.forEach((o,s)=>{let{status:d}=o;d==="rejected"&&l.push(u[s].walletType)}),l.length&&r.removeWallets(l)}}c(ne,"autoConnect");import{LegacyWallet as Se}from"@rango-dev/wallets-core/legacy";import{useContext as Le,useRef as xe}from"react";function ae(e){let t=xe({});function r(a){let n=a.config.type;return typeof t.current[n]>"u"&&(t.current[n]=new Se({config:a.config,handler:e},a.actions)),t.current[n]}return c(r,"updater"),r}c(ae,"useInitializers");function be(){let e=Le(b);if(!e)throw Error("useWallet can only be used within the Provider component");return e}c(be,"useWallets");import{useEffect as Be,useRef as Re}from"react";function se(e){return!!e.allBlockChains?.length&&!!e.autoConnect}c(se,"shouldTryAutoConnect");function R(e){let t=Re(!1);Be(()=>{se(e)&&!t.current&&(t.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}c(R,"useAutoConnect");function M(e){let[t,r]=_e(z,{}),a=ae(j(r,e.onUpdateState)),n=e.providers,u=J(n);R({allBlockChains:e.allBlockChains,autoConnect:e.autoConnect,autoConnectHandler:async()=>ne(u,a)});let p={async connect(l,o){let s=u.get(l);if(!s)throw new Error(`You should add ${l} to provider first.`);let d;o&&o.length>0&&(d=o.find(f=>!!f.network)?.network);let m=await a(s).connect(d,o);return e.autoConnect&&ee({type:l,walletActions:s.actions,getState:p.state}),[m]},async disconnect(l){let o=u.get(l);if(!o)throw new Error(`You should add ${l} to provider first.`);await a(o).disconnect(),e.autoConnect&&te({type:l,walletActions:o.actions})},async disconnectAll(){let l=[];return X(t).forEach(o=>{let s=u.get(o);if(s){let d=a(s);l.push(d.disconnect())}}),e.autoConnect&&O(),await Promise.allSettled(l)},async suggestAndConnect(l,o){let s=u.get(l);if(!s)throw new Error(`You should add ${l} to provider first.`);let d=a(s);if(!o.network)throw new Error("You should pass network to the suggestAndConnect");return await d.suggestAndConnect(o.network)},state(l){return t[l]||F},canSwitchNetworkTo(l,o){let s=u.get(l);if(!s)return!1;let d=a(s);return d.canSwitchNetworkTo?d.canSwitchNetworkTo(o,d.provider):!1},providers(){let l={};return Z(t).forEach(o=>{let s=u.get(o);if(s){let d=a(s);l[o]=d.provider}}),l},getWalletInfo(l){let o=u.get(l);if(!o)throw new Error(`You should add ${l} to provider first.`);return o.actions.getWalletInfo(e.allBlockChains||[])},async getSigners(l){let o=u.get(l);if(!o)throw new Error(`You should add ${l} to provider first.`);let s=a(o),d=s.provider;return s.getSigners(d)},hubProvider(){throw new Error("This method is not available on legacy providers.")}};return D(()=>{u.forEach(l=>{let o=a(l),s=c(()=>{o.onInit&&o.onInit()},"runOnInit"),d=c(i=>{i.target&&i.target.readyState==="complete"&&(s(),document.removeEventListener("readystatechange",d))},"initWhenPageIsReady");s(),document.addEventListener("readystatechange",d)})},[]),D(()=>{e.allBlockChains&&u.forEach(o=>{let s=a(o),d=s.getWalletInfo(e.allBlockChains||[]);s.setInfo({supportedBlockchains:d.supportedChains,isContractWallet:!!d.isContractWallet})})},[e.allBlockChains]),D(()=>{u.forEach(l=>{a(l).setHandler(j(r,e.onUpdateState))})},[e.onUpdateState]),p}c(M,"useLegacyProviders");import{CAIP_NAMESPACE as He}from"@hub3js/tvm";import{legacyFormatAddressWithNetwork as Fe}from"@rango-dev/wallets-core/legacy";import{CAIP_TRON_CHAIN_ID as Oe}from"@rango-dev/wallets-core/namespaces/tron";import{CAIP_BITCOIN_CHAIN_ID as je,CAIP_BITCOINCASH_CHAIN_ID as De,CAIP_DOGECOIN_CHAIN_ID as Me,CAIP_LITECOIN_CHAIN_ID as Ue,CAIP_ZCASH_CHAIN_ID as Ye}from"@rango-dev/wallets-core/namespaces/utxo";import{AccountId as $e}from"caip";import{Err as U,Ok as ce}from"ts-results";function qe(e){return typeof e=="string"?e:["solana","xrpl","stellar"].includes(e.namespace.toLowerCase())?e.namespace.toUpperCase():e.namespace.toLowerCase()==="eip155"?"ETH":e.reference===je?"BTC":e.reference===Ye?"ZCASH":e.reference===Ue?"LTC":e.reference===Me?"DOGE":e.reference===De?"BCH":e.namespace.toLowerCase()===He?"TON":e.namespace==="sui"||e.reference===Oe?e.reference.toUpperCase():e.namespace==="starknet"?e.namespace.toUpperCase():e.reference}c(qe,"mapCaipNamespaceToLegacyNetworkName");function B(e){let{chainId:t,address:r}=$e.parse(e),a=qe(t);return Fe(r,a)}c(B,"fromAccountIdToLegacyAddressFormat");async function Y(e){return e.reduce(async(t,r)=>{let a=await t;try{let n=await r();return[...a,new ce(n)]}catch(n){return[...a,new U(n)]}},Promise.resolve([]))}c(Y,"runSequentiallyWithoutFailure");function ie(e){return typeof e=="object"&&!Array.isArray(e)}c(ie,"isConnectResultEvm");function le(e){return Array.isArray(e)}c(le,"isConnectResultSolana");function pe(e){let t=new Set,r=[],a=c((p,l)=>{r=r.filter(o=>o.key!==p?!0:(o.resolve(l),!1))},"removeKeyFromQueue"),n=c(async()=>{let p=r.find(d=>!t.has(d.key));if(!p)return;let{task:l,resolve:o,key:s}=p;t.add(s);try{let d=await l();o(new ce(d))}catch(d){e?.onError&&e.onError(d,{removeCurrentKeyFromQueue:()=>a(s,new U(d))}),o(new U(d))}finally{let d=r.findIndex(i=>i.key===s);d>=0&&r.splice(d,1),t.delete(s),n()}},"processQueue");return c(async(p,l)=>new Promise(o=>{r.push({task:p,resolve:o,key:l}),n()}),"queueTask")}c(pe,"createQueue");function $(e){let t="0.0.0",r="1.0.0",a=[],n=[];return e.forEach(u=>{try{let p=ue(u,r);n.push(p[1])}catch{let p=ue(u,t);a.push(p[1])}}),[a,n]}c($,"separateLegacyAndHubProviders");function S(e,t){return e.find(r=>r.id===t)}c(S,"findProviderByType");var Ze=new N(E);function de(e,t,r,a){let n=e.get(t.provider);if(!n)throw new Error("Currently all the events have assigned to a provider. The event doesn't include one.",{cause:t});let u=t.namespace,p=u?n.findByNamespace(u):void 0,l=null,o=null,s;if(p){let[g]=p.state();l=g().accounts,o=g().network,a.lastConnectAttemptParams[t.provider]&&(s=a.lastConnectAttemptParams[t.provider].find(h=>h.namespace===u)?.derivationPath)}let[d]=n.state(),i={connected:d().connected,connecting:d().connecting,installed:d().installed,accounts:l,network:o,reachable:!0,derivationPath:s},m=n.info()?.metadata.properties?.find(g=>g.name==="details"),f={supportedBlockchains:Ge(n,a.allBlockChains),isContractWallet:m?.value?.isContractWallet??!1,isHub:!0,namespace:u};switch(t.type){case"provider_detected":r(t.provider,T.INSTALLED,!0,i,f);break;case"provider_connecting":r(t.provider,T.CONNECTING,t.value,i,f);break;case"provider_connected":r(t.provider,T.CONNECTED,!0,i,f);break;case"provider_disconnected":r(t.provider,T.PROVIDER_DISCONNECTED,t.provider,i,f),r(t.provider,T.CONNECTED,!1,i,f),r(t.provider,T.ACCOUNTS,null,i,f);break;case"namespace_disconnected":Ze.removeNamespacesFromWallet(t.provider,[t.namespace]),r(t.provider,T.NAMESPACE_DISCONNECTED,t.namespace,i,{...f,namespace:t.namespace});break;case"namespace_connected":case"namespace_account_switched":{t.type==="namespace_account_switched"&&r(t.provider,T.NAMESPACE_DISCONNECTED,t.namespace,i,f);let g=[];f.isContractWallet?g=t.accounts.map(h=>{let{chainId:w,address:k}=ze.parse(h);if(typeof w=="string")throw new Error("Should be in CAIP format");let C=Ke(w.reference,f.supportedBlockchains);return C?Qe(k,C):B(h)}):g=t.accounts.map(h=>B(h)),r(t.provider,T.ACCOUNTS,g,i,{...f,namespace:t.namespace})}break;case"namespace_network_switched":r(t.provider,T.NETWORK,t.network,i,{...f,namespace:t.namespace});break}}c(de,"mapHubEventsToLegacy");function q(e,t){if(!e.network)return;let r=t.filter(Xe);return Ve(r)[e.network]}c(q,"convertNamespaceNetworkToEvmChainId");function me(e,t){return q(e,t)||e.network}c(me,"tryConvertNamespaceNetworkToChainInfo");function fe(e){return ie(e)?{accounts:e.accounts,network:e.network,provider:void 0}:le(e)?{accounts:e,network:null,provider:void 0}:{accounts:[e],network:null,provider:void 0}}c(fe,"transformHubResultToLegacyResult");function ge(e,t){let r=e.getAll();t.filter(n=>!r.get(n.id)).forEach(n=>{e.add(n.id,n),n.init()}),r.forEach(n=>{t.some(p=>p.id===n.id)||e.remove(n.id)})}c(ge,"synchronizeHubWithConfigProviders");function he(e){return e.namespaceId==="Solana"}c(he,"isSolanaNamespace");function _(e){return e.namespaceId==="EVM"}c(_,"isEvmNamespace");function ye(e){return e.namespaceId==="UTXO"}c(ye,"isUtxoNamespace");import{utils as st}from"@hub3js/evm";import{getSupportedChainsFromNamespace as ct,getSupportedChainsFromProvider as it}from"@rango-dev/internal-blockchains";import{useEffect as V,useRef as G,useState as lt}from"react";import{Ok as pt,Result as ut}from"ts-results";import{Provider as Je}from"@hub3js/core";import{legacyIsEvmNamespace as et}from"@rango-dev/wallets-core/legacy";import{Result as tt}from"ts-results";var H=new N(E);async function rt(e,t,r){let{getHub:a,allBlockChains:n}=r,u=a().get(e);if(!u)throw new Error(`You should add ${e} to provider first then call 'connect'.`);if(!t)throw new Error("Passing namespace to `connect` is required. ");let p=[];t.forEach(i=>{let m=i.namespace,f=u.findByNamespace(m);if(!f)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${i.namespace})`);p.push([i,f])});let l=p.map(([i,m])=>{let g=(et(i)?q(i,n||[]):void 0)||i.network;return async()=>{let h;_(m)?h=c(async()=>m.connect(g),"connectNamespacePromise"):h=c(async()=>m.connect(),"connectNamespacePromise");try{await h()}catch(w){throw w instanceof Error?w:new Error(w)}}}),o=await Y(l),s=p.filter((i,m)=>o[m].err).map(i=>i[0]);if(s.length>0&&H.removeNamespacesFromWallet(e,s.map(i=>i.namespace)),!o.some(i=>i.ok))throw new Error(`No namespace connected for ${e}`);return tt.all(...o.filter(i=>i.ok)).unwrap()}c(rt,"eagerConnect");async function ot(e,t){let r=[],a=[],n=[],u=[];e.forEach(l=>{let o=t.findByNamespace(l.namespace);o?(r.push(l),u.push(async()=>await o.canEagerConnect())):n.push(l)});let p=await Y(u);return r.forEach((l,o)=>{p[o].ok&&p[o].val?a.push(l):n.push(l)}),{successNamespaces:a,failedNamespaces:n}}c(ot,"tryRunCanEagerConnect");async function we(e){let{getHub:t,allBlockChains:r,wallets:a}=e,n=H.list(),u=Object.keys(n),p=[];if(u.length){let l=[],o=a?.map(s=>typeof s=="string"?s:s instanceof Je?s.id:s.config.type);u.forEach(async s=>{if(o&&!o.includes(s)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",s),p.push(s);return}let d=t().get(s),i=n[s].map(g=>({namespace:g.namespace,network:g.network}));if(!i.length||!d){p.push(s);return}let{successNamespaces:m,failedNamespaces:f}=await ot(i,d);if(m.length)f.length&&H.removeNamespacesFromWallet(d.id,f.map(g=>g.namespace));else{p.push(s);return}l.push(rt(s,m,{allBlockChains:r,getHub:t}).catch(g=>console.warn(g)))}),H.removeWallets(p),await Promise.all(l)}}c(we,"autoConnect");import{createStore as nt,Hub as at}from"@hub3js/core";import{useRef as ve}from"react";function Ce(e){let t=ve(null),r=ve(null);function a(){let p=new at({store:n()});return e.forEach(l=>{p.add(l.id,l)}),r.current=p,p}c(a,"createHub");function n(){if(t.current!==null)return t.current;let p=nt();return t.current=p,p}c(n,"getStore");function u(){let p=r.current?.getAll();return!r.current||!p?a():(ge(r.current,e),r.current)}return c(u,"getHub"),{getStore:n,getHub:u}}c(Ce,"useHubRefs");function Q(e){let{getStore:t,getHub:r}=Ce(e.providers),[,a]=lt(0),n=G({onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains}),u=G(!1),p=G({}),l=c((i,m)=>{p.current[i]=m||[]},"updateLastConnectAttemptParams"),o=pe({onError:(i,m)=>{st.isUserRejectionError(i)&&m.removeCurrentKeyFromQueue()}});V(()=>{n.current={onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains}},[e]),V(()=>{t().subscribe(i=>{if(n.current.onUpdateState)try{de(r(),i,n.current.onUpdateState,{allBlockChains:n.current.allBlockChains,lastConnectAttemptParams:p.current})}catch(m){console.error(m)}a(m=>m+1)}).flushEvents()},[]),V(()=>{u.current||!e.allBlockChains?.length||(r().init(e.configs?.walletOptions),a(i=>i+1),u.current=!0)},[e.allBlockChains,e.configs?.walletOptions]),R({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{we({allBlockChains:e.allBlockChains,getHub:r,wallets:e.configs?.wallets})}});let s=new N(E);return{canSwitchNetworkTo(i,m,f){let g=r().get(i);if(!g)throw new Error(`You should add ${i} to provider first then call 'canSwitchNetworkTo'.`);if(!f)throw new Error("Passing namespace to `canSwitchNetworkTo` is required.");let h=g.findByNamespace(f.namespace);if(!h)throw new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${f.namespace})`);if(!("canSwitchNetwork"in h))return!1;let w=g.info()?.metadata?.properties?.find(W=>W.name==="namespaces");if(!n.current.allBlockChains)throw new Error("Blockchains are not available");let k=w?.value.data.find(W=>W.value===f.namespace);if(!k)throw new Error(`NamespaceMeta is not defined for requested namespace: ${f.namespace}`);let C=ct(k,n.current.allBlockChains);return h.canSwitchNetwork({network:m,supportedChains:C})},async connect(i,m){let f=r().get(i);if(!f)throw new Error(`You should add ${i} to provider first then call 'connect'.`);if(!m)throw new Error("Passing namespace to `connect` is required.");l(i,m);let g=[];m.forEach(y=>{let v=y.namespace,A=f.findByNamespace(v);if(!A)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${y.namespace})`);g.push([y,A])});let h=g.map(async([y,v])=>{let A=me(y,e.allBlockChains||[]),x;return he(v)?x=c(async()=>v.connect({derivationPath:y.derivationPath}),"connectNamespacePromise"):_(v)?x=c(async()=>v.connect(A,{derivationPath:y.derivationPath}),"connectNamespacePromise"):ye(v)?x=c(async()=>v.connect({derivationPath:y.derivationPath}),"connectNamespacePromise"):x=c(async()=>v.connect(),"connectNamespacePromise"),o(c(async()=>x().then(fe).then(We=>({response:We,input:{namespace:y.namespace,network:y.network,supportsEagerConnect:"canEagerConnect"in v}})),"connectNamespaceProcess"),i)}),w=await Promise.all(h),k=w.filter(y=>y.ok).filter(y=>y.val.input.supportsEagerConnect).map(y=>({namespace:y.val.input.namespace,network:y.val.input.network}));k.length>0&&s.addWallet(i,k);let C=w.map(y=>y.andThen(v=>new pt(v.response))),W=ut.all(...C);if(W.err)throw W.val;return W.unwrap()},async disconnect(i,m){let f=r().get(i);if(!f)throw new Error(`You should add ${i} to provider first then call 'disconnect'.`);f.getAll().forEach(g=>{let h=!m||m.includes(g.namespaceId),w=g.state()[0]().connected;if(h&&w)return g.disconnect()}),e.autoConnect&&(m?s.removeNamespacesFromWallet(i,m):s.removeWallets([i]))},async disconnectAll(){let i=Array.from(r().getAll().values()).map(async m=>this.disconnect(m.id));return await Promise.allSettled(i)},async getSigners(i){let m=r().get(i);if(!m)throw new Error(`You should add ${i} to provider first.`);let f=m.info();if(!f)throw new Error("Your provider should have required `info`.");let h=f.metadata.properties?.find(w=>w.name==="signers");if(!h)throw new Error("Your provider should contain signers property.");return h.value.getSigners()},getWalletInfo(i){let m=r().get(i);if(!m)throw new Error(`You should add ${i} to provider first.`);let f=m.info();if(!f)throw new Error("Your provider should have required `info`.");let g={DEFAULT:""},{metadata:h}=f,{extensions:w}=h;Object.keys(w).forEach(v=>{let A=v;if(A==="homepage"&&(g.DEFAULT=w[A]||""),["firefox","chrome","brave","edge"].includes(A)){let K=A.toUpperCase();g[K]=w[A]||""}});let k=h.properties,C=k?.find(v=>v.name==="namespaces"),W=k?.find(v=>v.name==="derivationPath"),y=k?.find(v=>v.name==="details");return{name:h.name,img:h.icon,installLink:g,color:"red",supportedChains:it(m,n.current.allBlockChains),isContractWallet:y?.value?.isContractWallet,mobileWallet:y?.value?.mobileWallet,showOnMobile:y?.value?.showOnMobile,needsNamespace:C?.value,needsDerivationPath:W?.value,isHub:!0,properties:h.properties}},providers(){throw new Error("This method is not available on hub providers.")},state(i){let m=r().state(),f=r().get(i),g=m[i];if(!g||!f)throw new Error(`It seems your requested provider doesn't exist in hub. Provider Id: ${i}`);let h=g.namespaces.filter(C=>C.connected).flatMap(C=>C.accounts?.map(W=>B(W))).filter(C=>!!C),w=new Map(Array.from(f.getAll(),([C,W])=>[W.namespaceId,W.state()[0]()]));return{connected:g.connected,connecting:g.connecting,installed:g.installed,reachable:!0,accounts:h,network:null,namespaces:w}},async suggestAndConnect(i,m){let f=r().get(i);if(!f)throw new Error(`You should add ${i} to provider first then call 'suggestAndConnect'.`);let g=f.findByNamespace(m.namespace);throw g?"suggest"in g?m.network?new Error(`Suggest has not been implemented for given chain: ${m.network}`):new Error("You should pass network to the suggest and connect"):new Error("Suggest is not implemented on the provider"):new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${m.namespace})`)},hubProvider(){throw new Error("Unreachable code. the method has been implemented in main adapter instance.")}}}c(Q,"useHubAdapter");function Pe(e){let{providers:t,...r}=e,[a,n]=$(t),u=M({...r,providers:a}),p=Q({...r,providers:n,allVersionedProviders:t});return oe({canSwitchNetworkTo(o,s,d){return S(n,o)?p.canSwitchNetworkTo(o,s,d):u.canSwitchNetworkTo(o,s)},async connect(o,s){return S(n,o)?await p.connect(o,s):await u.connect(o,s)},async disconnect(o,s){return S(n,o)?await p.disconnect(o,s):await u.disconnect(o)},async disconnectAll(){return await Promise.allSettled([p.disconnectAll(),u.disconnectAll()])},async getSigners(o){return S(n,o)?p.getSigners(o):u.getSigners(o)},getWalletInfo(o){return S(n,o)?p.getWalletInfo(o):u.getWalletInfo(o)},providers(){return u.providers()},state(o){return S(n,o)?p.state(o):u.state(o)},async suggestAndConnect(o,s){return S(n,o)?p.suggestAndConnect(o,s):await u.suggestAndConnect(o,s)},hubProvider(o){let s=S(n,o);if(s)return s;throw new Error(`You're trying to access ${o} provider which is not found in hub providers. you may try to access a legacy provider or it's not been registered yet.`)}})}c(Pe,"useProviders");function mt(e){let t=Pe(e);return dt.createElement(b.Provider,{value:t},e.children)}c(mt,"Provider");var ft=mt;import{LegacyEvents as mo}from"@rango-dev/wallets-core/legacy";export{mo as Events,ft as Provider,Z as availableWallets,J as checkWalletProviders,Nt as choose,O as clearPersistance,X as connectedWallets,F as defaultWalletState,kt as isAsync,j as makeEventHandler,At as needsCheckInstallation,z as stateReducer,ee as tryPersistWallet,te as tryRemoveWalletFromPersistance,be as useWallets};
1
+ var ce=Object.defineProperty;var o=(e,t)=>ce(e,"name",{value:t,configurable:!0});import $e from"react";import{createContext as ie}from"react";var A="Context hasn't been initialized yet.",le={async connect(){throw new Error(A)},async disconnect(){throw new Error(A)},async disconnectAll(){throw new Error(A)},async suggestAndConnect(){throw new Error(A)},state(){throw new Error(A)},canSwitchNetworkTo(){throw new Error(A)},getWalletInfo(){throw new Error(A)},getSigners(){throw new Error(A)},hubProvider(){throw new Error(A)}},x=ie(le);import{pickVersion as ve}from"@hub3js/core/utils";import{convertEvmBlockchainMetaToEvmChainInfo as Ne,formatAddressWithNetwork as Pe,getBlockChainNameFromId as ke,getSupportedChainsFromProvider as Ee}from"@rango-dev/internal-blockchains";import{AccountId as Ae}from"caip";import{isEvmBlockchain as Ie}from"rango-types";var R=(u=>(u.CONNECTED="connected",u.CONNECTING="connecting",u.REACHABLE="reachable",u.INSTALLED="installed",u.ACCOUNTS="accounts",u.NETWORK="network",u.NAMESPACE_DISCONNECTED="namespace_disconnected",u.PROVIDER_DISCONNECTED="provider_disconnected",u))(R||{});var k="hub-v1-last-connected-wallets";import{CAIP_BITCOIN_CHAIN_ID as pe,CAIP_BITCOINCASH_CHAIN_ID as ue,CAIP_DOGECOIN_CHAIN_ID as me,CAIP_LITECOIN_CHAIN_ID as de,CAIP_ZCASH_CHAIN_ID as fe}from"@hub3js/bip122";import{CAIP_NAMESPACE as he}from"@hub3js/tvm";import{formatAddressWithNetwork as Ce}from"@rango-dev/internal-blockchains";import{CAIP_TRON_CHAIN_ID as we}from"@rango-dev/wallets-core/namespaces/tron";import{AccountId as ge}from"caip";import{Err as H,Ok as q}from"ts-results";function ye(e){return typeof e=="string"?e:["solana","xrpl","stellar"].includes(e.namespace.toLowerCase())?e.namespace.toUpperCase():e.namespace.toLowerCase()==="eip155"?"ETH":e.reference===pe?"BTC":e.reference===fe?"ZCASH":e.reference===de?"LTC":e.reference===me?"DOGE":e.reference===ue?"BCH":e.namespace.toLowerCase()===he?"TON":e.namespace==="sui"||e.reference===we?e.reference.toUpperCase():e.namespace==="starknet"?e.namespace.toUpperCase():e.reference}o(ye,"mapCaipNamespaceToLegacyNetworkName");function S(e){let{chainId:t,address:n}=ge.parse(e),c=ye(t);return Ce(n,c)}o(S,"fromAccountIdToLegacyAddressFormat");async function L(e){return e.reduce(async(t,n)=>{let c=await t;try{let s=await n();return[...c,new q(s)]}catch(s){return[...c,new H(s)]}},Promise.resolve([]))}o(L,"runSequentiallyWithoutFailure");function $(e){return typeof e=="object"&&!Array.isArray(e)}o($,"isConnectResultEvm");function K(e){return Array.isArray(e)}o(K,"isConnectResultSolana");function Y(e){let t=new Set,n=[],c=o((p,m)=>{n=n.filter(u=>u.key!==p?!0:(u.resolve(m),!1))},"removeKeyFromQueue"),s=o(async()=>{let p=n.find(g=>!t.has(g.key));if(!p)return;let{task:m,resolve:u,key:f}=p;t.add(f);try{let g=await m();u(new q(g))}catch(g){e?.onError&&e.onError(g,{removeCurrentKeyFromQueue:()=>c(f,new H(g))}),u(new H(g))}finally{let g=n.findIndex(r=>r.key===f);g>=0&&n.splice(g,1),t.delete(f),s()}},"processQueue");return o(async(p,m)=>new Promise(u=>{n.push({task:p,resolve:u,key:m}),s()}),"queueTask")}o(Y,"createQueue");function Q(e){return!!e.allBlockChains?.length&&!!e.autoConnect}o(Q,"shouldTryAutoConnect");var T=class{static{o(this,"Persistor")}getItem(t){let n=localStorage.getItem(t);return n?JSON.parse(n):null}setItem(t,n){localStorage.setItem(t,JSON.stringify(n))}removeItem(t){localStorage.removeItem(t)}};var I=class{static{o(this,"LastConnectedWalletsFromStorage")}#e;constructor(t){this.#e=t}addWallet(t,n){if(this.#e===k)return this.#t(t,n);throw new Error("Not implemented")}removeWallets(t){if(this.#e===k)return this.#n(t);throw new Error("Not implemented")}list(){if(this.#e===k)return this.#r();throw new Error("Not implemented")}removeNamespacesFromWallet(t,n){if(this.#e===k)return this.#o(t,n);throw new Error("Not implemented")}#r(){return new T().getItem(k)||{}}#t(t,n){let c=new T,s=c.getItem(this.#e)||{},h=n;if(s[t]){let p=s[t];h=p.concat(n.filter(m=>!p.some(u=>u.namespace===m.namespace)))}c.setItem(this.#e,{...s,[t]:h})}#n(t){let n=new T,c=n.getItem(this.#e)||{};if(!t){n.setItem(this.#e,{});return}t.forEach(s=>{c[s]&&delete c[s]}),n.setItem(this.#e,c)}#o(t,n){let p=(new T().getItem(this.#e)||{})[t]?.filter(m=>!n.includes(m.namespace));this.#n([t]),p?.length>0&&this.#t(t,p)}};function F(e){return e.map(t=>{try{return ve(t,"1.0.0")[1]}catch{throw new Error("Legacy providers aren't supported anymore. Expected a provider with version '1.0.0'.")}})}o(F,"getHubProviders");function O(e,t){return e.find(n=>n.id===t)}o(O,"findProviderByType");var Te=new I(k);function V(e,t,n,c){let s=e.get(t.provider);if(!s)throw new Error("Currently all the events have assigned to a provider. The event doesn't include one.",{cause:t});let h=t.namespace,p=h?s.findByNamespace(h):void 0,m=null,u=null,f;if(p){let[l]=p.state();m=l().accounts,u=l().network,c.lastConnectAttemptParams[t.provider]&&(f=c.lastConnectAttemptParams[t.provider].find(d=>d.namespace===h)?.derivationPath)}let[g]=s.state(),r={connected:g().connected,connecting:g().connecting,installed:g().installed,accounts:m,network:u,reachable:!0,derivationPath:f},a=s.info()?.metadata.properties?.find(l=>l.name==="details"),i={supportedBlockchains:Ee(s,c.allBlockChains),isContractWallet:a?.value?.isContractWallet??!1,isHub:!0,namespace:h};switch(t.type){case"provider_detected":n(t.provider,"installed",!0,r,i);break;case"provider_connecting":n(t.provider,"connecting",t.value,r,i);break;case"provider_connected":n(t.provider,"connected",!0,r,i);break;case"provider_disconnected":n(t.provider,"provider_disconnected",t.provider,r,i),n(t.provider,"connected",!1,r,i),n(t.provider,"accounts",null,r,i);break;case"namespace_disconnected":Te.removeNamespacesFromWallet(t.provider,[t.namespace]),n(t.provider,"namespace_disconnected",t.namespace,r,{...i,namespace:t.namespace});break;case"namespace_connected":case"namespace_account_switched":{t.type==="namespace_account_switched"&&n(t.provider,"namespace_disconnected",t.namespace,r,i);let l=[];i.isContractWallet?l=t.accounts.map(d=>{let{chainId:w,address:P}=Ae.parse(d);if(typeof w=="string")throw new Error("Should be in CAIP format");let v=ke(w.reference,i.supportedBlockchains);return v?Pe(P,v):S(d)}):l=t.accounts.map(d=>S(d)),n(t.provider,"accounts",l,r,{...i,namespace:t.namespace})}break;case"namespace_network_switched":n(t.provider,"network",t.network,r,{...i,namespace:t.namespace});break}}o(V,"mapHubEventsToLegacy");function _(e,t){if(!e.network)return;let n=t.filter(Ie);return Ne(n)[e.network]}o(_,"convertNamespaceNetworkToEvmChainId");function G(e,t){return _(e,t)||e.network}o(G,"tryConvertNamespaceNetworkToChainInfo");function z(e){return $(e)?{accounts:e.accounts,network:e.network}:K(e)?{accounts:e,network:null}:{accounts:[e],network:null}}o(z,"transformHubResultToLegacyResult");function X(e,t){let n=e.getAll();t.filter(s=>!n.get(s.id)).forEach(s=>{e.add(s.id,s),s.init()}),n.forEach(s=>{t.some(p=>p.id===s.id)||e.remove(s.id)})}o(X,"synchronizeHubWithConfigProviders");function J(e){return e.namespaceId==="Solana"}o(J,"isSolanaNamespace");function W(e){return e.namespaceId==="EVM"}o(W,"isEvmNamespace");function Z(e){return e.namespaceId==="UTXO"}o(Z,"isUtxoNamespace");import{utils as _e}from"@hub3js/evm";import{getSupportedChainsFromNamespace as De,getSupportedChainsFromProvider as je}from"@rango-dev/internal-blockchains";import{useEffect as D,useRef as j,useState as Me}from"react";import{Ok as Ue,Result as qe}from"ts-results";import{debug as be}from"@rango-dev/logging-core";function ee(e,t,n){let c=n instanceof Error?n:new Error(String(n));be(c,{context:{method:e,args:t},tags:{type:"wallet-error"}})}o(ee,"logError");function Se(e,t){return(...n)=>{try{let c=t(...n);return c instanceof Promise?c.catch(s=>{throw ee(e,n,s),s}):c}catch(c){throw ee(e,n,c),c}}}o(Se,"withErrorLogging");function te(e){let t=Object.entries(e).map(([n,c])=>[n,Se(n,c.bind(e))]);return Object.fromEntries(t)}o(te,"withErrorLoggingApi");import{Result as xe}from"ts-results";function We(e){return e.namespace==="EVM"}o(We,"isEvmNamespaceInput");var B=new I(k);async function Be(e,t,n){let{getHub:c,allBlockChains:s}=n,h=c().get(e);if(!h)throw new Error(`You should add ${e} to provider first then call 'connect'.`);if(!t)throw new Error("Passing namespace to `connect` is required. ");let p=[];t.forEach(r=>{let a=r.namespace,i=h.findByNamespace(a);if(!i)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${r.namespace})`);p.push([r,i])});let m=p.map(([r,a])=>{let l=(We(r)?_(r,s||[]):void 0)||r.network;return async()=>{let d;W(a)?d=o(async()=>a.connect(l),"connectNamespacePromise"):d=o(async()=>a.connect(),"connectNamespacePromise");try{await d()}catch(w){throw w instanceof Error?w:new Error(w)}}}),u=await L(m),f=p.filter((r,a)=>u[a].err).map(r=>r[0]);if(f.length>0&&B.removeNamespacesFromWallet(e,f.map(r=>r.namespace)),!u.some(r=>r.ok))throw new Error(`No namespace connected for ${e}`);return xe.all(...u.filter(r=>r.ok)).unwrap()}o(Be,"eagerConnect");async function Re(e,t){let n=[],c=[],s=[],h=[];e.forEach(m=>{let u=t.findByNamespace(m.namespace);u?(n.push(m),h.push(async()=>await u.canEagerConnect())):s.push(m)});let p=await L(h);return n.forEach((m,u)=>{p[u].ok&&p[u].val?c.push(m):s.push(m)}),{successNamespaces:c,failedNamespaces:s}}o(Re,"tryRunCanEagerConnect");async function ne(e){let{getHub:t,allBlockChains:n,wallets:c}=e,s=B.list(),h=Object.keys(s),p=[];if(h.length){let m=[],u=c?.map(f=>typeof f=="string"?f:f.id);h.forEach(async f=>{if(u&&!u.includes(f)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",f),p.push(f);return}let g=t().get(f),r=s[f].map(l=>({namespace:l.namespace,network:l.network}));if(!r.length||!g){p.push(f);return}let{successNamespaces:a,failedNamespaces:i}=await Re(r,g);if(a.length)i.length&&B.removeNamespacesFromWallet(g.id,i.map(l=>l.namespace));else{p.push(f);return}m.push(Be(f,a,{allBlockChains:n,getHub:t}).catch(l=>console.warn(l)))}),B.removeWallets(p),await Promise.all(m)}}o(ne,"autoConnect");import{useEffect as He,useRef as Le}from"react";function re(e){let t=Le(!1);He(()=>{Q(e)&&!t.current&&(t.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}o(re,"useAutoConnect");import{createStore as Fe,Hub as Oe}from"@hub3js/core";import{useRef as oe}from"react";function se(e){let t=oe(null),n=oe(null);function c(){let p=new Oe({store:s()});return e.forEach(m=>{p.add(m.id,m)}),n.current=p,p}o(c,"createHub");function s(){if(t.current!==null)return t.current;let p=Fe();return t.current=p,p}o(s,"getStore");function h(){let p=n.current?.getAll();return!n.current||!p?c():(X(n.current,e),n.current)}return o(h,"getHub"),{getStore:s,getHub:h}}o(se,"useHubRefs");function M(e){let{getStore:t,getHub:n}=se(e.providers),[,c]=Me(0),s=j({onUpdateState:e.onUpdateState,allBlockChains:e.allBlockChains}),h=j(!1),p=j({}),m=o((r,a)=>{p.current[r]=a||[]},"updateLastConnectAttemptParams"),u=Y({onError:(r,a)=>{_e.isUserRejectionError(r)&&a.removeCurrentKeyFromQueue()}});D(()=>{s.current={onUpdateState:e.onUpdateState,allBlockChains:e.allBlockChains}},[e]),D(()=>{t().subscribe(r=>{if(s.current.onUpdateState)try{V(n(),r,s.current.onUpdateState,{allBlockChains:s.current.allBlockChains,lastConnectAttemptParams:p.current})}catch(a){console.error(a)}c(a=>a+1)}).flushEvents()},[]),D(()=>{h.current||!e.allBlockChains?.length||(n().init(e.configs?.walletOptions),c(r=>r+1),h.current=!0)},[e.allBlockChains,e.configs?.walletOptions]),re({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{ne({allBlockChains:e.allBlockChains,getHub:n,wallets:e.configs?.wallets})}});let f=new I(k);return te({canSwitchNetworkTo(r,a,i){let l=n().get(r);if(!l)return!1;if(!i)throw new Error("Passing namespace to `canSwitchNetworkTo` is required.");let d=l.findByNamespace(i.namespace);if(!d)throw new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${i.namespace})`);if(!("canSwitchNetwork"in d))return!1;let w=l.info()?.metadata?.properties?.find(N=>N.name==="namespaces");if(!s.current.allBlockChains)throw new Error("Blockchains are not available");let P=w?.value.data.find(N=>N.value===i.namespace);if(!P)throw new Error(`NamespaceMeta is not defined for requested namespace: ${i.namespace}`);let v=De(P,s.current.allBlockChains);return d.canSwitchNetwork({network:a,supportedChains:v})},async connect(r,a){let i=n().get(r);if(!i)throw new Error(`You should add ${r} to provider first then call 'connect'.`);if(!a)throw new Error("Passing namespace to `connect` is required.");m(r,a);let l=[];a.forEach(C=>{let y=C.namespace,E=i.findByNamespace(y);if(!E)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${C.namespace})`);l.push([C,E])});let d=l.map(async([C,y])=>{let E=G(C,e.allBlockChains||[]),b;return J(y)?b=o(async()=>y.connect({derivationPath:C.derivationPath}),"connectNamespacePromise"):W(y)?b=o(async()=>y.connect(E,{derivationPath:C.derivationPath}),"connectNamespacePromise"):Z(y)?b=o(async()=>y.connect({derivationPath:C.derivationPath}),"connectNamespacePromise"):b=o(async()=>y.connect(),"connectNamespacePromise"),u(o(async()=>b().then(z).then(ae=>({response:ae,input:{namespace:C.namespace,network:C.network,supportsEagerConnect:"canEagerConnect"in y}})),"connectNamespaceProcess"),r)}),w=await Promise.all(d),P=w.filter(C=>C.ok).filter(C=>C.val.input.supportsEagerConnect).map(C=>({namespace:C.val.input.namespace,network:C.val.input.network}));P.length>0&&f.addWallet(r,P);let v=w.map(C=>C.andThen(y=>new Ue(y.response))),N=qe.all(...v);if(N.err)throw N.val;return N.unwrap()},async disconnect(r,a){let i=n().get(r);if(!i)throw new Error(`You should add ${r} to provider first then call 'disconnect'.`);i.getAll().forEach(l=>{let d=!a||a.includes(l.namespaceId),w=l.state()[0]().connected;if(d&&w)return l.disconnect()}),e.autoConnect&&(a?f.removeNamespacesFromWallet(r,a):f.removeWallets([r]))},async disconnectAll(){let r=Array.from(n().getAll().values()).map(async a=>this.disconnect(a.id));return await Promise.allSettled(r)},async getSigners(r){let a=n().get(r);if(!a)throw new Error(`You should add ${r} to provider first.`);let i=a.info();if(!i)throw new Error("Your provider should have required `info`.");let d=i.metadata.properties?.find(w=>w.name==="signers");if(!d)throw new Error("Your provider should contain signers property.");return d.value.getSigners()},getWalletInfo(r){let a=n().get(r);if(!a)throw new Error(`You should add ${r} to provider first.`);let i=a.info();if(!i)throw new Error("Your provider should have required `info`.");let l={DEFAULT:""},{metadata:d}=i,{extensions:w}=d;Object.keys(w).forEach(y=>{let E=y;if(E==="homepage"&&(l.DEFAULT=w[E]||""),["firefox","chrome","brave","edge"].includes(E)){let U=E.toUpperCase();l[U]=w[E]||""}});let P=d.properties,v=P?.find(y=>y.name==="namespaces"),N=P?.find(y=>y.name==="derivationPath"),C=P?.find(y=>y.name==="details");return{name:d.name,img:d.icon,installLink:l,color:"red",supportedChains:je(a,s.current.allBlockChains),isContractWallet:C?.value?.isContractWallet,mobileWallet:C?.value?.mobileWallet,showOnMobile:C?.value?.showOnMobile,needsNamespace:v?.value,needsDerivationPath:N?.value,isHub:!0,properties:d.properties}},state(r){let a=n().state(),i=n().get(r),l=a[r];if(!l||!i)return{connected:!1,connecting:!1,installed:!1,reachable:!1,accounts:null,network:null,namespaces:new Map};let d=l.namespaces.filter(v=>v.connected).flatMap(v=>v.accounts?.map(N=>S(N))).filter(v=>!!v),w=new Map(Array.from(i.getAll(),([v,N])=>[N.namespaceId,N.state()[0]()]));return{connected:l.connected,connecting:l.connecting,installed:l.installed,reachable:!0,accounts:d,network:null,namespaces:w}},async suggestAndConnect(r,a){let i=n().get(r);if(!i)throw new Error(`You should add ${r} to provider first then call 'suggestAndConnect'.`);let l=i.findByNamespace(a.namespace);throw l?"suggest"in l?a.network?new Error(`Suggest has not been implemented for given chain: ${a.network}`):new Error("You should pass network to the suggest and connect"):new Error("Suggest is not implemented on the provider"):new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${a.namespace})`)},hubProvider(r){let a=O(e.providers,r);if(!a)throw new Error(`You're trying to access ${r} provider which is not found in hub providers. it may not be registered yet.`);return a}})}o(M,"useHubAdapter");function Ke(e){let t=M({...e,providers:F(e.providers)});return $e.createElement(x.Provider,{value:t},e.children)}o(Ke,"Provider");var Ye=Ke;import{useContext as Qe}from"react";function Ve(){let e=Qe(x);if(!e)throw Error("useWallet can only be used within the Provider component");return e}o(Ve,"useWallets");export{R as Events,Ye as Provider,Ve as useWallets};
2
2
  //# sourceMappingURL=index.js.map