mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-10 18:15:19 +00:00
d45fa58f5c
* wip: add swap state persistent to genesis * separate pool record constructors; add tests for json and yaml encoding of record structs * beef up validation checks for state records * fix integration with master - renamed method * add test coverage for basic state array validations * extra test around pool record reserve and id ordering to ensure no regressions in the future * add validations to ensure pool records and share records are unique within the collection types * test genesis json and yaml encoding * validate in genesis that the total shares owned for each pool is equal to the total shares of each pool * update alias * nit lint * test genesis init and export * add migration todo Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
33 lines
797 B
Go
33 lines
797 B
Go
package swap
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/kava-labs/kava/x/swap/types"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
)
|
|
|
|
// InitGenesis initializes story state from genesis file
|
|
func InitGenesis(ctx sdk.Context, k Keeper, gs types.GenesisState) {
|
|
if err := gs.Validate(); err != nil {
|
|
panic(fmt.Sprintf("failed to validate %s genesis state: %s", ModuleName, err))
|
|
}
|
|
|
|
k.SetParams(ctx, gs.Params)
|
|
for _, pr := range gs.PoolRecords {
|
|
k.SetPool(ctx, pr)
|
|
}
|
|
for _, sh := range gs.ShareRecords {
|
|
k.SetDepositorShares(ctx, sh)
|
|
}
|
|
}
|
|
|
|
// ExportGenesis exports the genesis state
|
|
func ExportGenesis(ctx sdk.Context, k Keeper) types.GenesisState {
|
|
params := k.GetParams(ctx)
|
|
pools := k.GetAllPools(ctx)
|
|
shares := k.GetAllDepositorShares(ctx)
|
|
return types.NewGenesisState(params, pools, shares)
|
|
}
|