internal/ethapi: support retrieving header RLPs too

pull/23670/head
Péter Szilágyi 3 years ago
parent f2491c5ed7
commit 07a5bc1b0b
No known key found for this signature in database
GPG Key ID: E9AE538CEDF8293D
  1. 13
      internal/ethapi/api.go
  2. 5
      internal/web3ext/web3ext.go

@ -1915,6 +1915,19 @@ func NewPublicDebugAPI(b Backend) *PublicDebugAPI {
return &PublicDebugAPI{b: b} return &PublicDebugAPI{b: b}
} }
// GetHeaderRlp retrieves the RLP encoded for of a single header.
func (api *PublicDebugAPI) GetHeaderRlp(ctx context.Context, number uint64) (string, error) {
header, _ := api.b.HeaderByNumber(ctx, rpc.BlockNumber(number))
if header == nil {
return "", fmt.Errorf("header #%d not found", number)
}
encoded, err := rlp.EncodeToBytes(header)
if err != nil {
return "", err
}
return fmt.Sprintf("%x", encoded), nil
}
// GetBlockRlp retrieves the RLP encoded for of a single block. // GetBlockRlp retrieves the RLP encoded for of a single block.
func (api *PublicDebugAPI) GetBlockRlp(ctx context.Context, number uint64) (string, error) { func (api *PublicDebugAPI) GetBlockRlp(ctx context.Context, number uint64) (string, error) {
block, _ := api.b.BlockByNumber(ctx, rpc.BlockNumber(number)) block, _ := api.b.BlockByNumber(ctx, rpc.BlockNumber(number))

@ -223,6 +223,11 @@ web3._extend({
params: 1, params: 1,
outputFormatter: console.log outputFormatter: console.log
}), }),
new web3._extend.Method({
name: 'getHeaderRlp',
call: 'debug_getHeaderRlp',
params: 1
}),
new web3._extend.Method({ new web3._extend.Method({
name: 'getBlockRlp', name: 'getBlockRlp',
call: 'debug_getBlockRlp', call: 'debug_getBlockRlp',

Loading…
Cancel
Save