Skip to content

Commit

Permalink
bump slinky to latest and use hash strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
beer-1 committed May 10, 2024
1 parent e7aa290 commit 3a13dcd
Show file tree
Hide file tree
Showing 8 changed files with 3,564 additions and 1,905 deletions.
32 changes: 26 additions & 6 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,9 @@ import (
auctionante "github.com/skip-mev/block-sdk/v2/x/auction/ante"
auctionkeeper "github.com/skip-mev/block-sdk/v2/x/auction/keeper"
auctiontypes "github.com/skip-mev/block-sdk/v2/x/auction/types"
marketmap "github.com/skip-mev/slinky/x/marketmap"
marketmapkeeper "github.com/skip-mev/slinky/x/marketmap/keeper"
marketmaptypes "github.com/skip-mev/slinky/x/marketmap/types"
"github.com/skip-mev/slinky/x/oracle"
oraclekeeper "github.com/skip-mev/slinky/x/oracle/keeper"
oracletypes "github.com/skip-mev/slinky/x/oracle/types"
Expand Down Expand Up @@ -239,6 +242,7 @@ type MinitiaApp struct {
AuctionKeeper *auctionkeeper.Keeper // x/auction keeper used to process bids for POB auctions
PacketForwardKeeper *packetforwardkeeper.Keeper
OracleKeeper *oraclekeeper.Keeper // x/oracle keeper used for the slinky oracle
MarketMapKeeper *marketmapkeeper.Keeper
TokenFactoryKeeper *tokenfactorykeeper.Keeper
IBCHooksKeeper *ibchookskeeper.Keeper
ForwardingKeeper *forwardingkeeper.Keeper
Expand Down Expand Up @@ -301,6 +305,7 @@ func NewMinitiaApp(
ibcfeetypes.StoreKey, wasmtypes.StoreKey, opchildtypes.StoreKey,
auctiontypes.StoreKey, packetforwardtypes.StoreKey, oracletypes.StoreKey,
tokenfactorytypes.StoreKey, ibchookstypes.StoreKey, forwardingtypes.StoreKey,
marketmaptypes.StoreKey,
)
tkeys := storetypes.NewTransientStoreKeys(forwardingtypes.TransientStoreKey)
memKeys := storetypes.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
Expand Down Expand Up @@ -380,14 +385,25 @@ func NewMinitiaApp(
////////////////////////////////

// initialize oracle keeper
marketMapKeeper := marketmapkeeper.NewKeeper(
runtime.NewKVStoreService(keys[marketmaptypes.StoreKey]),
appCodec,
authorityAccAddr,
)
app.MarketMapKeeper = marketMapKeeper

oracleKeeper := oraclekeeper.NewKeeper(
runtime.NewKVStoreService(keys[oracletypes.StoreKey]),
appCodec,
nil,
marketMapKeeper,
authorityAccAddr,
)
app.OracleKeeper = &oracleKeeper

// Add the oracle keeper as a hook to market map keeper so new market map entries can be created
// and propogated to the oracle keeper.
app.MarketMapKeeper.SetHooks(app.OracleKeeper.Hooks())

app.OPChildKeeper = opchildkeeper.NewKeeper(
appCodec,
runtime.NewKVStoreService(keys[opchildtypes.StoreKey]),
Expand Down Expand Up @@ -770,6 +786,7 @@ func NewMinitiaApp(
forwarding.NewAppModule(app.ForwardingKeeper),
// slinky modules
oracle.NewAppModule(appCodec, *app.OracleKeeper),
marketmap.NewAppModule(appCodec, app.MarketMapKeeper),
)

if err := app.setupIndexer(appOpts, homePath, ac, vc, appCodec); err != nil {
Expand Down Expand Up @@ -803,6 +820,7 @@ func NewMinitiaApp(
authz.ModuleName,
ibcexported.ModuleName,
oracletypes.ModuleName,
marketmaptypes.ModuleName,
)

app.ModuleManager.SetOrderEndBlockers(
Expand All @@ -811,6 +829,7 @@ func NewMinitiaApp(
feegrant.ModuleName,
group.ModuleName,
oracletypes.ModuleName,
marketmaptypes.ModuleName,
forwardingtypes.ModuleName,
)

Expand All @@ -822,11 +841,12 @@ func NewMinitiaApp(
genesisModuleOrder := []string{
capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName,
opchildtypes.ModuleName, genutiltypes.ModuleName, authz.ModuleName, group.ModuleName,
upgradetypes.ModuleName, feegrant.ModuleName, consensusparamtypes.ModuleName, ibcexported.ModuleName,
ibctransfertypes.ModuleName, icatypes.ModuleName, icaauthtypes.ModuleName,
ibcfeetypes.ModuleName, auctiontypes.ModuleName,
wasmtypes.ModuleName, oracletypes.ModuleName, packetforwardtypes.ModuleName,
tokenfactorytypes.ModuleName, ibchookstypes.ModuleName, forwardingtypes.ModuleName,
upgradetypes.ModuleName, feegrant.ModuleName, consensusparamtypes.ModuleName,
ibcexported.ModuleName, ibctransfertypes.ModuleName, icatypes.ModuleName,
icaauthtypes.ModuleName, ibcfeetypes.ModuleName, auctiontypes.ModuleName,
wasmtypes.ModuleName, oracletypes.ModuleName, marketmaptypes.ModuleName,
packetforwardtypes.ModuleName, tokenfactorytypes.ModuleName,
ibchookstypes.ModuleName, forwardingtypes.ModuleName,
}

app.ModuleManager.SetOrderInitGenesis(genesisModuleOrder...)
Expand Down
60 changes: 54 additions & 6 deletions app/genesis.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package app

import (
"encoding/hex"
"encoding/json"

"cosmossdk.io/core/address"
"github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/types/module"
icacontrollertypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types"
Expand All @@ -14,9 +16,11 @@ import (

l2slinky "github.com/initia-labs/OPinit/x/opchild/l2slinky"
opchildtypes "github.com/initia-labs/OPinit/x/opchild/types"
"github.com/initia-labs/initia/app/genesis_markets"

auctiontypes "github.com/skip-mev/block-sdk/v2/x/auction/types"
slinkytypes "github.com/skip-mev/slinky/pkg/types"
marketmaptypes "github.com/skip-mev/slinky/x/marketmap/types"
oracletypes "github.com/skip-mev/slinky/x/oracle/types"
)

Expand All @@ -30,29 +34,73 @@ import (
type GenesisState map[string]json.RawMessage

// NewDefaultGenesisState generates the default state for the application.
func NewDefaultGenesisState(cdc codec.JSONCodec, mbm module.BasicManager, denom string) GenesisState {
func NewDefaultGenesisState(cdc codec.Codec, mbm module.BasicManager, denom string) GenesisState {
return GenesisState(mbm.DefaultGenesis(cdc)).
ConfigureMinGasPrices(cdc).
ConfigureICA(cdc).
ConfigureIBCAllowedClients(cdc).
ConfigureAuctionFee(cdc, denom).
AddTimestampCurrencyPair(cdc)
AddMarketData(cdc, cdc.InterfaceRegistry().SigningContext().AddressCodec())
}

func (genState GenesisState) AddTimestampCurrencyPair(cdc codec.JSONCodec) GenesisState {
func (genState GenesisState) AddMarketData(cdc codec.JSONCodec, ac address.Codec) GenesisState {
var oracleGenState oracletypes.GenesisState
cdc.MustUnmarshalJSON(genState[oracletypes.ModuleName], &oracleGenState)

cp, err := slinkytypes.CurrencyPairFromString(l2slinky.ReservedCPTimestamp)
var marketGenState marketmaptypes.GenesisState
cdc.MustUnmarshalJSON(genState[marketmaptypes.ModuleName], &marketGenState)

// Load initial markets
markets, err := genesis_markets.ReadMarketsFromFile(genesis_markets.GenesisMarkets)
if err != nil {
panic(err)
}
marketGenState.MarketMap = genesis_markets.ToMarketMap(markets)

// Skip Admin account.
adminAddrBz, err := hex.DecodeString("51B89E89D58FFB3F9DB66263FF10A216CF388A0E")
if err != nil {
panic(err)
}

oracleGenState.CurrencyPairGenesis = append(oracleGenState.CurrencyPairGenesis, oracletypes.CurrencyPairGenesis{
adminAddr, err := ac.BytesToString(adminAddrBz)
if err != nil {
panic(err)
}

marketGenState.Params.MarketAuthorities = []string{adminAddr}
marketGenState.Params.Admin = adminAddr

var id uint64

// Initialize all markets plus ReservedCPTimestamp
currencyPairGenesis := make([]oracletypes.CurrencyPairGenesis, len(markets)+1)
cp, err := slinkytypes.CurrencyPairFromString(l2slinky.ReservedCPTimestamp)
if err != nil {
panic(err)
}
currencyPairGenesis[id] = oracletypes.CurrencyPairGenesis{
CurrencyPair: cp,
CurrencyPairPrice: nil,
Nonce: 0,
})
Id: id,
}
id++
for i, market := range markets {
currencyPairGenesis[i+1] = oracletypes.CurrencyPairGenesis{
CurrencyPair: market.Ticker.CurrencyPair,
CurrencyPairPrice: nil,
Nonce: 0,
Id: id,
}
id++
}

oracleGenState.CurrencyPairGenesis = currencyPairGenesis
oracleGenState.NextId = id

// write the updates to genState
genState[marketmaptypes.ModuleName] = cdc.MustMarshalJSON(&marketGenState)
genState[oracletypes.ModuleName] = cdc.MustMarshalJSON(&oracleGenState)
return genState
}
Expand Down
11 changes: 11 additions & 0 deletions client/docs/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,17 @@
},
{
"url": "./tmp-swagger-gen/indexer/pair/v1/query.swagger.json"
},
{
"url": "./tmp-swagger-gen/slinky/oracle/v1/query.swagger.json"
},
{
"url": "./tmp-swagger-gen/slinky/marketmap/v1/query.swagger.json",
"operationIds": {
"rename": {
"Params": "MarketMapParams"
}
}
}
]
}
2 changes: 1 addition & 1 deletion client/docs/statik/statik.go

Large diffs are not rendered by default.

Loading

0 comments on commit 3a13dcd

Please sign in to comment.