@sentio/sdk 2.60.0-rc.9 → 2.60.1-rc.1

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.
@@ -4,5 +4,6 @@ export declare class CorePlugin extends Plugin {
4
4
  name: string;
5
5
  configure(config: ProcessConfigResponse): Promise<void>;
6
6
  init(config: InitResponse): Promise<void>;
7
+ initStartupConfig(config: InitResponse | ProcessConfigResponse): void;
7
8
  }
8
9
  //# sourceMappingURL=core-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-plugin.d.ts","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAQpE,qBAAa,UAAW,SAAQ,MAAM;IACpC,IAAI,EAAE,MAAM,CAAe;IAErB,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCvD,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAShD"}
1
+ {"version":3,"file":"core-plugin.d.ts","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAQpE,qBAAa,UAAW,SAAQ,MAAM;IACpC,IAAI,EAAE,MAAM,CAAe;IAErB,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,qBAAqB,GAAG,IAAI;CAuCtE"}
@@ -9,6 +9,12 @@ export class CorePlugin extends Plugin {
9
9
  async configure(config) {
10
10
  // This syntax is to copy values instead of using references
11
11
  config.templateInstances = [...TemplateInstanceState.INSTANCE.getValues()];
12
+ this.initStartupConfig(config);
13
+ }
14
+ async init(config) {
15
+ this.initStartupConfig(config);
16
+ }
17
+ initStartupConfig(config) {
12
18
  for (const metric of MetricState.INSTANCE.getValues()) {
13
19
  config.metricConfigs.push({
14
20
  ...metric.config
@@ -37,8 +43,6 @@ export class CorePlugin extends Plugin {
37
43
  .join('\n\n')
38
44
  };
39
45
  }
40
- }
41
- async init(config) {
42
46
  if (DatabaseSchemaState.INSTANCE.getValues().length > 0) {
43
47
  config.dbSchema = {
44
48
  gqlSchema: DatabaseSchemaState.INSTANCE.getValues()
@@ -1 +1 @@
1
- {"version":3,"file":"core-plugin.js","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,OAAO,UAAW,SAAQ,MAAM;IACpC,IAAI,GAAW,YAAY,CAAA;IAE3B,KAAK,CAAC,SAAS,CAAC,MAA6B;QAC3C,4DAA4D;QAC5D,MAAM,CAAC,iBAAiB,GAAG,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;QAE1E,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YACtD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,GAAG,MAAM,CAAC,MAAM;aACjB,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YACzD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,GAAG,MAAM,CAAC,MAAM;aACjB,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,GAAG,KAAK,CAAC,MAAM;aAChB,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,QAAQ,GAAG;gBAChB,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE;qBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;qBACpB,IAAI,CAAC,MAAM,CAAC;aAChB,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAoB;QAC7B,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,QAAQ,GAAG;gBAChB,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE;qBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;qBACpB,IAAI,CAAC,MAAM,CAAC;aAChB,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAED,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"core-plugin.js","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,OAAO,UAAW,SAAQ,MAAM;IACpC,IAAI,GAAW,YAAY,CAAA;IAE3B,KAAK,CAAC,SAAS,CAAC,MAA6B;QAC3C,4DAA4D;QAC5D,MAAM,CAAC,iBAAiB,GAAG,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;QAE1E,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAoB;QAC7B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,iBAAiB,CAAC,MAA4C;QAC5D,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YACtD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,GAAG,MAAM,CAAC,MAAM;aACjB,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YACzD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,GAAG,MAAM,CAAC,MAAM;aACjB,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,GAAG,KAAK,CAAC,MAAM;aAChB,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,QAAQ,GAAG;gBAChB,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE;qBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;qBACpB,IAAI,CAAC,MAAM,CAAC;aAChB,CAAA;QACH,CAAC;QACD,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,QAAQ,GAAG;gBAChB,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE;qBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;qBACpB,IAAI,CAAC,MAAM,CAAC;aAChB,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAED,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler-register.d.ts","sourceRoot":"","sources":["../../src/core/handler-register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;AAmBxE,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,QAAQ,CAAuC;IAEvD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM;IAmBrE;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe;IAQ3C,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;CAiB/B"}
1
+ {"version":3,"file":"handler-register.d.ts","sourceRoot":"","sources":["../../src/core/handler-register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;AAqCxE,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,QAAQ,CAAuC;IAEvD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM;IAmBrE;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe;IAQ3C,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;CAiB/B"}
@@ -2,8 +2,24 @@ import { ServerError, Status } from 'nice-grpc';
2
2
  import { ChainId } from '@sentio/chain';
3
3
  const chainToNumber = new Map();
4
4
  const numberToChain = new Map();
5
+ const generateHash = (s) => {
6
+ let hash = 0;
7
+ for (const char of s) {
8
+ hash = (hash << 5) - hash + char.charCodeAt(0);
9
+ hash |= 0; // Constrain to 32bit integer
10
+ }
11
+ return Math.abs(hash);
12
+ };
5
13
  for (const chainId of Object.values(ChainId)) {
6
- const num = chainToNumber.size + 1;
14
+ let num = parseInt(chainId);
15
+ if (isNaN(num)) {
16
+ // If the chainId is not a number, generate a hash
17
+ num = generateHash(chainId);
18
+ }
19
+ if (numberToChain.has(num)) {
20
+ // If the number is already used for another chain, throw an error, this should not happen
21
+ throw new Error(`Chain ID ${chainId}'s number ${num} conflicts with existing chain ID ${numberToChain.get(num)}`);
22
+ }
7
23
  chainToNumber.set(chainId, num);
8
24
  numberToChain.set(num, chainId);
9
25
  }
@@ -19,7 +35,7 @@ export class HandlerRegister {
19
35
  const chainNum = chainToNumber.get(chainId) || 0;
20
36
  const entries = this.handlerByChain.get(chainNum) || [];
21
37
  const len = entries.length;
22
- const id = chainNum * MAX_HANDLER_PER_CHAIN + len + 1; // Use the first 32 bits for chain ID, next bits for index
38
+ const id = chainNum * MAX_HANDLER_PER_CHAIN + len + 1;
23
39
  const entry = {
24
40
  id,
25
41
  handler,
@@ -1 +1 @@
1
- {"version":3,"file":"handler-register.js","sourceRoot":"","sources":["../../src/core/handler-register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAWvC,MAAM,aAAa,GAAwB,IAAI,GAAG,EAAE,CAAA;AACpD,MAAM,aAAa,GAAwB,IAAI,GAAG,EAAE,CAAA;AAEpD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,CAAA;IAClC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC/B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,qBAAqB,GAAG,OAAO,CAAA,CAAC,6BAA6B;AAEnE,MAAM,OAAO,eAAe;IAClB,cAAc,GAAgC,IAAI,GAAG,EAAE,CAAA;IACvD,QAAQ,GAA8B,IAAI,GAAG,EAAE,CAAA;IAEvD;;;OAGG;IACH,QAAQ,CAAC,OAAwB,EAAE,OAAyB;QAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAEvD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAA;QAC1B,MAAM,EAAE,GAAG,QAAQ,GAAG,qBAAqB,GAAG,GAAG,GAAG,CAAC,CAAA,CAAC,0DAA0D;QAEhH,MAAM,KAAK,GAAiB;YAC1B,EAAE;YACF,OAAO;YACP,OAAO;SACR,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAE5B,OAAO,EAAE,CAAA;IACX,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,EAAU;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAA;QAC5E,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,OAAiB;QACrB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBACvD,IAAI,aAAa,EAAE,CAAC;oBAClB,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;wBAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;oBAChC,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;YAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QACvB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"handler-register.js","sourceRoot":"","sources":["../../src/core/handler-register.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
- "version": "2.60.0-rc.9",
3
+ "version": "2.60.1-rc.1",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -66,7 +66,7 @@
66
66
  "@sentio/abi-wan-kanabi": "2.2.2-1",
67
67
  "@sentio/api": "1.0.2",
68
68
  "@sentio/bigdecimal": "9.1.1-patch.3",
69
- "@sentio/chain": "~3.2.0",
69
+ "@sentio/chain": "~3.3.0",
70
70
  "@sentio/ethers-v6": "^1.0.29",
71
71
  "@solana/web3.js": "1.98.2",
72
72
  "@typemove/aptos": "~1.10.0",
@@ -97,8 +97,8 @@
97
97
  "typechain": "^8.3.2",
98
98
  "utility-types": "^3.11.0",
99
99
  "yaml": "^2.3.4",
100
- "@sentio/protos": "2.60.0-rc.9",
101
- "@sentio/runtime": "^2.60.0-rc.9"
100
+ "@sentio/runtime": "^2.60.1-rc.1",
101
+ "@sentio/protos": "2.60.1-rc.1"
102
102
  },
103
103
  "peerDependencies": {
104
104
  "@sentio/tsup": "^8.3.5-rc.1"
@@ -14,6 +14,14 @@ export class CorePlugin extends Plugin {
14
14
  // This syntax is to copy values instead of using references
15
15
  config.templateInstances = [...TemplateInstanceState.INSTANCE.getValues()]
16
16
 
17
+ this.initStartupConfig(config)
18
+ }
19
+
20
+ async init(config: InitResponse): Promise<void> {
21
+ this.initStartupConfig(config)
22
+ }
23
+
24
+ initStartupConfig(config: InitResponse | ProcessConfigResponse): void {
17
25
  for (const metric of MetricState.INSTANCE.getValues()) {
18
26
  config.metricConfigs.push({
19
27
  ...metric.config
@@ -44,9 +52,6 @@ export class CorePlugin extends Plugin {
44
52
  .join('\n\n')
45
53
  }
46
54
  }
47
- }
48
-
49
- async init(config: InitResponse): Promise<void> {
50
55
  if (DatabaseSchemaState.INSTANCE.getValues().length > 0) {
51
56
  config.dbSchema = {
52
57
  gqlSchema: DatabaseSchemaState.INSTANCE.getValues()
@@ -13,8 +13,26 @@ interface HandlerEntry {
13
13
  const chainToNumber: Map<string, number> = new Map()
14
14
  const numberToChain: Map<number, string> = new Map()
15
15
 
16
+ const generateHash = (s: string) => {
17
+ let hash = 0
18
+ for (const char of s) {
19
+ hash = (hash << 5) - hash + char.charCodeAt(0)
20
+ hash |= 0 // Constrain to 32bit integer
21
+ }
22
+ return Math.abs(hash)
23
+ }
24
+
16
25
  for (const chainId of Object.values(ChainId)) {
17
- const num = chainToNumber.size + 1
26
+ let num = parseInt(chainId)
27
+ if (isNaN(num)) {
28
+ // If the chainId is not a number, generate a hash
29
+ num = generateHash(chainId)
30
+ }
31
+
32
+ if (numberToChain.has(num)) {
33
+ // If the number is already used for another chain, throw an error, this should not happen
34
+ throw new Error(`Chain ID ${chainId}'s number ${num} conflicts with existing chain ID ${numberToChain.get(num)}`)
35
+ }
18
36
  chainToNumber.set(chainId, num)
19
37
  numberToChain.set(num, chainId)
20
38
  }
@@ -34,7 +52,7 @@ export class HandlerRegister {
34
52
  const entries = this.handlerByChain.get(chainNum) || []
35
53
 
36
54
  const len = entries.length
37
- const id = chainNum * MAX_HANDLER_PER_CHAIN + len + 1 // Use the first 32 bits for chain ID, next bits for index
55
+ const id = chainNum * MAX_HANDLER_PER_CHAIN + len + 1
38
56
 
39
57
  const entry: HandlerEntry = {
40
58
  id,