func (store *WalletStore) GetStandardUTXO(outid bc.Hash) (*acc.UTXO, error) {
rawUTXO := store.db.Get(StandardUTXOKey(outid))
if rawUTXO == nil {
- return nil, fmt.Errorf("failed get standard UTXO, outputID: %s ", outid.String())
+ return nil, wallet.ErrGetStandardUTXO
}
UTXO := new(acc.UTXO)
func (w *Wallet) getExternalDefinition(assetID *bc.AssetID) json.RawMessage {
externalAsset, err := w.Store.GetAsset(assetID)
- if err != nil {
+ if err != nil && err != ErrGetAsset {
log.WithFields(log.Fields{"module": logModule, "err": err, "assetID": assetID.String()}).Info("fail on get asset definition.")
}
if externalAsset == nil {
if _, err := w.AccountMgr.GetControlProgram(bc.NewHash(hash)); err == nil {
annotatedTxs = append(annotatedTxs, w.buildAnnotatedTransaction(tx, b, statusFail, pos))
continue transactionLoop
- } else {
- log.WithFields(log.Fields{"module": logModule, "err": err, "hash": hex.EncodeToString(hash[:])}).Info("filterAccountTxs fail.")
+ } else if err != account.ErrFindCtrlProgram {
+ log.WithFields(log.Fields{"module": logModule, "err": err, "hash": hex.EncodeToString(hash[:])}).Error("filterAccountTxs fail.")
}
}
for _, v := range tx.Inputs {
outid, err := v.SpentOutputID()
if err != nil {
- log.WithFields(log.Fields{"module": logModule, "err": err, "outputID": hex.EncodeToString(outid.Bytes())}).Info("filterAccountTxs fail.")
+ log.WithFields(log.Fields{"module": logModule, "err": err, "outputID": outid.String()}).Error("filterAccountTxs fail.")
continue
}
if _, err = w.Store.GetStandardUTXO(outid); err == nil {
annotatedTxs = append(annotatedTxs, w.buildAnnotatedTransaction(tx, b, statusFail, pos))
continue transactionLoop
- } else {
- log.WithFields(log.Fields{"module": logModule, "err": err, "outputID": hex.EncodeToString(outid.Bytes())}).Info("filterAccountTxs fail.")
+ } else if err != ErrGetStandardUTXO {
+ log.WithFields(log.Fields{"module": logModule, "err": err, "outputID": outid.String()}).Error("filterAccountTxs fail.")
}
}
}
package wallet
import (
+ "encoding/hex"
"fmt"
"sort"
"time"
log "github.com/sirupsen/logrus"
+ acc "github.com/vapor/account"
"github.com/vapor/blockchain/query"
"github.com/vapor/crypto/sha3pool"
"github.com/vapor/protocol"
var hash [32]byte
sha3pool.Sum256(hash[:], v.ControlProgram())
cp, err := w.AccountMgr.GetControlProgram(bc.NewHash(hash))
- if err != nil {
- log.WithFields(log.Fields{"module": logModule, "err": err, "hash": string(hash[:])}).Error("checkRelatedTransaction fail.")
+ if err != nil && err != acc.ErrFindCtrlProgram {
+ log.WithFields(log.Fields{"module": logModule, "err": err, "hash": hex.EncodeToString(hash[:])}).Error("checkRelatedTransaction fail.")
continue
}
if cp != nil {
continue
}
utxo, err := w.Store.GetStandardUTXO(outid)
- if err != nil {
+ if err != nil && err != ErrGetStandardUTXO {
log.WithFields(log.Fields{"module": logModule, "err": err, "outputID": outid.String()}).Error("checkRelatedTransaction fail.")
continue
}
var hash [32]byte
sha3pool.Sum256(hash[:], []byte(s))
cp, err := w.AccountMgr.GetControlProgram(bc.NewHash(hash))
- if err != nil {
+ if err != nil && err != account.ErrFindCtrlProgram {
log.WithFields(log.Fields{"module": logModule, "err": err}).Error("filterAccountUtxo fail.")
continue
}
ErrGetWalletStatusInfo = errors.New("failed get wallet info")
ErrGetAsset = errors.New("Failed to find asset definition")
ErrAccntTxIDNotFound = errors.New("account TXID not found")
+ ErrGetStandardUTXO = errors.New("failed get standard UTXO")
)
//StatusInfo is base valid block info to handle orphan block rollback