@rango-dev/wallets-core 0.58.1-next.0 → 0.58.2-next.0
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 +4 -0
- package/dist/hub/hub.d.ts +10 -2
- package/dist/hub/hub.d.ts.map +1 -1
- package/dist/hub/provider/provider.d.ts +1 -1
- package/dist/hub/provider/provider.d.ts.map +1 -1
- package/dist/hub/provider/types.d.ts +2 -0
- package/dist/hub/provider/types.d.ts.map +1 -1
- package/dist/legacy/mod.js +1 -1
- package/dist/legacy/mod.js.map +2 -2
- package/dist/legacy/types.d.ts +1 -0
- package/dist/legacy/types.d.ts.map +1 -1
- package/dist/mod.js +1 -1
- package/dist/mod.js.map +3 -3
- package/dist/namespaces/common/mod.js +1 -1
- package/dist/namespaces/cosmos/mod.js +1 -1
- package/dist/namespaces/evm/mod.js +1 -1
- package/dist/namespaces/solana/mod.js +1 -1
- package/dist/namespaces/starknet/mod.js +1 -1
- package/dist/namespaces/sui/mod.js +1 -1
- package/dist/namespaces/ton/builders.d.ts +5 -0
- package/dist/namespaces/ton/builders.d.ts.map +1 -0
- package/dist/namespaces/ton/constants.d.ts +3 -0
- package/dist/namespaces/ton/constants.d.ts.map +1 -0
- package/dist/namespaces/ton/mod.d.ts +5 -0
- package/dist/namespaces/ton/mod.d.ts.map +1 -0
- package/dist/namespaces/ton/mod.js +2 -0
- package/dist/namespaces/ton/mod.js.map +7 -0
- package/dist/namespaces/ton/types.d.ts +7 -0
- package/dist/namespaces/ton/types.d.ts.map +1 -0
- package/dist/namespaces/ton/utils.d.ts +2 -0
- package/dist/namespaces/ton/utils.d.ts.map +1 -0
- package/dist/namespaces/tron/mod.js +1 -1
- package/dist/namespaces/utxo/constants.d.ts +1 -0
- package/dist/namespaces/utxo/constants.d.ts.map +1 -1
- package/dist/namespaces/utxo/mod.d.ts +1 -1
- package/dist/namespaces/utxo/mod.d.ts.map +1 -1
- package/dist/namespaces/utxo/mod.js +1 -1
- package/dist/namespaces/utxo/mod.js.map +3 -3
- package/dist/namespaces/utxo/utils.d.ts +1 -1
- package/dist/namespaces/utxo/utils.d.ts.map +1 -1
- package/dist/namespaces/xrpl/mod.js +1 -1
- package/dist/wallets-core.build.json +1 -1
- package/package.json +7 -3
- package/src/hub/hub.ts +19 -5
- package/src/hub/provider/provider.ts +2 -2
- package/src/hub/provider/types.ts +2 -0
- package/src/legacy/types.ts +1 -0
- package/src/namespaces/ton/builders.ts +15 -0
- package/src/namespaces/ton/constants.ts +2 -0
- package/src/namespaces/ton/mod.ts +5 -0
- package/src/namespaces/ton/types.ts +12 -0
- package/src/namespaces/ton/utils.ts +18 -0
- package/src/namespaces/utxo/constants.ts +1 -0
- package/src/namespaces/utxo/mod.ts +5 -1
- package/src/namespaces/utxo/utils.ts +3 -3
package/CHANGELOG.md
CHANGED
package/dist/hub/hub.d.ts
CHANGED
|
@@ -11,14 +11,22 @@ type RunAllResult = {
|
|
|
11
11
|
provider: unknown;
|
|
12
12
|
namespaces: unknown[];
|
|
13
13
|
};
|
|
14
|
+
type RunAllArgs = {
|
|
15
|
+
[providerId: string]: {
|
|
16
|
+
provider?: unknown;
|
|
17
|
+
namespaces?: {
|
|
18
|
+
[namespaceId: string]: unknown;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
14
22
|
interface HubOptions {
|
|
15
23
|
store?: Store;
|
|
16
24
|
}
|
|
17
25
|
export declare class Hub {
|
|
18
26
|
#private;
|
|
19
27
|
constructor(options?: HubOptions);
|
|
20
|
-
init(): void;
|
|
21
|
-
runAll(action: string): RunAllResult[];
|
|
28
|
+
init(args?: RunAllArgs): void;
|
|
29
|
+
runAll(action: string, args?: RunAllArgs): RunAllResult[];
|
|
22
30
|
add(id: string, provider: Provider): this;
|
|
23
31
|
remove(id: string): this;
|
|
24
32
|
get(providerId: string): Provider | undefined;
|
package/dist/hub/hub.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/hub/hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,KAAK,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,KAAK,QAAQ,GAAG;KACb,GAAG,IAAI,MAAM,GAAG,aAAa,GAAG;QAC/B,UAAU,EAAE,cAAc,EAAE,CAAC;KAC9B;CACF,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAEF,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AACD,qBAAa,GAAG;;gBAIF,OAAO,CAAC,EAAE,UAAU;IAIhC,IAAI;
|
|
1
|
+
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/hub/hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,KAAK,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,KAAK,QAAQ,GAAG;KACb,GAAG,IAAI,MAAM,GAAG,aAAa,GAAG;QAC/B,UAAU,EAAE,cAAc,EAAE,CAAC;KAC9B;CACF,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,CAAC,UAAU,EAAE,MAAM,GAAG;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE;YACX,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;SAChC,CAAC;KACH,CAAC;CACH,CAAC;AAEF,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AACD,qBAAa,GAAG;;gBAIF,OAAO,CAAC,EAAE,UAAU;IAIhC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU;IAStB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,EAAE;IA4CzD,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAOlC,MAAM,CAAC,EAAE,EAAE,MAAM;IAajB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI7C,MAAM;IAIN,KAAK,IAAI,QAAQ;CAwBlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/hub/provider/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,EACP,yBAAyB,EACzB,QAAQ,EACR,oBAAoB,EACpB,QAAQ,EAET,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAI3E,qBAAa,QAAQ;;IACnB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,OAAO,SAAW;gBAShC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,oBAAoB,CAAC,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,EAC1E,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;QAClD,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;IAkBH;;;;;;;;;;;;;;;OAeG;IACI,IAAI,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/hub/provider/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,EACP,yBAAyB,EACzB,QAAQ,EACR,oBAAoB,EACpB,QAAQ,EAET,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAI3E,qBAAa,QAAQ;;IACnB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,OAAO,SAAW;gBAShC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,oBAAoB,CAAC,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,EAC1E,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;QAClD,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;IAkBH;;;;;;;;;;;;;;;OAeG;IACI,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAajC;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;IA+CpC;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAWhC;;;;;;;;;;OAUG;IACI,IAAI,IAAI,YAAY,GAAG,SAAS;IAUvC;;;;;;;;OAQG;IACI,MAAM,IAAI,oBAAoB,CACnC,MAAM,gBAAgB,EACtB,gBAAgB,CACjB;IAID;;;;;;OAMG;IACI,GAAG,CAAC,CAAC,SAAS,MAAM,gBAAgB,EACzC,EAAE,EAAE,CAAC,GACJ,oBAAoB,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,SAAS;IAMxD;;;;;;;;;;;OAWG;IACI,eAAe,CAAC,CAAC,SAAS,MAAM,gBAAgB,EACrD,mBAAmB,EAAE,CAAC,GAAG,MAAM,GAC9B,oBAAoB,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,SAAS;IAaxD;;;;;;;;;;;OAWG;IACI,MAAM,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,GAChD,IAAI;IAKP;;;;;;;;;;;OAWG;IACI,KAAK,CACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,GAChD,IAAI;CAiDR"}
|
|
@@ -6,6 +6,7 @@ import type { EvmActions } from '../../namespaces/evm/mod.js';
|
|
|
6
6
|
import type { SolanaActions } from '../../namespaces/solana/mod.js';
|
|
7
7
|
import type { StarknetActions } from '../../namespaces/starknet/types.js';
|
|
8
8
|
import type { SuiActions } from '../../namespaces/sui/mod.js';
|
|
9
|
+
import type { TonActions } from '../../namespaces/ton/types.js';
|
|
9
10
|
import type { TronActions } from '../../namespaces/tron/types.js';
|
|
10
11
|
import type { UtxoActions } from '../../namespaces/utxo/mod.js';
|
|
11
12
|
import type { XRPLActions } from '../../namespaces/xrpl/mod.js';
|
|
@@ -29,6 +30,7 @@ export interface CommonNamespaces {
|
|
|
29
30
|
tron: TronActions;
|
|
30
31
|
starknet: StarknetActions;
|
|
31
32
|
xrpl: XRPLActions;
|
|
33
|
+
ton: TonActions;
|
|
32
34
|
}
|
|
33
35
|
export type CommonNamespaceKeys = Prettify<keyof CommonNamespaces>;
|
|
34
36
|
export interface ExtendableInternalActions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hub/provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,IAAI,CACtB,WAAW,EACX,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,CACxD,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,EAC9D,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KACZ,IAAI,CAAC;AACV,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,KAAK,CAAC;IACV,CAAC,CAAC,SAAS,MAAM,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hub/provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,IAAI,CACtB,WAAW,EACX,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,CACxD,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,EAC9D,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KACZ,IAAI,CAAC;AACV,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,KAAK,CAAC;IACV,CAAC,CAAC,SAAS,MAAM,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,gBAAgB,CAAC,CAAC;AAEnE,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;CAClD;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAC1D,CAAC,EACD,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IAAE,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC"}
|
package/dist/legacy/mod.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var k=Object.defineProperty;var r=(a,t)=>k(a,"name",{value:t,configurable:!0});var I=(e=>(e.BTC="BTC",e.BSC="BSC",e.LTC="LTC",e.THORCHAIN="THOR",e.BCH="BCH",e.BINANCE="BNB",e.BLAST="BLAST",e.CELO="CELO",e.LINEA="LINEA",e.METIS="METIS",e.SONIC="SONIC",e.BERACHAIN="BERACHAIN",e.ZETA_CHAIN="ZETA_CHAIN",e.SCROLL="SCROLL",e.ZKSYNC="ZKSYNC",e.MONAD="MONAD",e.ETHEREUM="ETH",e.POLYGON="POLYGON",e.TERRA="TERRA",e.POLKADOT="",e.TRON="TRON",e.DOGE="DOGE",e.HARMONY="HARMONY",e.AVAX_CCHAIN="AVAX_CCHAIN",e.FANTOM="FANTOM",e.MOONBEAM="MOONBEAM",e.ARBITRUM="ARBITRUM",e.BOBA="BOBA",e.OPTIMISM="OPTIMISM",e.FUSE="FUSE",e.CRONOS="CRONOS",e.SOLANA="SOLANA",e.MOONRIVER="MOONRIVER",e.GNOSIS="GNOSIS",e.COSMOS="COSMOS",e.OSMOSIS="OSMOSIS",e.AXELAR="AXELAR",e.MARS="MARS",e.STRIDE="STRIDE",e.MAYA="MAYA",e.AKASH="AKASH",e.IRIS="IRIS",e.PERSISTENCE="PERSISTENCE",e.SENTINEL="SENTINEL",e.REGEN="REGEN",e.CRYPTO_ORG="CRYPTO_ORG",e.SIF="SIF",e.CHIHUAHUA="CHIHUAHUA",e.JUNO="JUNO",e.KUJIRA="KUJIRA",e.STARNAME="STARNAME",e.COMDEX="COMDEX",e.STARGAZE="STARGAZE",e.DESMOS="DESMOS",e.BITCANNA="BITCANNA",e.SECRET="SECRET",e.INJECTIVE="INJECTIVE",e.LUMNETWORK="LUMNETWORK",e.BANDCHAIN="BANDCHAIN",e.EMONEY="EMONEY",e.BITSONG="BITSONG",e.KI="KI",e.MEDIBLOC="MEDIBLOC",e.KONSTELLATION="KONSTELLATION",e.UMEE="UMEE",e.STARKNET="STARKNET",e.TON="TON",e.BASE="BASE",e.SUI="SUI",e.XRPL="XRPL",e.Unknown="Unkown",e))(I||{}),E=(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))(E||{});var N=class{static{r(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)}};function O(a,t){return`${t||""}:${a}`}r(O,"formatAddressWithNetwork");function y(a,t){return a?a.map(n=>O(n,t)):[]}r(y,"accountAddressesWithNetwork");function B(a){let[t,n]=a.split(":");return{network:t,address:n}}r(B,"readAccountAddress");function S(a){let{checkInstallation:t=!0}=a.config;return t}r(S,"needsCheckInstallation");var u=r((a,t)=>(a=typeof a=="string"&&a.startsWith("0x")?parseInt(a):a,Object.values(I).includes(String(a))?a:a==="Binance-Chain-Tigris"?"BNB":t.filter(o=>!!o.chainId).find(o=>(o.chainId?.startsWith("0x")?parseInt(o.chainId):o.chainId)==a)?.name||null),"getBlockChainNameFromId");async function A(a){if(await a.canEagerConnect())return await a.connectHandler();throw new Error(`can't restore connection for ${a.providerName}.`)}r(A,"eagerConnectHandler");function b(a){return a.namespace==="EVM"}r(b,"isEvmNamespace");var T=class{static{r(this,"Wallet")}provider;actions;state;options;info;cleanupSubscribe;constructor(t,n){this.actions=n,this.options=t,this.provider=null,this.info={supportedBlockchains:[],isContractWallet:!1,isHub:!1},this.state={connected:!1,connecting:!1,reachable:!1,installed:!1,accounts:null,network:null},S(t)||this.setInstalledAs(!0)}async suggestAndConnect(t){return this.actions.suggest&&await this.actions.suggest({instance:this.provider,meta:this.info.supportedBlockchains,network:t}),await this.connect(t)}async connect(t,n){if(this.state.connecting)throw new Error("Connecting...");let o=await this.getConnectionFromState(),i=this.state.network,s=t||i||this.options.config.defaultNetwork;if(o){let p=i!==s&&!!s;if(i===s)return o;let d=!0;if(this.actions.canSwitchNetworkTo&&(d=this.actions.canSwitchNetworkTo({provider:this.provider,meta:this.info.supportedBlockchains,network:s||""})),p&&d&&this.actions.switchNetwork)return await this.actions.switchNetwork({instance:this.provider,meta:this.info.supportedBlockchains,network:s,newInstance:this.tryGetInstance.bind(this),getState:this.getState.bind(this),updateChainId:this.updateChainId.bind(this)}),s!==this.state.network&&!this.options.config.isAsyncSwitchNetwork&&this.updateState({network:t}),{accounts:o.accounts,network:s,provider:this.provider}}let l=await this.tryGetInstance({network:t});this.updateState({connecting:!0}),this.setInstalledAs(!0);try{var g=await this.actions.connect({instance:l,network:s||void 0,meta:this.info.supportedBlockchains||[],namespaces:n})}catch(p){throw this.resetState(),p}this.updateState({connected:!0,reachable:!0,connecting:!1});let c=[],C=null,f;if(Array.isArray(g)){let p=null;c=g.flatMap(h=>{let v=h.chainId||"Unkown",m=u(v,this.info.supportedBlockchains)||"Unkown";return f=h.derivationPath?h.derivationPath:f,!p&&m!=="Unkown"&&this.info.supportedBlockchains.find(w=>w.name===m)?.info?.infoType==="EvmMetaInfo"&&(p=m),y(h.accounts,m)}).filter(Boolean),C=p||s||this.options.config.defaultNetwork}else{let p=g.chainId||"Unkown",d=u(p,this.info.supportedBlockchains)||"Unkown",h=g.derivationPath;c=y(g.accounts,d),C=d,f=h}return c.length>0&&this.updateState({accounts:c,network:C,derivationPath:f}),{accounts:this.state.accounts,network:this.state.network,provider:this.provider}}async disconnect(){this.resetState(),this.actions.disconnect&&this.actions.disconnect({instance:this.provider,destroyInstance:()=>{this.setProvider(null)}})}async eagerConnect(){let t=await this.tryGetInstance({network:void 0}),{canEagerConnect:n}=this.actions,o=this.options.config.type;return await A({canEagerConnect:async()=>{if(!n)throw new Error(`${o} provider hasn't implemented canEagerConnect.`);return await n({instance:t,meta:this.info.supportedBlockchains})},connectHandler:async()=>await this.connect(),providerName:o})}async getSigners(t){return await this.actions.getSigners(t)}getWalletInfo(t){return this.actions.getWalletInfo(t)}canSwitchNetworkTo(t,n){let o=this.actions.canSwitchNetworkTo;return o?o({network:t,meta:this.info.supportedBlockchains,provider:n}):!1}onInit(){if(!this.actions.getInstance)throw new Error(`Provider hasn't defined how to get wallet's instance. provider: ${this.options.config.type} on: onInit`);this.options.config.isAsyncInstance?S(this.options)&&this.actions.getInstance().then(t=>{t&&this.setInstalledAs(!0)}):this.actions.getInstance()&&!this.state.installed&&this.setInstalledAs(!0)}setProvider(t){if(this.provider=t,t&&this.actions.subscribe){let n=this.actions.subscribe({instance:t,state:this.state,meta:this.info.supportedBlockchains,connect:this.connect.bind(this),disconnect:this.disconnect.bind(this),updateAccounts:(o,i)=>{let s=this.state.network;i&&(s=u(i,this.info.supportedBlockchains)||"Unkown");let l=y(o,s);l.length>0&&this.updateState({accounts:l})},updateChainId:this.updateChainId.bind(this)});this.cleanupSubscribe=n}else!t&&this.cleanupSubscribe&&this.cleanupSubscribe()}setInfo(t){typeof t.supportedBlockchains<"u"&&(this.info.supportedBlockchains=t.supportedBlockchains),typeof t.isContractWallet<"u"&&(this.info.isContractWallet=t.isContractWallet)}setHandler(t){this.options.handler=t}getState(){return this.state}updateState(t){let n=[];typeof t.connected<"u"&&(this.state.connected=t.connected,n.push(["connected",t.connected])),typeof t.connecting<"u"&&(this.state.connecting=t.connecting,n.push(["connecting",t.connecting])),typeof t.reachable<"u"&&(this.state.reachable=t.reachable,n.push(["reachable",t.reachable])),typeof t.installed<"u"&&(this.state.installed=t.installed,n.push(["installed",t.installed])),typeof t.accounts<"u"&&(this.state.accounts=t.accounts,this.state.derivationPath=t.derivationPath,n.push(["accounts",t.accounts])),typeof t.network<"u"&&(this.state.network=t.network,n.push(["network",t.network]));let o=this.getState();n.forEach(([i,s])=>{let l={supportedBlockchains:this.info.supportedBlockchains,isContractWallet:this.info.isContractWallet,isHub:!1};this.options.handler(this.options.config.type,i,s,o,l)})}resetState(){this.updateState({connected:!1,connecting:!1,reachable:!1,accounts:null,network:null})}async getConnectionFromState(){return this.state.connected&&this.provider?{accounts:this.state.accounts,network:this.state.network,provider:this.provider}:null}updateChainId(t){let n=t?u(t,this.info.supportedBlockchains):"Unkown";this.updateState({network:n})}setInstalledAs(t){!S(this.options)&&t===!1||this.updateState({installed:t})}async tryGetInstance({network:t,force:n}){let o=null;if(this.setProvider(null),this.options.config.isAsyncInstance){let i={currentProvider:this.provider,meta:this.info.supportedBlockchains,force:n||!1,updateChainId:this.updateChainId.bind(this),getState:this.getState.bind(this)};t&&(i.network=t),o=await this.actions.getInstance(i)}else o=this.actions.getInstance();if(!o){this.setInstalledAs(!1),this.resetState();let i=`It seems your selected wallet (${this.options.config.type}) isn't installed.`;throw new Error(i)}return this.setProvider(o),o}},M=T;export{E as LegacyEvents,I as LegacyNetworks,M as LegacyWallet,N as Persistor,A as legacyEagerConnectHandler,O as legacyFormatAddressWithNetwork,u as legacyGetBlockChainNameFromId,b as legacyIsEvmNamespace,B as legacyReadAccountAddress};
|
|
1
|
+
var k=Object.defineProperty;var r=(a,t)=>k(a,"name",{value:t,configurable:!0});var I=(e=>(e.BTC="BTC",e.BSC="BSC",e.LTC="LTC",e.THORCHAIN="THOR",e.BCH="BCH",e.BINANCE="BNB",e.BLAST="BLAST",e.CELO="CELO",e.LINEA="LINEA",e.METIS="METIS",e.SONIC="SONIC",e.BERACHAIN="BERACHAIN",e.ZETA_CHAIN="ZETA_CHAIN",e.SCROLL="SCROLL",e.ZKSYNC="ZKSYNC",e.MONAD="MONAD",e.ETHEREUM="ETH",e.POLYGON="POLYGON",e.TERRA="TERRA",e.POLKADOT="",e.TRON="TRON",e.DOGE="DOGE",e.HARMONY="HARMONY",e.AVAX_CCHAIN="AVAX_CCHAIN",e.FANTOM="FANTOM",e.MOONBEAM="MOONBEAM",e.ARBITRUM="ARBITRUM",e.BOBA="BOBA",e.OPTIMISM="OPTIMISM",e.FUSE="FUSE",e.CRONOS="CRONOS",e.SOLANA="SOLANA",e.MOONRIVER="MOONRIVER",e.GNOSIS="GNOSIS",e.COSMOS="COSMOS",e.OSMOSIS="OSMOSIS",e.AXELAR="AXELAR",e.MARS="MARS",e.STRIDE="STRIDE",e.MAYA="MAYA",e.AKASH="AKASH",e.IRIS="IRIS",e.PERSISTENCE="PERSISTENCE",e.SENTINEL="SENTINEL",e.REGEN="REGEN",e.CRYPTO_ORG="CRYPTO_ORG",e.SIF="SIF",e.CHIHUAHUA="CHIHUAHUA",e.JUNO="JUNO",e.KUJIRA="KUJIRA",e.STARNAME="STARNAME",e.COMDEX="COMDEX",e.STARGAZE="STARGAZE",e.DESMOS="DESMOS",e.BITCANNA="BITCANNA",e.SECRET="SECRET",e.INJECTIVE="INJECTIVE",e.LUMNETWORK="LUMNETWORK",e.BANDCHAIN="BANDCHAIN",e.EMONEY="EMONEY",e.BITSONG="BITSONG",e.KI="KI",e.MEDIBLOC="MEDIBLOC",e.KONSTELLATION="KONSTELLATION",e.UMEE="UMEE",e.STARKNET="STARKNET",e.TON="TON",e.BASE="BASE",e.SUI="SUI",e.XRPL="XRPL",e.ZCASH="ZCASH",e.Unknown="Unkown",e))(I||{}),E=(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))(E||{});var N=class{static{r(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)}};function O(a,t){return`${t||""}:${a}`}r(O,"formatAddressWithNetwork");function y(a,t){return a?a.map(n=>O(n,t)):[]}r(y,"accountAddressesWithNetwork");function B(a){let[t,n]=a.split(":");return{network:t,address:n}}r(B,"readAccountAddress");function S(a){let{checkInstallation:t=!0}=a.config;return t}r(S,"needsCheckInstallation");var u=r((a,t)=>(a=typeof a=="string"&&a.startsWith("0x")?parseInt(a):a,Object.values(I).includes(String(a))?a:a==="Binance-Chain-Tigris"?"BNB":t.filter(o=>!!o.chainId).find(o=>(o.chainId?.startsWith("0x")?parseInt(o.chainId):o.chainId)==a)?.name||null),"getBlockChainNameFromId");async function A(a){if(await a.canEagerConnect())return await a.connectHandler();throw new Error(`can't restore connection for ${a.providerName}.`)}r(A,"eagerConnectHandler");function b(a){return a.namespace==="EVM"}r(b,"isEvmNamespace");var T=class{static{r(this,"Wallet")}provider;actions;state;options;info;cleanupSubscribe;constructor(t,n){this.actions=n,this.options=t,this.provider=null,this.info={supportedBlockchains:[],isContractWallet:!1,isHub:!1},this.state={connected:!1,connecting:!1,reachable:!1,installed:!1,accounts:null,network:null},S(t)||this.setInstalledAs(!0)}async suggestAndConnect(t){return this.actions.suggest&&await this.actions.suggest({instance:this.provider,meta:this.info.supportedBlockchains,network:t}),await this.connect(t)}async connect(t,n){if(this.state.connecting)throw new Error("Connecting...");let o=await this.getConnectionFromState(),i=this.state.network,s=t||i||this.options.config.defaultNetwork;if(o){let p=i!==s&&!!s;if(i===s)return o;let d=!0;if(this.actions.canSwitchNetworkTo&&(d=this.actions.canSwitchNetworkTo({provider:this.provider,meta:this.info.supportedBlockchains,network:s||""})),p&&d&&this.actions.switchNetwork)return await this.actions.switchNetwork({instance:this.provider,meta:this.info.supportedBlockchains,network:s,newInstance:this.tryGetInstance.bind(this),getState:this.getState.bind(this),updateChainId:this.updateChainId.bind(this)}),s!==this.state.network&&!this.options.config.isAsyncSwitchNetwork&&this.updateState({network:t}),{accounts:o.accounts,network:s,provider:this.provider}}let l=await this.tryGetInstance({network:t});this.updateState({connecting:!0}),this.setInstalledAs(!0);try{var g=await this.actions.connect({instance:l,network:s||void 0,meta:this.info.supportedBlockchains||[],namespaces:n})}catch(p){throw this.resetState(),p}this.updateState({connected:!0,reachable:!0,connecting:!1});let c=[],C=null,f;if(Array.isArray(g)){let p=null;c=g.flatMap(h=>{let v=h.chainId||"Unkown",m=u(v,this.info.supportedBlockchains)||"Unkown";return f=h.derivationPath?h.derivationPath:f,!p&&m!=="Unkown"&&this.info.supportedBlockchains.find(w=>w.name===m)?.info?.infoType==="EvmMetaInfo"&&(p=m),y(h.accounts,m)}).filter(Boolean),C=p||s||this.options.config.defaultNetwork}else{let p=g.chainId||"Unkown",d=u(p,this.info.supportedBlockchains)||"Unkown",h=g.derivationPath;c=y(g.accounts,d),C=d,f=h}return c.length>0&&this.updateState({accounts:c,network:C,derivationPath:f}),{accounts:this.state.accounts,network:this.state.network,provider:this.provider}}async disconnect(){this.resetState(),this.actions.disconnect&&this.actions.disconnect({instance:this.provider,destroyInstance:()=>{this.setProvider(null)}})}async eagerConnect(){let t=await this.tryGetInstance({network:void 0}),{canEagerConnect:n}=this.actions,o=this.options.config.type;return await A({canEagerConnect:async()=>{if(!n)throw new Error(`${o} provider hasn't implemented canEagerConnect.`);return await n({instance:t,meta:this.info.supportedBlockchains})},connectHandler:async()=>await this.connect(),providerName:o})}async getSigners(t){return await this.actions.getSigners(t)}getWalletInfo(t){return this.actions.getWalletInfo(t)}canSwitchNetworkTo(t,n){let o=this.actions.canSwitchNetworkTo;return o?o({network:t,meta:this.info.supportedBlockchains,provider:n}):!1}onInit(){if(!this.actions.getInstance)throw new Error(`Provider hasn't defined how to get wallet's instance. provider: ${this.options.config.type} on: onInit`);this.options.config.isAsyncInstance?S(this.options)&&this.actions.getInstance().then(t=>{t&&this.setInstalledAs(!0)}):this.actions.getInstance()&&!this.state.installed&&this.setInstalledAs(!0)}setProvider(t){if(this.provider=t,t&&this.actions.subscribe){let n=this.actions.subscribe({instance:t,state:this.state,meta:this.info.supportedBlockchains,connect:this.connect.bind(this),disconnect:this.disconnect.bind(this),updateAccounts:(o,i)=>{let s=this.state.network;i&&(s=u(i,this.info.supportedBlockchains)||"Unkown");let l=y(o,s);l.length>0&&this.updateState({accounts:l})},updateChainId:this.updateChainId.bind(this)});this.cleanupSubscribe=n}else!t&&this.cleanupSubscribe&&this.cleanupSubscribe()}setInfo(t){typeof t.supportedBlockchains<"u"&&(this.info.supportedBlockchains=t.supportedBlockchains),typeof t.isContractWallet<"u"&&(this.info.isContractWallet=t.isContractWallet)}setHandler(t){this.options.handler=t}getState(){return this.state}updateState(t){let n=[];typeof t.connected<"u"&&(this.state.connected=t.connected,n.push(["connected",t.connected])),typeof t.connecting<"u"&&(this.state.connecting=t.connecting,n.push(["connecting",t.connecting])),typeof t.reachable<"u"&&(this.state.reachable=t.reachable,n.push(["reachable",t.reachable])),typeof t.installed<"u"&&(this.state.installed=t.installed,n.push(["installed",t.installed])),typeof t.accounts<"u"&&(this.state.accounts=t.accounts,this.state.derivationPath=t.derivationPath,n.push(["accounts",t.accounts])),typeof t.network<"u"&&(this.state.network=t.network,n.push(["network",t.network]));let o=this.getState();n.forEach(([i,s])=>{let l={supportedBlockchains:this.info.supportedBlockchains,isContractWallet:this.info.isContractWallet,isHub:!1};this.options.handler(this.options.config.type,i,s,o,l)})}resetState(){this.updateState({connected:!1,connecting:!1,reachable:!1,accounts:null,network:null})}async getConnectionFromState(){return this.state.connected&&this.provider?{accounts:this.state.accounts,network:this.state.network,provider:this.provider}:null}updateChainId(t){let n=t?u(t,this.info.supportedBlockchains):"Unkown";this.updateState({network:n})}setInstalledAs(t){!S(this.options)&&t===!1||this.updateState({installed:t})}async tryGetInstance({network:t,force:n}){let o=null;if(this.setProvider(null),this.options.config.isAsyncInstance){let i={currentProvider:this.provider,meta:this.info.supportedBlockchains,force:n||!1,updateChainId:this.updateChainId.bind(this),getState:this.getState.bind(this)};t&&(i.network=t),o=await this.actions.getInstance(i)}else o=this.actions.getInstance();if(!o){this.setInstalledAs(!1),this.resetState();let i=`It seems your selected wallet (${this.options.config.type}) isn't installed.`;throw new Error(i)}return this.setProvider(o),o}},M=T;export{E as LegacyEvents,I as LegacyNetworks,M as LegacyWallet,N as Persistor,A as legacyEagerConnectHandler,O as legacyFormatAddressWithNetwork,u as legacyGetBlockChainNameFromId,b as legacyIsEvmNamespace,B as legacyReadAccountAddress};
|
|
2
2
|
//# sourceMappingURL=mod.js.map
|
package/dist/legacy/mod.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/legacy/types.ts", "../../src/legacy/persistor.ts", "../../src/legacy/helpers.ts", "../../src/legacy/utils.ts", "../../src/legacy/wallet.ts"],
|
|
4
|
-
"sourcesContent": ["import type { State as WalletState } from './wallet.js';\nimport type { Namespace } from '../namespaces/common/mod.js';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nexport enum Networks {\n BTC = 'BTC',\n BSC = 'BSC',\n LTC = 'LTC',\n THORCHAIN = 'THOR',\n BCH = 'BCH',\n BINANCE = 'BNB',\n BLAST = 'BLAST',\n CELO = 'CELO',\n LINEA = 'LINEA',\n METIS = 'METIS',\n SONIC = 'SONIC',\n BERACHAIN = 'BERACHAIN',\n ZETA_CHAIN = 'ZETA_CHAIN',\n SCROLL = 'SCROLL',\n ZKSYNC = 'ZKSYNC',\n MONAD = 'MONAD',\n ETHEREUM = 'ETH',\n POLYGON = 'POLYGON',\n TERRA = 'TERRA',\n POLKADOT = '',\n TRON = 'TRON',\n DOGE = 'DOGE',\n HARMONY = 'HARMONY',\n AVAX_CCHAIN = 'AVAX_CCHAIN',\n FANTOM = 'FANTOM',\n MOONBEAM = 'MOONBEAM',\n ARBITRUM = 'ARBITRUM',\n BOBA = 'BOBA',\n OPTIMISM = 'OPTIMISM',\n FUSE = 'FUSE',\n CRONOS = 'CRONOS',\n SOLANA = 'SOLANA',\n MOONRIVER = 'MOONRIVER',\n GNOSIS = 'GNOSIS',\n COSMOS = 'COSMOS',\n OSMOSIS = 'OSMOSIS',\n AXELAR = 'AXELAR',\n MARS = 'MARS',\n STRIDE = 'STRIDE',\n MAYA = 'MAYA',\n AKASH = 'AKASH',\n IRIS = 'IRIS',\n PERSISTENCE = 'PERSISTENCE',\n SENTINEL = 'SENTINEL',\n REGEN = 'REGEN',\n CRYPTO_ORG = 'CRYPTO_ORG',\n SIF = 'SIF',\n CHIHUAHUA = 'CHIHUAHUA',\n JUNO = 'JUNO',\n KUJIRA = 'KUJIRA',\n STARNAME = 'STARNAME',\n COMDEX = 'COMDEX',\n STARGAZE = 'STARGAZE',\n DESMOS = 'DESMOS',\n BITCANNA = 'BITCANNA',\n SECRET = 'SECRET',\n INJECTIVE = 'INJECTIVE',\n LUMNETWORK = 'LUMNETWORK',\n BANDCHAIN = 'BANDCHAIN',\n EMONEY = 'EMONEY',\n BITSONG = 'BITSONG',\n KI = 'KI',\n MEDIBLOC = 'MEDIBLOC',\n KONSTELLATION = 'KONSTELLATION',\n UMEE = 'UMEE',\n STARKNET = 'STARKNET',\n TON = 'TON',\n BASE = 'BASE',\n SUI = 'SUI',\n XRPL = 'XRPL',\n\n // Using instead of null\n Unknown = 'Unkown',\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype InstanceType = any;\n\nexport type NamespaceData = {\n namespace: Namespace;\n derivationPath?: string;\n};\n\nexport type WalletType = string;\nexport type Network = string;\n\nexport type InstallObjects = {\n CHROME?: string;\n FIREFOX?: string;\n EDGE?: string;\n BRAVE?: string;\n DEFAULT: string;\n};\n\nexport type NamespaceMeta = {\n label: string;\n /**\n * By using a matched `blockchain.name` (in meta) and `id`, we show logo in Namespace modal\n * e.g. ETH\n */\n id: string;\n value: Namespace;\n unsupported?: boolean;\n getSupportedChains: (chains: BlockchainMeta[]) => BlockchainMeta[];\n};\n\ninterface NeedsNamespace {\n selection: 'single' | 'multiple';\n data: NamespaceMeta[];\n}\n\ninterface NeedsDerivationPath {\n data: {\n id: string;\n label: string;\n namespace: Namespace;\n generateDerivationPath: (index: string) => string;\n }[];\n}\n\nexport type WalletInfo = {\n name: string;\n img: string;\n installLink: InstallObjects | string;\n /**\n * @deprecated we don't use this value anymore.\n */\n color: string;\n supportedChains: BlockchainMeta[];\n showOnMobile?: boolean;\n isContractWallet?: boolean;\n mobileWallet?: boolean;\n\n needsDerivationPath?: NeedsDerivationPath;\n needsNamespace?: NeedsNamespace;\n};\n\nexport type State = {\n [key: string]: WalletState | undefined;\n};\n\nexport type ConnectResult = {\n accounts: string[] | null;\n network: Network | null;\n provider: InstanceType;\n};\n\nexport type Providers = { [type in WalletType]?: InstanceType };\nexport type NetworkProviderMap = Map<Networks, unknown>;\n\nexport enum Events {\n CONNECTED = 'connected',\n CONNECTING = 'connecting',\n REACHABLE = 'reachable',\n INSTALLED = 'installed',\n ACCOUNTS = 'accounts',\n NETWORK = 'network',\n // Hub only events\n NAMESPACE_DISCONNECTED = 'namespace_disconnected',\n\n PROVIDER_DISCONNECTED = 'provider_disconnected',\n}\n\nexport type ProviderConnectResult = {\n accounts: string[];\n chainId: string;\n derivationPath?: string;\n};\n\nexport type GetInstanceOptions = {\n network?: Network;\n currentProvider: InstanceType;\n meta: BlockchainMeta[];\n getState: () => WalletState;\n /**\n * We always get the instance once and reuse it whenever we needs. By using this option\n * We can force the library to get a new instance and replace it with the old one.\n *\n * Originally, we used this option for wallet connect 1 and its switching network challenge.\n */\n force?: boolean;\n updateChainId: (chainId: number | string) => void;\n};\n\nexport type GetInstance =\n | (() => InstanceType)\n | ((options: GetInstanceOptions) => Promise<InstanceType>);\n\nexport type TryGetInstance =\n | (() => InstanceType)\n | ((\n options: Pick<GetInstanceOptions, 'force' | 'network'>\n ) => Promise<InstanceType>);\n\nexport type Connect = (options: {\n instance: InstanceType;\n network?: Network;\n meta: BlockchainMeta[];\n namespaces?: NamespaceData[];\n}) => Promise<ProviderConnectResult | ProviderConnectResult[]>;\n\nexport type Disconnect = (options: {\n instance: InstanceType;\n destroyInstance: () => void;\n}) => Promise<void>;\n\ntype CleanupSubscribe = () => void;\n\nexport type Subscribe = (options: {\n instance: InstanceType;\n state: WalletState;\n meta: BlockchainMeta[];\n updateChainId: (chainId: string) => void;\n updateAccounts: (accounts: string[], chainId?: string) => void;\n connect: (network?: Network) => void;\n disconnect: () => void;\n}) => CleanupSubscribe | void;\n\nexport type SwitchNetwork = (options: {\n instance: InstanceType;\n network: Network;\n meta: BlockchainMeta[];\n newInstance?: TryGetInstance;\n getState?: () => WalletState;\n updateChainId: (chainId: string) => void;\n}) => Promise<void>;\n\nexport type Suggest = (options: {\n instance: InstanceType;\n network: Network;\n meta: BlockchainMeta[];\n}) => Promise<void>;\n\nexport type CanSwitchNetwork = (options: {\n network: Network;\n meta: BlockchainMeta[];\n provider: InstanceType;\n}) => boolean;\n\nexport type CanEagerConnect = (options: {\n instance: InstanceType;\n meta: BlockchainMeta[];\n}) => Promise<boolean>;\n\nexport type EagerConnectResult<I = unknown> = {\n accounts: string[] | null;\n network: string | null;\n provider: I | null;\n};\n\nexport interface WalletActions {\n connect: Connect;\n getInstance: InstanceType;\n disconnect?: Disconnect;\n subscribe?: Subscribe;\n // unsubscribe, // coupled to subscribe.\n\n // Optional, but should be provided at the same time.\n suggest?: Suggest;\n switchNetwork?: SwitchNetwork;\n getSigners: (provider: InstanceType) => Promise<SignerFactory>;\n canSwitchNetworkTo?: CanSwitchNetwork;\n canEagerConnect?: CanEagerConnect;\n getWalletInfo(allBlockChains: BlockchainMeta[]): WalletInfo;\n}\n\nexport interface WalletConfig {\n type: WalletType;\n defaultNetwork?: Network;\n checkInstallation?: boolean;\n isAsyncInstance?: boolean;\n isAsyncSwitchNetwork?: boolean;\n}\n\nexport type WalletProviders = Map<\n WalletType,\n {\n actions: WalletActions;\n config: WalletConfig;\n }\n>;\n\nexport type ProviderInterface = { config: WalletConfig } & WalletActions;\n\n// it comes from wallets.ts and `connect`\ntype NetworkTypeFromLegacyConnect = Network | undefined;\n\nexport type NamespaceInputForConnect<T extends Namespace = Namespace> = {\n /**\n * By default, you should specify namespace (e.g. evm).\n */\n namespace: T;\n /**\n * In some cases, we need to connect a specific network on a namespace. e.g. Polygon on EVM.\n */\n network: NetworkTypeFromLegacyConnect;\n derivationPath?: string;\n};\n", "export interface PersistStorage<T> {\n getItem: (name: string) => T | null;\n setItem: (name: string, value: T) => void;\n removeItem: (name: string) => void;\n}\n\nexport class Persistor<T> implements PersistStorage<T> {\n getItem(name: string) {\n const item = localStorage.getItem(name);\n const parsedItem = item ? (JSON.parse(item) as T) : null;\n return parsedItem;\n }\n setItem(name: string, value: T) {\n localStorage.setItem(name, JSON.stringify(value));\n }\n removeItem(name: string) {\n localStorage.removeItem(name);\n }\n}\n", "import type { Network } from './types.js';\nimport type { Options } from './wallet.js';\nimport type { BlockchainMeta } from 'rango-types';\n\nimport { Networks } from './types.js';\n\nexport function formatAddressWithNetwork(\n address: string,\n network?: Network | null\n) {\n return `${network || ''}:${address}`;\n}\n\nexport function accountAddressesWithNetwork(\n addresses: string[] | null,\n network?: Network | null\n) {\n if (!addresses) {\n return [];\n }\n\n return addresses.map((address) => {\n return formatAddressWithNetwork(address, network);\n });\n}\n\nexport function readAccountAddress(addressWithNetwork: string): {\n address: string;\n network: Network;\n} {\n const [network, address] = addressWithNetwork.split(':');\n\n return {\n network,\n address,\n };\n}\n\nexport function needsCheckInstallation(options: Options) {\n const { checkInstallation = true } = options.config;\n return checkInstallation;\n}\n\nexport const getBlockChainNameFromId = (\n chainId: string | number,\n blockchains: BlockchainMeta[]\n): Network | null => {\n chainId =\n typeof chainId === 'string' && chainId.startsWith('0x')\n ? parseInt(chainId)\n : chainId;\n\n /*\n * Sometimes providers are passing `Network` as chainId.\n * If chainId is a `Network`, we return itself.\n */\n const allNetworks = Object.values(Networks);\n if (allNetworks.includes(String(chainId) as Networks)) {\n return chainId as Networks;\n }\n\n if (chainId === 'Binance-Chain-Tigris') {\n return Networks.BINANCE;\n }\n return (\n blockchains\n .filter((blockchainMeta) => !!blockchainMeta.chainId)\n .find((blockchainMeta) => {\n const blockchainChainId = blockchainMeta.chainId?.startsWith('0x')\n ? parseInt(blockchainMeta.chainId)\n : blockchainMeta.chainId;\n return blockchainChainId == chainId;\n })?.name || null\n );\n};\n", "import type { NamespaceInputForConnect } from './types.js';\n\nexport async function eagerConnectHandler<R = unknown>(params: {\n canEagerConnect: () => Promise<boolean>;\n connectHandler: () => Promise<R>;\n providerName: string;\n}) {\n // Check if we can eagerly connect to the wallet\n if (await params.canEagerConnect()) {\n // Connect to wallet as usual\n return await params.connectHandler();\n }\n throw new Error(`can't restore connection for ${params.providerName}.`);\n}\n\nexport function isEvmNamespace(\n namespace: NamespaceInputForConnect\n): namespace is NamespaceInputForConnect<'EVM'> {\n return namespace.namespace === 'EVM';\n}\n", "import type {\n EagerConnectResult,\n GetInstanceOptions,\n NamespaceData,\n Network,\n WalletActions,\n WalletConfig,\n WalletType,\n} from './types.js';\nimport type { Namespace } from '../namespaces/common/types.js';\nimport type { BlockchainMeta } from 'rango-types';\n\nimport {\n accountAddressesWithNetwork,\n getBlockChainNameFromId,\n needsCheckInstallation,\n} from './helpers.js';\nimport { Events, Networks } from './types.js';\nimport { eagerConnectHandler } from './utils.js';\n\nexport type EventHandler = (\n type: WalletType,\n event: Events,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any,\n coreState: State,\n info: EventInfo\n) => void;\n\nexport type EventInfo = {\n supportedBlockchains: BlockchainMeta[];\n isContractWallet: boolean;\n\n // Hub fields\n isHub: boolean;\n // will be set alongside ACCOUNT event\n namespace?: Namespace;\n derivationPath?: string;\n};\n\nexport interface State {\n connected: boolean;\n connecting: boolean;\n /**\n * @depreacted it always returns `false`. don't use it.\n */\n reachable: boolean;\n installed: boolean;\n accounts: string[] | null;\n network: Network | null;\n derivationPath?: string;\n}\n\nexport interface Options {\n config: WalletConfig;\n handler: EventHandler;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nclass Wallet<InstanceType = any> {\n public provider: InstanceType | null;\n private actions: WalletActions;\n private state: State;\n private options: Options;\n private info: EventInfo;\n private cleanupSubscribe?: (() => void) | void;\n\n constructor(options: Options, actions: WalletActions) {\n this.actions = actions;\n this.options = options;\n this.provider = null;\n this.info = {\n supportedBlockchains: [],\n isContractWallet: false,\n isHub: false,\n };\n this.state = {\n connected: false,\n connecting: false,\n // TODO: Remove\n reachable: false,\n installed: false,\n accounts: null,\n network: null,\n };\n\n if (!needsCheckInstallation(options)) {\n this.setInstalledAs(true);\n }\n }\n\n async suggestAndConnect(network: Network) {\n if (this.actions.suggest) {\n await this.actions.suggest({\n instance: this.provider,\n meta: this.info.supportedBlockchains,\n network,\n });\n }\n return await this.connect(network);\n }\n\n async connect(network?: Network, namespaces?: NamespaceData[]) {\n // If it's connecting, nothing do.\n if (this.state.connecting) {\n throw new Error('Connecting...');\n }\n\n const connectionFromState = await this.getConnectionFromState();\n const currentNetwork = this.state.network;\n /*\n * If a network hasn't been provided and also we have `lastNetwork`\n * We will use lastNetwork to make sure we will not\n * Ask the user to switch his network wrongly.\n */\n const requestedNetwork =\n network || currentNetwork || this.options.config.defaultNetwork;\n\n if (connectionFromState) {\n const networkChanged =\n currentNetwork !== requestedNetwork && !!requestedNetwork;\n\n // Reuse current connection if nothing has changed and we already have the connection in memory.\n if (currentNetwork === requestedNetwork) {\n return connectionFromState;\n }\n\n let canSwitch = true;\n if (this.actions.canSwitchNetworkTo) {\n canSwitch = this.actions.canSwitchNetworkTo({\n provider: this.provider,\n meta: this.info.supportedBlockchains,\n network: requestedNetwork || '',\n });\n }\n\n if (networkChanged && canSwitch && !!this.actions.switchNetwork) {\n await this.actions.switchNetwork({\n instance: this.provider,\n meta: this.info.supportedBlockchains,\n // TODO: Fix type error\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n network: requestedNetwork,\n newInstance: this.tryGetInstance.bind(this),\n getState: this.getState.bind(this),\n updateChainId: this.updateChainId.bind(this),\n });\n\n /*\n * We assume if we reach here (`switchNetwork` not throwing error), Switch successfully has been done.\n * But for providers with async switch network like wallet-connect, we need to wait for chain change\n * event before changing network.\n */\n if (\n requestedNetwork !== this.state.network &&\n !this.options.config.isAsyncSwitchNetwork\n ) {\n this.updateState({\n network,\n });\n }\n\n return {\n // Only network has been changed, so we reuse accounts from what we have already.\n accounts: connectionFromState.accounts,\n network: requestedNetwork,\n provider: this.provider,\n };\n }\n\n // If none of the above conditions didn't match, continute to connect.\n }\n\n // We are connecting to wallet for the first time\n\n // Trying to get wallet's instance, if it's not available, raise an error.\n const instance = await this.tryGetInstance({ network });\n\n // Instance exists, trying to connect\n this.updateState({\n connecting: true,\n });\n this.setInstalledAs(true);\n\n try {\n // eslint-disable-next-line no-var\n var connectResult = await this.actions.connect({\n instance,\n network: requestedNetwork || undefined,\n meta: this.info.supportedBlockchains || [],\n namespaces,\n });\n } catch (e) {\n this.resetState();\n throw e;\n }\n\n this.updateState({\n connected: true,\n reachable: true,\n connecting: false,\n });\n\n // TODO: Handle accounts.length > 0\n\n // Inserting accounts into our state.\n let nextAccounts: string[] = [];\n let nextNetwork: Network | null | undefined = null;\n let nextDerivationPath: string | undefined = undefined;\n if (Array.isArray(connectResult)) {\n let activeEvmNetwork: Network | null = null;\n const accounts = connectResult.flatMap((blockchain) => {\n const chainId = blockchain.chainId || Networks.Unknown;\n // Try to map chainId with a Network, if not found, we use chainId directly.\n const network =\n getBlockChainNameFromId(chainId, this.info.supportedBlockchains) ||\n Networks.Unknown;\n nextDerivationPath = blockchain.derivationPath\n ? blockchain.derivationPath\n : nextDerivationPath;\n\n /*\n * When connecting to an evm instance, it will return address and wallet's active chain.\n * On switch network we are comparing state's network and what passed as requestedNetwork.\n * This code is for making sure we are setting correct active chain in state if it's evm.\n */\n if (!activeEvmNetwork && network !== Networks.Unknown) {\n const blockchainMeta = this.info.supportedBlockchains.find(\n (blockchain) => blockchain.name === network\n );\n if (blockchainMeta?.info?.infoType === 'EvmMetaInfo') {\n activeEvmNetwork = network;\n }\n }\n // TODO: second parameter should be `string` when we decided to open source the package.\n return accountAddressesWithNetwork(blockchain.accounts, network);\n });\n nextAccounts = accounts.filter(Boolean);\n nextNetwork =\n activeEvmNetwork ||\n requestedNetwork ||\n this.options.config.defaultNetwork;\n } else {\n const chainId = connectResult.chainId || Networks.Unknown;\n const network =\n getBlockChainNameFromId(chainId, this.info.supportedBlockchains) ||\n Networks.Unknown;\n const derivationPath = connectResult.derivationPath;\n\n // We fallback to current active network if `chainId` not provided.\n nextAccounts = accountAddressesWithNetwork(\n connectResult.accounts,\n network\n );\n nextNetwork = network;\n nextDerivationPath = derivationPath;\n }\n\n if (nextAccounts.length > 0) {\n this.updateState({\n accounts: nextAccounts,\n network: nextNetwork,\n derivationPath: nextDerivationPath,\n });\n }\n\n return {\n accounts: this.state.accounts,\n network: this.state.network,\n provider: this.provider,\n };\n }\n\n async disconnect() {\n this.resetState();\n\n if (this.actions.disconnect) {\n void this.actions.disconnect({\n instance: this.provider,\n // On wallet connect, we need to destory the instance and get a whole new instance when we are going to connect\n destroyInstance: () => {\n this.setProvider(null);\n },\n });\n }\n }\n\n // This method is only used for auto connection\n async eagerConnect(): Promise<EagerConnectResult<InstanceType>> {\n const instance = await this.tryGetInstance({ network: undefined });\n const { canEagerConnect } = this.actions;\n const providerName = this.options.config.type;\n\n return await eagerConnectHandler({\n canEagerConnect: async () => {\n if (!canEagerConnect) {\n throw new Error(\n `${providerName} provider hasn't implemented canEagerConnect.`\n );\n }\n\n return await canEagerConnect({\n instance: instance,\n meta: this.info.supportedBlockchains,\n });\n },\n connectHandler: async () => {\n const result = await this.connect();\n return result;\n },\n providerName,\n });\n }\n\n async getSigners(provider: InstanceType) {\n return await this.actions.getSigners(provider);\n }\n getWalletInfo(allBlockChains: BlockchainMeta[]) {\n return this.actions.getWalletInfo(allBlockChains);\n }\n canSwitchNetworkTo(network: Network, provider: InstanceType) {\n const switchTo = this.actions.canSwitchNetworkTo;\n if (!switchTo) {\n return false;\n }\n\n return switchTo({\n network,\n meta: this.info.supportedBlockchains,\n provider,\n });\n }\n\n onInit() {\n // some times functions can be overridden by wallets. see rf-2119\n if (!this.actions.getInstance) {\n throw new Error(\n `Provider hasn't defined how to get wallet's instance. provider: ${this.options.config.type} on: onInit`\n );\n }\n\n if (!this.options.config.isAsyncInstance) {\n const instance = this.actions.getInstance();\n if (!!instance && !this.state.installed) {\n this.setInstalledAs(true);\n }\n } else if (needsCheckInstallation(this.options)) {\n this.actions.getInstance().then((data: unknown) => {\n if (data) {\n this.setInstalledAs(true);\n }\n });\n }\n }\n\n setProvider(value: InstanceType | null) {\n this.provider = value;\n if (!!value && !!this.actions.subscribe) {\n const cleanup = this.actions.subscribe({\n instance: value,\n state: this.state,\n meta: this.info.supportedBlockchains,\n connect: this.connect.bind(this),\n disconnect: this.disconnect.bind(this),\n updateAccounts: (accounts, chainId) => {\n let network = this.state.network;\n if (chainId) {\n network =\n getBlockChainNameFromId(\n chainId,\n this.info.supportedBlockchains\n ) || Networks.Unknown;\n }\n\n const nextAccounts = accountAddressesWithNetwork(accounts, network);\n if (nextAccounts.length > 0) {\n this.updateState({\n accounts: nextAccounts,\n });\n }\n },\n updateChainId: this.updateChainId.bind(this),\n });\n this.cleanupSubscribe = cleanup;\n } else if (!value && this.cleanupSubscribe) {\n this.cleanupSubscribe();\n }\n }\n\n setInfo(info: Partial<EventInfo>) {\n if (typeof info.supportedBlockchains !== 'undefined') {\n this.info.supportedBlockchains = info.supportedBlockchains;\n }\n if (typeof info.isContractWallet !== 'undefined') {\n this.info.isContractWallet = info.isContractWallet;\n }\n }\n\n setHandler(handler: EventHandler) {\n this.options.handler = handler;\n }\n\n getState(): State {\n return this.state;\n }\n\n updateState(states: Partial<State>) {\n /*\n * We will notify handler after updating all the states.\n * Because when we call `handler` it will has latest states.\n */\n const updates: [Events, unknown][] = [];\n\n if (typeof states.connected !== 'undefined') {\n this.state.connected = states.connected;\n updates.push([Events.CONNECTED, states.connected]);\n }\n if (typeof states.connecting !== 'undefined') {\n this.state.connecting = states.connecting;\n updates.push([Events.CONNECTING, states.connecting]);\n }\n if (typeof states.reachable !== 'undefined') {\n this.state.reachable = states.reachable;\n updates.push([Events.REACHABLE, states.reachable]);\n }\n if (typeof states.installed !== 'undefined') {\n this.state.installed = states.installed;\n updates.push([Events.INSTALLED, states.installed]);\n }\n if (typeof states.accounts !== 'undefined') {\n this.state.accounts = states.accounts;\n this.state.derivationPath = states.derivationPath;\n updates.push([Events.ACCOUNTS, states.accounts]);\n }\n if (typeof states.network !== 'undefined') {\n this.state.network = states.network;\n updates.push([Events.NETWORK, states.network]);\n }\n\n const state = this.getState();\n updates.forEach(([name, value]) => {\n const eventInfo: EventInfo = {\n supportedBlockchains: this.info.supportedBlockchains,\n isContractWallet: this.info.isContractWallet,\n isHub: false,\n };\n this.options.handler(\n this.options.config.type,\n name,\n value,\n state,\n eventInfo\n );\n });\n }\n\n resetState() {\n this.updateState({\n connected: false,\n connecting: false,\n reachable: false,\n accounts: null,\n network: null,\n });\n }\n\n private async getConnectionFromState() {\n // Already connected, so we return provider that we have in memory.\n\n /*\n * For switching network on Trust Wallet (WalletConnect),\n * We only kill the session (and not restting the whole state)\n * So we are relying on this.provider for achieving this functionality.\n */\n if (this.state.connected && !!this.provider) {\n return {\n accounts: this.state.accounts,\n network: this.state.network,\n provider: this.provider,\n };\n }\n\n return null;\n }\n\n private updateChainId(chainId: string | number) {\n const network = chainId\n ? getBlockChainNameFromId(chainId, this.info.supportedBlockchains)\n : Networks.Unknown;\n\n this.updateState({\n network,\n });\n }\n\n private setInstalledAs(value: boolean) {\n if (!needsCheckInstallation(this.options) && value === false) {\n return;\n }\n\n this.updateState({\n installed: value,\n });\n }\n // eslint-disable-next-line destructuring/in-methods-params\n private async tryGetInstance({\n network,\n force,\n }: {\n network?: Network;\n force?: boolean;\n }) {\n let instance = null;\n /*\n * For switching network on Trust Wallet (WalletConnect),\n * We only kill the session (and not restting the whole state)\n * So we are relying on this.provider for achieving this functionality.\n */\n this.setProvider(null);\n if (this.options.config.isAsyncInstance) {\n // Trying to connect\n const instanceOptions: GetInstanceOptions = {\n currentProvider: this.provider,\n meta: this.info.supportedBlockchains,\n force: force || false,\n updateChainId: this.updateChainId.bind(this),\n getState: this.getState.bind(this),\n };\n\n if (network) {\n instanceOptions.network = network;\n }\n instance = await this.actions.getInstance(instanceOptions);\n } else {\n instance = this.actions.getInstance();\n }\n\n if (!instance) {\n this.setInstalledAs(false);\n this.resetState();\n\n const error_message = `It seems your selected wallet (${this.options.config.type}) isn't installed.`;\n throw new Error(error_message);\n }\n\n this.setProvider(instance);\n return instance;\n }\n}\n\nexport default Wallet;\n"],
|
|
5
|
-
"mappings": "+EAIO,IAAKA,OACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,UAAY,OACZA,EAAA,IAAM,MACNA,EAAA,QAAU,MACVA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,UAAY,YACZA,EAAA,WAAa,aACbA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,SAAW,MACXA,EAAA,QAAU,UACVA,EAAA,MAAQ,QACRA,EAAA,SAAW,GACXA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,YAAc,cACdA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,SAAW,WACXA,EAAA,KAAO,OACPA,EAAA,SAAW,WACXA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,UAAY,YACZA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,YAAc,cACdA,EAAA,SAAW,WACXA,EAAA,MAAQ,QACRA,EAAA,WAAa,aACbA,EAAA,IAAM,MACNA,EAAA,UAAY,YACZA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,UAAY,YACZA,EAAA,WAAa,aACbA,EAAA,UAAY,YACZA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,GAAK,KACLA,EAAA,SAAW,WACXA,EAAA,cAAgB,gBAChBA,EAAA,KAAO,OACPA,EAAA,SAAW,WACXA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,KAAO,
|
|
4
|
+
"sourcesContent": ["import type { State as WalletState } from './wallet.js';\nimport type { Namespace } from '../namespaces/common/mod.js';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nexport enum Networks {\n BTC = 'BTC',\n BSC = 'BSC',\n LTC = 'LTC',\n THORCHAIN = 'THOR',\n BCH = 'BCH',\n BINANCE = 'BNB',\n BLAST = 'BLAST',\n CELO = 'CELO',\n LINEA = 'LINEA',\n METIS = 'METIS',\n SONIC = 'SONIC',\n BERACHAIN = 'BERACHAIN',\n ZETA_CHAIN = 'ZETA_CHAIN',\n SCROLL = 'SCROLL',\n ZKSYNC = 'ZKSYNC',\n MONAD = 'MONAD',\n ETHEREUM = 'ETH',\n POLYGON = 'POLYGON',\n TERRA = 'TERRA',\n POLKADOT = '',\n TRON = 'TRON',\n DOGE = 'DOGE',\n HARMONY = 'HARMONY',\n AVAX_CCHAIN = 'AVAX_CCHAIN',\n FANTOM = 'FANTOM',\n MOONBEAM = 'MOONBEAM',\n ARBITRUM = 'ARBITRUM',\n BOBA = 'BOBA',\n OPTIMISM = 'OPTIMISM',\n FUSE = 'FUSE',\n CRONOS = 'CRONOS',\n SOLANA = 'SOLANA',\n MOONRIVER = 'MOONRIVER',\n GNOSIS = 'GNOSIS',\n COSMOS = 'COSMOS',\n OSMOSIS = 'OSMOSIS',\n AXELAR = 'AXELAR',\n MARS = 'MARS',\n STRIDE = 'STRIDE',\n MAYA = 'MAYA',\n AKASH = 'AKASH',\n IRIS = 'IRIS',\n PERSISTENCE = 'PERSISTENCE',\n SENTINEL = 'SENTINEL',\n REGEN = 'REGEN',\n CRYPTO_ORG = 'CRYPTO_ORG',\n SIF = 'SIF',\n CHIHUAHUA = 'CHIHUAHUA',\n JUNO = 'JUNO',\n KUJIRA = 'KUJIRA',\n STARNAME = 'STARNAME',\n COMDEX = 'COMDEX',\n STARGAZE = 'STARGAZE',\n DESMOS = 'DESMOS',\n BITCANNA = 'BITCANNA',\n SECRET = 'SECRET',\n INJECTIVE = 'INJECTIVE',\n LUMNETWORK = 'LUMNETWORK',\n BANDCHAIN = 'BANDCHAIN',\n EMONEY = 'EMONEY',\n BITSONG = 'BITSONG',\n KI = 'KI',\n MEDIBLOC = 'MEDIBLOC',\n KONSTELLATION = 'KONSTELLATION',\n UMEE = 'UMEE',\n STARKNET = 'STARKNET',\n TON = 'TON',\n BASE = 'BASE',\n SUI = 'SUI',\n XRPL = 'XRPL',\n ZCASH = 'ZCASH',\n\n // Using instead of null\n Unknown = 'Unkown',\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype InstanceType = any;\n\nexport type NamespaceData = {\n namespace: Namespace;\n derivationPath?: string;\n};\n\nexport type WalletType = string;\nexport type Network = string;\n\nexport type InstallObjects = {\n CHROME?: string;\n FIREFOX?: string;\n EDGE?: string;\n BRAVE?: string;\n DEFAULT: string;\n};\n\nexport type NamespaceMeta = {\n label: string;\n /**\n * By using a matched `blockchain.name` (in meta) and `id`, we show logo in Namespace modal\n * e.g. ETH\n */\n id: string;\n value: Namespace;\n unsupported?: boolean;\n getSupportedChains: (chains: BlockchainMeta[]) => BlockchainMeta[];\n};\n\ninterface NeedsNamespace {\n selection: 'single' | 'multiple';\n data: NamespaceMeta[];\n}\n\ninterface NeedsDerivationPath {\n data: {\n id: string;\n label: string;\n namespace: Namespace;\n generateDerivationPath: (index: string) => string;\n }[];\n}\n\nexport type WalletInfo = {\n name: string;\n img: string;\n installLink: InstallObjects | string;\n /**\n * @deprecated we don't use this value anymore.\n */\n color: string;\n supportedChains: BlockchainMeta[];\n showOnMobile?: boolean;\n isContractWallet?: boolean;\n mobileWallet?: boolean;\n\n needsDerivationPath?: NeedsDerivationPath;\n needsNamespace?: NeedsNamespace;\n};\n\nexport type State = {\n [key: string]: WalletState | undefined;\n};\n\nexport type ConnectResult = {\n accounts: string[] | null;\n network: Network | null;\n provider: InstanceType;\n};\n\nexport type Providers = { [type in WalletType]?: InstanceType };\nexport type NetworkProviderMap = Map<Networks, unknown>;\n\nexport enum Events {\n CONNECTED = 'connected',\n CONNECTING = 'connecting',\n REACHABLE = 'reachable',\n INSTALLED = 'installed',\n ACCOUNTS = 'accounts',\n NETWORK = 'network',\n // Hub only events\n NAMESPACE_DISCONNECTED = 'namespace_disconnected',\n\n PROVIDER_DISCONNECTED = 'provider_disconnected',\n}\n\nexport type ProviderConnectResult = {\n accounts: string[];\n chainId: string;\n derivationPath?: string;\n};\n\nexport type GetInstanceOptions = {\n network?: Network;\n currentProvider: InstanceType;\n meta: BlockchainMeta[];\n getState: () => WalletState;\n /**\n * We always get the instance once and reuse it whenever we needs. By using this option\n * We can force the library to get a new instance and replace it with the old one.\n *\n * Originally, we used this option for wallet connect 1 and its switching network challenge.\n */\n force?: boolean;\n updateChainId: (chainId: number | string) => void;\n};\n\nexport type GetInstance =\n | (() => InstanceType)\n | ((options: GetInstanceOptions) => Promise<InstanceType>);\n\nexport type TryGetInstance =\n | (() => InstanceType)\n | ((\n options: Pick<GetInstanceOptions, 'force' | 'network'>\n ) => Promise<InstanceType>);\n\nexport type Connect = (options: {\n instance: InstanceType;\n network?: Network;\n meta: BlockchainMeta[];\n namespaces?: NamespaceData[];\n}) => Promise<ProviderConnectResult | ProviderConnectResult[]>;\n\nexport type Disconnect = (options: {\n instance: InstanceType;\n destroyInstance: () => void;\n}) => Promise<void>;\n\ntype CleanupSubscribe = () => void;\n\nexport type Subscribe = (options: {\n instance: InstanceType;\n state: WalletState;\n meta: BlockchainMeta[];\n updateChainId: (chainId: string) => void;\n updateAccounts: (accounts: string[], chainId?: string) => void;\n connect: (network?: Network) => void;\n disconnect: () => void;\n}) => CleanupSubscribe | void;\n\nexport type SwitchNetwork = (options: {\n instance: InstanceType;\n network: Network;\n meta: BlockchainMeta[];\n newInstance?: TryGetInstance;\n getState?: () => WalletState;\n updateChainId: (chainId: string) => void;\n}) => Promise<void>;\n\nexport type Suggest = (options: {\n instance: InstanceType;\n network: Network;\n meta: BlockchainMeta[];\n}) => Promise<void>;\n\nexport type CanSwitchNetwork = (options: {\n network: Network;\n meta: BlockchainMeta[];\n provider: InstanceType;\n}) => boolean;\n\nexport type CanEagerConnect = (options: {\n instance: InstanceType;\n meta: BlockchainMeta[];\n}) => Promise<boolean>;\n\nexport type EagerConnectResult<I = unknown> = {\n accounts: string[] | null;\n network: string | null;\n provider: I | null;\n};\n\nexport interface WalletActions {\n connect: Connect;\n getInstance: InstanceType;\n disconnect?: Disconnect;\n subscribe?: Subscribe;\n // unsubscribe, // coupled to subscribe.\n\n // Optional, but should be provided at the same time.\n suggest?: Suggest;\n switchNetwork?: SwitchNetwork;\n getSigners: (provider: InstanceType) => Promise<SignerFactory>;\n canSwitchNetworkTo?: CanSwitchNetwork;\n canEagerConnect?: CanEagerConnect;\n getWalletInfo(allBlockChains: BlockchainMeta[]): WalletInfo;\n}\n\nexport interface WalletConfig {\n type: WalletType;\n defaultNetwork?: Network;\n checkInstallation?: boolean;\n isAsyncInstance?: boolean;\n isAsyncSwitchNetwork?: boolean;\n}\n\nexport type WalletProviders = Map<\n WalletType,\n {\n actions: WalletActions;\n config: WalletConfig;\n }\n>;\n\nexport type ProviderInterface = { config: WalletConfig } & WalletActions;\n\n// it comes from wallets.ts and `connect`\ntype NetworkTypeFromLegacyConnect = Network | undefined;\n\nexport type NamespaceInputForConnect<T extends Namespace = Namespace> = {\n /**\n * By default, you should specify namespace (e.g. evm).\n */\n namespace: T;\n /**\n * In some cases, we need to connect a specific network on a namespace. e.g. Polygon on EVM.\n */\n network: NetworkTypeFromLegacyConnect;\n derivationPath?: string;\n};\n", "export interface PersistStorage<T> {\n getItem: (name: string) => T | null;\n setItem: (name: string, value: T) => void;\n removeItem: (name: string) => void;\n}\n\nexport class Persistor<T> implements PersistStorage<T> {\n getItem(name: string) {\n const item = localStorage.getItem(name);\n const parsedItem = item ? (JSON.parse(item) as T) : null;\n return parsedItem;\n }\n setItem(name: string, value: T) {\n localStorage.setItem(name, JSON.stringify(value));\n }\n removeItem(name: string) {\n localStorage.removeItem(name);\n }\n}\n", "import type { Network } from './types.js';\nimport type { Options } from './wallet.js';\nimport type { BlockchainMeta } from 'rango-types';\n\nimport { Networks } from './types.js';\n\nexport function formatAddressWithNetwork(\n address: string,\n network?: Network | null\n) {\n return `${network || ''}:${address}`;\n}\n\nexport function accountAddressesWithNetwork(\n addresses: string[] | null,\n network?: Network | null\n) {\n if (!addresses) {\n return [];\n }\n\n return addresses.map((address) => {\n return formatAddressWithNetwork(address, network);\n });\n}\n\nexport function readAccountAddress(addressWithNetwork: string): {\n address: string;\n network: Network;\n} {\n const [network, address] = addressWithNetwork.split(':');\n\n return {\n network,\n address,\n };\n}\n\nexport function needsCheckInstallation(options: Options) {\n const { checkInstallation = true } = options.config;\n return checkInstallation;\n}\n\nexport const getBlockChainNameFromId = (\n chainId: string | number,\n blockchains: BlockchainMeta[]\n): Network | null => {\n chainId =\n typeof chainId === 'string' && chainId.startsWith('0x')\n ? parseInt(chainId)\n : chainId;\n\n /*\n * Sometimes providers are passing `Network` as chainId.\n * If chainId is a `Network`, we return itself.\n */\n const allNetworks = Object.values(Networks);\n if (allNetworks.includes(String(chainId) as Networks)) {\n return chainId as Networks;\n }\n\n if (chainId === 'Binance-Chain-Tigris') {\n return Networks.BINANCE;\n }\n return (\n blockchains\n .filter((blockchainMeta) => !!blockchainMeta.chainId)\n .find((blockchainMeta) => {\n const blockchainChainId = blockchainMeta.chainId?.startsWith('0x')\n ? parseInt(blockchainMeta.chainId)\n : blockchainMeta.chainId;\n return blockchainChainId == chainId;\n })?.name || null\n );\n};\n", "import type { NamespaceInputForConnect } from './types.js';\n\nexport async function eagerConnectHandler<R = unknown>(params: {\n canEagerConnect: () => Promise<boolean>;\n connectHandler: () => Promise<R>;\n providerName: string;\n}) {\n // Check if we can eagerly connect to the wallet\n if (await params.canEagerConnect()) {\n // Connect to wallet as usual\n return await params.connectHandler();\n }\n throw new Error(`can't restore connection for ${params.providerName}.`);\n}\n\nexport function isEvmNamespace(\n namespace: NamespaceInputForConnect\n): namespace is NamespaceInputForConnect<'EVM'> {\n return namespace.namespace === 'EVM';\n}\n", "import type {\n EagerConnectResult,\n GetInstanceOptions,\n NamespaceData,\n Network,\n WalletActions,\n WalletConfig,\n WalletType,\n} from './types.js';\nimport type { Namespace } from '../namespaces/common/types.js';\nimport type { BlockchainMeta } from 'rango-types';\n\nimport {\n accountAddressesWithNetwork,\n getBlockChainNameFromId,\n needsCheckInstallation,\n} from './helpers.js';\nimport { Events, Networks } from './types.js';\nimport { eagerConnectHandler } from './utils.js';\n\nexport type EventHandler = (\n type: WalletType,\n event: Events,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any,\n coreState: State,\n info: EventInfo\n) => void;\n\nexport type EventInfo = {\n supportedBlockchains: BlockchainMeta[];\n isContractWallet: boolean;\n\n // Hub fields\n isHub: boolean;\n // will be set alongside ACCOUNT event\n namespace?: Namespace;\n derivationPath?: string;\n};\n\nexport interface State {\n connected: boolean;\n connecting: boolean;\n /**\n * @depreacted it always returns `false`. don't use it.\n */\n reachable: boolean;\n installed: boolean;\n accounts: string[] | null;\n network: Network | null;\n derivationPath?: string;\n}\n\nexport interface Options {\n config: WalletConfig;\n handler: EventHandler;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nclass Wallet<InstanceType = any> {\n public provider: InstanceType | null;\n private actions: WalletActions;\n private state: State;\n private options: Options;\n private info: EventInfo;\n private cleanupSubscribe?: (() => void) | void;\n\n constructor(options: Options, actions: WalletActions) {\n this.actions = actions;\n this.options = options;\n this.provider = null;\n this.info = {\n supportedBlockchains: [],\n isContractWallet: false,\n isHub: false,\n };\n this.state = {\n connected: false,\n connecting: false,\n // TODO: Remove\n reachable: false,\n installed: false,\n accounts: null,\n network: null,\n };\n\n if (!needsCheckInstallation(options)) {\n this.setInstalledAs(true);\n }\n }\n\n async suggestAndConnect(network: Network) {\n if (this.actions.suggest) {\n await this.actions.suggest({\n instance: this.provider,\n meta: this.info.supportedBlockchains,\n network,\n });\n }\n return await this.connect(network);\n }\n\n async connect(network?: Network, namespaces?: NamespaceData[]) {\n // If it's connecting, nothing do.\n if (this.state.connecting) {\n throw new Error('Connecting...');\n }\n\n const connectionFromState = await this.getConnectionFromState();\n const currentNetwork = this.state.network;\n /*\n * If a network hasn't been provided and also we have `lastNetwork`\n * We will use lastNetwork to make sure we will not\n * Ask the user to switch his network wrongly.\n */\n const requestedNetwork =\n network || currentNetwork || this.options.config.defaultNetwork;\n\n if (connectionFromState) {\n const networkChanged =\n currentNetwork !== requestedNetwork && !!requestedNetwork;\n\n // Reuse current connection if nothing has changed and we already have the connection in memory.\n if (currentNetwork === requestedNetwork) {\n return connectionFromState;\n }\n\n let canSwitch = true;\n if (this.actions.canSwitchNetworkTo) {\n canSwitch = this.actions.canSwitchNetworkTo({\n provider: this.provider,\n meta: this.info.supportedBlockchains,\n network: requestedNetwork || '',\n });\n }\n\n if (networkChanged && canSwitch && !!this.actions.switchNetwork) {\n await this.actions.switchNetwork({\n instance: this.provider,\n meta: this.info.supportedBlockchains,\n // TODO: Fix type error\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n network: requestedNetwork,\n newInstance: this.tryGetInstance.bind(this),\n getState: this.getState.bind(this),\n updateChainId: this.updateChainId.bind(this),\n });\n\n /*\n * We assume if we reach here (`switchNetwork` not throwing error), Switch successfully has been done.\n * But for providers with async switch network like wallet-connect, we need to wait for chain change\n * event before changing network.\n */\n if (\n requestedNetwork !== this.state.network &&\n !this.options.config.isAsyncSwitchNetwork\n ) {\n this.updateState({\n network,\n });\n }\n\n return {\n // Only network has been changed, so we reuse accounts from what we have already.\n accounts: connectionFromState.accounts,\n network: requestedNetwork,\n provider: this.provider,\n };\n }\n\n // If none of the above conditions didn't match, continute to connect.\n }\n\n // We are connecting to wallet for the first time\n\n // Trying to get wallet's instance, if it's not available, raise an error.\n const instance = await this.tryGetInstance({ network });\n\n // Instance exists, trying to connect\n this.updateState({\n connecting: true,\n });\n this.setInstalledAs(true);\n\n try {\n // eslint-disable-next-line no-var\n var connectResult = await this.actions.connect({\n instance,\n network: requestedNetwork || undefined,\n meta: this.info.supportedBlockchains || [],\n namespaces,\n });\n } catch (e) {\n this.resetState();\n throw e;\n }\n\n this.updateState({\n connected: true,\n reachable: true,\n connecting: false,\n });\n\n // TODO: Handle accounts.length > 0\n\n // Inserting accounts into our state.\n let nextAccounts: string[] = [];\n let nextNetwork: Network | null | undefined = null;\n let nextDerivationPath: string | undefined = undefined;\n if (Array.isArray(connectResult)) {\n let activeEvmNetwork: Network | null = null;\n const accounts = connectResult.flatMap((blockchain) => {\n const chainId = blockchain.chainId || Networks.Unknown;\n // Try to map chainId with a Network, if not found, we use chainId directly.\n const network =\n getBlockChainNameFromId(chainId, this.info.supportedBlockchains) ||\n Networks.Unknown;\n nextDerivationPath = blockchain.derivationPath\n ? blockchain.derivationPath\n : nextDerivationPath;\n\n /*\n * When connecting to an evm instance, it will return address and wallet's active chain.\n * On switch network we are comparing state's network and what passed as requestedNetwork.\n * This code is for making sure we are setting correct active chain in state if it's evm.\n */\n if (!activeEvmNetwork && network !== Networks.Unknown) {\n const blockchainMeta = this.info.supportedBlockchains.find(\n (blockchain) => blockchain.name === network\n );\n if (blockchainMeta?.info?.infoType === 'EvmMetaInfo') {\n activeEvmNetwork = network;\n }\n }\n // TODO: second parameter should be `string` when we decided to open source the package.\n return accountAddressesWithNetwork(blockchain.accounts, network);\n });\n nextAccounts = accounts.filter(Boolean);\n nextNetwork =\n activeEvmNetwork ||\n requestedNetwork ||\n this.options.config.defaultNetwork;\n } else {\n const chainId = connectResult.chainId || Networks.Unknown;\n const network =\n getBlockChainNameFromId(chainId, this.info.supportedBlockchains) ||\n Networks.Unknown;\n const derivationPath = connectResult.derivationPath;\n\n // We fallback to current active network if `chainId` not provided.\n nextAccounts = accountAddressesWithNetwork(\n connectResult.accounts,\n network\n );\n nextNetwork = network;\n nextDerivationPath = derivationPath;\n }\n\n if (nextAccounts.length > 0) {\n this.updateState({\n accounts: nextAccounts,\n network: nextNetwork,\n derivationPath: nextDerivationPath,\n });\n }\n\n return {\n accounts: this.state.accounts,\n network: this.state.network,\n provider: this.provider,\n };\n }\n\n async disconnect() {\n this.resetState();\n\n if (this.actions.disconnect) {\n void this.actions.disconnect({\n instance: this.provider,\n // On wallet connect, we need to destory the instance and get a whole new instance when we are going to connect\n destroyInstance: () => {\n this.setProvider(null);\n },\n });\n }\n }\n\n // This method is only used for auto connection\n async eagerConnect(): Promise<EagerConnectResult<InstanceType>> {\n const instance = await this.tryGetInstance({ network: undefined });\n const { canEagerConnect } = this.actions;\n const providerName = this.options.config.type;\n\n return await eagerConnectHandler({\n canEagerConnect: async () => {\n if (!canEagerConnect) {\n throw new Error(\n `${providerName} provider hasn't implemented canEagerConnect.`\n );\n }\n\n return await canEagerConnect({\n instance: instance,\n meta: this.info.supportedBlockchains,\n });\n },\n connectHandler: async () => {\n const result = await this.connect();\n return result;\n },\n providerName,\n });\n }\n\n async getSigners(provider: InstanceType) {\n return await this.actions.getSigners(provider);\n }\n getWalletInfo(allBlockChains: BlockchainMeta[]) {\n return this.actions.getWalletInfo(allBlockChains);\n }\n canSwitchNetworkTo(network: Network, provider: InstanceType) {\n const switchTo = this.actions.canSwitchNetworkTo;\n if (!switchTo) {\n return false;\n }\n\n return switchTo({\n network,\n meta: this.info.supportedBlockchains,\n provider,\n });\n }\n\n onInit() {\n // some times functions can be overridden by wallets. see rf-2119\n if (!this.actions.getInstance) {\n throw new Error(\n `Provider hasn't defined how to get wallet's instance. provider: ${this.options.config.type} on: onInit`\n );\n }\n\n if (!this.options.config.isAsyncInstance) {\n const instance = this.actions.getInstance();\n if (!!instance && !this.state.installed) {\n this.setInstalledAs(true);\n }\n } else if (needsCheckInstallation(this.options)) {\n this.actions.getInstance().then((data: unknown) => {\n if (data) {\n this.setInstalledAs(true);\n }\n });\n }\n }\n\n setProvider(value: InstanceType | null) {\n this.provider = value;\n if (!!value && !!this.actions.subscribe) {\n const cleanup = this.actions.subscribe({\n instance: value,\n state: this.state,\n meta: this.info.supportedBlockchains,\n connect: this.connect.bind(this),\n disconnect: this.disconnect.bind(this),\n updateAccounts: (accounts, chainId) => {\n let network = this.state.network;\n if (chainId) {\n network =\n getBlockChainNameFromId(\n chainId,\n this.info.supportedBlockchains\n ) || Networks.Unknown;\n }\n\n const nextAccounts = accountAddressesWithNetwork(accounts, network);\n if (nextAccounts.length > 0) {\n this.updateState({\n accounts: nextAccounts,\n });\n }\n },\n updateChainId: this.updateChainId.bind(this),\n });\n this.cleanupSubscribe = cleanup;\n } else if (!value && this.cleanupSubscribe) {\n this.cleanupSubscribe();\n }\n }\n\n setInfo(info: Partial<EventInfo>) {\n if (typeof info.supportedBlockchains !== 'undefined') {\n this.info.supportedBlockchains = info.supportedBlockchains;\n }\n if (typeof info.isContractWallet !== 'undefined') {\n this.info.isContractWallet = info.isContractWallet;\n }\n }\n\n setHandler(handler: EventHandler) {\n this.options.handler = handler;\n }\n\n getState(): State {\n return this.state;\n }\n\n updateState(states: Partial<State>) {\n /*\n * We will notify handler after updating all the states.\n * Because when we call `handler` it will has latest states.\n */\n const updates: [Events, unknown][] = [];\n\n if (typeof states.connected !== 'undefined') {\n this.state.connected = states.connected;\n updates.push([Events.CONNECTED, states.connected]);\n }\n if (typeof states.connecting !== 'undefined') {\n this.state.connecting = states.connecting;\n updates.push([Events.CONNECTING, states.connecting]);\n }\n if (typeof states.reachable !== 'undefined') {\n this.state.reachable = states.reachable;\n updates.push([Events.REACHABLE, states.reachable]);\n }\n if (typeof states.installed !== 'undefined') {\n this.state.installed = states.installed;\n updates.push([Events.INSTALLED, states.installed]);\n }\n if (typeof states.accounts !== 'undefined') {\n this.state.accounts = states.accounts;\n this.state.derivationPath = states.derivationPath;\n updates.push([Events.ACCOUNTS, states.accounts]);\n }\n if (typeof states.network !== 'undefined') {\n this.state.network = states.network;\n updates.push([Events.NETWORK, states.network]);\n }\n\n const state = this.getState();\n updates.forEach(([name, value]) => {\n const eventInfo: EventInfo = {\n supportedBlockchains: this.info.supportedBlockchains,\n isContractWallet: this.info.isContractWallet,\n isHub: false,\n };\n this.options.handler(\n this.options.config.type,\n name,\n value,\n state,\n eventInfo\n );\n });\n }\n\n resetState() {\n this.updateState({\n connected: false,\n connecting: false,\n reachable: false,\n accounts: null,\n network: null,\n });\n }\n\n private async getConnectionFromState() {\n // Already connected, so we return provider that we have in memory.\n\n /*\n * For switching network on Trust Wallet (WalletConnect),\n * We only kill the session (and not restting the whole state)\n * So we are relying on this.provider for achieving this functionality.\n */\n if (this.state.connected && !!this.provider) {\n return {\n accounts: this.state.accounts,\n network: this.state.network,\n provider: this.provider,\n };\n }\n\n return null;\n }\n\n private updateChainId(chainId: string | number) {\n const network = chainId\n ? getBlockChainNameFromId(chainId, this.info.supportedBlockchains)\n : Networks.Unknown;\n\n this.updateState({\n network,\n });\n }\n\n private setInstalledAs(value: boolean) {\n if (!needsCheckInstallation(this.options) && value === false) {\n return;\n }\n\n this.updateState({\n installed: value,\n });\n }\n // eslint-disable-next-line destructuring/in-methods-params\n private async tryGetInstance({\n network,\n force,\n }: {\n network?: Network;\n force?: boolean;\n }) {\n let instance = null;\n /*\n * For switching network on Trust Wallet (WalletConnect),\n * We only kill the session (and not restting the whole state)\n * So we are relying on this.provider for achieving this functionality.\n */\n this.setProvider(null);\n if (this.options.config.isAsyncInstance) {\n // Trying to connect\n const instanceOptions: GetInstanceOptions = {\n currentProvider: this.provider,\n meta: this.info.supportedBlockchains,\n force: force || false,\n updateChainId: this.updateChainId.bind(this),\n getState: this.getState.bind(this),\n };\n\n if (network) {\n instanceOptions.network = network;\n }\n instance = await this.actions.getInstance(instanceOptions);\n } else {\n instance = this.actions.getInstance();\n }\n\n if (!instance) {\n this.setInstalledAs(false);\n this.resetState();\n\n const error_message = `It seems your selected wallet (${this.options.config.type}) isn't installed.`;\n throw new Error(error_message);\n }\n\n this.setProvider(instance);\n return instance;\n }\n}\n\nexport default Wallet;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Networks", "Events", "Persistor", "__name", "name", "item", "value", "formatAddressWithNetwork", "address", "network", "__name", "accountAddressesWithNetwork", "addresses", "readAccountAddress", "addressWithNetwork", "needsCheckInstallation", "options", "checkInstallation", "getBlockChainNameFromId", "chainId", "blockchains", "Networks", "blockchainMeta", "eagerConnectHandler", "params", "__name", "isEvmNamespace", "namespace", "Wallet", "__name", "options", "actions", "needsCheckInstallation", "network", "namespaces", "connectionFromState", "currentNetwork", "requestedNetwork", "networkChanged", "canSwitch", "instance", "connectResult", "e", "nextAccounts", "nextNetwork", "nextDerivationPath", "activeEvmNetwork", "blockchain", "chainId", "getBlockChainNameFromId", "accountAddressesWithNetwork", "derivationPath", "canEagerConnect", "providerName", "eagerConnectHandler", "provider", "allBlockChains", "switchTo", "data", "value", "cleanup", "accounts", "info", "handler", "states", "updates", "state", "name", "eventInfo", "force", "instanceOptions", "error_message", "wallet_default"]
|
|
7
7
|
}
|
package/dist/legacy/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/legacy/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,oBAAY,QAAQ;IAClB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,SAAS,SAAS;IAClB,GAAG,QAAQ;IACX,OAAO,QAAQ;IACf,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,QAAQ,QAAQ;IAChB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,KAAK;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,EAAE,OAAO;IACT,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,IAAI,SAAS;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/legacy/types.ts"],"names":[],"mappings":"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"}
|
package/dist/mod.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var D=Object.defineProperty;var a=(i,e)=>D(i,"name",{value:e,configurable:!0});function w(i){return i.constructor.name==="AsyncFunction"}a(w,"isAsync");function l(i,e){return`${i}$$${e}`}a(l,"generateStoreId");var y=a(i=>`Couldn't find "${i}" action. Are you sure you've added the action?`,"ACTION_NOT_FOUND_ERROR"),E=a(i=>`An error occurred during running ${i}`,"OR_ELSE_ACTION_FAILED_ERROR"),P=a(i=>`An error occurred during running before for "${i}" action`,"BEFORE_ACTION_FAILED_ERROR"),A="For setup store, you should set `store` first.";var u=class{static{a(this,"Namespace")}namespaceId;providerId;#e;#r=new Map;#n=new Map;#t=new Map;#o=new Map;#s=!1;#i;#c;constructor(e,t,r){let{configs:n,actions:o}=r;this.namespaceId=e,this.providerId=t,this.#c=n||new Map,this.#e=o,r.store&&this.store(r.store)}init(){if(this.#s)return;let e=this.#e.get("init");e&&e(this.#a()),this.#s=!0}state(){let e=this.#i;if(!e)throw new Error("You need to set your store using `.store` method first.");let t=this.#h();return[a(o=>{let s=e.getState().namespaces.getNamespaceData(t);return o?s[o]:s},"getState"),a((o,s)=>{e.getState().namespaces.updateStatus(t,o,s)},"setState")]}store(e){return this.#i&&console.warn("You've already set an store for your Namespace. Old store will be replaced by the new one."),this.#i=e,this.#l(),this}and_then(e,t){let r=this.#r.get(e)||[];return this.#r.set(e,r.concat(t)),this}or_else(e,t){let r=this.#n.get(e)||[];return this.#n.set(e,r.concat(t)),this}after(e,t,r){let n=this.#o.get(e)||[],o={hook:t,options:{context:r?.context}};return this.#o.set(e,n.concat(o)),this}before(e,t,r){let n=this.#t.get(e)||[],o={hook:t,options:{context:r?.context}};return this.#t.set(e,n.concat(o)),this}has(e){return!!this.#e.get(e)}run(e,...t){let r=this.#e.get(e);if(!r)throw new Error(y(e.toString()));return w(r)?this.#v(e,t):this.#d(e,t)}#d(e,t){try{this.#u(e)}catch(s){throw this.#p(e),new Error(P(e.toString()),{cause:s})}let r=this.#e.get(e);if(!r)throw new Error(y(e.toString()));let n=this.#a(),o;try{o=r(n,...t),o=this.#m(e,o)}catch(s){o=this.#f(e,s)}finally{this.#p(e)}return o}async#v(e,t){try{this.#u(e)}catch(o){throw this.#p(e),new Error(P(e.toString()),{cause:o})}let r=this.#e.get(e);if(!r)throw new Error(y(e.toString()));let n=this.#a();return await r(n,...t).then(o=>this.#m(e,o)).catch(o=>this.#f(e,o)).finally(()=>this.#p(e))}#p(e){let t=this.#o.get(e);t&&t.forEach(r=>{let n=r.options?.context||this.#a();r.hook(n)})}#u(e){let t=this.#t.get(e);t&&t.forEach(r=>{let n=r.options?.context||this.#a();r.hook(n)})}#m(e,t){let r=this.#r.get(e);if(r){let n=this.#a();t=r.reduce((o,s)=>s(n,o),t)}return t}#f(e,t){let r=this.#n.get(e);if(r)try{let n=this.#a();return r.reduce((o,s)=>s(n,o),t)}catch(n){if(n instanceof Error)throw n.cause=t,n;let o=E(`${e.toString()} for ${this.namespaceId} namespace.`),s=new Error(String(n),{cause:t});throw new Error(o,{cause:s})}else throw t}#l(){let e=this.#i;if(!e)throw new Error(A);let t=this.#h();e.getState().namespaces.addNamespace(t,{namespaceId:this.namespaceId,providerId:this.providerId})}#h(){return l(this.providerId,this.namespaceId)}#a(){return{state:this.state.bind(this),action:this.run.bind(this)}}};var V="1.0",m=class{static{a(this,"Provider")}id;version=V;#e;#r=!1;#n={};#t;#o;constructor(e,t,r,n){this.id=e,this.#o=r,this.#n=n?.extendInternalActions||{},this.#e=t,n?.store&&(this.#t=n.store,this.#i())}init(){if(this.#r)return;let e=this.#n.init;e&&e(this.#c()),this.#r=!0}state(){let e=this.#t;if(!e)throw new Error(`Any store detected for ${this.id}. You need to set your store using '.store' method first.`);return[a(n=>{let o=e.getState().providers.guessNamespacesState(this.id);if(!n)return o;switch(n){case"installed":case"connected":case"connecting":return o[n];default:throw new Error("Unhandled state for provider")}},"getState"),a((n,o)=>{switch(n){case"installed":return e.getState().providers.updateStatus(this.id,n,o);default:throw new Error(`Unhandled state update for provider. (provider id: ${this.id}, state name: ${n})`)}},"setState")]}store(e){return this.#t&&console.warn("You've already set an store for your Provider. Old store will be replaced by the new one."),this.#t=e,this.#i(),this}info(){let e=this.#t;return e?{metadata:e.getState().providers.list[this.id].config.metadata}:this.#o}getAll(){return this.#e}get(e){return this.#e.get(e)}findByNamespace(e){let t;return this.#e.forEach(r=>{r.namespaceId===e&&(t=r)}),t}before(e,t){return this.#s("before",e,t),this}after(e,t){return this.#s("after",e,t),this}#s(e,t,r){let n={state:this.state.bind(this)};return this.#e.forEach(o=>{if(e==="after")o.after(t,r,{context:n});else if(e==="before")o.before(t,r,{context:n});else throw new Error(`You hook name is invalid: ${e}`)}),this}#i(){let e=this.#t;if(!e)throw new Error("For setup store, you should set `store` first.");e.getState().providers.addProvider(this.id,this.#o),this.#e.forEach(t=>{t.store(e)})}#c(){return{state:this.state.bind(this)}}};var g=class{static{a(this,"Hub")}#e=new Map;#r;constructor(e){this.#r=e??{}}init(){this.runAll("init")}runAll(e){let t=[],r=this.#e.values();for(let n of r){let o={id:n.id,provider:void 0,namespaces:[]},s=n[e];typeof s=="function"&&(o.provider=s.call(n));let c=n.getAll().values();for(let p of c){let f=p[e];if(typeof f=="function"){let j=f();o.namespaces.push(j)}}t.push(o)}return t}add(e,t){return this.#r.store&&t.store(this.#r.store),this.#e.set(e,t),this}remove(e){if(!this.#e.get(e))throw new Error(`Provider not found: No provider exists with ID "${e}"`);return this.#r.store?.getState().providers.removeProvider(e),this.#e.delete(e),this}get(e){return this.#e.get(e)}getAll(){return this.#e}state(){let e=this.runAll("state"),t={};return e.forEach(r=>{let n=[];r.namespaces.forEach(s=>{let[c]=s;n.push(c())});let[o]=r.provider;t[r.id]={...o()||{},namespaces:n}}),t}};function d(i,e){let t=i.namespaces.list,r=Object.keys(t).filter(c=>t[c].info.providerId===e),n=!!i.providers.list[e]?.data.installed,o=r.length>0?r.some(c=>t[c].data.connected):!1,s=r.length>0?r.some(c=>t[c].data.connecting):!1;return{installed:n,connected:o,connecting:s}}a(d,"guessProviderStateSelector");function v(i,e){return i.namespaces.list[e].data}a(v,"namespaceStateSelector");import{createStore as M}from"zustand/vanilla";function k(i){let e=a(t=>r=>{let n=a((o,s,c)=>{for(let p of o)r(p,s,c)},"executeListener");return t.subscribe((o,s)=>{let c=W(o,s),f=[...T(o),...c];n(f,o,s)}),{flushEvents:()=>{let o=t.getState(),s=T(o);n(s,o,o)}}},"extendedSubscribe");return new Proxy(i,{get:function(t,r,n){return r==="subscribe"?e(t):Reflect.get(t,r,n)}})}a(k,"extend");function T(i){return[...i.providers.events,...i.namespaces.events]}a(T,"tryConsumeEvents");function W(i,e){let t=[];for(let r of Object.keys(i.providers.list)){let n=d(i,r),o=d(e,r);if(o.connecting!==n.connecting){let s={type:"provider_connecting",provider:r,value:n.connecting};t.push(s)}if(!o.connected&&n.connected){let s={type:"provider_connected",provider:r};t.push(s)}if(o.connected&&!n.connected){let s={type:"provider_disconnected",provider:r};t.push(s)}}return t}a(W,"getEventsLike");var I=a(()=>({config:{}}),"hubStore");import{produce as K}from"immer";var h=class{static{a(this,"ConsumableEvents")}#e=[];push(e){this.#e.push(e)}[Symbol.iterator](){return{next:()=>this.#e.length==0?{done:!0,value:void 0}:{done:!1,value:this.#e.shift()}}}};var O=a((i,e)=>({events:new h,list:{},addNamespace:(t,r)=>{let o={data:{accounts:null,network:null,connected:!1,connecting:!1,connectArgs:null},error:"",info:r};i(K(s=>{s.namespaces.list[t]=o}))},updateStatus:(t,r,n)=>{let o=e().namespaces.list[t];if(!o)throw new Error(`No namespace with '${t}' found.`);e().namespaces._produceEventsWhenUpdatingStatus(o,t,r,n),i(K(s=>{s.namespaces.list[t].data[r]=n}))},getNamespaceData(t){return v(e(),t)},_produceEventsWhenUpdatingStatus:(t,r,n,o)=>{if(n==="accounts")if(Object.is(o,null)||Array.isArray(o)&&o.length===0){if(e().namespaces.list[r].data.connected){let p={type:"namespace_disconnected",provider:t.info.providerId,namespace:t.info.namespaceId};e().namespaces.events.push(p)}}else{let c=e().namespaces.list[r].data.accounts;if(c){if(!([...c].sort().toString()===o.sort().toString())){let f={type:"namespace_account_switched",provider:t.info.providerId,namespace:t.info.namespaceId,previousAccounts:c,accounts:o};e().namespaces.events.push(f)}}else{let p={type:"namespace_connected",provider:t.info.providerId,namespace:t.info.namespaceId,accounts:o};e().namespaces.events.push(p)}}else if(n==="network"){let s=e().namespaces.list[r].data.network,c={type:"namespace_network_switched",provider:t.info.providerId,namespace:t.info.namespaceId,network:o,previousNetwork:s};e().namespaces.events.push(c)}}}),"namespacesStore");import{produce as C}from"immer";var R=a((i,e)=>({events:new h,list:{},addProvider:(t,r)=>{let n={data:{installed:!1},error:"",config:r};i(C(o=>{o.providers.list[t]=n}))},removeProvider:t=>{i(C(r=>{delete r.providers.list[t]}))},updateStatus:(t,r,n)=>{let o=e().providers.list[t];if(!o)throw new Error(`No namespace namespace with '${t}' found.`);e().providers._produceEventsWhenUpdatingStatus(o,t,r,n),i(C(s=>{s.providers.list[t].data[r]=n}))},guessNamespacesState:t=>d(e(),t),_produceEventsWhenUpdatingStatus:(t,r,n,o)=>{if(n==="installed"){let s={type:"provider_detected",provider:r};e().providers.events.push(s)}}}),"providersStore");var N=a(()=>{let i=M((...e)=>({hub:I(...e),providers:R(...e),namespaces:O(...e)}));return k(i)},"createStore");var F=["init","state","after","before","and_then","or_else","store"],_=["string","number"],S=class{static{a(this,"NamespaceBuilder")}#e;#r;#n=new Map;#t=[];#o;constructor(e,t){this.#e=e,this.#r=t,this.#o={}}config(e,t){return this.#o[e]=t,this}action(e,t){return Array.isArray(e)?(e.forEach(([r,n])=>{this.#n.set(r,n)}),this):typeof e=="object"&&e?.actionName?(this.#t.push(e),this):(t&&this.#n.set(e,t),this)}build(){if(this.#s(this.#o))return this.#d(this.#o);throw new Error("You namespace config isn't valid.")}#s(e){return!0}#i(e){this.#t.forEach(t=>{t.after.forEach(r=>{r.map(n=>{e.after(t.actionName,n)})}),t.before.forEach(r=>{r.map(n=>{e.before(t.actionName,n)})}),t.and.forEach(r=>{r.map(n=>{e.and_then(t.actionName,n)})}),t.or.forEach(r=>{r.map(n=>{e.or_else(t.actionName,n)})})})}#c(){this.#t.forEach(e=>{this.#n.set(e.actionName,e.action)})}#d(e){this.#c();let t=new u(this.#e,this.#r,{configs:e,actions:this.#n});return this.#i(t),new Proxy(t,{has:(n,o)=>{if(typeof o!="string")throw new Error("You can use string as your property on Namespace instance.");return F.includes(o)||_.includes(typeof t[o])?!0:t.has(o)},get:(n,o)=>{if(typeof o!="string")throw new Error("You can use string as your property on Namespace instance.");let s=t[o];return F.includes(o)?s.bind(t):_.includes(typeof s)?s:t.run.bind(t,o)},set:()=>{throw new Error("You can not set anything on this object.")}})}};var x=class{static{a(this,"ProviderBuilder")}#e;#r=new Map;#n={};#t={};#o;constructor(e,t){this.#e=e,this.#o=t||{}}add(e,t){return this.#o.store&&t.store(this.#o.store),this.#r.set(e,t),this}config(e,t){return this.#t[e]=t,this}init(e){return this.#n.init=e,this}build(){if(this.#s(this.#t))return new m(this.#e,this.#r,this.#t,{extendInternalActions:this.#n,store:this.#o.store});throw new Error("You need to set all required configs.")}#s(e){return!!e.metadata}};var b=class{static{a(this,"ActionBuilder")}name;#e=new Map;#r=new Map;#n=new Map;#t=new Map;#o;constructor(e){this.name=e}and(e){return this.#e.has(this.name)||this.#e.set(this.name,[]),this.#e.get(this.name)?.push(e),this}or(e){return this.#r.has(this.name)||this.#r.set(this.name,[]),this.#r.get(this.name)?.push(e),this}before(e){return this.#t.has(this.name)||this.#t.set(this.name,[]),this.#t.get(this.name)?.push(e),this}after(e){return this.#n.has(this.name)||this.#n.set(this.name,[]),this.#n.get(this.name)?.push(e),this}action(e){return this.#o=e,this}build(){if(!this.#o)throw new Error("Your action builder should includes an action.");return{actionName:this.name,action:this.#o,before:this.#t,after:this.#n,and:this.#e,or:this.#r}}};import*as rt from"caip";function H(i,e){if(!e)throw new Error("You should provide a valid semver, e.g 1.0.0.");let t=i.find(([r])=>r===e);if(!t)throw new Error(`You target version hasn't been found. Available versions: ${Object.keys(i).join(", ")}`);return t}a(H,"pickVersion");function B(){let i=[],e={version:(t,r)=>(i.push([t,r]),e),build:()=>i};return e}a(B,"defineVersions");export{b as ActionBuilder,g as Hub,u as Namespace,S as NamespaceBuilder,m as Provider,x as ProviderBuilder,N as createStore,B as defineVersions,d as guessProviderStateSelector,v as namespaceStateSelector,H as pickVersion};
|
|
1
|
+
var V=Object.defineProperty;var a=(i,e)=>V(i,"name",{value:e,configurable:!0});function E(i){return i.constructor.name==="AsyncFunction"}a(E,"isAsync");function l(i,e){return`${i}$$${e}`}a(l,"generateStoreId");var y=a(i=>`Couldn't find "${i}" action. Are you sure you've added the action?`,"ACTION_NOT_FOUND_ERROR"),A=a(i=>`An error occurred during running ${i}`,"OR_ELSE_ACTION_FAILED_ERROR"),P=a(i=>`An error occurred during running before for "${i}" action`,"BEFORE_ACTION_FAILED_ERROR"),T="For setup store, you should set `store` first.";var u=class{static{a(this,"Namespace")}namespaceId;providerId;#e;#r=new Map;#n=new Map;#t=new Map;#o=new Map;#s=!1;#i;#c;constructor(e,t,r){let{configs:n,actions:o}=r;this.namespaceId=e,this.providerId=t,this.#c=n||new Map,this.#e=o,r.store&&this.store(r.store)}init(){if(this.#s)return;let e=this.#e.get("init");e&&e(this.#a()),this.#s=!0}state(){let e=this.#i;if(!e)throw new Error("You need to set your store using `.store` method first.");let t=this.#h();return[a(o=>{let s=e.getState().namespaces.getNamespaceData(t);return o?s[o]:s},"getState"),a((o,s)=>{e.getState().namespaces.updateStatus(t,o,s)},"setState")]}store(e){return this.#i&&console.warn("You've already set an store for your Namespace. Old store will be replaced by the new one."),this.#i=e,this.#l(),this}and_then(e,t){let r=this.#r.get(e)||[];return this.#r.set(e,r.concat(t)),this}or_else(e,t){let r=this.#n.get(e)||[];return this.#n.set(e,r.concat(t)),this}after(e,t,r){let n=this.#o.get(e)||[],o={hook:t,options:{context:r?.context}};return this.#o.set(e,n.concat(o)),this}before(e,t,r){let n=this.#t.get(e)||[],o={hook:t,options:{context:r?.context}};return this.#t.set(e,n.concat(o)),this}has(e){return!!this.#e.get(e)}run(e,...t){let r=this.#e.get(e);if(!r)throw new Error(y(e.toString()));return E(r)?this.#v(e,t):this.#d(e,t)}#d(e,t){try{this.#u(e)}catch(s){throw this.#p(e),new Error(P(e.toString()),{cause:s})}let r=this.#e.get(e);if(!r)throw new Error(y(e.toString()));let n=this.#a(),o;try{o=r(n,...t),o=this.#m(e,o)}catch(s){o=this.#f(e,s)}finally{this.#p(e)}return o}async#v(e,t){try{this.#u(e)}catch(o){throw this.#p(e),new Error(P(e.toString()),{cause:o})}let r=this.#e.get(e);if(!r)throw new Error(y(e.toString()));let n=this.#a();return await r(n,...t).then(o=>this.#m(e,o)).catch(o=>this.#f(e,o)).finally(()=>this.#p(e))}#p(e){let t=this.#o.get(e);t&&t.forEach(r=>{let n=r.options?.context||this.#a();r.hook(n)})}#u(e){let t=this.#t.get(e);t&&t.forEach(r=>{let n=r.options?.context||this.#a();r.hook(n)})}#m(e,t){let r=this.#r.get(e);if(r){let n=this.#a();t=r.reduce((o,s)=>s(n,o),t)}return t}#f(e,t){let r=this.#n.get(e);if(r)try{let n=this.#a();return r.reduce((o,s)=>s(n,o),t)}catch(n){if(n instanceof Error)throw n.cause=t,n;let o=A(`${e.toString()} for ${this.namespaceId} namespace.`),s=new Error(String(n),{cause:t});throw new Error(o,{cause:s})}else throw t}#l(){let e=this.#i;if(!e)throw new Error(T);let t=this.#h();e.getState().namespaces.addNamespace(t,{namespaceId:this.namespaceId,providerId:this.providerId})}#h(){return l(this.providerId,this.namespaceId)}#a(){return{state:this.state.bind(this),action:this.run.bind(this)}}};var W="1.0",m=class{static{a(this,"Provider")}id;version=W;#e;#r=!1;#n={};#t;#o;constructor(e,t,r,n){this.id=e,this.#o=r,this.#n=n?.extendInternalActions||{},this.#e=t,n?.store&&(this.#t=n.store,this.#i())}init(e){if(this.#r)return;let t=this.#n.init;t&&t(this.#c(),e),this.#r=!0}state(){let e=this.#t;if(!e)throw new Error(`Any store detected for ${this.id}. You need to set your store using '.store' method first.`);return[a(n=>{let o=e.getState().providers.guessNamespacesState(this.id);if(!n)return o;switch(n){case"installed":case"connected":case"connecting":return o[n];default:throw new Error("Unhandled state for provider")}},"getState"),a((n,o)=>{switch(n){case"installed":return e.getState().providers.updateStatus(this.id,n,o);default:throw new Error(`Unhandled state update for provider. (provider id: ${this.id}, state name: ${n})`)}},"setState")]}store(e){return this.#t&&console.warn("You've already set an store for your Provider. Old store will be replaced by the new one."),this.#t=e,this.#i(),this}info(){let e=this.#t;return e?{metadata:e.getState().providers.list[this.id].config.metadata}:this.#o}getAll(){return this.#e}get(e){return this.#e.get(e)}findByNamespace(e){let t;return this.#e.forEach(r=>{r.namespaceId===e&&(t=r)}),t}before(e,t){return this.#s("before",e,t),this}after(e,t){return this.#s("after",e,t),this}#s(e,t,r){let n={state:this.state.bind(this)};return this.#e.forEach(o=>{if(e==="after")o.after(t,r,{context:n});else if(e==="before")o.before(t,r,{context:n});else throw new Error(`You hook name is invalid: ${e}`)}),this}#i(){let e=this.#t;if(!e)throw new Error("For setup store, you should set `store` first.");e.getState().providers.addProvider(this.id,this.#o),this.#e.forEach(t=>{t.store(e)})}#c(){return{state:this.state.bind(this)}}};var g=class{static{a(this,"Hub")}#e=new Map;#r;constructor(e){this.#r=e??{}}init(e){this.runAll("init",e)}runAll(e,t){let r=[],n=this.#e.values();for(let o of n){let s={id:o.id,provider:void 0,namespaces:[]},c=o[e];typeof c=="function"&&(s.provider=c.call(o,t?.[o.id]?.provider));let p=o.getAll().values();for(let f of p){let N=f[e];if(typeof N=="function"){let D=N(t?.[o.id]?.namespaces?.[f.namespaceId]);s.namespaces.push(D)}}r.push(s)}return r}add(e,t){return this.#r.store&&t.store(this.#r.store),this.#e.set(e,t),this}remove(e){if(!this.#e.get(e))throw new Error(`Provider not found: No provider exists with ID "${e}"`);return this.#r.store?.getState().providers.removeProvider(e),this.#e.delete(e),this}get(e){return this.#e.get(e)}getAll(){return this.#e}state(){let e=this.runAll("state"),t={};return e.forEach(r=>{let n=[];r.namespaces.forEach(s=>{let[c]=s;n.push(c())});let[o]=r.provider;t[r.id]={...o()||{},namespaces:n}}),t}};function d(i,e){let t=i.namespaces.list,r=Object.keys(t).filter(c=>t[c].info.providerId===e),n=!!i.providers.list[e]?.data.installed,o=r.length>0?r.some(c=>t[c].data.connected):!1,s=r.length>0?r.some(c=>t[c].data.connecting):!1;return{installed:n,connected:o,connecting:s}}a(d,"guessProviderStateSelector");function v(i,e){return i.namespaces.list[e].data}a(v,"namespaceStateSelector");import{createStore as H}from"zustand/vanilla";function I(i){let e=a(t=>r=>{let n=a((o,s,c)=>{for(let p of o)r(p,s,c)},"executeListener");return t.subscribe((o,s)=>{let c=M(o,s),f=[...k(o),...c];n(f,o,s)}),{flushEvents:()=>{let o=t.getState(),s=k(o);n(s,o,o)}}},"extendedSubscribe");return new Proxy(i,{get:function(t,r,n){return r==="subscribe"?e(t):Reflect.get(t,r,n)}})}a(I,"extend");function k(i){return[...i.providers.events,...i.namespaces.events]}a(k,"tryConsumeEvents");function M(i,e){let t=[];for(let r of Object.keys(i.providers.list)){let n=d(i,r),o=d(e,r);if(o.connecting!==n.connecting){let s={type:"provider_connecting",provider:r,value:n.connecting};t.push(s)}if(!o.connected&&n.connected){let s={type:"provider_connected",provider:r};t.push(s)}if(o.connected&&!n.connected){let s={type:"provider_disconnected",provider:r};t.push(s)}}return t}a(M,"getEventsLike");var K=a(()=>({config:{}}),"hubStore");import{produce as O}from"immer";var h=class{static{a(this,"ConsumableEvents")}#e=[];push(e){this.#e.push(e)}[Symbol.iterator](){return{next:()=>this.#e.length==0?{done:!0,value:void 0}:{done:!1,value:this.#e.shift()}}}};var R=a((i,e)=>({events:new h,list:{},addNamespace:(t,r)=>{let o={data:{accounts:null,network:null,connected:!1,connecting:!1,connectArgs:null},error:"",info:r};i(O(s=>{s.namespaces.list[t]=o}))},updateStatus:(t,r,n)=>{let o=e().namespaces.list[t];if(!o)throw new Error(`No namespace with '${t}' found.`);e().namespaces._produceEventsWhenUpdatingStatus(o,t,r,n),i(O(s=>{s.namespaces.list[t].data[r]=n}))},getNamespaceData(t){return v(e(),t)},_produceEventsWhenUpdatingStatus:(t,r,n,o)=>{if(n==="accounts")if(Object.is(o,null)||Array.isArray(o)&&o.length===0){if(e().namespaces.list[r].data.connected){let p={type:"namespace_disconnected",provider:t.info.providerId,namespace:t.info.namespaceId};e().namespaces.events.push(p)}}else{let c=e().namespaces.list[r].data.accounts;if(c){if(!([...c].sort().toString()===o.sort().toString())){let f={type:"namespace_account_switched",provider:t.info.providerId,namespace:t.info.namespaceId,previousAccounts:c,accounts:o};e().namespaces.events.push(f)}}else{let p={type:"namespace_connected",provider:t.info.providerId,namespace:t.info.namespaceId,accounts:o};e().namespaces.events.push(p)}}else if(n==="network"){let s=e().namespaces.list[r].data.network,c={type:"namespace_network_switched",provider:t.info.providerId,namespace:t.info.namespaceId,network:o,previousNetwork:s};e().namespaces.events.push(c)}}}),"namespacesStore");import{produce as C}from"immer";var F=a((i,e)=>({events:new h,list:{},addProvider:(t,r)=>{let n={data:{installed:!1},error:"",config:r};i(C(o=>{o.providers.list[t]=n}))},removeProvider:t=>{i(C(r=>{delete r.providers.list[t]}))},updateStatus:(t,r,n)=>{let o=e().providers.list[t];if(!o)throw new Error(`No namespace namespace with '${t}' found.`);e().providers._produceEventsWhenUpdatingStatus(o,t,r,n),i(C(s=>{s.providers.list[t].data[r]=n}))},guessNamespacesState:t=>d(e(),t),_produceEventsWhenUpdatingStatus:(t,r,n,o)=>{if(n==="installed"){let s={type:"provider_detected",provider:r};e().providers.events.push(s)}}}),"providersStore");var w=a(()=>{let i=H((...e)=>({hub:K(...e),providers:F(...e),namespaces:R(...e)}));return I(i)},"createStore");var _=["init","state","after","before","and_then","or_else","store"],j=["string","number"],S=class{static{a(this,"NamespaceBuilder")}#e;#r;#n=new Map;#t=[];#o;constructor(e,t){this.#e=e,this.#r=t,this.#o={}}config(e,t){return this.#o[e]=t,this}action(e,t){return Array.isArray(e)?(e.forEach(([r,n])=>{this.#n.set(r,n)}),this):typeof e=="object"&&e?.actionName?(this.#t.push(e),this):(t&&this.#n.set(e,t),this)}build(){if(this.#s(this.#o))return this.#d(this.#o);throw new Error("You namespace config isn't valid.")}#s(e){return!0}#i(e){this.#t.forEach(t=>{t.after.forEach(r=>{r.map(n=>{e.after(t.actionName,n)})}),t.before.forEach(r=>{r.map(n=>{e.before(t.actionName,n)})}),t.and.forEach(r=>{r.map(n=>{e.and_then(t.actionName,n)})}),t.or.forEach(r=>{r.map(n=>{e.or_else(t.actionName,n)})})})}#c(){this.#t.forEach(e=>{this.#n.set(e.actionName,e.action)})}#d(e){this.#c();let t=new u(this.#e,this.#r,{configs:e,actions:this.#n});return this.#i(t),new Proxy(t,{has:(n,o)=>{if(typeof o!="string")throw new Error("You can use string as your property on Namespace instance.");return _.includes(o)||j.includes(typeof t[o])?!0:t.has(o)},get:(n,o)=>{if(typeof o!="string")throw new Error("You can use string as your property on Namespace instance.");let s=t[o];return _.includes(o)?s.bind(t):j.includes(typeof s)?s:t.run.bind(t,o)},set:()=>{throw new Error("You can not set anything on this object.")}})}};var x=class{static{a(this,"ProviderBuilder")}#e;#r=new Map;#n={};#t={};#o;constructor(e,t){this.#e=e,this.#o=t||{}}add(e,t){return this.#o.store&&t.store(this.#o.store),this.#r.set(e,t),this}config(e,t){return this.#t[e]=t,this}init(e){return this.#n.init=e,this}build(){if(this.#s(this.#t))return new m(this.#e,this.#r,this.#t,{extendInternalActions:this.#n,store:this.#o.store});throw new Error("You need to set all required configs.")}#s(e){return!!e.metadata}};var b=class{static{a(this,"ActionBuilder")}name;#e=new Map;#r=new Map;#n=new Map;#t=new Map;#o;constructor(e){this.name=e}and(e){return this.#e.has(this.name)||this.#e.set(this.name,[]),this.#e.get(this.name)?.push(e),this}or(e){return this.#r.has(this.name)||this.#r.set(this.name,[]),this.#r.get(this.name)?.push(e),this}before(e){return this.#t.has(this.name)||this.#t.set(this.name,[]),this.#t.get(this.name)?.push(e),this}after(e){return this.#n.has(this.name)||this.#n.set(this.name,[]),this.#n.get(this.name)?.push(e),this}action(e){return this.#o=e,this}build(){if(!this.#o)throw new Error("Your action builder should includes an action.");return{actionName:this.name,action:this.#o,before:this.#t,after:this.#n,and:this.#e,or:this.#r}}};import*as ot from"caip";function B(i,e){if(!e)throw new Error("You should provide a valid semver, e.g 1.0.0.");let t=i.find(([r])=>r===e);if(!t)throw new Error(`You target version hasn't been found. Available versions: ${Object.keys(i).join(", ")}`);return t}a(B,"pickVersion");function U(){let i=[],e={version:(t,r)=>(i.push([t,r]),e),build:()=>i};return e}a(U,"defineVersions");export{b as ActionBuilder,g as Hub,u as Namespace,S as NamespaceBuilder,m as Provider,x as ProviderBuilder,w as createStore,U as defineVersions,d as guessProviderStateSelector,v as namespaceStateSelector,B as pickVersion};
|
|
2
2
|
//# sourceMappingURL=mod.js.map
|