forked from cerc-io/laconicd-deprecated
e90b21bc8e
1. add bond,auction, nameserivce module 2. update to v0.12.2 ethermint version 3. fix the test cases 4. add gql server
72 lines
2.0 KiB
Go
72 lines
2.0 KiB
Go
package nameservice
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
abci "github.com/tendermint/tendermint/abci/types"
|
|
"github.com/tharsis/ethermint/x/nameservice/keeper"
|
|
"github.com/tharsis/ethermint/x/nameservice/types"
|
|
)
|
|
|
|
func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data types.GenesisState) []abci.ValidatorUpdate {
|
|
keeper.SetParams(ctx, data.Params)
|
|
|
|
for _, record := range data.Records {
|
|
keeper.PutRecord(ctx, record)
|
|
|
|
// Add to record expiry queue if expiry time is in the future.
|
|
if record.ExpiryTime.After(ctx.BlockTime()) {
|
|
keeper.InsertRecordExpiryQueue(ctx, record)
|
|
}
|
|
|
|
// Note: Bond genesis runs first, so bonds will already be present.
|
|
if record.BondId != "" {
|
|
keeper.AddBondToRecordIndexEntry(ctx, record.BondId, record.Id)
|
|
}
|
|
}
|
|
|
|
for _, authority := range data.Authorities {
|
|
//Only import authorities that are marked active.
|
|
if authority.Entry.Status == types.AuthorityActive {
|
|
keeper.SetNameAuthority(ctx, authority.Name, authority.Entry)
|
|
|
|
// Add authority name to expiry queue.
|
|
keeper.InsertAuthorityExpiryQueue(ctx, authority.Name, authority.Entry.ExpiryTime)
|
|
|
|
// Note: Bond genesis runs first, so bonds will already be present.
|
|
if authority.Entry.BondId != "" {
|
|
keeper.AddBondToAuthorityIndexEntry(ctx, authority.Entry.BondId, authority.Name)
|
|
}
|
|
}
|
|
}
|
|
|
|
for _, nameEntry := range data.Names {
|
|
keeper.SetNameRecord(ctx, nameEntry.Name, nameEntry.Entry.Latest.Id)
|
|
}
|
|
|
|
return []abci.ValidatorUpdate{}
|
|
}
|
|
|
|
func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) types.GenesisState {
|
|
params := keeper.GetParams(ctx)
|
|
|
|
records := keeper.ListRecords(ctx)
|
|
|
|
authorities := keeper.ListNameAuthorityRecords(ctx)
|
|
var authorityEntries []types.AuthorityEntry
|
|
for name, record := range authorities {
|
|
authorityEntries = append(authorityEntries, types.AuthorityEntry{
|
|
Name: name,
|
|
Entry: &record,
|
|
})
|
|
}
|
|
|
|
names := keeper.ListNameRecords(ctx)
|
|
|
|
return types.GenesisState{
|
|
Params: params,
|
|
Records: records,
|
|
Authorities: authorityEntries,
|
|
Names: names,
|
|
}
|
|
}
|