@rango-dev/wallets-react 0.0.0-experimental-4a80eac4-20260701 → 0.0.0-experimental-99f1781b-20260920
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.
- package/CHANGELOG.md +38 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/errors.d.ts +60 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.test.d.ts +2 -0
- package/dist/errors.test.d.ts.map +1 -0
- package/dist/helpers.d.ts +1 -1
- package/dist/hooks.d.ts +3 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hub/autoConnect.d.ts +4 -5
- package/dist/hub/autoConnect.d.ts.map +1 -1
- package/dist/hub/autoConnect.test.d.ts +2 -0
- package/dist/hub/autoConnect.test.d.ts.map +1 -0
- package/dist/hub/constants.d.ts +0 -1
- package/dist/hub/constants.d.ts.map +1 -1
- package/dist/hub/helpers.d.ts +27 -3
- package/dist/hub/helpers.d.ts.map +1 -1
- package/dist/hub/helpers.test.d.ts +2 -0
- package/dist/hub/helpers.test.d.ts.map +1 -0
- package/dist/hub/lastConnectedWallets.d.ts +1 -2
- package/dist/hub/lastConnectedWallets.d.ts.map +1 -1
- package/dist/hub/mod.d.ts +1 -1
- package/dist/hub/mod.d.ts.map +1 -1
- package/dist/hub/persistor.d.ts +11 -0
- package/dist/hub/persistor.d.ts.map +1 -0
- package/dist/{legacy → hub}/useAutoConnect.d.ts +1 -1
- package/dist/hub/useAutoConnect.d.ts.map +1 -0
- package/dist/hub/useHubAdapter.d.ts +1 -5
- package/dist/hub/useHubAdapter.d.ts.map +1 -1
- package/dist/hub/useHubAdapter.test.d.ts +2 -0
- package/dist/hub/useHubAdapter.test.d.ts.map +1 -0
- package/dist/hub/utils.d.ts +16 -15
- package/dist/hub/utils.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/legacy/mod.d.ts +2 -4
- package/dist/legacy/mod.d.ts.map +1 -1
- package/dist/legacy/types.d.ts +94 -69
- package/dist/legacy/types.d.ts.map +1 -1
- package/dist/provider.d.ts +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/types.d.ts +39 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +15 -16
- package/src/{legacy/context.ts → context.ts} +0 -3
- package/src/errors.test.ts +349 -0
- package/src/errors.ts +124 -0
- package/src/helpers.ts +1 -1
- package/src/hooks.ts +13 -0
- package/src/hub/autoConnect.test.ts +193 -0
- package/src/hub/autoConnect.ts +60 -56
- package/src/hub/constants.ts +0 -1
- package/src/hub/helpers.test.ts +138 -0
- package/src/hub/helpers.ts +91 -20
- package/src/hub/lastConnectedWallets.ts +3 -51
- package/src/hub/mod.ts +1 -5
- package/src/hub/persistor.ts +19 -0
- package/src/{legacy → hub}/useAutoConnect.ts +2 -2
- package/src/hub/useHubAdapter.test.ts +186 -0
- package/src/hub/useHubAdapter.ts +170 -170
- package/src/hub/utils.ts +99 -91
- package/src/index.ts +6 -2
- package/src/legacy/mod.ts +6 -9
- package/src/legacy/types.ts +117 -97
- package/src/provider.tsx +8 -4
- package/src/types.ts +58 -0
- package/dist/helpers/index.d.ts +0 -2
- package/dist/helpers/index.d.ts.map +0 -1
- package/dist/helpers/index.js +0 -2
- package/dist/helpers/index.js.map +0 -7
- package/dist/legacy/autoConnect.d.ts +0 -8
- package/dist/legacy/autoConnect.d.ts.map +0 -1
- package/dist/legacy/context.d.ts.map +0 -1
- package/dist/legacy/helpers.d.ts +0 -23
- package/dist/legacy/helpers.d.ts.map +0 -1
- package/dist/legacy/hooks.d.ts +0 -10
- package/dist/legacy/hooks.d.ts.map +0 -1
- package/dist/legacy/useAutoConnect.d.ts.map +0 -1
- package/dist/legacy/useLegacyProviders.d.ts +0 -7
- package/dist/legacy/useLegacyProviders.d.ts.map +0 -1
- package/dist/legacy/utils.d.ts +0 -3
- package/dist/legacy/utils.d.ts.map +0 -1
- package/dist/test-utils/fixtures.d.ts +0 -14
- package/dist/test-utils/fixtures.d.ts.map +0 -1
- package/dist/useProviders.d.ts +0 -4
- package/dist/useProviders.d.ts.map +0 -1
- package/dist/wallets-react.build.json +0 -1
- package/helpers/package.json +0 -8
- package/src/helpers/index.ts +0 -1
- package/src/legacy/autoConnect.ts +0 -66
- package/src/legacy/helpers.ts +0 -183
- package/src/legacy/hooks.ts +0 -54
- package/src/legacy/useLegacyProviders.ts +0 -244
- package/src/legacy/utils.ts +0 -7
- package/src/test-utils/fixtures.ts +0 -164
- package/src/useProviders.ts +0 -121
- /package/dist/{legacy/context.d.ts → context.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,41 @@
|
|
|
1
|
+
## [0.49.1](https://github.com/rango-exchange/rango-client/compare/wallets-react@0.49.0...wallets-react@0.49.1) (2026-09-16)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* ship dist and changelog when publishing with npm ([0a8bd5d](https://github.com/rango-exchange/rango-client/commit/0a8bd5d779bd652b6ca7195cda4ce465ba196f0e))
|
|
7
|
+
# [0.49.0](https://github.com/rango-exchange/rango-client/compare/wallets-react@0.48.0...wallets-react@0.49.0) (2026-09-15)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* add support for ledger wallet ([eacfd0b](https://github.com/rango-exchange/rango-client/commit/eacfd0bd32f87629e6cc9f6170368e1e208a6bd0))
|
|
13
|
+
* migrate wallet connect provider to hub ([efa6aef](https://github.com/rango-exchange/rango-client/commit/efa6aeff2c9dc406707024417c2307f3c345b71d))
|
|
14
|
+
# [0.48.0](https://github.com/rango-exchange/rango-client/compare/wallets-react@0.47.0...wallets-react@0.48.0) (2026-08-18)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* support UTXO namespace derivation paths in hub connect ([13be2ed](https://github.com/rango-exchange/rango-client/commit/13be2edddf582913b6dd7f986be8654b55df9bfc))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# [0.47.0](https://github.com/rango-exchange/rango-client/compare/wallets-react@0.46.0...wallets-react@0.47.0) (2026-07-07)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* add wallet error logging ([a0a57bd](https://github.com/rango-exchange/rango-client/commit/a0a57bd733f5920f99c38fed92092143c7720a9a))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* migrate ctrl(formerly xdefi) wallet ([c621ee8](https://github.com/rango-exchange/rango-client/commit/c621ee85eb9c6ee4ca548e0fbf5bd8b3e285513c))
|
|
34
|
+
* remove Cosmos blockchain support ([2b51ea3](https://github.com/rango-exchange/rango-client/commit/2b51ea3aa202f3ea049492ed90d00d97c552a490))
|
|
35
|
+
* **wallets:** migrate provider-safe to hub3 ([2e409e7](https://github.com/rango-exchange/rango-client/commit/2e409e795d0bb8b975e359fa96acc6ecfe084cbb))
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
1
39
|
# [0.46.0](https://github.com/rango-exchange/rango-client/compare/wallets-react@0.45.1...wallets-react@0.46.0) (2026-05-31)
|
|
2
40
|
|
|
3
41
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmClD,eAAO,MAAM,aAAa,0CAAiD,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { NamespaceInputForConnect } from './legacy/types.js';
|
|
2
|
+
import type { Option, Result } from 'ts-results';
|
|
3
|
+
import { WalletConnectionError } from '@hub3js/std/utils';
|
|
4
|
+
export type WalletConnectionAttemptErrorOptions = {
|
|
5
|
+
errors: unknown[];
|
|
6
|
+
requestedNamespaces: NamespaceInputForConnect[];
|
|
7
|
+
message?: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* A connection attempt that failed.
|
|
11
|
+
*
|
|
12
|
+
* - `errors` holds every failed namespace's `WalletConnectionError`, in request order,
|
|
13
|
+
* followed by any other value thrown during the attempt.
|
|
14
|
+
* - `requestedNamespaces` lists every namespace the attempt requested, in request
|
|
15
|
+
* order, cancelled ones included, with the network and derivation path passed for it.
|
|
16
|
+
* - `message` is the `message` passed in, or else the first entry's.
|
|
17
|
+
*
|
|
18
|
+
* It has no `code` and no `cause`: read them from each entry.
|
|
19
|
+
*/
|
|
20
|
+
export declare class WalletConnectionAttemptError extends AggregateError {
|
|
21
|
+
name: string;
|
|
22
|
+
errors: unknown[];
|
|
23
|
+
readonly requestedNamespaces: NamespaceInputForConnect[];
|
|
24
|
+
constructor(options: WalletConnectionAttemptErrorOptions);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* An auto-connect attempt that failed. Auto-connect sends it with
|
|
28
|
+
* `Events.AUTO_CONNECT_FAILED`.
|
|
29
|
+
*/
|
|
30
|
+
export declare class AutoConnectionAttemptError extends WalletConnectionAttemptError {
|
|
31
|
+
name: string;
|
|
32
|
+
}
|
|
33
|
+
export type NamespaceConnectAttempt<T = unknown> = {
|
|
34
|
+
input: NamespaceInputForConnect;
|
|
35
|
+
result: Result<T, unknown>;
|
|
36
|
+
cancelled?: boolean;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Lists each failed namespace's `WalletConnectionError` in request order, leaving
|
|
40
|
+
* cancelled namespaces out. A failure that isn't one yet (e.g. from an integrator's
|
|
41
|
+
* provider, or a before-hook) is wrapped in one for its namespace.
|
|
42
|
+
*/
|
|
43
|
+
export declare function collectConnectionFailures(attempts: NamespaceConnectAttempt[]): WalletConnectionError[];
|
|
44
|
+
/**
|
|
45
|
+
* Builds the error `connect` throws, or returns `undefined` when every namespace
|
|
46
|
+
* connected and nothing else was thrown. `nonNamespaceError` holds the value thrown
|
|
47
|
+
* outside any namespace, if any, such as a config error; it's added after the
|
|
48
|
+
* namespace failures, unchanged.
|
|
49
|
+
*/
|
|
50
|
+
export declare function buildConnectionAttemptError(params: {
|
|
51
|
+
requestedNamespaces: NamespaceInputForConnect[];
|
|
52
|
+
attempts: NamespaceConnectAttempt[];
|
|
53
|
+
nonNamespaceError: Option<unknown>;
|
|
54
|
+
}): WalletConnectionAttemptError | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Builds the value of `Events.AUTO_CONNECT_FAILED` from the namespaces auto-connect
|
|
57
|
+
* tried to connect for a wallet. Returns `undefined` when none of them failed.
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildAutoConnectionAttemptError(attempts: NamespaceConnectAttempt[]): AutoConnectionAttemptError | undefined;
|
|
60
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,mBAAmB,EAAE,wBAAwB,EAAE,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAcF;;;;;;;;;;GAUG;AACH,qBAAa,4BAA6B,SAAQ,cAAc;IAC9D,IAAI,SAAkC;IAC9B,MAAM,EAAE,OAAO,EAAE,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,wBAAwB,EAAE,CAAC;gBAE7C,OAAO,EAAE,mCAAmC;CAKzD;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,4BAA4B;IAC1E,IAAI,SAAgC;CACrC;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,GAAG,OAAO,IAAI;IACjD,KAAK,EAAE,wBAAwB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAE3B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,uBAAuB,EAAE,GAClC,qBAAqB,EAAE,CAczB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,mBAAmB,EAAE,wBAAwB,EAAE,CAAC;IAChD,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CACpC,GAAG,4BAA4B,GAAG,SAAS,CAW3C;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,uBAAuB,EAAE,GAClC,0BAA0B,GAAG,SAAS,CAUxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../src/errors.test.ts"],"names":[],"mappings":""}
|
package/dist/helpers.d.ts
CHANGED
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,wBAAgB,UAAU,IAAI,eAAe,CAM5C"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { UseAdapterParams } from './useHubAdapter.js';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type { WalletType } from '@rango-dev/wallets-shared';
|
|
5
|
-
import { Provider } from '@hub3js/core';
|
|
2
|
+
import type { EventHandler } from '../legacy/types.js';
|
|
3
|
+
import type { Hub, Provider, WalletType } from '@hub3js/core';
|
|
6
4
|
export declare function autoConnect(deps: {
|
|
7
5
|
getHub: () => Hub;
|
|
8
6
|
allBlockChains: UseAdapterParams['allBlockChains'];
|
|
9
|
-
wallets?: (WalletType |
|
|
7
|
+
wallets?: (WalletType | Provider)[];
|
|
8
|
+
onUpdateState?: EventHandler;
|
|
10
9
|
}): Promise<void>;
|
|
11
10
|
//# 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;
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoConnect.test.d.ts","sourceRoot":"","sources":["../../src/hub/autoConnect.test.ts"],"names":[],"mappings":""}
|
package/dist/hub/constants.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/hub/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/hub/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,kCAAkC,CAAC"}
|
package/dist/hub/helpers.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { AllProxiedNamespaces } from './types.js';
|
|
2
|
+
import type { NamespaceConnectAttempt } from '../errors.js';
|
|
3
|
+
import type { NamespaceInputForConnect } from '../legacy/types.js';
|
|
4
|
+
import type { ProviderProps } from '../types.js';
|
|
2
5
|
import type { Accounts, AccountsWithActiveChain } from '@hub3js/std/types';
|
|
3
6
|
import type { Result } from 'ts-results';
|
|
4
7
|
import { type ChainIdParams } from 'caip';
|
|
@@ -12,11 +15,21 @@ export declare function mapCaipNamespaceToLegacyNetworkName(chainId: ChainIdPara
|
|
|
12
15
|
*/
|
|
13
16
|
export declare function fromAccountIdToLegacyAddressFormat(account: string): string;
|
|
14
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
25
|
*/
|
|
17
26
|
export declare function runSequentiallyWithoutFailure<R>(promises: Array<() => Promise<R>>): Promise<Result<R, unknown>[]>;
|
|
18
27
|
export declare function isConnectResultEvm(result: Awaited<ReturnType<AllProxiedNamespaces['connect']>>): result is AccountsWithActiveChain;
|
|
19
28
|
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
|
+
};
|
|
20
33
|
/**
|
|
21
34
|
* Creates a queue manager that ensures sequential execution of tasks by key.
|
|
22
35
|
* When multiple tasks with the same key are queued, they are executed one at a time
|
|
@@ -26,7 +39,18 @@ export declare function isConnectResultSolana(result: Awaited<ReturnType<AllProx
|
|
|
26
39
|
*/
|
|
27
40
|
export declare function createQueue(options?: {
|
|
28
41
|
onError?: (error: unknown, actions: {
|
|
29
|
-
|
|
42
|
+
cancelWaitingItems: () => void;
|
|
30
43
|
}) => void;
|
|
31
|
-
}): <T>(task: () => Promise<T>, key: string) => Promise<
|
|
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[]>;
|
|
55
|
+
export declare function shouldTryAutoConnect(props: Pick<ProviderProps, 'allBlockChains' | 'autoConnect'>): boolean;
|
|
32
56
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/hub/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.test.d.ts","sourceRoot":"","sources":["../../src/hub/helpers.test.ts"],"names":[],"mappings":""}
|
|
@@ -6,10 +6,9 @@ export interface NamespaceInput {
|
|
|
6
6
|
export interface LastConnectedWalletsStorage {
|
|
7
7
|
[providerId: string]: NamespaceInput[];
|
|
8
8
|
}
|
|
9
|
-
export type LegacyLastConnectedWalletsStorage = string[];
|
|
10
9
|
/**
|
|
11
10
|
* We are doing some certain actions on storage for `last-connected-wallets` key.
|
|
12
|
-
* This class helps us to define them in one place
|
|
11
|
+
* This class helps us to define them in one place.
|
|
13
12
|
*/
|
|
14
13
|
export declare class LastConnectedWalletsFromStorage {
|
|
15
14
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lastConnectedWallets.d.ts","sourceRoot":"","sources":["../../src/hub/lastConnectedWallets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"lastConnectedWallets.d.ts","sourceRoot":"","sources":["../../src/hub/lastConnectedWallets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAKpD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CACxC;AAED;;;GAGG;AACH,qBAAa,+BAA+B;;gBAG9B,UAAU,EAAE,MAAM;IAI9B,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI;IAMjE,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAM3C,IAAI,IAAI,2BAA2B;IAMnC,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;CA0EtE"}
|
package/dist/hub/mod.d.ts
CHANGED
package/dist/hub/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/hub/mod.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/hub/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface PersistStorage<T> {
|
|
2
|
+
getItem: (name: string) => T | null;
|
|
3
|
+
setItem: (name: string, value: T) => void;
|
|
4
|
+
removeItem: (name: string) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare class Persistor<T> implements PersistStorage<T> {
|
|
7
|
+
getItem(name: string): T | null;
|
|
8
|
+
setItem(name: string, value: T): void;
|
|
9
|
+
removeItem(name: string): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=persistor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistor.d.ts","sourceRoot":"","sources":["../../src/hub/persistor.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,EAAE,MAAM;IAKpB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAG9B,UAAU,CAAC,IAAI,EAAE,MAAM;CAGxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutoConnect.d.ts","sourceRoot":"","sources":["../../src/hub/useAutoConnect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,GAAG,aAAa,CAAC,GAAG;IAC7D;;OAEG;IACH,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC,QAUF"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import type { ProviderContext } from '../
|
|
1
|
+
import type { ProviderContext, ProviderProps } from '../types.js';
|
|
2
2
|
import type { Provider } from '@hub3js/core';
|
|
3
|
-
import type { VersionedProviders } from '@hub3js/core/utils';
|
|
4
|
-
import { type ProviderProps } from '../legacy/mod.js';
|
|
5
3
|
export type UseAdapterParams = Omit<ProviderProps, 'providers'> & {
|
|
6
4
|
providers: Provider[];
|
|
7
|
-
/** This is only will be used to access some parts of the legacy provider that doesn't exists in Hub. */
|
|
8
|
-
allVersionedProviders: VersionedProviders[];
|
|
9
5
|
};
|
|
10
6
|
export declare function useHubAdapter(params: UseAdapterParams): ProviderContext;
|
|
11
7
|
//# sourceMappingURL=useHubAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHubAdapter.d.ts","sourceRoot":"","sources":["../../src/hub/useHubAdapter.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHubAdapter.test.d.ts","sourceRoot":"","sources":["../../src/hub/useHubAdapter.test.ts"],"names":[],"mappings":""}
|
package/dist/hub/utils.d.ts
CHANGED
|
@@ -1,35 +1,33 @@
|
|
|
1
1
|
import type { AllProxiedNamespaces } from './types.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ConnectResult, EventInfo, NamespaceInputForConnect, EventHandler as WalletEventHandler, WalletState } from '../legacy/mod.js';
|
|
3
|
+
import type { ProviderProps } from '../types.js';
|
|
4
|
+
import type { UtxoActions } from '@hub3js/bip122';
|
|
5
|
+
import type { Hub, Provider, ProxiedNamespace, WalletType } from '@hub3js/core';
|
|
3
6
|
import type { Event } from '@hub3js/core/store';
|
|
4
|
-
import type { EvmActions } from '@hub3js/evm';
|
|
7
|
+
import type { Chain as AddEthereumChainParameter, EvmActions } from '@hub3js/evm';
|
|
5
8
|
import type { SolanaActions } from '@hub3js/solana';
|
|
6
|
-
import type { LegacyNamespaceInputForConnect, LegacyProviderInterface, LegacyEventHandler as WalletEventHandler } from '@rango-dev/wallets-core/legacy';
|
|
7
|
-
import type { SuiActions } from '@rango-dev/wallets-core/namespaces/sui';
|
|
8
|
-
import type { UtxoActions } from '@rango-dev/wallets-core/namespaces/utxo';
|
|
9
9
|
import { type VersionedProviders } from '@hub3js/core/utils';
|
|
10
|
-
import { type AddEthereumChainParameter, type WalletType } from '@rango-dev/wallets-shared';
|
|
11
10
|
import { type BlockchainMeta } from 'rango-types';
|
|
12
|
-
|
|
13
|
-
export declare function separateLegacyAndHubProviders(providers: VersionedProviders[]): [LegacyProviderInterface[], Provider[]];
|
|
11
|
+
export declare function getHubProviders(providers: VersionedProviders[]): Provider[];
|
|
14
12
|
export declare function findProviderByType(providers: Provider[], type: string): Provider | undefined;
|
|
15
|
-
export declare function
|
|
13
|
+
export declare function getProviderCoreState(provider: Provider): WalletState;
|
|
14
|
+
export declare function getProviderEventInfo(provider: Provider, allBlockChains: ProviderProps['allBlockChains']): EventInfo;
|
|
16
15
|
export declare function mapHubEventsToLegacy(hub: Hub, event: Event, onUpdateState: WalletEventHandler, metadata: {
|
|
17
16
|
allBlockChains: ProviderProps['allBlockChains'];
|
|
18
17
|
lastConnectAttemptParams: {
|
|
19
|
-
[type: WalletType]:
|
|
18
|
+
[type: WalletType]: NamespaceInputForConnect[];
|
|
20
19
|
};
|
|
21
20
|
}): void;
|
|
22
|
-
export declare function getAllLegacyProviders(allProviders: VersionedProviders[]): LegacyProviderInterface[];
|
|
23
21
|
/**
|
|
24
22
|
* In legacy mode, for those who have switch network functionality (like evm), we are using an enum for network names
|
|
25
23
|
* this enum only has meaning for us, and when we are going to connect an instance (e.g. window.ethereum) we should pass chain id.
|
|
26
24
|
*/
|
|
27
|
-
export declare function convertNamespaceNetworkToEvmChainId(namespace:
|
|
25
|
+
export declare function convertNamespaceNetworkToEvmChainId(namespace: NamespaceInputForConnect, meta: BlockchainMeta[]): AddEthereumChainParameter | undefined;
|
|
28
26
|
/**
|
|
29
27
|
* We are passing an string for chain id (e.g. ETH, POLYGON), but wallet's instances (e.g. window.ethereum) needs chainId (e.g. 0x1).
|
|
30
28
|
* This function will help us to map these strings to proper hex ids.
|
|
31
29
|
*/
|
|
32
|
-
export declare function tryConvertNamespaceNetworkToChainInfo(namespace:
|
|
30
|
+
export declare function tryConvertNamespaceNetworkToChainInfo(namespace: NamespaceInputForConnect, meta: BlockchainMeta[]): string | AddEthereumChainParameter | undefined;
|
|
33
31
|
export declare function transformHubResultToLegacyResult(res: Awaited<ReturnType<AllProxiedNamespaces['connect']>>): ConnectResult;
|
|
34
32
|
/**
|
|
35
33
|
* Synchronizes providers in the hub with the configuration providers.
|
|
@@ -37,10 +35,13 @@ export declare function transformHubResultToLegacyResult(res: Awaited<ReturnType
|
|
|
37
35
|
* - Removes providers from the hub that aren't in the configuration
|
|
38
36
|
*/
|
|
39
37
|
export declare function synchronizeHubWithConfigProviders(hub: Hub, configurationProviders: Provider[]): void;
|
|
40
|
-
export declare function isSolanaNamespace(ns:
|
|
38
|
+
export declare function isSolanaNamespace(ns: AllProxiedNamespaces): ns is AllProxiedNamespaces & ProxiedNamespace<SolanaActions> & {
|
|
41
39
|
namespaceId: 'Solana';
|
|
42
40
|
};
|
|
43
|
-
export declare function isEvmNamespace(ns:
|
|
41
|
+
export declare function isEvmNamespace(ns: AllProxiedNamespaces): ns is AllProxiedNamespaces & ProxiedNamespace<EvmActions> & {
|
|
44
42
|
namespaceId: 'EVM';
|
|
45
43
|
};
|
|
44
|
+
export declare function isUtxoNamespace(ns: AllProxiedNamespaces): ns is AllProxiedNamespaces & ProxiedNamespace<UtxoActions> & {
|
|
45
|
+
namespaceId: 'UTXO';
|
|
46
|
+
};
|
|
46
47
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/hub/utils.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export * from './legacy/helpers.js';
|
|
2
1
|
export { default as Provider } from './provider.js';
|
|
3
|
-
export { useWallets } from './
|
|
2
|
+
export { useWallets } from './hooks.js';
|
|
3
|
+
export { AutoConnectionAttemptError, WalletConnectionAttemptError, } from './errors.js';
|
|
4
|
+
export type * from './types.js';
|
|
4
5
|
export * from './legacy/types.js';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Ee=Object.defineProperty;var c=(e,t)=>Ee(e,"name",{value:t,configurable:!0});import{Persistor as We}from"@rango-dev/wallets-core/legacy";var v="last-connected-wallets",E="hub-v1-last-connected-wallets";import{Persistor as T}from"@rango-dev/wallets-core/legacy";var W=class{static{c(this,"LastConnectedWalletsFromStorage")}#e;constructor(t){this.#e=t}addWallet(t,r){if(this.#e===E)return this.#t(t,r);if(this.#e===v)return this.#a(t);throw new Error("Not implemented")}removeWallets(t){if(this.#e===E)return this.#r(t);if(this.#e===v)return this.#c(t);throw new Error("Not implemented")}list(){if(this.#e===E)return this.#n();if(this.#e===v)return this.#o();throw new Error("Not implemented")}removeNamespacesFromWallet(t,r){if(this.#e===E)return this.#s(t,r);throw new Error("Not implemented")}#o(){let r=new T().getItem(v)||[],s={};return r.forEach(n=>{s[n]=[]}),s}#n(){return new T().getItem(E)||{}}#t(t,r){let s=new T,n=s.getItem(this.#e)||{},u=r;if(n[t]){let d=n[t];u=d.concat(r.filter(p=>!d.some(o=>o.namespace===p.namespace)))}s.setItem(this.#e,{...n,[t]:u})}#a(t){let r=new T,s=r.getItem(this.#e)||[];r.setItem(v,s.concat(t))}#r(t){let r=new T,s=r.getItem(this.#e)||{};if(!t){r.setItem(this.#e,{});return}t.forEach(n=>{s[n]&&delete s[n]}),r.setItem(this.#e,s)}#s(t,r){let d=(new T().getItem(this.#e)||{})[t]?.filter(p=>!r.includes(p.namespace));this.#r([t]),d?.length>0&&this.#t(t,d)}#c(t){let r=new T,s=r.getItem(this.#e)||[];if(!t){r.setItem(this.#e,[]);return}r.setItem(v,s.filter(n=>!t.includes(n)))}};function yt(e,t){return e.find(r=>r.type===t)||null}c(yt,"choose");var _={connected:!1,connecting:!1,reachable:!1,installed:!1,accounts:null,network:null};function Q(e,t){if(t.type==="new_state"){let r=e[t.wallet];return r?{...e,[t.wallet]:{...r,[t.name]:t.value}}:{...e,[t.wallet]:{..._,[t.name]:t.value}}}return e}c(Q,"stateReducer");function K(e){return Object.entries(e).filter(([,t])=>t?.connected).map(([t])=>t)}c(K,"connectedWallets");function z(e){return Object.entries(e).map(([t])=>t)}c(z,"availableWallets");function Z(e){let t=new Map;return e.forEach(r=>{let{config:s,...n}=r;t.set(s.type,{actions:n,config:s})}),t}c(Z,"checkWalletProviders");function wt(e){return e?.constructor?.name==="AsyncFunction"}c(wt,"isAsync");function vt(e){let{checkInstallation:t=!0}=e.config;return t}c(vt,"needsCheckInstallation");async function J({type:e,walletActions:t,getState:r}){if(t.canEagerConnect){let s=new W(v),u=!!s.list()[e];u&&!r(e).connected&&F(),u||s.addWallet(e,[])}}c(J,"tryPersistWallet");function X({type:e,walletActions:t}){t.canEagerConnect&&new W(v).removeWallets([e])}c(X,"tryRemoveWalletFromPersistance");function F(){let e=new We;e.getItem(v)&&e.removeItem(v)}c(F,"clearPersistance");function O(e,t){return c((s,n,u,d,p)=>{e({type:"new_state",wallet:s,name:n,value:u}),t&&t(s,n,u,d,p)},"handler")}c(O,"makeEventHandler");import at from"react";import{createContext as Ne}from"react";var A="Context hasn't been initialized yet.",ke={async connect(){throw new Error(A)},async disconnect(){throw new Error(A)},async disconnectAll(){throw new Error(A)},async suggestAndConnect(){throw new Error(A)},state(){throw new Error(A)},canSwitchNetworkTo(){throw new Error(A)},providers(){throw new Error(A)},getWalletInfo(){throw new Error(A)},getSigners(){throw new Error(A)},hubProvider(){throw new Error(A)}},x=Ne(ke);import{debug as Ae}from"@rango-dev/logging-core";function ee(e,t,r){let s=r instanceof Error?r:new Error(String(r));Ae(s,{context:{method:e,args:t},tags:{type:"wallet-error"}})}c(ee,"logError");function Ie(e,t){return(...r)=>{try{let s=t(...r);return s instanceof Promise?s.catch(n=>{throw ee(e,r,n),n}):s}catch(s){throw ee(e,r,s),s}}}c(Ie,"withErrorLogging");function te(e){let t=Object.entries(e).map(([r,s])=>[r,Ie(r,s.bind(e))]);return Object.fromEntries(t)}c(te,"withErrorLoggingApi");import{pickVersion as le}from"@hub3js/core/utils";import{LegacyEvents as I}from"@rango-dev/wallets-core/legacy";import{convertEvmBlockchainMetaToEvmChainInfo as qe}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Ve}from"rango-types";import{useEffect as j,useReducer as Be}from"react";async function re(e,t){let r=new W(v),s=r.list(),n=Object.keys(s);if(n.length){let u=[];n.forEach(o=>{let i=e.get(o);if(i){let a=t(i);u.push({walletType:o,eagerConnect:a.eagerConnect.bind(a)})}});let d=await Promise.allSettled(u.map(async({eagerConnect:o})=>o())),p=[];d.forEach((o,i)=>{let{status:a}=o;a==="rejected"&&p.push(u[i].walletType)}),p.length&&r.removeWallets(p)}}c(re,"autoConnect");import{LegacyWallet as Se}from"@rango-dev/wallets-core/legacy";import{useContext as Te,useRef as Le}from"react";function oe(e){let t=Le({});function r(s){let n=s.config.type;return typeof t.current[n]>"u"&&(t.current[n]=new Se({config:s.config,handler:e},s.actions)),t.current[n]}return c(r,"updater"),r}c(oe,"useInitializers");function xe(){let e=Te(x);if(!e)throw Error("useWallet can only be used within the Provider component");return e}c(xe,"useWallets");import{useEffect as be,useRef as Re}from"react";function ne(e){return!!e.allBlockChains?.length&&!!e.autoConnect}c(ne,"shouldTryAutoConnect");function b(e){let t=Re(!1);be(()=>{ne(e)&&!t.current&&(t.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}c(b,"useAutoConnect");function D(e){let[t,r]=Be(Q,{}),s=oe(O(r,e.onUpdateState)),n=e.providers,u=Z(n);b({allBlockChains:e.allBlockChains,autoConnect:e.autoConnect,autoConnectHandler:async()=>re(u,s)});let d={async connect(p,o){let i=u.get(p);if(!i)throw new Error(`You should add ${p} to provider first.`);let a;o&&o.length>0&&(a=o.find(f=>!!f.network)?.network);let m=await s(i).connect(a,o);return e.autoConnect&&J({type:p,walletActions:i.actions,getState:d.state}),[m]},async disconnect(p){let o=u.get(p);if(!o)throw new Error(`You should add ${p} to provider first.`);await s(o).disconnect(),e.autoConnect&&X({type:p,walletActions:o.actions})},async disconnectAll(){let p=[];return K(t).forEach(o=>{let i=u.get(o);if(i){let a=s(i);p.push(a.disconnect())}}),e.autoConnect&&F(),await Promise.allSettled(p)},async suggestAndConnect(p,o){let i=u.get(p);if(!i)throw new Error(`You should add ${p} to provider first.`);let a=s(i);if(!o.network)throw new Error("You should pass network to the suggestAndConnect");return await a.suggestAndConnect(o.network)},state(p){return t[p]||_},canSwitchNetworkTo(p,o){let i=u.get(p);if(!i)return!1;let a=s(i);return a.canSwitchNetworkTo?a.canSwitchNetworkTo(o,a.provider):!1},providers(){let p={};return z(t).forEach(o=>{let i=u.get(o);if(i){let a=s(i);p[o]=a.provider}}),p},getWalletInfo(p){let o=u.get(p);if(!o)throw new Error(`You should add ${p} to provider first.`);return o.actions.getWalletInfo(e.allBlockChains||[])},async getSigners(p){let o=u.get(p);if(!o)throw new Error(`You should add ${p} to provider first.`);let i=s(o),a=i.provider;return i.getSigners(a)},hubProvider(){throw new Error("This method is not available on legacy providers.")}};return j(()=>{u.forEach(p=>{let o=s(p),i=c(()=>{o.onInit&&o.onInit()},"runOnInit"),a=c(l=>{l.target&&l.target.readyState==="complete"&&(i(),document.removeEventListener("readystatechange",a))},"initWhenPageIsReady");i(),document.addEventListener("readystatechange",a)})},[]),j(()=>{e.allBlockChains&&u.forEach(o=>{let i=s(o),a=i.getWalletInfo(e.allBlockChains||[]);i.setInfo({supportedBlockchains:a.supportedChains,isContractWallet:!!a.isContractWallet})})},[e.allBlockChains]),j(()=>{u.forEach(p=>{s(p).setHandler(O(r,e.onUpdateState))})},[e.onUpdateState]),d}c(D,"useLegacyProviders");import{legacyFormatAddressWithNetwork as He}from"@rango-dev/wallets-core/legacy";import{CAIP_NAMESPACE as _e}from"@rango-dev/wallets-core/namespaces/ton";import{CAIP_TRON_CHAIN_ID as Fe}from"@rango-dev/wallets-core/namespaces/tron";import{CAIP_BITCOIN_CHAIN_ID as Oe,CAIP_BITCOINCASH_CHAIN_ID as je,CAIP_DOGECOIN_CHAIN_ID as De,CAIP_LITECOIN_CHAIN_ID as Me,CAIP_ZCASH_CHAIN_ID as Ue}from"@rango-dev/wallets-core/namespaces/utxo";import{AccountId as Ye}from"caip";import{Err as M,Ok as ae}from"ts-results";function $e(e){return typeof e=="string"?e:["solana","xrpl","stellar"].includes(e.namespace.toLowerCase())?e.namespace.toUpperCase():e.namespace.toLowerCase()==="eip155"?"ETH":e.reference===Oe?"BTC":e.reference===Ue?"ZCASH":e.reference===Me?"LTC":e.reference===De?"DOGE":e.reference===je?"BCH":e.namespace.toLowerCase()===_e?"TON":e.namespace==="sui"||e.reference===Fe?e.reference.toUpperCase():e.namespace==="starknet"?e.namespace.toUpperCase():e.reference}c($e,"mapCaipNamespaceToLegacyNetworkName");function R(e){let{chainId:t,address:r}=Ye.parse(e),s=$e(t);return He(r,s)}c(R,"fromAccountIdToLegacyAddressFormat");async function U(e){return e.reduce(async(t,r)=>{let s=await t;try{let n=await r();return[...s,new ae(n)]}catch(n){return[...s,new M(n)]}},Promise.resolve([]))}c(U,"runSequentiallyWithoutFailure");function se(e){return typeof e=="object"&&!Array.isArray(e)}c(se,"isConnectResultEvm");function ce(e){return Array.isArray(e)}c(ce,"isConnectResultSolana");function ie(e){let t=new Set,r=[],s=c((d,p)=>{r=r.filter(o=>o.key!==d?!0:(o.resolve(p),!1))},"removeKeyFromQueue"),n=c(async()=>{let d=r.find(a=>!t.has(a.key));if(!d)return;let{task:p,resolve:o,key:i}=d;t.add(i);try{let a=await p();o(new ae(a))}catch(a){e?.onError&&e.onError(a,{removeCurrentKeyFromQueue:()=>s(i,new M(a))}),o(new M(a))}finally{let a=r.findIndex(l=>l.key===i);a>=0&&r.splice(a,1),t.delete(i),n()}},"processQueue");return c(async(d,p)=>new Promise(o=>{r.push({task:d,resolve:o,key:p}),n()}),"queueTask")}c(ie,"createQueue");function Y(e){let t="0.0.0",r="1.0.0",s=[],n=[];return e.forEach(u=>{try{let d=le(u,r);n.push(d[1])}catch{let d=le(u,t);s.push(d[1])}}),[s,n]}c(Y,"separateLegacyAndHubProviders");function S(e,t){return e.find(r=>r.id===t)}c(S,"findProviderByType");var Ge=new W(E);function $(e,t){return e.info()?.metadata.properties?.find(n=>n.name==="namespaces")?.value.data.flatMap(n=>n.getSupportedChains(t||[]))||[]}c($,"getSupportedChainsFromProvider");function pe(e,t,r,s){let n=e.get(t.provider);if(!n)throw new Error("Currently all the events have assigned to a provider. The event doesn't include one.",{cause:t});let u=t.namespace,d=u?n.findByNamespace(u):void 0,p=null,o=null,i;if(d){let[f]=d.state();p=f().accounts,o=f().network,s.lastConnectAttemptParams[t.provider]&&(i=s.lastConnectAttemptParams[t.provider].find(g=>g.namespace===u)?.derivationPath)}let[a]=n.state(),l={connected:a().connected,connecting:a().connecting,installed:a().installed,accounts:p,network:o,reachable:!0,derivationPath:i},m={supportedBlockchains:$(n,s.allBlockChains),isContractWallet:!1,isHub:!0,namespace:u};switch(t.type){case"provider_detected":r(t.provider,I.INSTALLED,!0,l,m);break;case"provider_connecting":r(t.provider,I.CONNECTING,t.value,l,m);break;case"provider_connected":r(t.provider,I.CONNECTED,!0,l,m);break;case"provider_disconnected":r(t.provider,I.PROVIDER_DISCONNECTED,t.provider,l,m),r(t.provider,I.CONNECTED,!1,l,m),r(t.provider,I.ACCOUNTS,null,l,m);break;case"namespace_disconnected":Ge.removeNamespacesFromWallet(t.provider,[t.namespace]),r(t.provider,I.NAMESPACE_DISCONNECTED,t.namespace,l,{...m,namespace:t.namespace});break;case"namespace_connected":case"namespace_account_switched":{t.type==="namespace_account_switched"&&r(t.provider,I.NAMESPACE_DISCONNECTED,t.namespace,l,m);let f=t.accounts.map(g=>R(g));r(t.provider,I.ACCOUNTS,f,l,{...m,namespace:t.namespace})}break;case"namespace_network_switched":r(t.provider,I.NETWORK,t.network,l,{...m,namespace:t.namespace});break}}c(pe,"mapHubEventsToLegacy");function q(e,t){if(!e.network)return;let r=t.filter(Ve);return qe(r)[e.network]}c(q,"convertNamespaceNetworkToEvmChainId");function ue(e,t){return q(e,t)||e.network}c(ue,"tryConvertNamespaceNetworkToChainInfo");function de(e){return se(e)?{accounts:e.accounts,network:e.network,provider:void 0}:ce(e)?{accounts:e,network:null,provider:void 0}:{accounts:[e],network:null,provider:void 0}}c(de,"transformHubResultToLegacyResult");function me(e,t){let r=e.getAll();t.filter(n=>!r.get(n.id)).forEach(n=>{e.add(n.id,n),n.init()}),r.forEach(n=>{t.some(d=>d.id===n.id)||e.remove(n.id)})}c(me,"synchronizeHubWithConfigProviders");function fe(e){return e.namespaceId==="Solana"}c(fe,"isSolanaNamespace");function B(e){return e.namespaceId==="EVM"}c(B,"isEvmNamespace");import{utils as tt}from"@hub3js/evm";import"@rango-dev/wallets-shared";import{useEffect as we,useRef as ve,useState as rt}from"react";import{Ok as ot,Result as nt}from"ts-results";import{Provider as Qe}from"@hub3js/core";import{legacyIsEvmNamespace as Ke}from"@rango-dev/wallets-core/legacy";import{Result as ze}from"ts-results";var H=new W(E);async function Ze(e,t,r){let{getHub:s,allBlockChains:n}=r,u=s().get(e);if(!u)throw new Error(`You should add ${e} to provider first then call 'connect'.`);if(!t)throw new Error("Passing namespace to `connect` is required. ");let d=[];t.forEach(l=>{let m=l.namespace,f=u.findByNamespace(m);if(!f)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${l.namespace})`);d.push([l,f])});let p=d.map(([l,m])=>{let g=(Ke(l)?q(l,n||[]):void 0)||l.network;return async()=>{let y;B(m)?y=c(async()=>m.connect(g),"connectNamespacePromise"):y=c(async()=>m.connect(),"connectNamespacePromise");try{await y()}catch(C){throw C instanceof Error?C:new Error(C)}}}),o=await U(p),i=d.filter((l,m)=>o[m].err).map(l=>l[0]);if(i.length>0&&H.removeNamespacesFromWallet(e,i.map(l=>l.namespace)),!o.some(l=>l.ok))throw new Error(`No namespace connected for ${e}`);return ze.all(...o.filter(l=>l.ok)).unwrap()}c(Ze,"eagerConnect");async function Je(e,t){let r=[],s=[],n=[],u=[];e.forEach(p=>{let o=t.findByNamespace(p.namespace);o?(r.push(p),u.push(async()=>await o.canEagerConnect())):n.push(p)});let d=await U(u);return r.forEach((p,o)=>{d[o].ok&&d[o].val?s.push(p):n.push(p)}),{successNamespaces:s,failedNamespaces:n}}c(Je,"tryRunCanEagerConnect");async function ge(e){let{getHub:t,allBlockChains:r,wallets:s}=e,n=H.list(),u=Object.keys(n),d=[];if(u.length){let p=[],o=s?.map(i=>typeof i=="string"?i:i instanceof Qe?i.id:i.config.type);u.forEach(async i=>{if(o&&!o.includes(i)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",i),d.push(i);return}let a=t().get(i),l=n[i].map(g=>({namespace:g.namespace,network:g.network}));if(!l.length||!a){d.push(i);return}let{successNamespaces:m,failedNamespaces:f}=await Je(l,a);if(m.length)f.length&&H.removeNamespacesFromWallet(a.id,f.map(g=>g.namespace));else{d.push(i);return}p.push(Ze(i,m,{allBlockChains:r,getHub:t}).catch(g=>console.warn(g)))}),H.removeWallets(d),await Promise.all(p)}}c(ge,"autoConnect");import{createStore as Xe,Hub as et}from"@hub3js/core";import{useRef as he}from"react";function ye(e){let t=he(null),r=he(null);function s(){let d=new et({store:n()});return e.forEach(p=>{d.add(p.id,p)}),r.current=d,d}c(s,"createHub");function n(){if(t.current!==null)return t.current;let d=Xe();return t.current=d,d}c(n,"getStore");function u(){let d=r.current?.getAll();return!r.current||!d?s():(me(r.current,e),r.current)}return c(u,"getHub"),{getStore:n,getHub:u}}c(ye,"useHubRefs");function V(e){let{getStore:t,getHub:r}=ye(e.providers),[,s]=rt(0),n=ve({onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains}),u=ve({}),d=c((a,l)=>{u.current[a]=l||[]},"updateLastConnectAttemptParams"),p=ie({onError:(a,l)=>{tt.isUserRejectionError(a)&&l.removeCurrentKeyFromQueue()}});we(()=>{n.current={onUpdateState:e.onUpdateState,allVersionedProviders:e.allVersionedProviders,allBlockChains:e.allBlockChains}},[e]),we(()=>{let a=c(()=>{r().init(e.configs?.walletOptions),s(m=>m+1)},"runOnInit"),l=c(m=>{m.target&&m.target.readyState==="complete"&&(a(),document.removeEventListener("readystatechange",l))},"initHubWhenPageIsReady");a(),document.addEventListener("readystatechange",l),t().subscribe(m=>{if(n.current.onUpdateState)try{pe(r(),m,n.current.onUpdateState,{allBlockChains:n.current.allBlockChains,lastConnectAttemptParams:u.current})}catch(f){console.error(f)}s(f=>f+1)}).flushEvents()},[]),b({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{ge({allBlockChains:e.allBlockChains,getHub:r,wallets:e.configs?.wallets})}});let o=new W(E);return{canSwitchNetworkTo(a,l,m){let f=r().get(a);if(!f)throw new Error(`You should add ${a} to provider first then call 'canSwitchNetworkTo'.`);if(!m)throw new Error("Passing namespace to `canSwitchNetworkTo` is required.");let g=f.findByNamespace(m.namespace);if(!g)throw new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${m.namespace})`);if(!("canSwitchNetwork"in g))return!1;let y=f.info()?.metadata?.properties?.find(P=>P.name==="namespaces");if(!n.current.allBlockChains)throw new Error("Blockchains are not available");let C=y?.value.data.find(P=>P.value===m.namespace)?.getSupportedChains(n.current.allBlockChains);if(!C)throw new Error(`NamespaceMeta is not defined for requested namespace: ${m.namespace}`);return g.canSwitchNetwork({network:l,supportedChains:C})},async connect(a,l){let m=r().get(a);if(!m)throw new Error(`You should add ${a} to provider first then call 'connect'.`);if(!l)throw new Error("Passing namespace to `connect` is required.");d(a,l);let f=[];l.forEach(h=>{let w=h.namespace,k=m.findByNamespace(w);if(!k)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${h.namespace})`);f.push([h,k])});let g=f.map(async([h,w])=>{let k=ue(h,e.allBlockChains||[]),L;return fe(w)?L=c(async()=>w.connect({derivationPath:h.derivationPath}),"connectNamespacePromise"):B(w)?L=c(async()=>w.connect(k,{derivationPath:h.derivationPath}),"connectNamespacePromise"):L=c(async()=>w.connect(),"connectNamespacePromise"),p(c(async()=>L().then(de).then(Pe=>({response:Pe,input:{namespace:h.namespace,network:h.network,supportsEagerConnect:"canEagerConnect"in w}})),"connectNamespaceProcess"),a)}),y=await Promise.all(g),C=y.filter(h=>h.ok).filter(h=>h.val.input.supportsEagerConnect).map(h=>({namespace:h.val.input.namespace,network:h.val.input.network}));C.length>0&&o.addWallet(a,C);let P=y.map(h=>h.andThen(w=>new ot(w.response))),N=nt.all(...P);if(N.err)throw N.val;return N.unwrap()},async disconnect(a,l){let m=r().get(a);if(!m)throw new Error(`You should add ${a} to provider first then call 'disconnect'.`);m.getAll().forEach(f=>{let g=!l||l.includes(f.namespaceId),y=f.state()[0]().connected;if(g&&y)return f.disconnect()}),e.autoConnect&&(l?o.removeNamespacesFromWallet(a,l):o.removeWallets([a]))},async disconnectAll(){let a=Array.from(r().getAll().values()).map(async l=>this.disconnect(l.id));return await Promise.allSettled(a)},async getSigners(a){let l=r().get(a);if(!l)throw new Error(`You should add ${a} to provider first.`);let m=l.info();if(!m)throw new Error("Your provider should have required `info`.");let g=m.metadata.properties?.find(y=>y.name==="signers");if(!g)throw new Error("Your provider should contain signers property.");return g.value.getSigners()},getWalletInfo(a){let l=r().get(a);if(!l)throw new Error(`You should add ${a} to provider first.`);let m=l.info();if(!m)throw new Error("Your provider should have required `info`.");let f={DEFAULT:""},{metadata:g}=m,{extensions:y}=g;Object.keys(y).forEach(w=>{let k=w;if(k==="homepage"&&(f.DEFAULT=y[k]||""),["firefox","chrome","brave","edge"].includes(k)){let G=k.toUpperCase();f[G]=y[k]||""}});let C=g.properties,P=C?.find(w=>w.name==="namespaces"),N=C?.find(w=>w.name==="derivationPath"),h=C?.find(w=>w.name==="details");return{name:g.name,img:g.icon,installLink:f,color:"red",supportedChains:$(l,n.current.allBlockChains),isContractWallet:h?.value?.isContractWallet,mobileWallet:h?.value?.mobileWallet,showOnMobile:h?.value?.showOnMobile,needsNamespace:P?.value,needsDerivationPath:N?.value,isHub:!0,properties:g.properties}},providers(){throw new Error("This method is not available on hub providers.")},state(a){let l=r().state(),m=r().get(a),f=l[a];if(!f||!m)throw new Error(`It seems your requested provider doesn't exist in hub. Provider Id: ${a}`);let g=f.namespaces.filter(P=>P.connected).flatMap(P=>P.accounts?.map(N=>R(N))).filter(P=>!!P),y=new Map(Array.from(m.getAll(),([P,N])=>[N.namespaceId,N.state()[0]()]));return{connected:f.connected,connecting:f.connecting,installed:f.installed,reachable:!0,accounts:g,network:null,namespaces:y}},async suggestAndConnect(a,l){let m=r().get(a);if(!m)throw new Error(`You should add ${a} to provider first then call 'suggestAndConnect'.`);let f=m.findByNamespace(l.namespace);throw f?"suggest"in f?l.network?new Error(`Suggest has not been implemented for given chain: ${l.network}`):new Error("You should pass network to the suggest and connect"):new Error("Suggest is not implemented on the provider"):new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${l.namespace})`)},hubProvider(){throw new Error("Unreachable code. the method has been implemented in main adapter instance.")}}}c(V,"useHubAdapter");function Ce(e){let{providers:t,...r}=e,[s,n]=Y(t),u=D({...r,providers:s}),d=V({...r,providers:n,allVersionedProviders:t});return te({canSwitchNetworkTo(o,i,a){return S(n,o)?d.canSwitchNetworkTo(o,i,a):u.canSwitchNetworkTo(o,i)},async connect(o,i){return S(n,o)?await d.connect(o,i):await u.connect(o,i)},async disconnect(o,i){return S(n,o)?await d.disconnect(o,i):await u.disconnect(o)},async disconnectAll(){return await Promise.allSettled([d.disconnectAll(),u.disconnectAll()])},async getSigners(o){return S(n,o)?d.getSigners(o):u.getSigners(o)},getWalletInfo(o){return S(n,o)?d.getWalletInfo(o):u.getWalletInfo(o)},providers(){return u.providers()},state(o){return S(n,o)?d.state(o):u.state(o)},async suggestAndConnect(o,i){return S(n,o)?d.suggestAndConnect(o,i):await u.suggestAndConnect(o,i)},hubProvider(o){let i=S(n,o);if(i)return i;throw new Error(`You're trying to access ${o} provider which is not found in hub providers. you may try to access a legacy provider or it's not been registered yet.`)}})}c(Ce,"useProviders");function st(e){let t=Ce(e);return at.createElement(x.Provider,{value:t},e.children)}c(st,"Provider");var ct=st;import{LegacyEvents as no}from"@rango-dev/wallets-core/legacy";export{no as Events,ct as Provider,z as availableWallets,Z as checkWalletProviders,yt as choose,F as clearPersistance,K as connectedWallets,_ as defaultWalletState,wt as isAsync,O as makeEventHandler,vt as needsCheckInstallation,Q as stateReducer,J as tryPersistWallet,X as tryRemoveWalletFromPersistance,xe as useWallets};
|
|
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};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|