1919
2020import static co .rsk .peg .federation .FederationChangeResponseCode .FEDERATION_NON_EXISTENT ;
2121import static co .rsk .peg .federation .FederationMember .KeyType ;
22- import static org .ethereum .config .blockchain .upgrades .ConsensusRule .*;
2322
2423import co .rsk .bitcoinj .core .Address ;
2524import 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