diff --git a/src/main/scala/org/scalacoin/crypto/TransactionSignatureSerializer.scala b/src/main/scala/org/scalacoin/crypto/TransactionSignatureSerializer.scala index bb49f6f104..6e300a177e 100644 --- a/src/main/scala/org/scalacoin/crypto/TransactionSignatureSerializer.scala +++ b/src/main/scala/org/scalacoin/crypto/TransactionSignatureSerializer.scala @@ -80,7 +80,14 @@ trait TransactionSignatureSerializer extends RawBitcoinSerializerHelper { // already. Perhaps it felt safer to him in some way, or is another leftover from how the code was written. val inputWithConnectedScript = inputToSign.factory(script) - //check the hash type of + //check the hash type + + hashType match { + case SIGHASH_NONE => + //means that no outputs are signed at all + val txWithNoOutputs = ??? + } + ??? } diff --git a/src/main/scala/org/scalacoin/protocol/transaction/Transaction.scala b/src/main/scala/org/scalacoin/protocol/transaction/Transaction.scala index 41daba9d7c..bc63bb6cfc 100644 --- a/src/main/scala/org/scalacoin/protocol/transaction/Transaction.scala +++ b/src/main/scala/org/scalacoin/protocol/transaction/Transaction.scala @@ -8,7 +8,7 @@ import org.scalacoin.util.{ScalacoinUtil, CryptoUtil} */ -trait Transaction extends TransactionElement { +trait Transaction extends TransactionElement with TransactionFactory { def txId : String = ScalacoinUtil.encodeHex(CryptoUtil.doubleSHA256(hex).reverse) def version : Long def inputs : Seq[TransactionInput] diff --git a/src/main/scala/org/scalacoin/protocol/transaction/TransactionFactory.scala b/src/main/scala/org/scalacoin/protocol/transaction/TransactionFactory.scala new file mode 100644 index 0000000000..01ab567ddf --- /dev/null +++ b/src/main/scala/org/scalacoin/protocol/transaction/TransactionFactory.scala @@ -0,0 +1,12 @@ +package org.scalacoin.protocol.transaction + +/** + * Created by chris on 2/21/16. + */ +trait TransactionFactory { this : Transaction => + + def factory(outputs : Seq[TransactionOutput]) = { + TransactionImpl(version,inputs,outputs,lockTime) + } + +}