Setup hooks between laconic modules #9

Merged
ashwin merged 8 commits from pm-hooks into main 2024-02-28 04:35:00 +00:00
8 changed files with 7 additions and 72 deletions
Showing only changes of commit 4def3a9cf4 - Show all commits

View File

@ -10,8 +10,6 @@ type AuctionUsageKeeper interface {
ModuleName() string ModuleName() string
UsesAuction(ctx sdk.Context, auctionId string) bool UsesAuction(ctx sdk.Context, auctionId string) bool
OnAuction(ctx sdk.Context, auctionId string)
OnAuctionBid(ctx sdk.Context, auctionId string, bidderAddress string)
OnAuctionWinnerSelected(ctx sdk.Context, auctionId string) OnAuctionWinnerSelected(ctx sdk.Context, auctionId string)
} }

View File

@ -62,8 +62,6 @@ func newBidsIndexes(sb *collections.SchemaBuilder) BidsIndexes {
} }
} }
// TODO: Add required methods
type Keeper struct { type Keeper struct {
// Codecs // Codecs
cdc codec.BinaryCodec cdc codec.BinaryCodec
@ -120,16 +118,7 @@ func (k *Keeper) SetUsageKeepers(usageKeepers []auctiontypes.AuctionUsageKeeper)
// SaveAuction - saves a auction to the store. // SaveAuction - saves a auction to the store.
func (k Keeper) SaveAuction(ctx sdk.Context, auction *auctiontypes.Auction) error { func (k Keeper) SaveAuction(ctx sdk.Context, auction *auctiontypes.Auction) error {
if err := k.Auctions.Set(ctx, auction.Id, *auction); err != nil { return k.Auctions.Set(ctx, auction.Id, *auction)
return err
}
// Notify interested parties.
for _, keeper := range k.usageKeepers {
keeper.OnAuction(ctx, auction.Id)
}
return nil
} }
// DeleteAuction - deletes the auction. // DeleteAuction - deletes the auction.
@ -160,16 +149,7 @@ func (k Keeper) HasAuction(ctx sdk.Context, id string) (bool, error) {
func (k Keeper) SaveBid(ctx sdk.Context, bid *auctiontypes.Bid) error { func (k Keeper) SaveBid(ctx sdk.Context, bid *auctiontypes.Bid) error {
key := collections.Join(bid.AuctionId, bid.BidderAddress) key := collections.Join(bid.AuctionId, bid.BidderAddress)
if err := k.Bids.Set(ctx, key, *bid); err != nil { return k.Bids.Set(ctx, key, *bid)
return err
}
// Notify interested parties.
for _, keeper := range k.usageKeepers {
keeper.OnAuctionBid(ctx, bid.AuctionId, bid.BidderAddress)
}
return nil
} }
func (k Keeper) DeleteBid(ctx sdk.Context, bid auctiontypes.Bid) error { func (k Keeper) DeleteBid(ctx sdk.Context, bid auctiontypes.Bid) error {
@ -201,7 +181,6 @@ func (k Keeper) GetBid(ctx sdk.Context, id string, bidder string) (auctiontypes.
func (k Keeper) GetBids(ctx sdk.Context, id string) ([]*auctiontypes.Bid, error) { func (k Keeper) GetBids(ctx sdk.Context, id string) ([]*auctiontypes.Bid, error) {
var bids []*auctiontypes.Bid var bids []*auctiontypes.Bid
// TODO: Optimize using return by value?
err := k.Bids.Walk(ctx, collections.NewPrefixedPairRange[string, string](id), func(key collections.Pair[string, string], value auctiontypes.Bid) (stop bool, err error) { err := k.Bids.Walk(ctx, collections.NewPrefixedPairRange[string, string](id), func(key collections.Pair[string, string], value auctiontypes.Bid) (stop bool, err error) {
bids = append(bids, &value) bids = append(bids, &value)
return false, nil return false, nil

View File

@ -20,8 +20,6 @@ import (
"git.vdb.to/cerc-io/laconic2d/x/auction/keeper" "git.vdb.to/cerc-io/laconic2d/x/auction/keeper"
) )
// TODO: Port remaining AppModule methods
var ( var (
_ module.AppModuleBasic = AppModule{} _ module.AppModuleBasic = AppModule{}
_ appmodule.AppModule = AppModule{} _ appmodule.AppModule = AppModule{}

View File

@ -18,8 +18,6 @@ import (
"git.vdb.to/cerc-io/laconic2d/x/bond/keeper" "git.vdb.to/cerc-io/laconic2d/x/bond/keeper"
) )
// TODO: Port remaining AppModule methods
var ( var (
_ module.AppModuleBasic = AppModule{} _ module.AppModuleBasic = AppModule{}
_ appmodule.AppModule = AppModule{} _ appmodule.AppModule = AppModule{}

View File

@ -43,12 +43,6 @@ func (k *Keeper) InitGenesis(ctx sdk.Context, data *registry.GenesisState) error
if err := k.insertAuthorityExpiryQueue(ctx, authority.Name, authority.Entry.ExpiryTime); err != nil { if err := k.insertAuthorityExpiryQueue(ctx, authority.Name, authority.Entry.ExpiryTime); err != nil {
return err return err
} }
// TODO
// Note: Bond genesis runs first, so bonds will already be present.
// if authority.Entry.BondId != "" {
// k.AddBondToAuthorityIndexEntry(ctx, authority.Entry.BondId, authority.Name)
// }
} }
} }

View File

@ -29,8 +29,6 @@ import (
"git.vdb.to/cerc-io/laconic2d/x/registry/helpers" "git.vdb.to/cerc-io/laconic2d/x/registry/helpers"
) )
// TODO: Add required methods
type RecordsIndexes struct { type RecordsIndexes struct {
BondId *indexes.Multi[string, string, registrytypes.Record] BondId *indexes.Multi[string, string, registrytypes.Record]
} }
@ -51,7 +49,6 @@ func newRecordIndexes(sb *collections.SchemaBuilder) RecordsIndexes {
} }
} }
// TODO
type AuthoritiesIndexes struct { type AuthoritiesIndexes struct {
AuctionId *indexes.Multi[string, string, registrytypes.NameAuthority] AuctionId *indexes.Multi[string, string, registrytypes.NameAuthority]
} }
@ -287,7 +284,7 @@ func (k Keeper) SetRecord(ctx sdk.Context, msg registrytypes.MsgSetRecord) (*reg
// Sort owners list. // Sort owners list.
sort.Strings(record.Owners) sort.Strings(record.Owners)
sdkErr := k.processRecord(ctx, &record, false) sdkErr := k.processRecord(ctx, &record)
if sdkErr != nil { if sdkErr != nil {
return nil, sdkErr return nil, sdkErr
} }
@ -295,7 +292,7 @@ func (k Keeper) SetRecord(ctx sdk.Context, msg registrytypes.MsgSetRecord) (*reg
return &record, nil return &record, nil
} }
func (k Keeper) processRecord(ctx sdk.Context, record *registrytypes.ReadableRecord, isRenewal bool) error { func (k Keeper) processRecord(ctx sdk.Context, record *registrytypes.ReadableRecord) error {
params, err := k.GetParams(ctx) params, err := k.GetParams(ctx)
if err != nil { if err != nil {
return err return err
@ -433,7 +430,6 @@ func (k Keeper) GetModuleBalances(ctx sdk.Context) []*registrytypes.AccountBalan
// ProcessRecordExpiryQueue tries to renew expiring records (by collecting rent) else marks them as deleted. // ProcessRecordExpiryQueue tries to renew expiring records (by collecting rent) else marks them as deleted.
func (k Keeper) ProcessRecordExpiryQueue(ctx sdk.Context) error { func (k Keeper) ProcessRecordExpiryQueue(ctx sdk.Context) error {
// TODO: process expired records
cids, err := k.getAllExpiredRecords(ctx, ctx.BlockHeader().Time) cids, err := k.getAllExpiredRecords(ctx, ctx.BlockHeader().Time)
if err != nil { if err != nil {
return err return err

View File

@ -132,7 +132,6 @@ func (k Keeper) SaveNameRecord(ctx sdk.Context, crn string, id string) error {
Height: uint64(ctx.BlockHeight()), Height: uint64(ctx.BlockHeight()),
} }
// TODO: Check if index gets updated on entry updates
return k.NameRecords.Set(ctx, crn, nameRecord) return k.NameRecords.Set(ctx, crn, nameRecord)
} }
@ -271,12 +270,9 @@ func (k Keeper) createAuthority(ctx sdk.Context, name string, owner string, isRo
// If auctions are enabled, clear out owner fields. They will be set after a winner is picked. // If auctions are enabled, clear out owner fields. They will be set after a winner is picked.
authority.OwnerAddress = "" authority.OwnerAddress = ""
authority.OwnerPublicKey = "" authority.OwnerPublicKey = ""
// Reset bond ID if required. // Reset bond ID if required.
if authority.BondId != "" || len(authority.BondId) != 0 { authority.BondId = ""
// TODO
// k.RemoveBondToAuthorityIndexEntry(ctx, authority.BondId, name)
authority.BondId = ""
}
params := auctiontypes.Params{ params := auctiontypes.Params{
CommitsDuration: moduleParams.AuthorityAuctionCommitsDuration, CommitsDuration: moduleParams.AuthorityAuctionCommitsDuration,
@ -294,10 +290,6 @@ func (k Keeper) createAuthority(ctx sdk.Context, name string, owner string, isRo
return sdkErr return sdkErr
} }
// TODO
// Create auction ID -> authority name index.
// k.AddAuctionToAuthorityMapping(ctx, auction.Id, name)
authority.Status = registrytypes.AuthorityUnderAuction authority.Status = registrytypes.AuthorityUnderAuction
authority.AuctionId = auction.Id authority.AuctionId = auction.Id
authority.ExpiryTime = auction.RevealsEndTime.Add(moduleParams.AuthorityGracePeriod) authority.ExpiryTime = auction.RevealsEndTime.Add(moduleParams.AuthorityGracePeriod)
@ -351,22 +343,12 @@ func (k Keeper) SetAuthorityBond(ctx sdk.Context, msg registrytypes.MsgSetAuthor
return nil return nil
} }
// TODO
// Remove old bond ID mapping, if any.
// if authority.BondId != "" {
// k.RemoveBondToAuthorityIndexEntry(ctx, authority.BondId, name)
// }
// Update bond id and save name authority in store. // Update bond id and save name authority in store.
authority.BondId = bond.Id authority.BondId = bond.Id
if err = k.SaveNameAuthority(ctx, name, &authority); err != nil { if err = k.SaveNameAuthority(ctx, name, &authority); err != nil {
return err return err
} }
// TODO
// Add new bond ID mapping.
// k.AddBondToAuthorityIndexEntry(ctx, authority.BondId, name)
return nil return nil
} }

View File

@ -16,8 +16,6 @@ import (
registrytypes "git.vdb.to/cerc-io/laconic2d/x/registry" registrytypes "git.vdb.to/cerc-io/laconic2d/x/registry"
) )
// TODO: Add methods
// Record keeper implements the bond usage keeper interface. // Record keeper implements the bond usage keeper interface.
var ( var (
_ auctiontypes.AuctionUsageKeeper = RecordKeeper{} _ auctiontypes.AuctionUsageKeeper = RecordKeeper{}
@ -54,14 +52,6 @@ func (rk RecordKeeper) UsesAuction(ctx sdk.Context, auctionId string) bool {
return iter.Valid() return iter.Valid()
} }
func (rk RecordKeeper) OnAuction(ctx sdk.Context, auctionId string) {
// no-op
}
func (rk RecordKeeper) OnAuctionBid(ctx sdk.Context, auctionId string, bidderAddress string) {
// no-op
}
func (rk RecordKeeper) OnAuctionWinnerSelected(ctx sdk.Context, auctionId string) { func (rk RecordKeeper) OnAuctionWinnerSelected(ctx sdk.Context, auctionId string) {
// Update authority status based on auction status/winner. // Update authority status based on auction status/winner.
iter, err := rk.k.Authorities.Indexes.AuctionId.MatchExact(ctx, auctionId) iter, err := rk.k.Authorities.Indexes.AuctionId.MatchExact(ctx, auctionId)
@ -168,7 +158,7 @@ func (k Keeper) RenewRecord(ctx sdk.Context, msg registrytypes.MsgRenewRecord) e
} }
readableRecord := record.ToReadableRecord() readableRecord := record.ToReadableRecord()
return k.processRecord(ctx, &readableRecord, true) return k.processRecord(ctx, &readableRecord)
} }
// AssociateBond associates a record with a bond. // AssociateBond associates a record with a bond.