graphql: add transaction signature values (#20623)

The feature update allows the GraphQL API endpoint to retrieve
transaction signature R,S,V parameters.

Co-authored-by: amitshah <amitshah0t7@gmail.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
pull/20644/head
AmitBRD 5 years ago committed by GitHub
parent 675f4e75b8
commit 34bb132b10
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 27
      graphql/graphql.go
  2. 3
      graphql/schema.go

@ -314,6 +314,33 @@ func (t *Transaction) Logs(ctx context.Context) (*[]*Log, error) {
return &ret, nil return &ret, nil
} }
func (t *Transaction) R(ctx context.Context) (hexutil.Big, error) {
tx, err := t.resolve(ctx)
if err != nil || tx == nil {
return hexutil.Big{}, err
}
_, r, _ := tx.RawSignatureValues()
return hexutil.Big(*r), nil
}
func (t *Transaction) S(ctx context.Context) (hexutil.Big, error) {
tx, err := t.resolve(ctx)
if err != nil || tx == nil {
return hexutil.Big{}, err
}
_, _, s := tx.RawSignatureValues()
return hexutil.Big(*s), nil
}
func (t *Transaction) V(ctx context.Context) (hexutil.Big, error) {
tx, err := t.resolve(ctx)
if err != nil || tx == nil {
return hexutil.Big{}, err
}
v, _, _ := tx.RawSignatureValues()
return hexutil.Big(*v), nil
}
type BlockType int type BlockType int
// Block represents an Ethereum block. // Block represents an Ethereum block.

@ -115,6 +115,9 @@ const schema string = `
# Logs is a list of log entries emitted by this transaction. If the # Logs is a list of log entries emitted by this transaction. If the
# transaction has not yet been mined, this field will be null. # transaction has not yet been mined, this field will be null.
logs: [Log!] logs: [Log!]
r: BigInt!
s: BigInt!
v: BigInt!
} }
# BlockFilterCriteria encapsulates log filter criteria for a filter applied # BlockFilterCriteria encapsulates log filter criteria for a filter applied

Loading…
Cancel
Save