Skip to content

Commit

Permalink
fix: fix default marketmap genesis generation
Browse files Browse the repository at this point in the history
  • Loading branch information
RiccardoM committed Nov 29, 2024
1 parent b5bccd3 commit 89f6385
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
9 changes: 5 additions & 4 deletions app/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ func (genState GenesisState) AddMarketData(cdc codec.JSONCodec) GenesisState {
var marketGenState marketmaptypes.GenesisState
cdc.MustUnmarshalJSON(genState[marketmaptypes.ModuleName], &marketGenState)

// Load initial markets
coreMarkets := marketmaps.CoreMarketMap
markets := coreMarkets.Markets
// Load the initial markets into the marketmap genesis state
marketGenState.MarketMap = marketmaps.CoreMarketMap

// Sort keys so we can deterministically iterate over map items.
markets := marketGenState.MarketMap.Markets
keys := make([]string, 0, len(markets))
for name := range markets {
keys = append(keys, name)
Expand All @@ -51,7 +51,8 @@ func (genState GenesisState) AddMarketData(cdc codec.JSONCodec) GenesisState {
// Initialize all markets
var id uint64
currencyPairGenesis := make([]oracletypes.CurrencyPairGenesis, len(markets))
for _, market := range markets {
for _, key := range keys {
market := markets[key]
currencyPairGenesis[id] = oracletypes.CurrencyPairGenesis{
CurrencyPair: market.Ticker.CurrencyPair,
CurrencyPairPrice: nil,
Expand Down
19 changes: 18 additions & 1 deletion app/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import (
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
oracleconfig "github.com/skip-mev/connect/v2/oracle/config"
marketmaptypes "github.com/skip-mev/connect/v2/x/marketmap/types"
oracletypes "github.com/skip-mev/connect/v2/x/oracle/types"
"github.com/stretchr/testify/require"

milkyway "github.com/milkyway-labs/milkyway/v2/app"
)
Expand All @@ -28,6 +30,21 @@ func TestNewDefaultGenesisState(t *testing.T) {
baseapp.SetChainID("milkyway-app"),
)

// Generate the genesis file
genesis := milkyway.NewDefaultGenesisState(app.AppCodec(), app.ModuleBasics)
println(genesis[marketmaptypes.ModuleName])

// Get the codes
cdc, _ := milkyway.MakeCodecs()

// Make sure there are some markets in the genesis state
var marketMapGenesis marketmaptypes.GenesisState
err := cdc.UnmarshalJSON(genesis[marketmaptypes.ModuleName], &marketMapGenesis)
require.NoError(t, err)
require.NotEmpty(t, marketMapGenesis.MarketMap.Markets)

// Make sure the oracle genesis state is properly initialized
var oracleGenesis oracletypes.GenesisState
err = cdc.UnmarshalJSON(genesis[oracletypes.ModuleName], &oracleGenesis)
require.NoError(t, err)
require.Len(t, oracleGenesis.CurrencyPairGenesis, len(marketMapGenesis.MarketMap.Markets))
}

0 comments on commit 89f6385

Please sign in to comment.