-
Notifications
You must be signed in to change notification settings - Fork 104
refactor(config): remove evmAppOptions entirely #661
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
consolidates these constants into one file in /config
the test was using a duplicate eips multiplier value instead of the global one moved to config
…idate into /config
app options is removed from new app creation. however, we're getting a recovered panic on *restarting* the chain due to prepareproposal running before preblocker: +0x120\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).PrepareProposal.func1()\n\tgithub.com/cosmos/[email protected]/baseapp/abci.go:433 +0x38\npanic({0x1061c8160?, 0x10912faa0?})\n\truntime/panic.go:783 +0x120\ngithub.com/cosmos/evm/x/vm/types.GetEVMCoinDecimals(...)\n\tgithub.com/cosmos/[email protected]/x/vm/types/denom_config.go:61\ngithub.com/cosmos/evm/x/vm/types.ConvertAmountTo18DecimalsLegacy(...)\n\tgithub.com/cosmos/[email protected]/x/vm/types/scaling.go:17\ngithub.com/cosmos/evm/x/vm/wrappers.FeeMarketWrapper.GetBaseFee({{_, _}}, {{0x10698a810, 0x109225540}, {0x1069b51c0, 0x14001f4c200}, {{0x0, 0x0}, {0x16dc0f689, 0x4}, ...}, ...})\n\tgithub.com/cosmos/[email protected]/x/vm/wrappers/feemarket.go:38 +0x68\ngithub.com/cosmos/evm/x/vm/keeper.Keeper.GetBaseFee({{0x1069b4890, 0x14001eddeb0}, {0x10695e0b0, 0x14003560450}, {0x10695e240, 0x14003560490}, 0x140035637a0, {0x1400189d3e0, 0x14, 0x20}, ...}, ...)\n\tgithub.com/cosmos/[email protected]/x/vm/keeper/keeper.go:355 +0xe4\ngithub.com/cosmos/evm/mempool.(*ExperimentalEVMMempool).getIterators(0x14003cbd180, {0x10698a848?, 0x14002c39c08?}, {0x109225540, 0x0, 0x0})\n\tgithub.com/cosmos/[email protected]/mempool/mempool.go:439 +0x20c\ngithub.com/cosmos/evm/mempool.(*ExperimentalEVMMempool).SelectBy(0x14003cbd180, {0x10698a848?, 0x14002c39c08?}, {0x109225540?, 0x14000085ce8?, 0x104cce034?}, 0x140044cd540)\n\tgithub.com/cosmos/[email protected]/mempool/mempool.go:370 +0xe0\ngithub.com/cosmos/cosmos-sdk/types/mempool.SelectBy({0x10698a848?, 0x14002c39c08?}, {0x10698b108?, 0x14003cbd180?}, {0x109225540?, 0x0?, 0x0?}, 0x140044cd540)\n\tgithub.com/cosmos/[email protected]/types/mempool/mempool.go:58 +0xa0\ngithub.com/cosmos/evm/evmd.NewExampleApp.(*DefaultProposalHandler).PrepareProposalHandler.func3({{0x10698a810, 0x109225540}, {0x1069b51c0, 0x14001f4c200}, {{0x0, 0x0}, {0x16dc0f689, 0x4}, 0xd, {0x3507e5b0, ...}, ...}, ...}, ...)\n\tgithub.com/cosmos/[email protected]/baseapp/abci_utils.go:294 +0x250\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).PrepareProposal(0x14002d32488, 0x140015f42c0)\n\tgithub.com/cosmos/[email protected]/baseapp/abci.go:439
the mempool needed the global variable, but that wasn't set, so we set it in the vm keeper storage and use it from there in the mempool everything else still uses the global variable, but we now have a foundation to move it over to the state storage
we were getting the 6 decimal balance when we were operating in 18-balance territory. now that we have a separation in the ibc tests, we should check balances accordingly
1b76be4
to
b9fb2a7
Compare
c6e2c56
to
bb572eb
Compare
configurator.ResetTestConfig() | ||
err := configurator. | ||
WithChainConfig(chainConfig). | ||
err := evmtypes.SetChainConfig(chainConfig) |
Check warning
Code scanning / CodeQL
Unreachable statement Warning test
Copilot Autofix
AI about 9 hours ago
Copilot could not generate an autofix suggestion
Copilot could not generate an autofix suggestion for this alert. Try pushing a new commit or if the problem persists contact support.
configurator.ResetTestConfig() | ||
err := configurator. | ||
WithChainConfig(chainConfig). | ||
err := types.SetChainConfig(chainConfig) |
Check warning
Code scanning / CodeQL
Unreachable statement Warning test
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 1 day ago
The best way to fix this problem is to remove the unreachable statement. Since CodeQL reports the line err := types.SetChainConfig(chainConfig)
as unreachable, the fix is to delete this line, as it cannot execute in the current control flow. The edit should be constrained to the region starting on line 1607 within the function-literal block for the test case titled "pass - nil Base Fee when london hardfork not activated"
. No other changes are necessary if no code depends on the value of err
further down in this block (verified here).
@@ -1604,7 +1604,6 @@ | ||
|
||
configurator := types.NewEVMConfigurator() | ||
configurator.ResetTestConfig() | ||
err := types.SetChainConfig(chainConfig) | ||
s.Require().NoError(err) | ||
err = configurator. | ||
WithEVMCoinInfo(testconstants.ExampleChainCoinInfo[testconstants.ExampleChainID]). |
s.Require().NoError(s.Network.NextBlock()) | ||
configurator := types.NewEVMConfigurator() | ||
configurator.ResetTestConfig() | ||
err = types.SetChainConfig(chainConfig) |
Check warning
Code scanning / CodeQL
Unreachable statement Warning test
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 1 day ago
To fix the unreachable statement, we should ensure that test cleanup/configuration code (such as resetting global configuration with SetChainConfig
and configurator.Configure()
) is reliably executed regardless of whether earlier Require()
assertions pass or fail. The best way is to move these statements into a defer
block at the start of the subtest invocation function. This way, cleanup is run even if an assertion fails.
Specifically, inside the subtest closure (the argument to s.Run(tc.name, func() {...})
), move the configurator reset logic and the SetChainConfig
call into a single defer
block placed at the very beginning of the closure. This requires no new imports, only restructuring of existing code.
-
Copy modified lines R1645-R1655
@@ -1642,6 +1642,17 @@ | ||
|
||
for _, tc := range testCases { | ||
s.Run(tc.name, func() { | ||
// Always run configurator reset/SetChainConfig on subtest exit | ||
defer func() { | ||
configurator := types.NewEVMConfigurator() | ||
configurator.ResetTestConfig() | ||
err := types.SetChainConfig(chainConfig) | ||
s.Require().NoError(err) | ||
err = configurator. | ||
WithEVMCoinInfo(coinInfo). | ||
Configure() | ||
s.Require().NoError(err) | ||
}() | ||
// Set necessary params | ||
tc.setParams() | ||
// Get the expected response | ||
@@ -1659,14 +1670,6 @@ | ||
s.Require().Error(err) | ||
} | ||
s.Require().NoError(s.Network.NextBlock()) | ||
configurator := types.NewEVMConfigurator() | ||
configurator.ResetTestConfig() | ||
err = types.SetChainConfig(chainConfig) | ||
s.Require().NoError(err) | ||
err = configurator. | ||
WithEVMCoinInfo(coinInfo). | ||
Configure() | ||
s.Require().NoError(err) | ||
}) | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall, LGTM — I just left a few minor comments and questions.
It’s nice and clean now that CoinInfo is being stored in the Keeper.
closes: #617
todos for this PR before close: