@polkadot-api/compare-runtimes 0.2.12 → 0.2.14
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getLookupFn } from '@polkadot-api/metadata-builders';
|
|
2
|
-
import {
|
|
2
|
+
import { entryPointsAreCompatible, singleValueEntryPoint, runtimeCallEntryPoint, storageEntryPoint, mapLookupToTypedef, enumValueEntryPointNode, voidEntryPointNode } from '@polkadot-api/metadata-compatibility';
|
|
3
3
|
import { unifyMetadata, decAnyMetadata } from '@polkadot-api/substrate-bindings';
|
|
4
4
|
import { getMappedMetadata } from './mapped-metadata.mjs';
|
|
5
5
|
import { shallowDiff } from './shallow-diff.mjs';
|
|
@@ -50,15 +50,16 @@ const getMappedMetadata = (metadata, lookupFn) => {
|
|
|
50
50
|
new Map(x.methods.map((m) => [m.name, m]))
|
|
51
51
|
])
|
|
52
52
|
);
|
|
53
|
+
const extensions = Object.values(metadata.extrinsic.signedExtensions).reduce((acc, exts) => {
|
|
54
|
+
exts.forEach(({ identifier, ...rest2 }) => {
|
|
55
|
+
acc[identifier] = rest2;
|
|
56
|
+
});
|
|
57
|
+
return acc;
|
|
58
|
+
}, {});
|
|
53
59
|
return {
|
|
54
60
|
pallets,
|
|
55
61
|
api,
|
|
56
|
-
extensions
|
|
57
|
-
metadata.extrinsic.signedExtensions.map(({ identifier, ...rest2 }) => [
|
|
58
|
-
identifier,
|
|
59
|
-
rest2
|
|
60
|
-
])
|
|
61
|
-
)
|
|
62
|
+
extensions
|
|
62
63
|
};
|
|
63
64
|
};
|
|
64
65
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapped-metadata.mjs","sources":["../../src/mapped-metadata.ts"],"sourcesContent":["import { LookupEntry } from \"@polkadot-api/metadata-builders\"\nimport { UnifiedMetadata } from \"@polkadot-api/substrate-bindings\"\nimport type {\n StructVar,\n ArrayVar,\n TupleVar,\n VoidVar,\n} from \"@polkadot-api/metadata-builders\"\nimport { mapObject } from \"@polkadot-api/utils\"\n\nexport type EnumEntry = (\n | VoidVar\n | TupleVar\n | StructVar\n | ArrayVar\n | {\n type: \"lookupEntry\"\n value: LookupEntry\n }\n) & {\n idx: number\n}\n\nexport type MetadataMaps = {\n pallets: Record<\n string,\n {\n storage: Map<\n string,\n NonNullable<\n UnifiedMetadata[\"pallets\"][number][\"storage\"]\n >[\"items\"][number]\n >\n event: Map<string, EnumEntry>\n error: Map<string, EnumEntry>\n call: Map<string, EnumEntry>\n const: Map<\n string,\n NonNullable<UnifiedMetadata[\"pallets\"][number][\"constants\"]>[number]\n >\n view: Map<\n string,\n NonNullable<UnifiedMetadata[\"pallets\"][number][\"viewFns\"]>[number]\n >\n }\n >\n api: Record<\n string,\n Map<string, NonNullable<UnifiedMetadata[\"apis\"][number][\"methods\"][number]>>\n >\n extensions: Record<string, { type: number; additionalSigned: number }>\n}\n\nconst buildVariants = (\n metadata: UnifiedMetadata,\n lookupFn: (id: number) => LookupEntry,\n) =>\n Object.fromEntries(\n metadata.pallets.map((palletEntry) => {\n const [error, event, call] = [\n \"errors\" as const,\n \"events\" as const,\n \"calls\" as const,\n ].map((variantType) => {\n try {\n const lookup = lookupFn(palletEntry[variantType]!.type)\n if (lookup.type !== \"enum\") throw null\n return new Map(Object.entries(lookup.value))\n } catch {\n return new Map()\n }\n })\n return [palletEntry.name, { error, event, call }]\n }),\n )\n\nexport const getMappedMetadata = (\n metadata: UnifiedMetadata,\n lookupFn: (id: number) => LookupEntry,\n): MetadataMaps => {\n const palletVariants = buildVariants(metadata, lookupFn)\n const rest = Object.fromEntries(\n metadata.pallets.map((palletEntry) => {\n const [constants, view] = [\"constants\" as const, \"viewFns\" as const].map(\n (entryType) => new Map(palletEntry[entryType].map((x) => [x.name, x])),\n )\n return [palletEntry.name, { const: constants, view }]\n }),\n ) as Record<string, Pick<MetadataMaps[\"pallets\"][string], \"const\" | \"view\">>\n const storage = Object.fromEntries(\n metadata.pallets.map((palletEntry) => [\n palletEntry.name,\n new Map((palletEntry.storage?.items || []).map((x) => [x.name, x])),\n ]),\n ) as Record<string, MetadataMaps[\"pallets\"][string][\"storage\"]>\n\n const pallets: MetadataMaps[\"pallets\"] = mapObject(\n palletVariants,\n ({ error, event, call }, key) => ({\n error,\n event,\n call,\n storage: storage[key],\n ...rest[key],\n }),\n )\n\n const api: MetadataMaps[\"api\"] = Object.fromEntries(\n metadata.apis.map((x) => [\n x.name,\n new Map(x.methods.map((m) => [m.name, m])),\n ]),\n )\n\n
|
|
1
|
+
{"version":3,"file":"mapped-metadata.mjs","sources":["../../src/mapped-metadata.ts"],"sourcesContent":["import { LookupEntry } from \"@polkadot-api/metadata-builders\"\nimport { UnifiedMetadata } from \"@polkadot-api/substrate-bindings\"\nimport type {\n StructVar,\n ArrayVar,\n TupleVar,\n VoidVar,\n} from \"@polkadot-api/metadata-builders\"\nimport { mapObject } from \"@polkadot-api/utils\"\n\nexport type EnumEntry = (\n | VoidVar\n | TupleVar\n | StructVar\n | ArrayVar\n | {\n type: \"lookupEntry\"\n value: LookupEntry\n }\n) & {\n idx: number\n}\n\nexport type MetadataMaps = {\n pallets: Record<\n string,\n {\n storage: Map<\n string,\n NonNullable<\n UnifiedMetadata[\"pallets\"][number][\"storage\"]\n >[\"items\"][number]\n >\n event: Map<string, EnumEntry>\n error: Map<string, EnumEntry>\n call: Map<string, EnumEntry>\n const: Map<\n string,\n NonNullable<UnifiedMetadata[\"pallets\"][number][\"constants\"]>[number]\n >\n view: Map<\n string,\n NonNullable<UnifiedMetadata[\"pallets\"][number][\"viewFns\"]>[number]\n >\n }\n >\n api: Record<\n string,\n Map<string, NonNullable<UnifiedMetadata[\"apis\"][number][\"methods\"][number]>>\n >\n extensions: Record<string, { type: number; additionalSigned: number }>\n}\n\nconst buildVariants = (\n metadata: UnifiedMetadata,\n lookupFn: (id: number) => LookupEntry,\n) =>\n Object.fromEntries(\n metadata.pallets.map((palletEntry) => {\n const [error, event, call] = [\n \"errors\" as const,\n \"events\" as const,\n \"calls\" as const,\n ].map((variantType) => {\n try {\n const lookup = lookupFn(palletEntry[variantType]!.type)\n if (lookup.type !== \"enum\") throw null\n return new Map(Object.entries(lookup.value))\n } catch {\n return new Map()\n }\n })\n return [palletEntry.name, { error, event, call }]\n }),\n )\n\nexport const getMappedMetadata = (\n metadata: UnifiedMetadata,\n lookupFn: (id: number) => LookupEntry,\n): MetadataMaps => {\n const palletVariants = buildVariants(metadata, lookupFn)\n const rest = Object.fromEntries(\n metadata.pallets.map((palletEntry) => {\n const [constants, view] = [\"constants\" as const, \"viewFns\" as const].map(\n (entryType) => new Map(palletEntry[entryType].map((x) => [x.name, x])),\n )\n return [palletEntry.name, { const: constants, view }]\n }),\n ) as Record<string, Pick<MetadataMaps[\"pallets\"][string], \"const\" | \"view\">>\n const storage = Object.fromEntries(\n metadata.pallets.map((palletEntry) => [\n palletEntry.name,\n new Map((palletEntry.storage?.items || []).map((x) => [x.name, x])),\n ]),\n ) as Record<string, MetadataMaps[\"pallets\"][string][\"storage\"]>\n\n const pallets: MetadataMaps[\"pallets\"] = mapObject(\n palletVariants,\n ({ error, event, call }, key) => ({\n error,\n event,\n call,\n storage: storage[key],\n ...rest[key],\n }),\n )\n\n const api: MetadataMaps[\"api\"] = Object.fromEntries(\n metadata.apis.map((x) => [\n x.name,\n new Map(x.methods.map((m) => [m.name, m])),\n ]),\n )\n\n const extensions = Object.values(metadata.extrinsic.signedExtensions).reduce<\n Record<string, { type: number; additionalSigned: number }>\n >((acc, exts) => {\n exts.forEach(({ identifier, ...rest }) => {\n acc[identifier] = rest\n })\n return acc\n }, {})\n\n return {\n pallets,\n api,\n extensions,\n }\n}\n"],"names":["rest"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -55,15 +55,16 @@ const getMappedMetadata = (metadata, lookupFn) => {
|
|
|
55
55
|
new Map(x.methods.map((m) => [m.name, m]))
|
|
56
56
|
])
|
|
57
57
|
);
|
|
58
|
+
const extensions = Object.values(metadata.extrinsic.signedExtensions).reduce((acc, exts) => {
|
|
59
|
+
exts.forEach(({ identifier, ...rest2 }) => {
|
|
60
|
+
acc[identifier] = rest2;
|
|
61
|
+
});
|
|
62
|
+
return acc;
|
|
63
|
+
}, {});
|
|
58
64
|
return {
|
|
59
65
|
pallets,
|
|
60
66
|
api,
|
|
61
|
-
extensions
|
|
62
|
-
metadata.extrinsic.signedExtensions.map(({ identifier, ...rest2 }) => [
|
|
63
|
-
identifier,
|
|
64
|
-
rest2
|
|
65
|
-
])
|
|
66
|
-
)
|
|
67
|
+
extensions
|
|
67
68
|
};
|
|
68
69
|
};
|
|
69
70
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/mapped-metadata.ts","../src/shallow-diff.ts","../src/compare-runtimes.ts"],"sourcesContent":["import { LookupEntry } from \"@polkadot-api/metadata-builders\"\nimport { UnifiedMetadata } from \"@polkadot-api/substrate-bindings\"\nimport type {\n StructVar,\n ArrayVar,\n TupleVar,\n VoidVar,\n} from \"@polkadot-api/metadata-builders\"\nimport { mapObject } from \"@polkadot-api/utils\"\n\nexport type EnumEntry = (\n | VoidVar\n | TupleVar\n | StructVar\n | ArrayVar\n | {\n type: \"lookupEntry\"\n value: LookupEntry\n }\n) & {\n idx: number\n}\n\nexport type MetadataMaps = {\n pallets: Record<\n string,\n {\n storage: Map<\n string,\n NonNullable<\n UnifiedMetadata[\"pallets\"][number][\"storage\"]\n >[\"items\"][number]\n >\n event: Map<string, EnumEntry>\n error: Map<string, EnumEntry>\n call: Map<string, EnumEntry>\n const: Map<\n string,\n NonNullable<UnifiedMetadata[\"pallets\"][number][\"constants\"]>[number]\n >\n view: Map<\n string,\n NonNullable<UnifiedMetadata[\"pallets\"][number][\"viewFns\"]>[number]\n >\n }\n >\n api: Record<\n string,\n Map<string, NonNullable<UnifiedMetadata[\"apis\"][number][\"methods\"][number]>>\n >\n extensions: Record<string, { type: number; additionalSigned: number }>\n}\n\nconst buildVariants = (\n metadata: UnifiedMetadata,\n lookupFn: (id: number) => LookupEntry,\n) =>\n Object.fromEntries(\n metadata.pallets.map((palletEntry) => {\n const [error, event, call] = [\n \"errors\" as const,\n \"events\" as const,\n \"calls\" as const,\n ].map((variantType) => {\n try {\n const lookup = lookupFn(palletEntry[variantType]!.type)\n if (lookup.type !== \"enum\") throw null\n return new Map(Object.entries(lookup.value))\n } catch {\n return new Map()\n }\n })\n return [palletEntry.name, { error, event, call }]\n }),\n )\n\nexport const getMappedMetadata = (\n metadata: UnifiedMetadata,\n lookupFn: (id: number) => LookupEntry,\n): MetadataMaps => {\n const palletVariants = buildVariants(metadata, lookupFn)\n const rest = Object.fromEntries(\n metadata.pallets.map((palletEntry) => {\n const [constants, view] = [\"constants\" as const, \"viewFns\" as const].map(\n (entryType) => new Map(palletEntry[entryType].map((x) => [x.name, x])),\n )\n return [palletEntry.name, { const: constants, view }]\n }),\n ) as Record<string, Pick<MetadataMaps[\"pallets\"][string], \"const\" | \"view\">>\n const storage = Object.fromEntries(\n metadata.pallets.map((palletEntry) => [\n palletEntry.name,\n new Map((palletEntry.storage?.items || []).map((x) => [x.name, x])),\n ]),\n ) as Record<string, MetadataMaps[\"pallets\"][string][\"storage\"]>\n\n const pallets: MetadataMaps[\"pallets\"] = mapObject(\n palletVariants,\n ({ error, event, call }, key) => ({\n error,\n event,\n call,\n storage: storage[key],\n ...rest[key],\n }),\n )\n\n const api: MetadataMaps[\"api\"] = Object.fromEntries(\n metadata.apis.map((x) => [\n x.name,\n new Map(x.methods.map((m) => [m.name, m])),\n ]),\n )\n\n return {\n pallets,\n api,\n extensions: Object.fromEntries(\n metadata.extrinsic.signedExtensions.map(({ identifier, ...rest }) => [\n identifier,\n rest,\n ]),\n ),\n }\n}\n","import { MetadataMaps } from \"./mapped-metadata\"\nimport { Change } from \"./public-types\"\n\nexport const shallowDiff = (\n prev: MetadataMaps,\n next: MetadataMaps,\n type: \"added\" | \"kept\",\n): Array<Change> => {\n const result: Array<Change> = []\n Object.entries(next.pallets).forEach(([palletName, data]) => {\n ;[\n \"const\" as const,\n \"storage\" as const,\n \"call\" as const,\n \"event\" as const,\n \"error\" as const,\n \"view\" as const,\n ].forEach((x) => {\n ;[...data[x as \"storage\"].keys()].forEach((key) => {\n const isInPrev = prev.pallets[palletName]?.[x as \"storage\"].has(key)\n if (type === \"added\" ? !isInPrev : isInPrev) {\n result.push({\n kind: x,\n pallet: palletName,\n name: key,\n })\n }\n })\n })\n })\n\n Object.entries(next.api).forEach(([apiGroup, val]) => {\n ;[...val.keys()].forEach((x) => {\n const isInPrev = prev.api[apiGroup]?.has(x)\n if (type === \"added\" ? !isInPrev : isInPrev) {\n result.push({\n kind: \"api\",\n group: apiGroup,\n name: x,\n })\n }\n })\n })\n\n Object.keys(next.extensions).forEach((name) => {\n const isInPrev = !!prev.extensions[name]\n if (type === \"added\" ? !isInPrev : isInPrev) {\n result.push({\n kind: \"extension\",\n name,\n })\n }\n })\n\n return result\n}\n","import { getLookupFn } from \"@polkadot-api/metadata-builders\"\nimport {\n CompatibilityResult,\n entryPointsAreCompatible,\n enumValueEntryPointNode,\n mapLookupToTypedef,\n runtimeCallEntryPoint,\n singleValueEntryPoint,\n storageEntryPoint,\n TypedefNode,\n voidEntryPointNode,\n} from \"@polkadot-api/metadata-compatibility\"\nimport { decAnyMetadata, unifyMetadata } from \"@polkadot-api/substrate-bindings\"\nimport { EnumEntry, getMappedMetadata } from \"./mapped-metadata\"\nimport { ComparedChange, Output } from \"./public-types\"\nimport { shallowDiff } from \"./shallow-diff\"\nimport { mapObject } from \"@polkadot-api/utils\"\n\nconst getEnumEntry = (entry: EnumEntry, side: \"args\" | \"values\") => {\n const node = enumValueEntryPointNode(entry)\n return {\n args: side === \"args\" ? node : voidEntryPointNode,\n values: side === \"args\" ? voidEntryPointNode : node,\n }\n}\n\nconst getMetadataHelpers = (rawMetadata: Uint8Array) => {\n const metadata = unifyMetadata(decAnyMetadata(rawMetadata))\n const lookupFn = getLookupFn(metadata)\n const typeNodesCache: (TypedefNode | null)[] = []\n const getTypeDefNode = (id: number) =>\n (typeNodesCache[id] ||= mapLookupToTypedef(lookupFn(id)))\n const metadataMaps = getMappedMetadata(metadata, lookupFn)\n\n return { lookupFn, getTypeDefNode, metadataMaps }\n}\n\nconst minCompatLevel = (results: {\n args: CompatibilityResult\n values: CompatibilityResult\n}) => Math.min(results.args.level, results.values.level)\nconst compatLevel = (results: {\n args: CompatibilityResult\n values: CompatibilityResult\n}) => ({\n args: results.args.level,\n values: results.values.level,\n})\n\nexport const compareRuntimes = (\n prevMetadata: Uint8Array,\n nextMetadata: Uint8Array,\n): Output => {\n const [prev, next] = [prevMetadata, nextMetadata].map(getMetadataHelpers)\n\n const cache = new Map()\n const compareEnumEntries = ({\n kind,\n pallet,\n name,\n }: {\n kind: \"call\" | \"event\" | \"error\"\n pallet: string\n name: string\n }): ComparedChange => {\n const a = prev.metadataMaps.pallets[pallet]![kind].get(name)!\n const b = next.metadataMaps.pallets[pallet]![kind].get(name)!\n const argsOrValues = kind === \"call\" ? \"args\" : \"values\"\n\n return {\n kind,\n pallet,\n name,\n compat: minCompatLevel(\n entryPointsAreCompatible(\n getEnumEntry(a, argsOrValues),\n prev.getTypeDefNode,\n getEnumEntry(b, argsOrValues),\n next.getTypeDefNode,\n cache,\n ),\n ),\n }\n }\n\n const compareConst = (pallet: string, name: string): ComparedChange => {\n const a = prev.metadataMaps.pallets[pallet]!.const.get(name)!\n const b = next.metadataMaps.pallets[pallet]!.const.get(name)!\n\n return {\n kind: \"const\",\n pallet,\n name,\n compat: minCompatLevel(\n entryPointsAreCompatible(\n singleValueEntryPoint(a.type),\n prev.getTypeDefNode,\n singleValueEntryPoint(b.type),\n next.getTypeDefNode,\n cache,\n ),\n ),\n }\n }\n\n const compareExtension = (name: string): ComparedChange => {\n const prevExtensions = prev.metadataMaps.extensions[name]\n const newExtensions = next.metadataMaps.extensions[name]\n\n return {\n kind: \"extension\",\n name,\n compat: mapObject(prevExtensions, (type, key) =>\n minCompatLevel(\n entryPointsAreCompatible(\n singleValueEntryPoint(type),\n prev.getTypeDefNode,\n singleValueEntryPoint(newExtensions[key]),\n next.getTypeDefNode,\n cache,\n ),\n ),\n ),\n }\n }\n\n const compareStorage = (pallet: string, name: string): ComparedChange => {\n const a = prev.metadataMaps.pallets[pallet]!.storage.get(name)!\n const b = next.metadataMaps.pallets[pallet]!.storage.get(name)!\n\n return {\n kind: \"storage\",\n pallet,\n name,\n compat: compatLevel(\n entryPointsAreCompatible(\n storageEntryPoint(a),\n prev.getTypeDefNode,\n storageEntryPoint(b),\n next.getTypeDefNode,\n cache,\n ),\n ),\n }\n }\n\n const compareViewFn = (pallet: string, name: string): ComparedChange => {\n const a = prev.metadataMaps.pallets[pallet]!.view.get(name)!\n const b = next.metadataMaps.pallets[pallet]!.view.get(name)!\n\n return {\n kind: \"view\",\n pallet,\n name,\n compat: compatLevel(\n entryPointsAreCompatible(\n runtimeCallEntryPoint(a),\n prev.getTypeDefNode,\n runtimeCallEntryPoint(b),\n next.getTypeDefNode,\n cache,\n ),\n ),\n }\n }\n\n const compareRuntimeApi = (group: string, name: string): ComparedChange => {\n const a = prev.metadataMaps.api[group]!.get(name)!\n const b = next.metadataMaps.api[group]!.get(name)!\n\n return {\n kind: \"api\",\n group,\n name,\n compat: compatLevel(\n entryPointsAreCompatible(\n runtimeCallEntryPoint(a),\n prev.getTypeDefNode,\n runtimeCallEntryPoint(b),\n next.getTypeDefNode,\n cache,\n ),\n ),\n }\n }\n\n const added = shallowDiff(prev.metadataMaps, next.metadataMaps, \"added\")\n const removed = shallowDiff(next.metadataMaps, prev.metadataMaps, \"added\")\n const commonApis = shallowDiff(prev.metadataMaps, next.metadataMaps, \"kept\")\n\n const kept = commonApis.map((x) => {\n switch (x.kind) {\n case \"const\":\n return compareConst(x.pallet, x.name)\n case \"storage\":\n return compareStorage(x.pallet, x.name)\n case \"view\":\n return compareViewFn(x.pallet, x.name)\n case \"api\":\n return compareRuntimeApi(x.group, x.name)\n case \"extension\":\n return compareExtension(x.name)\n default:\n return compareEnumEntries(x as any)\n }\n })\n\n return { added, removed, kept }\n}\n"],"names":["mapObject","rest","enumValueEntryPointNode","voidEntryPointNode","unifyMetadata","decAnyMetadata","getLookupFn","mapLookupToTypedef","entryPointsAreCompatible","singleValueEntryPoint","storageEntryPoint","runtimeCallEntryPoint"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/mapped-metadata.ts","../src/shallow-diff.ts","../src/compare-runtimes.ts"],"sourcesContent":["import { LookupEntry } from \"@polkadot-api/metadata-builders\"\nimport { UnifiedMetadata } from \"@polkadot-api/substrate-bindings\"\nimport type {\n StructVar,\n ArrayVar,\n TupleVar,\n VoidVar,\n} from \"@polkadot-api/metadata-builders\"\nimport { mapObject } from \"@polkadot-api/utils\"\n\nexport type EnumEntry = (\n | VoidVar\n | TupleVar\n | StructVar\n | ArrayVar\n | {\n type: \"lookupEntry\"\n value: LookupEntry\n }\n) & {\n idx: number\n}\n\nexport type MetadataMaps = {\n pallets: Record<\n string,\n {\n storage: Map<\n string,\n NonNullable<\n UnifiedMetadata[\"pallets\"][number][\"storage\"]\n >[\"items\"][number]\n >\n event: Map<string, EnumEntry>\n error: Map<string, EnumEntry>\n call: Map<string, EnumEntry>\n const: Map<\n string,\n NonNullable<UnifiedMetadata[\"pallets\"][number][\"constants\"]>[number]\n >\n view: Map<\n string,\n NonNullable<UnifiedMetadata[\"pallets\"][number][\"viewFns\"]>[number]\n >\n }\n >\n api: Record<\n string,\n Map<string, NonNullable<UnifiedMetadata[\"apis\"][number][\"methods\"][number]>>\n >\n extensions: Record<string, { type: number; additionalSigned: number }>\n}\n\nconst buildVariants = (\n metadata: UnifiedMetadata,\n lookupFn: (id: number) => LookupEntry,\n) =>\n Object.fromEntries(\n metadata.pallets.map((palletEntry) => {\n const [error, event, call] = [\n \"errors\" as const,\n \"events\" as const,\n \"calls\" as const,\n ].map((variantType) => {\n try {\n const lookup = lookupFn(palletEntry[variantType]!.type)\n if (lookup.type !== \"enum\") throw null\n return new Map(Object.entries(lookup.value))\n } catch {\n return new Map()\n }\n })\n return [palletEntry.name, { error, event, call }]\n }),\n )\n\nexport const getMappedMetadata = (\n metadata: UnifiedMetadata,\n lookupFn: (id: number) => LookupEntry,\n): MetadataMaps => {\n const palletVariants = buildVariants(metadata, lookupFn)\n const rest = Object.fromEntries(\n metadata.pallets.map((palletEntry) => {\n const [constants, view] = [\"constants\" as const, \"viewFns\" as const].map(\n (entryType) => new Map(palletEntry[entryType].map((x) => [x.name, x])),\n )\n return [palletEntry.name, { const: constants, view }]\n }),\n ) as Record<string, Pick<MetadataMaps[\"pallets\"][string], \"const\" | \"view\">>\n const storage = Object.fromEntries(\n metadata.pallets.map((palletEntry) => [\n palletEntry.name,\n new Map((palletEntry.storage?.items || []).map((x) => [x.name, x])),\n ]),\n ) as Record<string, MetadataMaps[\"pallets\"][string][\"storage\"]>\n\n const pallets: MetadataMaps[\"pallets\"] = mapObject(\n palletVariants,\n ({ error, event, call }, key) => ({\n error,\n event,\n call,\n storage: storage[key],\n ...rest[key],\n }),\n )\n\n const api: MetadataMaps[\"api\"] = Object.fromEntries(\n metadata.apis.map((x) => [\n x.name,\n new Map(x.methods.map((m) => [m.name, m])),\n ]),\n )\n\n const extensions = Object.values(metadata.extrinsic.signedExtensions).reduce<\n Record<string, { type: number; additionalSigned: number }>\n >((acc, exts) => {\n exts.forEach(({ identifier, ...rest }) => {\n acc[identifier] = rest\n })\n return acc\n }, {})\n\n return {\n pallets,\n api,\n extensions,\n }\n}\n","import { MetadataMaps } from \"./mapped-metadata\"\nimport { Change } from \"./public-types\"\n\nexport const shallowDiff = (\n prev: MetadataMaps,\n next: MetadataMaps,\n type: \"added\" | \"kept\",\n): Array<Change> => {\n const result: Array<Change> = []\n Object.entries(next.pallets).forEach(([palletName, data]) => {\n ;[\n \"const\" as const,\n \"storage\" as const,\n \"call\" as const,\n \"event\" as const,\n \"error\" as const,\n \"view\" as const,\n ].forEach((x) => {\n ;[...data[x as \"storage\"].keys()].forEach((key) => {\n const isInPrev = prev.pallets[palletName]?.[x as \"storage\"].has(key)\n if (type === \"added\" ? !isInPrev : isInPrev) {\n result.push({\n kind: x,\n pallet: palletName,\n name: key,\n })\n }\n })\n })\n })\n\n Object.entries(next.api).forEach(([apiGroup, val]) => {\n ;[...val.keys()].forEach((x) => {\n const isInPrev = prev.api[apiGroup]?.has(x)\n if (type === \"added\" ? !isInPrev : isInPrev) {\n result.push({\n kind: \"api\",\n group: apiGroup,\n name: x,\n })\n }\n })\n })\n\n Object.keys(next.extensions).forEach((name) => {\n const isInPrev = !!prev.extensions[name]\n if (type === \"added\" ? !isInPrev : isInPrev) {\n result.push({\n kind: \"extension\",\n name,\n })\n }\n })\n\n return result\n}\n","import { getLookupFn } from \"@polkadot-api/metadata-builders\"\nimport {\n CompatibilityResult,\n entryPointsAreCompatible,\n enumValueEntryPointNode,\n mapLookupToTypedef,\n runtimeCallEntryPoint,\n singleValueEntryPoint,\n storageEntryPoint,\n TypedefNode,\n voidEntryPointNode,\n} from \"@polkadot-api/metadata-compatibility\"\nimport { decAnyMetadata, unifyMetadata } from \"@polkadot-api/substrate-bindings\"\nimport { EnumEntry, getMappedMetadata } from \"./mapped-metadata\"\nimport { ComparedChange, Output } from \"./public-types\"\nimport { shallowDiff } from \"./shallow-diff\"\nimport { mapObject } from \"@polkadot-api/utils\"\n\nconst getEnumEntry = (entry: EnumEntry, side: \"args\" | \"values\") => {\n const node = enumValueEntryPointNode(entry)\n return {\n args: side === \"args\" ? node : voidEntryPointNode,\n values: side === \"args\" ? voidEntryPointNode : node,\n }\n}\n\nconst getMetadataHelpers = (rawMetadata: Uint8Array) => {\n const metadata = unifyMetadata(decAnyMetadata(rawMetadata))\n const lookupFn = getLookupFn(metadata)\n const typeNodesCache: (TypedefNode | null)[] = []\n const getTypeDefNode = (id: number) =>\n (typeNodesCache[id] ||= mapLookupToTypedef(lookupFn(id)))\n const metadataMaps = getMappedMetadata(metadata, lookupFn)\n\n return { lookupFn, getTypeDefNode, metadataMaps }\n}\n\nconst minCompatLevel = (results: {\n args: CompatibilityResult\n values: CompatibilityResult\n}) => Math.min(results.args.level, results.values.level)\nconst compatLevel = (results: {\n args: CompatibilityResult\n values: CompatibilityResult\n}) => ({\n args: results.args.level,\n values: results.values.level,\n})\n\nexport const compareRuntimes = (\n prevMetadata: Uint8Array,\n nextMetadata: Uint8Array,\n): Output => {\n const [prev, next] = [prevMetadata, nextMetadata].map(getMetadataHelpers)\n\n const cache = new Map()\n const compareEnumEntries = ({\n kind,\n pallet,\n name,\n }: {\n kind: \"call\" | \"event\" | \"error\"\n pallet: string\n name: string\n }): ComparedChange => {\n const a = prev.metadataMaps.pallets[pallet]![kind].get(name)!\n const b = next.metadataMaps.pallets[pallet]![kind].get(name)!\n const argsOrValues = kind === \"call\" ? \"args\" : \"values\"\n\n return {\n kind,\n pallet,\n name,\n compat: minCompatLevel(\n entryPointsAreCompatible(\n getEnumEntry(a, argsOrValues),\n prev.getTypeDefNode,\n getEnumEntry(b, argsOrValues),\n next.getTypeDefNode,\n cache,\n ),\n ),\n }\n }\n\n const compareConst = (pallet: string, name: string): ComparedChange => {\n const a = prev.metadataMaps.pallets[pallet]!.const.get(name)!\n const b = next.metadataMaps.pallets[pallet]!.const.get(name)!\n\n return {\n kind: \"const\",\n pallet,\n name,\n compat: minCompatLevel(\n entryPointsAreCompatible(\n singleValueEntryPoint(a.type),\n prev.getTypeDefNode,\n singleValueEntryPoint(b.type),\n next.getTypeDefNode,\n cache,\n ),\n ),\n }\n }\n\n const compareExtension = (name: string): ComparedChange => {\n const prevExtensions = prev.metadataMaps.extensions[name]\n const newExtensions = next.metadataMaps.extensions[name]\n\n return {\n kind: \"extension\",\n name,\n compat: mapObject(prevExtensions, (type, key) =>\n minCompatLevel(\n entryPointsAreCompatible(\n singleValueEntryPoint(type),\n prev.getTypeDefNode,\n singleValueEntryPoint(newExtensions[key]),\n next.getTypeDefNode,\n cache,\n ),\n ),\n ),\n }\n }\n\n const compareStorage = (pallet: string, name: string): ComparedChange => {\n const a = prev.metadataMaps.pallets[pallet]!.storage.get(name)!\n const b = next.metadataMaps.pallets[pallet]!.storage.get(name)!\n\n return {\n kind: \"storage\",\n pallet,\n name,\n compat: compatLevel(\n entryPointsAreCompatible(\n storageEntryPoint(a),\n prev.getTypeDefNode,\n storageEntryPoint(b),\n next.getTypeDefNode,\n cache,\n ),\n ),\n }\n }\n\n const compareViewFn = (pallet: string, name: string): ComparedChange => {\n const a = prev.metadataMaps.pallets[pallet]!.view.get(name)!\n const b = next.metadataMaps.pallets[pallet]!.view.get(name)!\n\n return {\n kind: \"view\",\n pallet,\n name,\n compat: compatLevel(\n entryPointsAreCompatible(\n runtimeCallEntryPoint(a),\n prev.getTypeDefNode,\n runtimeCallEntryPoint(b),\n next.getTypeDefNode,\n cache,\n ),\n ),\n }\n }\n\n const compareRuntimeApi = (group: string, name: string): ComparedChange => {\n const a = prev.metadataMaps.api[group]!.get(name)!\n const b = next.metadataMaps.api[group]!.get(name)!\n\n return {\n kind: \"api\",\n group,\n name,\n compat: compatLevel(\n entryPointsAreCompatible(\n runtimeCallEntryPoint(a),\n prev.getTypeDefNode,\n runtimeCallEntryPoint(b),\n next.getTypeDefNode,\n cache,\n ),\n ),\n }\n }\n\n const added = shallowDiff(prev.metadataMaps, next.metadataMaps, \"added\")\n const removed = shallowDiff(next.metadataMaps, prev.metadataMaps, \"added\")\n const commonApis = shallowDiff(prev.metadataMaps, next.metadataMaps, \"kept\")\n\n const kept = commonApis.map((x) => {\n switch (x.kind) {\n case \"const\":\n return compareConst(x.pallet, x.name)\n case \"storage\":\n return compareStorage(x.pallet, x.name)\n case \"view\":\n return compareViewFn(x.pallet, x.name)\n case \"api\":\n return compareRuntimeApi(x.group, x.name)\n case \"extension\":\n return compareExtension(x.name)\n default:\n return compareEnumEntries(x as any)\n }\n })\n\n return { added, removed, kept }\n}\n"],"names":["mapObject","rest","enumValueEntryPointNode","voidEntryPointNode","unifyMetadata","decAnyMetadata","getLookupFn","mapLookupToTypedef","entryPointsAreCompatible","singleValueEntryPoint","storageEntryPoint","runtimeCallEntryPoint"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polkadot-api/compare-runtimes",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.14",
|
|
4
4
|
"author": "Josep M Sobrepere (https://github.com/josepot)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"dist"
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@polkadot-api/metadata-builders": "0.13.
|
|
39
|
-
"@polkadot-api/substrate-bindings": "0.
|
|
40
|
-
"@polkadot-api/metadata-compatibility": "0.4.
|
|
38
|
+
"@polkadot-api/metadata-builders": "0.13.9",
|
|
39
|
+
"@polkadot-api/substrate-bindings": "0.17.0",
|
|
40
|
+
"@polkadot-api/metadata-compatibility": "0.4.4",
|
|
41
41
|
"@polkadot-api/utils": "0.2.0"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|