github.com/InjectiveLabs/sdk-go@v1.53.0/chain/ocr/types/hooks.go (about)

     1  package types
     2  
     3  import (
     4  	"cosmossdk.io/math"
     5  	sdk "github.com/cosmos/cosmos-sdk/types"
     6  )
     7  
     8  type OcrHooks interface {
     9  	AfterSetFeedConfig(ctx sdk.Context, feedConfig *FeedConfig)
    10  	AfterTransmit(ctx sdk.Context, feedId string, answer math.LegacyDec, timestamp int64)
    11  	AfterFundFeedRewardPool(ctx sdk.Context, feedId string, newPoolAmount sdk.Coin)
    12  }
    13  
    14  var _ OcrHooks = MultiOcrHooks{}
    15  
    16  type MultiOcrHooks []OcrHooks
    17  
    18  func NewMultiOcrHooks(hooks ...OcrHooks) MultiOcrHooks {
    19  	return hooks
    20  }
    21  
    22  func (h MultiOcrHooks) AfterSetFeedConfig(ctx sdk.Context, feedConfig *FeedConfig) {
    23  	for i := range h {
    24  		h[i].AfterSetFeedConfig(ctx, feedConfig)
    25  	}
    26  }
    27  
    28  func (h MultiOcrHooks) AfterTransmit(ctx sdk.Context, feedId string, answer math.LegacyDec, timestamp int64) {
    29  	for i := range h {
    30  		h[i].AfterTransmit(ctx, feedId, answer, timestamp)
    31  	}
    32  }
    33  
    34  func (h MultiOcrHooks) AfterFundFeedRewardPool(ctx sdk.Context, feedId string, newPoolAmount sdk.Coin) {
    35  	for i := range h {
    36  		h[i].AfterFundFeedRewardPool(ctx, feedId, newPoolAmount)
    37  	}
    38  }