import (
"bytes"
+ "reflect"
"testing"
"github.com/davecgh/go-spew/spew"
- "github.com/bytom/consensus"
- "github.com/bytom/protocol/bc"
- "github.com/bytom/testutil"
+ "github.com/bytom/bytom/consensus"
+ "github.com/bytom/bytom/protocol/bc"
+ "github.com/bytom/bytom/testutil"
)
func TestMapSpendTx(t *testing.T) {
cases := []*TxData{
&TxData{
Inputs: []*TxInput{
- NewSpendInput(nil, testutil.MustDecodeHash("fad5195a0c8e3b590b86a3c0a95e7529565888508aecca96e9aeda633002f409"), *consensus.BTMAssetID, 88, 3, []byte{1}),
+ NewSpendInput(nil, testutil.MustDecodeHash("fad5195a0c8e3b590b86a3c0a95e7529565888508aecca96e9aeda633002f409"), *consensus.BTMAssetID, 88, 3, []byte{1}, [][]byte{[]byte{2}}),
},
Outputs: []*TxOutput{
- NewTxOutput(*consensus.BTMAssetID, 80, []byte{1}),
+ NewOriginalTxOutput(*consensus.BTMAssetID, 80, []byte{1}, [][]byte{[]byte{2}}),
},
},
&TxData{
NewIssuanceInput([]byte("nonce"), 254354, []byte("issuanceProgram"), [][]byte{[]byte("arguments1"), []byte("arguments2")}, []byte("assetDefinition")),
},
Outputs: []*TxOutput{
- NewTxOutput(*consensus.BTMAssetID, 80, []byte{1}),
+ NewOriginalTxOutput(*consensus.BTMAssetID, 80, []byte{1}, [][]byte{[]byte{2}}),
},
},
&TxData{
Inputs: []*TxInput{
NewIssuanceInput([]byte("nonce"), 254354, []byte("issuanceProgram"), [][]byte{[]byte("arguments1"), []byte("arguments2")}, []byte("assetDefinition")),
- NewSpendInput(nil, testutil.MustDecodeHash("db7b16ac737440d6e38559996ddabb207d7ce84fbd6f3bfd2525d234761dc863"), *consensus.BTMAssetID, 88, 3, []byte{1}),
+ NewSpendInput(nil, testutil.MustDecodeHash("db7b16ac737440d6e38559996ddabb207d7ce84fbd6f3bfd2525d234761dc863"), *consensus.BTMAssetID, 88, 3, []byte{1}, [][]byte{[]byte{2}}),
},
Outputs: []*TxOutput{
- NewTxOutput(*consensus.BTMAssetID, 80, []byte{1}),
- NewTxOutput(*consensus.BTMAssetID, 80, []byte{1}),
+ NewOriginalTxOutput(*consensus.BTMAssetID, 80, []byte{1}, [][]byte{[]byte{2}}),
+ NewOriginalTxOutput(*consensus.BTMAssetID, 80, []byte{1}, [][]byte{[]byte{2}}),
},
},
}
if !bytes.Equal(newOut.ControlProgram.Code, oldOut.ControlProgram) {
t.Errorf("header.ResultIds[%d].(*output).ControlProgram.Code is %x, expected %x", i, newOut.ControlProgram.Code, oldOut.ControlProgram)
}
+ if !reflect.DeepEqual(newOut.StateData.StateData, oldOut.StateData) {
+ t.Errorf("header.ResultIds[%d].(*output).StateData.StateData is %x, expected %x", i, newOut.StateData.StateData, oldOut.StateData)
+ }
}
}
NewCoinbaseInput([]byte("TestMapCoinbaseTx")),
},
Outputs: []*TxOutput{
- NewTxOutput(*consensus.BTMAssetID, 800000000000, []byte{1}),
+ NewOriginalTxOutput(*consensus.BTMAssetID, 800000000000, []byte{1}, [][]byte{[]byte{2}}),
},
}
oldOut := txData.Outputs[0]
if len(tx.SpentOutputIDs) != 0 {
t.Errorf("coinbase tx doesn't spend any utxo")
}
- if len(tx.GasInputIDs) != 0 {
- t.Errorf("coinbase tx doesn't spend any gas input")
+ if len(tx.GasInputIDs) != 1 {
+ t.Errorf("coinbase tx should have 1 gas input")
}
if len(tx.ResultIds) != 1 {
t.Errorf("expect to only have one output")