}
// GetUnconfirmedTransaction get unconfirmed tx by txID
-func (store *WalletStore) GetUnconfirmedTransaction(txID string) []byte {
- return store.walletDB.Get(calcUnconfirmedTxKey(txID))
+func (store *WalletStore) GetUnconfirmedTransaction(txID string) (*query.AnnotatedTx, error) {
+ rawUnconfirmedTx := store.walletDB.Get(calcUnconfirmedTxKey(txID))
+ if rawUnconfirmedTx == nil {
+ return nil, fmt.Errorf("failed get unconfirmed tx, txID: %s ", txID)
+ }
+ tx := new(query.AnnotatedTx)
+ if err := json.Unmarshal(rawUnconfirmedTx, tx); err != nil {
+ return nil, err
+ }
+ return tx, nil
}
// SetUnconfirmedTransaction set unconfirmed tx by txID
GetGlobalTransactionIndex(string) []byte
GetTransactions() ([]*query.AnnotatedTx, error)
GetUnconfirmedTransactions() ([]*query.AnnotatedTx, error)
- GetUnconfirmedTransaction(string) []byte
+ GetUnconfirmedTransaction(string) (*query.AnnotatedTx, error)
SetUnconfirmedTransaction(string, []byte)
DeleteStardardUTXO(bc.Hash)
DeleteContractUTXO(bc.Hash)
// GetUnconfirmedTxByTxID get unconfirmed transaction by txID
func (w *Wallet) GetUnconfirmedTxByTxID(txID string) (*query.AnnotatedTx, error) {
- annotatedTx := &query.AnnotatedTx{}
- txInfo := w.store.GetUnconfirmedTransaction(txID)
- if txInfo == nil {
- return nil, fmt.Errorf("No transaction(tx_id=%s) from txpool", txID)
- }
-
- if err := json.Unmarshal(txInfo, annotatedTx); err != nil {
+ annotatedTx, err := w.store.GetUnconfirmedTransaction(txID)
+ if err != nil {
return nil, err
}
-
+ if annotatedTx == nil {
+ return nil, fmt.Errorf("No transaction(tx_id=%s) from txpool", txID)
+ }
annotateTxsAsset(w, []*query.AnnotatedTx{annotatedTx})
return annotatedTx, nil
}