@lifi/sdk 4.0.0-alpha.5 → 4.0.0-alpha.6
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/dist/cjs/client/createClient.js +4 -0
- package/dist/cjs/client/createClient.js.map +1 -1
- package/dist/cjs/client/getClientStorage.d.ts +1 -0
- package/dist/cjs/client/getClientStorage.js +15 -4
- package/dist/cjs/client/getClientStorage.js.map +1 -1
- package/dist/cjs/types/core.d.ts +2 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/client/createClient.js +4 -0
- package/dist/esm/client/createClient.js.map +1 -1
- package/dist/esm/client/getClientStorage.d.ts +1 -0
- package/dist/esm/client/getClientStorage.js +18 -5
- package/dist/esm/client/getClientStorage.js.map +1 -1
- package/dist/esm/types/core.d.ts +2 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/client/createClient.d.ts.map +1 -1
- package/dist/types/client/getClientStorage.d.ts +1 -0
- package/dist/types/client/getClientStorage.d.ts.map +1 -1
- package/dist/types/types/core.d.ts +2 -1
- package/dist/types/types/core.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/client/createClient.ts +5 -1
- package/src/client/getClientStorage.ts +21 -6
- package/src/types/core.ts +2 -1
- package/src/version.ts +1 -1
|
@@ -16,6 +16,7 @@ function createClient(options) {
|
|
|
16
16
|
apiUrl: options?.apiUrl ?? 'https://li.quest/v1',
|
|
17
17
|
rpcUrls: options?.rpcUrls ?? {},
|
|
18
18
|
debug: options?.debug ?? false,
|
|
19
|
+
preloadChains: options?.preloadChains ?? true,
|
|
19
20
|
integrator: options?.integrator ?? 'lifi-sdk',
|
|
20
21
|
};
|
|
21
22
|
let _providers = [];
|
|
@@ -37,6 +38,9 @@ function createClient(options) {
|
|
|
37
38
|
}
|
|
38
39
|
_providers = Array.from(providerMap.values());
|
|
39
40
|
},
|
|
41
|
+
setChains(chains) {
|
|
42
|
+
_storage.setChains(chains);
|
|
43
|
+
},
|
|
40
44
|
async getChains() {
|
|
41
45
|
return await _storage.getChains();
|
|
42
46
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../../src/client/createClient.ts"],"names":[],"mappings":";;AAWA,
|
|
1
|
+
{"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../../src/client/createClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { ChainId, type ExtendedChain } from '@lifi/types';
|
|
|
2
2
|
import type { SDKBaseConfig } from '../types/core.js';
|
|
3
3
|
export declare const getClientStorage: (config: SDKBaseConfig) => {
|
|
4
4
|
readonly needReset: boolean;
|
|
5
|
+
setChains(chains: ExtendedChain[]): void;
|
|
5
6
|
getChains(): Promise<ExtendedChain[]>;
|
|
6
7
|
getRpcUrls(): Promise<Partial<Record<ChainId, string[]>>>;
|
|
7
8
|
};
|
|
@@ -4,17 +4,29 @@ exports.getClientStorage = void 0;
|
|
|
4
4
|
const types_1 = require("@lifi/types");
|
|
5
5
|
const getChains_js_1 = require("../actions/getChains.js");
|
|
6
6
|
const utils_js_1 = require("../core/utils.js");
|
|
7
|
+
const chainsRefreshInterval = 1000 * 60 * 60 * 6;
|
|
7
8
|
const getClientStorage = (config) => {
|
|
8
9
|
let _chains = [];
|
|
9
10
|
let _rpcUrls = { ...config.rpcUrls };
|
|
10
11
|
let _chainsUpdatedAt;
|
|
12
|
+
const updateRpcUrls = () => {
|
|
13
|
+
_rpcUrls = { ...config.rpcUrls };
|
|
14
|
+
_rpcUrls = (0, utils_js_1.getRpcUrlsFromChains)(_rpcUrls, _chains, [types_1.ChainId.SOL]);
|
|
15
|
+
};
|
|
11
16
|
return {
|
|
12
17
|
get needReset() {
|
|
13
18
|
return (!_chainsUpdatedAt ||
|
|
14
|
-
Date.now() - _chainsUpdatedAt >=
|
|
15
|
-
|
|
19
|
+
Date.now() - _chainsUpdatedAt >= chainsRefreshInterval);
|
|
20
|
+
},
|
|
21
|
+
setChains(chains) {
|
|
22
|
+
_chains = chains;
|
|
23
|
+
_chainsUpdatedAt = Date.now();
|
|
24
|
+
updateRpcUrls();
|
|
16
25
|
},
|
|
17
26
|
async getChains() {
|
|
27
|
+
if (!config.preloadChains) {
|
|
28
|
+
return _chains;
|
|
29
|
+
}
|
|
18
30
|
if (this.needReset || !_chains.length) {
|
|
19
31
|
_chains = await (0, getChains_js_1._getChains)(config, {
|
|
20
32
|
chainTypes: [
|
|
@@ -25,8 +37,7 @@ const getClientStorage = (config) => {
|
|
|
25
37
|
],
|
|
26
38
|
});
|
|
27
39
|
_chainsUpdatedAt = Date.now();
|
|
28
|
-
|
|
29
|
-
_rpcUrls = (0, utils_js_1.getRpcUrlsFromChains)(_rpcUrls, _chains, [types_1.ChainId.SOL]);
|
|
40
|
+
updateRpcUrls();
|
|
30
41
|
}
|
|
31
42
|
return _chains;
|
|
32
43
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getClientStorage.js","sourceRoot":"","sources":["../../../src/client/getClientStorage.ts"],"names":[],"mappings":";;;AAAA,uCAAoE;AACpE,0DAAoD;AACpD,+CAAuD;
|
|
1
|
+
{"version":3,"file":"getClientStorage.js","sourceRoot":"","sources":["../../../src/client/getClientStorage.ts"],"names":[],"mappings":";;;AAAA,uCAAoE;AACpE,0DAAoD;AACpD,+CAAuD;AAIvD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEzC,MAAM,gBAAgB,GAAG,CAAC,MAAqB,EAAE,EAAE;IACxD,IAAI,OAAO,GAAG,EAAqB,CAAA;IACnC,IAAI,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAa,CAAA;IAC/C,IAAI,gBAAoC,CAAA;IAExC,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAChC,QAAQ,GAAG,IAAA,+BAAoB,EAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,eAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACnE,CAAC,CAAA;IAED,OAAO;QACL,IAAI,SAAS;YACX,OAAO,CACL,CAAC,gBAAgB;gBACjB,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,IAAI,qBAAqB,CACvD,CAAA;QACH,CAAC;QACD,SAAS,CAAC,MAAuB;YAC/B,OAAO,GAAG,MAAM,CAAA;YAChB,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC7B,aAAa,EAAE,CAAA;QACjB,CAAC;QACD,KAAK,CAAC,SAAS;YAGb,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAA;YAChB,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACtC,OAAO,GAAG,MAAM,IAAA,yBAAU,EAAC,MAAM,EAAE;oBACjC,UAAU,EAAE;wBACV,iBAAS,CAAC,GAAG;wBACb,iBAAS,CAAC,GAAG;wBACb,iBAAS,CAAC,IAAI;wBACd,iBAAS,CAAC,GAAG;qBACd;iBACF,CAAC,CAAA;gBACF,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAC7B,aAAa,EAAE,CAAA;YACjB,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,KAAK,CAAC,UAAU;YACd,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;YACtB,OAAO,QAAQ,CAAA;QACjB,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAhDY,QAAA,gBAAgB,oBAgD5B"}
|
package/dist/cjs/types/core.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface SDKBaseConfig {
|
|
|
11
11
|
disableVersionCheck?: boolean;
|
|
12
12
|
widgetVersion?: string;
|
|
13
13
|
debug: boolean;
|
|
14
|
-
|
|
14
|
+
preloadChains?: boolean;
|
|
15
15
|
}
|
|
16
16
|
export interface SDKConfig extends Partial<Omit<SDKBaseConfig, 'integrator'>> {
|
|
17
17
|
integrator: string;
|
|
@@ -29,6 +29,7 @@ export interface SDKClient {
|
|
|
29
29
|
providers: SDKProvider[];
|
|
30
30
|
getProvider(type: ChainType): SDKProvider | undefined;
|
|
31
31
|
setProviders(providers: SDKProvider[]): void;
|
|
32
|
+
setChains(chains: ExtendedChain[]): void;
|
|
32
33
|
getChains(): Promise<ExtendedChain[]>;
|
|
33
34
|
getChainById(chainId: ChainId): Promise<ExtendedChain>;
|
|
34
35
|
getRpcUrls(): Promise<RPCUrls>;
|
package/dist/cjs/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@lifi/sdk";
|
|
2
|
-
export declare const version = "4.0.0-alpha.
|
|
2
|
+
export declare const version = "4.0.0-alpha.6";
|
package/dist/cjs/version.js
CHANGED
|
@@ -13,6 +13,7 @@ export function createClient(options) {
|
|
|
13
13
|
apiUrl: options?.apiUrl ?? 'https://li.quest/v1',
|
|
14
14
|
rpcUrls: options?.rpcUrls ?? {},
|
|
15
15
|
debug: options?.debug ?? false,
|
|
16
|
+
preloadChains: options?.preloadChains ?? true,
|
|
16
17
|
integrator: options?.integrator ?? 'lifi-sdk',
|
|
17
18
|
};
|
|
18
19
|
let _providers = [];
|
|
@@ -34,6 +35,9 @@ export function createClient(options) {
|
|
|
34
35
|
}
|
|
35
36
|
_providers = Array.from(providerMap.values());
|
|
36
37
|
},
|
|
38
|
+
setChains(chains) {
|
|
39
|
+
_storage.setChains(chains);
|
|
40
|
+
},
|
|
37
41
|
async getChains() {
|
|
38
42
|
return await _storage.getChains();
|
|
39
43
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../../src/client/createClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../../src/client/createClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { ChainId, type ExtendedChain } from '@lifi/types';
|
|
|
2
2
|
import type { SDKBaseConfig } from '../types/core.js';
|
|
3
3
|
export declare const getClientStorage: (config: SDKBaseConfig) => {
|
|
4
4
|
readonly needReset: boolean;
|
|
5
|
+
setChains(chains: ExtendedChain[]): void;
|
|
5
6
|
getChains(): Promise<ExtendedChain[]>;
|
|
6
7
|
getRpcUrls(): Promise<Partial<Record<ChainId, string[]>>>;
|
|
7
8
|
};
|
|
@@ -1,17 +1,32 @@
|
|
|
1
1
|
import { ChainId, ChainType } from '@lifi/types';
|
|
2
2
|
import { _getChains } from '../actions/getChains.js';
|
|
3
3
|
import { getRpcUrlsFromChains } from '../core/utils.js';
|
|
4
|
+
// 6 hours in milliseconds
|
|
5
|
+
const chainsRefreshInterval = 1000 * 60 * 60 * 6;
|
|
4
6
|
export const getClientStorage = (config) => {
|
|
5
7
|
let _chains = [];
|
|
6
8
|
let _rpcUrls = { ...config.rpcUrls };
|
|
7
9
|
let _chainsUpdatedAt;
|
|
10
|
+
const updateRpcUrls = () => {
|
|
11
|
+
_rpcUrls = { ...config.rpcUrls };
|
|
12
|
+
_rpcUrls = getRpcUrlsFromChains(_rpcUrls, _chains, [ChainId.SOL]);
|
|
13
|
+
};
|
|
8
14
|
return {
|
|
9
15
|
get needReset() {
|
|
10
16
|
return (!_chainsUpdatedAt ||
|
|
11
|
-
Date.now() - _chainsUpdatedAt >=
|
|
12
|
-
|
|
17
|
+
Date.now() - _chainsUpdatedAt >= chainsRefreshInterval);
|
|
18
|
+
},
|
|
19
|
+
setChains(chains) {
|
|
20
|
+
_chains = chains;
|
|
21
|
+
_chainsUpdatedAt = Date.now();
|
|
22
|
+
updateRpcUrls();
|
|
13
23
|
},
|
|
14
24
|
async getChains() {
|
|
25
|
+
// When preloadChains is false, SDK does not auto-fetch chains
|
|
26
|
+
// External consumer is responsible for calling setChains
|
|
27
|
+
if (!config.preloadChains) {
|
|
28
|
+
return _chains;
|
|
29
|
+
}
|
|
15
30
|
if (this.needReset || !_chains.length) {
|
|
16
31
|
_chains = await _getChains(config, {
|
|
17
32
|
chainTypes: [
|
|
@@ -22,9 +37,7 @@ export const getClientStorage = (config) => {
|
|
|
22
37
|
],
|
|
23
38
|
});
|
|
24
39
|
_chainsUpdatedAt = Date.now();
|
|
25
|
-
|
|
26
|
-
_rpcUrls = { ...config.rpcUrls };
|
|
27
|
-
_rpcUrls = getRpcUrlsFromChains(_rpcUrls, _chains, [ChainId.SOL]);
|
|
40
|
+
updateRpcUrls();
|
|
28
41
|
}
|
|
29
42
|
return _chains;
|
|
30
43
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getClientStorage.js","sourceRoot":"","sources":["../../../src/client/getClientStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAsB,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAGvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAqB,EAAE,EAAE;IACxD,IAAI,OAAO,GAAG,EAAqB,CAAA;IACnC,IAAI,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAa,CAAA;IAC/C,IAAI,gBAAoC,CAAA;IAExC,OAAO;QACL,IAAI,SAAS;YACX,OAAO,CACL,CAAC,gBAAgB;gBACjB,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"getClientStorage.js","sourceRoot":"","sources":["../../../src/client/getClientStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAsB,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAGvD,0BAA0B;AAC1B,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEhD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAqB,EAAE,EAAE;IACxD,IAAI,OAAO,GAAG,EAAqB,CAAA;IACnC,IAAI,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAa,CAAA;IAC/C,IAAI,gBAAoC,CAAA;IAExC,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAChC,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACnE,CAAC,CAAA;IAED,OAAO;QACL,IAAI,SAAS;YACX,OAAO,CACL,CAAC,gBAAgB;gBACjB,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,IAAI,qBAAqB,CACvD,CAAA;QACH,CAAC;QACD,SAAS,CAAC,MAAuB;YAC/B,OAAO,GAAG,MAAM,CAAA;YAChB,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC7B,aAAa,EAAE,CAAA;QACjB,CAAC;QACD,KAAK,CAAC,SAAS;YACb,8DAA8D;YAC9D,yDAAyD;YACzD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAA;YAChB,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACtC,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE;oBACjC,UAAU,EAAE;wBACV,SAAS,CAAC,GAAG;wBACb,SAAS,CAAC,GAAG;wBACb,SAAS,CAAC,IAAI;wBACd,SAAS,CAAC,GAAG;qBACd;iBACF,CAAC,CAAA;gBACF,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAC7B,aAAa,EAAE,CAAA;YACjB,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,KAAK,CAAC,UAAU;YACd,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA,CAAC,kCAAkC;YACzD,OAAO,QAAQ,CAAA;QACjB,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
|
package/dist/esm/types/core.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface SDKBaseConfig {
|
|
|
11
11
|
disableVersionCheck?: boolean;
|
|
12
12
|
widgetVersion?: string;
|
|
13
13
|
debug: boolean;
|
|
14
|
-
|
|
14
|
+
preloadChains?: boolean;
|
|
15
15
|
}
|
|
16
16
|
export interface SDKConfig extends Partial<Omit<SDKBaseConfig, 'integrator'>> {
|
|
17
17
|
integrator: string;
|
|
@@ -29,6 +29,7 @@ export interface SDKClient {
|
|
|
29
29
|
providers: SDKProvider[];
|
|
30
30
|
getProvider(type: ChainType): SDKProvider | undefined;
|
|
31
31
|
setProviders(providers: SDKProvider[]): void;
|
|
32
|
+
setChains(chains: ExtendedChain[]): void;
|
|
32
33
|
getChains(): Promise<ExtendedChain[]>;
|
|
33
34
|
getChainById(chainId: ChainId): Promise<ExtendedChain>;
|
|
34
35
|
getRpcUrls(): Promise<RPCUrls>;
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@lifi/sdk";
|
|
2
|
-
export declare const version = "4.0.0-alpha.
|
|
2
|
+
export declare const version = "4.0.0-alpha.6";
|
package/dist/esm/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../../src/client/createClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,SAAS,EACT,SAAS,EAEV,MAAM,kBAAkB,CAAA;AAKzB,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../../src/client/createClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,SAAS,EACT,SAAS,EAEV,MAAM,kBAAkB,CAAA;AAKzB,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAsF1D"}
|
|
@@ -2,6 +2,7 @@ import { ChainId, type ExtendedChain } from '@lifi/types';
|
|
|
2
2
|
import type { SDKBaseConfig } from '../types/core.js';
|
|
3
3
|
export declare const getClientStorage: (config: SDKBaseConfig) => {
|
|
4
4
|
readonly needReset: boolean;
|
|
5
|
+
setChains(chains: ExtendedChain[]): void;
|
|
5
6
|
getChains(): Promise<ExtendedChain[]>;
|
|
6
7
|
getRpcUrls(): Promise<Partial<Record<ChainId, string[]>>>;
|
|
7
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getClientStorage.d.ts","sourceRoot":"","sources":["../../../src/client/getClientStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAGpE,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"getClientStorage.d.ts","sourceRoot":"","sources":["../../../src/client/getClientStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAGpE,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAK9D,eAAO,MAAM,gBAAgB,GAAI,QAAQ,aAAa;;sBAiBhC,aAAa,EAAE;;;CA+BpC,CAAA"}
|
|
@@ -11,7 +11,7 @@ export interface SDKBaseConfig {
|
|
|
11
11
|
disableVersionCheck?: boolean;
|
|
12
12
|
widgetVersion?: string;
|
|
13
13
|
debug: boolean;
|
|
14
|
-
|
|
14
|
+
preloadChains?: boolean;
|
|
15
15
|
}
|
|
16
16
|
export interface SDKConfig extends Partial<Omit<SDKBaseConfig, 'integrator'>> {
|
|
17
17
|
integrator: string;
|
|
@@ -29,6 +29,7 @@ export interface SDKClient {
|
|
|
29
29
|
providers: SDKProvider[];
|
|
30
30
|
getProvider(type: ChainType): SDKProvider | undefined;
|
|
31
31
|
setProviders(providers: SDKProvider[]): void;
|
|
32
|
+
setChains(chains: ExtendedChain[]): void;
|
|
32
33
|
getChains(): Promise<ExtendedChain[]>;
|
|
33
34
|
getChainById(chainId: ChainId): Promise<ExtendedChain>;
|
|
34
35
|
getRpcUrls(): Promise<RPCUrls>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,OAAO,EACP,aAAa,EACb,OAAO,EACP,OAAO,EACP,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,KAAK,EACL,WAAW,EACZ,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;IACd,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/types/core.ts"],"names":[],"mappings":"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"}
|
package/dist/types/version.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChainId, ChainType } from '@lifi/types'
|
|
1
|
+
import type { ChainId, ChainType, ExtendedChain } from '@lifi/types'
|
|
2
2
|
import type {
|
|
3
3
|
SDKBaseConfig,
|
|
4
4
|
SDKClient,
|
|
@@ -25,6 +25,7 @@ export function createClient(options: SDKConfig): SDKClient {
|
|
|
25
25
|
apiUrl: options?.apiUrl ?? 'https://li.quest/v1',
|
|
26
26
|
rpcUrls: options?.rpcUrls ?? {},
|
|
27
27
|
debug: options?.debug ?? false,
|
|
28
|
+
preloadChains: options?.preloadChains ?? true,
|
|
28
29
|
integrator: options?.integrator ?? 'lifi-sdk',
|
|
29
30
|
}
|
|
30
31
|
|
|
@@ -50,6 +51,9 @@ export function createClient(options: SDKConfig): SDKClient {
|
|
|
50
51
|
}
|
|
51
52
|
_providers = Array.from(providerMap.values())
|
|
52
53
|
},
|
|
54
|
+
setChains(chains: ExtendedChain[]) {
|
|
55
|
+
_storage.setChains(chains)
|
|
56
|
+
},
|
|
53
57
|
async getChains() {
|
|
54
58
|
return await _storage.getChains()
|
|
55
59
|
},
|
|
@@ -3,20 +3,38 @@ import { _getChains } from '../actions/getChains.js'
|
|
|
3
3
|
import { getRpcUrlsFromChains } from '../core/utils.js'
|
|
4
4
|
import type { RPCUrls, SDKBaseConfig } from '../types/core.js'
|
|
5
5
|
|
|
6
|
+
// 6 hours in milliseconds
|
|
7
|
+
const chainsRefreshInterval = 1000 * 60 * 60 * 6
|
|
8
|
+
|
|
6
9
|
export const getClientStorage = (config: SDKBaseConfig) => {
|
|
7
10
|
let _chains = [] as ExtendedChain[]
|
|
8
11
|
let _rpcUrls = { ...config.rpcUrls } as RPCUrls
|
|
9
12
|
let _chainsUpdatedAt: number | undefined
|
|
10
13
|
|
|
14
|
+
const updateRpcUrls = () => {
|
|
15
|
+
_rpcUrls = { ...config.rpcUrls }
|
|
16
|
+
_rpcUrls = getRpcUrlsFromChains(_rpcUrls, _chains, [ChainId.SOL])
|
|
17
|
+
}
|
|
18
|
+
|
|
11
19
|
return {
|
|
12
20
|
get needReset() {
|
|
13
21
|
return (
|
|
14
22
|
!_chainsUpdatedAt ||
|
|
15
|
-
Date.now() - _chainsUpdatedAt >=
|
|
16
|
-
(config.chainsRefetchInterval ?? 1000 * 60 * 60 * 24)
|
|
23
|
+
Date.now() - _chainsUpdatedAt >= chainsRefreshInterval
|
|
17
24
|
)
|
|
18
25
|
},
|
|
26
|
+
setChains(chains: ExtendedChain[]) {
|
|
27
|
+
_chains = chains
|
|
28
|
+
_chainsUpdatedAt = Date.now()
|
|
29
|
+
updateRpcUrls()
|
|
30
|
+
},
|
|
19
31
|
async getChains() {
|
|
32
|
+
// When preloadChains is false, SDK does not auto-fetch chains
|
|
33
|
+
// External consumer is responsible for calling setChains
|
|
34
|
+
if (!config.preloadChains) {
|
|
35
|
+
return _chains
|
|
36
|
+
}
|
|
37
|
+
|
|
20
38
|
if (this.needReset || !_chains.length) {
|
|
21
39
|
_chains = await _getChains(config, {
|
|
22
40
|
chainTypes: [
|
|
@@ -27,10 +45,7 @@ export const getClientStorage = (config: SDKBaseConfig) => {
|
|
|
27
45
|
],
|
|
28
46
|
})
|
|
29
47
|
_chainsUpdatedAt = Date.now()
|
|
30
|
-
|
|
31
|
-
// Reset dependent data
|
|
32
|
-
_rpcUrls = { ...config.rpcUrls }
|
|
33
|
-
_rpcUrls = getRpcUrlsFromChains(_rpcUrls, _chains, [ChainId.SOL])
|
|
48
|
+
updateRpcUrls()
|
|
34
49
|
}
|
|
35
50
|
return _chains
|
|
36
51
|
},
|
package/src/types/core.ts
CHANGED
|
@@ -26,7 +26,7 @@ export interface SDKBaseConfig {
|
|
|
26
26
|
disableVersionCheck?: boolean
|
|
27
27
|
widgetVersion?: string
|
|
28
28
|
debug: boolean
|
|
29
|
-
|
|
29
|
+
preloadChains?: boolean
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export interface SDKConfig extends Partial<Omit<SDKBaseConfig, 'integrator'>> {
|
|
@@ -57,6 +57,7 @@ export interface SDKClient {
|
|
|
57
57
|
providers: SDKProvider[]
|
|
58
58
|
getProvider(type: ChainType): SDKProvider | undefined
|
|
59
59
|
setProviders(providers: SDKProvider[]): void
|
|
60
|
+
setChains(chains: ExtendedChain[]): void
|
|
60
61
|
getChains(): Promise<ExtendedChain[]>
|
|
61
62
|
getChainById(chainId: ChainId): Promise<ExtendedChain>
|
|
62
63
|
getRpcUrls(): Promise<RPCUrls>
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/sdk'
|
|
2
|
-
export const version = '4.0.0-alpha.
|
|
2
|
+
export const version = '4.0.0-alpha.6'
|