Skip to content

Commit

Permalink
Grab Valid Transactions
Browse files Browse the repository at this point in the history
  • Loading branch information
15Dkatz committed Sep 28, 2022
1 parent b399bf5 commit 17c57ba
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 0 deletions.
8 changes: 8 additions & 0 deletions wallet/transaction-pool.js
@@ -1,3 +1,5 @@
const Transaction = require('./transaction');

class TransactionPool {
constructor() {
this.transactionMap = {};
Expand All @@ -16,6 +18,12 @@ class TransactionPool {

return transactions.find(transaction => transaction.input.address === inputAddress);
}

validTransactions() {
return Object.values(this.transactionMap).filter(
transaction => Transaction.validTransaction(transaction)
);
}
}

module.exports = TransactionPool;
37 changes: 37 additions & 0 deletions wallet/transaction-pool.test.js
Expand Up @@ -33,4 +33,41 @@ describe('TransactionPool', () => {
).toBe(transaction);
});
});

describe('validTransactions()', () => {
let validTransactions, errorMock;

beforeEach(() => {
validTransactions = [];
errorMock = jest.fn();
global.console.error = errorMock;

for (let i=0; i<10; i++) {
transaction = new Transaction({
senderWallet,
recipient: 'any-recipient',
amount: 30
});

if (i%3===0) {
transaction.input.amount = 999999;
} else if (i%3===1) {
transaction.input.signature = new Wallet().sign('foo');
} else {
validTransactions.push(transaction);
}

transactionPool.setTransaction(transaction);
}
});

it('returns valid transactions', () => {
expect(transactionPool.validTransactions()).toEqual(validTransactions);
});

it('logs errors for the invalid transactions', () => {
transactionPool.validTransactions();
expect(errorMock).toHaveBeenCalled();
});
});
});

0 comments on commit 17c57ba

Please sign in to comment.