From 01b789c3e974778f099b5eac89df2eac84d7c9c3 Mon Sep 17 00:00:00 2001 From: yihuang Date: Wed, 22 Sep 2021 17:01:35 +0800 Subject: [PATCH] rpc: tx receipt don't contain events (#580) * tx receipt don't contains events - Should convert tx hash when query transaction logs * tx index should start from 0 --- ethereum/rpc/backend/backend.go | 2 +- x/evm/keeper/state_transition.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ethereum/rpc/backend/backend.go b/ethereum/rpc/backend/backend.go index b6c48d42c..a18530ec4 100644 --- a/ethereum/rpc/backend/backend.go +++ b/ethereum/rpc/backend/backend.go @@ -370,7 +370,7 @@ func (e *EVMBackend) HeaderByHash(blockHash common.Hash) (*ethtypes.Header, erro // It returns an error if there's an encoding error. // If no logs are found for the tx hash, the error is nil. func (e *EVMBackend) GetTransactionLogs(txHash common.Hash) ([]*ethtypes.Log, error) { - tx, err := e.clientCtx.Client.Tx(e.ctx, txHash.Bytes(), false) + tx, err := e.GetTxByEthHash(txHash) if err != nil { return nil, err } diff --git a/x/evm/keeper/state_transition.go b/x/evm/keeper/state_transition.go index 422f7f130..3945d6d8d 100644 --- a/x/evm/keeper/state_transition.go +++ b/x/evm/keeper/state_transition.go @@ -168,7 +168,6 @@ func (k *Keeper) ApplyTransaction(tx *ethtypes.Transaction) (*types.MsgEthereumT // set the transaction hash and index to the impermanent (transient) block state so that it's also // available on the StateDB functions (eg: AddLog) k.SetTxHashTransient(txHash) - k.IncreaseTxIndexTransient() if !k.ctxStack.IsEmpty() { panic("context stack shouldn't be dirty before apply message") @@ -186,6 +185,8 @@ func (k *Keeper) ApplyTransaction(tx *ethtypes.Transaction) (*types.MsgEthereumT return nil, stacktrace.Propagate(err, "failed to apply ethereum core message") } + k.IncreaseTxIndexTransient() + res.Hash = txHash.Hex() logs := k.GetTxLogsTransient(txHash)