From 6bda5366ecbe2f62dc83eda9c4d3e75745beeba1 Mon Sep 17 00:00:00 2001 From: Nikita Khateev Date: Tue, 23 Jan 2024 20:55:59 +0400 Subject: [PATCH] OpenZeppelin runtime template (#10212) * Config for OZ template in PolkadotJS * fix emblem * fix ci * fix CI * updated ParaId --- .../apps-config/src/api/spec/oz-template.ts | 22 ++++++++++++++++++ .../src/endpoints/testingRelayRococo.ts | 12 +++++++++- .../src/ui/logos/nodes/generated/ozPNG.ts | 6 +++++ .../apps-config/src/ui/logos/nodes/index.ts | 1 + .../apps-config/src/ui/logos/nodes/oz.png | Bin 0 -> 4379 bytes 5 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 packages/apps-config/src/api/spec/oz-template.ts create mode 100644 packages/apps-config/src/ui/logos/nodes/generated/ozPNG.ts create mode 100644 packages/apps-config/src/ui/logos/nodes/oz.png diff --git a/packages/apps-config/src/api/spec/oz-template.ts b/packages/apps-config/src/api/spec/oz-template.ts new file mode 100644 index 000000000000..7e8f7108c4cf --- /dev/null +++ b/packages/apps-config/src/api/spec/oz-template.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2024 @polkadot/apps-config authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { OverrideBundleDefinition } from '@polkadot/types/types'; + +// structs need to be in order +/* eslint-disable sort-keys */ + +const definitions: OverrideBundleDefinition = { + types: [ + { + // on all versions + minmax: [0, undefined], + types: { + Address: 'AccountId', + LookupSource: 'AccountId' + } + } + ] +}; + +export default definitions; diff --git a/packages/apps-config/src/endpoints/testingRelayRococo.ts b/packages/apps-config/src/endpoints/testingRelayRococo.ts index 7c6d78f3d216..8759f6183658 100644 --- a/packages/apps-config/src/endpoints/testingRelayRococo.ts +++ b/packages/apps-config/src/endpoints/testingRelayRococo.ts @@ -5,7 +5,7 @@ import type { EndpointOption } from './types.js'; import { ROCOCO_GENESIS } from '../api/constants.js'; import { chainsAcurastPNG, chainsAmplitudeSVG, chainsBitgreenPNG, chainsFrequencySVG, chainsGenshiroSVG, chainsHydratePNG, chainsIdiyanaleLogoWhiteSVG, chainsJurPNG, chainsMangataPNG, chainsMoonsamaPNG, chainsNeurowebTestnetPNG, chainsRococoSVG, chainsSnowbridgePNG, chainsT0rnPNG, chainsTinkerPNG, chainsTotemSVG, chainsTuringPNG, chainsVirtoPNG, chainsWatrPNG } from '../ui/logos/chains/index.js'; -import { nodesArcticPNG, nodesAssetHubSVG, nodesAventusSVG, nodesBajunPNG, nodesBasiliskPNG, nodesBasiliskRococoBgPNG, nodesBifrostSVG, nodesBridgeHubBlackSVG, nodesCentrifugePNG, nodesConftiSVG, nodesCrustParachainSVG, nodesCurioSVG, nodesDatahighwayPNG, nodesDolphinSVG, nodesEncointerBlueSVG, nodesGiantPNG, nodesGiediPNG, nodesHelixstreetPNG, nodesImbuePNG, nodesIntegriteeSVG, nodesKabochaSVG, nodesKiltPNG, nodesLitentryRococoPNG, nodesMd5PNG, nodesMetaquityNetworkPNG, nodesNodleSVG, nodesOliSVG, nodesPangolinSVG, nodesPhalaSVG, nodesPicassoPNG, nodesPolkadexSVG, nodesRexSVG, nodesRobonomicsSVG, nodesRocfinitySVG, nodesSocietalSVG, nodesSoonsocialXPNG, nodesSoraSubstrateSVG, nodesSubstrateContractsNodePNG, nodesTrappistRococoPNG, nodesUnitnetworkPNG, nodesYerbanetworkPNG, nodesZeitgeistPNG, nodesZeroSVG } from '../ui/logos/nodes/index.js'; +import { nodesArcticPNG, nodesAssetHubSVG, nodesAventusSVG, nodesBajunPNG, nodesBasiliskPNG, nodesBasiliskRococoBgPNG, nodesBifrostSVG, nodesBridgeHubBlackSVG, nodesCentrifugePNG, nodesConftiSVG, nodesCrustParachainSVG, nodesCurioSVG, nodesDatahighwayPNG, nodesDolphinSVG, nodesEncointerBlueSVG, nodesGiantPNG, nodesGiediPNG, nodesHelixstreetPNG, nodesImbuePNG, nodesIntegriteeSVG, nodesKabochaSVG, nodesKiltPNG, nodesLitentryRococoPNG, nodesMd5PNG, nodesMetaquityNetworkPNG, nodesNodleSVG, nodesOliSVG, nodesOzPNG, nodesPangolinSVG, nodesPhalaSVG, nodesPicassoPNG, nodesPolkadexSVG, nodesRexSVG, nodesRobonomicsSVG, nodesRocfinitySVG, nodesSocietalSVG, nodesSoonsocialXPNG, nodesSoraSubstrateSVG, nodesSubstrateContractsNodePNG, nodesTrappistRococoPNG, nodesUnitnetworkPNG, nodesYerbanetworkPNG, nodesZeitgeistPNG, nodesZeroSVG } from '../ui/logos/nodes/index.js'; import { getTeleports } from './util.js'; // The available endpoints that will show in the dropdown. For the most part (with the exception of @@ -413,6 +413,16 @@ export const testParasRococo: Omit[] = [ logo: nodesOliSVG } }, + { + info: 'rococoOpenZeppelin', + paraId: 4354, + providers: {}, + text: 'OpenZeppelin Runtime Template', + ui: { + color: '#f653a2', + logo: nodesOzPNG + } + }, { info: 'rococoPangolin', paraId: 2105, diff --git a/packages/apps-config/src/ui/logos/nodes/generated/ozPNG.ts b/packages/apps-config/src/ui/logos/nodes/generated/ozPNG.ts new file mode 100644 index 000000000000..f4fbf5ff3a90 --- /dev/null +++ b/packages/apps-config/src/ui/logos/nodes/generated/ozPNG.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2024 @polkadot/apps authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit. Auto-generated via node scripts/imgConvert.mjs + +export const nodesOzPNG = 'data:image/png;base64,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'; diff --git a/packages/apps-config/src/ui/logos/nodes/index.ts b/packages/apps-config/src/ui/logos/nodes/index.ts index 373e5ff3d64d..87bbdba78c8e 100644 --- a/packages/apps-config/src/ui/logos/nodes/index.ts +++ b/packages/apps-config/src/ui/logos/nodes/index.ts @@ -103,6 +103,7 @@ export { nodesOliSVG } from './generated/oliSVG.js'; export { nodesOmnibtcSVG } from './generated/omnibtcSVG.js'; export { nodesOpalLogoPNG } from './generated/opal-logoPNG.js'; export { nodesOpportunityPNG } from './generated/opportunityPNG.js'; +export { nodesOzPNG } from './generated/ozPNG.js'; export { nodesPangolinSVG } from './generated/pangolinSVG.js'; export { nodesPangoroSVG } from './generated/pangoroSVG.js'; export { nodesParallelSVG } from './generated/parallelSVG.js'; diff --git a/packages/apps-config/src/ui/logos/nodes/oz.png b/packages/apps-config/src/ui/logos/nodes/oz.png new file mode 100644 index 0000000000000000000000000000000000000000..055b0e00cebdda36b35cdfcdba53dcecdace6601 GIT binary patch literal 4379 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 literal 0 HcmV?d00001