graphql: add raw fields to block and tx (#24816)
This commit is contained in:
parent
39fb82bcfb
commit
29a6b6bcac
@ -33,6 +33,7 @@ import (
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
"github.com/ethereum/go-ethereum/eth/filters"
|
||||
"github.com/ethereum/go-ethereum/internal/ethapi"
|
||||
"github.com/ethereum/go-ethereum/rlp"
|
||||
"github.com/ethereum/go-ethereum/rpc"
|
||||
)
|
||||
|
||||
@ -516,10 +517,18 @@ func (t *Transaction) V(ctx context.Context) (hexutil.Big, error) {
|
||||
return hexutil.Big(*v), nil
|
||||
}
|
||||
|
||||
func (t *Transaction) Raw(ctx context.Context) (hexutil.Bytes, error) {
|
||||
tx, err := t.resolve(ctx)
|
||||
if err != nil || tx == nil {
|
||||
return hexutil.Bytes{}, err
|
||||
}
|
||||
return tx.MarshalBinary()
|
||||
}
|
||||
|
||||
func (t *Transaction) RawReceipt(ctx context.Context) (hexutil.Bytes, error) {
|
||||
receipt, err := t.getReceipt(ctx)
|
||||
if err != nil || receipt == nil {
|
||||
return nil, err
|
||||
return hexutil.Bytes{}, err
|
||||
}
|
||||
return receipt.MarshalBinary()
|
||||
}
|
||||
@ -798,6 +807,22 @@ func (b *Block) TotalDifficulty(ctx context.Context) (hexutil.Big, error) {
|
||||
return hexutil.Big(*td), nil
|
||||
}
|
||||
|
||||
func (b *Block) RawHeader(ctx context.Context) (hexutil.Bytes, error) {
|
||||
header, err := b.resolveHeader(ctx)
|
||||
if err != nil {
|
||||
return hexutil.Bytes{}, err
|
||||
}
|
||||
return rlp.EncodeToBytes(header)
|
||||
}
|
||||
|
||||
func (b *Block) Raw(ctx context.Context) (hexutil.Bytes, error) {
|
||||
block, err := b.resolve(ctx)
|
||||
if err != nil {
|
||||
return hexutil.Bytes{}, err
|
||||
}
|
||||
return rlp.EncodeToBytes(block)
|
||||
}
|
||||
|
||||
// BlockNumberArgs encapsulates arguments to accessors that specify a block number.
|
||||
type BlockNumberArgs struct {
|
||||
// TODO: Ideally we could use input unions to allow the query to specify the
|
||||
|
@ -140,7 +140,11 @@ const schema string = `
|
||||
# Envelope transaction support
|
||||
type: Int
|
||||
accessList: [AccessTuple!]
|
||||
# RawReceipt is the binary encoding of the receipt. For post EIP-2718 typed transactions
|
||||
# Raw is the canonical encoding of the transaction.
|
||||
# For legacy transactions, it returns the RLP encoding.
|
||||
# For EIP-2718 typed transactions, it returns the type and payload.
|
||||
raw: Bytes!
|
||||
# RawReceipt is the canonical encoding of the receipt. For post EIP-2718 typed transactions
|
||||
# this is equivalent to TxType || ReceiptEncoding.
|
||||
rawReceipt: Bytes!
|
||||
}
|
||||
@ -238,6 +242,10 @@ const schema string = `
|
||||
# EstimateGas estimates the amount of gas that will be required for
|
||||
# successful execution of a transaction at the current block's state.
|
||||
estimateGas(data: CallData!): Long!
|
||||
# RawHeader is the RLP encoding of the block's header.
|
||||
rawHeader: Bytes!
|
||||
# Raw is the RLP encoding of the block.
|
||||
raw: Bytes!
|
||||
}
|
||||
|
||||
# CallData represents the data associated with a local contract call.
|
||||
|
Loading…
Reference in New Issue
Block a user