Skip to content

Conversation

@pdrobnjak
Copy link
Contributor

Summary

  • Add an alternative mode where the Giga executor uses the original EvmKeeper (x/evm/keeper) instead of GigaEvmKeeper (giga/deps/xevm/keeper)
  • This enables comparing behavior between the two keepers for debugging and validation
  • Complements PR [giga] Add UseRegularStore flag to GigaEvmKeeper for testing fallback #2745 (store-switching within GigaEvmKeeper) by providing full keeper comparison

Changes

  • giga/executor/keeper.go: Define GigaExecutorKeeper interface that abstracts over both keeper implementations
  • giga/executor/evmkeeper_adapter.go: Adapter wrapping original EvmKeeper to satisfy the interface (uses ctx.KVStore())
  • giga/executor/gigaevmkeeper_wrapper.go: Wrapper for GigaEvmKeeper to satisfy the interface (uses ctx.GigaKVStore())
  • giga/deps/xevm/keeper/giga_executor_keeper.go: Add NewStateDB() and WriteReceiptFromInterface() methods
  • giga/executor/config/config.go: Add use_evm_keeper config flag
  • app/app.go: Add keeper selection logic and update executeEVMTxWithGigaExecutor() to use the interface

Configuration

[giga_executor]
enabled = true
use_evm_keeper = true  # Use original EvmKeeper instead of GigaEvmKeeper

Key Differences Between Modes

Aspect GigaEvmKeeper (default) EvmKeeper (use_evm_keeper=true)
Store access ctx.GigaKVStore() ctx.KVStore()
StateDB giga/deps/xevm/state x/evm/state
StateDB flush MultiStore + GigaMultiStore MultiStore only

Test plan

  • All existing giga tests pass
  • Code compiles successfully
  • Manual testing with both keeper modes
  • Compare receipts and state between modes

🤖 Generated with Claude Code

Add an alternative mode where the Giga executor uses the original
EvmKeeper (x/evm/keeper) instead of GigaEvmKeeper (giga/deps/xevm/keeper).
This enables comparing behavior between the two keepers.

Key changes:
- Define GigaExecutorKeeper interface abstracting over both keepers
- Add EvmKeeperAdapter wrapping original EvmKeeper for the interface
- Add GigaEvmKeeperWrapper wrapping GigaEvmKeeper for the interface
- Add use_evm_keeper config flag (default: false)
- Update executeEVMTxWithGigaExecutor to use the interface

When use_evm_keeper=true, the executor uses ctx.KVStore() instead of
ctx.GigaKVStore(), allowing comparison of store behavior.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedJan 23, 2026, 3:38 PM

@codecov
Copy link

codecov bot commented Jan 23, 2026

Codecov Report

❌ Patch coverage is 0.75188% with 132 lines in your changes missing coverage. Please review.
✅ Project coverage is 43.83%. Comparing base (c320963) to head (99695a1).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
giga/executor/evmkeeper_adapter.go 0.00% 39 Missing ⚠️
giga/executor/gigaevmkeeper_wrapper.go 0.00% 36 Missing ⚠️
giga/deps/xevm/keeper/giga_executor_keeper.go 0.00% 33 Missing ⚠️
app/app.go 4.54% 21 Missing ⚠️
giga/executor/config/config.go 0.00% 3 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #2747      +/-   ##
==========================================
- Coverage   43.86%   43.83%   -0.03%     
==========================================
  Files        1987     1990       +3     
  Lines      163197   163319     +122     
==========================================
+ Hits        71579    71590      +11     
- Misses      85105    85208     +103     
- Partials     6513     6521       +8     
Flag Coverage Δ
sei-chain 45.96% <0.75%> (-0.09%) ⬇️
sei-cosmos 37.72% <ø> (+<0.01%) ⬆️
sei-db 68.72% <ø> (ø)
sei-tendermint 47.53% <ø> (+0.05%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
giga/executor/config/config.go 0.00% <0.00%> (ø)
app/app.go 56.56% <4.54%> (-0.29%) ⬇️
giga/deps/xevm/keeper/giga_executor_keeper.go 0.00% <0.00%> (ø)
giga/executor/gigaevmkeeper_wrapper.go 0.00% <0.00%> (ø)
giga/executor/evmkeeper_adapter.go 0.00% <0.00%> (ø)

... and 23 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants