Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LockingCap Refactor Integration #2672

Merged
merged 40 commits into from
Aug 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
c6c88e1
LockingCapConstants Refactor
wilmerrootstock Jul 16, 2024
1c9b2bf
Create LockingCapStorageIndexKey Enum
wilmerrootstock Jul 16, 2024
83c93be
Locking Cap Storage Provider Interface
wilmerrootstock Jul 16, 2024
06f541e
LockingCapSupport Interface
wilmerrootstock Jul 16, 2024
07901e6
LockingCapConstants Test
wilmerrootstock Jul 16, 2024
de22bfd
Adding An Optional To Return Value getLockingCap() Method
wilmerrootstock Jul 16, 2024
86bd490
Removing Arrays.stream From increaseAuthorizedKeys Variable
wilmerrootstock Jul 16, 2024
bfe4e85
Create LockingCapConstants in BridgeConstants
wilmerrootstock Jul 18, 2024
686541a
Add LockingCapSupport To BridgeSupportBuilder
wilmerrootstock Jul 18, 2024
f78079d
Removing activations as a Variable in the Provider
wilmerrootstock Jul 17, 2024
82f85ba
Fixing Issue When lockingCap Is Optional.empty()
wilmerrootstock Jul 18, 2024
7baf0ed
LockingCapSupport Implementation
wilmerrootstock Jul 17, 2024
04afe10
Add LockingCapSupport Creation To BridgeSupportFactory
wilmerrootstock Jul 22, 2024
7b7001f
Adapt BridgeSupport Methods for LockingCap Refactor
wilmerrootstock Jul 18, 2024
0c2e40b
Removing activations as an input in save() method at a LockingCapSupp…
wilmerrootstock Jul 19, 2024
cf8fa26
Fix LockingCapTest after LockingCap refactor
wilmerrootstock Jul 24, 2024
f11ba1c
Fix BridgeSupportAddSignatureTest after LockingCap refactor
wilmerrootstock Jul 24, 2024
d7d6600
Fix BridgeSupportIT after LockingCap refactor
wilmerrootstock Jul 24, 2024
47aa343
Fix BridgeSupportRegisterBtcTransactionTest after LockingCap refactor
wilmerrootstock Jul 24, 2024
1b498d3
Fix BridgeStorageProviderTest after LockingCap refactor
wilmerrootstock Jul 24, 2024
fb27e23
Fix BridgeSupportTest after LockingCap refactor
wilmerrootstock Jul 25, 2024
26a9bc3
Fix PowpegMigrationTest after LockingCap refactor
wilmerrootstock Jul 25, 2024
f90d21c
Fix BridgeSupportTest after LockingCap refactor
wilmerrootstock Jul 25, 2024
f24a93c
Add Coverage To LockingCapStorageProviderImpl
wilmerrootstock Jul 29, 2024
b3e385a
Improving getLockingCap Method
wilmerrootstock Jul 30, 2024
1560a6d
Add Coverage To LockingCapSupportImpl
wilmerrootstock Jul 26, 2024
3daa991
Add Coverage To LockingCap-Related Methods In BridgeSupport
wilmerrootstock Jul 26, 2024
7d216bf
Fix BridgeSupportFlyoverTest after LockingCap refactor
nathanieliov Aug 1, 2024
5137774
Zero - Negative LockingCap Value Business Logic
wilmerrootstock Jul 31, 2024
ac81aa0
Adding a new Customized LockingCapIllegalArgumentException
wilmerrootstock Aug 1, 2024
03f82e5
Bug fix for LockingCapConstants in all the networks
wilmerrootstock Aug 7, 2024
8e74bfe
Unit Test for getLockingCapConstants from BridgeConstants
wilmerrootstock Aug 7, 2024
622ee18
Improving LockingCapTest nested class in BridgeSupportTest
wilmerrootstock Aug 7, 2024
e53f0f6
Improving BridgeIllegalArgumentException handling exception in Bridge…
wilmerrootstock Aug 8, 2024
523432d
Add Coverage in BridgeConstants
wilmerrootstock Aug 8, 2024
947656b
Update InMemoryStorage imports
marcos-iov Aug 8, 2024
96df961
LockingCap Integration Test
wilmerrootstock Aug 9, 2024
1b9b7dc
Rework LockingCap integration tests
marcos-iov Aug 10, 2024
c04b77f
Remove federation public keys param from BridgeDevNetConstants
marcos-iov Aug 20, 2024
35e5a8d
Remove unthrown exceptions from method signatures
marcos-iov Aug 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions rskj-core/src/main/java/co/rsk/peg/Bridge.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import co.rsk.panic.PanicProcessor;
import co.rsk.peg.BridgeMethods.BridgeMethodExecutor;
import co.rsk.peg.feeperkb.FeePerKbResponseCode;
import co.rsk.peg.lockingcap.LockingCapIllegalArgumentException;
import co.rsk.peg.vote.ABICallSpec;
import co.rsk.peg.bitcoin.MerkleBranch;
import co.rsk.peg.federation.Federation;
Expand Down Expand Up @@ -461,7 +462,7 @@ private boolean shouldReturnNullOnVoidMethods() {
return !activations.isActive(RSKIP417);
}

private void teardown() throws IOException {
private void teardown() {
bridgeSupport.save();
}

Expand Down Expand Up @@ -902,7 +903,7 @@ public long getRetiringFederationCreationBlockNumber(Object[] args) {
return bridgeSupport.getRetiringFederationCreationBlockNumber();
}

public Integer createFederation(Object[] args) throws BridgeIllegalArgumentException {
public Integer createFederation(Object[] args) {
logger.trace("createFederation");

return bridgeSupport.voteFederationChange(
Expand All @@ -911,7 +912,7 @@ public Integer createFederation(Object[] args) throws BridgeIllegalArgumentExcep
);
}

public Integer addFederatorPublicKey(Object[] args) throws BridgeIllegalArgumentException {
public Integer addFederatorPublicKey(Object[] args) {
logger.trace("addFederatorPublicKey");

byte[] publicKeyBytes;
Expand All @@ -928,7 +929,7 @@ public Integer addFederatorPublicKey(Object[] args) throws BridgeIllegalArgument
);
}

public Integer addFederatorPublicKeyMultikey(Object[] args) throws BridgeIllegalArgumentException {
public Integer addFederatorPublicKeyMultikey(Object[] args) {
logger.trace("addFederatorPublicKeyMultikey");

byte[] btcPublicKeyBytes = (byte[]) args[0];
Expand All @@ -944,7 +945,7 @@ public Integer addFederatorPublicKeyMultikey(Object[] args) throws BridgeIllegal
);
}

public Integer commitFederation(Object[] args) throws BridgeIllegalArgumentException {
public Integer commitFederation(Object[] args) {
logger.trace("commitFederation");

byte[] hash;
Expand All @@ -961,7 +962,7 @@ public Integer commitFederation(Object[] args) throws BridgeIllegalArgumentExcep
);
}

public Integer rollbackFederation(Object[] args) throws BridgeIllegalArgumentException {
public Integer rollbackFederation(Object[] args) {
logger.trace("rollbackFederation");

return bridgeSupport.voteFederationChange(
Expand Down Expand Up @@ -1163,13 +1164,12 @@ public byte[] getActivePowpegRedeemScript(Object[] args) {

public boolean increaseLockingCap(Object[] args) throws BridgeIllegalArgumentException {
logger.trace("increaseLockingCap");

Coin newLockingCap = BridgeUtils.getCoinFromBigInteger((BigInteger) args[0]);
if (newLockingCap.getValue() <= 0) {
throw new BridgeIllegalArgumentException("Locking cap must be bigger than zero");
try {
return bridgeSupport.increaseLockingCap(rskTx, newLockingCap);
} catch (LockingCapIllegalArgumentException e) {
throw new BridgeIllegalArgumentException(e);
}

return bridgeSupport.increaseLockingCap(rskTx, newLockingCap);
}

public void registerBtcCoinbaseTransaction(Object[] args) throws VMException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,8 @@ public BridgeIllegalArgumentException(String s) {
public BridgeIllegalArgumentException(String message, Throwable cause) {
super(message, cause);
}

public BridgeIllegalArgumentException(Throwable cause) {
super(cause);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ public enum BridgeStorageIndexKey {
RELEASE_REQUEST_QUEUE("releaseRequestQueue"),
PEGOUTS_WAITING_FOR_CONFIRMATIONS("releaseTransactionSet"),
PEGOUTS_WAITING_FOR_SIGNATURES("rskTxsWaitingFS"),
LOCKING_CAP_KEY("lockingCap"),
RELEASE_REQUEST_QUEUE_WITH_TXHASH("releaseRequestQueueWithTxHash"),
PEGOUTS_WAITING_FOR_CONFIRMATIONS_WITH_TXHASH_KEY("releaseTransactionSetWithTxHash"),
RECEIVE_HEADERS_TIMESTAMP("receiveHeadersLastTimestamp"),
Expand Down
32 changes: 4 additions & 28 deletions rskj-core/src/main/java/co/rsk/peg/BridgeStorageProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,6 @@ public class BridgeStorageProvider {
private PegoutsWaitingForConfirmations pegoutsWaitingForConfirmations;
private SortedMap<Keccak256, BtcTransaction> pegoutsWaitingForSignatures;

private Coin lockingCap;

private HashMap<Sha256Hash, Long> btcTxHashesToSave;

private Map<Sha256Hash, CoinbaseInformation> coinbaseInformationMap;
Expand Down Expand Up @@ -250,26 +248,6 @@ public void savePegoutsWaitingForSignatures() {
safeSaveToRepository(PEGOUTS_WAITING_FOR_SIGNATURES, pegoutsWaitingForSignatures, BridgeSerializationUtils::serializeMap);
}

public void saveLockingCap() {
if (activations.isActive(RSKIP134)) {
safeSaveToRepository(LOCKING_CAP_KEY, this.getLockingCap(), BridgeSerializationUtils::serializeCoin);
}
}

public void setLockingCap(Coin lockingCap) {
this.lockingCap = lockingCap;
}

public Coin getLockingCap() {
if (activations.isActive(RSKIP134)) {
if (this.lockingCap == null) {
this.lockingCap = safeGetFromRepository(LOCKING_CAP_KEY, BridgeSerializationUtils::deserializeCoin);
}
return this.lockingCap;
}
return null;
}

public CoinbaseInformation getCoinbaseInformation(Sha256Hash blockHash) {
if (!activations.isActive(RSKIP143)) {
return null;
Expand Down Expand Up @@ -395,15 +373,15 @@ public Optional<FlyoverFederationInformation> getFlyoverFederationInformation(by
return Optional.empty();
}

FlyoverFederationInformation flyoverFederationInformation = this.safeGetFromRepository(
FlyoverFederationInformation flyoverFederationInformationInStorage = this.safeGetFromRepository(
getStorageKeyForFlyoverFederationInformation(flyoverFederationRedeemScriptHash),
data -> BridgeSerializationUtils.deserializeFlyoverFederationInformation(data, flyoverFederationRedeemScriptHash)
);
if (flyoverFederationInformation == null) {
if (flyoverFederationInformationInStorage == null) {
return Optional.empty();
}

return Optional.of(flyoverFederationInformation);
return Optional.of(flyoverFederationInformationInStorage);
}

public void setFlyoverFederationInformation(FlyoverFederationInformation flyoverFederationInformation) {
Expand Down Expand Up @@ -542,15 +520,13 @@ protected void savePegoutTxSigHashes() {
));
}

public void save() throws IOException {
public void save() {
saveBtcTxHashesAlreadyProcessed();

saveReleaseRequestQueue();
savePegoutsWaitingForConfirmations();
savePegoutsWaitingForSignatures();

saveLockingCap();

saveHeightBtcTxHashAlreadyProcessed();

saveCoinbaseInformations();
Expand Down
Loading
Loading