From 0e975e80ef1e4f8490cd84942fa557599cd45be0 Mon Sep 17 00:00:00 2001 From: Lay Hunt Date: Fri, 15 Jan 2021 21:47:20 +0800 Subject: [PATCH] add Uniarts Chain types (#4404) * add Uniarts Chain support * update uniarts logo * Updates based on Reviewer's suggestions * fix lint --- packages/apps-config/src/api/spec/index.ts | 4 +- packages/apps-config/src/api/spec/uniarts.ts | 203 ++++++++++++++++++ packages/apps-config/src/endpoints/testing.ts | 7 + packages/apps-config/src/ui/colors.ts | 4 +- packages/apps-config/src/ui/logos/index.ts | 8 +- .../src/ui/logos/nodes/uniarts.png | Bin 0 -> 6442 bytes 6 files changed, 222 insertions(+), 4 deletions(-) create mode 100644 packages/apps-config/src/api/spec/uniarts.ts create mode 100644 packages/apps-config/src/ui/logos/nodes/uniarts.png diff --git a/packages/apps-config/src/api/spec/index.ts b/packages/apps-config/src/api/spec/index.ts index 44b40db143..e1c957718d 100644 --- a/packages/apps-config/src/api/spec/index.ts +++ b/packages/apps-config/src/api/spec/index.ts @@ -27,6 +27,7 @@ import robonomics from './robonomics'; import stablePoc from './stable-poc'; import stafi from './stafi'; import subsocial from './subsocial'; +import uniarts from './uniarts'; import zero from './zero'; // mapping from specName in state.getRuntimeVersion @@ -59,5 +60,6 @@ export default { stable_poc: stablePoc, stafi, subsocial, - subzero: zero + subzero: zero, + uniarts: uniarts }; diff --git a/packages/apps-config/src/api/spec/uniarts.ts b/packages/apps-config/src/api/spec/uniarts.ts new file mode 100644 index 0000000000..4624a85cae --- /dev/null +++ b/packages/apps-config/src/api/spec/uniarts.ts @@ -0,0 +1,203 @@ +// Copyright 2017-2021 @polkadot/apps-config authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// structs need to be in order +/* eslint-disable sort-keys */ +/* eslint-disable camelcase */ + +export default { + Keys: 'SessionKeys2', + Address: 'AccountId', + LookupSource: 'AccountId', + WorkId: 'u32', + Id: 'u32', + Name: 'Vec', + Value: 'Vec', + ReasonIndex: 'u32', + LottoIndex: 'u32', + LotteryKind: { + _enum: { + Routine: 'Null', + TreasuryFunded: 'ReasonIndex' + } + }, + LottoResult: { + _enum: { + Routine: '(AccountId, Balance)', + TreasuryFunded: 'Balance' + } + }, + Lottery: { + round: 'LottoIndex', + kind: 'LotteryKind', + jackpot: 'Balance', + next_ticket_id: 'u32', + players: 'BTreeMap', + tickets: 'BTreeMap', + result: 'Option' + }, + NameData: { + value: 'Value', + owner: 'AccountId', + expiration: 'Option' + }, + Token: { + hash: 'H256', + symbol: 'Vec', + total_supply: 'Balance' + }, + OrderType: { + _enum: ['Buy', 'Sell'] + }, + OrderStatus: { + _enum: ['Created', 'PartialFilled', 'Filled', 'Canceled'] + }, + TradePair: { + hash: 'H256', + base: 'H256', + quote: 'H256', + buy_one_price: 'Option', + sell_one_price: 'Option', + latest_matched_price: 'Option', + one_day_trade_volume: 'Option', + one_day_highest_price: 'Option', + one_day_lowest_price: 'Option' + }, + Price: 'u128', + LimitOrder: { + hash: 'H256', + base: 'H256', + quote: 'H256', + owner: 'AccountId', + price: 'Price', + sell_amount: 'Balance', + buy_amount: 'Balance', + remained_sell_amount: 'Balance', + remained_buy_amount: 'Balance', + otype: 'OrderType', + status: 'OrderStatus' + }, + Trade: { + hash: 'H256', + base: 'H256', + quote: 'H256', + buyer: 'AccountId', + seller: 'AccountId', + maker: 'AccountId', + taker: 'AccountId', + otype: 'OrderType', + price: 'Price', + base_amount: 'Balance', + quote_amount: 'Balance' + }, + OrderLinkedItem: { + prev: 'Option', + next: 'Option', + price: 'Option', + orders: 'Vec' + }, + CollectionMode: { + _enum: { + Invalid: null, + NFT: 'u32', + Fungible: 'u32', + ReFungible: '(u32, u32)' + } + }, + NftItemType: { + Collection: 'u64', + Owner: 'AccountId', + Data: 'Vec', + item_hash: 'H160' + }, + FungibleItemType: { + Collection: 'u64', + Owner: 'AccountId', + value: 'u128' + }, + ApprovePermissions: { + approved: 'AccountId', + amount: 'u64' + }, + AccessMode: { + _enum: ['Normal', 'WhiteList'] + }, + SaleOrder: { + collection_id: 'u64', + item_id: 'u64', + value: 'u64', + owner: 'AccountId', + price: 'u64' + }, + SaleOrderHistory: { + collection_id: 'u64', + item_id: 'u64', + value: 'u64', + seller: 'AccountId', + buyer: 'AccountId', + price: 'u64', + buy_time: 'BlockNumber' + }, + SignatureAuthentication: { + collection: 'u64', + item: 'u64', + names: 'Name', + names_owner: 'AccountId', + sign_time: 'BlockNumber', + memo: 'Vec', + expiration: 'Option' + }, + Ownership: { + owner: 'AccountId', + fraction: 'u128' + }, + ReFungibleItemType: { + Collection: 'u64', + Owner: 'Vec', + Data: 'Vec' + }, + CollectionType: { + Owner: 'AccountId', + Mode: 'CollectionMode', + Access: 'u8', + DecimalPoints: 'u32', + Name: 'Vec', + Description: 'Vec', + TokenPrefix: 'Vec', + CustomDataSize: 'u32', + OffchainSchema: 'Vec', + Sponsor: 'AccountId', + UnconfirmedSponsor: 'AccountId' + }, + Auction: { + id: 'u64', + collection_id: 'u64', + item_id: 'u64', + value: 'u64', + owner: 'AccountId', + start_price: 'u64', + increment: 'u64', + current_price: 'u64', + start_time: 'BlockNumber', + end_time: 'BlockNumber' + }, + BidHistory: { + auction_id: 'u64', + bidder: 'AccountId', + bid_price: 'u64', + bid_time: 'BlockNumber' + }, + Pool: { + id: 'Id', + account: 'AccountId', + acc_rewards_per_share: 'Balance', + last_reward_block: 'BlockNumber', + asset_id: 'Id', + total_balance: 'Balance' + }, + Staker: { + amount: 'Balance', + reward: 'Balance', + debt: 'Balance' + } +}; diff --git a/packages/apps-config/src/endpoints/testing.ts b/packages/apps-config/src/endpoints/testing.ts index acfdcc5def..75f3c79ab1 100644 --- a/packages/apps-config/src/endpoints/testing.ts +++ b/packages/apps-config/src/endpoints/testing.ts @@ -203,6 +203,13 @@ export function createTesting (t: TFunction): LinkOption[] { providers: { ZERO: 'wss://alphaville-0.zero.io' } + }, + { + info: 'uniarts', + text: t('rpc.uniarts', 'Uniarts', { ns: 'apps-config' }), + providers: { + Uniarts: 'wss://testnet.uniarts.me' + } } ]); } diff --git a/packages/apps-config/src/ui/colors.ts b/packages/apps-config/src/ui/colors.ts index 4c5a34decd..6e010fe991 100644 --- a/packages/apps-config/src/ui/colors.ts +++ b/packages/apps-config/src/ui/colors.ts @@ -31,6 +31,7 @@ const chainWestend = '#da68a7'; const chainGalois = '#000000'; const chainZero = '#000000'; const chainJupiter = '#7143ff'; +const chainUniarts = '#b39ef7'; // based on node name // alphabetical @@ -84,7 +85,8 @@ export const chainColors: Record = [ ['Trick', chainRoccoTrick], ['Westend', chainWestend], ['Galois', chainGalois], - ['ZΞRO Alphaville', chainZero] + ['ZΞRO Alphaville', chainZero], + ['Uniarts', chainUniarts] ].reduce((colors, [chain, color]): Record => ({ ...colors, [chain.toLowerCase()]: color diff --git a/packages/apps-config/src/ui/logos/index.ts b/packages/apps-config/src/ui/logos/index.ts index 60ef12a081..1e21d95903 100644 --- a/packages/apps-config/src/ui/logos/index.ts +++ b/packages/apps-config/src/ui/logos/index.ts @@ -50,6 +50,7 @@ import nodeSora from './nodes/sora-substrate.svg'; import nodeStafi from './nodes/stafi.png'; import nodeSubsocial from './nodes/subsocial.svg'; import nodeSubstrate from './nodes/substrate-hexagon.svg'; +import nodeUniarts from './nodes/uniarts.png'; import nodeZero from './nodes/zero.svg'; // last-resort fallback, just something empty import emptyLogo from './empty.svg'; @@ -70,7 +71,8 @@ export const chainLogos: Record = [ ['Rococo', chainRococo], ['Tick', chainRococoTick], ['Track', chainRococoTrack], - ['Trick', chainRococoTrick] + ['Trick', chainRococoTrick], + ['Uniarts', nodeUniarts] ].reduce((logos, [chain, logo]): Record => ({ ...logos, [(chain as string).toLowerCase()]: logo @@ -118,7 +120,8 @@ export const nodeLogos: Record = [ ['substrate-node', nodeSubstrate], ['Equilibrium Node', nodeEquilibrium], ['Equilibrium', nodeEquilibrium], - ['SUBZΞRO', nodeZero] + ['SUBZΞRO', nodeZero], + ['Uniarts', nodeUniarts] ].reduce((logos, [node, logo]): Record => ({ ...logos, [(node as string).toLowerCase().replace(/-/g, ' ')]: logo @@ -172,6 +175,7 @@ export const namedLogos: Record = { stafi: nodeStafi, subsocial: nodeSubsocial, substrate: nodeSubstrate, + uniarts: nodeUniarts, westend: nodePolkadot, zero: nodeZero }; diff --git a/packages/apps-config/src/ui/logos/nodes/uniarts.png b/packages/apps-config/src/ui/logos/nodes/uniarts.png new file mode 100644 index 0000000000000000000000000000000000000000..6b063a58069fdb47a8e31910286a5914ff2038b4 GIT binary patch literal 6442 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 literal 0 HcmV?d00001