From 6a417b437c0e3853b408a53dd4f3027a655ebe42 Mon Sep 17 00:00:00 2001 From: 1devNdogs Date: Tue, 21 Sep 2021 01:16:56 -0300 Subject: [PATCH] Add Spartan network (#6105) * add basic config, logos, endpoints, config. * update spec name, test color with gradient * Fix conflict - alphabetical order * updated custom types * fix local rpc node to wss://dev-rpc.subspace.network * Fix typo * Fix PoCEquivocationOffence tytpe Fix PoCEquivocationOffence offender as FarmerId * fix: sorted Spartan Testnet app-config locales, testing endpoints, chainLogo * update subspace spec definitions Co-authored-by: Nazar Mokrynskyi --- packages/apps-config/src/api/spec/index.ts | 2 + packages/apps-config/src/api/spec/subspace.ts | 114 ++++++++++++++++++ packages/apps-config/src/endpoints/testing.ts | 7 ++ packages/apps-config/src/ui/colors.ts | 3 + packages/apps-config/src/ui/logos/index.ts | 4 + .../src/ui/logos/nodes/subspace.png | Bin 0 -> 1518 bytes .../apps/public/locales/en/apps-config.json | 1 + 7 files changed, 131 insertions(+) create mode 100644 packages/apps-config/src/api/spec/subspace.ts create mode 100644 packages/apps-config/src/ui/logos/nodes/subspace.png diff --git a/packages/apps-config/src/api/spec/index.ts b/packages/apps-config/src/api/spec/index.ts index 6e8a71376f..a4edd74f24 100644 --- a/packages/apps-config/src/api/spec/index.ts +++ b/packages/apps-config/src/api/spec/index.ts @@ -87,6 +87,7 @@ import stafi from './stafi'; import subdao from './subdao'; import subgame from './subgame'; import subsocial from './subsocial'; +import subspace from './subspace'; import ternoa from './ternoa'; import trustbase from './trustbase'; import uart from './uart'; @@ -186,6 +187,7 @@ const spec: Record = { nftmart, 'node-moonbeam': moonbeam, 'node-polkadex': polkadex, + 'node-template-spartan': subspace, 'nodle-chain': nodle, 'oak-testnet': oakTestnet, opportunity, diff --git a/packages/apps-config/src/api/spec/subspace.ts b/packages/apps-config/src/api/spec/subspace.ts new file mode 100644 index 0000000000..d7cb89001b --- /dev/null +++ b/packages/apps-config/src/api/spec/subspace.ts @@ -0,0 +1,114 @@ +// 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: { + PoCKind: '[u8; 16]', + RpcSolution: { + public_key: '[u8; 32]', + nonce: 'u64', + encoding: 'Vec', + signature: 'Vec', + tag: '[u8; 8]' + }, + ProposedProofOfSpaceResult: { + slot_number: 'Slot', + solution: 'Option', + secret_key: 'Vec' + }, + RpcNewSlotInfo: { + slot_number: 'Slot', + challenge: '[u8; 8]', + salt: '[u8; 8]', + next_salt: 'Option<[u8; 8]>', + solution_range: 'u64' + }, + PoCRandomness: '[u8; 32]', + FarmerSignature: 'Signature', + FarmerId: 'AccountId', + PoCBlockWeight: 'u32', + PoCNextEpochDescriptor: { + randomness: 'PoCRandomness' + }, + PoCNextConfigDescriptorV1: { + c: '(u64, u64)' + }, + PoCNextConfigDescriptor: { + _enum: { + V0: 'Null', + V1: 'PoCNextConfigDescriptorV1' + } + }, + SolutionRangeDescriptor: { + solution_range: 'u64' + }, + SaltDescriptor: { + salt: 'u64' + }, + NextSolutionRangeDescriptor: { + solution_range: 'u64' + }, + NextSaltDescriptor: { + salt: 'u64' + }, + PoCEpochConfiguration: { + c: '(u64, u64)' + }, + ConsensusLog: { + _enum: { + Phantom: 'Null', + NextEpochData: 'PoCNextEpochDescriptor', + NextConfigData: 'PoCNextConfigDescriptor', + SolutionRangeData: 'SolutionRangeDescriptor', + SaltData: 'SaltDescriptor', + NextSolutionRangeData: 'NextSolutionRangeDescriptor', + NextSaltData: 'NextSaltDescriptor' + } + }, + Solution: { + public_key: 'FarmerId', + nonce: 'u64', + encoding: 'Vec', + signature: 'Vec', + tag: '[u8; 8]' + }, + PreDigest: { + slot: 'Slot', + solution: 'Solution' + }, + EquivocationProof: { + offender: 'FarmerId', + slot: 'Slot', + first_header: 'Header', + second_header: 'Header' + }, + PoCEquivocationOffence: { + slot: 'Slot', + offender: 'FarmerId' + }, + PoCGenesisConfiguration: { + slot_duration: 'u64', + epoch_length: 'u64', + c: '(u64, u64)', + randomness: 'PoCRandomness' + }, + Kind: 'PoCKind', + Randomness: 'PoCRandomness', + NextEpochDescriptor: 'PoCNextEpochDescriptor', + NextConfigDescriptorV1: 'PoCNextConfigDescriptorV1', + NextConfigDescriptor: 'PoCNextConfigDescriptor' + } + } + ] +}; + +export default definitions; diff --git a/packages/apps-config/src/endpoints/testing.ts b/packages/apps-config/src/endpoints/testing.ts index 63552de205..f2d9292efe 100644 --- a/packages/apps-config/src/endpoints/testing.ts +++ b/packages/apps-config/src/endpoints/testing.ts @@ -397,6 +397,13 @@ export function createTesting (t: TFunction, firstOnly: boolean, withSort: boole Soramitsu: 'wss://ws.stage.sora2.soramitsu.co.jp' } }, + { + info: 'spartan-testnet', + text: t('rpc.test.subspace', 'Spartan testnet', { ns: 'apps-config' }), + providers: { + 'Subspace Network': 'wss://dev-rpc.subspace.network' + } + }, { info: 'subgame', text: t('rpc.test.subgame', 'SubGame Staging', { ns: 'apps-config' }), diff --git a/packages/apps-config/src/ui/colors.ts b/packages/apps-config/src/ui/colors.ts index 38b71c95e6..67cc0424ab 100644 --- a/packages/apps-config/src/ui/colors.ts +++ b/packages/apps-config/src/ui/colors.ts @@ -145,6 +145,7 @@ const nodeSora = '#2D2926'; const nodeStafi = '#00F3AB'; const nodeSubDAO = 'linear-gradient(50deg, #F20092 0%, #FF4D5D 100%)'; const nodeSubsocial = '#b9018c'; +const nodeSubspace = 'linear-gradient(to left, rgba(32,90,172,1) 0%, rgba(26,72,138,1) 50%, rgba(13,36,69,1) 100%)'; const nodeTernoa = '#d622ff'; const nodeUniarts = chainUniarts; const nodeUnique = chainUnique; @@ -274,6 +275,7 @@ export const chainColors: Record = Object.entries({ sherpax: chainChainx, Shiden: chainShiden, Spanner: chainSpanner, + 'Spartan testnet': nodeSubspace, Statemine: specStatemine, 'Statemine Test': specStatemine, Statemint: specStatemint, @@ -360,6 +362,7 @@ export const nodeColors = Object.entries({ 'Riochain Staging': nodeRiochain, 'Shiden Collator': chainShiden, SORA: nodeSora, + 'Spartan testnet': nodeSubspace, 'Stafi node': nodeStafi, 'Statemine Collator': specStatemint, 'Statemint Collator': specStatemint, diff --git a/packages/apps-config/src/ui/logos/index.ts b/packages/apps-config/src/ui/logos/index.ts index 75c793b511..5a5e4cbe1a 100644 --- a/packages/apps-config/src/ui/logos/index.ts +++ b/packages/apps-config/src/ui/logos/index.ts @@ -124,6 +124,7 @@ import nodeStatemine from './nodes/statemine.svg'; import nodeSubDAO from './nodes/subdao.png'; import nodeSubGame from './nodes/subgame.svg'; import nodeSubsocial from './nodes/subsocial.svg'; +import nodeSubspace from './nodes/subspace.png'; import nodeSubstrate from './nodes/substrate-hexagon.svg'; import nodeTernoa from './nodes/ternoa.svg'; import nodeTrustBase from './nodes/trustbase.png'; @@ -233,6 +234,7 @@ export const chainLogos = Object.entries({ Shiden: chainShiden, SingLavender: nodeSingLavender, Spanner: chainSpanner, + 'Spartan Testnet': nodeSubspace, Statemine: nodeStatemine, 'Statemine Test': nodeStatemine, Statemint: nodeStatemine, @@ -373,6 +375,7 @@ export const nodeLogos = Object.entries({ 'Shiden Collator': chainShiden, 'SingLavender Parachain Collator': nodeSingLavender, SORA: nodeSora, + 'Spartan Testnet': nodeSubspace, Stafi: nodeStafi, 'Stafi Node': nodeStafi, 'Statemine Collator': nodeStatemine, @@ -573,6 +576,7 @@ export const namedLogos: Record = { snakenet: chainSnakenet, 'sora-substrate': nodeSora, spanner: chainSpanner, + 'spartan-testnet': nodeSubspace, stafi: nodeStafi, statemine: nodeStatemine, statemint: nodeStatemine, diff --git a/packages/apps-config/src/ui/logos/nodes/subspace.png b/packages/apps-config/src/ui/logos/nodes/subspace.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1be15bd6875e2b6ca5ad15d1936a8eeec733ac GIT binary patch literal 1518 zcmVCTzgT>$S0*8>VFfW(!$&DYiYO^~Y4K{g2mX!n zfQ27e0LT!9I*(gU;gYw;N8tkCKfoe1-!GF;7Y?L;Rt`Tp%TQNXjZ|a2Q-y(p&*HN& z-2J4?HFj6q3knLIIAV)tt^gU_rM6^@%VP6g87lFYB1!nJ!RzEf_>li_DI6Ge87!%4 zBS66=fYi6cOL*7|>$k8(^#U~Yz(kH7jAV@~RAG0FKx(C|s!G`wc4ihkNmBO=#=b{_ z#wd(1eu)vrLNQjs_Gcc@M%-pbHftW=397OasCl~d68-yzy{O7RLGKX6x3}qlI%uHE z7i#f=ZC3zt*;CvMRfW(qxSn)}Ldv)De}uF#1-c<@4~%XNX1B1A`51 z4&I7_q>tI0G@0|eU=x>6Vl*$saa$?+L+FY{|1o)Ce3)ZO&iPk~up2vP)%rzUT$&8y z=4UJ=4(H37@C)o4_ms?h=&`eH(F`Rq-&?{a+a|uWpfV!mibWo0AYb-}QVTYi?cCF*cRG-b|umVK8mdYKA#(k$;`##;O1a|Uwl4v8%X7isR5lbn9Q!iIA14(wire)WNo%VTOxSNgq--Fe@Z zu%l$doejF3m(3G4uxZGa#yo+|YF@Fd4PekuIoLb4PX(DAY>_cOV_oMAO$lzFF>?9s z+pg1hmGqq7*2cq}jW4m#Zs-dFT)k)sZfgfnSC0ztwTN@Unz4Q=1z1}>KmDvY(d zysOZuTnZmo=rlgjsKoRWKCb-r)ip6pKjF9C52D5{d18At8yz5?YWWrrK5VC7HF!(M z!FE$0tZ)P59q-)I=5(V+=B^!a&uHEihO7A|sNofEYI>{3XqG+3wj&K~&eA!1>xc#g zOO&o{)?9pE$orT$0AD!>`%U z8L6jQ;3+(HfdeQwgn_;6yFKlieu-GKc)=U#O<%vh>N~24U)W!ojQ#oNe~`cb0x|Nv Uthpch$N&HU07*qoM6N<$f-G(DdH?_b literal 0 HcmV?d00001 diff --git a/packages/apps/public/locales/en/apps-config.json b/packages/apps/public/locales/en/apps-config.json index 5098b38d7c..7179745e1b 100644 --- a/packages/apps/public/locales/en/apps-config.json +++ b/packages/apps/public/locales/en/apps-config.json @@ -170,6 +170,7 @@ "rpc.test.snowbridge": "Snowbridge", "rpc.test.sora-substrate-staging": "SORA-staging", "rpc.test.subgame": "SubGame Staging", + "rpc.test.subspace": "Spartan testnet", "rpc.test.ternoa-chaos": "Ternoa Chaos", "rpc.test.turbulence": "Turbulence", "rpc.test.uniarts": "UniArts",