Skip to content
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

feat: migration for mainnet rollapps (nim + mande) to upgrade to 3D #439

Closed
wants to merge 34 commits into from
Closed
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5d61e4d
replace rdk with local version
danwt Jan 2, 2025
f066ca3
adds a foo upgrade
danwt Jan 2, 2025
65569cc
removes busted code
danwt Jan 2, 2025
de4d041
adds constants for store upgrades
danwt Jan 2, 2025
3ba96c8
removes a todo
danwt Jan 2, 2025
d0c782c
rename package to foo
danwt Jan 2, 2025
191c5e3
removes renamed
danwt Jan 2, 2025
8890b52
pre change upgrade sig
danwt Jan 2, 2025
0323b5b
partially add new keeper params, and start implementing the hub genes…
danwt Jan 2, 2025
f2c2196
pre remove logger
danwt Jan 2, 2025
96a54dd
remove logger
danwt Jan 2, 2025
cba1439
impl the rollapp params
danwt Jan 2, 2025
122fca4
rename foo -> 3d
danwt Jan 2, 2025
95fe9a3
in the middle of writing a test
danwt Jan 2, 2025
2c73d44
need to make the app importable
danwt Jan 2, 2025
b7c5c04
make the test runnable, but it fails due to wrong drs in dymint
danwt Jan 2, 2025
e1f494f
add a test which passes, but I commented out the drs panic
danwt Jan 2, 2025
56857e8
bring back the drs panic
danwt Jan 2, 2025
0ed33e6
replace with cloud
danwt Jan 2, 2025
5c7a09d
rename
danwt Jan 3, 2025
9a3c871
add a hack to make ut work
danwt Jan 3, 2025
05ee547
temp
danwt Jan 3, 2025
864daa2
use my own fork
danwt Jan 3, 2025
35a1baf
go mod tidy
danwt Jan 3, 2025
366a0cd
temp
danwt Jan 3, 2025
5cf148c
remove cosmos fork
danwt Jan 3, 2025
914539c
have it working
danwt Jan 3, 2025
c080f9a
gpush
danwt Jan 3, 2025
ecff690
set genesis info checksum
danwt Jan 6, 2025
6083881
fix order
danwt Jan 6, 2025
9f389fa
use proper remote temporary replacements for rdk and dymint
danwt Jan 6, 2025
475570a
fix rdk sig dep
danwt Jan 6, 2025
f021952
Going to change tactic and NOT populate genesis info
danwt Jan 6, 2025
0a260f3
dont populate genesis info
danwt Jan 6, 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
34 changes: 26 additions & 8 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"os"
"path/filepath"

errorsmod "cosmossdk.io/errors"
"github.com/cosmos/cosmos-sdk/x/authz"
authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper"
authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module"
Expand Down Expand Up @@ -164,6 +165,7 @@
drs3 "github.com/dymensionxyz/rollapp-evm/app/upgrades/drs-3"
drs4 "github.com/dymensionxyz/rollapp-evm/app/upgrades/drs-4"
drs5 "github.com/dymensionxyz/rollapp-evm/app/upgrades/drs-5"
drs5from2d "github.com/dymensionxyz/rollapp-evm/app/upgrades/drs-5-from2d"
)

const (
Expand All @@ -189,7 +191,7 @@
erc20types.StoreKey,
}
// Upgrades contains the upgrade handlers for the application
Upgrades = []upgrades.Upgrade{drs2.Upgrade, drs3.Upgrade, drs4.Upgrade, drs5.Upgrade}
Upgrades = []upgrades.Upgrade{drs2.Upgrade, drs3.Upgrade, drs4.Upgrade, drs5.Upgrade, drs5from2d.Upgrade}
)

func getGovProposalHandlers() []govclient.ProposalHandler {
Expand Down Expand Up @@ -343,6 +345,9 @@
configurator module.Configurator

consensusMessageAdmissionHandler consensus.AdmissionHandler

// optionally override the way to query the dymint version
dymintVersionGetter func() (uint32, error)
}

// NewRollapp returns a reference to an initialized blockchain app
Expand Down Expand Up @@ -520,7 +525,7 @@
app.EvmKeeper = evmkeeper.NewKeeper(
appCodec, keys[evmtypes.StoreKey], tkeys[evmtypes.TransientKey], authtypes.NewModuleAddress(govtypes.ModuleName),
app.AccountKeeper, app.BankKeeper,
EVMWrappedSeqKeeper{app.SequencersKeeper},

Check failure on line 528 in app/app.go

View workflow job for this annotation

GitHub Actions / golangci-lint

cannot use EVMWrappedSeqKeeper{…} (value of type EVMWrappedSeqKeeper) as "github.com/evmos/evmos/v12/x/evm/types".StakingKeeper value in argument to evmkeeper.NewKeeper: EVMWrappedSeqKeeper does not implement "github.com/evmos/evmos/v12/x/evm/types".StakingKeeper (missing method GetHistoricalInfo) (typecheck)
app.FeeMarketKeeper,
tracer, app.GetSubspace(evmtypes.ModuleName),
)
Expand Down Expand Up @@ -838,6 +843,7 @@

if loadLatest {
if err := app.LoadLatestVersion(); err != nil {
err = errorsmod.Wrap(err, "new rollapp: load latest version")
tmos.Exit(err.Error())
}
}
Expand Down Expand Up @@ -874,6 +880,9 @@
resp.ConsensusMessagesResponses = consensusResponses

drsVersion, err := dymintversion.GetDRSVersion()
if app.dymintVersionGetter != nil {
drsVersion, err = app.dymintVersionGetter()
}
if err != nil {
panic(fmt.Errorf("Unable to get DRS version from binary: %w", err))
}
Expand Down Expand Up @@ -1142,12 +1151,15 @@
}
}

func (app *App) setupUpgradeHandler(upgrade upgrades.Upgrade) {
func (app *App) setupUpgradeHandler(u upgrades.Upgrade) {
app.UpgradeKeeper.SetUpgradeHandler(
upgrade.Name,
upgrade.CreateHandler(
app.RollappParamsKeeper,
app.EvmKeeper,
u.Name,
u.CreateHandler(
upgrades.UpgradeKeepers{
RpKeeper: app.RollappParamsKeeper,
EvmKeeper: app.EvmKeeper,
HubgenK: app.HubGenesisKeeper,
},
app.mm,
app.configurator,
),
Expand All @@ -1158,8 +1170,14 @@
panic(fmt.Errorf("failed to read upgrade info from disk: %w", err))
}

if upgradeInfo.Name == upgrade.Name && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
if upgradeInfo.Name == u.Name && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
// configure store loader with the store upgrades
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &upgrade.StoreUpgrades))
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &u.StoreUpgrades))

app.Logger().Info("SetupUpgradeHandler Set store loader.")
}
}

func (app *App) SetDymintVersionGetter(getter func() (uint32, error)) {
app.dymintVersionGetter = getter
}
6 changes: 3 additions & 3 deletions app/upgrades/drs-2/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/dymensionxyz/rollapp-evm/app/upgrades"
evmkeeper "github.com/evmos/evmos/v12/x/evm/keeper"

rollappparamskeeper "github.com/dymensionxyz/dymension-rdk/x/rollappparams/keeper"
rollappparamstypes "github.com/dymensionxyz/dymension-rdk/x/rollappparams/types"
)

func CreateUpgradeHandler(
rpKeeper rollappparamskeeper.Keeper,
evmKeeper *evmkeeper.Keeper,
kk upgrades.UpgradeKeepers,
mm *module.Manager,
configurator module.Configurator,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
if err := HandleUpgrade(ctx, rpKeeper, evmKeeper); err != nil {
if err := HandleUpgrade(ctx, kk.RpKeeper, kk.EvmKeeper); err != nil {
return nil, err
}
return mm.RunMigrations(ctx, configurator, fromVM)
Expand Down
6 changes: 3 additions & 3 deletions app/upgrades/drs-3/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ import (
"github.com/cosmos/cosmos-sdk/types/module"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
rollappparamskeeper "github.com/dymensionxyz/dymension-rdk/x/rollappparams/keeper"
"github.com/dymensionxyz/rollapp-evm/app/upgrades"
evmkeeper "github.com/evmos/evmos/v12/x/evm/keeper"

drs2 "github.com/dymensionxyz/rollapp-evm/app/upgrades/drs-2"
)

func CreateUpgradeHandler(
rpKeeper rollappparamskeeper.Keeper,
evmKeeper *evmkeeper.Keeper,
kk upgrades.UpgradeKeepers,
mm *module.Manager,
configurator module.Configurator,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
if err := HandleUpgrade(ctx, rpKeeper, evmKeeper); err != nil {
if err := HandleUpgrade(ctx, kk.RpKeeper, kk.EvmKeeper); err != nil {
return nil, err
}
return mm.RunMigrations(ctx, configurator, fromVM)
Expand Down
6 changes: 3 additions & 3 deletions app/upgrades/drs-4/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ import (
"github.com/cosmos/cosmos-sdk/types/module"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
rollappparamskeeper "github.com/dymensionxyz/dymension-rdk/x/rollappparams/keeper"
"github.com/dymensionxyz/rollapp-evm/app/upgrades"
evmkeeper "github.com/evmos/evmos/v12/x/evm/keeper"

drs3 "github.com/dymensionxyz/rollapp-evm/app/upgrades/drs-3"
)

func CreateUpgradeHandler(
rpKeeper rollappparamskeeper.Keeper,
evmKeeper *evmkeeper.Keeper,
kk upgrades.UpgradeKeepers,
mm *module.Manager,
configurator module.Configurator,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
if err := HandleUpgrade(ctx, rpKeeper, evmKeeper); err != nil {
if err := HandleUpgrade(ctx, kk.RpKeeper, kk.EvmKeeper); err != nil {
return nil, err
}
return mm.RunMigrations(ctx, configurator, fromVM)
Expand Down
37 changes: 37 additions & 0 deletions app/upgrades/drs-5-from2d/constants.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package drs5from2d

import (
storetypes "github.com/cosmos/cosmos-sdk/store/types"
authztypes "github.com/cosmos/cosmos-sdk/x/authz"
"github.com/cosmos/cosmos-sdk/x/feegrant"
hubtypes "github.com/dymensionxyz/dymension-rdk/x/hub/types"
rollappparamstypes "github.com/dymensionxyz/dymension-rdk/x/rollappparams/types"
timeupgradetypes "github.com/dymensionxyz/dymension-rdk/x/timeupgrade/types"
claimstypes "github.com/evmos/evmos/v12/x/claims/types"

"github.com/dymensionxyz/rollapp-evm/app/upgrades"
)

const (
UpgradeName = "drs-5-from2D"
DRS uint32 = 5
DA string = "celestia"
)

var Upgrade = upgrades.Upgrade{
Name: UpgradeName,
CreateHandler: CreateUpgradeHandler,
StoreUpgrades: storetypes.StoreUpgrades{
Deleted: []string{
claimstypes.ModuleName,
"denommetadata",
},
Added: []string{
authztypes.ModuleName,
feegrant.ModuleName,
timeupgradetypes.ModuleName,
hubtypes.ModuleName,
rollappparamstypes.ModuleName,
},
},
}
2 changes: 2 additions & 0 deletions app/upgrades/drs-5-from2d/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Package drs5mainnet (3D) provides a 3D upgrade for the apps Nim+Mande from mainnet (rollapp-evm v2.2.1) to a 3D compatible version.
package drs5from2d
55 changes: 55 additions & 0 deletions app/upgrades/drs-5-from2d/upgrade.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package drs5from2d

import (
"fmt"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
hubgenkeeper "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/keeper"
hubgenesistypes "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/types"
rollappparamskeeper "github.com/dymensionxyz/dymension-rdk/x/rollappparams/keeper"
"github.com/dymensionxyz/rollapp-evm/app/upgrades"
)

func CreateUpgradeHandler(
kk upgrades.UpgradeKeepers,
mm *module.Manager,
configurator module.Configurator,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {

if err := migrateHubGenesis(ctx, kk.HubgenK); err != nil {
return nil, fmt.Errorf("migrate hub genesis: %w", err)
}

if err := migrateRollappParams(ctx, kk.RpKeeper); err != nil {
return nil, fmt.Errorf("migrate rollapp params: %w", err)
}

return mm.RunMigrations(ctx, configurator, fromVM)
danwt marked this conversation as resolved.
Show resolved Hide resolved
}
}

func migrateHubGenesis(ctx sdk.Context, k hubgenkeeper.Keeper) error {
s := k.GetState(ctx)
s.OutboundTransfersEnabled = true
s.InFlight = false
s.HubPortAndChannel = &hubgenesistypes.PortAndChannel{
Port: "transfer",
Channel: "channel-0",
}
k.SetState(ctx, s)
danwt marked this conversation as resolved.
Show resolved Hide resolved
return k.PopulateGenesisInfo(ctx, nil)
danwt marked this conversation as resolved.
Show resolved Hide resolved
}

func migrateRollappParams(ctx sdk.Context, k rollappparamskeeper.Keeper) error {
if err := k.SetVersion(ctx, DRS); err != nil {
return fmt.Errorf("set version: %w", err)
}
if err := k.SetDA(ctx, DA); err != nil {
return fmt.Errorf("set DA: %w", err)
}
// no need to set min gas prices, rollapp can do it when it likes
return nil
}
55 changes: 55 additions & 0 deletions app/upgrades/drs-5-from2d/upgrade_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package drs5from2d_test

import (
"testing"

up "github.com/dymensionxyz/rollapp-evm/app/upgrades/drs-5-from2d"
abci "github.com/tendermint/tendermint/abci/types"

upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/dymensionxyz/rollapp-evm/app"
"github.com/stretchr/testify/require"
"github.com/tendermint/tendermint/proto/tendermint/types"
)

func TestBeginBlocker(t *testing.T) {

app, _ := app.SetupWithOneValidator(t)
app.SetDymintVersionGetter(func() (uint32, error) {
return uint32(up.DRS), nil
})
h := int64(42)
ctx := app.NewUncachedContext(true, types.Header{
Height: h - 1,
ChainID: "testchain_9000-1",
})
err := app.UpgradeKeeper.ScheduleUpgrade(ctx, upgradetypes.Plan{
Name: up.UpgradeName,
Height: h,
})
require.NoError(t, err)

// simulate the upgrade process not panic.
require.NotPanics(t, func() {
defer func() {
if r := recover(); r != nil {
t.Fatalf("Upgrade panicked: %v", r)
}
}()
// simulate the upgrade process
ctx = ctx.WithBlockHeight(h)
app.BeginBlocker(ctx, abci.RequestBeginBlock{})
})

// Check if the upgrade was applied correctly
state := app.HubGenesisKeeper.GetState(ctx)
require.True(t, state.OutboundTransfersEnabled, "OutboundTransfersEnabled should be true")
require.False(t, state.InFlight, "InFlight should be false")
require.NotNil(t, state.HubPortAndChannel, "HubPortAndChannel should not be nil")
require.Equal(t, "transfer", state.HubPortAndChannel.Port, "Port should be 'transfer'")
require.Equal(t, "channel-0", state.HubPortAndChannel.Channel, "Channel should be 'channel-0'")

p := app.RollappParamsKeeper.GetParams(ctx)
require.Equal(t, up.DRS, p.DrsVersion, "Version should be set to DRS")
require.Equal(t, up.DA, p.Da, "Version should be set to DRS")
}
6 changes: 3 additions & 3 deletions app/upgrades/drs-5/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ import (
"github.com/cosmos/cosmos-sdk/types/module"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
rollappparamskeeper "github.com/dymensionxyz/dymension-rdk/x/rollappparams/keeper"
"github.com/dymensionxyz/rollapp-evm/app/upgrades"
evmkeeper "github.com/evmos/evmos/v12/x/evm/keeper"

drs4 "github.com/dymensionxyz/rollapp-evm/app/upgrades/drs-4"
)

func CreateUpgradeHandler(
rpKeeper rollappparamskeeper.Keeper,
evmKeeper *evmkeeper.Keeper,
kk upgrades.UpgradeKeepers,
mm *module.Manager,
configurator module.Configurator,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
if err := HandleUpgrade(ctx, rpKeeper, evmKeeper); err != nil {
if err := HandleUpgrade(ctx, kk.RpKeeper, kk.EvmKeeper); err != nil {
return nil, err
}
return mm.RunMigrations(ctx, configurator, fromVM)
Expand Down
10 changes: 8 additions & 2 deletions app/upgrades/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,17 @@ import (
storetypes "github.com/cosmos/cosmos-sdk/store/types"
"github.com/cosmos/cosmos-sdk/types/module"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
hubgenkeeper "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/keeper"
rollappparamskeeper "github.com/dymensionxyz/dymension-rdk/x/rollappparams/keeper"
evmkeeper "github.com/evmos/evmos/v12/x/evm/keeper"
)

type UpgradeKeepers struct {
RpKeeper rollappparamskeeper.Keeper
EvmKeeper *evmkeeper.Keeper
HubgenK hubgenkeeper.Keeper
}

// Upgrade defines a struct containing necessary fields that a SoftwareUpgradeProposal
// must have written, in order for the state migration to go smoothly.
// An upgrade must implement this struct, and then set it in the app.go.
Expand All @@ -18,8 +25,7 @@ type Upgrade struct {

// CreateHandler defines the function that creates an upgrade handler
CreateHandler func(
rpKeeper rollappparamskeeper.Keeper,
evmKeeper *evmkeeper.Keeper,
kk UpgradeKeepers,
mm *module.Manager,
configurator module.Configurator,
) upgradetypes.UpgradeHandler
Expand Down
8 changes: 7 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ require (
github.com/cosmos/cosmos-sdk v0.46.16
github.com/cosmos/ibc-go/v6 v6.2.1
github.com/dymensionxyz/dymension-rdk v1.8.0-rc02
github.com/dymensionxyz/dymint v1.3.0-rc03
github.com/dymensionxyz/dymint v1.3.0-rc02.0.20250103163841-ca8fff3c69ef
github.com/ethereum/go-ethereum v1.12.0
github.com/evmos/evmos/v12 v12.1.6
github.com/gogo/protobuf v1.3.3
Expand Down Expand Up @@ -366,3 +366,9 @@ replace (
github.com/osmosis-labs/osmosis/v15 => github.com/dymensionxyz/osmosis/v15 v15.2.0-dymension-v1.1.2
github.com/tendermint/tendermint => github.com/dymensionxyz/cometbft v0.34.29-0.20241128205759-2a9d5f015da5
)

// TODO: cleanup after rdk is merged
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clean these replacements before merging

replace github.com/dymensionxyz/dymension-rdk => /Users/danwt/Documents/dym/d-dymension-rdk

//replace github.com/dymensionxyz/dymension-rdk => github.com/dymensionxyz/dymension-rdk v1.8.0-rc02.0.20250102180458-aea83a151bf2
//replace github.com/cosmos/cosmos-sdk => /Users/danwt/Documents/dym/d-cosmos-sdk
6 changes: 2 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -577,10 +577,8 @@ github.com/dymensionxyz/cosmos-sdk v0.46.17-0.20241128210616-e9dfe47b8c73 h1:A0O
github.com/dymensionxyz/cosmos-sdk v0.46.17-0.20241128210616-e9dfe47b8c73/go.mod h1:VPUuzF+l+ekSGPV7VVB8m0OMQfwp3QdKWNZjvkU3A1U=
github.com/dymensionxyz/cosmosclient v0.4.2-beta.0.20241121093220-e0d7ad456fbd h1:V89QyOFM84o9w0iFdctMU6So8SS/Xt32JWAXGqJduT0=
github.com/dymensionxyz/cosmosclient v0.4.2-beta.0.20241121093220-e0d7ad456fbd/go.mod h1:3weqpVj/TqTFpC0LjEB3H+HZSpm7BrQ1QkEg1Ahy6KY=
github.com/dymensionxyz/dymension-rdk v1.8.0-rc02 h1:HLWcGucC0t325IsnTlgJDt0JuBqlfDLXFApj7JAvDjE=
github.com/dymensionxyz/dymension-rdk v1.8.0-rc02/go.mod h1:p9rl2xNsbubJcxGnTIVF9D8aKAM+oPkCVdQ6Z6PM2Tw=
github.com/dymensionxyz/dymint v1.3.0-rc03 h1:JRAGrLDMdM642lbcnIgRp3iuHhvLkq0z6LWKZlWLQyI=
github.com/dymensionxyz/dymint v1.3.0-rc03/go.mod h1:C3VbfePK85aRCdA1iHzB2AYD+n1gKR9Pw+wm3wQUXvE=
github.com/dymensionxyz/dymint v1.3.0-rc02.0.20250103163841-ca8fff3c69ef h1:hXWYTeJuXjY7gs434vT9YovKURcC0/mykhq/R/ztKj4=
github.com/dymensionxyz/dymint v1.3.0-rc02.0.20250103163841-ca8fff3c69ef/go.mod h1:sqE+4imdASE9lm63jv+K2zmOnclLJNZLPYbL9m6vR3o=
github.com/dymensionxyz/evmos/v12 v12.1.6-dymension-v0.5.0-rc02 h1:G6rtzFNnzeYOHN33rkw0kMQX+xRantRLTip1AMXYmBg=
github.com/dymensionxyz/evmos/v12 v12.1.6-dymension-v0.5.0-rc02/go.mod h1:CI6D89pkoiIm4BjoMFNnEaCLdKBEobLuwvhS0c1zh7Y=
github.com/dymensionxyz/gerr-cosmos v1.0.0 h1:oi91rgOkpJWr41oX9JOyjvvBnhGY54tj513x8VlDAEc=
Expand Down
Loading