OSDN Git Service

Peer add announces new block message num limit
[bytom/vapor.git] / blockchain / txbuilder / builder.go
index b93b6db..2c357ad 100644 (file)
@@ -4,6 +4,7 @@ import (
        "math"
        "time"
 
+       "github.com/vapor/common/arithmetic"
        "github.com/vapor/errors"
        "github.com/vapor/protocol/bc/types"
 )
@@ -38,8 +39,8 @@ func (b *TemplateBuilder) AddInput(in *types.TxInput, sigInstruction *SigningIns
 
 // AddOutput add outputs of transactions
 func (b *TemplateBuilder) AddOutput(o *types.TxOutput) error {
-       if o.Amount > math.MaxInt64 {
-               return errors.WithDetailf(ErrBadAmount, "amount %d exceeds maximum value 2^63", o.Amount)
+       if o.AssetAmount().Amount > math.MaxInt64 {
+               return errors.WithDetailf(ErrBadAmount, "amount %d exceeds maximum value 2^63", o.AssetAmount().Amount)
        }
        b.outputs = append(b.outputs, o)
        return nil
@@ -131,7 +132,10 @@ func (b *TemplateBuilder) Build() (*Template, *types.TxData, error) {
                tx.Inputs = append(tx.Inputs, in)
        }
 
+       var err error
        tpl.Transaction = types.NewTx(*tx)
-       tpl.Fee = CalculateTxFee(tpl.Transaction)
+       if tpl.Fee, err = arithmetic.CalculateTxFee(tpl.Transaction); err != nil {
+               return nil, nil, err
+       }
        return tpl, tx, nil
 }