mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-26 00:05:18 +00:00
4e6f6d1e9c
* spike: incentive/types * spike: incentive/types tests * spike: incentive/types/expected_keepers.go * spike: incentive/keeper * spike: incentive/keeper tests * spike: incentive/sims and incentive/sims tests * spike: incentive/module * spike: incentive/module tests * spike: hard/types * spike: hard/types hooks * spike: hard/types * spike: hard/keeper basics * spike: hard/keeper hooks * integrate hard/keeper/borrow.go * integrate hard/keeper/deposit.go * integrate hard/keeper/liquidation.go * integrate hard/keeper/withdraw.go * integrate hard/keeper/repay.go * spike: hard/sims * spike: hard/sims tests * spike: hard/client * spike: hard/module * integrate app.go * spike: x/hard/keeper compile tests * incentive/keeper test clean up * validate usdx incentive types in genesis * refactoring & fix deposit test * fix liquidaton tests * fix incentive tests for hard supply rewards * fix hard genesis tests * update incentive genesis state and params * update cdp rewards accumulation * update app init order and begin blocker order Co-authored-by: karzak <kjydavis3@gmail.com>
61 lines
2.1 KiB
Go
61 lines
2.1 KiB
Go
package keeper
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
cdptypes "github.com/kava-labs/kava/x/cdp/types"
|
|
hardtypes "github.com/kava-labs/kava/x/hard/types"
|
|
)
|
|
|
|
// Hooks wrapper struct for hooks
|
|
type Hooks struct {
|
|
k Keeper
|
|
}
|
|
|
|
var _ cdptypes.CDPHooks = Hooks{}
|
|
var _ hardtypes.HARDHooks = Hooks{}
|
|
|
|
// Hooks create new incentive hooks
|
|
func (k Keeper) Hooks() Hooks { return Hooks{k} }
|
|
|
|
// AfterCDPCreated function that runs after a cdp is created
|
|
func (h Hooks) AfterCDPCreated(ctx sdk.Context, cdp cdptypes.CDP) {
|
|
h.k.InitializeUSDXMintingClaim(ctx, cdp)
|
|
}
|
|
|
|
// BeforeCDPModified function that runs before a cdp is modified
|
|
// note that this is called immediately after interest is synchronized, and so could potentially
|
|
// be called AfterCDPInterestUpdated or something like that, if we we're to expand the scope of cdp hooks
|
|
func (h Hooks) BeforeCDPModified(ctx sdk.Context, cdp cdptypes.CDP) {
|
|
h.k.SynchronizeUSDXMintingReward(ctx, cdp)
|
|
}
|
|
|
|
// AfterDepositCreated function that runs after a deposit is created
|
|
func (h Hooks) AfterDepositCreated(ctx sdk.Context, deposit hardtypes.Deposit) {
|
|
h.k.InitializeHardSupplyReward(ctx, deposit)
|
|
}
|
|
|
|
// BeforeDepositModified function that runs before a deposit is modified
|
|
func (h Hooks) BeforeDepositModified(ctx sdk.Context, deposit hardtypes.Deposit) {
|
|
h.k.SynchronizeHardSupplyReward(ctx, deposit)
|
|
}
|
|
|
|
// AfterDepositModified function that runs after a deposit is modified
|
|
func (h Hooks) AfterDepositModified(ctx sdk.Context, deposit hardtypes.Deposit) {
|
|
h.k.UpdateHardSupplyIndexDenoms(ctx, deposit)
|
|
}
|
|
|
|
// AfterBorrowCreated function that runs after a borrow is created
|
|
func (h Hooks) AfterBorrowCreated(ctx sdk.Context, borrow hardtypes.Borrow) {
|
|
h.k.InitializeHardBorrowReward(ctx, borrow)
|
|
}
|
|
|
|
// BeforeBorrowModified function that runs before a borrow is modified
|
|
func (h Hooks) BeforeBorrowModified(ctx sdk.Context, borrow hardtypes.Borrow) {
|
|
h.k.SynchronizeHardBorrowReward(ctx, borrow)
|
|
}
|
|
|
|
// AfterBorrowModified function that runs after a borrow is modified
|
|
func (h Hooks) AfterBorrowModified(ctx sdk.Context, borrow hardtypes.Borrow) {
|
|
h.k.UpdateHardBorrowIndexDenoms(ctx, borrow)
|
|
}
|