mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-02-25 07:17:32 +01:00
Removing the 'n' field from our TransactionOutput definition. This should not have been here - it is not in the bitcoin developer reference
This commit is contained in:
parent
6fa21f4d85
commit
816205e5f5
4 changed files with 8 additions and 12 deletions
|
@ -4,7 +4,7 @@ import org.scalacoin.currency.{CurrencyUnits, Satoshis}
|
|||
import org.scalacoin.marshallers.RawBitcoinSerializer
|
||||
import org.scalacoin.marshallers.script.{RawScriptPubKeyParser, ScriptParser}
|
||||
import org.scalacoin.protocol.CompactSizeUInt
|
||||
import org.scalacoin.protocol.transaction.{TransactionOutputImpl, TransactionOutput}
|
||||
import org.scalacoin.protocol.transaction.{TransactionOutputFactory, TransactionOutputImpl, TransactionOutput}
|
||||
import org.scalacoin.util.{BitcoinSUtil}
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
|
@ -37,7 +37,7 @@ trait RawTransactionOutputParser extends RawBitcoinSerializer[Seq[TransactionOut
|
|||
val scriptPubKeyBytes = bytes.slice(firstScriptPubKeyByte + scriptCompactSizeUIntSize,
|
||||
firstScriptPubKeyByte + scriptCompactSizeUIntSize + scriptSigCompactSizeUInt.num.toInt)
|
||||
val scriptPubKey = RawScriptPubKeyParser.read(scriptPubKeyBytes)
|
||||
val parsedOutput = TransactionOutputImpl(satoshis, 0, scriptPubKey)
|
||||
val parsedOutput = TransactionOutputFactory.factory(satoshis,scriptPubKey)
|
||||
val newAccum = parsedOutput:: accum
|
||||
val bytesToBeParsed = bytes.slice(parsedOutput.size, bytes.size)
|
||||
val outputsLeft = outputsLeftToParse-1
|
||||
|
|
|
@ -14,7 +14,6 @@ import org.scalacoin.util.BitcoinSUtil
|
|||
sealed trait TransactionOutput extends TransactionElement {
|
||||
|
||||
def value : CurrencyUnit
|
||||
def n : Int
|
||||
def scriptPubKey : ScriptPubKey
|
||||
def scriptPubKeyCompactSizeUInt : CompactSizeUInt = BitcoinSUtil.parseCompactSizeUInt(scriptPubKey)
|
||||
//https://bitcoin.org/en/developer-reference#txout
|
||||
|
@ -25,10 +24,8 @@ sealed trait TransactionOutput extends TransactionElement {
|
|||
|
||||
case object TransactionOutput extends TransactionOutput {
|
||||
override def value = CurrencyUnits.negativeSatoshi
|
||||
override def n = 0
|
||||
override def scriptPubKey = ScriptPubKeyFactory.empty
|
||||
|
||||
}
|
||||
|
||||
|
||||
case class TransactionOutputImpl(value : CurrencyUnit, n : Int, scriptPubKey: ScriptPubKey) extends TransactionOutput
|
||||
case class TransactionOutputImpl(value : CurrencyUnit, scriptPubKey: ScriptPubKey) extends TransactionOutput
|
|
@ -46,7 +46,6 @@ class RawTransactionOutputParserTest extends FlatSpec with MustMatchers with Raw
|
|||
//https://bitcoin.stackexchange.com/questions/2859/how-are-transaction-hashes-calculated
|
||||
val txOutput = "0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac"
|
||||
val output = RawTransactionOutputParser.read(txOutput)
|
||||
output.head.n must be (0)
|
||||
output.head.value must be (Satoshis(5000000000L))
|
||||
}
|
||||
|
||||
|
|
|
@ -57,12 +57,12 @@ trait TransactionTestUtil extends BitcoinSLogger {
|
|||
txCredit.vout[0].scriptPubKey = scriptPubKey;
|
||||
txCredit.vout[0].nValue = 0;*/
|
||||
|
||||
val outpoint = TransactionOutPointImpl("0000000000000000000000000000000000000000000000000000000000000000",0xFFFFFFFF)
|
||||
val outpoint = TransactionOutPointFactory.factory("0000000000000000000000000000000000000000000000000000000000000000",0xFFFFFFFF)
|
||||
/* require(outpoint.hex == "0000000000000000000000000000000000000000000000000000000000000000ffffffff", "Outpoint hex is wrong")*/
|
||||
val scriptSignature = ScriptSignatureFactory.fromHex("0000")
|
||||
/* require(scriptSignature.hex == "0000", "Wrong scriptSig\n Expected scriptSig: 0000\nActual scriptSig: " + scriptSignature.hex )*/
|
||||
val input = TransactionInputImpl(outpoint,scriptSignature,TransactionConstants.sequence)
|
||||
val output = TransactionOutputImpl(CurrencyUnits.zeroSatoshis,0,scriptPubKey)
|
||||
val input = TransactionInputFactory.factory(outpoint,scriptSignature,TransactionConstants.sequence)
|
||||
val output = TransactionOutputFactory.factory(CurrencyUnits.zeroSatoshis,scriptPubKey)
|
||||
|
||||
val tx = TransactionImpl(TransactionConstants.version,Seq(input),Seq(output),TransactionConstants.lockTime)
|
||||
/* require(tx.hex == "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff020000ffffffff01000000000000000043410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac00000000",
|
||||
|
@ -86,9 +86,9 @@ trait TransactionTestUtil extends BitcoinSLogger {
|
|||
txSpend.vout[0].scriptPubKey = CScript();
|
||||
txSpend.vout[0].nValue = 0;*/
|
||||
|
||||
val outpoint = TransactionOutPointImpl(creditingTx.txId,outputIndex)
|
||||
val outpoint = TransactionOutPointFactory.factory(creditingTx.txId,outputIndex)
|
||||
val input = TransactionInputFactory.factory(outpoint,scriptSignature,TransactionConstants.sequence)
|
||||
val output = TransactionOutputImpl(CurrencyUnits.zeroSatoshis,0,EmptyScriptPubKey)
|
||||
val output = TransactionOutputFactory.factory(CurrencyUnits.zeroSatoshis,EmptyScriptPubKey)
|
||||
val tx = TransactionImpl(TransactionConstants.version,Seq(input),Seq(output),TransactionConstants.lockTime)
|
||||
/* val expectedHex = "01000000019ce5586f04dd407719ab7e2ed3583583b9022f29652702cfac5ed082013461fe000000004847304402200a5c6163f07b8d3b013c4d1d6dba25e780b39658d79ba37af7057a3b7f15ffa102201fd9b4eaa9943f734928b99a83592c2e7bf342ea2680f6a2bb705167966b742001ffffffff0100000000000000000000000000"
|
||||
require(tx.hex == expectedHex,"\nExpected hex: " + expectedHex + "\nActual hex: " + tx.hex)*/
|
||||
|
|
Loading…
Add table
Reference in a new issue