diff --git a/src/main/java/co/rsk/federate/btcreleaseclient/BtcReleaseClient.java b/src/main/java/co/rsk/federate/btcreleaseclient/BtcReleaseClient.java index 70b3b564a..614bc449e 100644 --- a/src/main/java/co/rsk/federate/btcreleaseclient/BtcReleaseClient.java +++ b/src/main/java/co/rsk/federate/btcreleaseclient/BtcReleaseClient.java @@ -240,10 +240,12 @@ public void onBestBlock(org.ethereum.core.Block block, List // Sign svp spend tx waiting for signatures, if it exists, // before attempting to sign any pegouts. - federatorSupport.getStateForProposedFederator() - .map(StateForProposedFederator::getSvpSpendTxWaitingForSignatures) - .filter(svpSpendTxWaitingForSignatures -> isSVPSpendTxReadyToSign(block.getNumber(), svpSpendTxWaitingForSignatures)) - .ifPresent(svpSpendTxReadyToBeSigned -> processReleases(Set.of(svpSpendTxReadyToBeSigned))); + if (activationConfig.isActive(ConsensusRule.RSKIP419, block.getNumber())) { + federatorSupport.getStateForProposedFederator() + .map(StateForProposedFederator::getSvpSpendTxWaitingForSignatures) + .filter(svpSpendTxWaitingForSignatures -> isSVPSpendTxReadyToSign(block.getNumber(), svpSpendTxWaitingForSignatures)) + .ifPresent(svpSpendTxReadyToBeSigned -> processReleases(Set.of(svpSpendTxReadyToBeSigned))); + } // Processing transactions waiting for signatures on best block only still "works", // since it all lies within RSK's blockchain and normal rules apply. I.e., this diff --git a/src/main/java/co/rsk/federate/watcher/FederationWatcher.java b/src/main/java/co/rsk/federate/watcher/FederationWatcher.java index d4c01f458..99880ec75 100644 --- a/src/main/java/co/rsk/federate/watcher/FederationWatcher.java +++ b/src/main/java/co/rsk/federate/watcher/FederationWatcher.java @@ -97,7 +97,7 @@ private void updateProposedFederation() { boolean hasProposedFederationChanged = !currentlyProposedFederationAddress.equals(oldProposedFederationAddress); if (hasProposedFederationChanged) { - logger.info("[updateRetiringFederation] Proposed federation changed from {} to {}", + logger.info("[updateProposedFederation] Proposed federation changed from {} to {}", oldProposedFederationAddress.orElse(null), currentlyProposedFederationAddress.orElse(null)); diff --git a/src/test/java/co/rsk/federate/btcreleaseclient/BtcReleaseClientTest.java b/src/test/java/co/rsk/federate/btcreleaseclient/BtcReleaseClientTest.java index 5b4c76968..27315a936 100644 --- a/src/test/java/co/rsk/federate/btcreleaseclient/BtcReleaseClientTest.java +++ b/src/test/java/co/rsk/federate/btcreleaseclient/BtcReleaseClientTest.java @@ -80,7 +80,7 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; import java.util.stream.Stream; - +import org.ethereum.config.blockchain.upgrades.ConsensusRule; import org.ethereum.config.Constants; import org.ethereum.config.blockchain.upgrades.ActivationConfig; import org.ethereum.core.Block; @@ -740,9 +740,12 @@ void onBestBlock_whenOnlySvpSpendTxWaitingForSignaturesIsAvailable_shouldAddSign mock(NodeBlockProcessor.class) ); + ActivationConfig activationConfig = mock(ActivationConfig.class); + when(activationConfig.isActive(ConsensusRule.RSKIP419, bestBlock.getNumber())).thenReturn(true); + btcReleaseClient.setup( signer, - mock(ActivationConfig.class), + activationConfig, signerMessageBuilderFactory, releaseCreationInformationGetter, mock(ReleaseRequirementsEnforcer.class), @@ -853,9 +856,12 @@ void onBestBlock_whenBothPegoutAndSvpSpendTxWaitingForSignaturesAreAvailableAndF mock(NodeBlockProcessor.class) ); + ActivationConfig activationConfig = mock(ActivationConfig.class); + when(activationConfig.isActive(ConsensusRule.RSKIP419, bestBlock.getNumber())).thenReturn(true); + btcReleaseClient.setup( signer, - mock(ActivationConfig.class), + activationConfig, signerMessageBuilderFactory, releaseCreationInformationGetter, mock(ReleaseRequirementsEnforcer.class), @@ -971,9 +977,12 @@ void onBestBlock_whenBothPegoutAndSvpSpendTxWaitingForSignaturesIsAvailable_shou mock(NodeBlockProcessor.class) ); + ActivationConfig activationConfig = mock(ActivationConfig.class); + when(activationConfig.isActive(ConsensusRule.RSKIP419, bestBlock.getNumber())).thenReturn(true); + btcReleaseClient.setup( signer, - mock(ActivationConfig.class), + activationConfig, signerMessageBuilderFactory, releaseCreationInformationGetter, mock(ReleaseRequirementsEnforcer.class),