use of org.ethereum.vm.LogInfo in project rskj by rsksmart.
the class BridgeSupportReleaseBtcTest method handmade_release_after_rskip_146.
@Test
public void handmade_release_after_rskip_146() throws IOException {
when(activationMock.isActive(ConsensusRule.RSKIP146)).thenReturn(true);
when(activationMock.isActive(ConsensusRule.RSKIP185)).thenReturn(false);
List<LogInfo> logInfo = new ArrayList<>();
BridgeEventLoggerImpl eventLogger = spy(new BridgeEventLoggerImpl(bridgeConstants, activationMock, logInfo));
bridgeSupport = initBridgeSupport(eventLogger, activationMock);
bridgeSupport.releaseBtc(releaseTx);
Transaction rskTx = buildUpdateTx();
rskTx.sign(new ECKey().getPrivKeyBytes());
bridgeSupport.updateCollections(rskTx);
verify(repository, never()).transfer(any(), any(), any());
assertEquals(1, provider.getReleaseTransactionSet().getEntries().size());
assertEquals(0, provider.getReleaseRequestQueue().getEntries().size());
ReleaseTransactionSet.Entry entry = (ReleaseTransactionSet.Entry) provider.getReleaseTransactionSet().getEntries().toArray()[0];
verify(eventLogger, times(1)).logReleaseBtcRequested(any(byte[].class), any(BtcTransaction.class), any(Coin.class));
}
use of org.ethereum.vm.LogInfo in project rskj by rsksmart.
the class BridgeSupportReleaseBtcTest method handmade_release_after_rskip_146_rejected_lowAmount.
@Test
public void handmade_release_after_rskip_146_rejected_lowAmount() throws IOException {
when(activationMock.isActive(ConsensusRule.RSKIP146)).thenReturn(true);
when(activationMock.isActive(ConsensusRule.RSKIP185)).thenReturn(false);
List<LogInfo> logInfo = new ArrayList<>();
BridgeEventLoggerImpl eventLogger = spy(new BridgeEventLoggerImpl(bridgeConstants, activationMock, logInfo));
bridgeSupport = initBridgeSupport(eventLogger, activationMock);
releaseTx = buildReleaseRskTx(Coin.ZERO);
bridgeSupport.releaseBtc(releaseTx);
Transaction rskTx = buildUpdateTx();
rskTx.sign(SENDER.getPrivKeyBytes());
bridgeSupport.updateCollections(rskTx);
verify(repository, never()).transfer(any(), any(), any());
assertEquals(0, provider.getReleaseTransactionSet().getEntries().size());
assertEquals(0, provider.getReleaseRequestQueue().getEntries().size());
verify(eventLogger, never()).logReleaseBtcRequestRejected(any(), any(), any());
assertEquals(1, logInfo.size());
verify(eventLogger, times(1)).logUpdateCollections(any());
}
use of org.ethereum.vm.LogInfo in project rskj by rsksmart.
the class BridgeSupportReleaseBtcTest method handmade_release_after_rskip_146_185_rejected_contractCaller.
@Test
public void handmade_release_after_rskip_146_185_rejected_contractCaller() throws IOException {
when(activationMock.isActive(ConsensusRule.RSKIP146)).thenReturn(true);
when(activationMock.isActive(ConsensusRule.RSKIP185)).thenReturn(true);
List<LogInfo> logInfo = new ArrayList<>();
BridgeEventLoggerImpl eventLogger = spy(new BridgeEventLoggerImpl(bridgeConstants, activationMock, logInfo));
bridgeSupport = initBridgeSupport(eventLogger, activationMock);
releaseTx = buildReleaseRskTx_fromContract(Coin.COIN);
bridgeSupport.releaseBtc(releaseTx);
// Create Contract transaction
Transaction rskTx = buildUpdateTx();
rskTx.sign(SENDER.getPrivKeyBytes());
bridgeSupport.updateCollections(rskTx);
verify(repository, never()).transfer(any(), any(), any());
assertEquals(0, provider.getReleaseTransactionSet().getEntries().size());
assertEquals(0, provider.getReleaseRequestQueue().getEntries().size());
verify(eventLogger, never()).logReleaseBtcRequestReceived(any(), any(), any());
assertEquals(2, logInfo.size());
verify(eventLogger, times(1)).logReleaseBtcRequestRejected(any(), any(), any());
verify(eventLogger, times(1)).logUpdateCollections(any());
}
use of org.ethereum.vm.LogInfo in project rskj by rsksmart.
the class BridgeSupportReleaseBtcTest method release_before_rskip_219_minimum_exclusive.
@Test
public void release_before_rskip_219_minimum_exclusive() throws IOException {
when(activationMock.isActive(ConsensusRule.RSKIP146)).thenReturn(true);
when(activationMock.isActive(ConsensusRule.RSKIP185)).thenReturn(true);
when(activationMock.isActive(ConsensusRule.RSKIP219)).thenReturn(false);
List<LogInfo> logInfo = new ArrayList<>();
BridgeEventLoggerImpl eventLogger = spy(new BridgeEventLoggerImpl(bridgeConstants, activationMock, logInfo));
bridgeSupport = initBridgeSupport(eventLogger, activationMock);
// Get a value exactly to legacy minimum
Coin value = bridgeConstants.getLegacyMinimumPegoutTxValueInSatoshis();
bridgeSupport.releaseBtc(buildReleaseRskTx(value));
Transaction rskTx = buildUpdateTx();
rskTx.sign(SENDER.getPrivKeyBytes());
assertEquals(0, provider.getReleaseRequestQueue().getEntries().size());
assertEquals(1, logInfo.size());
verify(eventLogger, never()).logReleaseBtcRequestReceived(any(), any(), any());
verify(eventLogger, times(1)).logReleaseBtcRequestRejected(any(), any(), any());
}
use of org.ethereum.vm.LogInfo in project rskj by rsksmart.
the class TransactionReceipt method getEncoded.
/* [postTxState, cumulativeGas, bloomFilter, logInfoList] */
public byte[] getEncoded() {
if (rlpEncoded != null) {
return rlpEncoded;
}
byte[] postTxStateRLP = RLP.encodeElement(this.postTxState);
byte[] cumulativeGasRLP = RLP.encodeElement(this.cumulativeGas);
byte[] gasUsedRLP = RLP.encodeElement(this.gasUsed);
byte[] bloomRLP = RLP.encodeElement(this.bloomFilter.getData());
byte[] statusRLP = RLP.encodeElement(this.status);
final byte[] logInfoListRLP;
if (logInfoList != null) {
byte[][] logInfoListE = new byte[logInfoList.size()][];
int i = 0;
for (LogInfo logInfo : logInfoList) {
logInfoListE[i] = logInfo.getEncoded();
++i;
}
logInfoListRLP = RLP.encodeList(logInfoListE);
} else {
logInfoListRLP = RLP.encodeList();
}
rlpEncoded = RLP.encodeList(postTxStateRLP, cumulativeGasRLP, bloomRLP, logInfoListRLP, gasUsedRLP, statusRLP);
return rlpEncoded;
}
Aggregations