Coverage Summary for Class: RemascFederationProvider (co.rsk.remasc)
Class |
Class, %
|
Method, %
|
Line, %
|
RemascFederationProvider |
0%
(0/1)
|
0%
(0/3)
|
0%
(0/7)
|
1 /*
2 * This file is part of RskJ
3 * Copyright (C) 2018 RSK Labs Ltd.
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 package co.rsk.remasc;
19
20 import co.rsk.config.BridgeConstants;
21 import co.rsk.core.RskAddress;
22 import co.rsk.peg.BridgeStorageProvider;
23 import co.rsk.peg.FederationSupport;
24 import org.ethereum.config.blockchain.upgrades.ActivationConfig;
25 import org.ethereum.core.Block;
26 import org.ethereum.core.Repository;
27 import org.ethereum.crypto.ECKey;
28 import org.ethereum.vm.PrecompiledContracts;
29
30 /**
31 * Created by ajlopez on 14/11/2017.
32 */
33 public class RemascFederationProvider {
34 private final FederationSupport federationSupport;
35
36 public RemascFederationProvider(
37 ActivationConfig activationConfig,
38 BridgeConstants bridgeConstants,
39 Repository repository,
40 Block processingBlock) {
41 BridgeStorageProvider bridgeStorageProvider = new BridgeStorageProvider(
42 repository,
43 PrecompiledContracts.BRIDGE_ADDR,
44 bridgeConstants,
45 activationConfig.forBlock(processingBlock.getNumber())
46 );
47 this.federationSupport = new FederationSupport(bridgeConstants, bridgeStorageProvider, processingBlock);
48 }
49
50 public int getFederationSize() {
51 return this.federationSupport.getFederationSize();
52 }
53
54 public RskAddress getFederatorAddress(int n) {
55 byte[] publicKey = this.federationSupport.getFederatorBtcPublicKey(n);
56 return new RskAddress(ECKey.fromPublicOnly(publicKey).getAddress());
57 }
58 }