diff --git a/packages/apps-config/src/api/spec/bifrost.ts b/packages/apps-config/src/api/spec/bifrost.ts new file mode 100644 index 0000000000..80417fa330 --- /dev/null +++ b/packages/apps-config/src/api/spec/bifrost.ts @@ -0,0 +1,153 @@ +// Copyright 2017-2020 @polkadot/apps-config authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ +export default { + Token: { symbol: 'Vec', precision: 'u16', totalSupply: 'u128' }, + VersionId: 'u32', + Action: { + account: 'AccountName', + name: 'ActionName', + authorization: 'Vec', + data: 'Vec' + }, + IostAction: { contract: 'Vec', action_name: 'Vec', data: 'Vec' }, + PermissionLevel: { actor: 'AccountName', permission: 'PermissionName' }, + PermissionName: 'u64', + ActionReceipt: { + receiver: 'AccountName', + act_digest: 'Checksum256', + global_sequence: 'u64', + recv_sequence: 'u64', + auth_sequence: 'FlatMap', + code_sequence: 'UnsignedInt', + abi_sequence: 'UnsignedInt' + }, + Checksum256: '([u8;32])', + BlockchainType: { _enum: ['BIFROST', 'EOS', 'IOST'] }, + Precision: 'u32', + BridgeAssetSymbol: { + blockchain: 'BlockchainType', + symbol: 'Vec', + precision: 'Precision' + }, + ProducerSchedule: { version: 'u32', producers: 'Vec' }, + ProducerKey: { producer_name: 'AccountName', block_signing_key: 'PublicKey' }, + AccountName: 'u64', + ActionName: 'u64', + PublicKey: { type_: 'UnsignedInt', data: '[u8;33]' }, + UnsignedInt: 'u32', + Signature: { type_: 'UnsignedInt', data: '[u8;65]' }, + SignedBlockHeader: { block_header: 'BlockHeader', producer_signature: 'Signature' }, + BlockHeader: { + timestamp: 'BlockTimestamp', + producer: 'AccountName', + confirmed: 'u16', + previous: 'Checksum256', + transaction_mroot: 'Checksum256', + action_mroot: 'Checksum256', + schedule_version: 'u32', + new_producers: 'Option', + header_extensions: 'Vec' + }, + BlockTimestamp: '(u32)', + Extension: '(u16, Vec)', + IncrementalMerkle: { _node_count: 'u64', _active_nodes: 'Checksum256Array' }, + Checksum256Array: 'Vec', + FlatMap: { map: 'Vec<(ActionName, u64)>' }, + TxSig: { signature: 'Vec', author: 'AccountId' }, + MultiSig: { signatures: 'Vec', threshold: 'u8' }, + MultiSigTx: { + chain_id: 'Vec', + raw_tx: 'Vec', + multi_sig: 'MultiSig', + action: 'Action', + from: 'AccountId', + token_symbol: 'TokenSymbol' + }, + Processing: { tx_id: 'Vec', multi_sig_tx: 'MultiSigTx' }, + Sent: { tx_id: 'Vec', from: 'AccountId', token_symbol: 'TokenSymbol' }, + Fail: { tx_id: 'Vec', reason: 'Vec', tx: 'MultiSigTx' }, + Failure: { tx_id: 'Vec', reason: 'Vec' }, + TxOut: { + _enum: { + Initial: 'MultiSigTx', + Generated: 'MultiSigTx', + Signed: 'MultiSigTx', + Processing: 'Processing', + Success: 'Vec', + Fail: 'Fail' + } + }, + TxOutV1: { + _enum: { + Initialized: 'MultiSigTx', + Created: 'MultiSigTx', + CompleteSigned: 'MultiSigTx', + Sent: 'Sent', + Succeeded: 'Vec', + Failure: 'Failure' + } + }, + ConvertPrice: 'u128', + RatePerBlock: 'u64', + Fee: 'u64', + TokenPool: 'Balance', + VTokenPool: 'Balance', + InVariantPool: 'Balance', + TokenSymbol: { + _enum: [ + 'aUSD', 'DOT', + 'vDOT', 'KSM', + 'vKSM', 'EOS', + 'vEOS', 'IOST', + 'vIOST' + ] + }, + TrxStatus: { + _enum: [ + 'Initial', + 'Generated', + 'Signed', + 'Processing', + 'Success', + 'Fail' + ] + }, + Cost: 'u128', + Income: 'u128', + Price: 'u64', + AccountAsset: { + balance: 'Balance', + locked: 'Balance', + available: 'Balance', + cost: 'Cost', + income: 'Income' + }, + SpecIndex: 'u32', + RequestIdentifier: 'u64', + DataVersion: 'u64', + ConvertPool: { + token_pool: 'Balance', + vtoken_pool: 'Balance', + current_reward: 'Balance', + pending_reward: 'Balance' + }, + ProducerAuthoritySchedule: { version: 'u32', producers: 'Vec' }, + ProducerAuthority: { producer_name: 'ActionName', authority: 'BlockSigningAuthority' }, + BlockSigningAuthority: '(UnsignedInt, BlockSigningAuthorityV0)', + BlockSigningAuthorityV0: { threshold: 'u32', keys: 'Vec' }, + KeyWeight: { key: 'PublicKey', weight: 'u16' }, + InvariantValue: 'Balance', + PoolWeight: 'Balance', + AssetConfig: { redeem_duration: 'BlockNumber', min_reward_per_block: 'Balance' }, + ProxyValidatorRegister: { + last_block: 'BlockNumber', + deposit: 'Balance', + need: 'Balance', + staking: 'Balance', + reward_per_block: 'Balance', + validator_address: 'Vec' + }, + BlockNumber: 'u32' +}; diff --git a/packages/apps-config/src/api/spec/index.ts b/packages/apps-config/src/api/spec/index.ts index fd5431478c..97d692f62c 100644 --- a/packages/apps-config/src/api/spec/index.ts +++ b/packages/apps-config/src/api/spec/index.ts @@ -1,6 +1,7 @@ // Copyright 2017-2020 @polkadot/apps-config authors & contributors // SPDX-License-Identifier: Apache-2.0 +import bifrost from './bifrost'; import canvas from './canvas'; import centrifugeChain from './centrifuge-chain'; import crab from './crab'; @@ -27,6 +28,7 @@ import subsocial from './subsocial'; export default { Crab: crab, Equilibrium: equilibrium, + bifrost: bifrost, canvas, 'centrifuge-chain': centrifugeChain, crust, diff --git a/packages/apps-config/src/settings/endpoints.ts b/packages/apps-config/src/settings/endpoints.ts index 1da8984e62..ab609f74d2 100644 --- a/packages/apps-config/src/settings/endpoints.ts +++ b/packages/apps-config/src/settings/endpoints.ts @@ -247,6 +247,12 @@ function createTestNetworks (t: TFunction): LinkOption[] { textBy: t('rpc.hosted.by', 'hosted by {{host}}', { ns: 'apps-config', replace: { host: 'Commonwealth Labs' } }), value: 'wss://beresheet1.edgewa.re' }, + { + info: 'bifrost', + text: t('rpc.bifrost', 'Bifrost Asgard', { ns: 'apps-config' }), + textBy: t('rpc.hosted.by', 'hosted by {{host}}', { ns: 'apps-config', replace: { host: 'Bifrost' } }), + value: 'wss://testnet.liebi.com' + }, { info: 'canvas', text: t('rpc.canvas', 'Canvas', { ns: 'apps-config' }), diff --git a/packages/apps-config/src/ui/colors.ts b/packages/apps-config/src/ui/colors.ts index 055ecf05d8..a5418666ef 100644 --- a/packages/apps-config/src/ui/colors.ts +++ b/packages/apps-config/src/ui/colors.ts @@ -25,6 +25,7 @@ const chainWestend = '#da68a7'; // based on node name // alphabetical +const nodeBifrost = '#002cc3'; const nodeCanvas = '#c77cff'; const nodeCentrifuge = '#fcc367'; const nodeEdgeware = '#0a95df'; @@ -65,6 +66,7 @@ const chainColors: Record = [ // overrides based on the actual software node type (all '-' converted to ' ') // alphabetical const nodeColors: Record = [ + ['Bifrost Node', nodeBifrost], ['Canvas Node', nodeCanvas], ['centrifuge chain', nodeCentrifuge], ['Centrifuge Chain Node', nodeCentrifuge], diff --git a/packages/apps-config/src/ui/logos/index.ts b/packages/apps-config/src/ui/logos/index.ts index 5333ed61ab..d0a6e05d65 100644 --- a/packages/apps-config/src/ui/logos/index.ts +++ b/packages/apps-config/src/ui/logos/index.ts @@ -15,6 +15,7 @@ import chainRococoTrick from './chains/rococo-trick.svg'; // defaults for the node type, assuming we don't have a specific chain, but rather match on the implementation // alphabetical import nodeAcala from './nodes/acala-circle.svg'; +import nodeBifrost from './nodes/bifrost.svg'; import nodeCanvas from './nodes/canvas-2.png'; import nodeCentrifuge from './nodes/centrifuge.png'; import nodeCrab from './nodes/crab.svg'; @@ -78,6 +79,8 @@ const chainLogos: Record = [ // alphabetical const nodeLogos: Record = [ ['airalab-robonomics', nodeRobonomics], + ['Bifrost Node', nodeBifrost], + ['Bifrost', nodeBifrost], ['Canvas Node', nodeCanvas], ['centrifuge chain', nodeCentrifuge], ['Centrifuge Chain Node', nodeCentrifuge], @@ -116,6 +119,7 @@ const nodeLogos: Record = [ const namedLogos: Record = { acala: nodeAcala, alexander: nodePolkadot, + bifrost: nodeBifrost, canvas: nodeCanvas, centrifuge: nodeCentrifuge, crab: nodeCrab, diff --git a/packages/apps-config/src/ui/logos/nodes/bifrost.svg b/packages/apps-config/src/ui/logos/nodes/bifrost.svg new file mode 100644 index 0000000000..e03089d36b --- /dev/null +++ b/packages/apps-config/src/ui/logos/nodes/bifrost.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/packages/apps/public/locales/en/apps-config.json b/packages/apps/public/locales/en/apps-config.json index 44009e0fb3..57a7514845 100644 --- a/packages/apps/public/locales/en/apps-config.json +++ b/packages/apps/public/locales/en/apps-config.json @@ -3,6 +3,7 @@ "rpc.amber": "Amber", "rpc.ava.summary": "user-run public nodes; see https://status.cloud.ava.do/", "rpc.beresheet": "Beresheet", + "rpc.bifrost": "Bifrost", "rpc.canvas": "Canvas", "rpc.centrifuge": "Centrifuge", "rpc.crab": "Darwinia Crab", @@ -48,4 +49,4 @@ "rpc.turbulence": "Turbulence", "rpc.westend": "Westend", "ss58.default": "Default for the connected node" -} \ No newline at end of file +} diff --git a/packages/apps/public/locales/es/translation.json b/packages/apps/public/locales/es/translation.json index ea82072582..bf9cc0869f 100644 --- a/packages/apps/public/locales/es/translation.json +++ b/packages/apps/public/locales/es/translation.json @@ -955,6 +955,7 @@ "role": "rol", "rotation": "rotación", "rpc.beresheet": "Beresheet (Testnet Edgeware, ofrecido por Commonwealth Labs)", + "rpc.bifrost": "Bifrost", "rpc.custom": "Entorno personalizado", "rpc.edgeware": "Edgeware (red principal Edgeware, ofrecido por Commonwealth Labs)", "rpc.flamingfir": "Flaming Fir (Testnet Substrate, ofrecido por Parity)", @@ -1115,4 +1116,4 @@ "{{threshold}}, not passing": "{{threshold}}, no pasará", "{{threshold}}, passing": "{{threshold}}, de aprobación", "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "{{value}}x saldo de votos, bloqueado por {{lock}}x sentencia ({{period}} días." -} \ No newline at end of file +} diff --git a/packages/apps/public/locales/fr/translation.json b/packages/apps/public/locales/fr/translation.json index 35bd1b5991..1eb02f2200 100644 --- a/packages/apps/public/locales/fr/translation.json +++ b/packages/apps/public/locales/fr/translation.json @@ -1290,6 +1290,7 @@ "rpc.amber": "Amber", "rpc.ava.summary": "Noeud géré par la communauté; voir https://status.cloud.ava.do/", "rpc.beresheet": "Beresheet (Testnet Edgeware, hébergé par Commonwealth Labs)", + "rpc.bifrost": "Bifrost", "rpc.canvas": "Canvas", "rpc.centrifuge": "Centrifuge", "rpc.crab": "Darwinia Crab", @@ -1519,4 +1520,4 @@ "{{threshold}}, not passing": "{{seuil} }, ne dépassant pas", "{{threshold}}, passing": "{{seuil}}, passant", "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "{{value}} x solde de vote, verrouillé pendant {{lock}} x décret ({{period}} jours)" -} \ No newline at end of file +} diff --git a/packages/apps/public/locales/id/translation.json b/packages/apps/public/locales/id/translation.json index ed3524457f..9fa3b9c42c 100644 --- a/packages/apps/public/locales/id/translation.json +++ b/packages/apps/public/locales/id/translation.json @@ -1248,6 +1248,7 @@ "role": "wewenang", "rotation": "rotasi", "rpc.beresheet": "Beresheet (Edgeware Testnet, hosted by Commonwealth Labs)", + "rpc.bifrost": "Bifrost", "rpc.custom": "Kustom environment", "rpc.edgeware": "Edgeware (Edgeware Mainnet, dihosting oleh Commonwealth Labs)", "rpc.flamingfir": "Flaming Fir (Substrate Testnet, dihosting oleh Parity)", @@ -1452,4 +1453,4 @@ "{{threshold}}, not passing": "{{threshold}}, tidak melewati", "{{threshold}}, passing": "{{threshold}}, melewati", "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "{{value}}x memilih saldo, terkunci untuk {{lock}}x berlaku ({{period}} hari)" -} \ No newline at end of file +} diff --git a/packages/apps/public/locales/it/translation.json b/packages/apps/public/locales/it/translation.json index 5854363d98..3e83ee9784 100644 --- a/packages/apps/public/locales/it/translation.json +++ b/packages/apps/public/locales/it/translation.json @@ -1230,6 +1230,7 @@ "role": "ruolo", "rotation": "rotazione", "rpc.beresheet": "Beresheet (Edgeware Testnet, ospitato da Commonwealth Labs)", + "rpc.bifrost": "Bifrost", "rpc.custom": "Ambiente personalizzato", "rpc.edgeware": "Edgeware (Edgeware Mainnet, ospitato da Commonwealth Labs)", "rpc.flamingfir": "Flaming Fir (Substrate Testnet, ospitato da Parity)", @@ -1431,4 +1432,4 @@ "{{threshold}}, not passing": "{{threshold}}, respinta", "{{threshold}}, passing": "{{threshold}}, approvato", "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "{{value}} x moltiplicatore di voto, fondi bloccati per {{lock}}x = {{period}} giorni" -} \ No newline at end of file +} diff --git a/packages/apps/public/locales/ja/translation.json b/packages/apps/public/locales/ja/translation.json index 54d1ceef3f..25461eac36 100644 --- a/packages/apps/public/locales/ja/translation.json +++ b/packages/apps/public/locales/ja/translation.json @@ -494,6 +494,7 @@ "riot": "riot", "riot name": "riot名", "rpc.beresheet": "Beresheet (Edgeware Testnet, hosted by Commonwealth Labs)", + "rpc.bifrost": "Bifrost", "rpc.custom": "カスタムエンドポイント", "rpc.edgeware": "Edgeware (Edgeware Mainnet, hosted by Commonwealth Labs)", "rpc.flamingfir": "Flaming Fir (Substrate Testnet, hosted by Parity)", @@ -564,4 +565,4 @@ "{{relayDispatchQueueSize}} dispatch messages pending": "{{relayDispatchQueueSize}} ディスパッチメッセージペンディング", "{{seconds}} s": "{{seconds}} 秒", "{{step}}. Sign with your ETH address": "{{step}}. ETHアドレスでサインしてください" -} \ No newline at end of file +} diff --git a/packages/apps/public/locales/ko/translation.json b/packages/apps/public/locales/ko/translation.json index 635b60490c..62596eef62 100644 --- a/packages/apps/public/locales/ko/translation.json +++ b/packages/apps/public/locales/ko/translation.json @@ -1254,6 +1254,7 @@ "rpc.amber": "앰버", "rpc.ava.summary": "사용자가-운영하는 공공의 노드; 참조 https://status.cloud.ava.do/", "rpc.beresheet": "베레시트(Edgware 테스트넷, Commonwealth Labs가 운영함)", + "rpc.bifrost": "Bifrost", "rpc.canvas": "캔버스", "rpc.centrifuge": "센츄러퓨지", "rpc.crab": "다위니아 크랩", @@ -1479,4 +1480,4 @@ "{{threshold}}, not passing": "{{threshold}}, 통과되지 않았습니다", "{{threshold}}, passing": "{{threshold}}, 통과되었습니다", "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "{{value}}x 투표 발란스, 잠금 {{lock}}x제정 ({{period}} days)" -} \ No newline at end of file +} diff --git a/packages/apps/public/locales/pt/translation.json b/packages/apps/public/locales/pt/translation.json index 037866355b..f3448227e4 100644 --- a/packages/apps/public/locales/pt/translation.json +++ b/packages/apps/public/locales/pt/translation.json @@ -960,6 +960,7 @@ "role": "Função", "rotation": "rotação", "rpc.beresheet": "Beresheet (Edgeware Testnet, hospedado pelo Commonwealth Labs)", + "rpc.bifrost": "Bifrost", "rpc.custom": "Ambiente personalizado", "rpc.edgeware": "Edgeware (Edgeware Mainnet, hospedado pelo Commonwealth Labs)", "rpc.flamingfir": "Fir flamejante (Substrate Testnet, hospedado pela Parity)", @@ -1122,4 +1123,4 @@ "{{threshold}}, not passing": "{{threshold}}, não passando", "{{threshold}}, passing": "{{threshold}}, passando", "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "{{value}} x saldo de votos, bloqueado por {{lock}} x promulgação ({{period}} dias)" -} \ No newline at end of file +} diff --git a/packages/apps/public/locales/ru/translation.json b/packages/apps/public/locales/ru/translation.json index c6bc9c42df..85ca343751 100644 --- a/packages/apps/public/locales/ru/translation.json +++ b/packages/apps/public/locales/ru/translation.json @@ -973,6 +973,7 @@ "role": "роль", "rotation": "ротация", "rpc.beresheet": "Beresheet (Edgeware Testnet, hosted by Commonwealth Labs)", + "rpc.bifrost": "Bifrost", "rpc.custom": "Пользовательская среда", "rpc.edgeware": "Edgeware (Edgeware Mainnet, hosted by Commonwealth Labs)", "rpc.flamingfir": "Flaming Fir (Substrate Testnet, hosted by Parity)", @@ -1133,4 +1134,4 @@ "{{threshold}}, not passing": "{{threshold}}, не проходит", "{{threshold}}, passing": "{{threshold}}, проходит", "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "{{value}}x баланс голосования, заблокировано на {{lock}}x ({{period}} дней)" -} \ No newline at end of file +}