Prathamesh Musale
213c390c37
Some checks failed
Integration Tests / test-integration (push) Successful in 2m48s
E2E Tests / test-e2e (push) Successful in 4m56s
Lint / Run golangci-lint (push) Successful in 5m6s
Unit Tests / test-unit (push) Successful in 3m22s
SDK Tests / sdk_tests_nameservice_expiry (push) Successful in 10m40s
SDK Tests / sdk_tests (push) Successful in 10m55s
SDK Tests / sdk_tests_auctions (push) Failing after 16m7s
Part of https://www.notion.so/Rename-laconic2d-to-laconicd-9028d0c020d24d1288e92ebcb773d7a7 Co-authored-by: neeraj <neeraj.rtly@gmail.com> Reviewed-on: cerc-io/laconic2d#26 Co-authored-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to> Co-committed-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to>
96 lines
2.2 KiB
Go
96 lines
2.2 KiB
Go
package keeper
|
|
|
|
import (
|
|
"time"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
"git.vdb.to/cerc-io/laconicd/x/registry"
|
|
)
|
|
|
|
// InitGenesis initializes the module state from a genesis state.
|
|
func (k *Keeper) InitGenesis(ctx sdk.Context, data *registry.GenesisState) error {
|
|
if err := k.Params.Set(ctx, data.Params); err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, record := range data.Records {
|
|
if err := k.SaveRecord(ctx, record); err != nil {
|
|
return err
|
|
}
|
|
|
|
// Add to record expiry queue if expiry time is in the future.
|
|
expiryTime, err := time.Parse(time.RFC3339, record.ExpiryTime)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if expiryTime.After(ctx.BlockTime()) {
|
|
if err := k.insertRecordExpiryQueue(ctx, record); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
for _, authority := range data.Authorities {
|
|
// Only import authorities that are marked active.
|
|
if authority.Entry.Status == registry.AuthorityActive {
|
|
if err := k.SaveNameAuthority(ctx, authority.Name, authority.Entry); err != nil {
|
|
return err
|
|
}
|
|
|
|
// Add authority name to expiry queue.
|
|
if err := k.insertAuthorityExpiryQueue(ctx, authority.Name, authority.Entry.ExpiryTime); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
for _, nameEntry := range data.Names {
|
|
if err := k.SaveNameRecord(ctx, nameEntry.Name, nameEntry.Entry.Latest.Id); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// ExportGenesis exports the module state to a genesis state.
|
|
func (k *Keeper) ExportGenesis(ctx sdk.Context) (*registry.GenesisState, error) {
|
|
params, err := k.Params.Get(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
records, err := k.ListRecords(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
authorities, err := k.ListNameAuthorityRecords(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
authorityEntries := []registry.AuthorityEntry{}
|
|
// #nosec G705
|
|
for name, record := range authorities {
|
|
authorityEntries = append(authorityEntries, registry.AuthorityEntry{
|
|
Name: name,
|
|
Entry: &record, //nolint: all
|
|
}) // #nosec G601
|
|
}
|
|
|
|
names, err := k.ListNameRecords(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return ®istry.GenesisState{
|
|
Params: params,
|
|
Records: records,
|
|
Authorities: authorityEntries,
|
|
Names: names,
|
|
}, nil
|
|
}
|