diff --git a/ethclient/ethclient.go b/ethclient/ethclient.go index daba37b666..0f9bb295c2 100644 --- a/ethclient/ethclient.go +++ b/ethclient/ethclient.go @@ -70,6 +70,14 @@ func (ec *Client) ChainID(ctx context.Context) (*big.Int, error) { return (*big.Int)(&result), err } +// BlockByHash returns the given full block. +// +// Note that loading full blocks requires two requests. Use HeaderByHash +// if you don't need all transactions or uncle headers. +func (ec *Client) BlockByHash(ctx context.Context, hash common.Hash) (*types.Block, error) { + return ec.getBlock(ctx, "eth_getBlockByHash", hash, true) +} + func (ec *Client) TransactionReceiptsInBlockByBlockNumber(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) ([]*types.Receipt, error) { var rs []*types.Receipt err := ec.c.CallContext(ctx, &rs, "eth_getTransactionReceiptsByBlock", blockNrOrHash) diff --git a/internal/web3ext/web3ext.go b/internal/web3ext/web3ext.go index fa74f7a19d..f610aa3192 100644 --- a/internal/web3ext/web3ext.go +++ b/internal/web3ext/web3ext.go @@ -496,11 +496,8 @@ web3._extend({ methods: [ new web3._extend.Method({ name: 'getTransactionReceiptsByBlock', - call: function(args) { - return (web3._extend.utils.isString(args[0]) && args[0].indexOf('0x') === 0) ? 'eth_getTransactionReceiptsByBlockHash' : 'eth_getTransactionReceiptsByBlockNumber'; - }, - params: 1, - inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter] + call: 'eth_getTransactionReceiptsByBlock', + params: 1 }), new web3._extend.Method({ name: 'chainId',