|
|
|
@ -80,6 +80,7 @@ type RetestethEthAPI interface { |
|
|
|
|
SendRawTransaction(ctx context.Context, rawTx hexutil.Bytes) (common.Hash, error) |
|
|
|
|
BlockNumber(ctx context.Context) (uint64, error) |
|
|
|
|
GetBlockByNumber(ctx context.Context, blockNr math.HexOrDecimal64, fullTx bool) (map[string]interface{}, error) |
|
|
|
|
GetBlockByHash(ctx context.Context, blockHash common.Hash, fullTx bool) (map[string]interface{}, error) |
|
|
|
|
GetBalance(ctx context.Context, address common.Address, blockNr math.HexOrDecimal64) (*math.HexOrDecimal256, error) |
|
|
|
|
GetCode(ctx context.Context, address common.Address, blockNr math.HexOrDecimal64) (hexutil.Bytes, error) |
|
|
|
|
GetTransactionCount(ctx context.Context, address common.Address, blockNr math.HexOrDecimal64) (uint64, error) |
|
|
|
@ -618,6 +619,20 @@ func (api *RetestethAPI) GetBlockByNumber(ctx context.Context, blockNr math.HexO |
|
|
|
|
return nil, fmt.Errorf("block %d not found", blockNr) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (api *RetestethAPI) GetBlockByHash(ctx context.Context, blockHash common.Hash, fullTx bool) (map[string]interface{}, error) { |
|
|
|
|
block := api.blockchain.GetBlockByHash(blockHash) |
|
|
|
|
if block != nil { |
|
|
|
|
response, err := RPCMarshalBlock(block, true, fullTx) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, err |
|
|
|
|
} |
|
|
|
|
response["author"] = response["miner"] |
|
|
|
|
response["totalDifficulty"] = (*hexutil.Big)(api.blockchain.GetTd(block.Hash(), block.Number().Uint64())) |
|
|
|
|
return response, err |
|
|
|
|
} |
|
|
|
|
return nil, fmt.Errorf("block 0x%x not found", blockHash) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (api *RetestethAPI) AccountRange(ctx context.Context, |
|
|
|
|
blockHashOrNumber *math.HexOrDecimal256, txIndex uint64, |
|
|
|
|
addressHash *math.HexOrDecimal256, maxResults uint64, |
|
|
|
|