Skip to content

Commit cc0af43

Browse files
committed
Remove legacy activation checks and redundant tests in FederationProviderFromFederatorSupport.
1 parent 37b2511 commit cc0af43

File tree

2 files changed

+69
-225
lines changed

2 files changed

+69
-225
lines changed

src/main/java/co/rsk/federate/FederationProviderFromFederatorSupport.java

Lines changed: 14 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
import static co.rsk.peg.federation.FederationChangeResponseCode.FEDERATION_NON_EXISTENT;
2121
import static co.rsk.peg.federation.FederationMember.KeyType;
22-
import static org.ethereum.config.blockchain.upgrades.ConsensusRule.*;
2322

2423
import co.rsk.bitcoinj.core.Address;
2524
import co.rsk.bitcoinj.core.BtcECKey;
@@ -64,23 +63,12 @@ public FederationProviderFromFederatorSupport(
6463
public Federation getActiveFederation() {
6564
List<FederationMember> members = new ArrayList<>();
6665
int federationSize = federatorSupport.getFederationSize();
67-
boolean useTypedPublicKeyGetter = federatorSupport.getConfigForBestBlock().isActive(RSKIP123);
6866
for (int i = 0; i < federationSize; i++) {
69-
// Select method depending on network configuration for best block
70-
FederationMember member;
71-
if (useTypedPublicKeyGetter) {
72-
BtcECKey btcKey = BtcECKey.fromPublicOnly(federatorSupport.getFederatorPublicKeyOfType(i, FederationMember.KeyType.BTC).getPubKey());
73-
ECKey rskKey = federatorSupport.getFederatorPublicKeyOfType(i, FederationMember.KeyType.RSK);
74-
ECKey mstKey = federatorSupport.getFederatorPublicKeyOfType(i, FederationMember.KeyType.MST);
75-
76-
member = new FederationMember(btcKey, rskKey, mstKey);
77-
} else {
78-
// Before the fork, all of BTC, RSK and MST keys are the same
79-
BtcECKey btcKey = federatorSupport.getFederatorPublicKey(i);
80-
ECKey rskMstKey = ECKey.fromPublicOnly(btcKey.getPubKey());
81-
member = new FederationMember(btcKey, rskMstKey, rskMstKey);
82-
}
67+
BtcECKey btcKey = BtcECKey.fromPublicOnly(federatorSupport.getFederatorPublicKeyOfType(i, FederationMember.KeyType.BTC).getPubKey());
68+
ECKey rskKey = federatorSupport.getFederatorPublicKeyOfType(i, FederationMember.KeyType.RSK);
69+
ECKey mstKey = federatorSupport.getFederatorPublicKeyOfType(i, FederationMember.KeyType.MST);
8370

71+
FederationMember member = new FederationMember(btcKey, rskKey, mstKey);
8472
members.add(member);
8573
}
8674
Instant creationTime = federatorSupport.getFederationCreationTime();
@@ -107,25 +95,13 @@ public Optional<Federation> getRetiringFederation() {
10795
}
10896

10997
Address retiringFederationAddress = getRetiringFederationAddress().orElseThrow(IllegalStateException::new);
110-
boolean useTypedPublicKeyGetter = federatorSupport.getConfigForBestBlock().isActive(RSKIP123);
11198
List<FederationMember> members = new ArrayList<>();
11299
for (int i = 0; i < federationSize; i++) {
113-
// Select method depending on network configuration for best block
114-
FederationMember member;
115-
if (useTypedPublicKeyGetter) {
116-
BtcECKey btcKey = BtcECKey.fromPublicOnly(federatorSupport.getRetiringFederatorPublicKeyOfType(i, FederationMember.KeyType.BTC).getPubKey());
117-
ECKey rskKey = federatorSupport.getRetiringFederatorPublicKeyOfType(i, FederationMember.KeyType.RSK);
118-
ECKey mstKey = federatorSupport.getRetiringFederatorPublicKeyOfType(i, FederationMember.KeyType.MST);
119-
120-
member = new FederationMember(btcKey, rskKey, mstKey);
121-
} else {
122-
// Before the fork, all of BTC, RSK and MST keys are the same
123-
BtcECKey btcKey = federatorSupport.getRetiringFederatorPublicKey(i);
124-
ECKey rskMstKey = ECKey.fromPublicOnly(btcKey.getPubKey());
125-
126-
member = new FederationMember(btcKey, rskMstKey, rskMstKey);
127-
}
100+
BtcECKey btcKey = BtcECKey.fromPublicOnly(federatorSupport.getRetiringFederatorPublicKeyOfType(i, FederationMember.KeyType.BTC).getPubKey());
101+
ECKey rskKey = federatorSupport.getRetiringFederatorPublicKeyOfType(i, FederationMember.KeyType.RSK);
102+
ECKey mstKey = federatorSupport.getRetiringFederatorPublicKeyOfType(i, FederationMember.KeyType.MST);
128103

104+
FederationMember member = new FederationMember(btcKey, rskKey, mstKey);
129105
members.add(member);
130106
}
131107

@@ -146,10 +122,6 @@ public Optional<Address> getRetiringFederationAddress() {
146122

147123
@Override
148124
public Optional<Federation> getProposedFederation() {
149-
if (!federatorSupport.getConfigForBestBlock().isActive(RSKIP419)) {
150-
return Optional.empty();
151-
}
152-
153125
int federationSize = federatorSupport.getProposedFederationSize()
154126
.orElse(FEDERATION_NON_EXISTENT.getCode());
155127
if (federationSize == FEDERATION_NON_EXISTENT.getCode()) {
@@ -188,7 +160,6 @@ public Optional<Federation> getProposedFederation() {
188160
@Override
189161
public Optional<Address> getProposedFederationAddress() {
190162
return Optional.of(federatorSupport)
191-
.filter(fedSupport -> fedSupport.getConfigForBestBlock().isActive(RSKIP419))
192163
.flatMap(FederatorSupport::getProposedFederationAddress);
193164
}
194165

@@ -197,20 +168,15 @@ private Federation buildFederation(FederationArgs federationArgs, Address expect
197168
.or(() -> tryBuildingP2shP2wshErpFederation(federationArgs,
198169
expectedFederationAddress))
199170
.orElseThrow(() ->
200-
buildInvalidFederationException(expectedFederationAddress)
171+
new IllegalStateException(
172+
String.format(
173+
"Cannot determine federation type for federation with address %s. Tried: standard multiSig, and P2SH-P2WSH ERP federations.",
174+
expectedFederationAddress
175+
)
176+
)
201177
);
202178
}
203179

204-
private static IllegalStateException buildInvalidFederationException(
205-
Address expectedFederationAddress) {
206-
return new IllegalStateException(
207-
String.format(
208-
"Cannot determine federation type for federation with address %s. Tried: standard multiSig, and P2SH-P2WSH ERP federations.",
209-
expectedFederationAddress
210-
)
211-
);
212-
}
213-
214180
private Optional<Federation> tryBuildingStandardMultiSigFederation(FederationArgs federationArgs, Address expectedFederationAddress) {
215181
Federation standardMultiSigFederation = FederationFactory.buildStandardMultiSigFederation(federationArgs);
216182
if (!standardMultiSigFederation.getAddress().equals(expectedFederationAddress)) {

0 commit comments

Comments
 (0)