diff --git a/app/genesis.go b/app/genesis.go index 31a49b50..df501771 100644 --- a/app/genesis.go +++ b/app/genesis.go @@ -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) @@ -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, diff --git a/app/genesis_test.go b/app/genesis_test.go index 8f43ddf9..ffd9086a 100644 --- a/app/genesis_test.go +++ b/app/genesis_test.go @@ -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" ) @@ -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)) }