diff --git a/packages/apps-config/package.json b/packages/apps-config/package.json index 7dc0a0b756..c2651ef3d7 100644 --- a/packages/apps-config/package.json +++ b/packages/apps-config/package.json @@ -44,6 +44,7 @@ "@polkadot/types": "^11.0.3", "@polkadot/types-codec": "^11.0.3", "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", "@polkadot/wasm-util": "^7.3.2", "@polkadot/x-fetch": "^12.6.2", "@polkadot/x-ws": "^12.6.2", diff --git a/packages/apps-config/src/api/derives.ts b/packages/apps-config/src/api/derives.ts index 8969f1859e..939a17e93f 100644 --- a/packages/apps-config/src/api/derives.ts +++ b/packages/apps-config/src/api/derives.ts @@ -5,6 +5,7 @@ import type { OverrideBundleDefinition, OverrideBundleType } from '@polkadot/typ import equilibrium from './spec/equilibrium.js'; import genshiro from './spec/genshiro.js'; +import hyperbridge from './spec/hyperbridge.js'; import interbtc from './spec/interbtc.js'; import mangata from './spec/mangata.js'; import subspace from './spec/subspace.js'; @@ -17,6 +18,10 @@ const mapping: [OverrideBundleDefinition, string[]][] = [ [mangata, ['mangata', 'mangata-parachain']] ]; +const specMappings: [OverrideBundleDefinition, string[]][] = [ + [hyperbridge, ['nexus', 'messier', 'gargantua']] +]; + export function applyDerives (typesBundle: OverrideBundleType): OverrideBundleType { mapping.forEach(([{ derives }, chains]): void => { chains.forEach((chain): void => { @@ -26,5 +31,13 @@ export function applyDerives (typesBundle: OverrideBundleType): OverrideBundleTy }); }); + specMappings.forEach(([spec, chains]): void => { + chains.forEach((chain): void => { + if (typesBundle.spec?.[chain]) { + typesBundle.spec[chain] = spec; + } + }); + }); + return typesBundle; } diff --git a/packages/apps-config/src/api/spec/hyperbridge.ts b/packages/apps-config/src/api/spec/hyperbridge.ts new file mode 100644 index 0000000000..8f1e2239de --- /dev/null +++ b/packages/apps-config/src/api/spec/hyperbridge.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2024 @polkadot/apps-config authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { OverrideBundleDefinition } from '@polkadot/types/types'; + +import { keccakAsU8a } from '@polkadot/util-crypto'; + +const definitions: OverrideBundleDefinition = { + hasher: keccakAsU8a +}; + +export default definitions; diff --git a/packages/apps-config/src/api/spec/index.ts b/packages/apps-config/src/api/spec/index.ts index 2aa6813685..d1d3fbe459 100644 --- a/packages/apps-config/src/api/spec/index.ts +++ b/packages/apps-config/src/api/spec/index.ts @@ -56,6 +56,7 @@ import gamepower from './gamepower.js'; import genshiro from './genshiro.js'; import hanonycash from './hanonycash.js'; import hydrate from './hydrate.js'; +import hyperbridge from './hyperbridge.js'; import idavoll from './idavoll.js'; import imbue from './imbue.js'; import integritee from './integritee.js'; @@ -209,11 +210,13 @@ const spec: Record = { galital, 'galital-collator': galitalParachain, gamepower, + gargantua: hyperbridge, 'hack-hydra-dx': hydrate, halongbay: polkafoundry, hanonycash, heiko: parallel, 'hydra-dx': hydrate, + hyperbridge, idavoll, imbue, 'integritee-parachain': integritee, @@ -242,6 +245,7 @@ const spec: Record = { 'manta-node': manta, mathchain, 'mathchain-galois': galois, + messier: hyperbridge, moonbase: moonbeam, moonbeam, moonriver: moonbeam, @@ -251,6 +255,7 @@ const spec: Record = { mythos, neatcoin, neuroweb, + nexus: hyperbridge, nftmart, 'node-moonbeam': moonbeam, 'node-polkadex': polkadex, diff --git a/packages/apps-config/src/api/typesBundle.ts b/packages/apps-config/src/api/typesBundle.ts index 5934c4bac9..f1190e3711 100644 --- a/packages/apps-config/src/api/typesBundle.ts +++ b/packages/apps-config/src/api/typesBundle.ts @@ -57999,6 +57999,7 @@ export const typesBundle = { } ] }, + "gargantua": {}, "hack-hydra-dx": { "types": [ { @@ -58051,6 +58052,7 @@ export const typesBundle = { } ] }, + "hyperbridge": {}, "halongbay": { "types": [ { @@ -64642,6 +64644,7 @@ export const typesBundle = { } ] }, + "messier": {}, "moonbase": { "alias": { "assetManager": { @@ -71650,6 +71653,7 @@ export const typesBundle = { } ] }, + "nexus": {}, "nftmart": { "types": [ { diff --git a/packages/apps-config/src/endpoints/testingRelayPaseo.ts b/packages/apps-config/src/endpoints/testingRelayPaseo.ts index 68ca0594c0..20296b39d9 100644 --- a/packages/apps-config/src/endpoints/testingRelayPaseo.ts +++ b/packages/apps-config/src/endpoints/testingRelayPaseo.ts @@ -4,7 +4,7 @@ import type { EndpointOption } from './types.js'; import { chainsFrequencyPaseoSVG, chainsLaosOmegaPNG, chainsPaseoPNG, chainsPopNetworkSVG } from '@polkadot/apps-config/ui/logos/chains'; -import { nodesAssetHubSVG, nodesIntegriteeSVG, nodesKiltPNG, nodesNodleSVG } from '@polkadot/apps-config/ui/logos/nodes'; +import { nodesAssetHubSVG, nodesHyperbridgeSVG, nodesIntegriteeSVG, nodesKiltPNG, nodesNodleSVG } from '@polkadot/apps-config/ui/logos/nodes'; import { PASEO_GENESIS } from '../api/constants.js'; // import { testnetParachainSVG } from '../ui/logos/nodes/index.js'; @@ -44,6 +44,19 @@ export const testParasPaseo: Omit[] = [ logo: chainsFrequencyPaseoSVG } }, + { + homepage: 'https://hyperbridge.network', + info: 'Hyperbridge', + paraId: 4009, + providers: { + BlockOps: 'wss://hyperbridge-paseo-rpc.blockops.network' + }, + text: 'Hyperbridge (Gargantua)', + ui: { + color: '#ED6FF1', + logo: nodesHyperbridgeSVG + } + }, { homepage: 'https://integritee.network', info: 'integritee', diff --git a/yarn.lock b/yarn.lock index 833e3d74ed..201f323b39 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1745,6 +1745,7 @@ __metadata: "@polkadot/types": "npm:^11.0.3" "@polkadot/types-codec": "npm:^11.0.3" "@polkadot/util": "npm:^12.6.2" + "@polkadot/util-crypto": "npm:^12.6.2" "@polkadot/wasm-util": "npm:^7.3.2" "@polkadot/x-fetch": "npm:^12.6.2" "@polkadot/x-ws": "npm:^12.6.2"