From 44d89b25d236b05c0d268693f2617c36e29972f5 Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Sat, 26 Dec 2015 22:01:35 -0600 Subject: [PATCH] Adding ScriptSignature, ScriptPubKey --- .../scalacoin/protocol/script/ScriptPubKey.scala | 16 ++++++++++++++++ .../protocol/script/ScriptSignature.scala | 11 +++++++++++ .../protocol/transaction/TransactionInput.scala | 8 ++++---- .../transaction/TransactionOutPoint.scala | 4 ++-- .../protocol/transaction/TransactionOutput.scala | 8 ++++---- 5 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 src/main/scala/org/scalacoin/protocol/script/ScriptPubKey.scala create mode 100644 src/main/scala/org/scalacoin/protocol/script/ScriptSignature.scala diff --git a/src/main/scala/org/scalacoin/protocol/script/ScriptPubKey.scala b/src/main/scala/org/scalacoin/protocol/script/ScriptPubKey.scala new file mode 100644 index 0000000000..62da87dea7 --- /dev/null +++ b/src/main/scala/org/scalacoin/protocol/script/ScriptPubKey.scala @@ -0,0 +1,16 @@ +package org.scalacoin.protocol.script + +import org.scalacoin.protocol.BitcoinAddress + +/** + * Created by chris on 12/26/15. + */ +trait ScriptPubKey extends ScriptSignature { + + def reqSigs : Int + def addressType : String + def addresses : Seq[BitcoinAddress] + +} + +case class ScriptPubKeyImpl(reqSigs : Int, addressType : String, addresses : Seq[BitcoinAddress]) diff --git a/src/main/scala/org/scalacoin/protocol/script/ScriptSignature.scala b/src/main/scala/org/scalacoin/protocol/script/ScriptSignature.scala new file mode 100644 index 0000000000..8fe1e1c305 --- /dev/null +++ b/src/main/scala/org/scalacoin/protocol/script/ScriptSignature.scala @@ -0,0 +1,11 @@ +package org.scalacoin.protocol.script + +/** + * Created by chris on 12/26/15. + */ +trait ScriptSignature { + def asm : String + def hex : String +} + +case class ScriptSignatureImpl(asm : String, hex : String) extends ScriptSignature \ No newline at end of file diff --git a/src/main/scala/org/scalacoin/protocol/transaction/TransactionInput.scala b/src/main/scala/org/scalacoin/protocol/transaction/TransactionInput.scala index 19dd98ff6d..565abc0d13 100644 --- a/src/main/scala/org/scalacoin/protocol/transaction/TransactionInput.scala +++ b/src/main/scala/org/scalacoin/protocol/transaction/TransactionInput.scala @@ -1,16 +1,16 @@ package org.scalacoin.protocol.transaction import org.scalacoin.protocol.VarInt +import org.scalacoin.protocol.script.ScriptSignature /** * Created by chris on 12/26/15. */ trait TransactionInput { def previousOutput : TransactionOutPoint - def scriptLength : VarInt - def scriptSignature : Seq[Char] + def scriptSignature : ScriptSignature def sequence : Long } -case class TransactionInputImpl(previousOutput : TransactionOutPoint, scriptLength : VarInt, - scriptSignature : Seq[Char], sequence : Long) extends TransactionInput +case class TransactionInputImpl(previousOutput : TransactionOutPoint, + scriptSignature : Seq[String], sequence : Long) extends TransactionInput diff --git a/src/main/scala/org/scalacoin/protocol/transaction/TransactionOutPoint.scala b/src/main/scala/org/scalacoin/protocol/transaction/TransactionOutPoint.scala index a3054a2d27..e95767c0cf 100644 --- a/src/main/scala/org/scalacoin/protocol/transaction/TransactionOutPoint.scala +++ b/src/main/scala/org/scalacoin/protocol/transaction/TransactionOutPoint.scala @@ -4,8 +4,8 @@ package org.scalacoin.protocol.transaction * Created by chris on 12/26/15. */ trait TransactionOutPoint { - def hash : Seq[Char] + def hash : Seq[String] def index : Long } -case class TransactionOutPointImpl(hash : Seq[Char], index : Long) extends TransactionOutPoint \ No newline at end of file +case class TransactionOutPointImpl(hash : Seq[String], index : Long) extends TransactionOutPoint \ No newline at end of file diff --git a/src/main/scala/org/scalacoin/protocol/transaction/TransactionOutput.scala b/src/main/scala/org/scalacoin/protocol/transaction/TransactionOutput.scala index 9f31d41b26..bce1821e70 100644 --- a/src/main/scala/org/scalacoin/protocol/transaction/TransactionOutput.scala +++ b/src/main/scala/org/scalacoin/protocol/transaction/TransactionOutput.scala @@ -1,6 +1,6 @@ package org.scalacoin.protocol.transaction -import org.scalacoin.currency.Satoshis +import org.scalacoin.currency.{CurrencyUnit, Satoshis} import org.scalacoin.protocol.VarInt /** @@ -8,11 +8,11 @@ import org.scalacoin.protocol.VarInt */ trait TransactionOutput { - def value : Satoshis + def value : CurrencyUnit def pkScriptLength : VarInt - def pkScript : Seq[Char] + def pkScript : Seq[String] } -case class TransactionOutputImpl(value : Satoshis, pkScriptLength : VarInt, pkScript : Seq[Char]) extends TransactionOutput \ No newline at end of file +case class TransactionOutputImpl(value : Satoshis, pkScriptLength : VarInt, pkScript : Seq[String]) extends TransactionOutput \ No newline at end of file