diff --git a/core/transaction/transactionchecker.go b/core/transaction/transactionchecker.go index 3da17e8df..dcf642faf 100644 --- a/core/transaction/transactionchecker.go +++ b/core/transaction/transactionchecker.go @@ -38,7 +38,7 @@ func (t *DefaultChecker) SanityCheck(params interfaces.Parameters) elaerr.ELAErr if err := t.parameters.Transaction.HeightVersionCheck(); err != nil { log.Warn("[HeightVersionCheck],", err) - return elaerr.Simple(elaerr.ErrTxHeightVersion, nil) + return elaerr.Simple(elaerr.ErrTxHeightVersion, err) } if err := t.parameters.Transaction.CheckTransactionSize(); err != nil { diff --git a/errors/errcode.go b/errors/errcode.go index 7d800bfba..64115f809 100644 --- a/errors/errcode.go +++ b/errors/errcode.go @@ -95,7 +95,11 @@ type SimpleErr struct { func (e *SimpleErr) Error() string { if len(e.message) == 0 { - return fmt.Sprintf("%s", ErrMap[e.code]) + if e.inner != nil { + return fmt.Sprintf("%s:%s", ErrMap[e.code], e.inner.Error()) + } else { + return fmt.Sprintf("%s", ErrMap[e.code]) + } } else { return e.message } diff --git a/mempool/txpool.go b/mempool/txpool.go index a8cec793d..4848a1456 100644 --- a/mempool/txpool.go +++ b/mempool/txpool.go @@ -95,20 +95,20 @@ func (mp *TxPool) appendToTxPool(tx interfaces.Transaction) elaerr.ELAError { return elaerr.Simple(elaerr.ErrBlockIneffectiveCoinbase, nil) } - if errCode := chain.CheckTransactionSanity(bestHeight+1, tx); errCode != nil { + if err := chain.CheckTransactionSanity(bestHeight+1, tx); err != nil { log.Warn("[TxPool CheckTransactionSanity] failed", tx.Hash()) - return errCode + return err } - if _, errCode := chain.CheckTransactionContext( - bestHeight+1, tx, mp.proposalsUsedAmount, 0); errCode != nil { + if _, err := chain.CheckTransactionContext( + bestHeight+1, tx, mp.proposalsUsedAmount, 0); err != nil { log.Warnf("[TxPool CheckTransactionContext] failed, hash: %s, err: %s", tx.Hash(), - errCode) - return errCode + err) + return err } //verify transaction by pool with lock - if errCode := mp.verifyTransactionWithTxnPool(tx); errCode != nil { + if err := mp.verifyTransactionWithTxnPool(tx); err != nil { log.Warn("[TxPool verifyTransactionWithTxnPool] failed", tx.Hash()) - return errCode + return err } size := tx.GetSize() @@ -116,9 +116,9 @@ func (mp *TxPool) appendToTxPool(tx interfaces.Transaction) elaerr.ELAError { log.Warn("TxPool check transactions size failed", tx.Hash()) return elaerr.Simple(elaerr.ErrTxPoolOverCapacity, nil) } - if errCode := mp.AppendTx(tx); errCode != nil { + if err := mp.AppendTx(tx); err != nil { log.Warn("[TxPool verifyTransactionWithTxnPool] failed", tx.Hash()) - return errCode + return err } // Add the transaction to mem pool if err := mp.doAddTransaction(tx); err != nil {