mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-10 18:15:19 +00:00
1a51d1fb00
* Add ibc markets to pricefeed * Default empty oracles if no markets * Update pricefeed migration tests * Add ibc markets to testdata genesis pricefeed * Add existing pricefeed markets and new ibc markets to committee permissions * Remove stray empty branch * Panic on committee migration if pricefeed app state is missing * Remove redundant import
135 lines
2.9 KiB
Go
135 lines
2.9 KiB
Go
package v0_16
|
|
|
|
import (
|
|
"github.com/cosmos/cosmos-sdk/types"
|
|
v015pricefeed "github.com/kava-labs/kava/x/pricefeed/legacy/v0_15"
|
|
v016pricefeed "github.com/kava-labs/kava/x/pricefeed/types"
|
|
)
|
|
|
|
var NewIBCMarkets = []v016pricefeed.Market{
|
|
{
|
|
MarketID: "atom:usd",
|
|
BaseAsset: "atom",
|
|
QuoteAsset: "usd",
|
|
Oracles: nil,
|
|
Active: true,
|
|
},
|
|
{
|
|
MarketID: "atom:usd:30",
|
|
BaseAsset: "atom",
|
|
QuoteAsset: "usd",
|
|
Oracles: nil,
|
|
Active: true,
|
|
},
|
|
{
|
|
MarketID: "akt:usd",
|
|
BaseAsset: "akt",
|
|
QuoteAsset: "usd",
|
|
Oracles: nil,
|
|
Active: true,
|
|
},
|
|
{
|
|
MarketID: "akt:usd:30",
|
|
BaseAsset: "akt",
|
|
QuoteAsset: "usd",
|
|
Oracles: nil,
|
|
Active: true,
|
|
},
|
|
{
|
|
MarketID: "luna:usd",
|
|
BaseAsset: "luna",
|
|
QuoteAsset: "usd",
|
|
Oracles: nil,
|
|
Active: true,
|
|
},
|
|
{
|
|
MarketID: "luna:usd:30",
|
|
BaseAsset: "luna",
|
|
QuoteAsset: "usd",
|
|
Oracles: nil,
|
|
Active: true,
|
|
},
|
|
{
|
|
MarketID: "osmo:usd",
|
|
BaseAsset: "osmo",
|
|
QuoteAsset: "usd",
|
|
Oracles: nil,
|
|
Active: true,
|
|
},
|
|
{
|
|
MarketID: "osmo:usd:30",
|
|
BaseAsset: "osmo",
|
|
QuoteAsset: "usd",
|
|
Oracles: nil,
|
|
Active: true,
|
|
},
|
|
{
|
|
MarketID: "ust:usd",
|
|
BaseAsset: "ust",
|
|
QuoteAsset: "usd",
|
|
Oracles: nil,
|
|
Active: true,
|
|
},
|
|
{
|
|
MarketID: "ust:usd:30",
|
|
BaseAsset: "ust",
|
|
QuoteAsset: "usd",
|
|
Oracles: nil,
|
|
Active: true,
|
|
},
|
|
}
|
|
|
|
func migrateParams(params v015pricefeed.Params) v016pricefeed.Params {
|
|
markets := make(v016pricefeed.Markets, len(params.Markets))
|
|
for i, market := range params.Markets {
|
|
markets[i] = v016pricefeed.Market{
|
|
MarketID: market.MarketID,
|
|
BaseAsset: market.BaseAsset,
|
|
QuoteAsset: market.QuoteAsset,
|
|
Oracles: market.Oracles,
|
|
Active: market.Active,
|
|
}
|
|
}
|
|
|
|
markets = addIbcMarkets(markets)
|
|
|
|
return v016pricefeed.Params{Markets: markets}
|
|
}
|
|
|
|
func addIbcMarkets(markets v016pricefeed.Markets) v016pricefeed.Markets {
|
|
var oracles []types.AccAddress
|
|
|
|
if len(markets) > 0 {
|
|
oracles = markets[0].Oracles
|
|
}
|
|
|
|
for _, newMarket := range NewIBCMarkets {
|
|
// newMarket is a copy, should not affect other uses of NewIBCMarkets
|
|
newMarket.Oracles = oracles
|
|
markets = append(markets, newMarket)
|
|
}
|
|
|
|
return markets
|
|
}
|
|
|
|
func migratePostedPrices(oldPostedPrices v015pricefeed.PostedPrices) v016pricefeed.PostedPrices {
|
|
newPrices := make(v016pricefeed.PostedPrices, len(oldPostedPrices))
|
|
for i, price := range oldPostedPrices {
|
|
newPrices[i] = v016pricefeed.PostedPrice{
|
|
MarketID: price.MarketID,
|
|
OracleAddress: price.OracleAddress,
|
|
Price: price.Price,
|
|
Expiry: price.Expiry,
|
|
}
|
|
}
|
|
return newPrices
|
|
}
|
|
|
|
// Migrate converts v0.15 pricefeed state and returns it in v0.16 format
|
|
func Migrate(oldState v015pricefeed.GenesisState) *v016pricefeed.GenesisState {
|
|
return &v016pricefeed.GenesisState{
|
|
Params: migrateParams(oldState.Params),
|
|
PostedPrices: migratePostedPrices(oldState.PostedPrices),
|
|
}
|
|
}
|