mirror of
https://github.com/Qortal/qortal.git
synced 2025-07-22 20:26:50 +00:00
Added tests for each group-approval outcome + fixes
This commit is contained in:
@@ -1145,6 +1145,9 @@ public class Block {
|
||||
for (TransactionData transactionData : approvalExpiringTransactions) {
|
||||
transactionData.setApprovalStatus(ApprovalStatus.EXPIRED);
|
||||
transactionRepository.save(transactionData);
|
||||
|
||||
// Update group-approval decision height for transaction in repository
|
||||
transactionRepository.updateApprovalHeight(transactionData.getSignature(), this.blockData.getHeight());
|
||||
}
|
||||
|
||||
// Search for pending transactions within min/max block delay range
|
||||
@@ -1159,7 +1162,7 @@ public class Block {
|
||||
if (isApproved == null)
|
||||
continue; // approve/reject threshold not yet met
|
||||
|
||||
// Update approval height for transaction in repository
|
||||
// Update group-approval decision height for transaction in repository
|
||||
transactionRepository.updateApprovalHeight(transactionData.getSignature(), this.blockData.getHeight());
|
||||
|
||||
if (!isApproved) {
|
||||
@@ -1321,15 +1324,16 @@ public class Block {
|
||||
List<TransactionData> transactions = transactionRepository.getApprovalTransactionDecidedAtHeight(this.blockData.getHeight());
|
||||
|
||||
for (TransactionData transactionData : transactions) {
|
||||
// Orphan/un-process transaction
|
||||
// Orphan/un-process transaction (if approved)
|
||||
Transaction transaction = Transaction.fromData(repository, transactionData);
|
||||
transaction.orphan();
|
||||
if (transactionData.getApprovalStatus() == ApprovalStatus.APPROVED)
|
||||
transaction.orphan();
|
||||
|
||||
// Revert back to PENDING
|
||||
transactionData.setApprovalStatus(ApprovalStatus.PENDING);
|
||||
transactionRepository.save(transactionData);
|
||||
|
||||
// Undo approval decision height
|
||||
// Remove group-approval decision height
|
||||
transactionRepository.updateApprovalHeight(transactionData.getSignature(), null);
|
||||
}
|
||||
}
|
||||
|
@@ -679,7 +679,7 @@ public class HSQLDBTransactionRepository implements TransactionRepository {
|
||||
String sql = "SELECT signature FROM Transactions "
|
||||
+ "JOIN Groups on Groups.group_id = Transactions.tx_group_id "
|
||||
+ "WHERE Transactions.approval_status = ? "
|
||||
+ "AND Transactions.block_height >= ? - Groups.min_block_delay";
|
||||
+ "AND Transactions.block_height < ? - Groups.min_block_delay";
|
||||
|
||||
List<TransactionData> transactions = new ArrayList<TransactionData>();
|
||||
|
||||
|
Reference in New Issue
Block a user