epistery 1.4.1 → 1.4.4
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/client/witness.js +1 -0
- package/dist/chains/PolygonChain.js +1 -1
- package/dist/chains/PolygonChain.js.map +1 -1
- package/dist/chains/index.d.ts +1 -1
- package/dist/chains/index.d.ts.map +1 -1
- package/dist/chains/index.js +4 -1
- package/dist/chains/index.js.map +1 -1
- package/dist/chains/registry.d.ts +17 -0
- package/dist/chains/registry.d.ts.map +1 -1
- package/dist/chains/registry.js +37 -0
- package/dist/chains/registry.js.map +1 -1
- package/index.mjs +2 -2
- package/package.json +3 -2
- package/src/chains/PolygonChain.ts +1 -1
- package/src/chains/index.ts +2 -1
- package/src/chains/registry.ts +39 -0
package/client/witness.js
CHANGED
|
@@ -36,7 +36,7 @@ exports.PolygonChain = PolygonChain;
|
|
|
36
36
|
PolygonChain.chainId = 137;
|
|
37
37
|
PolygonChain.defaults = {
|
|
38
38
|
name: 'Polygon Mainnet',
|
|
39
|
-
rpc: 'https://polygon
|
|
39
|
+
rpc: 'https://polygon.drpc.org',
|
|
40
40
|
nativeCurrencyName: 'POL',
|
|
41
41
|
nativeCurrencySymbol: 'POL',
|
|
42
42
|
nativeCurrencyDecimals: 18,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolygonChain.js","sourceRoot":"","sources":["../../src/chains/PolygonChain.ts"],"names":[],"mappings":";;;AACA,mCAA8C;AAC9C,yCAA2C;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAa,YAAa,SAAQ,aAAK;IAU3B,cAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,MAAM,eAAe,GAAG,EAAE,CAAC,oBAAoB,IAAI,KAAK,CAAC;QACzD,MAAM,oBAAoB,GAAG,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;QAEjF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,IAAI,SAAS,CAAC;QAChD,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;IAChD,CAAC;;AA3BH,oCA4BC;AA3BQ,oBAAO,GAAG,GAAG,CAAC;AACd,qBAAQ,GAAG;IAChB,IAAI,EAAE,iBAAiB;IACvB,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"PolygonChain.js","sourceRoot":"","sources":["../../src/chains/PolygonChain.ts"],"names":[],"mappings":";;;AACA,mCAA8C;AAC9C,yCAA2C;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAa,YAAa,SAAQ,aAAK;IAU3B,cAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,MAAM,eAAe,GAAG,EAAE,CAAC,oBAAoB,IAAI,KAAK,CAAC;QACzD,MAAM,oBAAoB,GAAG,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;QAEjF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,IAAI,SAAS,CAAC;QAChD,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;IAChD,CAAC;;AA3BH,oCA4BC;AA3BQ,oBAAO,GAAG,GAAG,CAAC;AACd,qBAAQ,GAAG;IAChB,IAAI,EAAE,iBAAiB;IACvB,GAAG,EAAE,0BAA0B;IAC/B,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,EAAE;CAC3B,CAAC;AAsBJ;;;;;;GAMG;AACH,MAAa,SAAU,SAAQ,YAAY;;AAA3C,8BASC;AARQ,iBAAO,GAAG,KAAK,CAAC;AAChB,kBAAQ,GAAG;IAChB,IAAI,EAAE,sBAAsB;IAC5B,GAAG,EAAE,qCAAqC;IAC1C,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,EAAE;CAC3B,CAAC;AAGJ,IAAA,wBAAa,EAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAClD,IAAA,wBAAa,EAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC"}
|
package/dist/chains/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* happens exactly once.
|
|
16
16
|
*/
|
|
17
17
|
export { Chain, ChainConfig, ChainFeeData, ChainPolicy } from './Chain';
|
|
18
|
-
export { chainFor, registerChain, hasRegisteredChain, registeredChainIds, registeredChains } from './registry';
|
|
18
|
+
export { chainFor, registerChain, hasRegisteredChain, registeredChainIds, registeredChains, configuredChains, defaultChainId } from './registry';
|
|
19
19
|
export { PolygonChain, AmoyChain } from './PolygonChain';
|
|
20
20
|
export { EthereumChain, SepoliaChain } from './EthereumChain';
|
|
21
21
|
export { JapanOpenChain } from './JapanOpenChain';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chains/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chains/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjJ,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/chains/index.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* happens exactly once.
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.JapanOpenChain = exports.SepoliaChain = exports.EthereumChain = exports.AmoyChain = exports.PolygonChain = exports.registeredChains = exports.registeredChainIds = exports.hasRegisteredChain = exports.registerChain = exports.chainFor = exports.Chain = void 0;
|
|
19
|
+
exports.JapanOpenChain = exports.SepoliaChain = exports.EthereumChain = exports.AmoyChain = exports.PolygonChain = exports.defaultChainId = exports.configuredChains = exports.registeredChains = exports.registeredChainIds = exports.hasRegisteredChain = exports.registerChain = exports.chainFor = exports.Chain = void 0;
|
|
20
20
|
// Public API
|
|
21
21
|
var Chain_1 = require("./Chain");
|
|
22
22
|
Object.defineProperty(exports, "Chain", { enumerable: true, get: function () { return Chain_1.Chain; } });
|
|
@@ -26,6 +26,9 @@ Object.defineProperty(exports, "registerChain", { enumerable: true, get: functio
|
|
|
26
26
|
Object.defineProperty(exports, "hasRegisteredChain", { enumerable: true, get: function () { return registry_1.hasRegisteredChain; } });
|
|
27
27
|
Object.defineProperty(exports, "registeredChainIds", { enumerable: true, get: function () { return registry_1.registeredChainIds; } });
|
|
28
28
|
Object.defineProperty(exports, "registeredChains", { enumerable: true, get: function () { return registry_1.registeredChains; } });
|
|
29
|
+
Object.defineProperty(exports, "configuredChains", { enumerable: true, get: function () { return registry_1.configuredChains; } });
|
|
30
|
+
Object.defineProperty(exports, "defaultChainId", { enumerable: true, get: function () { return registry_1.defaultChainId; } });
|
|
31
|
+
// registeredChains: internal use + configuredChains(); not re-exported from index.mjs
|
|
29
32
|
// Built-in chains — imported for their registerChain() side effect.
|
|
30
33
|
// Re-exported so callers that want a concrete subclass (e.g. for instanceof
|
|
31
34
|
// checks or to subclass it themselves) can import from the barrel.
|
package/dist/chains/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chains/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH,aAAa;AACb,iCAAwE;AAA/D,8FAAA,KAAK,OAAA;AACd,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chains/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH,aAAa;AACb,iCAAwE;AAA/D,8FAAA,KAAK,OAAA;AACd,uCAAiJ;AAAxI,oGAAA,QAAQ,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAAE,0GAAA,cAAc,OAAA;AAC5H,sFAAsF;AAEtF,oEAAoE;AACpE,4EAA4E;AAC5E,mEAAmE;AACnE,+CAAyD;AAAhD,4GAAA,YAAY,OAAA;AAAE,yGAAA,SAAS,OAAA;AAChC,iDAA8D;AAArD,8GAAA,aAAa,OAAA;AAAE,6GAAA,YAAY,OAAA;AACpC,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
|
|
@@ -28,6 +28,23 @@ export declare function chainFor(config: ChainConfig): Chain;
|
|
|
28
28
|
* UI dropdowns. No root config needed.
|
|
29
29
|
*/
|
|
30
30
|
export declare function registeredChains(): ChainConfig[];
|
|
31
|
+
/**
|
|
32
|
+
* Return the chain list with `privateRpc` overlaid from root config.
|
|
33
|
+
*
|
|
34
|
+
* Looks in `~/.epistery/config.ini` for:
|
|
35
|
+
* - `[default.rpc.<chainId>] privateRpc = ...` (per-chain override)
|
|
36
|
+
* - `[default.provider] privateRpc / rpc` (legacy single-chain fallback)
|
|
37
|
+
*
|
|
38
|
+
* Chains without a config override are returned unchanged.
|
|
39
|
+
*/
|
|
40
|
+
export declare function configuredChains(): ChainConfig[];
|
|
41
|
+
/**
|
|
42
|
+
* Return the configured default chainId from root config.
|
|
43
|
+
*
|
|
44
|
+
* Checks `[default] defaultChainId`, then `[default.provider] chainId`,
|
|
45
|
+
* falling back to Polygon mainnet (137).
|
|
46
|
+
*/
|
|
47
|
+
export declare function defaultChainId(): string;
|
|
31
48
|
/** Visible for tests / debug. Returns true if a chainId has a registered subclass. */
|
|
32
49
|
export declare function hasRegisteredChain(chainId: number): boolean;
|
|
33
50
|
/** Visible for tests / debug. Returns the list of registered chainIds. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/chains/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/chains/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG7C,KAAK,SAAS,GAAG,CAAC,KAAK,MAAM,EAAE,WAAW,KAAK,KAAK,CAAC,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC;AAmB3F;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAEpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAanD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,EAAE,CAShD;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,EAAE,CAWhD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAED,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C"}
|
package/dist/chains/registry.js
CHANGED
|
@@ -3,9 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerChain = registerChain;
|
|
4
4
|
exports.chainFor = chainFor;
|
|
5
5
|
exports.registeredChains = registeredChains;
|
|
6
|
+
exports.configuredChains = configuredChains;
|
|
7
|
+
exports.defaultChainId = defaultChainId;
|
|
6
8
|
exports.hasRegisteredChain = hasRegisteredChain;
|
|
7
9
|
exports.registeredChainIds = registeredChainIds;
|
|
8
10
|
const Chain_1 = require("./Chain");
|
|
11
|
+
const Config_1 = require("../utils/Config");
|
|
9
12
|
/**
|
|
10
13
|
* Registry of chainId → Chain subclass.
|
|
11
14
|
*
|
|
@@ -72,6 +75,40 @@ function registeredChains() {
|
|
|
72
75
|
}
|
|
73
76
|
return chains;
|
|
74
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Return the chain list with `privateRpc` overlaid from root config.
|
|
80
|
+
*
|
|
81
|
+
* Looks in `~/.epistery/config.ini` for:
|
|
82
|
+
* - `[default.rpc.<chainId>] privateRpc = ...` (per-chain override)
|
|
83
|
+
* - `[default.provider] privateRpc / rpc` (legacy single-chain fallback)
|
|
84
|
+
*
|
|
85
|
+
* Chains without a config override are returned unchanged.
|
|
86
|
+
*/
|
|
87
|
+
function configuredChains() {
|
|
88
|
+
const config = new Config_1.Config();
|
|
89
|
+
const rootData = config.read('/');
|
|
90
|
+
return registeredChains().map(chain => {
|
|
91
|
+
const id = String(chain.chainId);
|
|
92
|
+
const privateRpc = rootData?.default?.rpc?.[id]?.privateRpc
|
|
93
|
+
|| (rootData?.default?.provider && String(rootData.default.provider.chainId) === id
|
|
94
|
+
? (rootData.default.provider.privateRpc || rootData.default.provider.rpc)
|
|
95
|
+
: null);
|
|
96
|
+
return privateRpc ? { ...chain, privateRpc } : chain;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Return the configured default chainId from root config.
|
|
101
|
+
*
|
|
102
|
+
* Checks `[default] defaultChainId`, then `[default.provider] chainId`,
|
|
103
|
+
* falling back to Polygon mainnet (137).
|
|
104
|
+
*/
|
|
105
|
+
function defaultChainId() {
|
|
106
|
+
const config = new Config_1.Config();
|
|
107
|
+
const rootData = config.read('/');
|
|
108
|
+
return String(rootData?.default?.defaultChainId
|
|
109
|
+
|| rootData?.default?.provider?.chainId
|
|
110
|
+
|| '137');
|
|
111
|
+
}
|
|
75
112
|
/** Visible for tests / debug. Returns true if a chainId has a registered subclass. */
|
|
76
113
|
function hasRegisteredChain(chainId) {
|
|
77
114
|
return REGISTRY.has(Number(chainId));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/chains/registry.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/chains/registry.ts"],"names":[],"mappings":"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"}
|
package/index.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { fileURLToPath } from "url";
|
|
|
5
5
|
import { Epistery } from "./dist/epistery.js";
|
|
6
6
|
import { Utils } from "./dist/utils/Utils.js";
|
|
7
7
|
import { Config } from "./dist/utils/Config.js";
|
|
8
|
-
import { chainFor, registerChain,
|
|
8
|
+
import { chainFor, registerChain, configuredChains, defaultChainId, Chain } from "./dist/chains/index.js";
|
|
9
9
|
import createRoutes from "./routes/index.mjs";
|
|
10
10
|
|
|
11
11
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -627,4 +627,4 @@ class EpisteryAttach {
|
|
|
627
627
|
}
|
|
628
628
|
}
|
|
629
629
|
|
|
630
|
-
export { EpisteryAttach as Epistery, Config, chainFor, registerChain,
|
|
630
|
+
export { EpisteryAttach as Epistery, Config, chainFor, registerChain, configuredChains, defaultChainId, Chain };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "epistery",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.4",
|
|
4
4
|
"description": "Epistery brings blockchain capabilities to mundane web tasks like engagement metrics, authentication and commerce of all sorts.",
|
|
5
5
|
"author": "Rootz Corp.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,8 +34,9 @@
|
|
|
34
34
|
"aqua-js-sdk": "^3.2.1-44",
|
|
35
35
|
"cookie-parser": "^1.4.7",
|
|
36
36
|
"dotenv": "^17.2.2",
|
|
37
|
-
"
|
|
37
|
+
"epistery": "^1.4.1",
|
|
38
38
|
"ethers": "^5.8.0",
|
|
39
|
+
"express": "^5.1.0",
|
|
39
40
|
"ini": "^5.0.0",
|
|
40
41
|
"kubo-rpc-client": "^5.2.0",
|
|
41
42
|
"node-fetch": "^3.3.2",
|
|
@@ -19,7 +19,7 @@ export class PolygonChain extends Chain {
|
|
|
19
19
|
static chainId = 137;
|
|
20
20
|
static defaults = {
|
|
21
21
|
name: 'Polygon Mainnet',
|
|
22
|
-
rpc: 'https://polygon
|
|
22
|
+
rpc: 'https://polygon.drpc.org',
|
|
23
23
|
nativeCurrencyName: 'POL',
|
|
24
24
|
nativeCurrencySymbol: 'POL',
|
|
25
25
|
nativeCurrencyDecimals: 18,
|
package/src/chains/index.ts
CHANGED
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
|
|
18
18
|
// Public API
|
|
19
19
|
export { Chain, ChainConfig, ChainFeeData, ChainPolicy } from './Chain';
|
|
20
|
-
export { chainFor, registerChain, hasRegisteredChain, registeredChainIds, registeredChains } from './registry';
|
|
20
|
+
export { chainFor, registerChain, hasRegisteredChain, registeredChainIds, registeredChains, configuredChains, defaultChainId } from './registry';
|
|
21
|
+
// registeredChains: internal use + configuredChains(); not re-exported from index.mjs
|
|
21
22
|
|
|
22
23
|
// Built-in chains — imported for their registerChain() side effect.
|
|
23
24
|
// Re-exported so callers that want a concrete subclass (e.g. for instanceof
|
package/src/chains/registry.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Chain, ChainConfig } from './Chain';
|
|
2
|
+
import { Config } from '../utils/Config';
|
|
2
3
|
|
|
3
4
|
type ChainCtor = (new (config: ChainConfig) => Chain) & { defaults: Partial<ChainConfig> };
|
|
4
5
|
|
|
@@ -72,6 +73,44 @@ export function registeredChains(): ChainConfig[] {
|
|
|
72
73
|
return chains;
|
|
73
74
|
}
|
|
74
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Return the chain list with `privateRpc` overlaid from root config.
|
|
78
|
+
*
|
|
79
|
+
* Looks in `~/.epistery/config.ini` for:
|
|
80
|
+
* - `[default.rpc.<chainId>] privateRpc = ...` (per-chain override)
|
|
81
|
+
* - `[default.provider] privateRpc / rpc` (legacy single-chain fallback)
|
|
82
|
+
*
|
|
83
|
+
* Chains without a config override are returned unchanged.
|
|
84
|
+
*/
|
|
85
|
+
export function configuredChains(): ChainConfig[] {
|
|
86
|
+
const config = new Config();
|
|
87
|
+
const rootData = config.read('/');
|
|
88
|
+
return registeredChains().map(chain => {
|
|
89
|
+
const id = String(chain.chainId);
|
|
90
|
+
const privateRpc = rootData?.default?.rpc?.[id]?.privateRpc
|
|
91
|
+
|| (rootData?.default?.provider && String(rootData.default.provider.chainId) === id
|
|
92
|
+
? (rootData.default.provider.privateRpc || rootData.default.provider.rpc)
|
|
93
|
+
: null);
|
|
94
|
+
return privateRpc ? { ...chain, privateRpc } : chain;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Return the configured default chainId from root config.
|
|
100
|
+
*
|
|
101
|
+
* Checks `[default] defaultChainId`, then `[default.provider] chainId`,
|
|
102
|
+
* falling back to Polygon mainnet (137).
|
|
103
|
+
*/
|
|
104
|
+
export function defaultChainId(): string {
|
|
105
|
+
const config = new Config();
|
|
106
|
+
const rootData = config.read('/');
|
|
107
|
+
return String(
|
|
108
|
+
rootData?.default?.defaultChainId
|
|
109
|
+
|| rootData?.default?.provider?.chainId
|
|
110
|
+
|| '137'
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
75
114
|
/** Visible for tests / debug. Returns true if a chainId has a registered subclass. */
|
|
76
115
|
export function hasRegisteredChain(chainId: number): boolean {
|
|
77
116
|
return REGISTRY.has(Number(chainId));
|