diff --git a/packages/celotool/src/e2e-tests/governance_tests.ts b/packages/celotool/src/e2e-tests/governance_tests.ts index ecbd65a7275..39e8ea7f970 100644 --- a/packages/celotool/src/e2e-tests/governance_tests.ts +++ b/packages/celotool/src/e2e-tests/governance_tests.ts @@ -923,6 +923,7 @@ describe('governance tests', () => { wsport: 8559, rpcport: 9559, privateKey: rotation0PrivateKey.slice(2), + minerValidator: privateKeyToAddress(rotation0PrivateKey.slice(2)), }, { name: 'validator2KeyRotation1', @@ -933,6 +934,7 @@ describe('governance tests', () => { wsport: 8561, rpcport: 9561, privateKey: rotation1PrivateKey.slice(2), + minerValidator: privateKeyToAddress(rotation1PrivateKey.slice(2)), }, ] diff --git a/packages/celotool/src/e2e-tests/replica_tests.ts b/packages/celotool/src/e2e-tests/replica_tests.ts index dd6b4f7e793..8f2daaa6eeb 100644 --- a/packages/celotool/src/e2e-tests/replica_tests.ts +++ b/packages/celotool/src/e2e-tests/replica_tests.ts @@ -1,5 +1,6 @@ import { BlockHeader } from '@celo/connect' import { DefaultRpcCaller, RpcCaller } from '@celo/connect/lib/utils/rpc-caller' +import { privateKeyToAddress } from '@celo/utils/lib/address' import { bitIsSet, parseBlockExtraData } from '@celo/utils/lib/istanbul' import { assert } from 'chai' import Web3 from 'web3' @@ -138,6 +139,7 @@ describe('replica swap tests', () => { port: 30315, rpcport: 8555, privateKey: gethConfig.instances[0].privateKey, + minerValidator: privateKeyToAddress(gethConfig.instances[0].privateKey!), proxy: 'validator0-proxy0', isProxied: true, proxyport: 30304, diff --git a/packages/celotool/src/e2e-tests/transfer_tests.ts b/packages/celotool/src/e2e-tests/transfer_tests.ts index 89bf93fd6a9..2d1f8decbd0 100644 --- a/packages/celotool/src/e2e-tests/transfer_tests.ts +++ b/packages/celotool/src/e2e-tests/transfer_tests.ts @@ -244,7 +244,8 @@ describe('Transfer tests', function(this: any) { rpcport: 8547, // We need to set an etherbase here so that the full node will accept transactions from // light clients. - etherbase: FeeRecipientAddress, + minerValidator: FeeRecipientAddress, + txFeeRecipient: FeeRecipientAddress, } const restartWithCleanNodes = async () => { diff --git a/packages/celotool/src/e2e-tests/utils.ts b/packages/celotool/src/e2e-tests/utils.ts index cadea96e738..7e41dcfddcc 100644 --- a/packages/celotool/src/e2e-tests/utils.ts +++ b/packages/celotool/src/e2e-tests/utils.ts @@ -270,6 +270,10 @@ export function getContext(gethConfig: GethRunConfig, verbose: boolean = verbose instance.privateKey = instance.privateKey || proxyPrivateKeys[proxyIndex] proxyIndex++ } + + if (!instance.minerValidator && (instance.validating || instance.isProxied)) { + instance.minerValidator = privateKeyToAddress(instance.privateKey!) + } } // The proxies will need to know their proxied validator's address diff --git a/packages/celotool/src/lib/geth.ts b/packages/celotool/src/lib/geth.ts index 1a5c0aca946..127ae74f8d1 100644 --- a/packages/celotool/src/lib/geth.ts +++ b/packages/celotool/src/lib/geth.ts @@ -885,7 +885,12 @@ export async function startGeth( const privateKey = instance.privateKey || '' const lightserv = instance.lightserv || false - const etherbase = instance.etherbase || '' + const minerValidator = instance.minerValidator + if (instance.validating && !minerValidator) { + throw new Error('miner.validator address from the instance is required') + } + // TODO(ponti): add flag after Donut fork + // const txFeeRecipient = instance.txFeeRecipient || minerValidator const verbosity = gethConfig.verbosity ? gethConfig.verbosity : '3' let blocktime: number = 1 @@ -916,9 +921,19 @@ export async function startGeth( '--allow-insecure-unlock', // geth1.9 to use http w/unlocking '--gcmode=archive', // Needed to retrieve historical state '--istanbul.blockperiod', - blocktime.toString(), + blocktime.toString() ] + if (minerValidator) { + gethArgs.push( + '--etherbase', // TODO(ponti): change to '--miner.validator' after deprecating the 'etherbase' flag + minerValidator + ) + // TODO(ponti): add flag after Donut fork + // '--tx-fee-recipient', + // txFeeRecipient + } + if (rpcport) { gethArgs.push( '--rpc', @@ -939,10 +954,6 @@ export async function startGeth( ) } - if (etherbase) { - gethArgs.push('--etherbase', etherbase) - } - if (lightserv) { gethArgs.push('--light.serve=90') gethArgs.push('--light.maxpeers=10') diff --git a/packages/celotool/src/lib/interfaces/geth-instance-config.ts b/packages/celotool/src/lib/interfaces/geth-instance-config.ts index 2befa9b0ee9..649142a3962 100644 --- a/packages/celotool/src/lib/interfaces/geth-instance-config.ts +++ b/packages/celotool/src/lib/interfaces/geth-instance-config.ts @@ -1,4 +1,4 @@ -import BigNumber from 'bignumber.js' +import BigNumber from 'bignumber.js'; export interface GethInstanceConfig { name: string @@ -12,7 +12,8 @@ export interface GethInstanceConfig { wsport?: number lightserv?: boolean privateKey?: string - etherbase?: string + minerValidator?: string + txFeeRecipient?: string proxies?: Array pid?: number isProxied?: boolean