@rango-dev/wallets-react 0.0.0-experimental-99f1781b-20260920 → 0.0.0-experimental-a84f27a7-20260921

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,10 +1,8 @@
1
1
  import type { UseAdapterParams } from './useHubAdapter.js';
2
- import type { EventHandler } from '../legacy/types.js';
3
2
  import type { Hub, Provider, WalletType } from '@hub3js/core';
4
3
  export declare function autoConnect(deps: {
5
4
  getHub: () => Hub;
6
5
  allBlockChains: UseAdapterParams['allBlockChains'];
7
6
  wallets?: (WalletType | Provider)[];
8
- onUpdateState?: EventHandler;
9
7
  }): Promise<void>;
10
8
  //# sourceMappingURL=autoConnect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autoConnect.d.ts","sourceRoot":"","sources":["../../src/hub/autoConnect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAwL9D,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,MAAM,GAAG,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEhB"}
1
+ {"version":3,"file":"autoConnect.d.ts","sourceRoot":"","sources":["../../src/hub/autoConnect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAiL9D,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,MAAM,GAAG,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;CACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DhB"}
@@ -1,6 +1,4 @@
1
1
  import type { AllProxiedNamespaces } from './types.js';
2
- import type { NamespaceConnectAttempt } from '../errors.js';
3
- import type { NamespaceInputForConnect } from '../legacy/types.js';
4
2
  import type { ProviderProps } from '../types.js';
5
3
  import type { Accounts, AccountsWithActiveChain } from '@hub3js/std/types';
6
4
  import type { Result } from 'ts-results';
@@ -15,21 +13,11 @@ export declare function mapCaipNamespaceToLegacyNetworkName(chainId: ChainIdPara
15
13
  */
16
14
  export declare function fromAccountIdToLegacyAddressFormat(account: string): string;
17
15
  /**
18
- * Runs a list of (lazy) promises one after another and returns their results in
19
- * order. The first failure rejects, and the promises after it don't run.
20
- */
21
- export declare function runSequentially<R>(promises: Array<() => Promise<R>>): Promise<R[]>;
22
- /**
23
- * Runs a list of (lazy) promises one after another, even when one fails, and returns
24
- * each one's outcome in order as a `Result`.
16
+ * Getting a list of (lazy) promises and run them one after another.
25
17
  */
26
18
  export declare function runSequentiallyWithoutFailure<R>(promises: Array<() => Promise<R>>): Promise<Result<R, unknown>[]>;
27
19
  export declare function isConnectResultEvm(result: Awaited<ReturnType<AllProxiedNamespaces['connect']>>): result is AccountsWithActiveChain;
28
20
  export declare function isConnectResultSolana(result: Awaited<ReturnType<AllProxiedNamespaces['connect']>>): result is Accounts;
29
- export type QueueTaskResult<T> = {
30
- result: Result<T, unknown>;
31
- cancelled: boolean;
32
- };
33
21
  /**
34
22
  * Creates a queue manager that ensures sequential execution of tasks by key.
35
23
  * When multiple tasks with the same key are queued, they are executed one at a time
@@ -39,18 +27,8 @@ export type QueueTaskResult<T> = {
39
27
  */
40
28
  export declare function createQueue(options?: {
41
29
  onError?: (error: unknown, actions: {
42
- cancelWaitingItems: () => void;
30
+ removeCurrentKeyFromQueue: () => void;
43
31
  }) => void;
44
- }): <T>(task: () => Promise<T>, key: string) => Promise<QueueTaskResult<T>>;
45
- /**
46
- * Runs one `connect` attempt for the requested namespaces. `connectNamespaces` passes
47
- * each namespace's attempt to `reportAttempts` once they have all settled. Anything it
48
- * throws, such as a config error or saving to storage failing, is added after the
49
- * namespace failures, unchanged.
50
- *
51
- * Throws a `WalletConnectionAttemptError` if anything failed; otherwise returns each
52
- * namespace's result in request order.
53
- */
54
- export declare function runConnectionAttempt<T>(namespaces: NamespaceInputForConnect[] | undefined, connectNamespaces: (reportAttempts: (attempts: NamespaceConnectAttempt<T>[]) => void) => Promise<void>): Promise<T[]>;
32
+ }): <T>(task: () => Promise<T>, key: string) => Promise<Result<T, unknown>>;
55
33
  export declare function shouldTryAutoConnect(props: Pick<ProviderProps, 'allBlockChains' | 'autoConnect'>): boolean;
56
34
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/hub/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,YAAY,CAAC;AAYjD,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAKrD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,aAAa,GAAG,MAAM,GAC9B,MAAM,CAmCR;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,QAAQ,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,CAAC,EAAE,CAAC,CAMd;AAED;;;GAGG;AACH,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;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAK3B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAOF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE;IACpC,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QACP,kBAAkB,EAAE,MAAM,IAAI,CAAC;KAChC,KACE,IAAI,CAAC;CACX,IA+C0B,CAAC,QAClB,MAAM,OAAO,CAAC,CAAC,CAAC,OACjB,MAAM,KACV,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAW/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,UAAU,EAAE,wBAAwB,EAAE,GAAG,SAAS,EAClD,iBAAiB,EAAE,CACjB,cAAc,EAAE,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,KAC7D,OAAO,CAAC,IAAI,CAAC,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC,CAsBd;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,GAAG,aAAa,CAAC,GAC3D,OAAO,CAET"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/hub/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAYzC,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAGrD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,aAAa,GAAG,MAAM,GAC9B,MAAM,CAmCR;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED;;GAEG;AAEH,wBAAsB,6BAA6B,CAAC,CAAC,EACnD,QAAQ,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAU/B;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,GAC3D,MAAM,IAAI,uBAAuB,CAEnC;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,GAC3D,MAAM,IAAI,QAAQ,CAEpB;AAOD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE;IACpC,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QACP,yBAAyB,EAAE,MAAM,IAAI,CAAC;KACvC,KACE,IAAI,CAAC;CACX,IAgD0B,CAAC,QAClB,MAAM,OAAO,CAAC,CAAC,CAAC,OACjB,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAW/B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,GAAG,aAAa,CAAC,GAC3D,OAAO,CAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHubAdapter.d.ts","sourceRoot":"","sources":["../../src/hub/useHubAdapter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AAgCzD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG;IAChE,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,CAsdvE"}
1
+ {"version":3,"file":"useHubAdapter.d.ts","sourceRoot":"","sources":["../../src/hub/useHubAdapter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AA6BzD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG;IAChE,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,CA4dvE"}
@@ -1,5 +1,5 @@
1
1
  import type { AllProxiedNamespaces } from './types.js';
2
- import type { ConnectResult, EventInfo, NamespaceInputForConnect, EventHandler as WalletEventHandler, WalletState } from '../legacy/mod.js';
2
+ import type { ConnectResult, NamespaceInputForConnect, EventHandler as WalletEventHandler } from '../legacy/mod.js';
3
3
  import type { ProviderProps } from '../types.js';
4
4
  import type { UtxoActions } from '@hub3js/bip122';
5
5
  import type { Hub, Provider, ProxiedNamespace, WalletType } from '@hub3js/core';
@@ -10,8 +10,6 @@ import { type VersionedProviders } from '@hub3js/core/utils';
10
10
  import { type BlockchainMeta } from 'rango-types';
11
11
  export declare function getHubProviders(providers: VersionedProviders[]): Provider[];
12
12
  export declare function findProviderByType(providers: Provider[], type: string): Provider | undefined;
13
- export declare function getProviderCoreState(provider: Provider): WalletState;
14
- export declare function getProviderEventInfo(provider: Provider, allBlockChains: ProviderProps['allBlockChains']): EventInfo;
15
13
  export declare function mapHubEventsToLegacy(hub: Hub, event: Event, onUpdateState: WalletEventHandler, metadata: {
16
14
  allBlockChains: ProviderProps['allBlockChains'];
17
15
  lastConnectAttemptParams: {
@@ -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,EACV,aAAa,EACb,SAAS,EACT,wBAAwB,EACxB,YAAY,IAAI,kBAAkB,EAClC,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EACV,KAAK,IAAI,yBAAyB,EAClC,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAQ1E,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,aAAa,CAAC;AAYnE,wBAAgB,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,QAAQ,EAAE,CAU3E;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,QAAQ,EAAE,EACrB,IAAI,EAAE,MAAM,GACX,QAAQ,GAAG,SAAS,CAEtB;AAGD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAUpE;AAGD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAC9C,SAAS,CAaX;AAWD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,kBAAkB,EACjC,QAAQ,EAAE;IACR,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAChD,wBAAwB,EAAE;QACxB,CAAC,IAAI,EAAE,UAAU,GAAG,wBAAwB,EAAE,CAAC;KAChD,CAAC;CACH,GACA,IAAI,CAwKN;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,wBAAwB,EACnC,IAAI,EAAE,cAAc,EAAE,GACrB,yBAAyB,GAAG,SAAS,CASvC;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,wBAAwB,EACnC,IAAI,EAAE,cAAc,EAAE,GACrB,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAMhD;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,GACxD,aAAa,CAiBf;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,GAAG,EACR,sBAAsB,EAAE,QAAQ,EAAE,QAwBnC;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,aAAa,CAAC,GAAG;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,CAE5D;AACD,wBAAgB,cAAc,CAC5B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,UAAU,CAAC,GAAG;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAEtD;AACD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,WAAW,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAExD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/hub/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EACV,aAAa,EACb,wBAAwB,EACxB,YAAY,IAAI,kBAAkB,EACnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EACV,KAAK,IAAI,yBAAyB,EAClC,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAQ1E,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,aAAa,CAAC;AAYnE,wBAAgB,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,QAAQ,EAAE,CAU3E;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,QAAQ,EAAE,EACrB,IAAI,EAAE,MAAM,GACX,QAAQ,GAAG,SAAS,CAEtB;AAWD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,kBAAkB,EACjC,QAAQ,EAAE;IACR,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAChD,wBAAwB,EAAE;QACxB,CAAC,IAAI,EAAE,UAAU,GAAG,wBAAwB,EAAE,CAAC;KAChD,CAAC;CACH,GACA,IAAI,CAqLN;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,wBAAwB,EACnC,IAAI,EAAE,cAAc,EAAE,GACrB,yBAAyB,GAAG,SAAS,CASvC;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,wBAAwB,EACnC,IAAI,EAAE,cAAc,EAAE,GACrB,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAMhD;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,GACxD,aAAa,CAiBf;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,GAAG,EACR,sBAAsB,EAAE,QAAQ,EAAE,QAwBnC;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,aAAa,CAAC,GAAG;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,CAE5D;AACD,wBAAgB,cAAc,CAC5B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,UAAU,CAAC,GAAG;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAEtD;AACD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,oBAAoB,GACvB,EAAE,IAAI,oBAAoB,GAC3B,gBAAgB,CAAC,WAAW,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAExD"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export { default as Provider } from './provider.js';
2
2
  export { useWallets } from './hooks.js';
3
- export { AutoConnectionAttemptError, WalletConnectionAttemptError, } from './errors.js';
4
3
  export type * from './types.js';
5
4
  export * from './legacy/types.js';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,mBAAmB,YAAY,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,mBAAmB,YAAY,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var ye=Object.defineProperty;var o=(e,t)=>ye(e,"name",{value:t,configurable:!0});import nt from"react";import{createContext as Ne}from"react";var A="Context hasn't been initialized yet.",ve={async connect(){throw new Error(A)},async disconnect(){throw new Error(A)},async disconnectAll(){throw new Error(A)},async suggestAndConnect(){throw new Error(A)},state(){throw new Error(A)},canSwitchNetworkTo(){throw new Error(A)},getWalletInfo(){throw new Error(A)},getSigners(){throw new Error(A)},hubProvider(){throw new Error(A)}},W=Ne(ve);import{pickVersion as Oe}from"@hub3js/core/utils";import{convertEvmBlockchainMetaToEvmChainInfo as Fe,formatAddressWithNetwork as Le,getBlockChainNameFromId as _e,getSupportedChainsFromProvider as De}from"@rango-dev/internal-blockchains";import{AccountId as je}from"caip";import{isEvmBlockchain as Me}from"rango-types";var B=(C=>(C.CONNECTED="connected",C.CONNECTING="connecting",C.REACHABLE="reachable",C.INSTALLED="installed",C.ACCOUNTS="accounts",C.NETWORK="network",C.NAMESPACE_DISCONNECTED="namespace_disconnected",C.PROVIDER_DISCONNECTED="provider_disconnected",C.AUTO_CONNECT_FAILED="auto_connect_failed",C))(B||{});var P="hub-v1-last-connected-wallets";import{CAIP_BITCOIN_CHAIN_ID as Ee,CAIP_BITCOINCASH_CHAIN_ID as ke,CAIP_DOGECOIN_CHAIN_ID as Ae,CAIP_LITECOIN_CHAIN_ID as Ie,CAIP_ZCASH_CHAIN_ID as Te}from"@hub3js/bip122";import{CAIP_NAMESPACE as be}from"@hub3js/tvm";import{formatAddressWithNetwork as Se}from"@rango-dev/internal-blockchains";import{CAIP_TRON_CHAIN_ID as xe}from"@rango-dev/wallets-core/namespaces/tron";import{AccountId as We}from"caip";import{Err as L,None as Be,Ok as z,Some as Re}from"ts-results";import{WalletConnectionError as Y}from"@hub3js/std/utils";function Pe(e){return typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:String(e)}o(Pe,"messageOf");var S=class extends AggregateError{static{o(this,"WalletConnectionAttemptError")}name="WalletConnectionAttemptError";requestedNamespaces;constructor(t){let{errors:n,requestedNamespaces:a,message:r}=t;super(n,r??(n.length>0?Pe(n[0]):"")),this.requestedNamespaces=a}},R=class extends S{static{o(this,"AutoConnectionAttemptError")}name="AutoConnectionAttemptError"};function V(e){return e.flatMap(({input:t,result:n,cancelled:a})=>a||n.ok?[]:n.val instanceof Y?[n.val]:[new Y({namespace:t.namespace,cause:n.val})])}o(V,"collectConnectionFailures");function G(e){let{requestedNamespaces:t,attempts:n,nonNamespaceError:a}=e;if(n.every(({result:f})=>f.ok)&&a.none)return;let r=V(n);return a.some&&r.push(a.val),new S({errors:r,requestedNamespaces:t})}o(G,"buildConnectionAttemptError");function K(e){let t=V(e);if(t.length)return new R({errors:t,requestedNamespaces:e.map(({input:n})=>n)})}o(K,"buildAutoConnectionAttemptError");function He(e){return typeof e=="string"?e:["solana","xrpl","stellar"].includes(e.namespace.toLowerCase())?e.namespace.toUpperCase():e.namespace.toLowerCase()==="eip155"?"ETH":e.reference===Ee?"BTC":e.reference===Te?"ZCASH":e.reference===Ie?"LTC":e.reference===Ae?"DOGE":e.reference===ke?"BCH":e.namespace.toLowerCase()===be?"TON":e.namespace==="sui"||e.reference===xe?e.reference.toUpperCase():e.namespace==="starknet"?e.namespace.toUpperCase():e.reference}o(He,"mapCaipNamespaceToLegacyNetworkName");function x(e){let{chainId:t,address:n}=We.parse(e),a=He(t);return Se(n,a)}o(x,"fromAccountIdToLegacyAddressFormat");async function X(e){let t=[];for(let n of e)t.push(await n());return t}o(X,"runSequentially");async function J(e){return e.reduce(async(t,n)=>{let a=await t;try{let r=await n();return[...a,new z(r)]}catch(r){return[...a,new L(r)]}},Promise.resolve([]))}o(J,"runSequentiallyWithoutFailure");function Z(e){return typeof e=="object"&&!Array.isArray(e)}o(Z,"isConnectResultEvm");function ee(e){return Array.isArray(e)}o(ee,"isConnectResultSolana");function te(e){let t=new Set,n=[],a=o((l,m)=>{n=n.filter(h=>h===l||h.key!==l.key?!0:(h.resolve({result:new L(m),cancelled:!0}),!1))},"cancelWaitingItems"),r=o(async()=>{let l=n.find(p=>!t.has(p.key));if(!l)return;let{task:m,resolve:h,key:C}=l;t.add(C);try{let p=await m();h({result:new z(p),cancelled:!1})}catch(p){e?.onError&&e.onError(p,{cancelWaitingItems:()=>a(l,p)}),h({result:new L(p),cancelled:!1})}finally{let p=n.findIndex(s=>s.key===C);p>=0&&n.splice(p,1),t.delete(C),r()}},"processQueue");return o(async(l,m)=>new Promise(h=>{n.push({task:l,resolve:h,key:m}),r()}),"queueTask")}o(te,"createQueue");async function ne(e,t){let n=[],a=Be;try{await t(f=>{n=f})}catch(f){a=new Re(f)}let r=G({requestedNamespaces:e??[],attempts:n,nonNamespaceError:a});if(r)throw r;return n.map(({result:f})=>f.unwrap())}o(ne,"runConnectionAttempt");function oe(e){return!!e.allBlockChains?.length&&!!e.autoConnect}o(oe,"shouldTryAutoConnect");var T=class{static{o(this,"Persistor")}getItem(t){let n=localStorage.getItem(t);return n?JSON.parse(n):null}setItem(t,n){localStorage.setItem(t,JSON.stringify(n))}removeItem(t){localStorage.removeItem(t)}};var I=class{static{o(this,"LastConnectedWalletsFromStorage")}#e;constructor(t){this.#e=t}addWallet(t,n){if(this.#e===P)return this.#t(t,n);throw new Error("Not implemented")}removeWallets(t){if(this.#e===P)return this.#n(t);throw new Error("Not implemented")}list(){if(this.#e===P)return this.#o();throw new Error("Not implemented")}removeNamespacesFromWallet(t,n){if(this.#e===P)return this.#r(t,n);throw new Error("Not implemented")}#o(){return new T().getItem(P)||{}}#t(t,n){let a=new T,r=a.getItem(this.#e)||{},f=n;if(r[t]){let l=r[t];f=l.concat(n.filter(m=>!l.some(h=>h.namespace===m.namespace)))}a.setItem(this.#e,{...r,[t]:f})}#n(t){let n=new T,a=n.getItem(this.#e)||{};if(!t){n.setItem(this.#e,{});return}t.forEach(r=>{a[r]&&delete a[r]}),n.setItem(this.#e,a)}#r(t,n){let l=(new T().getItem(this.#e)||{})[t]?.filter(m=>!n.includes(m.namespace));this.#n([t]),l?.length>0&&this.#t(t,l)}};function _(e){return e.map(t=>{try{return Oe(t,"1.0.0")[1]}catch{throw new Error("Legacy providers aren't supported anymore. Expected a provider with version '1.0.0'.")}})}o(_,"getHubProviders");function D(e,t){return e.find(n=>n.id===t)}o(D,"findProviderByType");function j(e){let[t]=e.state();return{connected:t().connected,connecting:t().connecting,installed:t().installed,accounts:null,network:null,reachable:!0}}o(j,"getProviderCoreState");function M(e,t){let n=e.info()?.metadata.properties?.find(a=>a.name==="details");return{supportedBlockchains:De(e,t),isContractWallet:n?.value?.isContractWallet??!1,isHub:!0}}o(M,"getProviderEventInfo");var Ue=new I(P);function re(e,t,n,a){let r=e.get(t.provider);if(!r)throw new Error("Currently all the events have assigned to a provider. The event doesn't include one.",{cause:t});let f=t.namespace,l=f?r.findByNamespace(f):void 0,m=null,h=null,C;if(l){let[c]=l.state();m=c().accounts,h=c().network,a.lastConnectAttemptParams[t.provider]&&(C=a.lastConnectAttemptParams[t.provider].find(d=>d.namespace===f)?.derivationPath)}let p={...j(r),accounts:m,network:h,derivationPath:C},s={...M(r,a.allBlockChains),namespace:f};switch(t.type){case"provider_detected":n(t.provider,"installed",!0,p,s);break;case"provider_connecting":n(t.provider,"connecting",t.value,p,s);break;case"provider_connected":n(t.provider,"connected",!0,p,s);break;case"provider_disconnected":n(t.provider,"provider_disconnected",t.provider,p,s),n(t.provider,"connected",!1,p,s),n(t.provider,"accounts",null,p,s);break;case"namespace_disconnected":Ue.removeNamespacesFromWallet(t.provider,[t.namespace]),n(t.provider,"namespace_disconnected",t.namespace,p,{...s,namespace:t.namespace});break;case"namespace_connected":case"namespace_account_switched":{t.type==="namespace_account_switched"&&n(t.provider,"namespace_disconnected",t.namespace,p,s);let c=[];s.isContractWallet?c=t.accounts.map(d=>{let{chainId:i,address:u}=je.parse(d);if(typeof i=="string")throw new Error("Should be in CAIP format");let g=_e(i.reference,s.supportedBlockchains);return g?Le(u,g):x(d)}):c=t.accounts.map(d=>x(d)),n(t.provider,"accounts",c,p,{...s,namespace:t.namespace})}break;case"namespace_network_switched":n(t.provider,"network",t.network,p,{...s,namespace:t.namespace});break}}o(re,"mapHubEventsToLegacy");function U(e,t){if(!e.network)return;let n=t.filter(Me);return Fe(n)[e.network]}o(U,"convertNamespaceNetworkToEvmChainId");function se(e,t){return U(e,t)||e.network}o(se,"tryConvertNamespaceNetworkToChainInfo");function ae(e){return Z(e)?{accounts:e.accounts,network:e.network}:ee(e)?{accounts:e,network:null}:{accounts:[e],network:null}}o(ae,"transformHubResultToLegacyResult");function ce(e,t){let n=e.getAll();t.filter(r=>!n.get(r.id)).forEach(r=>{e.add(r.id,r),r.init()}),n.forEach(r=>{t.some(l=>l.id===r.id)||e.remove(r.id)})}o(ce,"synchronizeHubWithConfigProviders");function ie(e){return e.namespaceId==="Solana"}o(ie,"isSolanaNamespace");function H(e){return e.namespaceId==="EVM"}o(H,"isEvmNamespace");function le(e){return e.namespaceId==="UTXO"}o(le,"isUtxoNamespace");import{isUserRejectionError as Je}from"@hub3js/std/utils";import{getSupportedChainsFromNamespace as Ze,getSupportedChainsFromProvider as et}from"@rango-dev/internal-blockchains";import{useEffect as q,useRef as $,useState as tt}from"react";import{debug as qe}from"@rango-dev/logging-core";function pe(e,t,n){let a=n instanceof Error?n:new Error(String(n));qe(a,{context:{method:e,args:t},tags:{type:"wallet-error"}})}o(pe,"logError");function $e(e,t){return(...n)=>{try{let a=t(...n);return a instanceof Promise?a.catch(r=>{throw pe(e,n,r),r}):a}catch(a){throw pe(e,n,a),a}}}o($e,"withErrorLogging");function ue(e){let t=Object.entries(e).map(([n,a])=>[n,$e(n,a.bind(e))]);return Object.fromEntries(t)}o(ue,"withErrorLoggingApi");import{Result as me}from"ts-results";function Qe(e){return e.namespace==="EVM"}o(Qe,"isEvmNamespaceInput");var O=new I(P);async function Ye(e,t,n){let{getHub:a,allBlockChains:r,onUpdateState:f}=n,l=a().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 m=[];t.forEach(i=>{let u=i.namespace,g=l.findByNamespace(u);if(!g)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${i.namespace})`);m.push([i,g])});let h=m.map(([i,u])=>{let E=(Qe(i)?U(i,r||[]):void 0)||i.network;return async()=>{let N;return H(u)?N=o(async()=>u.connect(E),"connectNamespacePromise"):N=o(async()=>u.connect(),"connectNamespacePromise"),{input:i,result:await me.wrapAsync(N)}}}),C=await X(h),p=C.filter(({result:i})=>i.err).map(({input:i})=>i.namespace);p.length>0&&O.removeNamespacesFromWallet(e,p);let s=K(C);s&&f?.(e,"auto_connect_failed",s,j(l),M(l,r));let c=C.map(({result:i})=>i);if(!c.some(i=>i.ok))throw new Error(`No namespace connected for ${e}`);return me.all(...c.filter(i=>i.ok)).unwrap()}o(Ye,"eagerConnect");async function Ve(e,t){let n=[],a=[],r=[],f=[];e.forEach(m=>{let h=t.findByNamespace(m.namespace);h?(n.push(m),f.push(async()=>await h.canEagerConnect())):r.push(m)});let l=await J(f);return n.forEach((m,h)=>{l[h].ok&&l[h].val?a.push(m):r.push(m)}),{successNamespaces:a,failedNamespaces:r}}o(Ve,"tryRunCanEagerConnect");async function de(e){let{getHub:t,allBlockChains:n,wallets:a,onUpdateState:r}=e,f=O.list(),l=Object.keys(f),m=[];if(l.length){let h=[],C=a?.map(p=>typeof p=="string"?p:p.id);l.forEach(async p=>{if(C&&!C.includes(p)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",p),m.push(p);return}let s=t().get(p),c=f[p].map(u=>({namespace:u.namespace,network:u.network}));if(!c.length||!s){m.push(p);return}let{successNamespaces:d,failedNamespaces:i}=await Ve(c,s);if(d.length)i.length&&O.removeNamespacesFromWallet(s.id,i.map(u=>u.namespace));else{m.push(p);return}h.push(Ye(p,d,{allBlockChains:n,getHub:t,onUpdateState:r}).catch(u=>console.warn(u)))}),O.removeWallets(m),await Promise.all(h)}}o(de,"autoConnect");import{useEffect as Ge,useRef as Ke}from"react";function fe(e){let t=Ke(!1);Ge(()=>{oe(e)&&!t.current&&(t.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}o(fe,"useAutoConnect");import{createStore as ze,Hub as Xe}from"@hub3js/core";import{useRef as Ce}from"react";function he(e){let t=Ce(null),n=Ce(null);function a(){let l=new Xe({store:r()});return e.forEach(m=>{l.add(m.id,m)}),n.current=l,l}o(a,"createHub");function r(){if(t.current!==null)return t.current;let l=ze();return t.current=l,l}o(r,"getStore");function f(){let l=n.current?.getAll();return!n.current||!l?a():(ce(n.current,e),n.current)}return o(f,"getHub"),{getStore:r,getHub:f}}o(he,"useHubRefs");function Q(e){let{getStore:t,getHub:n}=he(e.providers),[,a]=tt(0),r=$({onUpdateState:e.onUpdateState,allBlockChains:e.allBlockChains}),f=$(!1),l=$({}),m=o((s,c)=>{l.current[s]=c||[]},"updateLastConnectAttemptParams"),h=te({onError:(s,c)=>{Je(s)&&c.cancelWaitingItems()}});q(()=>{r.current={onUpdateState:e.onUpdateState,allBlockChains:e.allBlockChains}},[e]),q(()=>{t().subscribe(s=>{if(r.current.onUpdateState)try{re(n(),s,r.current.onUpdateState,{allBlockChains:r.current.allBlockChains,lastConnectAttemptParams:l.current})}catch(c){console.error(c)}a(c=>c+1)}).flushEvents()},[]),q(()=>{f.current||!e.allBlockChains?.length||(n().init(e.configs?.walletOptions),a(s=>s+1),f.current=!0)},[e.allBlockChains,e.configs?.walletOptions]),fe({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{de({allBlockChains:e.allBlockChains,getHub:n,wallets:e.configs?.wallets,onUpdateState:e.onUpdateState})}});let C=new I(P);return ue({canSwitchNetworkTo(s,c,d){let i=n().get(s);if(!i)return!1;if(!d)throw new Error("Passing namespace to `canSwitchNetworkTo` is required.");let u=i.findByNamespace(d.namespace);if(!u)throw new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${d.namespace})`);if(!("canSwitchNetwork"in u))return!1;let g=i.info()?.metadata?.properties?.find(v=>v.name==="namespaces");if(!r.current.allBlockChains)throw new Error("Blockchains are not available");let E=g?.value.data.find(v=>v.value===d.namespace);if(!E)throw new Error(`NamespaceMeta is not defined for requested namespace: ${d.namespace}`);let N=Ze(E,r.current.allBlockChains);return u.canSwitchNetwork({network:c,supportedChains:N})},async connect(s,c){return ne(c,o(async i=>{let u=n().get(s);if(!u)throw new Error(`You should add ${s} to provider first then call 'connect'.`);if(!c)throw new Error("Passing namespace to `connect` is required.");m(s,c);let g=[];c.forEach(y=>{let w=y.namespace,k=u.findByNamespace(w);if(!k)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${y.namespace})`);g.push([y,k])});let E=g.map(async([y,w])=>{let k=se(y,e.allBlockChains||[]),b;ie(w)?b=o(async()=>w.connect({derivationPath:y.derivationPath}),"connectNamespacePromise"):H(w)?b=o(async()=>w.connect(k,{derivationPath:y.derivationPath}),"connectNamespacePromise"):le(w)?b=o(async()=>w.connect({derivationPath:y.derivationPath}),"connectNamespacePromise"):b=o(async()=>w.connect(),"connectNamespacePromise");let F=o(async()=>b().then(ae),"connectNamespaceProcess"),{result:ge,cancelled:we}=await h(F,s);return{input:y,result:ge,cancelled:we,supportsEagerConnect:"canEagerConnect"in w}}),N=await Promise.all(E);i(N);let v=N.filter(({result:y,supportsEagerConnect:w})=>y.ok&&w).map(({input:y})=>({namespace:y.namespace,network:y.network}));v.length>0&&C.addWallet(s,v)},"connectNamespaces"))},async disconnect(s,c){let d=n().get(s);if(!d)throw new Error(`You should add ${s} to provider first then call 'disconnect'.`);d.getAll().forEach(i=>{let u=!c||c.includes(i.namespaceId),g=i.state()[0]().connected;if(u&&g)return i.disconnect()}),e.autoConnect&&(c?C.removeNamespacesFromWallet(s,c):C.removeWallets([s]))},async disconnectAll(){let s=Array.from(n().getAll().values()).map(async c=>this.disconnect(c.id));return await Promise.allSettled(s)},async getSigners(s){let c=n().get(s);if(!c)throw new Error(`You should add ${s} to provider first.`);let d=c.info();if(!d)throw new Error("Your provider should have required `info`.");let u=d.metadata.properties?.find(g=>g.name==="signers");if(!u)throw new Error("Your provider should contain signers property.");return u.value.getSigners()},getWalletInfo(s){let c=n().get(s);if(!c)throw new Error(`You should add ${s} to provider first.`);let d=c.info();if(!d)throw new Error("Your provider should have required `info`.");let i={DEFAULT:""},{metadata:u}=d,{extensions:g}=u;Object.keys(g).forEach(w=>{let k=w;if(k==="homepage"&&(i.DEFAULT=g[k]||""),["firefox","chrome","brave","edge"].includes(k)){let F=k.toUpperCase();i[F]=g[k]||""}});let E=u.properties,N=E?.find(w=>w.name==="namespaces"),v=E?.find(w=>w.name==="derivationPath"),y=E?.find(w=>w.name==="details");return{name:u.name,img:u.icon,installLink:i,color:"red",supportedChains:et(c,r.current.allBlockChains),isContractWallet:y?.value?.isContractWallet,mobileWallet:y?.value?.mobileWallet,showOnMobile:y?.value?.showOnMobile,needsNamespace:N?.value,needsDerivationPath:v?.value,isHub:!0,properties:u.properties}},state(s){let c=n().state(),d=n().get(s),i=c[s];if(!i||!d)return{connected:!1,connecting:!1,installed:!1,reachable:!1,accounts:null,network:null,namespaces:new Map};let u=i.namespaces.filter(N=>N.connected).flatMap(N=>N.accounts?.map(v=>x(v))).filter(N=>!!N),g=new Map(Array.from(d.getAll(),([N,v])=>[v.namespaceId,v.state()[0]()]));return{connected:i.connected,connecting:i.connecting,installed:i.installed,reachable:!0,accounts:u,network:null,namespaces:g}},async suggestAndConnect(s,c){let d=n().get(s);if(!d)throw new Error(`You should add ${s} to provider first then call 'suggestAndConnect'.`);let i=d.findByNamespace(c.namespace);throw i?"suggest"in i?c.network?new Error(`Suggest has not been implemented for given chain: ${c.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: ${c.namespace})`)},hubProvider(s){let c=D(e.providers,s);if(!c)throw new Error(`You're trying to access ${s} provider which is not found in hub providers. it may not be registered yet.`);return c}})}o(Q,"useHubAdapter");function ot(e){let t=Q({...e,providers:_(e.providers)});return nt.createElement(W.Provider,{value:t},e.children)}o(ot,"Provider");var rt=ot;import{useContext as st}from"react";function at(){let e=st(W);if(!e)throw Error("useWallet can only be used within the Provider component");return e}o(at,"useWallets");export{R as AutoConnectionAttemptError,B as Events,rt as Provider,S as WalletConnectionAttemptError,at as useWallets};
1
+ var ce=Object.defineProperty;var o=(e,t)=>ce(e,"name",{value:t,configurable:!0});import Ke from"react";import{createContext as ie}from"react";var A="Context hasn't been initialized yet.",le={async connect(){throw new Error(A)},async disconnect(){throw new Error(A)},async disconnectAll(){throw new Error(A)},async suggestAndConnect(){throw new Error(A)},state(){throw new Error(A)},canSwitchNetworkTo(){throw new Error(A)},getWalletInfo(){throw new Error(A)},getSigners(){throw new Error(A)},hubProvider(){throw new Error(A)}},x=ie(le);import{pickVersion as ve}from"@hub3js/core/utils";import{convertEvmBlockchainMetaToEvmChainInfo as Ne,formatAddressWithNetwork as Pe,getBlockChainNameFromId as ke,getSupportedChainsFromProvider as Ee}from"@rango-dev/internal-blockchains";import{AccountId as Ae}from"caip";import{isEvmBlockchain as Ie}from"rango-types";var R=(u=>(u.CONNECTED="connected",u.CONNECTING="connecting",u.REACHABLE="reachable",u.INSTALLED="installed",u.ACCOUNTS="accounts",u.NETWORK="network",u.NAMESPACE_DISCONNECTED="namespace_disconnected",u.PROVIDER_DISCONNECTED="provider_disconnected",u))(R||{});var k="hub-v1-last-connected-wallets";import{CAIP_BITCOIN_CHAIN_ID as pe,CAIP_BITCOINCASH_CHAIN_ID as ue,CAIP_DOGECOIN_CHAIN_ID as me,CAIP_LITECOIN_CHAIN_ID as de,CAIP_ZCASH_CHAIN_ID as fe}from"@hub3js/bip122";import{CAIP_NAMESPACE as he}from"@hub3js/tvm";import{formatAddressWithNetwork as Ce}from"@rango-dev/internal-blockchains";import{CAIP_TRON_CHAIN_ID as we}from"@rango-dev/wallets-core/namespaces/tron";import{AccountId as ge}from"caip";import{Err as H,Ok as q}from"ts-results";function ye(e){return typeof e=="string"?e:["solana","xrpl","stellar"].includes(e.namespace.toLowerCase())?e.namespace.toUpperCase():e.namespace.toLowerCase()==="eip155"?"ETH":e.reference===pe?"BTC":e.reference===fe?"ZCASH":e.reference===de?"LTC":e.reference===me?"DOGE":e.reference===ue?"BCH":e.namespace.toLowerCase()===he?"TON":e.namespace==="sui"||e.reference===we?e.reference.toUpperCase():e.namespace==="starknet"?e.namespace.toUpperCase():e.reference}o(ye,"mapCaipNamespaceToLegacyNetworkName");function S(e){let{chainId:t,address:n}=ge.parse(e),c=ye(t);return Ce(n,c)}o(S,"fromAccountIdToLegacyAddressFormat");async function L(e){return e.reduce(async(t,n)=>{let c=await t;try{let s=await n();return[...c,new q(s)]}catch(s){return[...c,new H(s)]}},Promise.resolve([]))}o(L,"runSequentiallyWithoutFailure");function $(e){return typeof e=="object"&&!Array.isArray(e)}o($,"isConnectResultEvm");function K(e){return Array.isArray(e)}o(K,"isConnectResultSolana");function Y(e){let t=new Set,n=[],c=o((p,m)=>{n=n.filter(u=>u.key!==p?!0:(u.resolve(m),!1))},"removeKeyFromQueue"),s=o(async()=>{let p=n.find(g=>!t.has(g.key));if(!p)return;let{task:m,resolve:u,key:f}=p;t.add(f);try{let g=await m();u(new q(g))}catch(g){e?.onError&&e.onError(g,{removeCurrentKeyFromQueue:()=>c(f,new H(g))}),u(new H(g))}finally{let g=n.findIndex(r=>r.key===f);g>=0&&n.splice(g,1),t.delete(f),s()}},"processQueue");return o(async(p,m)=>new Promise(u=>{n.push({task:p,resolve:u,key:m}),s()}),"queueTask")}o(Y,"createQueue");function Q(e){return!!e.allBlockChains?.length&&!!e.autoConnect}o(Q,"shouldTryAutoConnect");var T=class{static{o(this,"Persistor")}getItem(t){let n=localStorage.getItem(t);return n?JSON.parse(n):null}setItem(t,n){localStorage.setItem(t,JSON.stringify(n))}removeItem(t){localStorage.removeItem(t)}};var I=class{static{o(this,"LastConnectedWalletsFromStorage")}#e;constructor(t){this.#e=t}addWallet(t,n){if(this.#e===k)return this.#t(t,n);throw new Error("Not implemented")}removeWallets(t){if(this.#e===k)return this.#n(t);throw new Error("Not implemented")}list(){if(this.#e===k)return this.#r();throw new Error("Not implemented")}removeNamespacesFromWallet(t,n){if(this.#e===k)return this.#o(t,n);throw new Error("Not implemented")}#r(){return new T().getItem(k)||{}}#t(t,n){let c=new T,s=c.getItem(this.#e)||{},h=n;if(s[t]){let p=s[t];h=p.concat(n.filter(m=>!p.some(u=>u.namespace===m.namespace)))}c.setItem(this.#e,{...s,[t]:h})}#n(t){let n=new T,c=n.getItem(this.#e)||{};if(!t){n.setItem(this.#e,{});return}t.forEach(s=>{c[s]&&delete c[s]}),n.setItem(this.#e,c)}#o(t,n){let p=(new T().getItem(this.#e)||{})[t]?.filter(m=>!n.includes(m.namespace));this.#n([t]),p?.length>0&&this.#t(t,p)}};function F(e){return e.map(t=>{try{return ve(t,"1.0.0")[1]}catch{throw new Error("Legacy providers aren't supported anymore. Expected a provider with version '1.0.0'.")}})}o(F,"getHubProviders");function O(e,t){return e.find(n=>n.id===t)}o(O,"findProviderByType");var Te=new I(k);function V(e,t,n,c){let s=e.get(t.provider);if(!s)throw new Error("Currently all the events have assigned to a provider. The event doesn't include one.",{cause:t});let h=t.namespace,p=h?s.findByNamespace(h):void 0,m=null,u=null,f;if(p){let[l]=p.state();m=l().accounts,u=l().network,c.lastConnectAttemptParams[t.provider]&&(f=c.lastConnectAttemptParams[t.provider].find(d=>d.namespace===h)?.derivationPath)}let[g]=s.state(),r={connected:g().connected,connecting:g().connecting,installed:g().installed,accounts:m,network:u,reachable:!0,derivationPath:f},a=s.info()?.metadata.properties?.find(l=>l.name==="details"),i={supportedBlockchains:Ee(s,c.allBlockChains),isContractWallet:a?.value?.isContractWallet??!1,isHub:!0,namespace:h};switch(t.type){case"provider_detected":n(t.provider,"installed",!0,r,i);break;case"provider_connecting":n(t.provider,"connecting",t.value,r,i);break;case"provider_connected":n(t.provider,"connected",!0,r,i);break;case"provider_disconnected":n(t.provider,"provider_disconnected",t.provider,r,i),n(t.provider,"connected",!1,r,i),n(t.provider,"accounts",null,r,i);break;case"namespace_disconnected":Te.removeNamespacesFromWallet(t.provider,[t.namespace]),n(t.provider,"namespace_disconnected",t.namespace,r,{...i,namespace:t.namespace});break;case"namespace_connected":case"namespace_account_switched":{t.type==="namespace_account_switched"&&n(t.provider,"namespace_disconnected",t.namespace,r,i);let l=[];i.isContractWallet?l=t.accounts.map(d=>{let{chainId:w,address:P}=Ae.parse(d);if(typeof w=="string")throw new Error("Should be in CAIP format");let v=ke(w.reference,i.supportedBlockchains);return v?Pe(P,v):S(d)}):l=t.accounts.map(d=>S(d)),n(t.provider,"accounts",l,r,{...i,namespace:t.namespace})}break;case"namespace_network_switched":n(t.provider,"network",t.network,r,{...i,namespace:t.namespace});break}}o(V,"mapHubEventsToLegacy");function _(e,t){if(!e.network)return;let n=t.filter(Ie);return Ne(n)[e.network]}o(_,"convertNamespaceNetworkToEvmChainId");function G(e,t){return _(e,t)||e.network}o(G,"tryConvertNamespaceNetworkToChainInfo");function z(e){return $(e)?{accounts:e.accounts,network:e.network}:K(e)?{accounts:e,network:null}:{accounts:[e],network:null}}o(z,"transformHubResultToLegacyResult");function X(e,t){let n=e.getAll();t.filter(s=>!n.get(s.id)).forEach(s=>{e.add(s.id,s),s.init()}),n.forEach(s=>{t.some(p=>p.id===s.id)||e.remove(s.id)})}o(X,"synchronizeHubWithConfigProviders");function J(e){return e.namespaceId==="Solana"}o(J,"isSolanaNamespace");function W(e){return e.namespaceId==="EVM"}o(W,"isEvmNamespace");function Z(e){return e.namespaceId==="UTXO"}o(Z,"isUtxoNamespace");import{isUserRejectionError as _e,WalletConnectionError as De}from"@hub3js/std/utils";import{getSupportedChainsFromNamespace as je,getSupportedChainsFromProvider as Me}from"@rango-dev/internal-blockchains";import{useEffect as D,useRef as j,useState as Ue}from"react";import{Ok as qe,Result as $e}from"ts-results";import{debug as be}from"@rango-dev/logging-core";function ee(e,t,n){let c=n instanceof Error?n:new Error(String(n));be(c,{context:{method:e,args:t},tags:{type:"wallet-error"}})}o(ee,"logError");function Se(e,t){return(...n)=>{try{let c=t(...n);return c instanceof Promise?c.catch(s=>{throw ee(e,n,s),s}):c}catch(c){throw ee(e,n,c),c}}}o(Se,"withErrorLogging");function te(e){let t=Object.entries(e).map(([n,c])=>[n,Se(n,c.bind(e))]);return Object.fromEntries(t)}o(te,"withErrorLoggingApi");import{Result as xe}from"ts-results";function We(e){return e.namespace==="EVM"}o(We,"isEvmNamespaceInput");var B=new I(k);async function Be(e,t,n){let{getHub:c,allBlockChains:s}=n,h=c().get(e);if(!h)throw new Error(`You should add ${e} to provider first then call 'connect'.`);if(!t)throw new Error("Passing namespace to `connect` is required. ");let p=[];t.forEach(r=>{let a=r.namespace,i=h.findByNamespace(a);if(!i)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${r.namespace})`);p.push([r,i])});let m=p.map(([r,a])=>{let l=(We(r)?_(r,s||[]):void 0)||r.network;return async()=>{let d;W(a)?d=o(async()=>a.connect(l),"connectNamespacePromise"):d=o(async()=>a.connect(),"connectNamespacePromise");try{await d()}catch(w){throw w instanceof Error?w:new Error(w)}}}),u=await L(m),f=p.filter((r,a)=>u[a].err).map(r=>r[0]);if(f.length>0&&B.removeNamespacesFromWallet(e,f.map(r=>r.namespace)),!u.some(r=>r.ok))throw new Error(`No namespace connected for ${e}`);return xe.all(...u.filter(r=>r.ok)).unwrap()}o(Be,"eagerConnect");async function Re(e,t){let n=[],c=[],s=[],h=[];e.forEach(m=>{let u=t.findByNamespace(m.namespace);u?(n.push(m),h.push(async()=>await u.canEagerConnect())):s.push(m)});let p=await L(h);return n.forEach((m,u)=>{p[u].ok&&p[u].val?c.push(m):s.push(m)}),{successNamespaces:c,failedNamespaces:s}}o(Re,"tryRunCanEagerConnect");async function ne(e){let{getHub:t,allBlockChains:n,wallets:c}=e,s=B.list(),h=Object.keys(s),p=[];if(h.length){let m=[],u=c?.map(f=>typeof f=="string"?f:f.id);h.forEach(async f=>{if(u&&!u.includes(f)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",f),p.push(f);return}let g=t().get(f),r=s[f].map(l=>({namespace:l.namespace,network:l.network}));if(!r.length||!g){p.push(f);return}let{successNamespaces:a,failedNamespaces:i}=await Re(r,g);if(a.length)i.length&&B.removeNamespacesFromWallet(g.id,i.map(l=>l.namespace));else{p.push(f);return}m.push(Be(f,a,{allBlockChains:n,getHub:t}).catch(l=>console.warn(l)))}),B.removeWallets(p),await Promise.all(m)}}o(ne,"autoConnect");import{useEffect as He,useRef as Le}from"react";function re(e){let t=Le(!1);He(()=>{Q(e)&&!t.current&&(t.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}o(re,"useAutoConnect");import{createStore as Fe,Hub as Oe}from"@hub3js/core";import{useRef as oe}from"react";function se(e){let t=oe(null),n=oe(null);function c(){let p=new Oe({store:s()});return e.forEach(m=>{p.add(m.id,m)}),n.current=p,p}o(c,"createHub");function s(){if(t.current!==null)return t.current;let p=Fe();return t.current=p,p}o(s,"getStore");function h(){let p=n.current?.getAll();return!n.current||!p?c():(X(n.current,e),n.current)}return o(h,"getHub"),{getStore:s,getHub:h}}o(se,"useHubRefs");function M(e){let{getStore:t,getHub:n}=se(e.providers),[,c]=Ue(0),s=j({onUpdateState:e.onUpdateState,allBlockChains:e.allBlockChains}),h=j(!1),p=j({}),m=o((r,a)=>{p.current[r]=a||[]},"updateLastConnectAttemptParams"),u=Y({onError:(r,a)=>{let i=r instanceof De?r.cause:r;_e(i)&&a.removeCurrentKeyFromQueue()}});D(()=>{s.current={onUpdateState:e.onUpdateState,allBlockChains:e.allBlockChains}},[e]),D(()=>{t().subscribe(r=>{if(s.current.onUpdateState)try{V(n(),r,s.current.onUpdateState,{allBlockChains:s.current.allBlockChains,lastConnectAttemptParams:p.current})}catch(a){console.error(a)}c(a=>a+1)}).flushEvents()},[]),D(()=>{h.current||!e.allBlockChains?.length||(n().init(e.configs?.walletOptions),c(r=>r+1),h.current=!0)},[e.allBlockChains,e.configs?.walletOptions]),re({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{ne({allBlockChains:e.allBlockChains,getHub:n,wallets:e.configs?.wallets})}});let f=new I(k);return te({canSwitchNetworkTo(r,a,i){let l=n().get(r);if(!l)return!1;if(!i)throw new Error("Passing namespace to `canSwitchNetworkTo` is required.");let d=l.findByNamespace(i.namespace);if(!d)throw new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${i.namespace})`);if(!("canSwitchNetwork"in d))return!1;let w=l.info()?.metadata?.properties?.find(N=>N.name==="namespaces");if(!s.current.allBlockChains)throw new Error("Blockchains are not available");let P=w?.value.data.find(N=>N.value===i.namespace);if(!P)throw new Error(`NamespaceMeta is not defined for requested namespace: ${i.namespace}`);let v=je(P,s.current.allBlockChains);return d.canSwitchNetwork({network:a,supportedChains:v})},async connect(r,a){let i=n().get(r);if(!i)throw new Error(`You should add ${r} to provider first then call 'connect'.`);if(!a)throw new Error("Passing namespace to `connect` is required.");m(r,a);let l=[];a.forEach(C=>{let y=C.namespace,E=i.findByNamespace(y);if(!E)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${C.namespace})`);l.push([C,E])});let d=l.map(async([C,y])=>{let E=G(C,e.allBlockChains||[]),b;return J(y)?b=o(async()=>y.connect({derivationPath:C.derivationPath}),"connectNamespacePromise"):W(y)?b=o(async()=>y.connect(E,{derivationPath:C.derivationPath}),"connectNamespacePromise"):Z(y)?b=o(async()=>y.connect({derivationPath:C.derivationPath}),"connectNamespacePromise"):b=o(async()=>y.connect(),"connectNamespacePromise"),u(o(async()=>b().then(z).then(ae=>({response:ae,input:{namespace:C.namespace,network:C.network,supportsEagerConnect:"canEagerConnect"in y}})),"connectNamespaceProcess"),r)}),w=await Promise.all(d),P=w.filter(C=>C.ok).filter(C=>C.val.input.supportsEagerConnect).map(C=>({namespace:C.val.input.namespace,network:C.val.input.network}));P.length>0&&f.addWallet(r,P);let v=w.map(C=>C.andThen(y=>new qe(y.response))),N=$e.all(...v);if(N.err)throw N.val;return N.unwrap()},async disconnect(r,a){let i=n().get(r);if(!i)throw new Error(`You should add ${r} to provider first then call 'disconnect'.`);i.getAll().forEach(l=>{let d=!a||a.includes(l.namespaceId),w=l.state()[0]().connected;if(d&&w)return l.disconnect()}),e.autoConnect&&(a?f.removeNamespacesFromWallet(r,a):f.removeWallets([r]))},async disconnectAll(){let r=Array.from(n().getAll().values()).map(async a=>this.disconnect(a.id));return await Promise.allSettled(r)},async getSigners(r){let a=n().get(r);if(!a)throw new Error(`You should add ${r} to provider first.`);let i=a.info();if(!i)throw new Error("Your provider should have required `info`.");let d=i.metadata.properties?.find(w=>w.name==="signers");if(!d)throw new Error("Your provider should contain signers property.");return d.value.getSigners()},getWalletInfo(r){let a=n().get(r);if(!a)throw new Error(`You should add ${r} to provider first.`);let i=a.info();if(!i)throw new Error("Your provider should have required `info`.");let l={DEFAULT:""},{metadata:d}=i,{extensions:w}=d;Object.keys(w).forEach(y=>{let E=y;if(E==="homepage"&&(l.DEFAULT=w[E]||""),["firefox","chrome","brave","edge"].includes(E)){let U=E.toUpperCase();l[U]=w[E]||""}});let P=d.properties,v=P?.find(y=>y.name==="namespaces"),N=P?.find(y=>y.name==="derivationPath"),C=P?.find(y=>y.name==="details");return{name:d.name,img:d.icon,installLink:l,color:"red",supportedChains:Me(a,s.current.allBlockChains),isContractWallet:C?.value?.isContractWallet,mobileWallet:C?.value?.mobileWallet,showOnMobile:C?.value?.showOnMobile,needsNamespace:v?.value,needsDerivationPath:N?.value,isHub:!0,properties:d.properties}},state(r){let a=n().state(),i=n().get(r),l=a[r];if(!l||!i)return{connected:!1,connecting:!1,installed:!1,reachable:!1,accounts:null,network:null,namespaces:new Map};let d=l.namespaces.filter(v=>v.connected).flatMap(v=>v.accounts?.map(N=>S(N))).filter(v=>!!v),w=new Map(Array.from(i.getAll(),([v,N])=>[N.namespaceId,N.state()[0]()]));return{connected:l.connected,connecting:l.connecting,installed:l.installed,reachable:!0,accounts:d,network:null,namespaces:w}},async suggestAndConnect(r,a){let i=n().get(r);if(!i)throw new Error(`You should add ${r} to provider first then call 'suggestAndConnect'.`);let l=i.findByNamespace(a.namespace);throw l?"suggest"in l?a.network?new Error(`Suggest has not been implemented for given chain: ${a.network}`):new Error("You should pass network to the suggest and connect"):new Error("Suggest is not implemented on the provider"):new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${a.namespace})`)},hubProvider(r){let a=O(e.providers,r);if(!a)throw new Error(`You're trying to access ${r} provider which is not found in hub providers. it may not be registered yet.`);return a}})}o(M,"useHubAdapter");function Ye(e){let t=M({...e,providers:F(e.providers)});return Ke.createElement(x.Provider,{value:t},e.children)}o(Ye,"Provider");var Qe=Ye;import{useContext as Ve}from"react";function Ge(){let e=Ve(x);if(!e)throw Error("useWallet can only be used within the Provider component");return e}o(Ge,"useWallets");export{R as Events,Qe as Provider,Ge as useWallets};
2
2
  //# sourceMappingURL=index.js.map