@pezkuwi/types-known 16.5.6 → 16.5.7
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/build/README.md +3 -0
- package/build/bundle.js +3 -0
- package/build/chain/index.js +1 -0
- package/build/cjs/bundle.d.ts +3 -0
- package/build/cjs/bundle.js +9 -0
- package/build/cjs/chain/index.d.ts +2 -0
- package/build/cjs/chain/index.js +4 -0
- package/build/cjs/index.js +5 -0
- package/build/cjs/packageInfo.js +4 -0
- package/build/cjs/spec/centrifuge-chain.js +105 -0
- package/build/cjs/spec/dicle.js +118 -0
- package/build/cjs/spec/index.js +27 -0
- package/build/cjs/spec/node-template.js +13 -0
- package/build/cjs/spec/node.js +13 -0
- package/build/cjs/spec/pezkuwi.js +105 -0
- package/build/cjs/spec/pezkuwichain.js +65 -0
- package/build/cjs/spec/shell.js +11 -0
- package/build/cjs/spec/statemine.js +55 -0
- package/build/cjs/spec/statemint.js +67 -0
- package/build/cjs/spec/westmint.js +55 -0
- package/build/cjs/spec/zagros.js +118 -0
- package/build/cjs/upgrades/e2e/dicle.js +6429 -0
- package/build/cjs/upgrades/e2e/index.js +9 -0
- package/build/cjs/upgrades/e2e/pezkuwi.js +3707 -0
- package/build/cjs/upgrades/e2e/zagros.js +6429 -0
- package/build/cjs/upgrades/index.js +35 -0
- package/build/cjs/upgrades/manual/dicle.js +25 -0
- package/build/cjs/upgrades/manual/index.js +9 -0
- package/build/cjs/upgrades/manual/pezkuwi.js +17 -0
- package/build/cjs/upgrades/manual/zagros.js +25 -0
- package/build/cjs/upgrades/types.js +2 -0
- package/build/cjs/util.js +112 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +2 -0
- package/build/package.json +447 -0
- package/build/packageDetect.d.ts +1 -0
- package/build/packageDetect.js +4 -0
- package/build/packageInfo.d.ts +6 -0
- package/build/packageInfo.js +1 -0
- package/build/spec/centrifuge-chain.d.ts +2 -0
- package/build/spec/centrifuge-chain.js +102 -0
- package/build/spec/dicle.d.ts +2 -0
- package/build/spec/dicle.js +115 -0
- package/build/spec/index.d.ts +2 -0
- package/build/spec/index.js +24 -0
- package/build/spec/node-template.d.ts +2 -0
- package/build/spec/node-template.js +10 -0
- package/build/spec/node.d.ts +2 -0
- package/build/spec/node.js +10 -0
- package/build/spec/pezkuwi.d.ts +2 -0
- package/build/spec/pezkuwi.js +102 -0
- package/build/spec/pezkuwichain.d.ts +2 -0
- package/build/spec/pezkuwichain.js +62 -0
- package/build/spec/shell.d.ts +2 -0
- package/build/spec/shell.js +8 -0
- package/build/spec/statemine.d.ts +2 -0
- package/build/spec/statemine.js +52 -0
- package/build/spec/statemint.d.ts +2 -0
- package/build/spec/statemint.js +64 -0
- package/build/spec/westmint.d.ts +2 -0
- package/build/spec/westmint.js +52 -0
- package/build/spec/zagros.d.ts +2 -0
- package/build/spec/zagros.js +115 -0
- package/build/upgrades/e2e/dicle.d.ts +2 -0
- package/build/upgrades/e2e/dicle.js +6426 -0
- package/build/upgrades/e2e/index.d.ts +3 -0
- package/build/upgrades/e2e/index.js +3 -0
- package/build/upgrades/e2e/pezkuwi.d.ts +2 -0
- package/build/upgrades/e2e/pezkuwi.js +3704 -0
- package/build/upgrades/e2e/zagros.d.ts +2 -0
- package/build/upgrades/e2e/zagros.js +6426 -0
- package/build/upgrades/index.d.ts +2 -0
- package/build/upgrades/index.js +31 -0
- package/build/upgrades/manual/dicle.d.ts +2 -0
- package/build/upgrades/manual/dicle.js +22 -0
- package/build/upgrades/manual/index.d.ts +3 -0
- package/build/upgrades/manual/index.js +3 -0
- package/build/upgrades/manual/pezkuwi.d.ts +2 -0
- package/build/upgrades/manual/pezkuwi.js +14 -0
- package/build/upgrades/manual/zagros.d.ts +2 -0
- package/build/upgrades/manual/zagros.js +22 -0
- package/build/upgrades/types.d.ts +3 -0
- package/build/upgrades/types.js +1 -0
- package/build/util.d.ts +33 -0
- package/build/util.js +103 -0
- package/build-deno/README.md +3 -0
- package/build-deno/bundle.ts +6 -0
- package/build-deno/chain/index.ts +4 -0
- package/build-deno/index.ts +4 -0
- package/build-deno/mod.ts +2 -0
- package/build-deno/packageDetect.ts +8 -0
- package/build-deno/packageInfo.ts +3 -0
- package/build-deno/spec/centrifuge-chain.ts +114 -0
- package/build-deno/spec/dicle.ts +123 -0
- package/build-deno/spec/index.ts +28 -0
- package/build-deno/spec/node-template.ts +15 -0
- package/build-deno/spec/node.ts +15 -0
- package/build-deno/spec/pezkuwi.ts +109 -0
- package/build-deno/spec/pezkuwichain.ts +70 -0
- package/build-deno/spec/shell.ts +13 -0
- package/build-deno/spec/statemine.ts +59 -0
- package/build-deno/spec/statemint.ts +71 -0
- package/build-deno/spec/westmint.ts +59 -0
- package/build-deno/spec/zagros.ts +123 -0
- package/build-deno/upgrades/e2e/dicle.ts +6431 -0
- package/build-deno/upgrades/e2e/index.ts +4 -0
- package/build-deno/upgrades/e2e/pezkuwi.ts +3709 -0
- package/build-deno/upgrades/e2e/zagros.ts +6431 -0
- package/build-deno/upgrades/index.ts +42 -0
- package/build-deno/upgrades/manual/dicle.ts +25 -0
- package/build-deno/upgrades/manual/index.ts +4 -0
- package/build-deno/upgrades/manual/pezkuwi.ts +17 -0
- package/build-deno/upgrades/manual/zagros.ts +25 -0
- package/build-deno/upgrades/types.ts +6 -0
- package/build-deno/util.ts +126 -0
- package/build-tsc-cjs/packageDetect.js +6 -0
- package/{cjs → build-tsc-cjs}/packageInfo.js +1 -1
- package/{cjs → build-tsc-cjs}/upgrades/index.js +7 -1
- package/{packageInfo.js → build-tsc-esm/packageInfo.js} +1 -1
- package/{upgrades → build-tsc-esm/upgrades}/index.js +7 -1
- package/package.json +6 -419
- package/src/bundle.ts +11 -0
- package/src/chain/index.ts +7 -0
- package/src/index.ts +6 -0
- package/src/mod.ts +4 -0
- package/src/packageDetect.ts +12 -0
- package/src/packageInfo.ts +6 -0
- package/src/spec/centrifuge-chain.ts +116 -0
- package/src/spec/dicle.ts +125 -0
- package/src/spec/index.ts +31 -0
- package/src/spec/node-template.ts +17 -0
- package/src/spec/node.ts +17 -0
- package/src/spec/pezkuwi.ts +112 -0
- package/src/spec/pezkuwichain.ts +73 -0
- package/src/spec/shell.ts +15 -0
- package/src/spec/statemine.ts +62 -0
- package/src/spec/statemint.ts +74 -0
- package/src/spec/westmint.ts +62 -0
- package/src/spec/zagros.ts +125 -0
- package/src/upgrades/e2e/dicle.ts +6434 -0
- package/src/upgrades/e2e/index.spec.ts +66 -0
- package/src/upgrades/e2e/index.ts +6 -0
- package/src/upgrades/e2e/pezkuwi.ts +3712 -0
- package/src/upgrades/e2e/zagros.ts +6434 -0
- package/src/upgrades/index.spec.ts +118 -0
- package/src/upgrades/index.ts +46 -0
- package/src/upgrades/manual/dicle.ts +27 -0
- package/src/upgrades/manual/index.ts +6 -0
- package/src/upgrades/manual/pezkuwi.ts +19 -0
- package/src/upgrades/manual/zagros.ts +27 -0
- package/src/upgrades/types.ts +8 -0
- package/src/util.ts +128 -0
- package/tsconfig.build.json +17 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.spec.json +19 -0
- package/tsconfig.spec.tsbuildinfo +1 -0
- package/{LICENSE → build/LICENSE} +0 -0
- package/{cjs → build}/bundle.d.ts +0 -0
- package/{cjs → build}/chain/index.d.ts +0 -0
- package/{index.d.ts → build/cjs/index.d.ts} +0 -0
- package/{cjs → build/cjs}/package.json +0 -0
- package/{packageDetect.d.ts → build/cjs/packageDetect.d.ts} +0 -0
- package/{cjs → build/cjs}/packageDetect.js +0 -0
- package/{packageInfo.d.ts → build/cjs/packageInfo.d.ts} +0 -0
- package/{spec → build/cjs/spec}/centrifuge-chain.d.ts +0 -0
- package/{spec → build/cjs/spec}/dicle.d.ts +0 -0
- package/{spec → build/cjs/spec}/index.d.ts +0 -0
- package/{spec → build/cjs/spec}/node-template.d.ts +0 -0
- package/{spec → build/cjs/spec}/node.d.ts +0 -0
- package/{spec → build/cjs/spec}/pezkuwi.d.ts +0 -0
- package/{spec → build/cjs/spec}/pezkuwichain.d.ts +0 -0
- package/{spec → build/cjs/spec}/shell.d.ts +0 -0
- package/{spec → build/cjs/spec}/statemine.d.ts +0 -0
- package/{spec → build/cjs/spec}/statemint.d.ts +0 -0
- package/{spec → build/cjs/spec}/westmint.d.ts +0 -0
- package/{spec → build/cjs/spec}/zagros.d.ts +0 -0
- package/{upgrades → build/cjs/upgrades}/e2e/dicle.d.ts +0 -0
- package/{upgrades → build/cjs/upgrades}/e2e/index.d.ts +0 -0
- package/{upgrades → build/cjs/upgrades}/e2e/pezkuwi.d.ts +0 -0
- package/{upgrades → build/cjs/upgrades}/e2e/zagros.d.ts +0 -0
- package/{upgrades → build/cjs/upgrades}/index.d.ts +0 -0
- package/{upgrades → build/cjs/upgrades}/manual/dicle.d.ts +0 -0
- package/{upgrades → build/cjs/upgrades}/manual/index.d.ts +0 -0
- package/{upgrades → build/cjs/upgrades}/manual/pezkuwi.d.ts +0 -0
- package/{upgrades → build/cjs/upgrades}/manual/zagros.d.ts +0 -0
- package/{upgrades → build/cjs/upgrades}/types.d.ts +0 -0
- package/{util.d.ts → build/cjs/util.d.ts} +0 -0
- package/{bundle.d.ts → build-tsc/bundle.d.ts} +0 -0
- package/{chain → build-tsc/chain}/index.d.ts +0 -0
- package/{cjs → build-tsc}/index.d.ts +0 -0
- package/{cjs → build-tsc}/packageDetect.d.ts +0 -0
- package/{cjs → build-tsc}/packageInfo.d.ts +0 -0
- package/{cjs → build-tsc}/spec/centrifuge-chain.d.ts +0 -0
- package/{cjs → build-tsc}/spec/dicle.d.ts +0 -0
- package/{cjs → build-tsc}/spec/index.d.ts +0 -0
- package/{cjs → build-tsc}/spec/node-template.d.ts +0 -0
- package/{cjs → build-tsc}/spec/node.d.ts +0 -0
- package/{cjs → build-tsc}/spec/pezkuwi.d.ts +0 -0
- package/{cjs → build-tsc}/spec/pezkuwichain.d.ts +0 -0
- package/{cjs → build-tsc}/spec/shell.d.ts +0 -0
- package/{cjs → build-tsc}/spec/statemine.d.ts +0 -0
- package/{cjs → build-tsc}/spec/statemint.d.ts +0 -0
- package/{cjs → build-tsc}/spec/westmint.d.ts +0 -0
- package/{cjs → build-tsc}/spec/zagros.d.ts +0 -0
- package/{cjs → build-tsc}/upgrades/e2e/dicle.d.ts +0 -0
- package/{cjs → build-tsc}/upgrades/e2e/index.d.ts +0 -0
- package/{cjs → build-tsc}/upgrades/e2e/pezkuwi.d.ts +0 -0
- package/{cjs → build-tsc}/upgrades/e2e/zagros.d.ts +0 -0
- package/{cjs → build-tsc}/upgrades/index.d.ts +0 -0
- package/{cjs → build-tsc}/upgrades/manual/dicle.d.ts +0 -0
- package/{cjs → build-tsc}/upgrades/manual/index.d.ts +0 -0
- package/{cjs → build-tsc}/upgrades/manual/pezkuwi.d.ts +0 -0
- package/{cjs → build-tsc}/upgrades/manual/zagros.d.ts +0 -0
- package/{cjs → build-tsc}/upgrades/types.d.ts +0 -0
- package/{cjs → build-tsc}/util.d.ts +0 -0
- package/{cjs → build-tsc-cjs}/bundle.js +0 -0
- package/{cjs → build-tsc-cjs}/chain/index.js +0 -0
- package/{cjs → build-tsc-cjs}/index.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/centrifuge-chain.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/dicle.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/index.js +1 -1
- package/{cjs → build-tsc-cjs}/spec/node-template.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/node.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/pezkuwi.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/pezkuwichain.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/shell.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/statemine.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/statemint.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/westmint.js +0 -0
- package/{cjs → build-tsc-cjs}/spec/zagros.js +0 -0
- package/{cjs → build-tsc-cjs}/upgrades/e2e/dicle.js +0 -0
- package/{cjs → build-tsc-cjs}/upgrades/e2e/index.js +0 -0
- package/{cjs → build-tsc-cjs}/upgrades/e2e/pezkuwi.js +0 -0
- package/{cjs → build-tsc-cjs}/upgrades/e2e/zagros.js +0 -0
- package/{cjs → build-tsc-cjs}/upgrades/manual/dicle.js +0 -0
- package/{cjs → build-tsc-cjs}/upgrades/manual/index.js +0 -0
- package/{cjs → build-tsc-cjs}/upgrades/manual/pezkuwi.js +0 -0
- package/{cjs → build-tsc-cjs}/upgrades/manual/zagros.js +0 -0
- package/{cjs → build-tsc-cjs}/upgrades/types.js +0 -0
- package/{cjs → build-tsc-cjs}/util.js +0 -0
- package/{bundle.js → build-tsc-esm/bundle.js} +0 -0
- package/{chain → build-tsc-esm/chain}/index.js +0 -0
- package/{index.js → build-tsc-esm/index.js} +0 -0
- package/{packageDetect.js → build-tsc-esm/packageDetect.js} +0 -0
- package/{spec → build-tsc-esm/spec}/centrifuge-chain.js +0 -0
- package/{spec → build-tsc-esm/spec}/dicle.js +0 -0
- package/{spec → build-tsc-esm/spec}/index.js +1 -1
- /package/{spec → build-tsc-esm/spec}/node-template.js +0 -0
- /package/{spec → build-tsc-esm/spec}/node.js +0 -0
- /package/{spec → build-tsc-esm/spec}/pezkuwi.js +0 -0
- /package/{spec → build-tsc-esm/spec}/pezkuwichain.js +0 -0
- /package/{spec → build-tsc-esm/spec}/shell.js +0 -0
- /package/{spec → build-tsc-esm/spec}/statemine.js +0 -0
- /package/{spec → build-tsc-esm/spec}/statemint.js +0 -0
- /package/{spec → build-tsc-esm/spec}/westmint.js +0 -0
- /package/{spec → build-tsc-esm/spec}/zagros.js +0 -0
- /package/{upgrades → build-tsc-esm/upgrades}/e2e/dicle.js +0 -0
- /package/{upgrades → build-tsc-esm/upgrades}/e2e/index.js +0 -0
- /package/{upgrades → build-tsc-esm/upgrades}/e2e/pezkuwi.js +0 -0
- /package/{upgrades → build-tsc-esm/upgrades}/e2e/zagros.js +0 -0
- /package/{upgrades → build-tsc-esm/upgrades}/manual/dicle.js +0 -0
- /package/{upgrades → build-tsc-esm/upgrades}/manual/index.js +0 -0
- /package/{upgrades → build-tsc-esm/upgrades}/manual/pezkuwi.js +0 -0
- /package/{upgrades → build-tsc-esm/upgrades}/manual/zagros.js +0 -0
- /package/{upgrades → build-tsc-esm/upgrades}/types.js +0 -0
- /package/{util.js → build-tsc-esm/util.js} +0 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-known authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/// <reference types="@pezkuwi/dev-test/globals.d.ts" />
|
|
5
|
+
|
|
6
|
+
import type { ChainUpgradesExpanded, ChainUpgradesRaw } from './types.js';
|
|
7
|
+
|
|
8
|
+
import { stringify, u8aEq } from '@pezkuwi/util';
|
|
9
|
+
|
|
10
|
+
import * as allGen from './e2e/index.js';
|
|
11
|
+
import * as allMan from './manual/index.js';
|
|
12
|
+
import { upgrades } from './index.js';
|
|
13
|
+
|
|
14
|
+
interface TestDef {
|
|
15
|
+
genesisHash: string;
|
|
16
|
+
network: string;
|
|
17
|
+
versions: [number, [number, number]][];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const TESTS: TestDef[] = [
|
|
21
|
+
{
|
|
22
|
+
genesisHash: '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',
|
|
23
|
+
network: 'dicle',
|
|
24
|
+
versions: [
|
|
25
|
+
[0, [0, 1020]],
|
|
26
|
+
[17, [901442, 1045]]
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',
|
|
31
|
+
network: 'pezkuwi',
|
|
32
|
+
versions: [
|
|
33
|
+
[0, [0, 0]],
|
|
34
|
+
[19, [2436698, 26]]
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
genesisHash: '0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e',
|
|
39
|
+
network: 'dicle',
|
|
40
|
+
versions: [
|
|
41
|
+
[0, [214356, 4]],
|
|
42
|
+
[23, [4207800, 48]]
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
function checkOrder (network: string, versions: [number, number, ...unknown[]][]): void {
|
|
48
|
+
const ooo = versions.filter((curr, index): boolean => {
|
|
49
|
+
const prev = versions[index - 1];
|
|
50
|
+
|
|
51
|
+
return index === 0
|
|
52
|
+
? false
|
|
53
|
+
: curr[0] <= prev[0] || curr[1] <= prev[1];
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
if (ooo.length) {
|
|
57
|
+
throw new Error(`${network}: Mismatched upgrade ordering: ${stringify(ooo)}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
describe('generated', (): void => {
|
|
62
|
+
it('should have all the chains', (): void => {
|
|
63
|
+
expect(Object.keys(allMan).sort()).toEqual(Object.keys(allGen).sort());
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
for (const chain of Object.keys(allMan)) {
|
|
67
|
+
describe(`${chain}`, (): void => {
|
|
68
|
+
// eslint-disable-next-line jest/expect-expect
|
|
69
|
+
it('should have all generated', (): void => {
|
|
70
|
+
const missing = allMan[chain as keyof typeof allMan].filter(([na, sa]) =>
|
|
71
|
+
!allGen[chain as keyof typeof allGen].some(([nb, sb]) =>
|
|
72
|
+
nb === na &&
|
|
73
|
+
sb === sa
|
|
74
|
+
)
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
if (missing.length !== 0) {
|
|
78
|
+
throw new Error(`${chain}:: missing generated apis found, run yarn test:one packages/types-known/src/upgrades/e2e`);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
// eslint-disable-next-line jest/expect-expect
|
|
83
|
+
it('manual should be correctly ordered', (): void => {
|
|
84
|
+
checkOrder(chain, (allGen as Record<string, ChainUpgradesExpanded>)[chain]);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// eslint-disable-next-line jest/expect-expect
|
|
88
|
+
it('generated should be correctly ordered', (): void => {
|
|
89
|
+
checkOrder(chain, (allMan as Record<string, ChainUpgradesRaw>)[chain]);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
describe('upgrades', (): void => {
|
|
96
|
+
TESTS.forEach(({ genesisHash, network, versions }): void => {
|
|
97
|
+
describe(`${network}`, (): void => {
|
|
98
|
+
const chain = upgrades.find((n) => n.network === network);
|
|
99
|
+
|
|
100
|
+
if (!chain) {
|
|
101
|
+
throw new Error(`Unable to find the entry for ${network}`);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
it('has a valid genesisHash', (): void => {
|
|
105
|
+
expect(u8aEq(chain.genesisHash, genesisHash)).toBe(true);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
versions.forEach(([index, [blockNumber, specVersion]]): void => {
|
|
109
|
+
it(`has a valid entry at index ${index}`, (): void => {
|
|
110
|
+
const version = chain.versions[index];
|
|
111
|
+
|
|
112
|
+
expect(version.blockNumber.eqn(blockNumber)).toBe(true);
|
|
113
|
+
expect(version.specVersion.eqn(specVersion)).toBe(true);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-known authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ChainUpgrades } from '@pezkuwi/types/types';
|
|
5
|
+
import type { HexString } from '@pezkuwi/util/types';
|
|
6
|
+
import type { ChainUpgradesExpanded } from './types.js';
|
|
7
|
+
|
|
8
|
+
import { selectableNetworks } from '@pezkuwi/networks';
|
|
9
|
+
import { BN, hexToU8a } from '@pezkuwi/util';
|
|
10
|
+
|
|
11
|
+
import * as allKnown from './e2e/index.js';
|
|
12
|
+
|
|
13
|
+
// Pezkuwi networks - placeholder genesis hashes until mainnet launch
|
|
14
|
+
const NET_EXTRA: Record<string, { genesisHash: HexString[] }> = {
|
|
15
|
+
dicle: {
|
|
16
|
+
genesisHash: ['0xd9d3cd7c1e5d890d969b957f4c5b71a111bbeeabc968f1d0d4538c2663f080a7']
|
|
17
|
+
},
|
|
18
|
+
pezkuwi: {
|
|
19
|
+
genesisHash: ['0x41693961995d879073269a008d0a52832caa3e0ae73869f02127f3d5daa4934c']
|
|
20
|
+
},
|
|
21
|
+
zagros: {
|
|
22
|
+
genesisHash: ['0x297f5a4d105b4b28312586ff1915572ffe4ee015ff772b76399ecbff25a22026']
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/** @internal */
|
|
27
|
+
function mapRaw ([network, versions]: [string, ChainUpgradesExpanded]): ChainUpgrades {
|
|
28
|
+
const chain = selectableNetworks.find((n) => n.network === network) || NET_EXTRA[network];
|
|
29
|
+
|
|
30
|
+
if (!chain) {
|
|
31
|
+
throw new Error(`Unable to find info for chain ${network}`);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
genesisHash: hexToU8a(chain.genesisHash[0]),
|
|
36
|
+
network,
|
|
37
|
+
versions: versions.map(([blockNumber, specVersion, apis]) => ({
|
|
38
|
+
apis,
|
|
39
|
+
blockNumber: new BN(blockNumber),
|
|
40
|
+
specVersion: new BN(specVersion)
|
|
41
|
+
}))
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Type overrides for specific spec types & versions as given in runtimeVersion
|
|
46
|
+
export const upgrades = Object.entries<ChainUpgradesExpanded>(allKnown).map(mapRaw);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-known authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ChainUpgradesRaw } from '../types.js';
|
|
5
|
+
|
|
6
|
+
export const upgrades: ChainUpgradesRaw = [
|
|
7
|
+
[214356, 4], [392764, 7], [409740, 8], [809976, 20], [877581, 24],
|
|
8
|
+
[879238, 25], [889472, 26], [902937, 27], [932751, 28], [991142, 29],
|
|
9
|
+
[1030162, 31], [1119657, 32], [1199282, 33], [1342534, 34], [1392263, 35],
|
|
10
|
+
[1431703, 36], [1433369, 37], [1490972, 41], [2087397, 43], [2316688, 44],
|
|
11
|
+
[2549864, 45], [3925782, 46], [3925843, 47], [4207800, 48], [4627944, 49],
|
|
12
|
+
[5124076, 50], [5478664, 900], [5482450, 9000], [5584305, 9010], [5784566, 9030],
|
|
13
|
+
[5879822, 9031], [5896856, 9032], [5897316, 9033], [6117927, 9050], [6210274, 9070],
|
|
14
|
+
[6379314, 9080], [6979141, 9090], [7568453, 9100], [7766394, 9111], [7911691, 9120],
|
|
15
|
+
[7968866, 9121], [7982889, 9122], [8514322, 9130], [9091726, 9140], [9091774, 9150],
|
|
16
|
+
[9406726, 9160], [9921066, 9170], [10007115, 9180], [10480973, 9190], [10578091, 9200],
|
|
17
|
+
[10678509, 9210], [10811001, 9220], [11096116, 9230], [11409279, 9250], [11584820, 9251],
|
|
18
|
+
[11716837, 9260], [11876919, 9261], [11987927, 9270], [12077324, 9271], [12301871, 9280],
|
|
19
|
+
[12604343, 9290], [12841034, 9300], [13128237, 9310], [13272363, 9320], [13483497, 9330],
|
|
20
|
+
[13649433, 9340], [13761100, 9350], [13847400, 9360], [14249200, 9370], [14576855, 9380],
|
|
21
|
+
[14849830, 9390], [15146832, 9400], [15332317, 9401], [15661793, 9420], [16165469, 9430],
|
|
22
|
+
[18293984, 102000], [18293991, 103000], [18451783, 104000], [18679741, 1005000], [19166695, 1006000],
|
|
23
|
+
[19234157, 1006001], [19542944, 1007000], [19621258, 1007001], [19761406, 1008000], [20056997, 1009000],
|
|
24
|
+
[20368318, 1010000], [20649086, 1011000], [21217837, 1011001], [21300429, 1013000], [21460051, 1014000],
|
|
25
|
+
[21925427, 1015000], [22500517, 1016000], [22759684, 1016001], [23056976, 1016002], [23544582, 1017000],
|
|
26
|
+
[24002343, 1017001]
|
|
27
|
+
];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-known authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ChainUpgradesRaw } from '../types.js';
|
|
5
|
+
|
|
6
|
+
export const upgrades: ChainUpgradesRaw = [
|
|
7
|
+
[0, 0], [29231, 1], [188836, 5], [199405, 6], [214264, 7],
|
|
8
|
+
[244358, 8], [303079, 9], [314201, 10], [342400, 11], [443963, 12],
|
|
9
|
+
[528470, 13], [687751, 14], [746085, 15], [787923, 16], [799302, 17],
|
|
10
|
+
[1205128, 18], [1603423, 23], [1733218, 24], [2005673, 25], [2436698, 26],
|
|
11
|
+
[3613564, 27], [3899547, 28], [4345767, 29], [4876134, 30], [5661442, 9050],
|
|
12
|
+
[6321619, 9080], [6713249, 9090], [7217907, 9100], [7229126, 9110], [7560558, 9122],
|
|
13
|
+
[8115869, 9140], [8638103, 9151], [9280179, 9170], [9738717, 9180], [10156856, 9190],
|
|
14
|
+
[10458576, 9200], [10655116, 9220], [10879371, 9230], [11328884, 9250], [11532856, 9260],
|
|
15
|
+
[11933818, 9270], [12217535, 9280], [12245277, 9281], [12532644, 9291], [12876189, 9300],
|
|
16
|
+
[13800015, 9340], [14188833, 9360], [14543918, 9370], [15978362, 9420], [16450000, 9430],
|
|
17
|
+
[17840000, 9431], [18407475, 1000001], [19551000, 1001002], [20181758, 1001003],
|
|
18
|
+
[20438530, 1002000], [21169168, 1002004], [21455374, 1002005], [21558004, 1002006], [21800141, 1002007]
|
|
19
|
+
];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-known authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ChainUpgradesRaw } from '../types.js';
|
|
5
|
+
|
|
6
|
+
export const upgrades: ChainUpgradesRaw = [
|
|
7
|
+
[214356, 4], [392764, 7], [409740, 8], [809976, 20], [877581, 24],
|
|
8
|
+
[879238, 25], [889472, 26], [902937, 27], [932751, 28], [991142, 29],
|
|
9
|
+
[1030162, 31], [1119657, 32], [1199282, 33], [1342534, 34], [1392263, 35],
|
|
10
|
+
[1431703, 36], [1433369, 37], [1490972, 41], [2087397, 43], [2316688, 44],
|
|
11
|
+
[2549864, 45], [3925782, 46], [3925843, 47], [4207800, 48], [4627944, 49],
|
|
12
|
+
[5124076, 50], [5478664, 900], [5482450, 9000], [5584305, 9010], [5784566, 9030],
|
|
13
|
+
[5879822, 9031], [5896856, 9032], [5897316, 9033], [6117927, 9050], [6210274, 9070],
|
|
14
|
+
[6379314, 9080], [6979141, 9090], [7568453, 9100], [7766394, 9111], [7911691, 9120],
|
|
15
|
+
[7968866, 9121], [7982889, 9122], [8514322, 9130], [9091726, 9140], [9091774, 9150],
|
|
16
|
+
[9406726, 9160], [9921066, 9170], [10007115, 9180], [10480973, 9190], [10578091, 9200],
|
|
17
|
+
[10678509, 9210], [10811001, 9220], [11096116, 9230], [11409279, 9250], [11584820, 9251],
|
|
18
|
+
[11716837, 9260], [11876919, 9261], [11987927, 9270], [12077324, 9271], [12301871, 9280],
|
|
19
|
+
[12604343, 9290], [12841034, 9300], [13128237, 9310], [13272363, 9320], [13483497, 9330],
|
|
20
|
+
[13649433, 9340], [13761100, 9350], [13847400, 9360], [14249200, 9370], [14576855, 9380],
|
|
21
|
+
[14849830, 9390], [15146832, 9400], [15332317, 9401], [15661793, 9420], [16165469, 9430],
|
|
22
|
+
[18293984, 102000], [18293991, 103000], [18451783, 104000], [18679741, 1005000], [19166695, 1006000],
|
|
23
|
+
[19234157, 1006001], [19542944, 1007000], [19621258, 1007001], [19761406, 1008000], [20056997, 1009000],
|
|
24
|
+
[20368318, 1010000], [20649086, 1011000], [21217837, 1011001], [21300429, 1013000], [21460051, 1014000],
|
|
25
|
+
[21925427, 1015000], [22500517, 1016000], [22759684, 1016001], [23056976, 1016002], [23544582, 1017000],
|
|
26
|
+
[24002343, 1017001]
|
|
27
|
+
];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-known authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { HexString } from '@pezkuwi/util/types';
|
|
5
|
+
|
|
6
|
+
export type ChainUpgradesRaw = [blockNumber: number, specVersion: number][];
|
|
7
|
+
|
|
8
|
+
export type ChainUpgradesExpanded = [blockNumber: number, specVersion: number, runtimeApis: [apiHash: HexString, apiVersion: number][]][];
|
package/src/util.ts
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-known authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ExtDef } from '@pezkuwi/types/extrinsic/signedExtensions/types';
|
|
5
|
+
import type { Hash } from '@pezkuwi/types/interfaces';
|
|
6
|
+
import type { ChainUpgradeVersion, CodecHasher, DefinitionRpc, DefinitionRpcSub, DefinitionsCall, OverrideModuleType, OverrideVersionedType, Registry, RegistryTypes } from '@pezkuwi/types/types';
|
|
7
|
+
import type { Text } from '@pezkuwi/types-codec';
|
|
8
|
+
import type { BN } from '@pezkuwi/util';
|
|
9
|
+
|
|
10
|
+
import { bnToBn } from '@pezkuwi/util';
|
|
11
|
+
|
|
12
|
+
import { typesChain } from './chain/index.js';
|
|
13
|
+
import { typesSpec } from './spec/index.js';
|
|
14
|
+
import { upgrades } from './upgrades/index.js';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @description Perform the callback function using the stringified spec/chain
|
|
18
|
+
* @internal
|
|
19
|
+
* */
|
|
20
|
+
function withNames <T> (chainName: Text | string, specName: Text | string, fn: (c: string, s: string) => T): T {
|
|
21
|
+
return fn(chainName.toString(), specName.toString());
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @descriptionFflatten a VersionedType[] into a Record<string, string>
|
|
26
|
+
* @internal
|
|
27
|
+
* */
|
|
28
|
+
function filterVersions (versions: OverrideVersionedType[] = [], specVersion: number): RegistryTypes {
|
|
29
|
+
return versions
|
|
30
|
+
.filter(({ minmax: [min, max] }) =>
|
|
31
|
+
(min === undefined || min === null || specVersion >= min) &&
|
|
32
|
+
(max === undefined || max === null || specVersion <= max)
|
|
33
|
+
)
|
|
34
|
+
.reduce((result: RegistryTypes, { types }) => ({ ...result, ...types }), {});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @description Based on the chain and runtimeVersion, get the applicable signed extensions (ready for registration)
|
|
39
|
+
*/
|
|
40
|
+
export function getSpecExtensions ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string): ExtDef {
|
|
41
|
+
return withNames(chainName, specName, (c, s) => ({
|
|
42
|
+
...(knownTypes.typesBundle?.spec?.[s]?.signedExtensions ?? {}),
|
|
43
|
+
...(knownTypes.typesBundle?.chain?.[c]?.signedExtensions ?? {})
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @description Based on the chain and runtimeVersion, get the applicable types (ready for registration)
|
|
49
|
+
*/
|
|
50
|
+
export function getSpecTypes ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string, specVersion: bigint | BN | number): RegistryTypes {
|
|
51
|
+
const _specVersion = bnToBn(specVersion).toNumber();
|
|
52
|
+
|
|
53
|
+
return withNames(chainName, specName, (c, s) => ({
|
|
54
|
+
// The order here is always, based on -
|
|
55
|
+
// - spec then chain
|
|
56
|
+
// - typesBundle takes higher precedence
|
|
57
|
+
// - types is the final catch-all override
|
|
58
|
+
...filterVersions(typesSpec[s], _specVersion),
|
|
59
|
+
...filterVersions(typesChain[c], _specVersion),
|
|
60
|
+
...filterVersions(knownTypes.typesBundle?.spec?.[s]?.types, _specVersion),
|
|
61
|
+
...filterVersions(knownTypes.typesBundle?.chain?.[c]?.types, _specVersion),
|
|
62
|
+
...(knownTypes.typesSpec?.[s] ?? {}),
|
|
63
|
+
...(knownTypes.typesChain?.[c] ?? {}),
|
|
64
|
+
...(knownTypes.types ?? {})
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @description Based on the chain or spec, return the hasher used
|
|
70
|
+
*/
|
|
71
|
+
export function getSpecHasher ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string): CodecHasher | null {
|
|
72
|
+
return withNames(chainName, specName, (c, s) =>
|
|
73
|
+
knownTypes.hasher ||
|
|
74
|
+
knownTypes.typesBundle?.chain?.[c]?.hasher ||
|
|
75
|
+
knownTypes.typesBundle?.spec?.[s]?.hasher ||
|
|
76
|
+
null
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @description Based on the chain and runtimeVersion, get the applicable rpc definitions (ready for registration)
|
|
82
|
+
*/
|
|
83
|
+
export function getSpecRpc ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string): Record<string, Record<string, DefinitionRpc | DefinitionRpcSub>> {
|
|
84
|
+
return withNames(chainName, specName, (c, s) => ({
|
|
85
|
+
...(knownTypes.typesBundle?.spec?.[s]?.rpc ?? {}),
|
|
86
|
+
...(knownTypes.typesBundle?.chain?.[c]?.rpc ?? {})
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @description Based on the chain and runtimeVersion, get the applicable runtime definitions (ready for registration)
|
|
92
|
+
*/
|
|
93
|
+
export function getSpecRuntime ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string): DefinitionsCall {
|
|
94
|
+
return withNames(chainName, specName, (c, s) => ({
|
|
95
|
+
...(knownTypes.typesBundle?.spec?.[s]?.runtime ?? {}),
|
|
96
|
+
...(knownTypes.typesBundle?.chain?.[c]?.runtime ?? {})
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @description Based on the chain and runtimeVersion, get the applicable alias definitions (ready for registration)
|
|
102
|
+
*/
|
|
103
|
+
export function getSpecAlias ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string): Record<string, OverrideModuleType> {
|
|
104
|
+
return withNames(chainName, specName, (c, s) => ({
|
|
105
|
+
// as per versions, first spec, then chain then finally non-versioned
|
|
106
|
+
...(knownTypes.typesBundle?.spec?.[s]?.alias ?? {}),
|
|
107
|
+
...(knownTypes.typesBundle?.chain?.[c]?.alias ?? {}),
|
|
108
|
+
...(knownTypes.typesAlias ?? {})
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* @description Returns a version record for known chains where upgrades are being tracked
|
|
114
|
+
*/
|
|
115
|
+
export function getUpgradeVersion (genesisHash: Hash, blockNumber: BN): [ChainUpgradeVersion | undefined, ChainUpgradeVersion | undefined] {
|
|
116
|
+
const known = upgrades.find((u) => genesisHash.eq(u.genesisHash));
|
|
117
|
+
|
|
118
|
+
return known
|
|
119
|
+
? [
|
|
120
|
+
known.versions.reduce<ChainUpgradeVersion | undefined>((last, version) => {
|
|
121
|
+
return blockNumber.gt(version.blockNumber)
|
|
122
|
+
? version
|
|
123
|
+
: last;
|
|
124
|
+
}, undefined),
|
|
125
|
+
known.versions.find((version) => blockNumber.lte(version.blockNumber))
|
|
126
|
+
]
|
|
127
|
+
: [undefined, undefined];
|
|
128
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.base.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"baseUrl": "..",
|
|
5
|
+
"outDir": "./build",
|
|
6
|
+
"rootDir": "./src"
|
|
7
|
+
},
|
|
8
|
+
"exclude": [
|
|
9
|
+
"**/*.spec.ts",
|
|
10
|
+
"**/mod.ts"
|
|
11
|
+
],
|
|
12
|
+
"references": [
|
|
13
|
+
{ "path": "../types/tsconfig.build.json" },
|
|
14
|
+
{ "path": "../types-codec/tsconfig.build.json" },
|
|
15
|
+
{ "path": "../types-create/tsconfig.build.json" }
|
|
16
|
+
]
|
|
17
|
+
}
|