aboutsummaryrefslogtreecommitdiffstats
path: root/ethclient/ethclient.go
diff options
context:
space:
mode:
Diffstat (limited to 'ethclient/ethclient.go')
-rw-r--r--ethclient/ethclient.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/ethclient/ethclient.go b/ethclient/ethclient.go
index 6e2b1378a..a095aa076 100644
--- a/ethclient/ethclient.go
+++ b/ethclient/ethclient.go
@@ -147,7 +147,7 @@ func (ec *Client) TransactionByHash(ctx context.Context, hash common.Hash) (*typ
var tx *types.Transaction
err := ec.c.CallContext(ctx, &tx, "eth_getTransactionByHash", hash)
if err == nil {
- if _, r, _ := tx.SignatureValues(); r == nil {
+ if _, r, _ := tx.RawSignatureValues(); r == nil {
return nil, fmt.Errorf("server returned transaction without signature")
}
}
@@ -166,7 +166,11 @@ func (ec *Client) TransactionInBlock(ctx context.Context, blockHash common.Hash,
var tx *types.Transaction
err := ec.c.CallContext(ctx, &tx, "eth_getTransactionByBlockHashAndIndex", blockHash, index)
if err == nil {
- if _, r, _ := tx.SignatureValues(); r == nil {
+ var signer types.Signer = types.HomesteadSigner{}
+ if tx.Protected() {
+ signer = types.NewEIP155Signer(tx.ChainId())
+ }
+ if _, r, _ := types.SignatureValues(signer, tx); r == nil {
return nil, fmt.Errorf("server returned transaction without signature")
}
}