@rango-dev/wallets-react 0.0.0-experimental-3e0c1f86-20251213 → 0.0.0-experimental-82bcc5d9-20260608

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 (37) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/helpers/index.js +1 -1
  3. package/dist/helpers/index.js.map +3 -3
  4. package/dist/hub/autoConnect.d.ts +2 -2
  5. package/dist/hub/autoConnect.d.ts.map +1 -1
  6. package/dist/hub/helpers.d.ts +4 -5
  7. package/dist/hub/helpers.d.ts.map +1 -1
  8. package/dist/hub/lastConnectedWallets.d.ts +1 -1
  9. package/dist/hub/lastConnectedWallets.d.ts.map +1 -1
  10. package/dist/hub/types.d.ts +3 -2
  11. package/dist/hub/types.d.ts.map +1 -1
  12. package/dist/hub/useHubAdapter.d.ts +2 -2
  13. package/dist/hub/useHubAdapter.d.ts.map +1 -1
  14. package/dist/hub/useHubRefs.d.ts +2 -2
  15. package/dist/hub/useHubRefs.d.ts.map +1 -1
  16. package/dist/hub/utils.d.ts +7 -13
  17. package/dist/hub/utils.d.ts.map +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/index.js.map +4 -4
  20. package/dist/legacy/types.d.ts +12 -3
  21. package/dist/legacy/types.d.ts.map +1 -1
  22. package/dist/test-utils/fixtures.d.ts +1 -1
  23. package/dist/test-utils/fixtures.d.ts.map +1 -1
  24. package/dist/wallets-react.build.json +1 -1
  25. package/package.json +11 -5
  26. package/src/hub/autoConnect.ts +5 -24
  27. package/src/hub/helpers.ts +15 -23
  28. package/src/hub/lastConnectedWallets.ts +1 -1
  29. package/src/hub/types.ts +4 -7
  30. package/src/hub/useHubAdapter.ts +6 -46
  31. package/src/hub/useHubRefs.ts +2 -2
  32. package/src/hub/utils.ts +8 -26
  33. package/src/legacy/types.ts +12 -7
  34. package/src/test-utils/fixtures.ts +4 -78
  35. package/dist/hub/chainRegisteryConvertors.d.ts +0 -11
  36. package/dist/hub/chainRegisteryConvertors.d.ts.map +0 -1
  37. package/src/hub/chainRegisteryConvertors.ts +0 -186
@@ -1,13 +1,12 @@
1
1
  import type { AllProxiedNamespaces } from './types.js';
2
- import type { Hub, Provider, ProxiedNamespace } from '@rango-dev/wallets-core';
2
+ import type { Hub, Provider, ProxiedNamespace } from '@hub3js/core';
3
+ import type { Event } from '@hub3js/core/store';
4
+ import type { EvmActions } from '@hub3js/evm';
5
+ import type { SolanaActions } from '@hub3js/solana';
3
6
  import type { LegacyNamespaceInputForConnect, LegacyProviderInterface, LegacyEventHandler as WalletEventHandler } from '@rango-dev/wallets-core/legacy';
4
- import type { CosmosActions } from '@rango-dev/wallets-core/namespaces/cosmos';
5
- import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';
6
- import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';
7
7
  import type { SuiActions } from '@rango-dev/wallets-core/namespaces/sui';
8
8
  import type { UtxoActions } from '@rango-dev/wallets-core/namespaces/utxo';
9
- import type { Event } from '@rango-dev/wallets-core/store';
10
- import { type VersionedProviders } from '@rango-dev/wallets-core/utils';
9
+ import { type VersionedProviders } from '@hub3js/core/utils';
11
10
  import { type AddEthereumChainParameter, type WalletType } from '@rango-dev/wallets-shared';
12
11
  import { type BlockchainMeta } from 'rango-types';
13
12
  import { type ConnectResult, type ProviderProps } from '../legacy/mod.js';
@@ -29,8 +28,6 @@ export declare function convertNamespaceNetworkToEvmChainId(namespace: LegacyNam
29
28
  /**
30
29
  * 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).
31
30
  * This function will help us to map these strings to proper hex ids.
32
- *
33
- * If you need same functionality for other blockchain types (e.g. Cosmos), You can make a separate function and add it here.
34
31
  */
35
32
  export declare function tryConvertNamespaceNetworkToChainInfo(namespace: LegacyNamespaceInputForConnect, meta: BlockchainMeta[]): string | AddEthereumChainParameter | undefined;
36
33
  export declare function transformHubResultToLegacyResult(res: Awaited<ReturnType<AllProxiedNamespaces['connect']>>): ConnectResult;
@@ -40,13 +37,10 @@ export declare function transformHubResultToLegacyResult(res: Awaited<ReturnType
40
37
  * - Removes providers from the hub that aren't in the configuration
41
38
  */
42
39
  export declare function synchronizeHubWithConfigProviders(hub: Hub, configurationProviders: Provider[]): void;
43
- export declare function isSolanaNamespace(ns: ProxiedNamespace<EvmActions | SolanaActions | CosmosActions | SuiActions | UtxoActions>): ns is ProxiedNamespace<SolanaActions> & {
40
+ export declare function isSolanaNamespace(ns: ProxiedNamespace<EvmActions | SolanaActions | SuiActions | UtxoActions>): ns is ProxiedNamespace<SolanaActions> & {
44
41
  namespaceId: 'Solana';
45
42
  };
46
- export declare function isEvmNamespace(ns: ProxiedNamespace<EvmActions | SolanaActions | CosmosActions | SuiActions | UtxoActions>): ns is ProxiedNamespace<EvmActions> & {
43
+ export declare function isEvmNamespace(ns: ProxiedNamespace<EvmActions | SolanaActions | SuiActions | UtxoActions>): ns is ProxiedNamespace<EvmActions> & {
47
44
  namespaceId: 'EVM';
48
45
  };
49
- export declare function isCosmosNamespace(ns: ProxiedNamespace<EvmActions | SolanaActions | CosmosActions | SuiActions | UtxoActions>): ns is ProxiedNamespace<CosmosActions> & {
50
- namespaceId: 'Cosmos';
51
- };
52
46
  //# sourceMappingURL=utils.d.ts.map
@@ -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,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EACV,8BAA8B,EAC9B,uBAAuB,EACvB,kBAAkB,IAAI,kBAAkB,EACzC,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EACL,KAAK,yBAAyB,EAE9B,KAAK,UAAU,EAChB,MAAM,2BAA2B,CAAC;AACnC,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,8BAA8B,CAC5C,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,oBAYhD;AAED,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,CAiKN;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,yCAUvB;AAED;;;;;GAKG;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,gBAAgB,CAClB,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,CACtE,GACA,EAAE,IAAI,gBAAgB,CAAC,aAAa,CAAC,GAAG;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,CAEnE;AACD,wBAAgB,cAAc,CAC5B,EAAE,EAAE,gBAAgB,CAClB,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,CACtE,GACA,EAAE,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAE7D;AACD,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,gBAAgB,CAClB,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,CACtE,GACA,EAAE,IAAI,gBAAgB,CAAC,aAAa,CAAC,GAAG;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,CAEnE"}
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,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,8BAA8B,EAC9B,uBAAuB,EACvB,kBAAkB,IAAI,kBAAkB,EACzC,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EACL,KAAK,yBAAyB,EAE9B,KAAK,UAAU,EAChB,MAAM,2BAA2B,CAAC;AACnC,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,8BAA8B,CAC5C,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,oBAYhD;AAED,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,CA8JN;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,yCAUvB;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,gBAAgB,CAAC,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC,GAC1E,EAAE,IAAI,gBAAgB,CAAC,aAAa,CAAC,GAAG;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,CAEnE;AACD,wBAAgB,cAAc,CAC5B,EAAE,EAAE,gBAAgB,CAAC,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC,GAC1E,EAAE,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAE7D"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var We=Object.defineProperty;var s=(e,t)=>We(e,"name",{value:t,configurable:!0});import{Persistor as Ae}from"@rango-dev/wallets-core/legacy";var k="last-connected-wallets",E="hub-v1-last-connected-wallets";import{Persistor as T}from"@rango-dev/wallets-core/legacy";var W=class{static{s(this,"LastConnectedWalletsFromStorage")}#e;constructor(t){this.#e=t}addWallet(t,o){if(this.#e===E)return this.#t(t,o);if(this.#e===k)return this.#a(t);throw new Error("Not implemented")}removeWallets(t){if(this.#e===E)return this.#o(t);if(this.#e===k)return this.#c(t);throw new Error("Not implemented")}list(){if(this.#e===E)return this.#r();if(this.#e===k)return this.#n();throw new Error("Not implemented")}removeNamespacesFromWallet(t,o){if(this.#e===E)return this.#s(t,o);throw new Error("Not implemented")}#n(){let o=new T().getItem(k)||[],c={};return o.forEach(a=>{c[a]=[]}),c}#r(){return new T().getItem(E)||{}}#t(t,o){let c=new T,a=c.getItem(this.#e)||{},p=o;if(a[t]){let u=a[t];p=u.concat(o.filter(d=>!u.some(n=>n.namespace===d.namespace)))}c.setItem(this.#e,{...a,[t]:p})}#a(t){let o=new T,c=o.getItem(this.#e)||[];o.setItem(k,c.concat(t))}#o(t){let o=new T,c=o.getItem(this.#e)||{};if(!t){o.setItem(this.#e,{});return}t.forEach(a=>{c[a]&&delete c[a]}),o.setItem(this.#e,c)}#s(t,o){let u=(new T().getItem(this.#e)||{})[t]?.filter(d=>!o.includes(d.namespace));this.#o([t]),u?.length>0&&this.#t(t,u)}#c(t){let o=new T,c=o.getItem(this.#e)||[];if(!t){o.setItem(this.#e,[]);return}o.setItem(k,c.filter(a=>!t.includes(a)))}};function vt(e,t){return e.find(o=>o.type===t)||null}s(vt,"choose");var D={connected:!1,connecting:!1,reachable:!1,installed:!1,accounts:null,network:null};function J(e,t){if(t.type==="new_state"){let o=e[t.wallet];return o?{...e,[t.wallet]:{...o,[t.name]:t.value}}:{...e,[t.wallet]:{...D,[t.name]:t.value}}}return e}s(J,"stateReducer");function X(e){return Object.entries(e).filter(([,t])=>t?.connected).map(([t])=>t)}s(X,"connectedWallets");function Z(e){return Object.entries(e).map(([t])=>t)}s(Z,"availableWallets");function ee(e){let t=new Map;return e.forEach(o=>{let{config:c,...a}=o;t.set(c.type,{actions:a,config:c})}),t}s(ee,"checkWalletProviders");function Pt(e){return e?.constructor?.name==="AsyncFunction"}s(Pt,"isAsync");function kt(e){let{checkInstallation:t=!0}=e.config;return t}s(kt,"needsCheckInstallation");async function te({type:e,walletActions:t,getState:o}){if(t.canEagerConnect){let c=new W(k),p=!!c.list()[e];p&&!o(e).connected&&M(),p||c.addWallet(e,[])}}s(te,"tryPersistWallet");function oe({type:e,walletActions:t}){t.canEagerConnect&&new W(k).removeWallets([e])}s(oe,"tryRemoveWalletFromPersistance");function M(){let e=new Ae;e.getItem(k)&&e.removeItem(k)}s(M,"clearPersistance");function U(e,t){return s((c,a,p,u,d)=>{e({type:"new_state",wallet:c,name:a,value:p}),t&&t(c,a,p,u,d)},"handler")}s(U,"makeEventHandler");import it from"react";import{createContext as Ne}from"react";var I="Context hasn't been initialized yet.",Ie={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=Ne(Ie);import{LegacyEvents as x}from"@rango-dev/wallets-core/legacy";import"@rango-dev/wallets-core/utils";import{pickVersion as de}from"@rango-dev/wallets-core/utils";import{convertEvmBlockchainMetaToEvmChainInfo as je}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Ye}from"rango-types";import{useEffect as j,useReducer as Re}from"react";async function ne(e,t){let o=new W(k),c=o.list(),a=Object.keys(c);if(a.length){let p=[];a.forEach(n=>{let l=e.get(n);if(l){let r=t(l);p.push({walletType:n,eagerConnect:r.eagerConnect.bind(r)})}});let u=await Promise.allSettled(p.map(async({eagerConnect:n})=>n())),d=[];u.forEach((n,l)=>{let{status:r}=n;r==="rejected"&&d.push(p[l].walletType)}),d.length&&o.removeWallets(d)}}s(ne,"autoConnect");import{LegacyWallet as xe}from"@rango-dev/wallets-core/legacy";import{useContext as Se,useRef as Te}from"react";function re(e){let t=Te({});function o(c){let a=c.config.type;return typeof t.current[a]>"u"&&(t.current[a]=new xe({config:c.config,handler:e},c.actions)),t.current[a]}return s(o,"updater"),o}s(re,"useInitializers");function Le(){let e=Se(b);if(!e)throw Error("useWallet can only be used within the Provider component");return e}s(Le,"useWallets");import{useEffect as be,useRef as Be}from"react";function ae(e){return!!e.allBlockChains?.length&&!!e.autoConnect}s(ae,"shouldTryAutoConnect");function F(e){let t=Be(!1);be(()=>{ae(e)&&!t.current&&(t.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}s(F,"useAutoConnect");function Y(e){let[t,o]=Re(J,{}),c=re(U(o,e.onUpdateState)),a=e.providers,p=ee(a);F({allBlockChains:e.allBlockChains,autoConnect:e.autoConnect,autoConnectHandler:async()=>ne(p,c)});let u={async connect(d,n){let l=p.get(d);if(!l)throw new Error(`You should add ${d} to provider first.`);let r;n&&n.length>0&&(r=n.find(f=>!!f.network)?.network);let m=await c(l).connect(r,n);return e.autoConnect&&te({type:d,walletActions:l.actions,getState:u.state}),[m]},async disconnect(d){let n=p.get(d);if(!n)throw new Error(`You should add ${d} to provider first.`);await c(n).disconnect(),e.autoConnect&&oe({type:d,walletActions:n.actions})},async disconnectAll(){let d=[];return X(t).forEach(n=>{let l=p.get(n);if(l){let r=c(l);d.push(r.disconnect())}}),e.autoConnect&&M(),await Promise.allSettled(d)},async suggestAndConnect(d,n){let l=p.get(d);if(!l)throw new Error(`You should add ${d} to provider first.`);let r=c(l);if(!n.network)throw new Error("You should pass network to the suggestAndConnect");return await r.suggestAndConnect(n.network)},state(d){return t[d]||D},canSwitchNetworkTo(d,n){let l=p.get(d);if(!l)return!1;let r=c(l);return r.canSwitchNetworkTo?r.canSwitchNetworkTo(n,r.provider):!1},providers(){let d={};return Z(t).forEach(n=>{let l=p.get(n);if(l){let r=c(l);d[n]=r.provider}}),d},getWalletInfo(d){let n=p.get(d);if(!n)throw new Error(`You should add ${d} to provider first.`);return n.actions.getWalletInfo(e.allBlockChains||[])},async getSigners(d){let n=p.get(d);if(!n)throw new Error(`You should add ${d} to provider first.`);let l=c(n),r=l.provider;return l.getSigners(r)},hubProvider(){throw new Error("This method is not available on legacy providers.")}};return j(()=>{p.forEach(d=>{let n=c(d),l=s(()=>{n.onInit&&n.onInit()},"runOnInit"),r=s(i=>{i.target&&i.target.readyState==="complete"&&(l(),document.removeEventListener("readystatechange",r))},"initWhenPageIsReady");l(),document.addEventListener("readystatechange",r)})},[]),j(()=>{e.allBlockChains&&p.forEach(n=>{let l=c(n),r=l.getWalletInfo(e.allBlockChains||[]);l.setInfo({supportedBlockchains:r.supportedChains,isContractWallet:!!r.isContractWallet})})},[e.allBlockChains]),j(()=>{p.forEach(d=>{c(d).setHandler(U(o,e.onUpdateState))})},[e.onUpdateState]),u}s(Y,"useLegacyProviders");import{legacyFormatAddressWithNetwork as Fe}from"@rango-dev/wallets-core/legacy";import{CAIP_NAMESPACE as He}from"@rango-dev/wallets-core/namespaces/cosmos";import{CAIP_TRON_CHAIN_ID as _e}from"@rango-dev/wallets-core/namespaces/tron";import{CAIP_BITCOIN_CHAIN_ID as Oe}from"@rango-dev/wallets-core/namespaces/utxo";import{CAIP as De}from"@rango-dev/wallets-core/utils";import{getBlockChainNameFromId as Me}from"@rango-dev/wallets-shared";import{Err as $,Ok as se}from"ts-results";function Ue(e,t){if(typeof e=="string")return e;if(["solana"].includes(e.namespace.toLowerCase()))return e.namespace.toUpperCase();if(e.namespace.toLowerCase()==="eip155")return"ETH";if(e.reference===Oe)return"BTC";if(e.namespace.toLowerCase()===He){let c=Me(e.reference,t);if(!c)throw new Error(`Network didn't found for given chainId: ${e.reference}`);return c}return e.namespace==="sui"||e.reference===_e?e.reference.toUpperCase():e.namespace==="starknet"?e.namespace.toUpperCase():e.reference}s(Ue,"mapCaipNamespaceToLegacyNetworkName");function H(e,t){let{chainId:o,address:c}=De.AccountId.parse(e),a=Ue(o,t);return Fe(c,a)}s(H,"fromAccountIdToLegacyAddressFormat");async function V(e){return e.reduce(async(t,o)=>{let c=await t;try{let a=await o();return[...c,new se(a)]}catch(a){return[...c,new $(a)]}},Promise.resolve([]))}s(V,"runSequentiallyWithoutFailure");function ce(e){return typeof e=="object"&&!Array.isArray(e)}s(ce,"isConnectResultEvm");function ie(e){return Array.isArray(e)}s(ie,"isConnectResultSolana");function le(e){let t=new Set,o=[],c=s((u,d)=>{o=o.filter(n=>n.key!==u?!0:(n.resolve(d),!1))},"removeKeyFromQueue"),a=s(async()=>{let u=o.find(r=>!t.has(r.key));if(!u)return;let{task:d,resolve:n,key:l}=u;t.add(l);try{let r=await d();n(new se(r))}catch(r){e?.onError&&e.onError(r,{removeCurrentKeyFromQueue:()=>c(l,new $(r))}),n(new $(r))}finally{let r=o.findIndex(i=>i.key===l);r>=0&&o.splice(r,1),t.delete(l),a()}},"processQueue");return s(async(u,d)=>new Promise(n=>{o.push({task:u,resolve:n,key:d}),a()}),"queueTask")}s(le,"createQueue");function q(e){let t="0.0.0",o="1.0.0",c=[],a=[];return e.forEach(p=>{try{let u=de(p,o);a.push(u[1])}catch{let u=de(p,t);c.push(u[1])}}),[c,a]}s(q,"separateLegacyAndHubProviders");function S(e,t){return e.find(o=>o.id===t)}s(S,"findProviderByType");var $e=new W(E);function G(e,t){return e.info()?.metadata.properties?.find(a=>a.name==="namespaces")?.value.data.flatMap(a=>a.getSupportedChains(t||[]))||[]}s(G,"getSupportedChainsFromProvider");function pe(e,t,o,c){let a=e.get(t.provider);if(!a)throw new Error("Currently all the events have assigned to a provider. The event doesn't include one.",{cause:t});let p=t.namespace,u=p?a.findByNamespace(p):void 0,d=null,n=null,l;if(u){let[f]=u.state();d=f().accounts,n=f().network,c.lastConnectAttemptParams[t.provider]&&(l=c.lastConnectAttemptParams[t.provider].find(g=>g.namespace===p)?.derivationPath)}let[r]=a.state(),i={connected:r().connected,connecting:r().connecting,installed:r().installed,accounts:d,network:n,reachable:!0,derivationPath:l},m={supportedBlockchains:G(a,c.allBlockChains),isContractWallet:!1,isHub:!0,namespace:p};switch(t.type){case"provider_detected":o(t.provider,x.INSTALLED,!0,i,m);break;case"provider_connecting":o(t.provider,x.CONNECTING,t.value,i,m);break;case"provider_connected":o(t.provider,x.CONNECTED,!0,i,m);break;case"provider_disconnected":o(t.provider,x.PROVIDER_DISCONNECTED,t.provider,i,m),o(t.provider,x.CONNECTED,!1,i,m),o(t.provider,x.ACCOUNTS,null,i,m);break;case"namespace_disconnected":$e.removeNamespacesFromWallet(t.provider,[t.namespace]),o(t.provider,x.NAMESPACE_DISCONNECTED,t.namespace,i,{...m,namespace:t.namespace});break;case"namespace_connected":case"namespace_account_switched":{t.type==="namespace_account_switched"&&o(t.provider,x.NAMESPACE_DISCONNECTED,t.namespace,i,m);let f=t.accounts.map(g=>H(g,c.allBlockChains||[]));o(t.provider,x.ACCOUNTS,f,i,{...m,namespace:t.namespace})}break;case"namespace_network_switched":o(t.provider,x.NETWORK,t.network,i,{...m,namespace:t.namespace});break}}s(pe,"mapHubEventsToLegacy");function Q(e,t){if(!e.network)return;let o=t.filter(Ye);return je(o)[e.network]}s(Q,"convertNamespaceNetworkToEvmChainId");function ue(e,t){return Q(e,t)||e.network}s(ue,"tryConvertNamespaceNetworkToChainInfo");function me(e){return ce(e)?{accounts:e.accounts,network:e.network,provider:void 0}:ie(e)?{accounts:e,network:null,provider:void 0}:{accounts:[e],network:null,provider:void 0}}s(me,"transformHubResultToLegacyResult");function fe(e,t){let o=e.getAll();t.filter(a=>!o.get(a.id)).forEach(a=>{e.add(a.id,a),a.init()}),o.forEach(a=>{t.some(u=>u.id===a.id)||e.remove(a.id)})}s(fe,"synchronizeHubWithConfigProviders");function ge(e){return e.namespaceId==="Solana"}s(ge,"isSolanaNamespace");function _(e){return e.namespaceId==="EVM"}s(_,"isEvmNamespace");function B(e){return e.namespaceId==="Cosmos"}s(B,"isCosmosNamespace");import{utils as rt}from"@rango-dev/wallets-core/namespaces/evm";import"@rango-dev/wallets-shared";import{cosmosBlockchains as ve}from"rango-types";import{useEffect as Pe,useRef as ke,useState as at}from"react";import{Ok as st,Result as ct}from"ts-results";import{Provider as Ve}from"@rango-dev/wallets-core";import{legacyIsEvmNamespace as qe}from"@rango-dev/wallets-core/legacy";import{cosmosBlockchains as Ge}from"rango-types";import{Result as Qe}from"ts-results";var O=new W(E);async function Ke(e,t,o){let{getHub:c,allBlockChains:a}=o,p=c().get(e);if(!p)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 u=[];t.forEach(i=>{let m=i.namespace,f=p.findByNamespace(m);if(!f)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${i.namespace})`);u.push([i,f])});let d=u.map(([i,m])=>{let g=(qe(i)?Q(i,a||[]):void 0)||i.network;return async()=>{let C;if(_(m))C=s(async()=>m.connect(g),"connectNamespacePromise");else if(B(m)){let v=Ge(o.allBlockChains||[]).filter(h=>!!h.chainId);C=s(async()=>m.connect({chainIds:v.filter(h=>h.info&&!h.info.experimental)?.map(h=>h.chainId),customChainIds:v.filter(h=>h.info?.experimental).map(h=>h.chainId)}),"connectNamespacePromise")}else C=s(async()=>m.connect(),"connectNamespacePromise");try{await C()}catch(v){throw v instanceof Error?v:new Error(v)}}}),n=await V(d),l=u.filter((i,m)=>n[m].err).map(i=>i[0]);if(l.length>0&&O.removeNamespacesFromWallet(e,l.map(i=>i.namespace)),!n.some(i=>i.ok))throw new Error(`No namespace connected for ${e}`);return Qe.all(...n.filter(i=>i.ok)).unwrap()}s(Ke,"eagerConnect");async function ze(e,t){let o=[],c=[],a=[],p=[];e.forEach(d=>{let n=t.findByNamespace(d.namespace);n?(o.push(d),p.push(async()=>await n.canEagerConnect())):a.push(d)});let u=await V(p);return o.forEach((d,n)=>{u[n].ok&&u[n].val?c.push(d):a.push(d)}),{successNamespaces:c,failedNamespaces:a}}s(ze,"tryRunCanEagerConnect");async function he(e){let{getHub:t,allBlockChains:o,wallets:c}=e,a=O.list(),p=Object.keys(a),u=[];if(p.length){let d=[],n=c?.map(l=>typeof l=="string"?l:l instanceof Ve?l.id:l.config.type);p.forEach(async l=>{if(n&&!n.includes(l)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",l),u.push(l);return}let r=t().get(l),i=a[l].map(g=>({namespace:g.namespace,network:g.network}));if(!i.length||!r){u.push(l);return}let{successNamespaces:m,failedNamespaces:f}=await ze(i,r);if(m.length)f.length&&O.removeNamespacesFromWallet(r.id,f.map(g=>g.namespace));else{u.push(l);return}d.push(Ke(l,m,{allBlockChains:o,getHub:t}).catch(g=>console.warn(g)))}),O.removeWallets(u),await Promise.all(d)}}s(he,"autoConnect");function ye(e){let t=e.info;if(!t)throw new Error("CosmosChainInfo is required for conversion");let o=Je(e,t),c=tt(t);return{chain:o,assetList:c}}s(ye,"convertCosmosMetaToChainRegistry");function Je(e,t){return{chainName:t.chainName,chainType:"cosmos",chainId:e.chainId||void 0,prettyName:e.displayName,status:e.enabled?"live":"killed",networkType:"mainnet",bech32Prefix:t.bech32Config.bech32PrefixAccAddr,bech32Config:{bech32PrefixAccAddr:t.bech32Config.bech32PrefixAccAddr,bech32PrefixAccPub:t.bech32Config.bech32PrefixAccPub,bech32PrefixValAddr:t.bech32Config.bech32PrefixValAddr,bech32PrefixValPub:t.bech32Config.bech32PrefixValPub,bech32PrefixConsAddr:t.bech32Config.bech32PrefixConsAddr,bech32PrefixConsPub:t.bech32Config.bech32PrefixConsPub},slip44:t.bip44.coinType,fees:{feeTokens:Xe(t)},staking:{stakingTokens:Ze(t)},apis:{rpc:t.rpc?[{address:t.rpc}]:void 0,rest:t.rest?[{address:t.rest}]:void 0},explorers:et(t),logoURIs:e.logo?{png:window.location.origin+e.logo}:void 0,keywords:t.experimental?["experimental"]:void 0}}s(Je,"convertToChain");function Xe(e){return e.feeCurrencies.map(t=>{let o={denom:t.coinMinimalDenom};return e.gasPriceStep&&(o.lowGasPrice=e.gasPriceStep.low,o.averageGasPrice=e.gasPriceStep.average,o.highGasPrice=e.gasPriceStep.high),o})}s(Xe,"convertFeeTokens");function Ze(e){return[{denom:e.stakeCurrency.coinMinimalDenom}]}s(Ze,"convertStakingTokens");function et(e){let t=[];if(e.explorerUrlToTx){let o=e.explorerUrlToTx.split("/tx/")[0];t.push({url:o,txPage:e.explorerUrlToTx.replace(/\{txHash\}|\$\{txHash\}/g,"${txHash}")})}return e.blockExplorerUrls&&e.blockExplorerUrls.length>0&&e.blockExplorerUrls.forEach(o=>{t.some(c=>c.url===o)||t.push({url:o})}),t.length>0?t:void 0}s(et,"convertExplorers");function tt(e){let t=[];return t.push({denomUnits:[{denom:e.stakeCurrency.coinMinimalDenom,exponent:0},{denom:e.stakeCurrency.coinDenom.toLowerCase(),exponent:e.stakeCurrency.coinDecimals}],base:e.stakeCurrency.coinMinimalDenom,name:e.stakeCurrency.coinDenom,display:e.stakeCurrency.coinDenom.toLowerCase(),symbol:e.stakeCurrency.coinDenom,typeAsset:"sdk.coin",logoURIs:e.stakeCurrency.coinImageUrl?{png:window.location.origin+e.stakeCurrency.coinImageUrl}:void 0,coingeckoId:e.stakeCurrency.coinGeckoId||void 0}),e.currencies.forEach(o=>{o.coinMinimalDenom!==e.stakeCurrency.coinMinimalDenom&&t.push({denomUnits:[{denom:o.coinMinimalDenom,exponent:0},{denom:o.coinDenom.toLowerCase(),exponent:o.coinDecimals}],base:o.coinMinimalDenom,name:o.coinDenom,display:o.coinDenom.toLowerCase(),symbol:o.coinDenom,typeAsset:"sdk.coin",logoURIs:o.coinImageUrl?{png:window.location.origin+o.coinImageUrl}:void 0,coingeckoId:o.coinGeckoId||void 0})}),{chainName:e.chainName,assets:t}}s(tt,"convertToAssetList");import{createStore as ot,Hub as nt}from"@rango-dev/wallets-core";import{useRef as Ce}from"react";function we(e){let t=Ce(null),o=Ce(null);function c(){let u=new nt({store:a()});return e.forEach(d=>{u.add(d.id,d)}),o.current=u,u}s(c,"createHub");function a(){if(t.current!==null)return t.current;let u=ot();return t.current=u,u}s(a,"getStore");function p(){let u=o.current?.getAll();return!o.current||!u?c():(fe(o.current,e),o.current)}return s(p,"getHub"),{getStore:a,getHub:p}}s(we,"useHubRefs");function K(e){let{getStore:t,getHub:o}=we(e.providers),[,c]=at(0),a=ke({onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains}),p=ke({}),u=s((r,i)=>{p.current[r]=i||[]},"updateLastConnectAttemptParams"),d=le({onError:(r,i)=>{rt.isUserRejectionError(r)&&i.removeCurrentKeyFromQueue()}});Pe(()=>{a.current={onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains}},[e]),Pe(()=>{let r=s(()=>{o().init(),c(m=>m+1)},"runOnInit"),i=s(m=>{m.target&&m.target.readyState==="complete"&&(r(),document.removeEventListener("readystatechange",i))},"initHubWhenPageIsReady");r(),document.addEventListener("readystatechange",i),t().subscribe(m=>{if(a.current.onUpdateState)try{pe(o(),m,a.current.onUpdateState,{allBlockChains:a.current.allBlockChains,lastConnectAttemptParams:p.current})}catch(f){console.error(f)}c(f=>f+1)}).flushEvents()},[]),F({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{he({allBlockChains:e.allBlockChains,getHub:o,wallets:e.configs?.wallets})}});let n=new W(E);return{canSwitchNetworkTo(r,i,m){let f=o().get(r);if(!f)throw new Error(`You should add ${r} to provider first then call 'canSwitchNetworkTo'.`);if(!m)throw new Error("Passing namespace to `canSwitchNetworkTo` is required.");let g=f.findByNamespace(m.namespace);if(!g)throw new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${m.namespace})`);if(!("canSwitchNetwork"in g))return!1;let C=f.info()?.metadata?.properties?.find(h=>h.name==="namespaces");if(!a.current.allBlockChains)throw new Error("Blockchains are not available");let v=C?.value.data.find(h=>h.value===m.namespace)?.getSupportedChains(a.current.allBlockChains);if(!v)throw new Error(`NamespaceMeta is not defined for requested namespace: ${m.namespace}`);return g.canSwitchNetwork({network:i,supportedChains:v})},async connect(r,i){let m=o().get(r);if(!m)throw new Error(`You should add ${r} to provider first then call 'connect'.`);if(!i)throw new Error("Passing namespace to `connect` is required.");u(r,i);let f=[];i.forEach(y=>{let w=y.namespace,A=m.findByNamespace(w);if(!A)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${y.namespace})`);f.push([y,A])});let g=f.map(async([y,w])=>{let A=ue(y,e.allBlockChains||[]),L;if(ge(w))L=s(async()=>w.connect({derivationPath:y.derivationPath}),"connectNamespacePromise");else if(_(w))L=s(async()=>w.connect(A,{derivationPath:y.derivationPath}),"connectNamespacePromise");else if(B(w)){let R=ve(e.allBlockChains||[]).filter(N=>!!N.chainId);L=s(async()=>w.connect({chainIds:R.filter(N=>N.info&&!N.info.experimental)?.map(N=>N.chainId),customChainIds:R.filter(N=>N.info?.experimental).map(N=>N.chainId)}),"connectNamespacePromise")}else L=s(async()=>w.connect(),"connectNamespacePromise");return d(s(async()=>L().then(me).then(R=>({response:R,input:{namespace:y.namespace,network:y.network,supportsEagerConnect:"canEagerConnect"in w}})),"connectNamespaceProcess"),r)}),C=await Promise.all(g),v=C.filter(y=>y.ok).filter(y=>y.val.input.supportsEagerConnect).map(y=>({namespace:y.val.input.namespace,network:y.val.input.network}));v.length>0&&n.addWallet(r,v);let h=C.map(y=>y.andThen(w=>new st(w.response))),P=ct.all(...h);if(P.err)throw P.val;return P.unwrap()},async disconnect(r,i){let m=o().get(r);if(!m)throw new Error(`You should add ${r} to provider first then call 'disconnect'.`);m.getAll().forEach(f=>{let g=!i||i.includes(f.namespaceId),C=f.state()[0]().connected;if(g&&C)return f.disconnect()}),e.autoConnect&&(i?n.removeNamespacesFromWallet(r,i):n.removeWallets([r]))},async disconnectAll(){let r=Array.from(o().getAll().values()).map(async i=>this.disconnect(i.id));return await Promise.allSettled(r)},async getSigners(r){let i=o().get(r);if(!i)throw new Error(`You should add ${r} to provider first.`);let m=i.info();if(!m)throw new Error("Your provider should have required `info`.");let g=m.metadata.properties?.find(C=>C.name==="signers");if(!g)throw new Error("Your provider should contain signers property.");return g.value.getSigners()},getWalletInfo(r){let i=o().get(r);if(!i)throw new Error(`You should add ${r} to provider first.`);let m=i.info();if(!m)throw new Error("Your provider should have required `info`.");let f={DEFAULT:""},{metadata:g}=m,{extensions:C}=g;Object.keys(C).forEach(w=>{let A=w;if(A==="homepage"&&(f.DEFAULT=C[A]||""),["firefox","chrome","brave","edge"].includes(A)){let z=A.toUpperCase();f[z]=C[A]||""}});let v=g.properties,h=v?.find(w=>w.name==="namespaces"),P=v?.find(w=>w.name==="derivationPath"),y=v?.find(w=>w.name==="details");return{name:g.name,img:g.icon,installLink:f,color:"red",supportedChains:G(i,a.current.allBlockChains),isContractWallet:y?.value?.isContractWallet,mobileWallet:y?.value?.mobileWallet,showOnMobile:y?.value?.showOnMobile,needsNamespace:h?.value,needsDerivationPath:P?.value,isHub:!0,properties:g.properties}},providers(){throw new Error("This method is not available on hub providers.")},state(r){let i=o().state(),m=o().get(r),f=i[r];if(!f||!m)throw new Error(`It seems your requested provider doesn't exist in hub. Provider Id: ${r}`);let g=f.namespaces.filter(h=>h.connected).flatMap(h=>h.accounts?.map(P=>H(P,e.allBlockChains||[]))).filter(h=>!!h),C=new Map(Array.from(m.getAll(),([h,P])=>[P.namespaceId,P.state()[0]()]));return{connected:f.connected,connecting:f.connecting,installed:f.installed,reachable:!0,accounts:g,network:null,namespaces:C}},async suggestAndConnect(r,i){let m=o().get(r);if(!m)throw new Error(`You should add ${r} to provider first then call 'suggestAndConnect'.`);let f=m.findByNamespace(i.namespace);if(!f)throw new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${i.namespace})`);if(!("suggest"in f))throw new Error("Suggest is not implemented on the provider");if(!i.network)throw new Error("You should pass network to the suggest and connect");if(B(f)){let g=ve(e.allBlockChains||[])?.filter(P=>P.info&&P.info.experimental).find(P=>P.name===i.network);if(!g)throw new Error(`We couldn't find the suggested chain (${i.network}) in our metadata.`);let{assetList:C,chain:v}=ye(g);await f.suggest(v,C);let[h]=await this.connect(r,[i]);return h}throw new Error(`Suggest has not been implemented for given chain: ${i.network}`)},hubProvider(){throw new Error("Unreachable code. the method has been implemented in main adapter instance.")}}}s(K,"useHubAdapter");function Ee(e){let{providers:t,...o}=e,[c,a]=q(t),p=Y({...o,providers:c}),u=K({...o,providers:a,allVersionedProviders:t});return{canSwitchNetworkTo(n,l,r){return S(a,n)?u.canSwitchNetworkTo(n,l,r):p.canSwitchNetworkTo(n,l)},async connect(n,l){return S(a,n)?await u.connect(n,l):await p.connect(n,l)},async disconnect(n,l){return S(a,n)?await u.disconnect(n,l):await p.disconnect(n)},async disconnectAll(){return await Promise.allSettled([u.disconnectAll(),p.disconnectAll()])},async getSigners(n){return S(a,n)?u.getSigners(n):p.getSigners(n)},getWalletInfo(n){return S(a,n)?u.getWalletInfo(n):p.getWalletInfo(n)},providers(){return p.providers()},state(n){return S(a,n)?u.state(n):p.state(n)},async suggestAndConnect(n,l){return S(a,n)?u.suggestAndConnect(n,l):await p.suggestAndConnect(n,l)},hubProvider(n){let l=S(a,n);if(l)return l;throw new Error(`You're trying to access ${n} provider which is not found in hub providers. you may try to access a legacy provider or it's not been registered yet.`)}}}s(Ee,"useProviders");function lt(e){let t=Ee(e);return it.createElement(b.Provider,{value:t},e.children)}s(lt,"Provider");var dt=lt;import{LegacyEvents as un}from"@rango-dev/wallets-core/legacy";export{un as Events,dt as Provider,Z as availableWallets,ee as checkWalletProviders,vt as choose,M as clearPersistance,X as connectedWallets,D as defaultWalletState,Pt as isAsync,U as makeEventHandler,kt as needsCheckInstallation,J as stateReducer,te as tryPersistWallet,oe as tryRemoveWalletFromPersistance,Le as useWallets};
1
+ var Ce=Object.defineProperty;var c=(e,t)=>Ce(e,"name",{value:t,configurable:!0});import{Persistor as Pe}from"@rango-dev/wallets-core/legacy";var w="last-connected-wallets",E="hub-v1-last-connected-wallets";import{Persistor as T}from"@rango-dev/wallets-core/legacy";var W=class{static{c(this,"LastConnectedWalletsFromStorage")}#e;constructor(t){this.#e=t}addWallet(t,o){if(this.#e===E)return this.#t(t,o);if(this.#e===w)return this.#a(t);throw new Error("Not implemented")}removeWallets(t){if(this.#e===E)return this.#o(t);if(this.#e===w)return this.#c(t);throw new Error("Not implemented")}list(){if(this.#e===E)return this.#n();if(this.#e===w)return this.#r();throw new Error("Not implemented")}removeNamespacesFromWallet(t,o){if(this.#e===E)return this.#s(t,o);throw new Error("Not implemented")}#r(){let o=new T().getItem(w)||[],i={};return o.forEach(a=>{i[a]=[]}),i}#n(){return new T().getItem(E)||{}}#t(t,o){let i=new T,a=i.getItem(this.#e)||{},d=o;if(a[t]){let u=a[t];d=u.concat(o.filter(p=>!u.some(r=>r.namespace===p.namespace)))}i.setItem(this.#e,{...a,[t]:d})}#a(t){let o=new T,i=o.getItem(this.#e)||[];o.setItem(w,i.concat(t))}#o(t){let o=new T,i=o.getItem(this.#e)||{};if(!t){o.setItem(this.#e,{});return}t.forEach(a=>{i[a]&&delete i[a]}),o.setItem(this.#e,i)}#s(t,o){let u=(new T().getItem(this.#e)||{})[t]?.filter(p=>!o.includes(p.namespace));this.#o([t]),u?.length>0&&this.#t(t,u)}#c(t){let o=new T,i=o.getItem(this.#e)||[];if(!t){o.setItem(this.#e,[]);return}o.setItem(w,i.filter(a=>!t.includes(a)))}};function pt(e,t){return e.find(o=>o.type===t)||null}c(pt,"choose");var H={connected:!1,connecting:!1,reachable:!1,installed:!1,accounts:null,network:null};function Q(e,t){if(t.type==="new_state"){let o=e[t.wallet];return o?{...e,[t.wallet]:{...o,[t.name]:t.value}}:{...e,[t.wallet]:{...H,[t.name]:t.value}}}return e}c(Q,"stateReducer");function K(e){return Object.entries(e).filter(([,t])=>t?.connected).map(([t])=>t)}c(K,"connectedWallets");function z(e){return Object.entries(e).map(([t])=>t)}c(z,"availableWallets");function Z(e){let t=new Map;return e.forEach(o=>{let{config:i,...a}=o;t.set(i.type,{actions:a,config:i})}),t}c(Z,"checkWalletProviders");function dt(e){return e?.constructor?.name==="AsyncFunction"}c(dt,"isAsync");function ut(e){let{checkInstallation:t=!0}=e.config;return t}c(ut,"needsCheckInstallation");async function J({type:e,walletActions:t,getState:o}){if(t.canEagerConnect){let i=new W(w),d=!!i.list()[e];d&&!o(e).connected&&_(),d||i.addWallet(e,[])}}c(J,"tryPersistWallet");function X({type:e,walletActions:t}){t.canEagerConnect&&new W(w).removeWallets([e])}c(X,"tryRemoveWalletFromPersistance");function _(){let e=new Pe;e.getItem(w)&&e.removeItem(w)}c(_,"clearPersistance");function O(e,t){return c((i,a,d,u,p)=>{e({type:"new_state",wallet:i,name:a,value:d}),t&&t(i,a,d,u,p)},"handler")}c(O,"makeEventHandler");import Je from"react";import{createContext as Ee}from"react";var A="Context hasn't been initialized yet.",We={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)},providers(){throw new Error(A)},getWalletInfo(){throw new Error(A)},getSigners(){throw new Error(A)},hubProvider(){throw new Error(A)}},x=Ee(We);import{pickVersion as ce}from"@hub3js/core/utils";import{LegacyEvents as S}from"@rango-dev/wallets-core/legacy";import{convertEvmBlockchainMetaToEvmChainInfo as Oe}from"@rango-dev/wallets-shared";import{isEvmBlockchain as je}from"rango-types";import{useEffect as j,useReducer as Le}from"react";async function ee(e,t){let o=new W(w),i=o.list(),a=Object.keys(i);if(a.length){let d=[];a.forEach(r=>{let s=e.get(r);if(s){let n=t(s);d.push({walletType:r,eagerConnect:n.eagerConnect.bind(n)})}});let u=await Promise.allSettled(d.map(async({eagerConnect:r})=>r())),p=[];u.forEach((r,s)=>{let{status:n}=r;n==="rejected"&&p.push(d[s].walletType)}),p.length&&o.removeWallets(p)}}c(ee,"autoConnect");import{LegacyWallet as Ne}from"@rango-dev/wallets-core/legacy";import{useContext as ke,useRef as Ae}from"react";function te(e){let t=Ae({});function o(i){let a=i.config.type;return typeof t.current[a]>"u"&&(t.current[a]=new Ne({config:i.config,handler:e},i.actions)),t.current[a]}return c(o,"updater"),o}c(te,"useInitializers");function Se(){let e=ke(x);if(!e)throw Error("useWallet can only be used within the Provider component");return e}c(Se,"useWallets");import{useEffect as Ie,useRef as Te}from"react";function oe(e){return!!e.allBlockChains?.length&&!!e.autoConnect}c(oe,"shouldTryAutoConnect");function b(e){let t=Te(!1);Ie(()=>{oe(e)&&!t.current&&(t.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}c(b,"useAutoConnect");function D(e){let[t,o]=Le(Q,{}),i=te(O(o,e.onUpdateState)),a=e.providers,d=Z(a);b({allBlockChains:e.allBlockChains,autoConnect:e.autoConnect,autoConnectHandler:async()=>ee(d,i)});let u={async connect(p,r){let s=d.get(p);if(!s)throw new Error(`You should add ${p} to provider first.`);let n;r&&r.length>0&&(n=r.find(f=>!!f.network)?.network);let m=await i(s).connect(n,r);return e.autoConnect&&J({type:p,walletActions:s.actions,getState:u.state}),[m]},async disconnect(p){let r=d.get(p);if(!r)throw new Error(`You should add ${p} to provider first.`);await i(r).disconnect(),e.autoConnect&&X({type:p,walletActions:r.actions})},async disconnectAll(){let p=[];return K(t).forEach(r=>{let s=d.get(r);if(s){let n=i(s);p.push(n.disconnect())}}),e.autoConnect&&_(),await Promise.allSettled(p)},async suggestAndConnect(p,r){let s=d.get(p);if(!s)throw new Error(`You should add ${p} to provider first.`);let n=i(s);if(!r.network)throw new Error("You should pass network to the suggestAndConnect");return await n.suggestAndConnect(r.network)},state(p){return t[p]||H},canSwitchNetworkTo(p,r){let s=d.get(p);if(!s)return!1;let n=i(s);return n.canSwitchNetworkTo?n.canSwitchNetworkTo(r,n.provider):!1},providers(){let p={};return z(t).forEach(r=>{let s=d.get(r);if(s){let n=i(s);p[r]=n.provider}}),p},getWalletInfo(p){let r=d.get(p);if(!r)throw new Error(`You should add ${p} to provider first.`);return r.actions.getWalletInfo(e.allBlockChains||[])},async getSigners(p){let r=d.get(p);if(!r)throw new Error(`You should add ${p} to provider first.`);let s=i(r),n=s.provider;return s.getSigners(n)},hubProvider(){throw new Error("This method is not available on legacy providers.")}};return j(()=>{d.forEach(p=>{let r=i(p),s=c(()=>{r.onInit&&r.onInit()},"runOnInit"),n=c(l=>{l.target&&l.target.readyState==="complete"&&(s(),document.removeEventListener("readystatechange",n))},"initWhenPageIsReady");s(),document.addEventListener("readystatechange",n)})},[]),j(()=>{e.allBlockChains&&d.forEach(r=>{let s=i(r),n=s.getWalletInfo(e.allBlockChains||[]);s.setInfo({supportedBlockchains:n.supportedChains,isContractWallet:!!n.isContractWallet})})},[e.allBlockChains]),j(()=>{d.forEach(p=>{i(p).setHandler(O(o,e.onUpdateState))})},[e.onUpdateState]),u}c(D,"useLegacyProviders");import{legacyFormatAddressWithNetwork as xe}from"@rango-dev/wallets-core/legacy";import{CAIP_NAMESPACE as be}from"@rango-dev/wallets-core/namespaces/ton";import{CAIP_TRON_CHAIN_ID as Be}from"@rango-dev/wallets-core/namespaces/tron";import{CAIP_BITCOIN_CHAIN_ID as Re,CAIP_ZCASH_CHAIN_ID as Fe}from"@rango-dev/wallets-core/namespaces/utxo";import{AccountId as He}from"caip";import{Err as M,Ok as re}from"ts-results";function _e(e){return typeof e=="string"?e:["solana","xrpl","stellar"].includes(e.namespace.toLowerCase())?e.namespace.toUpperCase():e.namespace.toLowerCase()==="eip155"?"ETH":e.reference===Re?"BTC":e.reference===Fe?"ZCASH":e.namespace.toLowerCase()===be?"TON":e.namespace==="sui"||e.reference===Be?e.reference.toUpperCase():e.namespace==="starknet"?e.namespace.toUpperCase():e.reference}c(_e,"mapCaipNamespaceToLegacyNetworkName");function B(e){let{chainId:t,address:o}=He.parse(e),i=_e(t);return xe(o,i)}c(B,"fromAccountIdToLegacyAddressFormat");async function U(e){return e.reduce(async(t,o)=>{let i=await t;try{let a=await o();return[...i,new re(a)]}catch(a){return[...i,new M(a)]}},Promise.resolve([]))}c(U,"runSequentiallyWithoutFailure");function ne(e){return typeof e=="object"&&!Array.isArray(e)}c(ne,"isConnectResultEvm");function ae(e){return Array.isArray(e)}c(ae,"isConnectResultSolana");function se(e){let t=new Set,o=[],i=c((u,p)=>{o=o.filter(r=>r.key!==u?!0:(r.resolve(p),!1))},"removeKeyFromQueue"),a=c(async()=>{let u=o.find(n=>!t.has(n.key));if(!u)return;let{task:p,resolve:r,key:s}=u;t.add(s);try{let n=await p();r(new re(n))}catch(n){e?.onError&&e.onError(n,{removeCurrentKeyFromQueue:()=>i(s,new M(n))}),r(new M(n))}finally{let n=o.findIndex(l=>l.key===s);n>=0&&o.splice(n,1),t.delete(s),a()}},"processQueue");return c(async(u,p)=>new Promise(r=>{o.push({task:u,resolve:r,key:p}),a()}),"queueTask")}c(se,"createQueue");function Y(e){let t="0.0.0",o="1.0.0",i=[],a=[];return e.forEach(d=>{try{let u=ce(d,o);a.push(u[1])}catch{let u=ce(d,t);i.push(u[1])}}),[i,a]}c(Y,"separateLegacyAndHubProviders");function I(e,t){return e.find(o=>o.id===t)}c(I,"findProviderByType");var De=new W(E);function $(e,t){return e.info()?.metadata.properties?.find(a=>a.name==="namespaces")?.value.data.flatMap(a=>a.getSupportedChains(t||[]))||[]}c($,"getSupportedChainsFromProvider");function ie(e,t,o,i){let a=e.get(t.provider);if(!a)throw new Error("Currently all the events have assigned to a provider. The event doesn't include one.",{cause:t});let d=t.namespace,u=d?a.findByNamespace(d):void 0,p=null,r=null,s;if(u){let[f]=u.state();p=f().accounts,r=f().network,i.lastConnectAttemptParams[t.provider]&&(s=i.lastConnectAttemptParams[t.provider].find(g=>g.namespace===d)?.derivationPath)}let[n]=a.state(),l={connected:n().connected,connecting:n().connecting,installed:n().installed,accounts:p,network:r,reachable:!0,derivationPath:s},m={supportedBlockchains:$(a,i.allBlockChains),isContractWallet:!1,isHub:!0,namespace:d};switch(t.type){case"provider_detected":o(t.provider,S.INSTALLED,!0,l,m);break;case"provider_connecting":o(t.provider,S.CONNECTING,t.value,l,m);break;case"provider_connected":o(t.provider,S.CONNECTED,!0,l,m);break;case"provider_disconnected":o(t.provider,S.PROVIDER_DISCONNECTED,t.provider,l,m),o(t.provider,S.CONNECTED,!1,l,m),o(t.provider,S.ACCOUNTS,null,l,m);break;case"namespace_disconnected":De.removeNamespacesFromWallet(t.provider,[t.namespace]),o(t.provider,S.NAMESPACE_DISCONNECTED,t.namespace,l,{...m,namespace:t.namespace});break;case"namespace_connected":case"namespace_account_switched":{t.type==="namespace_account_switched"&&o(t.provider,S.NAMESPACE_DISCONNECTED,t.namespace,l,m);let f=t.accounts.map(g=>B(g));o(t.provider,S.ACCOUNTS,f,l,{...m,namespace:t.namespace})}break;case"namespace_network_switched":o(t.provider,S.NETWORK,t.network,l,{...m,namespace:t.namespace});break}}c(ie,"mapHubEventsToLegacy");function q(e,t){if(!e.network)return;let o=t.filter(je);return Oe(o)[e.network]}c(q,"convertNamespaceNetworkToEvmChainId");function le(e,t){return q(e,t)||e.network}c(le,"tryConvertNamespaceNetworkToChainInfo");function pe(e){return ne(e)?{accounts:e.accounts,network:e.network,provider:void 0}:ae(e)?{accounts:e,network:null,provider:void 0}:{accounts:[e],network:null,provider:void 0}}c(pe,"transformHubResultToLegacyResult");function de(e,t){let o=e.getAll();t.filter(a=>!o.get(a.id)).forEach(a=>{e.add(a.id,a),a.init()}),o.forEach(a=>{t.some(u=>u.id===a.id)||e.remove(a.id)})}c(de,"synchronizeHubWithConfigProviders");function ue(e){return e.namespaceId==="Solana"}c(ue,"isSolanaNamespace");function R(e){return e.namespaceId==="EVM"}c(R,"isEvmNamespace");import{utils as Qe}from"@hub3js/evm";import"@rango-dev/wallets-shared";import{useEffect as he,useRef as ye,useState as Ke}from"react";import{Ok as ze,Result as Ze}from"ts-results";import{Provider as Me}from"@hub3js/core";import{legacyIsEvmNamespace as Ue}from"@rango-dev/wallets-core/legacy";import{Result as Ye}from"ts-results";var F=new W(E);async function $e(e,t,o){let{getHub:i,allBlockChains:a}=o,d=i().get(e);if(!d)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 u=[];t.forEach(l=>{let m=l.namespace,f=d.findByNamespace(m);if(!f)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${l.namespace})`);u.push([l,f])});let p=u.map(([l,m])=>{let g=(Ue(l)?q(l,a||[]):void 0)||l.network;return async()=>{let y;R(m)?y=c(async()=>m.connect(g),"connectNamespacePromise"):y=c(async()=>m.connect(),"connectNamespacePromise");try{await y()}catch(C){throw C instanceof Error?C:new Error(C)}}}),r=await U(p),s=u.filter((l,m)=>r[m].err).map(l=>l[0]);if(s.length>0&&F.removeNamespacesFromWallet(e,s.map(l=>l.namespace)),!r.some(l=>l.ok))throw new Error(`No namespace connected for ${e}`);return Ye.all(...r.filter(l=>l.ok)).unwrap()}c($e,"eagerConnect");async function qe(e,t){let o=[],i=[],a=[],d=[];e.forEach(p=>{let r=t.findByNamespace(p.namespace);r?(o.push(p),d.push(async()=>await r.canEagerConnect())):a.push(p)});let u=await U(d);return o.forEach((p,r)=>{u[r].ok&&u[r].val?i.push(p):a.push(p)}),{successNamespaces:i,failedNamespaces:a}}c(qe,"tryRunCanEagerConnect");async function me(e){let{getHub:t,allBlockChains:o,wallets:i}=e,a=F.list(),d=Object.keys(a),u=[];if(d.length){let p=[],r=i?.map(s=>typeof s=="string"?s:s instanceof Me?s.id:s.config.type);d.forEach(async s=>{if(r&&!r.includes(s)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",s),u.push(s);return}let n=t().get(s),l=a[s].map(g=>({namespace:g.namespace,network:g.network}));if(!l.length||!n){u.push(s);return}let{successNamespaces:m,failedNamespaces:f}=await qe(l,n);if(m.length)f.length&&F.removeNamespacesFromWallet(n.id,f.map(g=>g.namespace));else{u.push(s);return}p.push($e(s,m,{allBlockChains:o,getHub:t}).catch(g=>console.warn(g)))}),F.removeWallets(u),await Promise.all(p)}}c(me,"autoConnect");import{createStore as Ve,Hub as Ge}from"@hub3js/core";import{useRef as fe}from"react";function ge(e){let t=fe(null),o=fe(null);function i(){let u=new Ge({store:a()});return e.forEach(p=>{u.add(p.id,p)}),o.current=u,u}c(i,"createHub");function a(){if(t.current!==null)return t.current;let u=Ve();return t.current=u,u}c(a,"getStore");function d(){let u=o.current?.getAll();return!o.current||!u?i():(de(o.current,e),o.current)}return c(d,"getHub"),{getStore:a,getHub:d}}c(ge,"useHubRefs");function V(e){let{getStore:t,getHub:o}=ge(e.providers),[,i]=Ke(0),a=ye({onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains}),d=ye({}),u=c((n,l)=>{d.current[n]=l||[]},"updateLastConnectAttemptParams"),p=se({onError:(n,l)=>{Qe.isUserRejectionError(n)&&l.removeCurrentKeyFromQueue()}});he(()=>{a.current={onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains}},[e]),he(()=>{let n=c(()=>{o().init(e.configs?.walletOptions),i(m=>m+1)},"runOnInit"),l=c(m=>{m.target&&m.target.readyState==="complete"&&(n(),document.removeEventListener("readystatechange",l))},"initHubWhenPageIsReady");n(),document.addEventListener("readystatechange",l),t().subscribe(m=>{if(a.current.onUpdateState)try{ie(o(),m,a.current.onUpdateState,{allBlockChains:a.current.allBlockChains,lastConnectAttemptParams:d.current})}catch(f){console.error(f)}i(f=>f+1)}).flushEvents()},[]),b({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{me({allBlockChains:e.allBlockChains,getHub:o,wallets:e.configs?.wallets})}});let r=new W(E);return{canSwitchNetworkTo(n,l,m){let f=o().get(n);if(!f)throw new Error(`You should add ${n} to provider first then call 'canSwitchNetworkTo'.`);if(!m)throw new Error("Passing namespace to `canSwitchNetworkTo` is required.");let g=f.findByNamespace(m.namespace);if(!g)throw new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${m.namespace})`);if(!("canSwitchNetwork"in g))return!1;let y=f.info()?.metadata?.properties?.find(P=>P.name==="namespaces");if(!a.current.allBlockChains)throw new Error("Blockchains are not available");let C=y?.value.data.find(P=>P.value===m.namespace)?.getSupportedChains(a.current.allBlockChains);if(!C)throw new Error(`NamespaceMeta is not defined for requested namespace: ${m.namespace}`);return g.canSwitchNetwork({network:l,supportedChains:C})},async connect(n,l){let m=o().get(n);if(!m)throw new Error(`You should add ${n} to provider first then call 'connect'.`);if(!l)throw new Error("Passing namespace to `connect` is required.");u(n,l);let f=[];l.forEach(h=>{let v=h.namespace,k=m.findByNamespace(v);if(!k)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${h.namespace})`);f.push([h,k])});let g=f.map(async([h,v])=>{let k=le(h,e.allBlockChains||[]),L;return ue(v)?L=c(async()=>v.connect({derivationPath:h.derivationPath}),"connectNamespacePromise"):R(v)?L=c(async()=>v.connect(k,{derivationPath:h.derivationPath}),"connectNamespacePromise"):L=c(async()=>v.connect(),"connectNamespacePromise"),p(c(async()=>L().then(pe).then(we=>({response:we,input:{namespace:h.namespace,network:h.network,supportsEagerConnect:"canEagerConnect"in v}})),"connectNamespaceProcess"),n)}),y=await Promise.all(g),C=y.filter(h=>h.ok).filter(h=>h.val.input.supportsEagerConnect).map(h=>({namespace:h.val.input.namespace,network:h.val.input.network}));C.length>0&&r.addWallet(n,C);let P=y.map(h=>h.andThen(v=>new ze(v.response))),N=Ze.all(...P);if(N.err)throw N.val;return N.unwrap()},async disconnect(n,l){let m=o().get(n);if(!m)throw new Error(`You should add ${n} to provider first then call 'disconnect'.`);m.getAll().forEach(f=>{let g=!l||l.includes(f.namespaceId),y=f.state()[0]().connected;if(g&&y)return f.disconnect()}),e.autoConnect&&(l?r.removeNamespacesFromWallet(n,l):r.removeWallets([n]))},async disconnectAll(){let n=Array.from(o().getAll().values()).map(async l=>this.disconnect(l.id));return await Promise.allSettled(n)},async getSigners(n){let l=o().get(n);if(!l)throw new Error(`You should add ${n} to provider first.`);let m=l.info();if(!m)throw new Error("Your provider should have required `info`.");let g=m.metadata.properties?.find(y=>y.name==="signers");if(!g)throw new Error("Your provider should contain signers property.");return g.value.getSigners()},getWalletInfo(n){let l=o().get(n);if(!l)throw new Error(`You should add ${n} to provider first.`);let m=l.info();if(!m)throw new Error("Your provider should have required `info`.");let f={DEFAULT:""},{metadata:g}=m,{extensions:y}=g;Object.keys(y).forEach(v=>{let k=v;if(k==="homepage"&&(f.DEFAULT=y[k]||""),["firefox","chrome","brave","edge"].includes(k)){let G=k.toUpperCase();f[G]=y[k]||""}});let C=g.properties,P=C?.find(v=>v.name==="namespaces"),N=C?.find(v=>v.name==="derivationPath"),h=C?.find(v=>v.name==="details");return{name:g.name,img:g.icon,installLink:f,color:"red",supportedChains:$(l,a.current.allBlockChains),isContractWallet:h?.value?.isContractWallet,mobileWallet:h?.value?.mobileWallet,showOnMobile:h?.value?.showOnMobile,needsNamespace:P?.value,needsDerivationPath:N?.value,isHub:!0,properties:g.properties}},providers(){throw new Error("This method is not available on hub providers.")},state(n){let l=o().state(),m=o().get(n),f=l[n];if(!f||!m)throw new Error(`It seems your requested provider doesn't exist in hub. Provider Id: ${n}`);let g=f.namespaces.filter(P=>P.connected).flatMap(P=>P.accounts?.map(N=>B(N))).filter(P=>!!P),y=new Map(Array.from(m.getAll(),([P,N])=>[N.namespaceId,N.state()[0]()]));return{connected:f.connected,connecting:f.connecting,installed:f.installed,reachable:!0,accounts:g,network:null,namespaces:y}},async suggestAndConnect(n,l){let m=o().get(n);if(!m)throw new Error(`You should add ${n} to provider first then call 'suggestAndConnect'.`);let f=m.findByNamespace(l.namespace);throw f?"suggest"in f?l.network?new Error(`Suggest has not been implemented for given chain: ${l.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: ${l.namespace})`)},hubProvider(){throw new Error("Unreachable code. the method has been implemented in main adapter instance.")}}}c(V,"useHubAdapter");function ve(e){let{providers:t,...o}=e,[i,a]=Y(t),d=D({...o,providers:i}),u=V({...o,providers:a,allVersionedProviders:t});return{canSwitchNetworkTo(r,s,n){return I(a,r)?u.canSwitchNetworkTo(r,s,n):d.canSwitchNetworkTo(r,s)},async connect(r,s){return I(a,r)?await u.connect(r,s):await d.connect(r,s)},async disconnect(r,s){return I(a,r)?await u.disconnect(r,s):await d.disconnect(r)},async disconnectAll(){return await Promise.allSettled([u.disconnectAll(),d.disconnectAll()])},async getSigners(r){return I(a,r)?u.getSigners(r):d.getSigners(r)},getWalletInfo(r){return I(a,r)?u.getWalletInfo(r):d.getWalletInfo(r)},providers(){return d.providers()},state(r){return I(a,r)?u.state(r):d.state(r)},async suggestAndConnect(r,s){return I(a,r)?u.suggestAndConnect(r,s):await d.suggestAndConnect(r,s)},hubProvider(r){let s=I(a,r);if(s)return s;throw new Error(`You're trying to access ${r} provider which is not found in hub providers. you may try to access a legacy provider or it's not been registered yet.`)}}}c(ve,"useProviders");function Xe(e){let t=ve(e);return Je.createElement(x.Provider,{value:t},e.children)}c(Xe,"Provider");var et=Xe;import{LegacyEvents as Qo}from"@rango-dev/wallets-core/legacy";export{Qo as Events,et as Provider,z as availableWallets,Z as checkWalletProviders,pt as choose,_ as clearPersistance,K as connectedWallets,H as defaultWalletState,dt as isAsync,O as makeEventHandler,ut as needsCheckInstallation,Q as stateReducer,J as tryPersistWallet,X as tryRemoveWalletFromPersistance,Se as useWallets};
2
2
  //# sourceMappingURL=index.js.map