X-Git-Url: http://git.osdn.net/view?p=bytom%2Fvapor.git;a=blobdiff_plain;f=api%2Fquery.go;h=d65acaac91db249ad0197bb99ce5e30c7803f02f;hp=938b3d33c6c6c9d4d284ddd16628b8618e88c2dd;hb=refs%2Fheads%2Ffix_log;hpb=2cba4a674b67c3a4f781d464b90b3cfcedccd993 diff --git a/api/query.go b/api/query.go index 938b3d33..d65acaac 100644 --- a/api/query.go +++ b/api/query.go @@ -11,7 +11,7 @@ import ( "github.com/vapor/asset" "github.com/vapor/blockchain/query" "github.com/vapor/blockchain/signers" - "github.com/vapor/blockchain/txbuilder" + "github.com/vapor/common/arithmetic" "github.com/vapor/consensus" "github.com/vapor/crypto/ed25519" "github.com/vapor/crypto/ed25519/chainkd" @@ -149,49 +149,37 @@ func (a *API) getTransaction(ctx context.Context, txInfo struct { // POST /list-transactions func (a *API) listTransactions(ctx context.Context, filter struct { - ID string `json:"id"` - AccountID string `json:"account_id"` - Detail bool `json:"detail"` - Unconfirmed bool `json:"unconfirmed"` - From uint `json:"from"` - Count uint `json:"count"` + AccountID string `json:"account_id"` + AccountAlias string `json:"account_alias"` + StartTxID string `json:"start_tx_id"` + Detail bool `json:"detail"` + Unconfirmed bool `json:"unconfirmed"` + Count uint `json:"count"` }) Response { - transactions := []*query.AnnotatedTx{} - var err error - var transaction *query.AnnotatedTx - - if filter.ID != "" { - transaction, err = a.wallet.GetTransactionByTxID(filter.ID) - if err != nil && filter.Unconfirmed { - transaction, err = a.wallet.GetUnconfirmedTxByTxID(filter.ID) - } - - if err != nil { - return NewErrorResponse(err) - } - transactions = []*query.AnnotatedTx{transaction} - } else { - transactions, err = a.wallet.GetTransactions(filter.AccountID) + accountID := filter.AccountID + if filter.AccountAlias != "" { + acc, err := a.wallet.AccountMgr.FindByAlias(filter.AccountAlias) if err != nil { return NewErrorResponse(err) } + accountID = acc.ID + } - if filter.Unconfirmed { - unconfirmedTxs, err := a.wallet.GetUnconfirmedTxs(filter.AccountID) - if err != nil { - return NewErrorResponse(err) - } - transactions = append(unconfirmedTxs, transactions...) - } + if accountID == "" { + return NewErrorResponse(account.ErrAccountIDEmpty) + } + + transactions, err := a.wallet.GetTransactions(accountID, filter.StartTxID, filter.Count, filter.Unconfirmed) + if err != nil { + return NewErrorResponse(err) } if filter.Detail == false { txSummary := a.wallet.GetTransactionsSummary(transactions) - start, end := getPageRange(len(txSummary), filter.From, filter.Count) - return NewSuccessResponse(txSummary[start:end]) + return NewSuccessResponse(txSummary) } - start, end := getPageRange(len(transactions), filter.From, filter.Count) - return NewSuccessResponse(transactions[start:end]) + + return NewSuccessResponse(transactions) } // POST /get-unconfirmed-transaction @@ -291,7 +279,7 @@ func (a *API) decodeRawTransaction(ctx context.Context, ins struct { tx.Outputs = append(tx.Outputs, a.wallet.BuildAnnotatedOutput(&ins.Tx, i)) } - tx.Fee = txbuilder.CalculateTxFee(&ins.Tx) + tx.Fee, _ = arithmetic.CalculateTxFee(&ins.Tx) return NewSuccessResponse(tx) } @@ -339,7 +327,7 @@ func (a *API) listUnspentOutputs(ctx context.Context, filter struct { // return gasRate func (a *API) gasRate() Response { - gasrate := map[string]int64{"gas_rate": consensus.VMGasRate} + gasrate := map[string]int64{"gas_rate": consensus.ActiveNetParams.VMGasRate} return NewSuccessResponse(gasrate) }