Skip to content
Merged
Show file tree
Hide file tree
Changes from 119 commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
f12a324
wip
vladjdk Jul 17, 2025
8646a30
wip: iterator
vladjdk Jul 17, 2025
62c0ed1
nil check
vladjdk Jul 17, 2025
dbd5979
wip: selectby
vladjdk Jul 17, 2025
4dfe122
add todo
vladjdk Jul 17, 2025
4023625
pointer
vladjdk Jul 17, 2025
0171dd0
pointer 2
vladjdk Jul 17, 2025
6b4aea8
remove impl, type assertions
vladjdk Jul 17, 2025
1dd7827
add txpool locally
vladjdk Jul 18, 2025
f19e454
change statedb types to interface
vladjdk Jul 18, 2025
df07ecc
fix tests
vladjdk Jul 18, 2025
c8caf44
scaffold app setup
vladjdk Jul 18, 2025
8cd6e6b
Add initial tests to ExtMempool
vladjdk Jul 21, 2025
511ad56
real priority nonce mempool + fixes
vladjdk Jul 22, 2025
d5ab862
improve test for wrong denom ordering
vladjdk Jul 22, 2025
b39b919
move initialization to mempool
vladjdk Jul 22, 2025
396524c
ok
technicallyty Jul 22, 2025
694eade
Nonce gap tx test
technicallyty Jul 22, 2025
c437599
revert
technicallyty Jul 22, 2025
687d0b7
Merge branch 'main' into technicallyty/fix-systemtest
technicallyty Jul 22, 2025
ca54d86
bloom parsing dumb
technicallyty Jul 22, 2025
6a544ec
Merge branch 'technicallyty/fix-systemtest' of ssh://github.com/cosmo…
technicallyty Jul 22, 2025
d67cc21
redundant
technicallyty Jul 22, 2025
88018c8
ignore this dir for markdown linting
technicallyty Jul 22, 2025
4b6fd8b
Cleanup + Test SelectBy
vladjdk Jul 22, 2025
9cbaad2
Merge branch 'main' into technicallyty/fix-systemtest
Jul 23, 2025
a726a44
implement blockchain
vladjdk Jul 23, 2025
3fe4755
update systemtest test tag
technicallyty Jul 23, 2025
32504c2
add subscription
vladjdk Jul 23, 2025
2a0c679
fix tests
vladjdk Jul 24, 2025
ff369d7
wiring and bug fixes and todos and etc
vladjdk Jul 24, 2025
b0c1954
wip
vladjdk Jul 25, 2025
d8250bd
Merge remote-tracking branch 'origin/main' into vlad/mempool
vladjdk Jul 25, 2025
a78af61
fix
vladjdk Jul 25, 2025
4fdf1ed
WIP on vlad/mempool
vladjdk Jul 25, 2025
16c3a98
Auto stash before checking out "origin/vlad/mempool"
vladjdk Jul 28, 2025
7a862da
rpc no error
vladjdk Jul 28, 2025
6ce8fe3
clean up logging
vladjdk Jul 28, 2025
d4a115c
Merge remote-tracking branch 'origin/technicallyty/fix-systemtest' in…
vladjdk Jul 28, 2025
44f4f38
verification
vladjdk Jul 28, 2025
9fc9678
Add broadcasting
vladjdk Jul 29, 2025
73eaaf1
add retries to tx results
vladjdk Jul 29, 2025
2df2e49
feature: Add txpool namespace stubs ahead of app-side mempool impleme…
almk-dev Jul 28, 2025
26414ca
txpool endpoint
vladjdk Jul 29, 2025
92bb2d7
wip refactor
vladjdk Aug 1, 2025
d3b13f4
do not allow block 1 submission
vladjdk Aug 5, 2025
520eb9a
fix some tests
vladjdk Aug 5, 2025
e1783e5
fix more tests
vladjdk Aug 6, 2025
92dea4f
fix last remaining evmd test
vladjdk Aug 6, 2025
92b2447
add second registry for testing
vladjdk Aug 6, 2025
3c24701
wip: integration tests
vladjdk Aug 6, 2025
39b0ff0
wip: functional tests
vladjdk Aug 6, 2025
563e268
fix tests and chain
vladjdk Aug 7, 2025
ff3636a
demo ready
vladjdk Aug 7, 2025
3c9269a
fix removals (out of gas errors should be skipped)
vladjdk Aug 7, 2025
a06c7ce
add gas to config
vladjdk Aug 7, 2025
2f546c6
attempt to fix flakes
vladjdk Aug 7, 2025
e1d08f8
strict equalities
vladjdk Aug 7, 2025
fa593b5
FIXED FLAKES
vladjdk Aug 8, 2025
3ce4edf
reformat tests into original structure
vladjdk Aug 8, 2025
9848d8b
nonce gap tests
vladjdk Aug 8, 2025
c772e4d
add demo test and fix prev system case
vladjdk Aug 8, 2025
75abb48
remove done todos and the other mempool
vladjdk Aug 8, 2025
96c27b1
add instructions to remove mempool
vladjdk Aug 8, 2025
94c8ba0
remove mocks
vladjdk Aug 8, 2025
1c12bc6
lint fixes
vladjdk Aug 8, 2025
f4da857
review test cases
vladjdk Aug 8, 2025
2406f31
add some more test cases
vladjdk Aug 8, 2025
d9d558f
Merge remote-tracking branch 'origin/main' into vlad/mempool
vladjdk Aug 8, 2025
1839afd
fix scripts
vladjdk Aug 8, 2025
69ace33
add more backoff for testing
vladjdk Aug 8, 2025
172df9d
remove logs from simplesends
vladjdk Aug 8, 2025
de6eb67
fix systest CI
technicallyty Aug 8, 2025
3d30fd6
skip test for now see if main one works
technicallyty Aug 9, 2025
8d65e46
Update .markdownlintignore
vladjdk Aug 11, 2025
d068b63
Update evmd/tests/integration/create_app.go
vladjdk Aug 11, 2025
5d92027
Merge branch 'main' into vlad/mempool
vladjdk Aug 11, 2025
9bb166e
Refactor: Rename 'nonce' to 'accountNonce' in IncrementNonce function
vladjdk Aug 11, 2025
ac25c26
refactor app.go imports
vladjdk Aug 11, 2025
e4c1913
extract atest to constant
vladjdk Aug 11, 2025
fcc0b2c
fix nonce name test
vladjdk Aug 11, 2025
99b8e77
use actual release
vladjdk Aug 11, 2025
ce52d42
evmd use release tag
vladjdk Aug 11, 2025
e019977
refactor ctx -> getCtxCallback
vladjdk Aug 11, 2025
83b1199
rename errors2 and types2 to sdkerrors and sdktypes
vladjdk Aug 11, 2025
c87f01b
group vars in mempool init
vladjdk Aug 11, 2025
072d23f
privatize newBlockchain
vladjdk Aug 11, 2025
aa207d7
enhance mempool init readability on nil checks
vladjdk Aug 11, 2025
58764fa
move txPool checks to right after initialization
vladjdk Aug 11, 2025
49a7bad
use errors.Is for nonce gap errors in rpc
vladjdk Aug 11, 2025
76d9ae3
group vars
vladjdk Aug 11, 2025
ed25637
Update tests/systemtests/.gitignore
Aug 11, 2025
6fa5bc7
refactor iterator to make it more readable
vladjdk Aug 11, 2025
d734426
Merge remote-tracking branch 'origin/vlad/mempool' into vlad/mempool
vladjdk Aug 11, 2025
3e8f87a
refactor iterator to make it more readable
vladjdk Aug 11, 2025
d144501
Merge remote-tracking branch 'origin/vlad/mempool' into vlad/mempool
vladjdk Aug 11, 2025
5488611
rename blocked -> queued and runnable -> pending
vladjdk Aug 11, 2025
c9fbb49
explain some questionable naming choices
vladjdk Aug 11, 2025
33fd5d3
add some status constants
vladjdk Aug 11, 2025
69dd478
add logging
vladjdk Aug 12, 2025
6fd0eaa
move custom endblocker to vm
vladjdk Aug 12, 2025
9425ac0
fix rpc error compare
vladjdk Aug 12, 2025
7f9bf57
fix system tests
vladjdk Aug 12, 2025
8d4acf9
Merge branch 'main' into vlad/mempool
vladjdk Aug 12, 2025
bf14082
lints
vladjdk Aug 12, 2025
0945c35
Merge remote-tracking branch 'origin/vlad/mempool' into vlad/mempool
vladjdk Aug 12, 2025
d78de90
fixed from main merge
vladjdk Aug 12, 2025
9e5e58d
Merge branch 'main' into vlad/mempool
vladjdk Aug 12, 2025
2a2a269
rename mempool to experimental
vladjdk Aug 12, 2025
b4f8772
Auto-fix markdown lint issues
github-actions[bot] Aug 12, 2025
4fa8e16
Merge branch 'main' into vlad/mempool
vladjdk Aug 12, 2025
4706fa0
Merge branch 'main' into vlad/mempool
vladjdk Aug 12, 2025
fe58e64
we tidy
vladjdk Aug 12, 2025
4998a33
overflow comment
vladjdk Aug 12, 2025
0355137
add changelog entry
vladjdk Aug 12, 2025
6c4af6e
Merge remote-tracking branch 'origin/main' into vlad/mempool
vladjdk Aug 12, 2025
5c46f0e
Update evmd/app.go
vladjdk Aug 13, 2025
1b40807
remove comment
vladjdk Aug 13, 2025
5a22e7b
initialize txpool unconditionally
vladjdk Aug 13, 2025
64773d7
sort by effective gas tips instead of fees on cosmos
vladjdk Aug 13, 2025
55567ba
lints
vladjdk Aug 13, 2025
ea2a777
small test cleanup
vladjdk Aug 13, 2025
48c6a24
Merge remote-tracking branch 'origin/main' into vlad/mempool
vladjdk Aug 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/system-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ jobs:
with:
go-version: "1.22"
check-latest: true
- name: Install Foundry (forge/cast/anvil)
uses: foundry-rs/foundry-toolchain@v1
with:
version: stable
- uses: actions/checkout@v4
- uses: technote-space/[email protected]
with:
Expand Down
4 changes: 4 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@ linters:
text: 'ST1001:'
paths:
- x/vm/core
- mempool/txpool
- mempool/miner
- third_party$
- builtin$
- examples$
Expand Down Expand Up @@ -121,6 +123,8 @@ formatters:
generated: lax
paths:
- x/vm/core
- mempool/txpool
- mempool/miner
- third_party$
- builtin$
- examples$
2 changes: 1 addition & 1 deletion .markdownlintignore
Original file line number Diff line number Diff line change
@@ -1 +1 @@
tests/systemtests/Counter
tests/systemtests/Counter
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
- [\#389](https://github.com/cosmos/evm/pull/389) Post-audit security fixes (batch 3)
- [\#392](https://github.com/cosmos/evm/pull/392) Post-audit security fixes (batch 5)
- [\#398](https://github.com/cosmos/evm/pull/398) Post-audit security fixes (batch 4)
- [\#387](https://github.com/cosmos/evm/pull/387) (Experimental) EVM-compatible appside mempool

### FEATURES

Expand Down
23 changes: 15 additions & 8 deletions ante/evm/09_increment_sequence.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"math"

anteinterfaces "github.com/cosmos/evm/ante/interfaces"
"github.com/cosmos/evm/mempool"

errorsmod "cosmossdk.io/errors"

Expand All @@ -18,28 +19,34 @@ func IncrementNonce(
account sdk.AccountI,
txNonce uint64,
) error {
nonce := account.GetSequence()
// we merged the nonce verification to nonce increment, so when tx includes multiple messages
accountNonce := account.GetSequence()
// we merged the accountNonce verification to accountNonce increment, so when tx includes multiple messages
// with same sender, they'll be accepted.
if txNonce != nonce {
if txNonce != accountNonce {
if txNonce > accountNonce {
return errorsmod.Wrapf(
mempool.ErrNonceGap,
"tx nonce: %d, account accountNonce: %d", txNonce, accountNonce,
)
}
return errorsmod.Wrapf(
errortypes.ErrInvalidSequence,
"invalid nonce; got %d, expected %d", txNonce, nonce,
"invalid nonce; got %d, expected %d", txNonce, accountNonce,
)
}

// EIP-2681 / state safety: refuse to overflow beyond 2^64-1.
if nonce == math.MaxUint64 {
if accountNonce == math.MaxUint64 {
return errorsmod.Wrap(
errortypes.ErrInvalidSequence,
"nonce overflow: increment beyond 2^64-1 violates EIP-2681",
)
}

nonce++
accountNonce++

if err := account.SetSequence(nonce); err != nil {
return errorsmod.Wrapf(err, "failed to set sequence to %d", nonce)
if err := account.SetSequence(accountNonce); err != nil {
return errorsmod.Wrapf(err, "failed to set sequence to %d", accountNonce)
}

accountKeeper.SetAccount(ctx, account)
Expand Down
1 change: 0 additions & 1 deletion evmd/ante/ante.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package ante

import (
errorsmod "cosmossdk.io/errors"

sdk "github.com/cosmos/cosmos-sdk/types"
errortypes "github.com/cosmos/cosmos-sdk/types/errors"
authante "github.com/cosmos/cosmos-sdk/x/auth/ante"
Expand Down
43 changes: 41 additions & 2 deletions evmd/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ import (
evmconfig "github.com/cosmos/evm/config"
evmosencoding "github.com/cosmos/evm/encoding"
"github.com/cosmos/evm/evmd/ante"
evmmempool "github.com/cosmos/evm/mempool"
evmserver "github.com/cosmos/evm/server"
srvflags "github.com/cosmos/evm/server/flags"
cosmosevmtypes "github.com/cosmos/evm/types"
"github.com/cosmos/evm/x/erc20"
Expand Down Expand Up @@ -88,6 +90,7 @@ import (
servertypes "github.com/cosmos/cosmos-sdk/server/types"
testdata_pulsar "github.com/cosmos/cosmos-sdk/testutil/testdata/testpb"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkmempool "github.com/cosmos/cosmos-sdk/types/mempool"
"github.com/cosmos/cosmos-sdk/types/module"
"github.com/cosmos/cosmos-sdk/types/msgservice"
signingtypes "github.com/cosmos/cosmos-sdk/types/tx/signing"
Expand Down Expand Up @@ -150,6 +153,7 @@ var (
_ runtime.AppI = (*EVMD)(nil)
_ servertypes.Application = (*EVMD)(nil)
_ ibctesting.TestingApp = (*EVMD)(nil)
_ evmserver.EVMAppCreator = (*EVMD)(nil)
)

// EVMD extends an ABCI application, but with most of its parameters exported.
Expand All @@ -160,6 +164,7 @@ type EVMD struct {
appCodec codec.Codec
interfaceRegistry types.InterfaceRegistry
txConfig client.TxConfig
clientCtx client.Context

pendingTxListeners []ante.PendingTxListener

Expand Down Expand Up @@ -193,6 +198,7 @@ type EVMD struct {
EVMKeeper *evmkeeper.Keeper
Erc20Keeper erc20keeper.Keeper
PreciseBankKeeper precisebankkeeper.Keeper
EVMMempool *evmmempool.ExperimentalEVMMempool

// the module manager
ModuleManager *module.Manager
Expand Down Expand Up @@ -231,7 +237,7 @@ func NewExampleApp(
// Example:
//
// bApp := baseapp.NewBaseApp(...)
// nonceMempool := mempool.NewSenderNonceMempool()
// nonceMempool := evmmempool.NewSenderNonceMempool()
// abciPropHandler := NewDefaultProposalHandler(nonceMempool, bApp)
//
// bApp.SetMempool(nonceMempool)
Expand Down Expand Up @@ -438,7 +444,7 @@ func NewExampleApp(

app.GovKeeper = *govKeeper.SetHooks(
govtypes.NewMultiGovHooks(
// register the governance hooks
// register the governance hooks
),
)

Expand Down Expand Up @@ -756,6 +762,31 @@ func NewExampleApp(

app.setAnteHandler(app.txConfig, maxGasWanted)

// set the EVM priority nonce mempool
// If you wish to use the noop mempool, remove this codeblock
if evmtypes.GetChainConfig() != nil {
// TODO: Get the actual block gas limit from consensus parameters
mempoolConfig := &evmmempool.EVMMempoolConfig{
AnteHandler: app.GetAnteHandler(),
BlockGasLimit: 100_000_000,
}

evmMempool := evmmempool.NewExperimentalEVMMempool(app.CreateQueryContext, logger, app.EVMKeeper, app.FeeMarketKeeper, app.txConfig, app.clientCtx, mempoolConfig)
app.EVMMempool = evmMempool

// Set the global mempool for RPC access
if err := evmmempool.SetGlobalEVMMempool(evmMempool); err != nil {
panic(err)
}
app.SetMempool(evmMempool)
checkTxHandler := evmmempool.NewCheckTxHandler(evmMempool)
app.SetCheckTxHandler(checkTxHandler)

abciProposalHandler := baseapp.NewDefaultProposalHandler(evmMempool, app)
abciProposalHandler.SetSignerExtractionAdapter(evmmempool.NewEthSignerExtractionAdapter(sdkmempool.NewDefaultSignerExtractionAdapter()))
app.SetPrepareProposal(abciProposalHandler.PrepareProposalHandler())
}

// In v0.46, the SDK introduces _postHandlers_. PostHandlers are like
// antehandlers, but are run _after_ the `runMsgs` execution. They are also
// defined as a chain, and have the same signature as antehandlers.
Expand Down Expand Up @@ -1102,6 +1133,10 @@ func (app *EVMD) SetTransferKeeper(transferKeeper transferkeeper.Keeper) {
app.TransferKeeper = transferKeeper
}

func (app *EVMD) GetMempool() sdkmempool.ExtMempool {
return app.EVMMempool
}

func (app *EVMD) GetAnteHandler() sdk.AnteHandler {
return app.BaseApp.AnteHandler()
}
Expand All @@ -1111,6 +1146,10 @@ func (app *EVMD) GetTxConfig() client.TxConfig {
return app.txConfig
}

func (app *EVMD) SetClientCtx(clientCtx client.Context) {
app.clientCtx = clientCtx
}

// AutoCliOpts returns the autocli options for the app.
func (app *EVMD) AutoCliOpts() autocli.AppOptions {
modules := make(map[string]appmodule.AppModule, 0)
Expand Down
21 changes: 0 additions & 21 deletions evmd/cmd/evmd/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,10 @@ import (
"github.com/cosmos/cosmos-sdk/client/pruning"
"github.com/cosmos/cosmos-sdk/client/rpc"
"github.com/cosmos/cosmos-sdk/client/snapshot"
"github.com/cosmos/cosmos-sdk/server"
sdkserver "github.com/cosmos/cosmos-sdk/server"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/mempool"
sdktestutil "github.com/cosmos/cosmos-sdk/types/module/testutil"
"github.com/cosmos/cosmos-sdk/types/tx/signing"
authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli"
Expand Down Expand Up @@ -315,25 +313,6 @@ func newApp(
baseapp.SetChainID(chainID),
}

// Set up the required mempool and ABCI proposal handlers for Cosmos EVM
baseappOptions = append(baseappOptions, func(app *baseapp.BaseApp) {
var mpool mempool.Mempool
if maxTxs := cast.ToInt(appOpts.Get(server.FlagMempoolMaxTxs)); maxTxs >= 0 {
// Setup Mempool and Proposal Handlers
mpool = mempool.NewPriorityMempool(mempool.PriorityNonceMempoolConfig[int64]{
TxPriority: mempool.NewDefaultTxPriority(),
SignerExtractor: evmd.NewEthSignerExtractionAdapter(mempool.NewDefaultSignerExtractionAdapter()),
MaxTx: maxTxs,
})
} else {
mpool = mempool.NoOpMempool{}
}
app.SetMempool(mpool)
handler := baseapp.NewDefaultProposalHandler(mpool, app)
app.SetPrepareProposal(handler.PrepareProposalHandler())
app.SetProcessProposal(handler.ProcessProposalHandler())
})

return evmd.NewExampleApp(
logger, db, traceStore, true,
appOpts,
Expand Down
6 changes: 4 additions & 2 deletions evmd/cmd/evmd/cmd/testnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ var (
unsafeStartValidatorFn UnsafeStartValidatorCmdCreator
)

const TEST_DENOM = "atest"

var mnemonics = []string{
"copper push brief egg scan entry inform record adjust fossil boss egg comic alien upon aspect dry avoid interest fury window hint race symptom",
"maximum display century economy unlock van census kite error heart snow filter midnight usage egg venture cash kick motor survey drastic edge muffin visual",
Expand Down Expand Up @@ -384,7 +386,7 @@ func initTestnetFiles(
accTokens := sdk.TokensFromConsensusPower(1000, sdk.DefaultPowerReduction)
accStakingTokens := sdk.TokensFromConsensusPower(500, sdk.DefaultPowerReduction)
coins := sdk.Coins{
sdk.NewCoin("atest", accTokens),
sdk.NewCoin(TEST_DENOM, accTokens),
sdk.NewCoin(sdk.DefaultBondDenom, accStakingTokens),
}

Expand Down Expand Up @@ -462,7 +464,7 @@ func addExtraAccounts(kb keyring.Keyring, algo keyring.SignatureAlgo) ([]banktyp
accTokens := sdk.TokensFromConsensusPower(1000, sdk.DefaultPowerReduction)
accStakingTokens := sdk.TokensFromConsensusPower(500, sdk.DefaultPowerReduction)
coins := sdk.Coins{
sdk.NewCoin("atest", accTokens),
sdk.NewCoin(TEST_DENOM, accTokens),
sdk.NewCoin(sdk.DefaultBondDenom, accStakingTokens),
}
coins = coins.Sort()
Expand Down
2 changes: 1 addition & 1 deletion evmd/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ require (
github.com/stretchr/testify v1.10.0
golang.org/x/sync v0.16.0
google.golang.org/grpc v1.74.2
google.golang.org/protobuf v1.36.7
)

require (
Expand Down Expand Up @@ -263,6 +262,7 @@ require (
google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect
google.golang.org/protobuf v1.36.7 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gotest.tools/v3 v3.5.2 // indirect
Expand Down
8 changes: 5 additions & 3 deletions evmd/tests/integration/create_app.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,20 @@ import (
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
)

// CreateEvmd creates an evmos app
// CreateEvmd creates an evm app for regular integration tests (non-mempool)
// This version uses a noop mempool to avoid state issues during transaction processing
func CreateEvmd(chainID string, evmChainID uint64, customBaseAppOptions ...func(*baseapp.BaseApp)) evm.EvmApp {
defaultNodeHome, err := clienthelpers.GetNodeHomeDirectory(".evmd")
if err != nil {
panic(err)
}
// create evmos app

db := dbm.NewMemDB()
logger := log.NewNopLogger()
loadLatest := true
appOptions := simutils.NewAppOptionsWithFlagHome(defaultNodeHome)
baseAppOptions := append(customBaseAppOptions, baseapp.SetChainID(chainID)) //nolint:gocritic

baseAppOptions := append(customBaseAppOptions, baseapp.SetChainID(chainID))

return evmd.NewExampleApp(
logger,
Expand Down
14 changes: 14 additions & 0 deletions evmd/tests/integration/mempool/mempool_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package mempool

import (
"github.com/cosmos/evm/evmd/tests/integration"
"testing"

"github.com/stretchr/testify/suite"

"github.com/cosmos/evm/tests/integration/mempool"
)

func TestMempoolIntegrationTestSuite(t *testing.T) {
suite.Run(t, mempool.NewMempoolIntegrationTestSuite(integration.CreateEvmd))
}
2 changes: 2 additions & 0 deletions interfaces.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import (
"github.com/cosmos/cosmos-sdk/codec/types"
"github.com/cosmos/cosmos-sdk/runtime"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/mempool"
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
Expand Down Expand Up @@ -61,4 +62,5 @@ type EvmApp interface { //nolint:revive
GetAnteHandler() sdk.AnteHandler
GetSubspace(moduleName string) paramstypes.Subspace
MsgServiceRouter() *baseapp.MsgServiceRouter
GetMempool() mempool.ExtMempool
}
2 changes: 1 addition & 1 deletion local_node.sh
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ if [[ $overwrite == "y" || $overwrite == "Y" ]]; then

# set custom pruning settings
sed -i.bak 's/pruning = "default"/pruning = "custom"/g' "$APP_TOML"
sed -i.bak 's/pruning-keep-recent = "0"/pruning-keep-recent = "2"/g' "$APP_TOML"
sed -i.bak 's/pruning-keep-recent = "0"/pruning-keep-recent = "100"/g' "$APP_TOML"
sed -i.bak 's/pruning-interval = "0"/pruning-interval = "10"/g' "$APP_TOML"

# Allocate genesis accounts (cosmos formatted addresses)
Expand Down
Loading
Loading