mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-12-24 09:25:21 +00:00
rpc: drop NewTransactionOutputRaw, move it server-side
This commit is contained in:
parent
aa338b7960
commit
04fc737e2e
2 changed files with 12 additions and 24 deletions
|
@ -4,8 +4,6 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/block"
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/state"
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||||
)
|
)
|
||||||
|
@ -25,25 +23,6 @@ type TransactionMetadata struct {
|
||||||
VMState string `json:"vmstate,omitempty"`
|
VMState string `json:"vmstate,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewTransactionOutputRaw returns a new ransactionOutputRaw object.
|
|
||||||
func NewTransactionOutputRaw(tx *transaction.Transaction, header *block.Header, appExecResult *state.AppExecResult, chain LedgerAux) TransactionOutputRaw {
|
|
||||||
result := TransactionOutputRaw{
|
|
||||||
Transaction: *tx,
|
|
||||||
}
|
|
||||||
if header == nil {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
// confirmations formula
|
|
||||||
confirmations := int(chain.BlockHeight() - header.Index + 1)
|
|
||||||
result.TransactionMetadata = TransactionMetadata{
|
|
||||||
Blockhash: header.Hash(),
|
|
||||||
Confirmations: confirmations,
|
|
||||||
Timestamp: header.Timestamp,
|
|
||||||
VMState: appExecResult.VMState.String(),
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON implements the json.Marshaler interface.
|
// MarshalJSON implements the json.Marshaler interface.
|
||||||
func (t TransactionOutputRaw) MarshalJSON() ([]byte, error) {
|
func (t TransactionOutputRaw) MarshalJSON() ([]byte, error) {
|
||||||
output, err := json.Marshal(t.TransactionMetadata)
|
output, err := json.Marshal(t.TransactionMetadata)
|
||||||
|
|
|
@ -1542,8 +1542,11 @@ func (s *Server) getrawtransaction(reqParams params.Params) (interface{}, *respo
|
||||||
return nil, response.ErrUnknownTransaction
|
return nil, response.ErrUnknownTransaction
|
||||||
}
|
}
|
||||||
if v, _ := reqParams.Value(1).GetBoolean(); v {
|
if v, _ := reqParams.Value(1).GetBoolean(); v {
|
||||||
if height == math.MaxUint32 {
|
res := result.TransactionOutputRaw{
|
||||||
return result.NewTransactionOutputRaw(tx, nil, nil, s.chain), nil
|
Transaction: *tx,
|
||||||
|
}
|
||||||
|
if height == math.MaxUint32 { // Mempooled transaction.
|
||||||
|
return res, nil
|
||||||
}
|
}
|
||||||
_header := s.chain.GetHeaderHash(int(height))
|
_header := s.chain.GetHeaderHash(int(height))
|
||||||
header, err := s.chain.GetHeader(_header)
|
header, err := s.chain.GetHeader(_header)
|
||||||
|
@ -1557,7 +1560,13 @@ func (s *Server) getrawtransaction(reqParams params.Params) (interface{}, *respo
|
||||||
if len(aers) == 0 {
|
if len(aers) == 0 {
|
||||||
return nil, response.NewRPCError("Inconsistent application log", "application log for the transaction is empty")
|
return nil, response.NewRPCError("Inconsistent application log", "application log for the transaction is empty")
|
||||||
}
|
}
|
||||||
return result.NewTransactionOutputRaw(tx, header, &aers[0], s.chain), nil
|
res.TransactionMetadata = result.TransactionMetadata{
|
||||||
|
Blockhash: header.Hash(),
|
||||||
|
Confirmations: int(s.chain.BlockHeight() - header.Index + 1),
|
||||||
|
Timestamp: header.Timestamp,
|
||||||
|
VMState: aers[0].VMState.String(),
|
||||||
|
}
|
||||||
|
return res, nil
|
||||||
}
|
}
|
||||||
return tx.Bytes(), nil
|
return tx.Bytes(), nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue