From 1059c1af81cc830d0735df95b46912ee822a293c Mon Sep 17 00:00:00 2001 From: tarikgul Date: Mon, 20 Dec 2021 11:18:48 -0500 Subject: [PATCH] fix: add blockWeightStore and fee calc support for common good parachains --- .../metadata-consts/commonParachainsConsts.ts | 22 +++++++++++++++++++ src/chains-config/metadata-consts/index.ts | 6 +++++ .../metadata-consts/statemineConsts.ts | 19 ++++++++++++++++ .../metadata-consts/statemintConsts.ts | 9 ++++++++ src/chains-config/statemintControllers.ts | 2 +- 5 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 src/chains-config/metadata-consts/commonParachainsConsts.ts create mode 100644 src/chains-config/metadata-consts/statemineConsts.ts create mode 100644 src/chains-config/metadata-consts/statemintConsts.ts diff --git a/src/chains-config/metadata-consts/commonParachainsConsts.ts b/src/chains-config/metadata-consts/commonParachainsConsts.ts new file mode 100644 index 000000000..c33b944cc --- /dev/null +++ b/src/chains-config/metadata-consts/commonParachainsConsts.ts @@ -0,0 +1,22 @@ +/** + * WEIGHT NOTES (STATEMINE | STATEMINT) + * + * The following weights are used for common good parachains such as statemine, and + * statemint. Both are using the same fee calculation currently and share the same + * integer values. + * + */ + +import { IPerClass } from 'src/types/chains-config'; + +export const perClassCommonParachains: IPerClass = { + normal: { + baseExtrinsic: BigInt(125000000), + }, + operational: { + baseExtrinsic: BigInt(125000000), + }, + mandatory: { + baseExtrinsic: BigInt(125000000), + }, +}; diff --git a/src/chains-config/metadata-consts/index.ts b/src/chains-config/metadata-consts/index.ts index 223092424..648b60fd3 100644 --- a/src/chains-config/metadata-consts/index.ts +++ b/src/chains-config/metadata-consts/index.ts @@ -19,6 +19,8 @@ import { mantaDefinitions } from './mantaConsts'; import { polkadotDefinitions } from './polkadotConsts'; import { polymeshDefinitions } from './polymeshConsts'; import { shidenDefinitions } from './shidenConsts'; +import { statemineDefinitions } from './statemineConsts'; +import { statemintDefinitions } from './statemintConsts'; import { westendDefinitions } from './westendConsts'; /** @@ -84,6 +86,10 @@ export function getBlockWeight(specName: string): BlockWeightStore { return generateBlockWeightStore(kusamaDefinitions); case 'westend': return generateBlockWeightStore(westendDefinitions); + case 'statemint': + return generateBlockWeightStore(statemintDefinitions); + case 'statemine': + return generateBlockWeightStore(statemineDefinitions); case 'dock-main-runtime': return generateBlockWeightStore(dockMainnetDefinitions); case 'dock-pos-main-runtime': diff --git a/src/chains-config/metadata-consts/statemineConsts.ts b/src/chains-config/metadata-consts/statemineConsts.ts new file mode 100644 index 000000000..4c8c93b5d --- /dev/null +++ b/src/chains-config/metadata-consts/statemineConsts.ts @@ -0,0 +1,19 @@ +import { MetadataConsts } from '../../types/chains-config'; +import { perClassCommonParachains } from './commonParachainsConsts'; +import { perClass } from './substrateConsts'; + +/** + * Statemine before runtime version 601 uses the same weight fees as + * substrateConsts `perClass`, therefore both objects within the statemine + * definitions will have the `perClass` key, but their values will differ. + */ +export const statemineDefinitions: MetadataConsts[] = [ + { + runtimeVersions: [601], + perClass: perClassCommonParachains, + }, + { + runtimeVersions: [1, 2, 3, 4, 5], + perClass, + }, +]; diff --git a/src/chains-config/metadata-consts/statemintConsts.ts b/src/chains-config/metadata-consts/statemintConsts.ts new file mode 100644 index 000000000..a2ff3f5ff --- /dev/null +++ b/src/chains-config/metadata-consts/statemintConsts.ts @@ -0,0 +1,9 @@ +import { MetadataConsts } from '../../types/chains-config'; +import { perClassCommonParachains } from './commonParachainsConsts'; + +export const statemintDefinitions: MetadataConsts[] = [ + { + runtimeVersions: [2, 601], + perClass: perClassCommonParachains, + }, +]; diff --git a/src/chains-config/statemintControllers.ts b/src/chains-config/statemintControllers.ts index 4177f6690..cc0eebd09 100644 --- a/src/chains-config/statemintControllers.ts +++ b/src/chains-config/statemintControllers.ts @@ -24,7 +24,7 @@ export const statemintControllers: ControllerConfig = { ], options: { finalizes: true, - minCalcFeeRuntime: 0, + minCalcFeeRuntime: 2, blockWeightStore: {}, blockStore: initLRUCache(), },