Mark Polkadot 26 upgrade (#2843)
This commit is contained in:
@@ -0,0 +1,10 @@
|
|||||||
|
// Copyright 2017-2020 @polkadot/types-known authors & contributors
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
import all from '.';
|
||||||
|
|
||||||
|
describe('upgrades', (): void => {
|
||||||
|
it('is valid', (): void => {
|
||||||
|
expect(all).toBeDefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -5,16 +5,33 @@ import { ChainUpgrades } from '@polkadot/types/types';
|
|||||||
import { ChainUpgradesRaw } from './types';
|
import { ChainUpgradesRaw } from './types';
|
||||||
|
|
||||||
import BN from 'bn.js';
|
import BN from 'bn.js';
|
||||||
import { hexToU8a } from '@polkadot/util';
|
import { assert, hexToU8a } from '@polkadot/util';
|
||||||
|
|
||||||
import kusama from './kusama';
|
import kusama from './kusama';
|
||||||
import polkadot from './polkadot';
|
import polkadot from './polkadot';
|
||||||
import westend from './westend';
|
import westend from './westend';
|
||||||
|
|
||||||
function rawToFinal ({ genesisHash, versions }: ChainUpgradesRaw): ChainUpgrades {
|
/** @internal */
|
||||||
|
function checkOrder (network: string, versions: [number, number][]): [number, number][] {
|
||||||
|
const ooo = versions.filter((curr, index): boolean => {
|
||||||
|
const prev = versions[index - 1];
|
||||||
|
|
||||||
|
return index === 0
|
||||||
|
? false
|
||||||
|
: curr[0] <= prev[0] || curr[1] <= prev[1];
|
||||||
|
});
|
||||||
|
|
||||||
|
assert(!ooo.length, `${network}: Mismatched upgrade ordering: ${JSON.stringify(ooo)}`);
|
||||||
|
|
||||||
|
return versions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @internal */
|
||||||
|
function rawToFinal (network: string, { genesisHash, versions }: ChainUpgradesRaw): ChainUpgrades {
|
||||||
return {
|
return {
|
||||||
genesisHash: hexToU8a(genesisHash),
|
genesisHash: hexToU8a(genesisHash),
|
||||||
versions: versions.map(([blockNumber, specVersion]) => ({
|
network,
|
||||||
|
versions: checkOrder(network, versions).map(([blockNumber, specVersion]) => ({
|
||||||
blockNumber: new BN(blockNumber),
|
blockNumber: new BN(blockNumber),
|
||||||
specVersion: new BN(specVersion)
|
specVersion: new BN(specVersion)
|
||||||
}))
|
}))
|
||||||
@@ -23,9 +40,9 @@ function rawToFinal ({ genesisHash, versions }: ChainUpgradesRaw): ChainUpgrades
|
|||||||
|
|
||||||
// Type overrides for specific spec types & versions as given in runtimeVersion
|
// Type overrides for specific spec types & versions as given in runtimeVersion
|
||||||
const upgrades: ChainUpgrades[] = [
|
const upgrades: ChainUpgrades[] = [
|
||||||
rawToFinal(kusama),
|
rawToFinal('kusama', kusama),
|
||||||
rawToFinal(polkadot),
|
rawToFinal('polkadot', polkadot),
|
||||||
rawToFinal(westend)
|
rawToFinal('westend', westend)
|
||||||
];
|
];
|
||||||
|
|
||||||
export default upgrades;
|
export default upgrades;
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ export interface ChainUpgradeVersion {
|
|||||||
|
|
||||||
export interface ChainUpgrades {
|
export interface ChainUpgrades {
|
||||||
genesisHash: Uint8Array;
|
genesisHash: Uint8Array;
|
||||||
|
network: string;
|
||||||
versions: ChainUpgradeVersion[];
|
versions: ChainUpgradeVersion[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user