From 4ab078117502666dbf4c83c2e87da8b58cdcc667 Mon Sep 17 00:00:00 2001 From: Antoine Estienne Date: Mon, 7 Dec 2020 11:00:28 +0100 Subject: [PATCH] Move to types bundle (#4011) * support ethereum addresses * corrections * add standalone url and ethereum identicons * add moonbeam config * added changes from the old pr * add new config * added dummy rpc method declarations for eth methods * wip fix address add modal * support ethereum addresses * corrections * add standalone url and ethereum identicons * add moonbeam config * added changes from the old pr * add new config * added dummy rpc method declarations for eth methods * wip fix address add modal * wip repair app with new keyring * use isDevelopement false for ethereum * lint * more formatng * eth addresses by default for account creation * added many more types to support moonbeam * added color * add h160 to types and components * add rpc methods to app-config * lint * polish * Update packages/react-params/src/initValue.ts Co-authored-by: Jaco Greeff * Apply suggestions from code review Co-authored-by: Jaco Greeff * mobe to typesBundle * added right type for types declaration * lint * corrected type and removed moobeam specs Co-authored-by: Jaco Greeff --- .../apps-config/src/api/bundle/spec/index.ts | 5 + .../src/api/bundle/spec/moonbeam.ts | 85 ++++++++++++ packages/apps-config/src/api/rpc/moonbeam.ts | 128 ++++++++++++++---- packages/apps-config/src/api/spec/index.ts | 4 - packages/apps-config/src/api/spec/moonbeam.ts | 74 ---------- 5 files changed, 194 insertions(+), 102 deletions(-) create mode 100644 packages/apps-config/src/api/bundle/spec/moonbeam.ts delete mode 100644 packages/apps-config/src/api/spec/moonbeam.ts diff --git a/packages/apps-config/src/api/bundle/spec/index.ts b/packages/apps-config/src/api/bundle/spec/index.ts index eb0f79ab8c62..9e94342a1c83 100644 --- a/packages/apps-config/src/api/bundle/spec/index.ts +++ b/packages/apps-config/src/api/bundle/spec/index.ts @@ -3,11 +3,16 @@ import acala from './acala'; import laminar from './laminar'; +import moonbeam from './moonbeam'; import soraSubstrate from './soraSubstrate'; export default { acala, laminar, mandala: acala, + 'moonbase-alphanet': moonbeam, + moonbeam, + 'moonbeam-standalone': moonbeam, + 'node-moonbeam': moonbeam, 'sora-substrate': soraSubstrate }; diff --git a/packages/apps-config/src/api/bundle/spec/moonbeam.ts b/packages/apps-config/src/api/bundle/spec/moonbeam.ts new file mode 100644 index 000000000000..692b9410c998 --- /dev/null +++ b/packages/apps-config/src/api/bundle/spec/moonbeam.ts @@ -0,0 +1,85 @@ +// Copyright 2017-2020 @polkadot/apps-config authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { OverrideBundleDefinition } from "@polkadot/types/types"; + +// structs need to be in order +/* eslint-disable sort-keys */ + +export default { + types: [ + { + minmax: [0, undefined], + types: { + AccountId: "EthereumAccountId", + Address: "AccountId", + Balance: "u128", + RefCount: "u8", + LookupSource: "AccountId", + Account: { + nonce: "U256", + balance: "u128" + }, + TransactionCondition: { + _enum: { + block: "u64", + time: "u64" + } + }, + Transaction: { + block_hash: "Option", + block_number: "Option", + chain_id: "Option", + condition: "Option", + creates: "Option", + from: "H160", + gas: "U256", + gas_price: "U256", + hash: "H256", + input: "Bytes", + nonce: "U256", + public_key: "Option", + r: "U256", + raw: "Bytes", + standard_v: "U256", + to: "Option", + transaction_index: "Option", + v: "U256", + value: "U256" + }, + TransactionStatus: { + transaction_hash: "H256", + transaction_index: "u32", + from: "H160", + to: "Option", + contract_address: "Option", + logs: "Vec", + logs_bloom: "Bloom" + }, + Receipt: { + transaction_hash: "Option", + transaction_index: "Option", + block_hash: "Option", + from: "Option", + to: "Option", + block_number: "Option", + cumulative_gas_used: "U256", + gas_used: "Option", + contract_address: "Option", + logs: "Vec", + state_root: "Option", + logs_bloom: "H2048", + status_code: "Option" + }, + ExitReason: { + _enum: { + ExitSucceed: "bool", + ExitError: "bool", + ExitRevert: "bool", + ExitFatal: "bool" + } + } + } + } + ] +} as OverrideBundleDefinition; diff --git a/packages/apps-config/src/api/rpc/moonbeam.ts b/packages/apps-config/src/api/rpc/moonbeam.ts index cc78640e8953..485e03345c5c 100644 --- a/packages/apps-config/src/api/rpc/moonbeam.ts +++ b/packages/apps-config/src/api/rpc/moonbeam.ts @@ -24,40 +24,120 @@ export default function (): Record> { accounts: generateDescription('Returns accounts list.', 'Vec'), blockNumber: generateDescription('Returns balance of the given account.', 'U256'), call: generateDescription('Call contract, returning the output data.', 'Bytes', [reqParam, numberParam]), - chainId: generateDescription('Returns the chain ID used for transaction signing at the current best block. None is returned if not available.', 'U64'), + chainId: generateDescription( + 'Returns the chain ID used for transaction signing at the current best block. None is returned if not available.', + 'U64' + ), coinbase: generateDescription('Returns block author.', 'H160'), - estimateGas: generateDescription('Estimate gas needed for execution of given contract.', 'U256', [reqParam, numberParam]), + estimateGas: generateDescription('Estimate gas needed for execution of given contract.', 'U256', [ + reqParam, + numberParam + ]), gasPrice: generateDescription('Returns current gas_price.', 'U256'), getBalance: generateDescription('Returns balance of the given account.', 'U256', [addressParam, numberParam]), - getBlockByHash: generateDescription('Returns block with given hash.', 'RichBlock', [hashParam, { isOptional: true, name: 'full', type: 'bool' }]), - getBlockByNumber: generateDescription('Returns block with given number.', 'RichBlock', [blockParam, { isOptional: true, name: 'full', type: 'bool' }]), - getBlockTransactionCountByHash: generateDescription('Returns the number of transactions in a block with given hash.', 'U256', [hashParam]), - getBlockTransactionCountByNumber: generateDescription('Returns the number of transactions in a block with given block number.', 'U256', [blockParam]), - getCode: generateDescription('Returns the code at given address at given time (block number).', 'Bytes', [addressParam, numberParam]), - getLogs: generateDescription('Returns logs matching given filter object.', 'Vec', [{ name: 'filter', type: 'Filter' }]), - getStorageAt: generateDescription('Returns content of the storage at given address.', 'H256', [addressParam, indexParam, numberParam]), - getTransactionByBlockHashAndIndex: generateDescription('Returns transaction at given block hash and index.', 'Transaction', [hashParam, indexParam]), - getTransactionByBlockNumberAndIndex: generateDescription('Returns transaction by given block number and index.', 'Transaction', [numberParam, indexParam]), + getBlockByHash: generateDescription('Returns block with given hash.', 'RichBlock', [ + hashParam, + { isOptional: true, name: 'full', type: 'bool' } + ]), + getBlockByNumber: generateDescription('Returns block with given number.', 'RichBlock', [ + blockParam, + { isOptional: true, name: 'full', type: 'bool' } + ]), + getBlockTransactionCountByHash: generateDescription( + 'Returns the number of transactions in a block with given hash.', + 'U256', + [hashParam] + ), + getBlockTransactionCountByNumber: generateDescription( + 'Returns the number of transactions in a block with given block number.', + 'U256', + [blockParam] + ), + getCode: generateDescription('Returns the code at given address at given time (block number).', 'Bytes', [ + addressParam, + numberParam + ]), + getLogs: generateDescription('Returns logs matching given filter object.', 'Vec', [ + { name: 'filter', type: 'Filter' } + ]), + getStorageAt: generateDescription('Returns content of the storage at given address.', 'H256', [ + addressParam, + indexParam, + numberParam + ]), + getTransactionByBlockHashAndIndex: generateDescription( + 'Returns transaction at given block hash and index.', + 'Transaction', + [hashParam, indexParam] + ), + getTransactionByBlockNumberAndIndex: generateDescription( + 'Returns transaction by given block number and index.', + 'Transaction', + [numberParam, indexParam] + ), getTransactionByHash: generateDescription('Get transaction by its hash.', 'Transaction', [hashParam]), - getTransactionCount: generateDescription('Returns the number of transactions sent from given address at given time (block number).', 'U256', [hashParam, numberParam]), - getTransactionReceipt: generateDescription('Returns transaction receipt by transaction hash.', 'Receipt', [hashParam]), - getUncleByBlockHashAndIndex: generateDescription('Returns an uncles at given block and index.', 'RichBlock', [hashParam, indexParam]), - getUncleByBlockNumberAndIndex: generateDescription('Returns an uncles at given block and index.', 'RichBlock', [numberParam, indexParam]), - getUncleCountByBlockHash: generateDescription('Returns the number of uncles in a block with given hash.', 'U256', [hashParam]), - getUncleCountByBlockNumber: generateDescription('Returns the number of uncles in a block with given block number.', 'U256', [numberParam]), - getWork: generateDescription('Returns the hash of the current block, the seedHash, and the boundary condition to be met.', 'Work'), + getTransactionCount: generateDescription( + 'Returns the number of transactions sent from given address at given time (block number).', + 'U256', + [hashParam, numberParam] + ), + getTransactionReceipt: generateDescription('Returns transaction receipt by transaction hash.', 'Receipt', [ + hashParam + ]), + getUncleByBlockHashAndIndex: generateDescription('Returns an uncles at given block and index.', 'RichBlock', [ + hashParam, + indexParam + ]), + getUncleByBlockNumberAndIndex: generateDescription('Returns an uncles at given block and index.', 'RichBlock', [ + numberParam, + indexParam + ]), + getUncleCountByBlockHash: generateDescription( + 'Returns the number of uncles in a block with given hash.', + 'U256', + [hashParam] + ), + getUncleCountByBlockNumber: generateDescription( + 'Returns the number of uncles in a block with given block number.', + 'U256', + [numberParam] + ), + getWork: generateDescription( + 'Returns the hash of the current block, the seedHash, and the boundary condition to be met.', + 'Work' + ), hashrate: generateDescription('Returns the number of hashes per second that the node is mining with.', 'U256'), mining: generateDescription('Returns true if client is actively mining new blocks.', 'bool'), - protocolVersion: generateDescription('Returns protocol version encoded as a string (quotes are necessary).', 'u64'), - sendRawTransaction: generateDescription('Sends signed transaction, returning its hash.', 'BoxFuture', [{ name: 'bytes', type: 'Bytes' }]), + protocolVersion: generateDescription( + 'Returns protocol version encoded as a string (quotes are necessary).', + 'u64' + ), + sendRawTransaction: generateDescription('Sends signed transaction, returning its hash.', 'BoxFuture', [ + { name: 'bytes', type: 'Bytes' } + ]), submitHashrate: generateDescription('Used for submitting mining hashrate.', 'bool', [indexParam, hashParam]), - submitWork: generateDescription('Used for submitting a proof-of-work solution.', 'bool', [{ name: '_', type: 'H64' }, { name: '_', type: 'H256' }, { name: '_', type: 'H256' }]), - subscribe: generateDescription('Subscribe to Eth subscription.', '', [{ name: '_metadata', type: 'Self::Metadata' }, { name: 'subscriber', type: 'Subscriber' }, { name: 'kind', type: 'Kind' }, { isOptional: true, name: 'params', type: 'Params' }]), + submitWork: generateDescription('Used for submitting a proof-of-work solution.', 'bool', [ + { name: '_', type: 'H64' }, + { name: '_', type: 'H256' }, + { name: '_', type: 'H256' } + ]), + subscribe: generateDescription('Subscribe to Eth subscription.', '', [ + { name: '_metadata', type: 'Self::Metadata' }, + { name: 'subscriber', type: 'Subscriber' }, + { name: 'kind', type: 'Kind' }, + { isOptional: true, name: 'params', type: 'Params' } + ]), syncing: generateDescription('Returns an object with data about the sync status or false. (wtf?)', 'SyncStatus'), - unsubscribe: generateDescription('nsubscribe from existing Eth subscription.', '', [{ name: '_metadata', type: 'Self::Metadata' }, { name: 'subscription_id', type: 'Self::SubscriptionId' }]) + unsubscribe: generateDescription('nsubscribe from existing Eth subscription.', '', [ + { name: '_metadata', type: 'Self::Metadata' }, + { name: 'subscription_id', type: 'Self::SubscriptionId' } + ]) }, net: { - listening: generateDescription('Returns true if client is actively listening for network connections. Otherwise false.', 'bool'), + listening: generateDescription( + 'Returns true if client is actively listening for network connections. Otherwise false.', + 'bool' + ), peerCount: generateDescription('Returns number of peers connected to node.', 'String'), version: generateDescription('Returns protocol version.', 'String') } diff --git a/packages/apps-config/src/api/spec/index.ts b/packages/apps-config/src/api/spec/index.ts index 67a7c215c146..775f1da50046 100644 --- a/packages/apps-config/src/api/spec/index.ts +++ b/packages/apps-config/src/api/spec/index.ts @@ -18,7 +18,6 @@ import equilibrium from './equilibrium'; import hanonycash from './hanonycash'; import kilt from './kilt'; import kulupu from './kulupu'; -import moonbeam from './moonbeam'; import nodeTemplate from './node-template'; import nodle from './nodle'; import phala from './phala'; @@ -49,9 +48,6 @@ export default { hanonycash, kulupu, 'mashnet-node': kilt, - 'moonbase-alphanet': moonbeam, - 'moonbeam-standalone': moonbeam, - 'node-moonbeam': moonbeam, 'node-template': nodeTemplate, 'nodle-chain': nodle, 'phala-node': phala, diff --git a/packages/apps-config/src/api/spec/moonbeam.ts b/packages/apps-config/src/api/spec/moonbeam.ts deleted file mode 100644 index bb0afa5f0d4e..000000000000 --- a/packages/apps-config/src/api/spec/moonbeam.ts +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2017-2020 @polkadot/apps-config authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -// structs need to be in order -/* eslint-disable sort-keys */ - -export default { - AccountId: 'EthereumAccountId', - Address: 'AccountId', - Balance: 'u128', - RefCount: 'u8', - LookupSource: 'AccountId', - Account: { - nonce: 'U256', - balance: 'u128' - }, - TransactionCondition: { - _enum: { - block: 'u64', - time: 'u64' - } - }, - Transaction: { - block_hash: 'Option', - block_number: 'Option', - chain_id: 'Option', - condition: 'Option', - creates: 'Option', - from: 'H160', - gas: 'U256', - gas_price: 'U256', - hash: 'H256', - input: 'Bytes', - nonce: 'U256', - public_key: 'Option', - r: 'U256', - raw: 'Bytes', - standard_v: 'U256', - to: 'Option', - transaction_index: 'Option', - v: 'U256', - value: 'U256' - }, - TransactionStatus: { - transaction_hash: 'H256', - transaction_index: 'u32', - from: 'H160', - to: 'Option', - contract_address: 'Option', - logs: 'Vec', - logs_bloom: 'Bloom' - }, - Receipt: { - transaction_hash: 'Option', - transaction_index: 'Option', - block_hash: 'Option', - from: 'Option', - to: 'Option', - block_number: 'Option', - cumulative_gas_used: 'U256', - gas_used: 'Option', - contract_address: 'Option', - logs: 'Vec', - state_root: 'Option', - logs_bloom: 'H2048', - status_code: 'Option' - }, - ExitReason: { _enum: { - ExitSucceed: 'bool', - ExitError: 'bool', - ExitRevert: 'bool', - ExitFatal: 'bool' - } } -};