@rango-dev/wallets-react 0.27.1-next.14 → 0.27.1-next.2

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.
@@ -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,yBAAyB,CAAC;AACnD,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAyH5D,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,MAAM,GAAG,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,uBAAuB,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,uBAAuB,CAAC,EAAE,CAAC;CACpD,GAAG,OAAO,CAAC,IAAI,CAAC,CA8EhB"}
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,yBAAyB,CAAC;AACnD,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AA+E5D,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,MAAM,GAAG,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,uBAAuB,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,uBAAuB,CAAC,EAAE,CAAC;CACpD,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FhB"}
@@ -1,6 +1,5 @@
1
1
  import type { AllProxiedNamespaces } from './types.js';
2
2
  import type { Accounts, AccountsWithActiveChain } from '@rango-dev/wallets-core/namespaces/common';
3
- import type { Result } from 'ts-results';
4
3
  import { CAIP } from '@rango-dev/wallets-core/utils';
5
4
  export declare function mapCaipNamespaceToLegacyNetworkName(chainId: CAIP.ChainIdParams | string): string;
6
5
  /**
@@ -14,7 +13,7 @@ export declare function fromAccountIdToLegacyAddressFormat(account: string): str
14
13
  /**
15
14
  * Getting a list of (lazy) promises and run them one after another.
16
15
  */
17
- export declare function runSequentiallyWithoutFailure<R>(promises: Array<() => Promise<R>>): Promise<Result<R, unknown>[]>;
16
+ export declare function sequentiallyRun<T extends () => Promise<unknown>>(promises: Array<T>): Promise<Array<T extends () => Promise<infer R> ? R : never>>;
18
17
  export declare function isConnectResultEvm(result: Awaited<ReturnType<AllProxiedNamespaces['connect']>>): result is AccountsWithActiveChain;
19
18
  export declare function isConnectResultSolana(result: Awaited<ReturnType<AllProxiedNamespaces['connect']>>): result is Accounts;
20
19
  //# 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,EACV,QAAQ,EACR,uBAAuB,EACxB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAGrD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,IAAI,CAAC,aAAa,GAAG,MAAM,GACnC,MAAM,CAeR;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"}
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,EACV,QAAQ,EACR,uBAAuB,EACxB,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAErD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,IAAI,CAAC,aAAa,GAAG,MAAM,GACnC,MAAM,CAeR;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,SAAS,MAAM,OAAO,CAAC,OAAO,CAAC,EACpE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAQ9D;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"}
package/dist/hub/mod.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { separateLegacyAndHubProviders, getAllLegacyProviders, findProviderByType, } from './utils.js';
1
+ export { separateLegacyAndHubProviders, 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,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHubAdapter.d.ts","sourceRoot":"","sources":["../../src/hub/useHubAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAMxE,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAiB1B,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,CA2VvE"}
1
+ {"version":3,"file":"useHubAdapter.d.ts","sourceRoot":"","sources":["../../src/hub/useHubAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAKxE,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAiB1B,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,CA2TvE"}
@@ -1,15 +1,15 @@
1
1
  import type { AllProxiedNamespaces } from './types.js';
2
- import type { Hub, Provider } from '@rango-dev/wallets-core';
2
+ import type { Hub, Provider, State } from '@rango-dev/wallets-core';
3
3
  import type { LegacyNamespaceInputForConnect, LegacyProviderInterface, LegacyEventHandler as WalletEventHandler } from '@rango-dev/wallets-core/legacy';
4
- import type { Event } from '@rango-dev/wallets-core/store';
5
4
  import { type VersionedProviders } from '@rango-dev/wallets-core/utils';
6
5
  import { type AddEthereumChainParameter } from '@rango-dev/wallets-shared';
7
6
  import { type BlockchainMeta } from 'rango-types';
8
7
  import { type ConnectResult, type ProviderProps } from '../legacy/mod.js';
9
- export declare function separateLegacyAndHubProviders(providers: VersionedProviders[]): [LegacyProviderInterface[], Provider[]];
8
+ export declare function separateLegacyAndHubProviders(providers: VersionedProviders[], options?: {
9
+ isExperimentalEnabled?: boolean;
10
+ }): [LegacyProviderInterface[], Provider[]];
10
11
  export declare function findProviderByType(providers: Provider[], type: string): Provider | undefined;
11
- export declare function mapHubEventsToLegacy(hub: Hub, event: Event, onUpdateState: WalletEventHandler, allProviders: VersionedProviders[], allBlockChains: ProviderProps['allBlockChains']): void;
12
- export declare function getAllLegacyProviders(allProviders: VersionedProviders[]): LegacyProviderInterface[];
12
+ export declare function checkHubStateAndTriggerEvents(hub: Hub, currentState: State, previousState: State, onUpdateState: WalletEventHandler, allProviders: VersionedProviders[], allBlockChains: ProviderProps['allBlockChains']): void;
13
13
  export declare function getLegacyProvider(allProviders: VersionedProviders[], type: string): LegacyProviderInterface;
14
14
  /**
15
15
  * In legacy mode, for those who have switch network functionality (like evm), we are using an enum for network names
@@ -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,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EACV,8BAA8B,EAC9B,uBAAuB,EACvB,kBAAkB,IAAI,kBAAkB,EACzC,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EACL,KAAK,yBAAyB,EAE/B,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,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,kBAAkB,EACjC,YAAY,EAAE,kBAAkB,EAAE,EAClC,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAC9C,IAAI,CAuJN;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,kBAAkB,EAAE,GACjC,uBAAuB,EAAE,CAW3B;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,kBAAkB,EAAE,EAClC,IAAI,EAAE,MAAM,GACX,uBAAuB,CAkBzB;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,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,QAAQ,EAAE,EACzB,aAAa,EAAE,QAAQ,EAAE,WAY1B"}
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,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EACV,8BAA8B,EAC9B,uBAAuB,EACvB,kBAAkB,IAAI,kBAAkB,EACzC,MAAM,gCAAgC,CAAC;AAOxC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,KAAK,yBAAyB,EAE/B,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,EAC/B,OAAO,CAAC,EAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5C,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CA0BzC;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,QAAQ,EAAE,EACrB,IAAI,EAAE,MAAM,GACX,QAAQ,GAAG,SAAS,CAEtB;AAWD,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,KAAK,EACnB,aAAa,EAAE,KAAK,EACpB,aAAa,EAAE,kBAAkB,EACjC,YAAY,EAAE,kBAAkB,EAAE,EAClC,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAC9C,IAAI,CA2JN;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,kBAAkB,EAAE,EAClC,IAAI,EAAE,MAAM,GACX,uBAAuB,CAgBzB;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,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,QAAQ,EAAE,EACzB,aAAa,EAAE,QAAQ,EAAE,WAY1B"}
package/dist/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export * from './legacy/helpers.js';
2
2
  export { default as Provider } from './provider.js';
3
3
  export { useWallets } from './legacy/hooks.js';
4
4
  export * from './legacy/types.js';
5
+ export { separateLegacyAndHubProviders } from './hub/mod.js';
5
6
  //# 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,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;AAClC,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var ue=Object.defineProperty;var i=(e,t)=>ue(e,"name",{value:t,configurable:!0});import{Persistor as pe}from"@rango-dev/wallets-core/legacy";var y="last-connected-wallets",w="hub-v1-last-connected-wallets";import{Persistor as I}from"@rango-dev/wallets-core/legacy";var h=class{static{i(this,"LastConnectedWalletsFromStorage")}#e;constructor(t){this.#e=t}addWallet(t,n){if(this.#e===w)return this.#t(t,n);if(this.#e===y)return this.#a(t);throw new Error("Not implemented")}removeWallets(t){if(this.#e===w)return this.#o(t);if(this.#e===y)return this.#c(t);throw new Error("Not implemented")}list(){if(this.#e===w)return this.#n();if(this.#e===y)return this.#r();throw new Error("Not implemented")}removeNamespacesFromWallet(t,n){if(this.#e===w)return this.#s(t,n);throw new Error("Not implemented")}#r(){let n=new I().getItem(y)||[],s={};return n.forEach(c=>{s[c]=[]}),s}#n(){return new I().getItem(w)||{}}#t(t,n){let s=new I,c=s.getItem(this.#e)||{};s.setItem(this.#e,{...c,[t]:n})}#a(t){let n=new I,s=n.getItem(this.#e)||[];n.setItem(y,s.concat(t))}#o(t){let n=new I,s=n.getItem(this.#e)||{};if(!t){n.setItem(this.#e,{});return}t.forEach(c=>{s[c]&&delete s[c]}),n.setItem(this.#e,s)}#s(t,n){let u=(new I().getItem(this.#e)||{})[t].filter(a=>!n.includes(a.namespace));this.#o([t]),this.#t(t,u)}#c(t){let n=new I,s=n.getItem(this.#e)||[];if(!t){n.setItem(this.#e,[]);return}n.setItem(y,s.filter(c=>!t.includes(c)))}};function Xe(e,t){return e.find(n=>n.type===t)||null}i(Xe,"choose");var H={connected:!1,connecting:!1,reachable:!1,installed:!1,accounts:null,network:null};function U(e,t){if(t.type==="new_state"){let n=e[t.wallet];return n?{...e,[t.wallet]:{...n,[t.name]:t.value}}:{...e,[t.wallet]:{...H,[t.name]:t.value}}}return e}i(U,"stateReducer");function Y(e){return Object.entries(e).filter(([,t])=>t?.connected).map(([t])=>t)}i(Y,"connectedWallets");function G(e){return Object.entries(e).map(([t])=>t)}i(G,"availableWallets");function $(e){let t=new Map;return e.forEach(n=>{let{config:s,...c}=n;t.set(s.type,{actions:c,config:s})}),t}i($,"checkWalletProviders");function Ze(e){return e?.constructor?.name==="AsyncFunction"}i(Ze,"isAsync");function et(e){let{checkInstallation:t=!0}=e.config;return t}i(et,"needsCheckInstallation");async function q({type:e,walletActions:t,getState:n}){if(t.canEagerConnect){let s=new h(y),l=!!s.list()[e];l&&!n(e).connected&&B(),l||s.addWallet(e,[])}}i(q,"tryPersistWallet");function K({type:e,walletActions:t}){t.canEagerConnect&&new h(y).removeWallets([e])}i(K,"tryRemoveWalletFromPersistance");function B(){let e=new pe;e.getItem(y)&&e.removeItem(y)}i(B,"clearPersistance");function R(e,t){return i((s,c,l,u,a)=>{e({type:"new_state",wallet:s,name:c,value:l}),t&&t(s,c,l,u,a)},"handler")}i(R,"makeEventHandler");import Ve from"react";import{createContext as me}from"react";var P="Context hasn't been initialized yet.",fe={async connect(){throw new Error(P)},async disconnect(){throw new Error(P)},async disconnectAll(){throw new Error(P)},async suggestAndConnect(){throw new Error(P)},state(){throw new Error(P)},canSwitchNetworkTo(){throw new Error(P)},providers(){throw new Error(P)},getWalletInfo(){throw new Error(P)},getSigners(){throw new Error(P)}},A=me(fe);import{LegacyEvents as W}from"@rango-dev/wallets-core/legacy";import"@rango-dev/wallets-core/utils";import{pickVersion as O}from"@rango-dev/wallets-core/utils";import{convertEvmBlockchainMetaToEvmChainInfo as Se}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Ae}from"rango-types";import{useEffect as F,useReducer as Pe}from"react";async function z(e,t){let n=new h(y),s=n.list(),c=Object.keys(s);if(c.length){let l=[];c.forEach(o=>{let r=e.get(o);if(r){let d=t(r);l.push({walletType:o,eagerConnect:d.eagerConnect.bind(d)})}});let u=await Promise.allSettled(l.map(async({eagerConnect:o})=>o())),a=[];u.forEach((o,r)=>{let{status:d}=o;d==="rejected"&&a.push(l[r].walletType)}),a.length&&n.removeWallets(a)}}i(z,"autoConnect");import{LegacyWallet as ge}from"@rango-dev/wallets-core/legacy";import{useContext as ye,useRef as ve}from"react";function Q(e){let t=ve({});function n(s){let c=s.config.type;return typeof t.current[c]>"u"&&(t.current[c]=new ge({config:s.config,handler:e},s.actions)),t.current[c]}return i(n,"updater"),n}i(Q,"useInitializers");function we(){let e=ye(A);if(!e)throw Error("useWallet can only be used within the Provider component");return e}i(we,"useWallets");import{useEffect as he,useRef as Ce}from"react";function J(e){return!!e.allBlockChains?.length&&!!e.autoConnect}i(J,"shouldTryAutoConnect");function T(e){let t=Ce(!1);he(()=>{J(e)&&!t.current&&(t.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}i(T,"useAutoConnect");function _(e){let[t,n]=Pe(U,{}),s=Q(R(n,e.onUpdateState)),c=e.providers,l=$(c);T({allBlockChains:e.allBlockChains,autoConnect:e.autoConnect,autoConnectHandler:async()=>z(l,s)});let u={async connect(a,o){let r=l.get(a);if(!r)throw new Error(`You should add ${a} to provider first.`);let d;o&&o.length>0&&(d=o.find(f=>!!f.network)?.network);let m=await s(r).connect(d,o);return e.autoConnect&&q({type:a,walletActions:r.actions,getState:u.state}),[m]},async disconnect(a){let o=l.get(a);if(!o)throw new Error(`You should add ${a} to provider first.`);await s(o).disconnect(),e.autoConnect&&K({type:a,walletActions:o.actions})},async disconnectAll(){let a=[];return Y(t).forEach(o=>{let r=l.get(o);if(r){let d=s(r);a.push(d.disconnect())}}),e.autoConnect&&B(),await Promise.allSettled(a)},async suggestAndConnect(a,o){let r=l.get(a);if(!r)throw new Error(`You should add ${a} to provider first.`);return await s(r).suggestAndConnect(o)},state(a){return t[a]||H},canSwitchNetworkTo(a,o){let r=l.get(a);if(!r)return!1;let d=s(r);return d.canSwitchNetworkTo?d.canSwitchNetworkTo(o,d.provider):!1},providers(){let a={};return G(t).forEach(o=>{let r=l.get(o);if(r){let d=s(r);a[o]=d.provider}}),a},getWalletInfo(a){let o=l.get(a);if(!o)throw new Error(`You should add ${a} to provider first.`);return o.actions.getWalletInfo(e.allBlockChains||[])},async getSigners(a){let o=l.get(a);if(!o)throw new Error(`You should add ${a} to provider first.`);let r=s(o),d=r.provider;return r.getSigners(d)}};return F(()=>{l.forEach(a=>{let o=s(a),r=i(()=>{o.onInit&&o.onInit()},"runOnInit"),d=i(p=>{p.target&&p.target.readyState==="complete"&&(r(),document.removeEventListener("readystatechange",d))},"initWhenPageIsReady");r(),document.addEventListener("readystatechange",d)})},[]),F(()=>{e.allBlockChains&&l.forEach(o=>{let r=s(o),d=r.getWalletInfo(e.allBlockChains||[]);r.setInfo({supportedBlockchains:d.supportedChains,isContractWallet:!!d.isContractWallet})})},[e.allBlockChains]),F(()=>{l.forEach(a=>{s(a).setHandler(R(n,e.onUpdateState))})},[e.onUpdateState]),u}i(_,"useLegacyProviders");import{legacyFormatAddressWithNetwork as We}from"@rango-dev/wallets-core/legacy";import{CAIP as Ee}from"@rango-dev/wallets-core/utils";import{Err as ke,Ok as Ie}from"ts-results";function Le(e){return typeof e=="string"?e:["solana"].includes(e.namespace.toLowerCase())?e.namespace.toUpperCase():e.namespace.toLowerCase()==="eip155"?"ETH":e.reference}i(Le,"mapCaipNamespaceToLegacyNetworkName");function x(e){let{chainId:t,address:n}=Ee.AccountId.parse(e),s=Le(t);return We(n,s)}i(x,"fromAccountIdToLegacyAddressFormat");async function b(e){return e.reduce(async(t,n)=>{let s=await t;try{let c=await n();return[...s,new Ie(c)]}catch(c){return[...s,new ke(c)]}},Promise.resolve([]))}i(b,"runSequentiallyWithoutFailure");function X(e){return typeof e=="object"&&!Array.isArray(e)}i(X,"isConnectResultEvm");function Z(e){return Array.isArray(e)}i(Z,"isConnectResultSolana");function D(e){let t="0.0.0",n="1.0.0",s=[],c=[];return e.forEach(l=>{try{let u=O(l,n);c.push(u[1])}catch{let u=O(l,t);s.push(u[1])}}),[s,c]}i(D,"separateLegacyAndHubProviders");function E(e,t){return e.find(n=>n.id===t)}i(E,"findProviderByType");var Ne=new h(w);function ee(e,t,n,s,c){let l;try{l=k(s,t.provider)}catch(g){console.warn("Having legacy provider is required for including some information like supported chain. ",g)}let u=e.get(t.provider);if(!u)throw new Error("Currently all the events have assigned to a provider. The event doesn't include one.",{cause:t});let a=t.namespace,o=a?u.findByNamespace(a):void 0,r=null,d=null;if(o){let[g]=o.state();r=g().accounts,d=g().network}let[p]=u.state(),m={connected:p().connected,connecting:p().connecting,installed:p().installed,accounts:r,network:d,reachable:!0},f={supportedBlockchains:l?.getWalletInfo(c||[]).supportedChains||[],isContractWallet:!1,isHub:!0,namespace:a};switch(t.type){case"provider_detected":n(t.provider,W.INSTALLED,!0,m,f);break;case"provider_connecting":n(t.provider,W.CONNECTING,t.value,m,f);break;case"provider_connected":n(t.provider,W.CONNECTED,!0,m,f);break;case"provider_disconnected":n(t.provider,W.CONNECTED,!1,m,f),n(t.provider,W.ACCOUNTS,null,m,f);break;case"namespace_disconnected":Ne.removeNamespacesFromWallet(t.provider,[t.namespace]),n(t.provider,W.NAMESPACE_DISCONNECTED,t.namespace,m,{...f,namespace:t.namespace});break;case"namespace_connected":case"namespace_account_switched":{t.type==="namespace_account_switched"&&n(t.provider,W.NAMESPACE_DISCONNECTED,t.namespace,m,f);let g=t.accounts.map(x);n(t.provider,W.ACCOUNTS,g,m,{...f,namespace:t.namespace})}break;case"namespace_network_switched":n(t.provider,W.NETWORK,t.network,m,{...f,namespace:t.namespace});break}}i(ee,"mapHubEventsToLegacy");function te(e){let t="0.0.0",n=[];return e.forEach(s=>{let c=O(s,t);n.push(c[1])}),n}i(te,"getAllLegacyProviders");function k(e,t){let s=te(e).find(c=>c.config.type===t);if(!s)throw console.warn(`You have a provider that doesn't have legacy provider. It causes some problems since we need some legacy functionality. Provider Id: ${t}`),new Error(`You need to have legacy implementation to use some methods. Provider Id: ${t}`);return s}i(k,"getLegacyProvider");function V(e,t){if(!e.network)return;let n=t.filter(Ae);return Se(n)[e.network]}i(V,"convertNamespaceNetworkToEvmChainId");function oe(e,t){return V(e,t)||e.network}i(oe,"tryConvertNamespaceNetworkToChainInfo");function re(e){return X(e)?{accounts:e.accounts,network:e.network,provider:void 0}:Z(e)?{accounts:e,network:null,provider:void 0}:{accounts:[e],network:null,provider:void 0}}i(re,"transformHubResultToLegacyResult");function ne(e,t){let n=e.map(c=>c.id).sort().toString(),s=t.map(c=>c.id).sort().toString();return n===s}i(ne,"checkProviderListsEquality");import"@rango-dev/wallets-shared";import{useEffect as ie,useRef as Fe,useState as _e}from"react";import{Ok as Oe,Result as De}from"ts-results";import{legacyEagerConnectHandler as Te,legacyIsEvmNamespace as xe}from"@rango-dev/wallets-core/legacy";import{Result as be}from"ts-results";var j=new h(w);async function He(e,t,n){let{getHub:s,allBlockChains:c}=n,l=s().get(e);if(!l)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(p=>{let m=p.namespace,f=l.findByNamespace(m);if(!f)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${p.namespace})`);u.push([p,f])});let a=u.map(([p,m])=>{let g=(xe(p)?V(p,c||[]):void 0)||p.network;return async()=>await m.connect(g).catch(C=>{throw C instanceof Error?C:new Error(C)})}),o=await b(a),r=[];if(o.forEach((p,m)=>{p.err&&r.push(u[m][0])}),r.length>0&&j.removeNamespacesFromWallet(e,r.map(p=>p.namespace)),!o.some(p=>p.ok))throw new Error(`No namespace connected for ${e}`);return be.all(...o).unwrap()}i(He,"eagerConnect");async function ae(e){let{getHub:t,allBlockChains:n,getLegacyProvider:s,wallets:c}=e,l=j.list(),u=Object.keys(l),a=[];if(u.length){let o=[];u.forEach(r=>{if(c&&!c.includes(r)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",r),a.push(r);return}let d=s(r),p;try{p=d.getInstance()}catch{console.warn("It seems instance isn't available yet for auto connect. This can happen when extension not loaded yet (sometimes when opening browser for first time) or extension is disabled. Desired wallet:",r);return}let m=l[r].map(C=>({namespace:C.namespace,network:C.network})),f=i(async()=>{if(!d.canEagerConnect)throw new Error(`${r} provider hasn't implemented canEagerConnect.`);return await d.canEagerConnect({instance:p,meta:d.getWalletInfo(n||[]).supportedChains})},"canEagerConnect"),g=i(async()=>He(r,m,{allBlockChains:n,getHub:t}),"connectHandler");o.push(Te({canEagerConnect:f,connectHandler:g,providerName:r}).catch(C=>{a.push(r),console.warn(C)}))}),await Promise.all(o),j.removeWallets(a)}}i(ae,"autoConnect");import{createStore as Be,Hub as Re}from"@rango-dev/wallets-core";import{useRef as se}from"react";function ce(e){let t=se(null),n=se(null);function s(){let u=new Re({store:c()});return e.forEach(a=>{u.add(a.id,a)}),n.current=u,u}i(s,"createHub");function c(){if(t.current!==null)return t.current;let u=Be();return t.current=u,u}i(c,"getStore");function l(){let u=n.current?.getAll();return!n.current||!u||!ne(Array.from(u.values()),e)?s():n.current}return i(l,"getHub"),{getStore:c,getHub:l}}i(ce,"useHubRefs");function M(e){let{getStore:t,getHub:n}=ce(e.providers),[,s]=_e(0),c=Fe({onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains});ie(()=>{c.current={onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains}},[e]),ie(()=>{let a=i(()=>{n().init(),s(r=>r+1)},"runOnInit"),o=i(r=>{r.target&&r.target.readyState==="complete"&&(a(),document.removeEventListener("readystatechange",o))},"initHubWhenPageIsReady");a(),document.addEventListener("readystatechange",o),t().subscribe(r=>{if(c.current.onUpdateState)try{ee(n(),r,c.current.onUpdateState,c.current.allVersionedProviders,c.current.allBlockChains)}catch(d){console.error(d)}s(d=>d+1)}).flushEvents()},[]),T({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{ae({getLegacyProvider:k.bind(null,e.allVersionedProviders),allBlockChains:e.allBlockChains,getHub:n,wallets:e.configs?.wallets})}});let l=new h(w);return{canSwitchNetworkTo(a,o){let r=k(e.allVersionedProviders,a),d=r.canSwitchNetworkTo;return d?d({network:o,meta:e.allBlockChains||[],provider:r.getInstance()}):!1},async connect(a,o){let r=n().get(a);if(!r)throw new Error(`You should add ${a} to provider first then call 'connect'.`);if(!o)throw new Error("Passing namespace to `connect` is required.");let d=[];o.forEach(v=>{let S=v.namespace,N=r.findByNamespace(S);if(!N)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${v.namespace})`);d.push([v,N])});let p=d.map(([v,S])=>{let N=oe(v,e.allBlockChains||[]);return async()=>S.connect(N).then(re).then(de=>({response:de,input:{namespace:v.namespace,network:v.network}}))}),m=await b(p),f=m.filter(v=>v.ok).map(v=>({namespace:v.val.input.namespace,network:v.val.input.network}));k(e.allVersionedProviders,a).canEagerConnect&&f.length>0&&l.addWallet(a,f);let C=m.map(v=>v.andThen(S=>new Oe(S.response))),L=De.all(...C);if(L.err)throw L.val;return L.unwrap()},async disconnect(a){let o=n().get(a);if(!o)throw new Error(`You should add ${a} to provider first then call 'disconnect'.`);o.getAll().forEach(r=>r.disconnect()),e.autoConnect&&l.removeWallets([a])},async disconnectAll(){let a=Array.from(n().getAll().values()).map(async o=>this.disconnect(o.id));return await Promise.allSettled(a)},async getSigners(a){let o=k(e.allVersionedProviders,a);return o.getSigners(o.getInstance())},getWalletInfo(a){let o=n().get(a);if(!o)throw new Error(`You should add ${a} to provider first.`);let r=o.info();if(!r)throw new Error("Your provider should have required `info`.");let d=k(e.allVersionedProviders,a),p={DEFAULT:""};Object.keys(r.extensions).forEach(f=>{let g=f;if(r.extensions[g]==="homepage"&&(p.DEFAULT=r.extensions[g]||""),["firefox","chrome","brave","edge"].includes(g)){let L=g.toUpperCase();p[L]=r.extensions[g]||""}});let m=d.getWalletInfo(e.allBlockChains||[]);return{name:r.name,img:r.icon,installLink:p,color:"red",supportedChains:m.supportedChains,isContractWallet:!1,mobileWallet:!1,showOnMobile:void 0,needsNamespace:m.needsNamespace,needsDerivationPath:m.needsDerivationPath,isHub:!0,properties:o.info()?.properties}},providers(){let a={};return Array.from(n().getAll().keys()).forEach(o=>{try{let r=k(e.allVersionedProviders,o);a[o]=r.getInstance()}catch(r){console.warn(r)}}),a},state(a){let r=n().state()[a];if(!r)throw new Error(`It seems your requested provider doesn't exist in hub. Provider Id: ${a}`);let d=r.namespaces.filter(m=>m.connected).flatMap(m=>m.accounts?.map(x)).filter(m=>!!m);return{connected:r.connected,connecting:r.connecting,installed:r.installed,reachable:!0,accounts:d,network:null}},suggestAndConnect(a,o){throw new Error("`suggestAndConnect` is not implemented")}}}i(M,"useHubAdapter");function le(e){let{providers:t,...n}=e,[s,c]=D(t),l=_({...n,providers:s}),u=M({...n,providers:c,allVersionedProviders:t});return{canSwitchNetworkTo(o,r){return E(c,o)?u.canSwitchNetworkTo(o,r):l.canSwitchNetworkTo(o,r)},async connect(o,r){return E(c,o)?await u.connect(o,r):await l.connect(o,r)},async disconnect(o){return E(c,o)?await u.disconnect(o):await l.disconnect(o)},async disconnectAll(){return await Promise.allSettled([u.disconnectAll(),l.disconnectAll()])},async getSigners(o){return E(c,o)?u.getSigners(o):l.getSigners(o)},getWalletInfo(o){return E(c,o)?u.getWalletInfo(o):l.getWalletInfo(o)},providers(){let o={};return c.length>0&&(o={...o,...u.providers()}),s.length>0&&(o={...o,...l.providers()}),o},state(o){return E(c,o)?u.state(o):l.state(o)},async suggestAndConnect(o,r){return E(c,o)?u.suggestAndConnect(o,r):await l.suggestAndConnect(o,r)}}}i(le,"useProviders");function je(e){let t=le(e);return Ve.createElement(A.Provider,{value:t},e.children)}i(je,"Provider");var Me=je;import{LegacyEvents as xo}from"@rango-dev/wallets-core/legacy";export{xo as Events,Me as Provider,G as availableWallets,$ as checkWalletProviders,Xe as choose,B as clearPersistance,Y as connectedWallets,H as defaultWalletState,Ze as isAsync,R as makeEventHandler,et as needsCheckInstallation,U as stateReducer,q as tryPersistWallet,K as tryRemoveWalletFromPersistance,we as useWallets};
1
+ var fe=Object.defineProperty;var c=(e,n)=>fe(e,"name",{value:n,configurable:!0});import{Persistor as ge}from"@rango-dev/wallets-core/legacy";var g="last-connected-wallets",h="hub-v1-last-connected-wallets";import{Persistor as A}from"@rango-dev/wallets-core/legacy";var v=class{static{c(this,"LastConnectedWalletsFromStorage")}#e;constructor(n){this.#e=n}addWallet(n,a){if(this.#e===h)return this.#t(n,a);if(this.#e===g)return this.#a(n);throw new Error("Not implemented")}removeWallets(n){if(this.#e===h)return this.#n(n);if(this.#e===g)return this.#c(n);throw new Error("Not implemented")}list(){if(this.#e===h)return this.#r();if(this.#e===g)return this.#o();throw new Error("Not implemented")}removeNamespacesFromWallet(n,a){if(this.#e===h)return this.#s(n,a);throw new Error("Not implemented")}#o(){let a=new A().getItem(g)||[],s={};return a.forEach(i=>{s[i]=[]}),s}#r(){return new A().getItem(h)||{}}#t(n,a){let s=new A,i=s.getItem(this.#e)||{};s.setItem(this.#e,{...i,[n]:a})}#a(n){let a=new A,s=a.getItem(this.#e)||[];a.setItem(g,s.concat(n))}#n(n){let a=new A,s=a.getItem(this.#e)||{};if(!n){a.setItem(this.#e,{});return}n.forEach(i=>{s[i]&&delete s[i]}),a.setItem(this.#e,s)}#s(n,a){let d=(new A().getItem(this.#e)||{})[n].filter(r=>!a.includes(r.namespace));this.#n([n]),this.#t(n,d)}#c(n){let a=new A,s=a.getItem(this.#e)||[];if(!n){a.setItem(this.#e,[]);return}a.setItem(g,s.filter(i=>!n.includes(i)))}};function Xe(e,n){return e.find(a=>a.type===n)||null}c(Xe,"choose");var B={connected:!1,connecting:!1,reachable:!1,installed:!1,accounts:null,network:null};function G(e,n){if(n.type==="new_state"){let a=e[n.wallet];return a?{...e,[n.wallet]:{...a,[n.name]:n.value}}:{...e,[n.wallet]:{...B,[n.name]:n.value}}}return e}c(G,"stateReducer");function $(e){return Object.entries(e).filter(([,n])=>n?.connected).map(([n])=>n)}c($,"connectedWallets");function q(e){return Object.entries(e).map(([n])=>n)}c(q,"availableWallets");function K(e){let n=new Map;return e.forEach(a=>{let{config:s,...i}=a;n.set(s.type,{actions:i,config:s})}),n}c(K,"checkWalletProviders");function Ze(e){return e?.constructor?.name==="AsyncFunction"}c(Ze,"isAsync");function et(e){let{checkInstallation:n=!0}=e.config;return n}c(et,"needsCheckInstallation");async function z({type:e,walletActions:n,getState:a}){if(n.canEagerConnect){let s=new v(g),u=!!s.list()[e];u&&!a(e).connected&&R(),u||s.addWallet(e,[])}}c(z,"tryPersistWallet");function Q({type:e,walletActions:n}){n.canEagerConnect&&new v(g).removeWallets([e])}c(Q,"tryRemoveWalletFromPersistance");function R(){let e=new ge;e.getItem(g)&&e.removeItem(g)}c(R,"clearPersistance");function F(e,n){return c((s,i,u,d,r)=>{e({type:"new_state",wallet:s,name:i,value:u}),n&&n(s,i,u,d,r)},"handler")}c(F,"makeEventHandler");import De from"react";import{createContext as ye}from"react";var W="Context hasn't been initialized yet.",he={async connect(){throw new Error(W)},async disconnect(){throw new Error(W)},async disconnectAll(){throw new Error(W)},async suggestAndConnect(){throw new Error(W)},state(){throw new Error(W)},canSwitchNetworkTo(){throw new Error(W)},providers(){throw new Error(W)},getWalletInfo(){throw new Error(W)},getSigners(){throw new Error(W)}},N=ye(he);import{guessProviderStateSelector as oe,namespaceStateSelector as re}from"@rango-dev/wallets-core";import{LegacyEvents as I}from"@rango-dev/wallets-core/legacy";import{generateStoreId as xe}from"@rango-dev/wallets-core/utils";import{pickVersion as D}from"@rango-dev/wallets-core/utils";import{convertEvmBlockchainMetaToEvmChainInfo as Ie}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Ne}from"rango-types";import{useEffect as _,useReducer as ke}from"react";async function J(e,n){let a=new v(g),s=a.list(),i=Object.keys(s);if(i.length){let u=[];i.forEach(t=>{let o=e.get(t);if(o){let l=n(o);u.push({walletType:t,eagerConnect:l.eagerConnect.bind(l)})}});let d=await Promise.allSettled(u.map(async({eagerConnect:t})=>t()));if(!!d.find(({status:t})=>t==="fulfilled")){let t=[];d.forEach((o,l)=>{let{status:p}=o;p==="rejected"&&t.push(u[l].walletType)}),t.length&&a.removeWallets(t)}}}c(J,"autoConnect");import{LegacyWallet as ve}from"@rango-dev/wallets-core/legacy";import{useContext as we,useRef as Ce}from"react";function X(e){let n=Ce({});function a(s){let i=s.config.type;return typeof n.current[i]>"u"&&(n.current[i]=new ve({config:s.config,handler:e},s.actions)),n.current[i]}return c(a,"updater"),a}c(X,"useInitializers");function Pe(){let e=we(N);if(!e)throw Error("useWallet can only be used within the Provider component");return e}c(Pe,"useWallets");import{useEffect as We,useRef as Ee}from"react";function Z(e){return!!e.allBlockChains?.length&&!!e.autoConnect}c(Z,"shouldTryAutoConnect");function b(e){let n=Ee(!1);We(()=>{Z(e)&&!n.current&&(n.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}c(b,"useAutoConnect");function O(e){let[n,a]=ke(G,{}),s=X(F(a,e.onUpdateState)),i=e.providers,u=K(i);b({allBlockChains:e.allBlockChains,autoConnect:e.autoConnect,autoConnectHandler:async()=>J(u,s)});let d={async connect(r,t){let o=u.get(r);if(!o)throw new Error(`You should add ${r} to provider first.`);let l;t&&t.length>0&&(l=t.find(C=>!!C.network)?.network);let m=await s(o).connect(l,t);return e.autoConnect&&z({type:r,walletActions:o.actions,getState:d.state}),[m]},async disconnect(r){let t=u.get(r);if(!t)throw new Error(`You should add ${r} to provider first.`);await s(t).disconnect(),e.autoConnect&&Q({type:r,walletActions:t.actions})},async disconnectAll(){let r=[];return $(n).forEach(t=>{let o=u.get(t);if(o){let l=s(o);r.push(l.disconnect())}}),e.autoConnect&&R(),await Promise.allSettled(r)},async suggestAndConnect(r,t){let o=u.get(r);if(!o)throw new Error(`You should add ${r} to provider first.`);return await s(o).suggestAndConnect(t)},state(r){return n[r]||B},canSwitchNetworkTo(r,t){let o=u.get(r);if(!o)return!1;let l=s(o);return l.canSwitchNetworkTo?l.canSwitchNetworkTo(t,l.provider):!1},providers(){let r={};return q(n).forEach(t=>{let o=u.get(t);if(o){let l=s(o);r[t]=l.provider}}),r},getWalletInfo(r){let t=u.get(r);if(!t)throw new Error(`You should add ${r} to provider first.`);return t.actions.getWalletInfo(e.allBlockChains||[])},async getSigners(r){let t=u.get(r);if(!t)throw new Error(`You should add ${r} to provider first.`);let o=s(t),l=o.provider;return o.getSigners(l)}};return _(()=>{u.forEach(r=>{let t=s(r),o=c(()=>{t.onInit&&t.onInit()},"runOnInit"),l=c(p=>{p.target&&p.target.readyState==="complete"&&(o(),document.removeEventListener("readystatechange",l))},"initWhenPageIsReady");o(),document.addEventListener("readystatechange",l)})},[]),_(()=>{e.allBlockChains&&u.forEach(t=>{let o=s(t),l=o.getWalletInfo(e.allBlockChains||[]);o.setInfo({supportedBlockchains:l.supportedChains,isContractWallet:!!l.isContractWallet})})},[e.allBlockChains]),_(()=>{u.forEach(r=>{s(r).setHandler(F(a,e.onUpdateState))})},[e.onUpdateState]),d}c(O,"useLegacyProviders");import{legacyFormatAddressWithNetwork as Se}from"@rango-dev/wallets-core/legacy";import{CAIP as Ae}from"@rango-dev/wallets-core/utils";function Le(e){return typeof e=="string"?e:["solana"].includes(e.namespace.toLowerCase())?e.namespace.toUpperCase():e.namespace.toLowerCase()==="eip155"?"ETH":e.reference}c(Le,"mapCaipNamespaceToLegacyNetworkName");function H(e){let{chainId:n,address:a}=Ae.AccountId.parse(e),s=Le(n);return Se(a,s)}c(H,"fromAccountIdToLegacyAddressFormat");async function ee(e){return await e.reduce(async(a,s)=>{let i=await a,u=await s();return[...i,u]},Promise.resolve([]))}c(ee,"sequentiallyRun");function te(e){return typeof e=="object"&&!Array.isArray(e)}c(te,"isConnectResultEvm");function ne(e){return Array.isArray(e)}c(ne,"isConnectResultSolana");function T(e,n){let a="0.0.0",s="1.0.0",{isExperimentalEnabled:i=!1}=n||{};if(i){let d=[],r=[];return e.forEach(t=>{try{let o=D(t,s);r.push(o[1])}catch{let o=D(t,a);d.push(o[1])}}),[d,r]}return[e.map(d=>D(d,a)[1]),[]]}c(T,"separateLegacyAndHubProviders");function E(e,n){return e.find(a=>a.id===n)}c(E,"findProviderByType");var Te=new v(h);function ae(e,n,a,s,i,u){e.getAll().forEach((d,r)=>{let t=oe(n,r),o=oe(a,r),l=[],p=!1,m=!1,C=!1,w=null,y=[];d.getAll().forEach(L=>{let U=xe(r,L.namespaceId),x=re(n,U),M=re(a,U);if(x.network!==null&&(w=x.network),x.network!==M.network&&(m=!0),M.accounts?.slice().sort().toString()!==x.accounts?.slice().sort().toString())if(x.accounts){let Y=x.accounts.map(H);l?l=[...l,...Y]:l=[...Y],p=!0}else y.push(L.namespaceId),l=null,C=!0}),y.length>0&&Te.removeNamespacesFromWallet(r,y);let P;try{P=k(i,r)}catch(L){console.warn("Having legacy provider is required for including some information like supported chain. ",L)}let f={connected:t.connected,connecting:t.connecting,installed:t.installed,accounts:l,network:w,reachable:!0},S={supportedBlockchains:P?.getWalletInfo(u||[]).supportedChains||[],isContractWallet:!1,isHub:!0};o.installed!==t.installed&&s(r,I.INSTALLED,t.installed,f,S),o.connecting!==t.connecting&&s(r,I.CONNECTING,t.connecting,f,S),o.connected!==t.connected&&s(r,I.CONNECTED,t.connected,f,S),p&&s(r,I.ACCOUNTS,l,f,S),C&&s(r,I.ACCOUNTS,null,f,S),m&&s(r,I.NETWORK,w,f,S)})}c(ae,"checkHubStateAndTriggerEvents");function k(e,n){let[a]=T(e),s=a.find(i=>i.config.type===n);if(!s)throw console.warn(`You have a provider that doesn't have legacy provider. It causes some problems since we need some legacy functionality. Provider Id: ${n}`),new Error(`You need to have legacy implementation to use some methods. Provider Id: ${n}`);return s}c(k,"getLegacyProvider");function j(e,n){if(!e.network)return;let a=n.filter(Ne);return Ie(a)[e.network]}c(j,"convertNamespaceNetworkToEvmChainId");function se(e,n){return j(e,n)||e.network}c(se,"tryConvertNamespaceNetworkToChainInfo");function ce(e){return te(e)?{accounts:e.accounts,network:e.network,provider:void 0}:ne(e)?{accounts:e,network:null,provider:void 0}:{accounts:[e],network:null,provider:void 0}}c(ce,"transformHubResultToLegacyResult");function ie(e,n){let a=e.map(i=>i.id).sort().toString(),s=n.map(i=>i.id).sort().toString();return a===s}c(ie,"checkProviderListsEquality");import"@rango-dev/wallets-shared";import{useEffect as pe,useRef as _e,useState as Oe}from"react";import{legacyEagerConnectHandler as be,legacyIsEvmNamespace as He}from"@rango-dev/wallets-core/legacy";async function Be(e,n,a){let{getHub:s,allBlockChains:i}=a,u=s().get(e);if(!u)throw new Error(`You should add ${e} to provider first then call 'connect'.`);if(!n)throw new Error("Passing namespace to `connect` is required. ");let d=[];n.forEach(t=>{let o=t.namespace,l=u.findByNamespace(o);if(!l)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${t.namespace})`);d.push([t,l])});let r=d.map(([t,o])=>{let p=(He(t)?j(t,i||[]):void 0)||t.network;return async()=>await o.connect(p)});return await ee(r)}c(Be,"eagerConnect");async function le(e){let{getHub:n,allBlockChains:a,getLegacyProvider:s,wallets:i}=e,u=new v(h),d=u.list(),r=Object.keys(d),t=[];if(r.length){let o=[];r.forEach(p=>{if(i&&!i.includes(p)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",p),t.push(p);return}let m=s(p),C;try{C=m.getInstance()}catch{console.warn("It seems instance isn't available yet. This can happens when extension not loaded yet (sometimes when opening browser for first time) or extension is disabled.");return}let w=d[p].map(f=>({namespace:f.namespace,network:f.network})),y=c(async()=>{if(!m.canEagerConnect)throw new Error(`${p} provider hasn't implemented canEagerConnect.`);return await m.canEagerConnect({instance:C,meta:m.getWalletInfo(a||[]).supportedChains})},"canEagerConnect"),P=c(async()=>Be(p,w,{allBlockChains:a,getHub:n}),"connectHandler");o.push(be({canEagerConnect:y,connectHandler:P,providerName:p}).catch(f=>{throw t.push(p),f}))}),await Promise.allSettled(o),r.length>t.length&&u.removeWallets(t)}}c(le,"autoConnect");import{createStore as Re,Hub as Fe}from"@rango-dev/wallets-core";import{useRef as de}from"react";function ue(e){let n=de(null),a=de(null);function s(){let d=new Fe({store:i()});return e.forEach(r=>{d.add(r.id,r)}),a.current=d,d}c(s,"createHub");function i(){if(n.current!==null)return n.current;let d=Re();return n.current=d,d}c(i,"getStore");function u(){let d=a.current?.getAll();return!a.current||!d||!ie(Array.from(d.values()),e)?s():a.current}return c(u,"getHub"),{getStore:i,getHub:u}}c(ue,"useHubRefs");function V(e){let{getStore:n,getHub:a}=ue(e.providers),[,s]=Oe(0),i=_e({onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains});pe(()=>{i.current={onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains}},[e]),pe(()=>{let r=c(()=>{a().init(),s(o=>o+1)},"runOnInit"),t=c(o=>{o.target&&o.target.readyState==="complete"&&(r(),document.removeEventListener("readystatechange",t))},"initHubWhenPageIsReady");r(),document.addEventListener("readystatechange",t),n().subscribe((o,l)=>{i.current.onUpdateState&&ae(a(),o,l,i.current.onUpdateState,i.current.allVersionedProviders,i.current.allBlockChains),s(p=>p+1)})},[]),b({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{le({getLegacyProvider:k.bind(null,e.allVersionedProviders),allBlockChains:e.allBlockChains,getHub:a,wallets:e.configs?.wallets})}});let u=new v(h);return{canSwitchNetworkTo(r,t){let o=k(e.allVersionedProviders,r),l=o.canSwitchNetworkTo;return l?l({network:t,meta:e.allBlockChains||[],provider:o.getInstance()}):!1},async connect(r,t){let o=a().get(r);if(!o)throw new Error(`You should add ${r} to provider first then call 'connect'.`);if(!t)throw new Error("Passing namespace to `connect` is required.");let l=[];t.forEach(y=>{let P=y.namespace,f=o.findByNamespace(P);if(!f)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${y.namespace})`);l.push([y,f])});let p=[],m=l.map(async([y,P])=>{let f=se(y,e.allBlockChains||[]);return P.connect(f).then(ce).then(L=>(p.push({namespace:y.namespace,network:y.network}),L))});return k(e.allVersionedProviders,r).canEagerConnect&&Promise.allSettled(m).then(()=>{p.length>0&&u.addWallet(r,p)}),await Promise.all(m)},async disconnect(r){let t=a().get(r);if(!t)throw new Error(`You should add ${r} to provider first then call 'connect'.`);t.getAll().forEach(o=>o.disconnect()),e.autoConnect&&u.removeWallets([r])},disconnectAll(){throw new Error("`disconnectAll` not implemented")},async getSigners(r){let t=k(e.allVersionedProviders,r);return t.getSigners(t.getInstance())},getWalletInfo(r){let t=a().get(r);if(!t)throw new Error(`You should add ${r} to provider first.`);let o=t.info();if(!o)throw new Error("Your provider should have required `info`.");let l=k(e.allVersionedProviders,r),p={DEFAULT:""};Object.keys(o.extensions).forEach(C=>{let w=C;if(o.extensions[w]==="homepage"&&(p.DEFAULT=o.extensions[w]||""),["firefox","chrome","brave","edge"].includes(w)){let P=w.toUpperCase();p[P]=o.extensions[w]||""}});let m=l.getWalletInfo(e.allBlockChains||[]);return{name:o.name,img:o.icon,installLink:p,color:"red",supportedChains:m.supportedChains,isContractWallet:!1,mobileWallet:!1,showOnMobile:void 0,needsNamespace:m.needsNamespace,needsDerivationPath:m.needsDerivationPath,isHub:!0,properties:t.info()?.properties}},providers(){let r={};return Array.from(a().getAll().keys()).forEach(t=>{try{let o=k(e.allVersionedProviders,t);r[t]=o.getInstance()}catch(o){console.warn(o)}}),r},state(r){let o=a().state()[r];if(!o)throw new Error(`It seems your requested provider doesn't exist in hub. Provider Id: ${r}`);let l=o.namespaces.filter(m=>m.connected).flatMap(m=>m.accounts?.map(H)).filter(m=>!!m);return{connected:o.connected,connecting:o.connecting,installed:o.installed,reachable:!0,accounts:l,network:null}},suggestAndConnect(r,t){throw new Error("`suggestAndConnect` is not implemented")}}}c(V,"useHubAdapter");function me(e){let{providers:n,...a}=e,[s,i]=T(n,{isExperimentalEnabled:a.configs?.isExperimentalEnabled}),u=O({...a,providers:s}),d=V({...a,providers:i,allVersionedProviders:n});return{canSwitchNetworkTo(t,o){return E(i,t)?d.canSwitchNetworkTo(t,o):u.canSwitchNetworkTo(t,o)},async connect(t,o){return E(i,t)?await d.connect(t,o):await u.connect(t,o)},async disconnect(t){return E(i,t)?await d.disconnect(t):await u.disconnect(t)},async disconnectAll(){return await Promise.allSettled([d.disconnectAll(),u.disconnectAll()])},async getSigners(t){return E(i,t)?d.getSigners(t):u.getSigners(t)},getWalletInfo(t){return E(i,t)?d.getWalletInfo(t):u.getWalletInfo(t)},providers(){let t={};return i.length>0&&(t={...t,...d.providers()}),s.length>0&&(t={...t,...u.providers()}),t},state(t){return E(i,t)?d.state(t):u.state(t)},async suggestAndConnect(t,o){return E(i,t)?d.suggestAndConnect(t,o):await u.suggestAndConnect(t,o)}}}c(me,"useProviders");function je(e){let n=me(e);return De.createElement(N.Provider,{value:n},e.children)}c(je,"Provider");var Ve=je;var Ue=(d=>(d.CONNECTED="connected",d.CONNECTING="connecting",d.REACHABLE="reachable",d.INSTALLED="installed",d.ACCOUNTS="accounts",d.NETWORK="network",d))(Ue||{});export{Ue as Events,Ve as Provider,q as availableWallets,K as checkWalletProviders,Xe as choose,R as clearPersistance,$ as connectedWallets,B as defaultWalletState,Ze as isAsync,F as makeEventHandler,et as needsCheckInstallation,T as separateLegacyAndHubProviders,G as stateReducer,z as tryPersistWallet,Q as tryRemoveWalletFromPersistance,Pe as useWallets};
2
2
  //# sourceMappingURL=index.js.map