github.com/Finschia/finschia-sdk@v0.48.1/x/bank/types/events.go (about)

     1  package types
     2  
     3  import (
     4  	sdk "github.com/Finschia/finschia-sdk/types"
     5  )
     6  
     7  // bank module event types
     8  const (
     9  	EventTypeTransfer = "transfer"
    10  
    11  	AttributeKeyRecipient = "recipient"
    12  	AttributeKeySender    = sdk.AttributeKeySender
    13  
    14  	// supply and balance tracking events name and attributes
    15  	EventTypeCoinSpent    = "coin_spent"
    16  	EventTypeCoinReceived = "coin_received"
    17  	EventTypeCoinMint     = "coinbase" // NOTE(fdymylja): using mint clashes with mint module event
    18  	EventTypeCoinBurn     = "burn"
    19  
    20  	AttributeKeySpender  = "spender"
    21  	AttributeKeyReceiver = "receiver"
    22  	AttributeKeyMinter   = "minter"
    23  	AttributeKeyBurner   = "burner"
    24  )
    25  
    26  // NewCoinSpentEvent constructs a new coin spent sdk.Event
    27  // nolint: interfacer
    28  func NewCoinSpentEvent(spender sdk.AccAddress, amount sdk.Coins) sdk.Event {
    29  	return sdk.NewEvent(
    30  		EventTypeCoinSpent,
    31  		sdk.NewAttribute(AttributeKeySpender, spender.String()),
    32  		sdk.NewAttribute(sdk.AttributeKeyAmount, amount.String()),
    33  	)
    34  }
    35  
    36  // NewCoinReceivedEvent constructs a new coin received sdk.Event
    37  // nolint: interfacer
    38  func NewCoinReceivedEvent(receiver sdk.AccAddress, amount sdk.Coins) sdk.Event {
    39  	return sdk.NewEvent(
    40  		EventTypeCoinReceived,
    41  		sdk.NewAttribute(AttributeKeyReceiver, receiver.String()),
    42  		sdk.NewAttribute(sdk.AttributeKeyAmount, amount.String()),
    43  	)
    44  }
    45  
    46  // NewCoinMintEvent construct a new coin minted sdk.Event
    47  // nolint: interfacer
    48  func NewCoinMintEvent(minter sdk.AccAddress, amount sdk.Coins) sdk.Event {
    49  	return sdk.NewEvent(
    50  		EventTypeCoinMint,
    51  		sdk.NewAttribute(AttributeKeyMinter, minter.String()),
    52  		sdk.NewAttribute(sdk.AttributeKeyAmount, amount.String()),
    53  	)
    54  }
    55  
    56  // NewCoinBurnEvent constructs a new coin burned sdk.Event
    57  // nolint: interfacer
    58  func NewCoinBurnEvent(burner sdk.AccAddress, amount sdk.Coins) sdk.Event {
    59  	return sdk.NewEvent(
    60  		EventTypeCoinBurn,
    61  		sdk.NewAttribute(AttributeKeyBurner, burner.String()),
    62  		sdk.NewAttribute(sdk.AttributeKeyAmount, amount.String()),
    63  	)
    64  }