Skip to content

Commit 14ba21d

Browse files
committed
optimize price event triggering
1 parent 6b474a7 commit 14ba21d

File tree

4 files changed

+25
-18
lines changed

4 files changed

+25
-18
lines changed

x/dlc/keeper/event.go

+16-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package keeper
22

33
import (
4+
"fmt"
5+
46
sdkmath "cosmossdk.io/math"
57
storetypes "cosmossdk.io/store/types"
68
sdk "github.com/cosmos/cosmos-sdk/types"
@@ -89,14 +91,22 @@ func (k Keeper) SetEvent(ctx sdk.Context, event *types.DLCPriceEvent) {
8991
store.Set(types.EventByPriceKey(event.TriggerPrice), sdk.Uint64ToBigEndian(event.Id))
9092
}
9193

92-
// TriggerEvent sets the given event to triggered
93-
func (k Keeper) TriggerEvent(ctx sdk.Context, event *types.DLCPriceEvent) {
94-
store := ctx.KVStore(k.storeKey)
95-
94+
// TriggerEvent triggers the given event
95+
func (k Keeper) TriggerEvent(ctx sdk.Context, id uint64) {
96+
event := k.GetEvent(ctx, id)
9697
event.HasTriggered = true
9798

98-
bz := k.cdc.MustMarshal(event)
99-
store.Set(types.EventKey(event.Id), bz)
99+
k.SetEvent(ctx, event)
100+
101+
ctx.EventManager().EmitEvent(
102+
sdk.NewEvent(
103+
types.EventTypeTriggerEvent,
104+
sdk.NewAttribute(types.AttributeKeyEventId, fmt.Sprintf("%d", id)),
105+
sdk.NewAttribute(types.AttributeKeyPubKey, event.Pubkey),
106+
sdk.NewAttribute(types.AttributeKeyNonce, event.Nonce),
107+
sdk.NewAttribute(types.AttributeKeyPrice, event.TriggerPrice.String()),
108+
),
109+
)
100110
}
101111

102112
// GetAllEvents gets all events

x/dlc/types/events.go

+6
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,15 @@ package types
44
const (
55
EventTypeCreateOracle = "create_oracle"
66
EventTypeCreateAgency = "create_agency"
7+
EventTypeTriggerEvent = "trigger_event"
78

89
AttributeKeyId = "id"
910
AttributeKeyParticipants = "participants"
1011
AttributeKeyThreshold = "threshold"
1112
AttributeKeyExpirationTime = "expiration_time"
13+
14+
AttributeKeyEventId = "event_id"
15+
AttributeKeyPubKey = "pub_key"
16+
AttributeKeyNonce = "nonce"
17+
AttributeKeyPrice = "price"
1218
)

x/lending/module/abci.go

+2-12
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,8 @@ func handleLoans(ctx sdk.Context, k keeper.Keeper) {
5959
}
6060
k.AuctionKeeper().CreateAuction(ctx, auction)
6161

62-
dlcEvent := k.DLCKeeper().GetEvent(ctx, loan.EventId)
63-
64-
// emit event
65-
ctx.EventManager().EmitEvent(
66-
sdk.NewEvent(
67-
types.EventTypeLiquidate,
68-
sdk.NewAttribute(types.AttributeKeyLoanId, loan.VaultAddress),
69-
sdk.NewAttribute(types.AttributeKeyEventPubKey, dlcEvent.Pubkey),
70-
sdk.NewAttribute(types.AttributeKeyEventNonce, dlcEvent.Nonce),
71-
sdk.NewAttribute(types.AttributeKeyEventPrice, liquidationPrice.String()),
72-
),
73-
)
62+
// trigger price event
63+
k.DLCKeeper().TriggerEvent(ctx, loan.EventId)
7464
}
7565
}
7666
}

x/lending/types/expected_keepers.go

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ type AuctionKeeper interface {
5252
// DLCKeeper defines the expected DLC keeper interface
5353
type DLCKeeper interface {
5454
GetEvent(ctx sdk.Context, id uint64) *dlctypes.DLCPriceEvent
55+
TriggerEvent(ctx sdk.Context, id uint64)
5556
}
5657

5758
// BtcBridgeKeeper defines the expected BtcBridge keeper interface

0 commit comments

Comments
 (0)