Skip to content
Open
Show file tree
Hide file tree
Changes from 40 commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
89e1683
attempt-basic
aljo242 Sep 30, 2025
47e1ec1
delete-types-address
aljo242 Sep 30, 2025
ddeec48
doc
aljo242 Sep 30, 2025
9e64c51
mempool-api
aljo242 Sep 30, 2025
fe77db3
Revert "delete-types-address"
aljo242 Sep 30, 2025
8120151
add-again
aljo242 Sep 30, 2025
8085454
resolve
aljo242 Sep 30, 2025
5030a6a
ok
aljo242 Sep 30, 2025
b0c28b4
wow
aljo242 Oct 1, 2025
7fa12fa
fix
aljo242 Oct 1, 2025
a03ffd9
trying
aljo242 Oct 1, 2025
96989a5
lint-fikx
aljo242 Oct 1, 2025
0e9a210
more-setup
aljo242 Oct 1, 2025
de34173
geting-there
aljo242 Oct 1, 2025
601e43c
wire
aljo242 Oct 1, 2025
cda9f2d
good-spolt
aljo242 Oct 1, 2025
7d7a641
fixingtown
aljo242 Oct 1, 2025
c08a0eb
disable
aljo242 Oct 1, 2025
f939226
fix
aljo242 Oct 1, 2025
5f05f62
working
aljo242 Oct 1, 2025
6106f3d
maybe
aljo242 Oct 1, 2025
70630d2
wire
aljo242 Oct 1, 2025
959d836
hmmm
aljo242 Oct 1, 2025
57b2c99
eh
aljo242 Oct 1, 2025
eeb0d7c
attempt
aljo242 Oct 2, 2025
25ced56
almost
aljo242 Oct 2, 2025
e297c17
add
aljo242 Oct 2, 2025
4a7ec11
lint-fix
aljo242 Oct 2, 2025
8033839
add-upgrade
aljo242 Oct 2, 2025
06f9001
todo
aljo242 Oct 2, 2025
68b516a
Merge branch 'main' into exp/alex-simplify
aljo242 Oct 3, 2025
21cef57
nice
aljo242 Oct 6, 2025
3bb5844
Merge branch 'main' into exp/alex-simplify
aljo242 Oct 6, 2025
516c296
remove
aljo242 Oct 6, 2025
5d5cb28
fix
aljo242 Oct 6, 2025
b60c423
attempt
aljo242 Oct 6, 2025
5751e06
ok
aljo242 Oct 6, 2025
681f57c
organize
aljo242 Oct 6, 2025
43872f2
attempt-upgrade
aljo242 Oct 6, 2025
14c5593
wip
aljo242 Oct 6, 2025
e45e6c4
fix
aljo242 Oct 6, 2025
e4c2e3e
fixed
aljo242 Oct 6, 2025
396951e
app
aljo242 Oct 6, 2025
52dddb2
move
aljo242 Oct 6, 2025
ad66f9e
extend
aljo242 Oct 6, 2025
63f94fb
extend
aljo242 Oct 6, 2025
94787c7
fix
aljo242 Oct 7, 2025
e56e343
fix
aljo242 Oct 7, 2025
7b16aae
fix
aljo242 Oct 7, 2025
10d5a15
fix
aljo242 Oct 7, 2025
3e948e2
attempt?
aljo242 Oct 7, 2025
4cfbc02
fix
aljo242 Oct 7, 2025
0203e98
attempt
aljo242 Oct 7, 2025
24de218
Merge branch 'main' into exp/alex-simplify
aljo242 Oct 7, 2025
ea73fa5
Merge branch 'main' into exp/alex-simplify
aljo242 Oct 8, 2025
6480b50
fix
aljo242 Oct 8, 2025
b325a74
add
aljo242 Oct 8, 2025
9cb113d
Merge branch 'main' into exp/alex-simplify
aljo242 Oct 15, 2025
4b8b4ac
tidy
aljo242 Oct 15, 2025
e86f0cb
Merge branch 'main' into exp/alex-simplify
aljo242 Oct 15, 2025
15e229f
tidy
aljo242 Oct 15, 2025
d096bf8
Merge branch 'main' into exp/alex-simplify
aljo242 Oct 15, 2025
60daaff
Merge branch 'main' into exp/alex-simplify
aljo242 Oct 16, 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
973 changes: 973 additions & 0 deletions app/app.go

Large diffs are not rendered by default.

128 changes: 128 additions & 0 deletions app/config.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
package app

import (
"github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/codec/types"
"github.com/cosmos/cosmos-sdk/server"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
"github.com/cosmos/cosmos-sdk/std"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/mempool"
authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
)

type EncodingConfig struct {
InterfaceRegistry types.InterfaceRegistry
Codec *codec.ProtoCodec
LegacyAmino *codec.LegacyAmino
TxConfig client.TxConfig
}

func NewEncodingConfigFromOptions(opts types.InterfaceRegistryOptions) EncodingConfig {
interfaceRegistry, err := types.NewInterfaceRegistryWithOptions(opts)
if err != nil {
panic(err)
}

appCodec := codec.NewProtoCodec(interfaceRegistry)
legacyAmino := codec.NewLegacyAmino()
txConfig := authtx.NewTxConfig(appCodec, authtx.DefaultSignModes)

if err := interfaceRegistry.SigningContext().Validate(); err != nil {
panic(err)
}

std.RegisterLegacyAminoCodec(legacyAmino)
std.RegisterInterfaces(interfaceRegistry)

return EncodingConfig{
InterfaceRegistry: interfaceRegistry,
Codec: appCodec,
LegacyAmino: legacyAmino,
TxConfig: txConfig,
}
}

type SDKAppConfig struct {
AppName string

AppOpts servertypes.AppOptions
BaseAppOptions []func(*baseapp.BaseApp)

InterfaceRegistryOptions types.InterfaceRegistryOptions

WithProtocolPool bool
WithAuthz bool
WithEpochs bool
WithFeeGrant bool
WithMint bool
// TODO gov optional?
// TODO any other optional modules?

WithUnorderedTx bool

Keys []string
OrderPreBlockers []string
OrderBeginBlockers []string
OrderEndBlockers []string
OrderInitGenesis []string
OrderExportGenesis []string

ModuleAccountPerms map[string][]string

Mempool mempool.Mempool

VerifyVoteExtensionHandler sdk.VerifyVoteExtensionHandler
PrepareProposalHandler sdk.PrepareProposalHandler
ProcessProposalHandler sdk.ProcessProposalHandler
ExtendVoteHandler sdk.ExtendVoteHandler

Upgrades []Upgrade[AppI]
}

func DefaultSDKAppConfig(
name string,
opts servertypes.AppOptions,
baseAppOptions ...func(*baseapp.BaseApp),
) SDKAppConfig {
defaultOptions := server.DefaultBaseappOptions(opts)

// TODO - populate if nil to fix any issues

baseAppOptions = append(defaultOptions, baseAppOptions...)

return SDKAppConfig{
AppName: name,

InterfaceRegistryOptions: defaultInterfaceRegistryOptions,

AppOpts: opts,
BaseAppOptions: baseAppOptions,
WithProtocolPool: true,
WithAuthz: true,
WithEpochs: true,
WithFeeGrant: true,
WithMint: true,

WithUnorderedTx: true,

ModuleAccountPerms: defaultMaccPerms,

OrderPreBlockers: defaultOrderPreBlockers,
OrderBeginBlockers: defaultOrderBeginBlockers,
OrderEndBlockers: defaultOrderEndBlockers,
OrderInitGenesis: defaultOrderInitGenesis,
OrderExportGenesis: defaultOrderExportGenesis,

Mempool: mempool.NoOpMempool{},
VerifyVoteExtensionHandler: baseapp.NoOpVerifyVoteExtensionHandler(),
ExtendVoteHandler: baseapp.NoOpExtendVote(),
// leave these as nil for construction later in baseapp by default
PrepareProposalHandler: nil,
ProcessProposalHandler: nil,

Upgrades: nil,
}
}
28 changes: 28 additions & 0 deletions app/module.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package app

import (
storetypes "cosmossdk.io/store/types"

"github.com/cosmos/cosmos-sdk/types/module"
)

type Module interface {
module.AppModule

// additional providers // TODO optional?
StoreKeysProvider
NameProvider
MaccPermsProvider
}

type StoreKeysProvider interface {
StoreKeys() map[string]*storetypes.KVStoreKey
}

type NameProvider interface {
Name() string
}

type MaccPermsProvider interface {
MaccPerms() map[string][]string
}
51 changes: 51 additions & 0 deletions app/upgrade.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package app

import (
"context"

"go.uber.org/zap"

storetypes "cosmossdk.io/store/types"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
)

type Upgrade[T AppI] struct {
Name string
StoreUpgrades storetypes.StoreUpgrades
UpgradeCallBack func(ctx sdk.Context, plan upgradetypes.Plan, app T) error
}

func RegisterUpgradeHandlers[T AppI](app T, upgrades ...Upgrade[T]) {
if app.UpgradeKeeper() == nil {
panic("upgrade keeper is nil")
}

for _, upgrade := range upgrades {
app.UpgradeKeeper().SetUpgradeHandler(
upgrade.Name,
func(ctx context.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
sdkCtx := sdk.UnwrapSDKContext(ctx)
sdkCtx.Logger().Debug("running upgrade handler", zap.String("upgrade_name", upgrade.Name))

err := upgrade.UpgradeCallBack(sdkCtx, plan, app)
if err != nil {
return nil, err
}

return app.ModuleManager().RunMigrations(ctx, app.Configurator(), fromVM)
})

upgradeInfo, err := app.UpgradeKeeper().ReadUpgradeInfoFromDisk()
if err != nil {
panic(err)
}

if upgradeInfo.Name == upgrade.Name && !app.UpgradeKeeper().IsSkipHeight(upgradeInfo.Height) {
// configure store loader that checks if version == upgradeHeight and applies store upgrades
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &upgrade.StoreUpgrades))
}
}
}
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ module github.com/cosmos/cosmos-sdk

require (
cosmossdk.io/api v0.9.2
cosmossdk.io/client/v2 v2.0.0-beta.9
cosmossdk.io/collections v1.3.1
cosmossdk.io/core v0.11.3
cosmossdk.io/depinject v1.2.1
Expand Down Expand Up @@ -115,7 +116,7 @@ require (
github.com/cockroachdb/pebble v1.1.5 // indirect
github.com/cockroachdb/redact v1.1.6 // indirect
github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb // indirect
github.com/cometbft/cometbft-db v0.14.1 // indirect
github.com/cometbft/cometbft-db v1.0.4 // indirect
github.com/cosmos/iavl v1.2.6 // indirect
github.com/cosmos/ics23/go v0.11.0 // indirect
github.com/danieljoos/wincred v1.2.2 // indirect
Expand Down
6 changes: 4 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ cloud.google.com/go/trace v1.11.6 h1:2O2zjPzqPYAHrn3OKl029qlqG6W8ZdYaOWRyr8NgMT4
cloud.google.com/go/trace v1.11.6/go.mod h1:GA855OeDEBiBMzcckLPE2kDunIpC72N+Pq8WFieFjnI=
cosmossdk.io/api v0.9.2 h1:9i9ptOBdmoIEVEVWLtYYHjxZonlF/aOVODLFaxpmNtg=
cosmossdk.io/api v0.9.2/go.mod h1:CWt31nVohvoPMTlPv+mMNCtC0a7BqRdESjCsstHcTkU=
cosmossdk.io/client/v2 v2.0.0-beta.9 h1:xc06zg4G858/pK5plhf8RCfo+KR2mdDKJNrEkfrVAqc=
cosmossdk.io/client/v2 v2.0.0-beta.9/go.mod h1:pHf3CCHX5gmbL9rDCVbXhGI2+/DdAVTEZSLpdd5V9Zs=
cosmossdk.io/collections v1.3.1 h1:09e+DUId2brWsNOQ4nrk+bprVmMUaDH9xvtZkeqIjVw=
cosmossdk.io/collections v1.3.1/go.mod h1:ynvkP0r5ruAjbmedE+vQ07MT6OtJ0ZIDKrtJHK7Q/4c=
cosmossdk.io/core v0.11.3 h1:mei+MVDJOwIjIniaKelE3jPDqShCc/F4LkNNHh+4yfo=
Expand Down Expand Up @@ -207,8 +209,8 @@ github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb/go.mod h1:
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/cometbft/cometbft v0.38.18 h1:1ZHYMdu0S75YxFM13LlPXnOwiIpUW5z9TKMQtTIALpw=
github.com/cometbft/cometbft v0.38.18/go.mod h1:PlOQgf3jQorep+g6oVnJgtP65TJvBJoLiXjGaMdNxBE=
github.com/cometbft/cometbft-db v0.14.1 h1:SxoamPghqICBAIcGpleHbmoPqy+crij/++eZz3DlerQ=
github.com/cometbft/cometbft-db v0.14.1/go.mod h1:KHP1YghilyGV/xjD5DP3+2hyigWx0WTp9X+0Gnx0RxQ=
github.com/cometbft/cometbft-db v1.0.4 h1:cezb8yx/ZWcF124wqUtAFjAuDksS1y1yXedvtprUFxs=
github.com/cometbft/cometbft-db v1.0.4/go.mod h1:M+BtHAGU2XLrpUxo3Nn1nOCcnVCiLM9yx5OuT0u5SCA=
github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg=
github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
Expand Down
3 changes: 2 additions & 1 deletion server/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ const (
FlagInterBlockCache = "inter-block-cache"
FlagUnsafeSkipUpgrades = "unsafe-skip-upgrades"
FlagTrace = "trace"
FlagInvCheckPeriod = "inv-check-period"
// Deprecated: will be removed in the next SDK release
FlagInvCheckPeriod = "inv-check-period"

FlagPruning = "pruning"
FlagPruningKeepRecent = "pruning-keep-recent"
Expand Down
Loading
Loading