67 lines
1.9 KiB
Go
67 lines
1.9 KiB
Go
package types
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
)
|
|
|
|
// bank module event types
|
|
const (
|
|
EventTypeTransfer = "transfer"
|
|
|
|
AttributeKeyRecipient = "recipient"
|
|
AttributeKeySender = "sender"
|
|
|
|
AttributeValueCategory = ModuleName
|
|
|
|
// supply and balance tracking events name and attributes
|
|
EventTypeCoinSpent = "coin_spent"
|
|
EventTypeCoinReceived = "coin_received"
|
|
EventTypeCoinMint = "coinbase" // NOTE(fdymylja): using mint clashes with mint module event
|
|
EventTypeCoinBurn = "burn"
|
|
|
|
AttributeKeySpender = "spender"
|
|
AttributeKeyReceiver = "receiver"
|
|
AttributeKeyMinter = "minter"
|
|
AttributeKeyBurner = "burner"
|
|
)
|
|
|
|
// NewCoinSpentEvent constructs a new coin spent sdk.Event
|
|
// nolint: interfacer
|
|
func NewCoinSpentEvent(spender sdk.AccAddress, amount sdk.Coins) sdk.Event {
|
|
return sdk.NewEvent(
|
|
EventTypeCoinSpent,
|
|
sdk.NewAttribute(AttributeKeySpender, spender.String()),
|
|
sdk.NewAttribute(sdk.AttributeKeyAmount, amount.String()),
|
|
)
|
|
}
|
|
|
|
// NewCoinReceivedEvent constructs a new coin received sdk.Event
|
|
// nolint: interfacer
|
|
func NewCoinReceivedEvent(receiver sdk.AccAddress, amount sdk.Coins) sdk.Event {
|
|
return sdk.NewEvent(
|
|
EventTypeCoinReceived,
|
|
sdk.NewAttribute(AttributeKeyReceiver, receiver.String()),
|
|
sdk.NewAttribute(sdk.AttributeKeyAmount, amount.String()),
|
|
)
|
|
}
|
|
|
|
// NewCoinMintEvent construct a new coin minted sdk.Event
|
|
// nolint: interfacer
|
|
func NewCoinMintEvent(minter sdk.AccAddress, amount sdk.Coins) sdk.Event {
|
|
return sdk.NewEvent(
|
|
EventTypeCoinMint,
|
|
sdk.NewAttribute(AttributeKeyMinter, minter.String()),
|
|
sdk.NewAttribute(sdk.AttributeKeyAmount, amount.String()),
|
|
)
|
|
}
|
|
|
|
// NewCoinBurnEvent constructs a new coin burned sdk.Event
|
|
// nolint: interfacer
|
|
func NewCoinBurnEvent(burner sdk.AccAddress, amount sdk.Coins) sdk.Event {
|
|
return sdk.NewEvent(
|
|
EventTypeCoinBurn,
|
|
sdk.NewAttribute(AttributeKeyBurner, burner.String()),
|
|
sdk.NewAttribute(sdk.AttributeKeyAmount, amount.String()),
|
|
)
|
|
}
|