forked from cerc-io/plugeth
graphql: change receipt status to decimal instead of hex (#22187)
This PR fixes the receipt status field to be decimal instead of a hex string, as called for by the spec. Co-authored-by: Martin Holst Swende <martin@swende.se>
This commit is contained in:
parent
1770fe718a
commit
c0862f4f4c
@ -292,12 +292,12 @@ func (t *Transaction) getReceipt(ctx context.Context) (*types.Receipt, error) {
|
|||||||
return receipts[t.index], nil
|
return receipts[t.index], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Transaction) Status(ctx context.Context) (*hexutil.Uint64, error) {
|
func (t *Transaction) Status(ctx context.Context) (*Long, error) {
|
||||||
receipt, err := t.getReceipt(ctx)
|
receipt, err := t.getReceipt(ctx)
|
||||||
if err != nil || receipt == nil {
|
if err != nil || receipt == nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ret := hexutil.Uint64(receipt.Status)
|
ret := Long(receipt.Status)
|
||||||
return &ret, nil
|
return &ret, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -810,9 +810,9 @@ type CallData struct {
|
|||||||
|
|
||||||
// CallResult encapsulates the result of an invocation of the `call` accessor.
|
// CallResult encapsulates the result of an invocation of the `call` accessor.
|
||||||
type CallResult struct {
|
type CallResult struct {
|
||||||
data hexutil.Bytes // The return data from the call
|
data hexutil.Bytes // The return data from the call
|
||||||
gasUsed Long // The amount of gas used
|
gasUsed Long // The amount of gas used
|
||||||
status hexutil.Uint64 // The return status of the call - 0 for failure or 1 for success.
|
status Long // The return status of the call - 0 for failure or 1 for success.
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *CallResult) Data() hexutil.Bytes {
|
func (c *CallResult) Data() hexutil.Bytes {
|
||||||
@ -823,7 +823,7 @@ func (c *CallResult) GasUsed() Long {
|
|||||||
return c.gasUsed
|
return c.gasUsed
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *CallResult) Status() hexutil.Uint64 {
|
func (c *CallResult) Status() Long {
|
||||||
return c.status
|
return c.status
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -840,7 +840,7 @@ func (b *Block) Call(ctx context.Context, args struct {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
status := hexutil.Uint64(1)
|
status := Long(1)
|
||||||
if result.Failed() {
|
if result.Failed() {
|
||||||
status = 0
|
status = 0
|
||||||
}
|
}
|
||||||
@ -910,7 +910,7 @@ func (p *Pending) Call(ctx context.Context, args struct {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
status := hexutil.Uint64(1)
|
status := Long(1)
|
||||||
if result.Failed() {
|
if result.Failed() {
|
||||||
status = 0
|
status = 0
|
||||||
}
|
}
|
||||||
|
@ -130,6 +130,12 @@ func TestGraphQLBlockSerialization(t *testing.T) {
|
|||||||
want: `{"data":{"block":{"estimateGas":53000}}}`,
|
want: `{"data":{"block":{"estimateGas":53000}}}`,
|
||||||
code: 200,
|
code: 200,
|
||||||
},
|
},
|
||||||
|
// should return `status` as decimal
|
||||||
|
{
|
||||||
|
body: `{"query": "{block {number call (data : {from : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\", to: \"0x6295ee1b4f6dd65047762f924ecd367c17eabf8f\", data :\"0x12a7b914\"}){data status}}}"}`,
|
||||||
|
want: `{"data":{"block":{"number":10,"call":{"data":"0x","status":1}}}}`,
|
||||||
|
code: 200,
|
||||||
|
},
|
||||||
} {
|
} {
|
||||||
resp, err := http.Post(fmt.Sprintf("%s/graphql", stack.HTTPEndpoint()), "application/json", strings.NewReader(tt.body))
|
resp, err := http.Post(fmt.Sprintf("%s/graphql", stack.HTTPEndpoint()), "application/json", strings.NewReader(tt.body))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user