package proposal
-import "testing"
+import (
+ "testing"
+
+ "github.com/vapor/consensus"
+)
func TestCreateCoinbaseTx(t *testing.T) {
+ consensus.ActiveNetParams = consensus.Params{
+ ProducerSubsidys: []consensus.ProducerSubsidy{
+ {BeginBlock: 0, EndBlock: 0, Subsidy: 24},
+ {BeginBlock: 1, EndBlock: 840000, Subsidy: 24},
+ {BeginBlock: 840001, EndBlock: 1680000, Subsidy: 12},
+ {BeginBlock: 1680001, EndBlock: 3360000, Subsidy: 6},
+ },
+ }
reductionInterval := uint64(840000)
- baseSubsidy := uint64(41250000000)
cases := []struct {
height uint64
txFee uint64
{
height: reductionInterval - 1,
txFee: 100000000,
- subsidy: baseSubsidy + 100000000,
+ subsidy: 24 + 100000000,
},
{
height: reductionInterval,
txFee: 2000000000,
- subsidy: baseSubsidy/2 + 2000000000,
+ subsidy: 24 + 2000000000,
},
{
height: reductionInterval + 1,
txFee: 0,
- subsidy: baseSubsidy / 2,
+ subsidy: 12,
},
{
height: reductionInterval * 2,
txFee: 100000000,
- subsidy: baseSubsidy/4 + 100000000,
+ subsidy: 12 + 100000000,
},
}
- for _, c := range cases {
+ for index, c := range cases {
coinbaseTx, err := createCoinbaseTx(nil, c.txFee, c.height)
if err != nil {
t.Fatal(err)
outputAmount := coinbaseTx.Outputs[0].OutputCommitment().Amount
if outputAmount != c.subsidy {
- t.Fatalf("coinbase tx reward dismatch, expected: %d, have: %d", c.subsidy, outputAmount)
+ t.Fatalf("index:%d,coinbase tx reward dismatch, expected: %d, have: %d", index, c.subsidy, outputAmount)
}
}
}