diff --git a/domain/consensus/processes/transactionvalidator/mass.go b/domain/consensus/processes/transactionvalidator/mass.go index a6d6e892a..d57500264 100644 --- a/domain/consensus/processes/transactionvalidator/mass.go +++ b/domain/consensus/processes/transactionvalidator/mass.go @@ -4,6 +4,7 @@ import ( "github.com/kaspanet/kaspad/domain/consensus/model/externalapi" "github.com/kaspanet/kaspad/domain/consensus/ruleerrors" "github.com/kaspanet/kaspad/domain/consensus/utils/estimatedsize" + "github.com/kaspanet/kaspad/domain/consensus/utils/transactionhelper" "github.com/kaspanet/kaspad/domain/consensus/utils/txscript" "github.com/pkg/errors" ) @@ -34,6 +35,10 @@ func (v *transactionValidator) transactionMassStandalonePart(tx *externalapi.Dom } func (v *transactionValidator) transactionMass(tx *externalapi.DomainTransaction) (uint64, error) { + if transactionhelper.IsCoinBase(tx) { + return 0, nil + } + standaloneMass := v.transactionMassStandalonePart(tx) sigOpsCount := uint64(0) for _, input := range tx.Inputs { diff --git a/domain/consensus/utils/estimatedsize/transaction_estimated_size.go b/domain/consensus/utils/estimatedsize/transaction_estimated_size.go index 40b0dd012..5977db976 100644 --- a/domain/consensus/utils/estimatedsize/transaction_estimated_size.go +++ b/domain/consensus/utils/estimatedsize/transaction_estimated_size.go @@ -2,6 +2,7 @@ package estimatedsize import ( "github.com/kaspanet/kaspad/domain/consensus/model/externalapi" + "github.com/kaspanet/kaspad/domain/consensus/utils/transactionhelper" ) // TransactionEstimatedSerializedSize is the estimated size of a transaction in some @@ -9,6 +10,9 @@ import ( // it's only used as the size component in the transaction mass and block size limit // calculation. func TransactionEstimatedSerializedSize(tx *externalapi.DomainTransaction) uint64 { + if transactionhelper.IsCoinBase(tx) { + return 0 + } size := uint64(0) size += 8 // number of inputs (uint64)