0g-chain/x/pricefeed/integration_test.go
2024-07-30 21:46:39 +08:00

67 lines
1.9 KiB
Go

package pricefeed_test
import (
"time"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/0glabs/0g-chain/app"
"github.com/0glabs/0g-chain/x/pricefeed/types"
)
func NewPricefeedGen() types.GenesisState {
return types.GenesisState{
Params: types.Params{
Markets: []types.Market{
{MarketID: "btc:usd", BaseAsset: "btc", QuoteAsset: "usd", Oracles: []sdk.AccAddress{}, Active: true},
{MarketID: "xrp:usd", BaseAsset: "xrp", QuoteAsset: "usd", Oracles: []sdk.AccAddress{}, Active: true},
},
},
PostedPrices: []types.PostedPrice{
{
MarketID: "btc:usd",
OracleAddress: sdk.AccAddress("oracle1"),
Price: sdk.MustNewDecFromStr("8000.00"),
Expiry: time.Now().Add(1 * time.Hour),
},
{
MarketID: "xrp:usd",
OracleAddress: sdk.AccAddress("oracle2"),
Price: sdk.MustNewDecFromStr("0.25"),
Expiry: time.Now().Add(1 * time.Hour),
},
},
}
}
func NewPricefeedGenStateMulti() app.GenesisState {
pfGenesis := NewPricefeedGen()
return app.GenesisState{types.ModuleName: types.ModuleCdc.LegacyAmino.MustMarshalJSON(pfGenesis)}
}
func NewPricefeedGenStateWithOracles(addrs []sdk.AccAddress) app.GenesisState {
pfGenesis := types.GenesisState{
Params: types.Params{
Markets: []types.Market{
{MarketID: "btc:usd", BaseAsset: "btc", QuoteAsset: "usd", Oracles: addrs, Active: true},
{MarketID: "xrp:usd", BaseAsset: "xrp", QuoteAsset: "usd", Oracles: addrs, Active: true},
},
},
PostedPrices: []types.PostedPrice{
{
MarketID: "btc:usd",
OracleAddress: addrs[0],
Price: sdk.MustNewDecFromStr("8000.00"),
Expiry: time.Now().Add(1 * time.Hour),
},
{
MarketID: "xrp:usd",
OracleAddress: addrs[0],
Price: sdk.MustNewDecFromStr("0.25"),
Expiry: time.Now().Add(1 * time.Hour),
},
},
}
return app.GenesisState{types.ModuleName: types.ModuleCdc.LegacyAmino.MustMarshalJSON(pfGenesis)}
}