From 9d4769342f98c08131352da712d74a854f18b9ac Mon Sep 17 00:00:00 2001 From: Alejandro Cavallero Date: Mon, 2 Jul 2018 18:37:19 -0300 Subject: [PATCH] RSK Mainnet configuration (#1994) * RSK mainnet configuration * Changes to fix errors on push * Reverts unnecessary props --- common/config/contracts/rsk_testnet.json | 8 +++++ common/config/dpaths.ts | 6 ++++ common/config/tokens/rsk.json | 2 +- common/config/tokens/rsk_testnet.json | 1 + .../config/networks/static/reducer.ts | 31 +++++++++++++++++-- common/libs/nodes/configs.ts | 9 ++++++ shared/types/network.d.ts | 1 + spec/libs/validators.spec.ts | 7 +++++ 8 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 common/config/contracts/rsk_testnet.json create mode 100644 common/config/tokens/rsk_testnet.json diff --git a/common/config/contracts/rsk_testnet.json b/common/config/contracts/rsk_testnet.json new file mode 100644 index 00000000..cf8d3c9f --- /dev/null +++ b/common/config/contracts/rsk_testnet.json @@ -0,0 +1,8 @@ +[ + { + "name": "Bridge", + "address": "0x0000000000000000000000000000000001000006", + "abi": + "[{ \"name\": \"getFederationAddress\", \"type\": \"function\", \"constant\": true, \"inputs\": [], \"outputs\": [{ \"name\": \"\", \"type\": \"string\" }] }]" + } +] diff --git a/common/config/dpaths.ts b/common/config/dpaths.ts index 1449c582..5af627f2 100644 --- a/common/config/dpaths.ts +++ b/common/config/dpaths.ts @@ -83,6 +83,11 @@ export const RSK_TESTNET: DPath = { value: "m/44'/37310'/0'/0" }; +export const RSK_MAINNET: DPath = { + label: 'Mainnet (RSK)', + value: "m/44'/137'/0'/0" +}; + export const GO_DEFAULT: DPath = { label: 'Default (GO)', value: "m/44'/6060'/0'/0" @@ -114,6 +119,7 @@ export const DPaths: DPath[] = [ ETSC_DEFAULT, EGEM_DEFAULT, CLO_DEFAULT, + RSK_MAINNET, RSK_TESTNET, GO_DEFAULT, EOSC_DEFAULT, diff --git a/common/config/tokens/rsk.json b/common/config/tokens/rsk.json index fe51488c..0637a088 100644 --- a/common/config/tokens/rsk.json +++ b/common/config/tokens/rsk.json @@ -1 +1 @@ -[] +[] \ No newline at end of file diff --git a/common/config/tokens/rsk_testnet.json b/common/config/tokens/rsk_testnet.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/common/config/tokens/rsk_testnet.json @@ -0,0 +1 @@ +[] diff --git a/common/features/config/networks/static/reducer.ts b/common/features/config/networks/static/reducer.ts index cab27ae8..3f1f2846 100644 --- a/common/features/config/networks/static/reducer.ts +++ b/common/features/config/networks/static/reducer.ts @@ -21,6 +21,7 @@ import { ETSC_DEFAULT, EGEM_DEFAULT, CLO_DEFAULT, + RSK_MAINNET, RSK_TESTNET, GO_DEFAULT, EOSC_DEFAULT, @@ -369,6 +370,32 @@ export const STATIC_NETWORKS_INITIAL_STATE: StaticNetworksState = { } }, + RSK: { + id: 'RSK', + name: 'RSK', + unit: 'SBTC', + chainId: 30, + color: '#58A052', + isCustom: false, + blockExplorer: makeExplorer({ + name: 'RSK Explorer', + origin: 'https://explorer.rsk.co' + }), + tokens: require('config/tokens/rsk.json'), + contracts: require('config/contracts/rsk.json'), + isTestnet: false, + dPathFormats: { + [SecureWalletName.TREZOR]: RSK_MAINNET, + [SecureWalletName.LEDGER_NANO_S]: RSK_MAINNET, + [InsecureWalletName.MNEMONIC_PHRASE]: RSK_MAINNET + }, + gasPriceSettings: { + min: 0.183, + max: 1.5, + initial: 0.183 + } + }, + RSK_TESTNET: { id: 'RSK_TESTNET', name: 'RSK', @@ -380,8 +407,8 @@ export const STATIC_NETWORKS_INITIAL_STATE: StaticNetworksState = { name: 'RSK Testnet Explorer', origin: 'https://explorer.testnet.rsk.co' }), - tokens: require('config/tokens/rsk.json'), - contracts: require('config/contracts/rsk.json'), + tokens: require('config/tokens/rsk_testnet.json'), + contracts: require('config/contracts/rsk_testnet.json'), isTestnet: true, dPathFormats: { [SecureWalletName.TREZOR]: RSK_TESTNET, diff --git a/common/libs/nodes/configs.ts b/common/libs/nodes/configs.ts index a660f08c..951a5483 100644 --- a/common/libs/nodes/configs.ts +++ b/common/libs/nodes/configs.ts @@ -168,6 +168,15 @@ export const NODE_CONFIGS: { [key in StaticNetworkIds]: RawNodeConfig[] } = { } ], + RSK: [ + { + name: makeNodeName('RSK', 'rsk_mainnet'), + type: 'rpc', + service: 'mycrypto.rsk.co', + url: 'https://mycrypto.rsk.co/' + } + ], + RSK_TESTNET: [ { name: makeNodeName('RSK_TESTNET', 'rsk_testnet'), diff --git a/shared/types/network.d.ts b/shared/types/network.d.ts index 5913b900..8a7a8554 100644 --- a/shared/types/network.d.ts +++ b/shared/types/network.d.ts @@ -13,6 +13,7 @@ type StaticNetworkIds = | 'ETSC' | 'EGEM' | 'CLO' + | 'RSK' | 'RSK_TESTNET' | 'GO' | 'EOSC' diff --git a/spec/libs/validators.spec.ts b/spec/libs/validators.spec.ts index 342f6ed9..8dc74a3f 100644 --- a/spec/libs/validators.spec.ts +++ b/spec/libs/validators.spec.ts @@ -16,6 +16,7 @@ configuredStore.getState(); const VALID_BTC_ADDRESS = '1MEWT2SGbqtz6mPCgFcnea8XmWV5Z4Wc6'; const VALID_ETH_ADDRESS = '0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8'; const VALID_RSK_TESTNET_ADDRESS = '0x5aAeb6053F3e94c9b9A09F33669435E7EF1BEaEd'; +const VALID_RSK_MAINNET_ADDRESS = '0x5aaEB6053f3e94c9b9a09f33669435E7ef1bEAeD'; const VALID_ETH_PRIVATE_KEY = '3f4fd89ea4970cc77bfd2d07a95786575ea62e183857afe6301578e1a3c5c782'; const INVALID_ETH_PRIVATE_KEY = '3f4fd89ea4970cc77bfd2d07a95786575ea62e183857afe6301578e1a3c5ZZZZ'; const VALID_ETH_PRIVATE_BUFFER = Buffer.from(VALID_ETH_PRIVATE_KEY, 'hex'); @@ -50,6 +51,12 @@ describe('Validator', () => { it('should validate correct RSK address in RSK mainnet network as false', () => { expect(isValidAddress(VALID_RSK_TESTNET_ADDRESS, RSK_MAINNET_CHAIN_ID)).toBeFalsy(); }); + it('should validate correct RSK address in RSK mainnet network as true', () => { + expect(isValidAddress(VALID_RSK_MAINNET_ADDRESS, RSK_MAINNET_CHAIN_ID)).toBeTruthy(); + }); + it('should validate correct RSK mainnet address in RSK testnet network as false', () => { + expect(isValidAddress(VALID_RSK_MAINNET_ADDRESS, RSK_TESTNET_CHAIN_ID)).toBeFalsy(); + }); it('should validate an incorrect DPath as false', () => { expect(isValidPath('m/44/60/0/0')).toBeFalsy(); });