diff --git a/packages/apps-config/src/api/spec/index.ts b/packages/apps-config/src/api/spec/index.ts index 7848af66ee..c728506bcf 100644 --- a/packages/apps-config/src/api/spec/index.ts +++ b/packages/apps-config/src/api/spec/index.ts @@ -94,6 +94,7 @@ import ternoa from './ternoa'; import trustbase from './trustbase'; import uart from './uart'; import unique from './unique'; +import uniqueWestend from './unique-westend'; import unitv from './unitv'; import vln from './vln'; import vlnrococo from './vln-rococo'; @@ -192,6 +193,7 @@ const spec: Record = { 'node-template-spartan': subspace, 'nodle-chain': nodle, 'oak-testnet': oakTestnet, + opal: uniqueWestend, opportunity, 'origintrail-parachain': origintrail, parami, diff --git a/packages/apps-config/src/api/spec/unique-westend.ts b/packages/apps-config/src/api/spec/unique-westend.ts new file mode 100644 index 0000000000..7d1fc3daf9 --- /dev/null +++ b/packages/apps-config/src/api/spec/unique-westend.ts @@ -0,0 +1,143 @@ +// Copyright 2017-2021 @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: { + AccountInfo: 'AccountInfoWithTripleRefCount', + CrossAccountId: { + _enum: { + substrate: 'AccountId', + ethereum: 'H160' + } + }, + AccessMode: { + _enum: ['Normal', 'WhiteList'] + }, + CallSpec: { + Module: 'u32', + Method: 'u32' + }, + DecimalPoints: 'u8', + CollectionMode: { + _enum: { + NFT: null, + Fungible: 'DecimalPoints', + ReFungible: null + } + }, + Ownership: { + Owner: 'CrossAccountId', + Fraction: 'u128' + }, + FungibleItemType: { + Value: 'u128' + }, + NftItemType: { + Owner: 'CrossAccountId', + ConstData: 'Vec', + VariableData: 'Vec' + }, + ReFungibleItemType: { + Owner: 'Vec>', + ConstData: 'Vec', + VariableData: 'Vec' + }, + SponsorshipState: { + _enum: { + Disabled: null, + Unconfirmed: 'AccountId', + Confirmed: 'AccountId' + } + }, + Collection: { + Owner: 'AccountId', + Mode: 'CollectionMode', + Access: 'AccessMode', + DecimalPoints: 'DecimalPoints', + Name: 'Vec', + Description: 'Vec', + TokenPrefix: 'Vec', + MintMode: 'bool', + OffchainSchema: 'Vec', + SchemaVersion: 'SchemaVersion', + Sponsorship: 'SponsorshipState', + Limits: 'CollectionLimits', + VariableOnChainSchema: 'Vec', + ConstOnChainSchema: 'Vec', + MetaUpdatePermission: 'MetaUpdatePermission', + TransfersEnabled: 'bool' + }, + RawData: 'Vec', + Address: 'MultiAddress', + LookupSource: 'MultiAddress', + Weight: 'u64', + CreateNftData: { + const_data: 'Vec', + variable_data: 'Vec' + }, + CreateFungibleData: { + value: 'u128' + }, + CreateReFungibleData: { + const_data: 'Vec', + variable_data: 'Vec', + pieces: 'u128' + }, + CreateItemData: { + _enum: { + NFT: 'CreateNftData', + Fungible: 'CreateFungibleData', + ReFungible: 'CreateReFungibleData' + } + }, + SchemaVersion: { + _enum: [ + 'ImageURL', + 'Unique' + ] + }, + MetaUpdatePermission: { + _enum: [ + 'ItemOwner', + 'Admin', + 'None' + ] + }, + CollectionId: 'u32', + TokenId: 'u32', + ChainLimits: { + CollectionNumbersLimit: 'u32', + AccountTokenOwnershipLimit: 'u32', + CollectionAdminsLimit: 'u64', + CustomDataLimit: 'u32', + NftSponsorTimeout: 'u32', + FungibleSponsorTimeout: 'u32', + RefungibleSponsorTimeout: 'u32', + OffchainSchemaLimit: 'u32', + VariableOnChainSchemaLimit: 'u32', + ConstOnChainSchemaLimit: 'u32' + }, + CollectionLimits: { + AccountTokenOwnershipLimit: 'u32', + SponsoredDataSize: 'u32', + SponsoredDataRateLimit: 'Option', + TokenLimit: 'u32', + SponsorTimeout: 'u32', + OwnerCanTransfer: 'bool', + OwnerCanDestroy: 'bool' + } + } + } + ] +}; + +export default definitions; diff --git a/packages/apps-config/src/endpoints/testingRelayWestend.ts b/packages/apps-config/src/endpoints/testingRelayWestend.ts index 88c50ba82e..fc37f357f1 100644 --- a/packages/apps-config/src/endpoints/testingRelayWestend.ts +++ b/packages/apps-config/src/endpoints/testingRelayWestend.ts @@ -88,6 +88,15 @@ export function createWestend (t: TFunction): EndpointOption { PureStake: 'wss://wss.moonshadow.testnet.moonbeam.network' } }, + { + info: 'opal', + homepage: 'https://unique.network/', + paraId: 2096, + text: t('westend-opal.unique.network', 'OPAL by UNIQUE', { ns: 'apps-config' }), + providers: { + Unique: 'wss://westend-opal.unique.network' + } + }, { info: 'westendStandard', paraId: 2094, diff --git a/packages/apps-config/src/ui/colors.ts b/packages/apps-config/src/ui/colors.ts index f6a783c82d..34265b17c5 100644 --- a/packages/apps-config/src/ui/colors.ts +++ b/packages/apps-config/src/ui/colors.ts @@ -89,6 +89,7 @@ const chainZenlink = 'linear-gradient(45deg, #F20082 0%, #FF4D4D 100%)'; const chainJupiter = '#7143ff'; const chainUniarts = 'linear-gradient(150deg, #333ef7 0%, #55adff 100%)'; const chainUnique = '#40BCFF'; +const chainUniqueWestend = '#3B9C9D'; const chainIdavoll = '#ff43ff'; const chainSubDAO = 'linear-gradient(50deg, #F20092 0%, #FF4D5D 100%)'; const chainSubsocial = '#b9018c'; @@ -151,6 +152,7 @@ const nodeSubspace = 'linear-gradient(to left, rgba(32,90,172,1) 0%, rgba(26,72, const nodeTernoa = '#d622ff'; const nodeUniarts = chainUniarts; const nodeUnique = chainUnique; +const nodeUniqueWestend = chainUniqueWestend; const nodeWeb3games = 'linear-gradient(45deg, #0099F7 0%, #F11712 100%)'; const nodeWestlake = chainWestlake; const nodeZeitgeist = 'linear-gradient(180deg, rgba(32,90,172,1) 0%, rgba(26,72,138,1) 50%, rgba(13,36,69,1) 100%)'; @@ -249,6 +251,7 @@ export const chainColors: Record = Object.entries({ 'NFTMart Staging': chainNFTMart, 'NFTMart Testnet': chainNFTMart, 'OAK Testnet': chainOakTestnet, + 'Opal Node': chainUniqueWestend, 'OriginTrail Parachain': nodeOriginTrail, 'OriginTrail Parachain Testnet': nodeOriginTrail, Pangolin: chainPangolin, @@ -349,6 +352,7 @@ export const nodeColors = Object.entries({ 'NFTMart Testnet': nodeNFTMart, 'nodle chain node': nodeNodle, 'OAK Testnet': nodeOakTestnet, + 'Opal Node': nodeUniqueWestend, 'Opportunity Standalone Testnet': nodeOpportunity, 'OriginTrail Parachain': nodeOriginTrail, Pangolin: nodePangolin, diff --git a/packages/apps-config/src/ui/logos/chains/opal-logo.png b/packages/apps-config/src/ui/logos/chains/opal-logo.png new file mode 100644 index 0000000000..8fd3530719 Binary files /dev/null and b/packages/apps-config/src/ui/logos/chains/opal-logo.png differ diff --git a/packages/apps-config/src/ui/logos/index.ts b/packages/apps-config/src/ui/logos/index.ts index 26df556e18..12f3ff5fd3 100644 --- a/packages/apps-config/src/ui/logos/index.ts +++ b/packages/apps-config/src/ui/logos/index.ts @@ -21,6 +21,7 @@ import chainInterBTC from './chains/interbtc.png'; import chainKarura from './chains/karura.svg'; import chainKintsugi from './chains/kintsugi.png'; import chainKusama from './chains/kusama-128.gif'; +import chainOpal from './chains/opal-logo.png'; import chainComposable from './chains/picasso.svg'; import chainRococo from './chains/rococo.svg'; import chainRococoTick from './chains/rococo-tick.svg'; @@ -97,6 +98,7 @@ import mybank from './nodes/mybank.png'; import nodeNFTMart from './nodes/nftmart.png'; import nodeNodle from './nodes/nodle.svg'; import oakTestnet from './nodes/oak-testnet.png'; +import nodeUniqueWestend from './nodes/opal-logo.png'; import nodeOpportunity from './nodes/opportunity.png'; import nodeOriginTrail from './nodes/origintrail.png'; import nodePangolin from './nodes/pangolin.svg'; @@ -218,6 +220,7 @@ export const chainLogos = Object.entries({ 'NFTMart Staging': nodeNFTMart, 'NFTMart Testnet': nodeNFTMart, 'OAK Testnet': oakTestnet, + 'OPAL by UNIQUE': chainOpal, 'OriginTrail Parachain': nodeOriginTrail, 'OriginTrail Parachain Testnet': nodeOriginTrail, Pangolin: nodePangolin, @@ -350,6 +353,7 @@ export const nodeLogos = Object.entries({ 'node-template': nodeSubstrate, 'Nodle Chain Node': nodeNodle, 'OAK Testnet': oakTestnet, + 'Opal Node': nodeUniqueWestend, 'Opportunity Standalone Testnet': nodeOpportunity, 'OriginTrail Parachain': nodeOriginTrail, 'OriginTrail Parachain Testnet': nodeOriginTrail, @@ -509,6 +513,7 @@ export const namedLogos: Record = { nftmart: nodeNFTMart, nodle: nodeNodle, 'oak-testnet': oakTestnet, + opal: nodeUniqueWestend, opportunity: nodeOpportunity, 'origintrail-parachain-testnet': nodeOriginTrail, pangolin: nodePangolin, diff --git a/packages/apps-config/src/ui/logos/nodes/opal-logo.png b/packages/apps-config/src/ui/logos/nodes/opal-logo.png new file mode 100644 index 0000000000..8fd3530719 Binary files /dev/null and b/packages/apps-config/src/ui/logos/nodes/opal-logo.png differ