Fix for getTransactionReceipt returning empty 'from' address. #242

Merged
telackey merged 3 commits from telackey/receiptfix into v5 2023-06-12 16:37:46 +00:00
2 changed files with 10 additions and 9 deletions
Showing only changes of commit 8a53daecd4 - Show all commits

View File

@ -604,12 +604,7 @@ func (pea *PublicEthAPI) localGetTransactionReceipt(ctx context.Context, hash co
}
receipt := receipts[index]
var signer types.Signer
if tx.Protected() {
signer = types.LatestSignerForChainID(tx.ChainId())
} else {
signer = types.HomesteadSigner{}
}
signer := SignerForTx(tx)
from, _ := types.Sender(signer, tx)
fields := map[string]interface{}{

View File

@ -144,15 +144,21 @@ func NewRPCTransactionFromBlockHash(b *types.Block, hash common.Hash) *RPCTransa
return nil
}
// NewRPCTransaction returns a transaction that will serialize to the RPC
// representation, with the given location metadata set (if available).
func NewRPCTransaction(tx *types.Transaction, blockHash common.Hash, blockNumber uint64, index uint64, baseFee *big.Int) *RPCTransaction {
// SignerForTx returns an appropriate Signer for this Transaction
func SignerForTx(tx *types.Transaction) types.Signer {
var signer types.Signer
if tx.Protected() {
signer = types.LatestSignerForChainID(tx.ChainId())
} else {
signer = types.HomesteadSigner{}
}
return signer
}
// NewRPCTransaction returns a transaction that will serialize to the RPC
// representation, with the given location metadata set (if available).
func NewRPCTransaction(tx *types.Transaction, blockHash common.Hash, blockNumber uint64, index uint64, baseFee *big.Int) *RPCTransaction {
signer := SignerForTx(tx)
from, _ := types.Sender(signer, tx)
v, r, s := tx.RawSignatureValues()
result := &RPCTransaction{