Skip to content

zetacored : multiple zEvm trasactions idexed under the same value in a block #4494

@kingpinXD

Description

@kingpinXD

Isssue Reported Here :
https://zetachain.slack.com/archives/C050TRQ1P0C/p1765871438169139

The two transactions
https://zetascan.com/tx/0xaf37aef2217e93f3905dc533dc143f952be8897449950f50a0c64bffed081052?tab=logs
https://zetascan.com/tx/0x2de7729ffef1f7a6cbbf7d095a55a17df721612ca79de44a9b2399ac031986f3?tab=logs

Are part of the same block and update the gasPrice for chains 56 and 8453

A probable cause might be the fact that we use ApplyMessage for applying the EVM message
https://github.com/zeta-chain/zeta-node/blob/1b02addfa1ea4831fa2fe0fbb5f0869ea9f197e7/x/fungible/keeper/evm.go#L824-L824

Which internally creates an empty TxConfig

// ApplyMessage calls ApplyMessageWithConfig with an empty TxConfig.
func (k *Keeper) ApplyMessage(ctx sdk.Context, msg core.Message, tracer *tracing.Hooks, commit bool, internal bool) (*types.MsgEthereumTxResponse, error) {
	cfg, err := k.EVMConfig(ctx, ctx.BlockHeader().ProposerAddress)
	if err != nil {
		return nil, errorsmod.Wrap(err, "failed to load evm config")
	}

	txConfig := statedb.NewEmptyTxConfig(common.BytesToHash(ctx.HeaderHash()))
	return k.ApplyMessageWithConfig(ctx, msg, tracer, commit, cfg, txConfig, internal)
}

We could instead consider using ApplyMessageWithConfig directly and provide the txIndex as part of txConfig

Metadata

Metadata

Assignees

Labels

zetacoreIssues related to ZetaCore

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions