Skip to content

Latest commit

 

History

History
34 lines (29 loc) · 1.24 KB

README.md

File metadata and controls

34 lines (29 loc) · 1.24 KB

ScroogeCoin

Assignments from the Coursera course "Bitcoin and Cryptocurrency Technologies"

You will be responsible for creating a file called TxHandler.java that implements the following API:

public class TxHandler {

  /** Creates a public ledger whose current UTXOPool 
    * (collection of unspent transaction outputs) is utxoPool. 
    * This should  make a defensive copy of utxoPool by using 
    * the UTXOPool (UTXOPool uPool) constructor.
    */
  public TxHandler(UTXOPool utxoPool);

  /** Returns true if
   * (1) all outputs claimed by tx are in the current UTXO pool
   * (2) the signatures on each input of tx are valid
   * (3) no UTXO is claimed multiple times by tx
   * (4) all of tx’s output values are non-negative
   * (5) the sum of tx’s input values is greater than or equal 
   * to the sum of its output values; and false otherwise.
   */
  public boolean isValidTx(Transaction tx);

  /** Handles each epoch by receiving an unordered array of 
   * proposed transactions, checking each transaction for 
   * correctness, returning a mutually valid array of accepted 
   * transactions, and updating the current UTXO pool as 
   * appropriate.
   */
  public Transaction[] handleTxs(Transaction[] possibleTxs);

}