From c8aa7a52889a3e810b68fd8971d739fb0a6e9496 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Thu, 16 Mar 2023 12:07:57 +0400 Subject: [PATCH 1/7] fix(dashmate): generate contract keys after group reset --- packages/dashmate/src/commands/group/reset.js | 12 ++- packages/dashmate/src/createDIContainer.js | 3 + ...onfigureContractsPrivateKeysTaskFactory.js | 85 +++++++++++++++++++ .../setup/setupLocalPresetTaskFactory.js | 68 ++------------- 4 files changed, 104 insertions(+), 64 deletions(-) create mode 100644 packages/dashmate/src/listr/tasks/setup/local/configureContractsPrivateKeysTaskFactory.js diff --git a/packages/dashmate/src/commands/group/reset.js b/packages/dashmate/src/commands/group/reset.js index d108cb302dc..893b2a963e0 100644 --- a/packages/dashmate/src/commands/group/reset.js +++ b/packages/dashmate/src/commands/group/reset.js @@ -15,6 +15,7 @@ class GroupResetCommand extends GroupBaseCommand { * @param {configureCoreTask} configureCoreTask * @param {configureTenderdashTask} configureTenderdashTask * @param {generateToAddressTask} generateToAddressTask + * @param {configureContractsPrivateKeysTask} configureContractsPrivateKeysTask * @param {ConfigFile} configFile * @param {Object[]} systemConfigs * @return {Promise} @@ -33,6 +34,7 @@ class GroupResetCommand extends GroupBaseCommand { configureCoreTask, configureTenderdashTask, generateToAddressTask, + configureContractsPrivateKeysTask, configFile, systemConfigs, ) { @@ -55,12 +57,20 @@ class GroupResetCommand extends GroupBaseCommand { task: (ctx) => { ctx.skipPlatformInitialization = true; + const subTasks = [{ task: () => resetNodeTask(config) }]; + if (config.has('platform')) { + const network = configGroup[0].get('network'); + config.set('platform.dpns', baseConfig.platform.dpns); config.set('platform.dashpay', baseConfig.platform.dashpay); config.set('platform.featureFlags', baseConfig.platform.featureFlags); config.set('platform.masternodeRewardShares', baseConfig.platform.masternodeRewardShares); + subTasks.unshift({ + task: () => configureContractsPrivateKeysTask(config, network), + }); + // TODO: Should stay the same config.set('platform.drive.tenderdash.nodeId', baseConfig.platform.drive.tenderdash.nodeId); config.set('platform.drive.tenderdash.nodeKey', baseConfig.platform.drive.tenderdash.nodeKey); @@ -71,7 +81,7 @@ class GroupResetCommand extends GroupBaseCommand { config.set('core.masternode.operator.privateKey', baseConfig.core.masternode.operator.privateKey); } - return resetNodeTask(config); + return new Listr(subTasks); }, }))), }, diff --git a/packages/dashmate/src/createDIContainer.js b/packages/dashmate/src/createDIContainer.js index 84faab58997..0da3d708dd2 100644 --- a/packages/dashmate/src/createDIContainer.js +++ b/packages/dashmate/src/createDIContainer.js @@ -60,6 +60,7 @@ const restartNodeTaskFactory = require('./listr/tasks/restartNodeTaskFactory'); const resetNodeTaskFactory = require('./listr/tasks/resetNodeTaskFactory'); const configureCoreTaskFactory = require('./listr/tasks/setup/local/configureCoreTaskFactory'); const configureTenderdashTaskFactory = require('./listr/tasks/setup/local/configureTenderdashTaskFactory'); +const configureContractsPrivateKeysTaskFactory = require('./listr/tasks/setup/local/configureContractsPrivateKeysTaskFactory'); const waitForNodeToBeReadyTaskFactory = require('./listr/tasks/platform/waitForNodeToBeReadyTaskFactory'); const enableCoreQuorumsTaskFactory = require('./listr/tasks/setup/local/enableCoreQuorumsTaskFactory'); const startGroupNodesTaskFactory = require('./listr/tasks/startGroupNodesTaskFactory'); @@ -173,6 +174,8 @@ async function createDIContainer() { setupRegularPresetTask: asFunction(setupRegularPresetTaskFactory).singleton(), configureCoreTask: asFunction(configureCoreTaskFactory).singleton(), configureTenderdashTask: asFunction(configureTenderdashTaskFactory).singleton(), + configureContractsPrivateKeysTask: asFunction(configureContractsPrivateKeysTaskFactory) + .singleton(), outputStatusOverview: asFunction(outputStatusOverviewFactory), waitForNodeToBeReadyTask: asFunction(waitForNodeToBeReadyTaskFactory).singleton(), enableCoreQuorumsTask: asFunction(enableCoreQuorumsTaskFactory).singleton(), diff --git a/packages/dashmate/src/listr/tasks/setup/local/configureContractsPrivateKeysTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/configureContractsPrivateKeysTaskFactory.js new file mode 100644 index 00000000000..89333f1497e --- /dev/null +++ b/packages/dashmate/src/listr/tasks/setup/local/configureContractsPrivateKeysTaskFactory.js @@ -0,0 +1,85 @@ +const { Listr } = require('listr2'); + +/** + * @param {generateHDPrivateKeys} generateHDPrivateKeys + * @return {configureTenderdashTask} + */ +function configureContractsPrivateKeysTaskFactory(generateHDPrivateKeys) { + /** + * @typedef {configureTenderdashTask} + * @return {Listr} + * @param config + * @param network + */ + function configureContractsPrivateKeysTask(config, network) { + return new Listr([ + { + task: async (ctx, task) => { + const { + hdPrivateKey: dpnsPrivateKey, + derivedPrivateKeys: [ + dpnsDerivedMasterPrivateKey, + dpnsDerivedSecondPrivateKey, + ], + } = await generateHDPrivateKeys(network, [0, 1]); + + const { + hdPrivateKey: featureFlagsPrivateKey, + derivedPrivateKeys: [ + featureFlagsDerivedMasterPrivateKey, + featureFlagsDerivedSecondPrivateKey, + ], + } = await generateHDPrivateKeys(network, [0, 1]); + + const { + hdPrivateKey: dashpayPrivateKey, + derivedPrivateKeys: [ + dashpayDerivedMasterPrivateKey, + dashpayDerivedSecondPrivateKey, + ], + } = await generateHDPrivateKeys(network, [0, 1]); + + const { + hdPrivateKey: masternodeRewardSharesPrivateKey, + derivedPrivateKeys: [ + masternodeRewardSharesDerivedMasterPrivateKey, + masternodeRewardSharesDerivedSecondPrivateKey, + ], + } = await generateHDPrivateKeys(network, [0, 1]); + + config.set('platform.dpns.masterPublicKey', dpnsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); + config.set('platform.dpns.secondPublicKey', dpnsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); + + config.set('platform.featureFlags.masterPublicKey', featureFlagsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); + config.set('platform.featureFlags.secondPublicKey', featureFlagsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); + + config.set('platform.dashpay.masterPublicKey', dashpayDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); + config.set('platform.dashpay.secondPublicKey', dashpayDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); + + config.set('platform.masternodeRewardShares.masterPublicKey', + masternodeRewardSharesDerivedMasterPrivateKey.privateKey + .toPublicKey().toString()); + config.set('platform.masternodeRewardShares.secondPublicKey', + masternodeRewardSharesDerivedSecondPrivateKey.privateKey + .toPublicKey().toString()); + + // eslint-disable-next-line no-param-reassign + task.output = `DPNS Private Key: ${dpnsPrivateKey.toString()}`; + + // eslint-disable-next-line no-param-reassign + task.output = `Feature Flags Private Key: ${featureFlagsPrivateKey.toString()}`; + + // eslint-disable-next-line no-param-reassign + task.output = `Dashpay Private Key: ${dashpayPrivateKey.toString()}`; + + // eslint-disable-next-line no-param-reassign + task.output = `Masternode Reward Shares Private Key: ${masternodeRewardSharesPrivateKey.toString()}`; + }, + }, + ]); + } + + return configureContractsPrivateKeysTask; +} + +module.exports = configureContractsPrivateKeysTaskFactory; diff --git a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js index 46d50069271..da1b9f2db62 100644 --- a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js @@ -14,6 +14,7 @@ const { * @param {resolveDockerHostIp} resolveDockerHostIp * @param {configFileRepository} configFileRepository * @param {generateHDPrivateKeys} generateHDPrivateKeys + * @param {configureContractsPrivateKeysTask} configureContractsPrivateKeysTask */ function setupLocalPresetTaskFactory( configFile, @@ -22,6 +23,7 @@ function setupLocalPresetTaskFactory( resolveDockerHostIp, configFileRepository, generateHDPrivateKeys, + configureContractsPrivateKeysTask, ) { /** * @typedef {setupLocalPresetTask} @@ -82,7 +84,7 @@ function setupLocalPresetTaskFactory( }, { title: 'Create local group configs', - task: async (ctx, task) => { + task: async (ctx) => { ctx.configGroup = new Array(ctx.nodeCount) .fill(undefined) .map((value, i) => `local_${i + 1}`) @@ -98,53 +100,10 @@ function setupLocalPresetTaskFactory( const network = ctx.configGroup[0].get('network'); - const { - hdPrivateKey: dpnsPrivateKey, - derivedPrivateKeys: [ - dpnsDerivedMasterPrivateKey, - dpnsDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: featureFlagsPrivateKey, - derivedPrivateKeys: [ - featureFlagsDerivedMasterPrivateKey, - featureFlagsDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: dashpayPrivateKey, - derivedPrivateKeys: [ - dashpayDerivedMasterPrivateKey, - dashpayDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: masternodeRewardSharesPrivateKey, - derivedPrivateKeys: [ - masternodeRewardSharesDerivedMasterPrivateKey, - masternodeRewardSharesDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - // eslint-disable-next-line no-param-reassign - task.output = `DPNS Private Key: ${dpnsPrivateKey.toString()}`; - - // eslint-disable-next-line no-param-reassign - task.output = `Feature Flags Private Key: ${featureFlagsPrivateKey.toString()}`; - - // eslint-disable-next-line no-param-reassign - task.output = `Dashpay Private Key: ${dashpayPrivateKey.toString()}`; - - // eslint-disable-next-line no-param-reassign - task.output = `Masternode Reward Shares Private Key: ${masternodeRewardSharesPrivateKey.toString()}`; - const subTasks = ctx.configGroup.map((config, i) => ( { title: `Create ${config.getName()} config`, + // eslint-disable-next-line consistent-return task: () => { const nodeIndex = i + 1; @@ -203,24 +162,7 @@ function setupLocalPresetTaskFactory( config.set('platform.drive.abci.log.jsonFile.path', driveJsonLogFile); } - config.set('platform.dpns.masterPublicKey', dpnsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); - config.set('platform.dpns.secondPublicKey', dpnsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); - - config.set('platform.featureFlags.masterPublicKey', featureFlagsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); - config.set('platform.featureFlags.secondPublicKey', featureFlagsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); - - config.set('platform.dashpay.masterPublicKey', dashpayDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); - config.set('platform.dashpay.secondPublicKey', dashpayDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); - - config.set( - 'platform.masternodeRewardShares.masterPublicKey', - masternodeRewardSharesDerivedMasterPrivateKey.privateKey - .toPublicKey().toString(), - ); config.set( - 'platform.masternodeRewardShares.secondPublicKey', - masternodeRewardSharesDerivedSecondPrivateKey.privateKey - .toPublicKey().toString(), - ); + return configureContractsPrivateKeysTask(config, network); } }, options: { From 9413ccf394972c0a8fbf589923c5613e999dc7ff Mon Sep 17 00:00:00 2001 From: pshenmic Date: Tue, 18 Apr 2023 22:20:03 +0300 Subject: [PATCH 2/7] chore(dashmate): lint and bug fixes --- packages/dashmate/src/commands/group/reset.js | 19 +++--- packages/dashmate/src/createDIContainer.js | 5 +- ...erateSystemDataContractKeysTaskFactory.js} | 8 +-- .../setup/setupLocalPresetTaskFactory.js | 63 +------------------ 4 files changed, 19 insertions(+), 76 deletions(-) rename packages/dashmate/src/listr/tasks/setup/local/{configureContractsPrivateKeysTaskFactory.js => generateSystemDataContractKeysTaskFactory.js} (92%) diff --git a/packages/dashmate/src/commands/group/reset.js b/packages/dashmate/src/commands/group/reset.js index 859bf17b5bb..ddc07cb2665 100644 --- a/packages/dashmate/src/commands/group/reset.js +++ b/packages/dashmate/src/commands/group/reset.js @@ -15,7 +15,7 @@ class GroupResetCommand extends GroupBaseCommand { * @param {configureCoreTask} configureCoreTask * @param {configureTenderdashTask} configureTenderdashTask * @param {generateToAddressTask} generateToAddressTask - * @param {configureContractsPrivateKeysTask} configureContractsPrivateKeysTask + * @param {generateSystemDataContractKeysTask} generateSystemDataContractKeysTask * @param {ConfigFile} configFile * @param {Object[]} systemConfigs * @return {Promise} @@ -34,7 +34,7 @@ class GroupResetCommand extends GroupBaseCommand { configureCoreTask, configureTenderdashTask, generateToAddressTask, - configureContractsPrivateKeysTask, + generateSystemDataContractKeysTask, configFile, systemConfigs, ) { @@ -57,17 +57,11 @@ class GroupResetCommand extends GroupBaseCommand { task: (ctx) => { ctx.skipPlatformInitialization = true; - const subTasks = [{ task: () => resetNodeTask(config) }]; - config.set('platform.dpns', baseConfig.platform.dpns); config.set('platform.dashpay', baseConfig.platform.dashpay); config.set('platform.featureFlags', baseConfig.platform.featureFlags); config.set('platform.masternodeRewardShares', baseConfig.platform.masternodeRewardShares); - subTasks.unshift({ - task: () => configureContractsPrivateKeysTask(config, network), - }); - // TODO: Should stay the same config.set('platform.drive.tenderdash.node.id', baseConfig.platform.drive.tenderdash.node.id); config.set('platform.drive.tenderdash.node.key', baseConfig.platform.drive.tenderdash.node.key); @@ -77,7 +71,14 @@ class GroupResetCommand extends GroupBaseCommand { config.set('core.masternode.operator.privateKey', baseConfig.core.masternode.operator.privateKey); } - return new Listr(subTasks); + return new Listr([ + { + task: () => generateSystemDataContractKeysTask(config, config.get('network')), + }, + { + task: () => resetNodeTask(config), + }, + ]); }, }))), }, diff --git a/packages/dashmate/src/createDIContainer.js b/packages/dashmate/src/createDIContainer.js index b1230eab34e..4cc3792a0a2 100644 --- a/packages/dashmate/src/createDIContainer.js +++ b/packages/dashmate/src/createDIContainer.js @@ -66,7 +66,7 @@ const resetNodeTaskFactory = require('./listr/tasks/resetNodeTaskFactory'); const configureCoreTaskFactory = require('./listr/tasks/setup/local/configureCoreTaskFactory'); const configureTenderdashTaskFactory = require('./listr/tasks/setup/local/configureTenderdashTaskFactory'); const obtainSelfSignedCertificateTaskFactory = require('./listr/tasks/ssl/selfSigned/obtainSelfSignedCertificateTaskFactory'); -const configureContractsPrivateKeysTaskFactory = require('./listr/tasks/setup/local/configureContractsPrivateKeysTaskFactory'); +const generateSystemDataContractKeysTaskFactory = require('./listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory'); const waitForNodeToBeReadyTaskFactory = require('./listr/tasks/platform/waitForNodeToBeReadyTaskFactory'); const enableCoreQuorumsTaskFactory = require('./listr/tasks/setup/local/enableCoreQuorumsTaskFactory'); const startGroupNodesTaskFactory = require('./listr/tasks/startGroupNodesTaskFactory'); @@ -215,9 +215,8 @@ async function createDIContainer() { setupRegularPresetTask: asFunction(setupRegularPresetTaskFactory).singleton(), configureCoreTask: asFunction(configureCoreTaskFactory).singleton(), configureTenderdashTask: asFunction(configureTenderdashTaskFactory).singleton(), - configureContractsPrivateKeysTask: asFunction(configureContractsPrivateKeysTaskFactory) + generateSystemDataContractKeysTask: asFunction(generateSystemDataContractKeysTaskFactory) .singleton(), - outputStatusOverview: asFunction(outputStatusOverviewFactory), waitForNodeToBeReadyTask: asFunction(waitForNodeToBeReadyTaskFactory).singleton(), enableCoreQuorumsTask: asFunction(enableCoreQuorumsTaskFactory).singleton(), registerMasternodeGuideTask: asFunction(registerMasternodeGuideTaskFactory).singleton(), diff --git a/packages/dashmate/src/listr/tasks/setup/local/configureContractsPrivateKeysTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js similarity index 92% rename from packages/dashmate/src/listr/tasks/setup/local/configureContractsPrivateKeysTaskFactory.js rename to packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js index 89333f1497e..e10496c9ee5 100644 --- a/packages/dashmate/src/listr/tasks/setup/local/configureContractsPrivateKeysTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js @@ -4,14 +4,14 @@ const { Listr } = require('listr2'); * @param {generateHDPrivateKeys} generateHDPrivateKeys * @return {configureTenderdashTask} */ -function configureContractsPrivateKeysTaskFactory(generateHDPrivateKeys) { +function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { /** * @typedef {configureTenderdashTask} * @return {Listr} * @param config * @param network */ - function configureContractsPrivateKeysTask(config, network) { + function generateSystemDataContractKeysTask(config, network) { return new Listr([ { task: async (ctx, task) => { @@ -79,7 +79,7 @@ function configureContractsPrivateKeysTaskFactory(generateHDPrivateKeys) { ]); } - return configureContractsPrivateKeysTask; + return generateSystemDataContractKeysTask; } -module.exports = configureContractsPrivateKeysTaskFactory; +module.exports = generateSystemDataContractKeysTaskFactory; diff --git a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js index 307a29d4aa1..c4924a77c59 100644 --- a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js @@ -17,8 +17,7 @@ const deriveTenderdashNodeId = require('../../../tenderdash/deriveTenderdashNode * @param {obtainSelfSignedCertificateTask} obtainSelfSignedCertificateTask * @param {resolveDockerHostIp} resolveDockerHostIp * @param {configFileRepository} configFileRepository - * @param {generateHDPrivateKeys} generateHDPrivateKeys - * @param {configureContractsPrivateKeysTask} configureContractsPrivateKeysTask + * @param {generateSystemDataContractKeysTask} generateSystemDataContractKeysTask */ function setupLocalPresetTaskFactory( configFile, @@ -27,8 +26,7 @@ function setupLocalPresetTaskFactory( configureTenderdashTask, resolveDockerHostIp, configFileRepository, - generateHDPrivateKeys, - configureContractsPrivateKeysTask, + generateSystemDataContractKeysTask, ) { /** * @typedef {setupLocalPresetTask} @@ -105,61 +103,6 @@ function setupLocalPresetTaskFactory( const network = ctx.configGroup[0].get('network'); - const { - hdPrivateKey: dpnsPrivateKey, - derivedPrivateKeys: [ - dpnsDerivedMasterPrivateKey, - dpnsDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: featureFlagsPrivateKey, - derivedPrivateKeys: [ - featureFlagsDerivedMasterPrivateKey, - featureFlagsDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: dashpayPrivateKey, - derivedPrivateKeys: [ - dashpayDerivedMasterPrivateKey, - dashpayDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: withdrawalsPrivateKey, - derivedPrivateKeys: [ - withdrawalsDerivedMasterPrivateKey, - withdrawalsDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: masternodeRewardSharesPrivateKey, - derivedPrivateKeys: [ - masternodeRewardSharesDerivedMasterPrivateKey, - masternodeRewardSharesDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - // eslint-disable-next-line no-param-reassign - task.output = `DPNS Private Key: ${dpnsPrivateKey.toString()}`; - - // eslint-disable-next-line no-param-reassign - task.output = `Feature Flags Private Key: ${featureFlagsPrivateKey.toString()}`; - - // eslint-disable-next-line no-param-reassign - task.output = `Dashpay Private Key: ${dashpayPrivateKey.toString()}`; - - // eslint-disable-next-line no-param-reassign - task.output = `Masternode Reward Shares Private Key: ${masternodeRewardSharesPrivateKey.toString()}`; - - // eslint-disable-next-line no-param-reassign - task.output = `Withdrawals Private Key: ${withdrawalsPrivateKey.toString()}`; - const subTasks = ctx.configGroup.map((config, i) => ( { title: `Create ${config.getName()} config`, @@ -228,7 +171,7 @@ function setupLocalPresetTaskFactory( config.set('dashmate.helper.api.port', config.get('dashmate.helper.api.port') + (i * 100)); - return configureContractsPrivateKeysTask(config, network); + return generateSystemDataContractKeysTask(config, network); } }, options: { From 95160bc4edd0254f7ed6cf1c78a9ec499d9020c3 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Wed, 19 Apr 2023 12:18:23 +0300 Subject: [PATCH 3/7] chore(dashmate): code review fixes --- packages/dashmate/src/commands/group/reset.js | 4 ++-- ...enerateSystemDataContractKeysTaskFactory.js | 18 +----------------- .../tasks/setup/setupLocalPresetTaskFactory.js | 7 +++++-- 3 files changed, 8 insertions(+), 21 deletions(-) diff --git a/packages/dashmate/src/commands/group/reset.js b/packages/dashmate/src/commands/group/reset.js index ddc07cb2665..f75a9c527e8 100644 --- a/packages/dashmate/src/commands/group/reset.js +++ b/packages/dashmate/src/commands/group/reset.js @@ -73,10 +73,10 @@ class GroupResetCommand extends GroupBaseCommand { return new Listr([ { - task: () => generateSystemDataContractKeysTask(config, config.get('network')), + task: () => resetNodeTask(config), }, { - task: () => resetNodeTask(config), + task: () => generateSystemDataContractKeysTask(config, config.get('network')), }, ]); }, diff --git a/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js index e10496c9ee5..04e4533d46e 100644 --- a/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js @@ -14,9 +14,8 @@ function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { function generateSystemDataContractKeysTask(config, network) { return new Listr([ { - task: async (ctx, task) => { + task: async () => { const { - hdPrivateKey: dpnsPrivateKey, derivedPrivateKeys: [ dpnsDerivedMasterPrivateKey, dpnsDerivedSecondPrivateKey, @@ -24,7 +23,6 @@ function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { } = await generateHDPrivateKeys(network, [0, 1]); const { - hdPrivateKey: featureFlagsPrivateKey, derivedPrivateKeys: [ featureFlagsDerivedMasterPrivateKey, featureFlagsDerivedSecondPrivateKey, @@ -32,7 +30,6 @@ function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { } = await generateHDPrivateKeys(network, [0, 1]); const { - hdPrivateKey: dashpayPrivateKey, derivedPrivateKeys: [ dashpayDerivedMasterPrivateKey, dashpayDerivedSecondPrivateKey, @@ -40,7 +37,6 @@ function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { } = await generateHDPrivateKeys(network, [0, 1]); const { - hdPrivateKey: masternodeRewardSharesPrivateKey, derivedPrivateKeys: [ masternodeRewardSharesDerivedMasterPrivateKey, masternodeRewardSharesDerivedSecondPrivateKey, @@ -62,18 +58,6 @@ function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { config.set('platform.masternodeRewardShares.secondPublicKey', masternodeRewardSharesDerivedSecondPrivateKey.privateKey .toPublicKey().toString()); - - // eslint-disable-next-line no-param-reassign - task.output = `DPNS Private Key: ${dpnsPrivateKey.toString()}`; - - // eslint-disable-next-line no-param-reassign - task.output = `Feature Flags Private Key: ${featureFlagsPrivateKey.toString()}`; - - // eslint-disable-next-line no-param-reassign - task.output = `Dashpay Private Key: ${dashpayPrivateKey.toString()}`; - - // eslint-disable-next-line no-param-reassign - task.output = `Masternode Reward Shares Private Key: ${masternodeRewardSharesPrivateKey.toString()}`; }, }, ]); diff --git a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js index c4924a77c59..d29074bd780 100644 --- a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js @@ -106,7 +106,6 @@ function setupLocalPresetTaskFactory( const subTasks = ctx.configGroup.map((config, i) => ( { title: `Create ${config.getName()} config`, - // eslint-disable-next-line consistent-return task: () => { const nodeIndex = i + 1; @@ -171,8 +170,12 @@ function setupLocalPresetTaskFactory( config.set('dashmate.helper.api.port', config.get('dashmate.helper.api.port') + (i * 100)); - return generateSystemDataContractKeysTask(config, network); + return new Listr([{ + task: () => generateSystemDataContractKeysTask(config, network), + }]); } + + return null; }, options: { persistentOutput: true, From 4e4080f2f723093f05444f6d3857e92df845e70f Mon Sep 17 00:00:00 2001 From: pshenmic Date: Thu, 20 Apr 2023 17:42:27 +0400 Subject: [PATCH 4/7] fix(dashmate): leave contract keys on group reset --- packages/dashmate/src/commands/group/reset.js | 31 ++++--------------- .../setup/setupLocalPresetTaskFactory.js | 4 +-- 2 files changed, 7 insertions(+), 28 deletions(-) diff --git a/packages/dashmate/src/commands/group/reset.js b/packages/dashmate/src/commands/group/reset.js index f75a9c527e8..32e909c4aae 100644 --- a/packages/dashmate/src/commands/group/reset.js +++ b/packages/dashmate/src/commands/group/reset.js @@ -15,7 +15,6 @@ class GroupResetCommand extends GroupBaseCommand { * @param {configureCoreTask} configureCoreTask * @param {configureTenderdashTask} configureTenderdashTask * @param {generateToAddressTask} generateToAddressTask - * @param {generateSystemDataContractKeysTask} generateSystemDataContractKeysTask * @param {ConfigFile} configFile * @param {Object[]} systemConfigs * @return {Promise} @@ -34,7 +33,6 @@ class GroupResetCommand extends GroupBaseCommand { configureCoreTask, configureTenderdashTask, generateToAddressTask, - generateSystemDataContractKeysTask, configFile, systemConfigs, ) { @@ -57,28 +55,11 @@ class GroupResetCommand extends GroupBaseCommand { task: (ctx) => { ctx.skipPlatformInitialization = true; - config.set('platform.dpns', baseConfig.platform.dpns); - config.set('platform.dashpay', baseConfig.platform.dashpay); - config.set('platform.featureFlags', baseConfig.platform.featureFlags); - config.set('platform.masternodeRewardShares', baseConfig.platform.masternodeRewardShares); - - // TODO: Should stay the same - config.set('platform.drive.tenderdash.node.id', baseConfig.platform.drive.tenderdash.node.id); - config.set('platform.drive.tenderdash.node.key', baseConfig.platform.drive.tenderdash.node.key); - config.set('platform.drive.tenderdash.genesis', baseConfig.platform.drive.tenderdash.genesis); - if (!ctx.isPlatformOnlyReset) { config.set('core.masternode.operator.privateKey', baseConfig.core.masternode.operator.privateKey); } - return new Listr([ - { - task: () => resetNodeTask(config), - }, - { - task: () => generateSystemDataContractKeysTask(config, config.get('network')), - }, - ]); + return resetNodeTask(config); }, }))), }, @@ -89,16 +70,16 @@ class GroupResetCommand extends GroupBaseCommand { configGroup.forEach((config) => configFile.removeConfig(config.getName())) ), }, - { - enabled: (ctx) => !ctx.isHardReset, - title: 'Configure Tenderdash nodes', - task: () => configureTenderdashTask(configGroup), - }, { enabled: (ctx) => !ctx.isHardReset && !ctx.isPlatformOnlyReset, title: 'Configure Core nodes', task: () => configureCoreTask(configGroup), }, + { + enabled: (ctx) => !ctx.isHardReset, + title: 'Configure Tenderdash nodes', + task: () => configureTenderdashTask(configGroup), + }, { // in case we don't need to register masternodes title: `Generate ${amount} dash to local wallet`, diff --git a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js index d29074bd780..773683f7308 100644 --- a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js @@ -170,9 +170,7 @@ function setupLocalPresetTaskFactory( config.set('dashmate.helper.api.port', config.get('dashmate.helper.api.port') + (i * 100)); - return new Listr([{ - task: () => generateSystemDataContractKeysTask(config, network), - }]); + return generateSystemDataContractKeysTask(config, network); } return null; From 9bea33d03303f83acd98a5396b6286f2653178ca Mon Sep 17 00:00:00 2001 From: pshenmic Date: Thu, 20 Apr 2023 18:52:50 +0400 Subject: [PATCH 5/7] fix(dashmate): print system contracts private keys --- ...nerateSystemDataContractKeysTaskFactory.js | 32 +++++++++++++++++++ scripts/configure_test_suite.sh | 12 +++---- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js index 04e4533d46e..db2df560102 100644 --- a/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js @@ -16,6 +16,7 @@ function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { { task: async () => { const { + hdPrivateKey: dpnsPrivateKey, derivedPrivateKeys: [ dpnsDerivedMasterPrivateKey, dpnsDerivedSecondPrivateKey, @@ -23,6 +24,7 @@ function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { } = await generateHDPrivateKeys(network, [0, 1]); const { + hdPrivateKey: featureFlagsPrivateKey, derivedPrivateKeys: [ featureFlagsDerivedMasterPrivateKey, featureFlagsDerivedSecondPrivateKey, @@ -30,6 +32,7 @@ function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { } = await generateHDPrivateKeys(network, [0, 1]); const { + hdPrivateKey: dashpayPrivateKey, derivedPrivateKeys: [ dashpayDerivedMasterPrivateKey, dashpayDerivedSecondPrivateKey, @@ -37,6 +40,15 @@ function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { } = await generateHDPrivateKeys(network, [0, 1]); const { + hdPrivateKey: withdrawalsPrivateKey, + derivedPrivateKeys: [ + withdrawalsDerivedMasterPrivateKey, + withdrawalsDerivedSecondPrivateKey, + ], + } = await generateHDPrivateKeys(network, [0, 1]); + + const { + hdPrivateKey: masternodeRewardSharesPrivateKey, derivedPrivateKeys: [ masternodeRewardSharesDerivedMasterPrivateKey, masternodeRewardSharesDerivedSecondPrivateKey, @@ -52,12 +64,32 @@ function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { config.set('platform.dashpay.masterPublicKey', dashpayDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); config.set('platform.dashpay.secondPublicKey', dashpayDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); + config.set('platform.withdrawals.masterPublicKey', + withdrawalsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); + config.set('platform.withdrawals.secondPublicKey', + withdrawalsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); + config.set('platform.masternodeRewardShares.masterPublicKey', masternodeRewardSharesDerivedMasterPrivateKey.privateKey .toPublicKey().toString()); config.set('platform.masternodeRewardShares.secondPublicKey', masternodeRewardSharesDerivedSecondPrivateKey.privateKey .toPublicKey().toString()); + + // eslint-disable-next-line no-console + console.log(`DPNS Private Key: ${dpnsPrivateKey.toString()}`); + + // eslint-disable-next-line no-console + console.log(`Feature Flags Private Key: ${featureFlagsPrivateKey.toString()}`); + + // eslint-disable-next-line no-console + console.log(`Dashpay Private Key: ${dashpayPrivateKey.toString()}`); + + // eslint-disable-next-line no-console + console.log(`Masternode Reward Shares Private Key: ${masternodeRewardSharesPrivateKey.toString()}`); + + // eslint-disable-next-line no-console + console.log(`Withdrawals Private Key: ${withdrawalsPrivateKey.toString()}`); }, }, ]); diff --git a/scripts/configure_test_suite.sh b/scripts/configure_test_suite.sh index 2a6ce8de205..6a9c817f9aa 100755 --- a/scripts/configure_test_suite.sh +++ b/scripts/configure_test_suite.sh @@ -14,12 +14,12 @@ CONFIG="local" SETUP_FILE_PATH=${PATH_TO_PROJECT_ROOT}/logs/setup.log -DPNS_OWNER_PRIVATE_KEY=$(grep -m 1 "DPNS Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $5}') -FEATURE_FLAGS_OWNER_PRIVATE_KEY=$(grep -m 1 "Feature Flags Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $6}') -DASHPAY_OWNER_PRIVATE_KEY=$(grep -m 1 "Dashpay Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $5}') -MASTERNODE_REWARD_SHARES_OWNER_PRIVATE_KEY=$(grep -m 1 "Masternode Reward Shares Private Key:" "${SETUP_FILE_PATH}" | awk '{$1="";printf $7}') -MASTERNODE_OWNER_PRO_REG_TX_HASH=$(grep -m 1 "ProRegTx transaction ID:" "${SETUP_FILE_PATH}" | awk '{printf $5}') -MASTERNODE_OWNER_MASTER_PRIVATE_KEY=$(grep -m 1 "Owner Private Key:" "${SETUP_FILE_PATH}" | awk '{printf $5}') +DPNS_OWNER_PRIVATE_KEY=$(grep -m 1 "DPNS Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $4}') +FEATURE_FLAGS_OWNER_PRIVATE_KEY=$(grep -m 1 "Feature Flags Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $5}') +DASHPAY_OWNER_PRIVATE_KEY=$(grep -m 1 "Dashpay Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $4}') +MASTERNODE_REWARD_SHARES_OWNER_PRIVATE_KEY=$(grep -m 1 "Masternode Reward Shares Private Key:" "${SETUP_FILE_PATH}" | awk '{$1="";printf $6}') +MASTERNODE_OWNER_PRO_REG_TX_HASH=$(grep -m 1 "ProRegTx transaction ID:" "${SETUP_FILE_PATH}" | awk '{printf $4}') +MASTERNODE_OWNER_MASTER_PRIVATE_KEY=$(grep -m 1 "Owner Private Key:" "${SETUP_FILE_PATH}" | awk '{printf $4}') echo "Mint 100 Dash to faucet address" From 1cfac2e8e218fb57deb5d83b8500a15b736e15db Mon Sep 17 00:00:00 2001 From: pshenmic Date: Sat, 22 Apr 2023 09:32:16 +0500 Subject: [PATCH 6/7] fix(dashmate): revert generateSystemDataContractKeysTask --- packages/dashmate/src/createDIContainer.js | 3 - ...nerateSystemDataContractKeysTaskFactory.js | 101 ------------------ .../setup/setupLocalPresetTaskFactory.js | 87 +++++++++++++-- 3 files changed, 80 insertions(+), 111 deletions(-) delete mode 100644 packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js diff --git a/packages/dashmate/src/createDIContainer.js b/packages/dashmate/src/createDIContainer.js index 4cc3792a0a2..7d36704f686 100644 --- a/packages/dashmate/src/createDIContainer.js +++ b/packages/dashmate/src/createDIContainer.js @@ -66,7 +66,6 @@ const resetNodeTaskFactory = require('./listr/tasks/resetNodeTaskFactory'); const configureCoreTaskFactory = require('./listr/tasks/setup/local/configureCoreTaskFactory'); const configureTenderdashTaskFactory = require('./listr/tasks/setup/local/configureTenderdashTaskFactory'); const obtainSelfSignedCertificateTaskFactory = require('./listr/tasks/ssl/selfSigned/obtainSelfSignedCertificateTaskFactory'); -const generateSystemDataContractKeysTaskFactory = require('./listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory'); const waitForNodeToBeReadyTaskFactory = require('./listr/tasks/platform/waitForNodeToBeReadyTaskFactory'); const enableCoreQuorumsTaskFactory = require('./listr/tasks/setup/local/enableCoreQuorumsTaskFactory'); const startGroupNodesTaskFactory = require('./listr/tasks/startGroupNodesTaskFactory'); @@ -215,8 +214,6 @@ async function createDIContainer() { setupRegularPresetTask: asFunction(setupRegularPresetTaskFactory).singleton(), configureCoreTask: asFunction(configureCoreTaskFactory).singleton(), configureTenderdashTask: asFunction(configureTenderdashTaskFactory).singleton(), - generateSystemDataContractKeysTask: asFunction(generateSystemDataContractKeysTaskFactory) - .singleton(), waitForNodeToBeReadyTask: asFunction(waitForNodeToBeReadyTaskFactory).singleton(), enableCoreQuorumsTask: asFunction(enableCoreQuorumsTaskFactory).singleton(), registerMasternodeGuideTask: asFunction(registerMasternodeGuideTaskFactory).singleton(), diff --git a/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js deleted file mode 100644 index db2df560102..00000000000 --- a/packages/dashmate/src/listr/tasks/setup/local/generateSystemDataContractKeysTaskFactory.js +++ /dev/null @@ -1,101 +0,0 @@ -const { Listr } = require('listr2'); - -/** - * @param {generateHDPrivateKeys} generateHDPrivateKeys - * @return {configureTenderdashTask} - */ -function generateSystemDataContractKeysTaskFactory(generateHDPrivateKeys) { - /** - * @typedef {configureTenderdashTask} - * @return {Listr} - * @param config - * @param network - */ - function generateSystemDataContractKeysTask(config, network) { - return new Listr([ - { - task: async () => { - const { - hdPrivateKey: dpnsPrivateKey, - derivedPrivateKeys: [ - dpnsDerivedMasterPrivateKey, - dpnsDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: featureFlagsPrivateKey, - derivedPrivateKeys: [ - featureFlagsDerivedMasterPrivateKey, - featureFlagsDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: dashpayPrivateKey, - derivedPrivateKeys: [ - dashpayDerivedMasterPrivateKey, - dashpayDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: withdrawalsPrivateKey, - derivedPrivateKeys: [ - withdrawalsDerivedMasterPrivateKey, - withdrawalsDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - const { - hdPrivateKey: masternodeRewardSharesPrivateKey, - derivedPrivateKeys: [ - masternodeRewardSharesDerivedMasterPrivateKey, - masternodeRewardSharesDerivedSecondPrivateKey, - ], - } = await generateHDPrivateKeys(network, [0, 1]); - - config.set('platform.dpns.masterPublicKey', dpnsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); - config.set('platform.dpns.secondPublicKey', dpnsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); - - config.set('platform.featureFlags.masterPublicKey', featureFlagsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); - config.set('platform.featureFlags.secondPublicKey', featureFlagsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); - - config.set('platform.dashpay.masterPublicKey', dashpayDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); - config.set('platform.dashpay.secondPublicKey', dashpayDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); - - config.set('platform.withdrawals.masterPublicKey', - withdrawalsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); - config.set('platform.withdrawals.secondPublicKey', - withdrawalsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); - - config.set('platform.masternodeRewardShares.masterPublicKey', - masternodeRewardSharesDerivedMasterPrivateKey.privateKey - .toPublicKey().toString()); - config.set('platform.masternodeRewardShares.secondPublicKey', - masternodeRewardSharesDerivedSecondPrivateKey.privateKey - .toPublicKey().toString()); - - // eslint-disable-next-line no-console - console.log(`DPNS Private Key: ${dpnsPrivateKey.toString()}`); - - // eslint-disable-next-line no-console - console.log(`Feature Flags Private Key: ${featureFlagsPrivateKey.toString()}`); - - // eslint-disable-next-line no-console - console.log(`Dashpay Private Key: ${dashpayPrivateKey.toString()}`); - - // eslint-disable-next-line no-console - console.log(`Masternode Reward Shares Private Key: ${masternodeRewardSharesPrivateKey.toString()}`); - - // eslint-disable-next-line no-console - console.log(`Withdrawals Private Key: ${withdrawalsPrivateKey.toString()}`); - }, - }, - ]); - } - - return generateSystemDataContractKeysTask; -} - -module.exports = generateSystemDataContractKeysTaskFactory; diff --git a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js index 773683f7308..023affc64cc 100644 --- a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js @@ -17,7 +17,7 @@ const deriveTenderdashNodeId = require('../../../tenderdash/deriveTenderdashNode * @param {obtainSelfSignedCertificateTask} obtainSelfSignedCertificateTask * @param {resolveDockerHostIp} resolveDockerHostIp * @param {configFileRepository} configFileRepository - * @param {generateSystemDataContractKeysTask} generateSystemDataContractKeysTask + * @param {generateHDPrivateKeys} generateHDPrivateKeys */ function setupLocalPresetTaskFactory( configFile, @@ -26,7 +26,7 @@ function setupLocalPresetTaskFactory( configureTenderdashTask, resolveDockerHostIp, configFileRepository, - generateSystemDataContractKeysTask, + generateHDPrivateKeys, ) { /** * @typedef {setupLocalPresetTask} @@ -87,7 +87,7 @@ function setupLocalPresetTaskFactory( }, { title: 'Create local group configs', - task: async (ctx) => { + task: async (ctx, task) => { ctx.configGroup = new Array(ctx.nodeCount) .fill(undefined) .map((value, i) => `local_${i + 1}`) @@ -103,6 +103,61 @@ function setupLocalPresetTaskFactory( const network = ctx.configGroup[0].get('network'); + const { + hdPrivateKey: dpnsPrivateKey, + derivedPrivateKeys: [ + dpnsDerivedMasterPrivateKey, + dpnsDerivedSecondPrivateKey, + ], + } = await generateHDPrivateKeys(network, [0, 1]); + + const { + hdPrivateKey: featureFlagsPrivateKey, + derivedPrivateKeys: [ + featureFlagsDerivedMasterPrivateKey, + featureFlagsDerivedSecondPrivateKey, + ], + } = await generateHDPrivateKeys(network, [0, 1]); + + const { + hdPrivateKey: dashpayPrivateKey, + derivedPrivateKeys: [ + dashpayDerivedMasterPrivateKey, + dashpayDerivedSecondPrivateKey, + ], + } = await generateHDPrivateKeys(network, [0, 1]); + + const { + hdPrivateKey: withdrawalsPrivateKey, + derivedPrivateKeys: [ + withdrawalsDerivedMasterPrivateKey, + withdrawalsDerivedSecondPrivateKey, + ], + } = await generateHDPrivateKeys(network, [0, 1]); + + const { + hdPrivateKey: masternodeRewardSharesPrivateKey, + derivedPrivateKeys: [ + masternodeRewardSharesDerivedMasterPrivateKey, + masternodeRewardSharesDerivedSecondPrivateKey, + ], + } = await generateHDPrivateKeys(network, [0, 1]); + + // eslint-disable-next-line no-param-reassign + task.output = `DPNS Private Key: ${dpnsPrivateKey.toString()}`; + + // eslint-disable-next-line no-param-reassign + task.output = `Feature Flags Private Key: ${featureFlagsPrivateKey.toString()}`; + + // eslint-disable-next-line no-param-reassign + task.output = `Dashpay Private Key: ${dashpayPrivateKey.toString()}`; + + // eslint-disable-next-line no-param-reassign + task.output = `Masternode Reward Shares Private Key: ${masternodeRewardSharesPrivateKey.toString()}`; + + // eslint-disable-next-line no-param-reassign + task.output = `Withdrawals Private Key: ${withdrawalsPrivateKey.toString()}`; + const subTasks = ctx.configGroup.map((config, i) => ( { title: `Create ${config.getName()} config`, @@ -168,12 +223,30 @@ function setupLocalPresetTaskFactory( config.set('platform.drive.abci.log.jsonFile.path', driveJsonLogFile); } - config.set('dashmate.helper.api.port', config.get('dashmate.helper.api.port') + (i * 100)); + config.set('platform.dpns.masterPublicKey', dpnsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); + config.set('platform.dpns.secondPublicKey', dpnsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); - return generateSystemDataContractKeysTask(config, network); - } + config.set('platform.featureFlags.masterPublicKey', featureFlagsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); + config.set('platform.featureFlags.secondPublicKey', featureFlagsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); + + config.set('platform.dashpay.masterPublicKey', dashpayDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); + config.set('platform.dashpay.secondPublicKey', dashpayDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); - return null; + config.set('platform.withdrawals.masterPublicKey', withdrawalsDerivedMasterPrivateKey.privateKey.toPublicKey().toString()); + config.set('platform.withdrawals.secondPublicKey', withdrawalsDerivedSecondPrivateKey.privateKey.toPublicKey().toString()); + + config.set( + 'platform.masternodeRewardShares.masterPublicKey', + masternodeRewardSharesDerivedMasterPrivateKey.privateKey + .toPublicKey().toString(), + ); config.set( + 'platform.masternodeRewardShares.secondPublicKey', + masternodeRewardSharesDerivedSecondPrivateKey.privateKey + .toPublicKey().toString(), + ); + + config.set('dashmate.helper.api.port', config.get('dashmate.helper.api.port') + (i * 100)); + } }, options: { persistentOutput: true, From 6c8f23e99772b97f85e16193f8a02ff52ac0e0f3 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Sat, 22 Apr 2023 09:52:51 +0500 Subject: [PATCH 7/7] chore(dashmate): revert script --- scripts/configure_test_suite.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/configure_test_suite.sh b/scripts/configure_test_suite.sh index 6a9c817f9aa..2a6ce8de205 100755 --- a/scripts/configure_test_suite.sh +++ b/scripts/configure_test_suite.sh @@ -14,12 +14,12 @@ CONFIG="local" SETUP_FILE_PATH=${PATH_TO_PROJECT_ROOT}/logs/setup.log -DPNS_OWNER_PRIVATE_KEY=$(grep -m 1 "DPNS Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $4}') -FEATURE_FLAGS_OWNER_PRIVATE_KEY=$(grep -m 1 "Feature Flags Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $5}') -DASHPAY_OWNER_PRIVATE_KEY=$(grep -m 1 "Dashpay Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $4}') -MASTERNODE_REWARD_SHARES_OWNER_PRIVATE_KEY=$(grep -m 1 "Masternode Reward Shares Private Key:" "${SETUP_FILE_PATH}" | awk '{$1="";printf $6}') -MASTERNODE_OWNER_PRO_REG_TX_HASH=$(grep -m 1 "ProRegTx transaction ID:" "${SETUP_FILE_PATH}" | awk '{printf $4}') -MASTERNODE_OWNER_MASTER_PRIVATE_KEY=$(grep -m 1 "Owner Private Key:" "${SETUP_FILE_PATH}" | awk '{printf $4}') +DPNS_OWNER_PRIVATE_KEY=$(grep -m 1 "DPNS Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $5}') +FEATURE_FLAGS_OWNER_PRIVATE_KEY=$(grep -m 1 "Feature Flags Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $6}') +DASHPAY_OWNER_PRIVATE_KEY=$(grep -m 1 "Dashpay Private Key:" ${SETUP_FILE_PATH} | awk '{$1="";printf $5}') +MASTERNODE_REWARD_SHARES_OWNER_PRIVATE_KEY=$(grep -m 1 "Masternode Reward Shares Private Key:" "${SETUP_FILE_PATH}" | awk '{$1="";printf $7}') +MASTERNODE_OWNER_PRO_REG_TX_HASH=$(grep -m 1 "ProRegTx transaction ID:" "${SETUP_FILE_PATH}" | awk '{printf $5}') +MASTERNODE_OWNER_MASTER_PRIVATE_KEY=$(grep -m 1 "Owner Private Key:" "${SETUP_FILE_PATH}" | awk '{printf $5}') echo "Mint 100 Dash to faucet address"