code.vegaprotocol.io/vega@v0.79.0/core/events/transfer_fees.go (about)

     1  // Copyright (C) 2023 Gobalsky Labs Limited
     2  //
     3  // This program is free software: you can redistribute it and/or modify
     4  // it under the terms of the GNU Affero General Public License as
     5  // published by the Free Software Foundation, either version 3 of the
     6  // License, or (at your option) any later version.
     7  //
     8  // This program is distributed in the hope that it will be useful,
     9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  // GNU Affero General Public License for more details.
    12  //
    13  // You should have received a copy of the GNU Affero General Public License
    14  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    15  
    16  package events
    17  
    18  import (
    19  	"context"
    20  
    21  	"code.vegaprotocol.io/vega/libs/num"
    22  	eventspb "code.vegaprotocol.io/vega/protos/vega/events/v1"
    23  )
    24  
    25  // TransferFees ...
    26  type TransferFees struct {
    27  	*Base
    28  	pb *eventspb.TransferFees
    29  }
    30  
    31  func NewTransferFeesEvent(ctx context.Context, transferID string, amount *num.Uint, discount *num.Uint, epoch uint64) *TransferFees {
    32  	return &TransferFees{
    33  		Base: newBase(ctx, TransferFeesEvent),
    34  		pb: &eventspb.TransferFees{
    35  			TransferId:      transferID,
    36  			Amount:          amount.String(),
    37  			DiscountApplied: discount.String(),
    38  			Epoch:           epoch,
    39  		},
    40  	}
    41  }
    42  
    43  func (t TransferFees) Proto() eventspb.TransferFees {
    44  	return *t.pb
    45  }
    46  
    47  func (t TransferFees) StreamMessage() *eventspb.BusEvent {
    48  	busEvent := newBusEventFromBase(t.Base)
    49  	busEvent.Event = &eventspb.BusEvent_TransferFees{
    50  		TransferFees: t.pb,
    51  	}
    52  
    53  	return busEvent
    54  }
    55  
    56  func (t TransferFees) TransferFees() eventspb.TransferFees {
    57  	return t.Proto()
    58  }
    59  
    60  func TransferFeesEventFromStream(ctx context.Context, be *eventspb.BusEvent) *TransferFees {
    61  	event := be.GetTransferFees()
    62  	if event == nil {
    63  		return nil
    64  	}
    65  
    66  	return &TransferFees{
    67  		Base: newBaseFromBusEvent(ctx, TransferFeesEvent, be),
    68  		pb:   event,
    69  	}
    70  }
    71  
    72  // TransferFeesDiscountUpdated ...
    73  type TransferFeesDiscountUpdated struct {
    74  	*Base
    75  	pb *eventspb.TransferFeesDiscount
    76  }
    77  
    78  func NewTransferFeesDiscountUpdated(ctx context.Context, party, asset string, amount *num.Uint, epoch uint64) *TransferFeesDiscountUpdated {
    79  	return &TransferFeesDiscountUpdated{
    80  		Base: newBase(ctx, TransferFeesDiscountUpdatedEvent),
    81  		pb: &eventspb.TransferFeesDiscount{
    82  			Party:  party,
    83  			Asset:  asset,
    84  			Amount: amount.String(),
    85  			Epoch:  epoch,
    86  		},
    87  	}
    88  }
    89  
    90  func (t TransferFeesDiscountUpdated) Proto() eventspb.TransferFeesDiscount {
    91  	return *t.pb
    92  }
    93  
    94  func (t TransferFeesDiscountUpdated) StreamMessage() *eventspb.BusEvent {
    95  	busEvent := newBusEventFromBase(t.Base)
    96  	busEvent.Event = &eventspb.BusEvent_TransferFeesDiscount{
    97  		TransferFeesDiscount: t.pb,
    98  	}
    99  
   100  	return busEvent
   101  }
   102  
   103  func (t TransferFeesDiscountUpdated) TransferFeesDiscount() eventspb.TransferFeesDiscount {
   104  	return t.Proto()
   105  }
   106  
   107  func TransferFeesDiscountUpdatedFromStream(ctx context.Context, be *eventspb.BusEvent) *TransferFeesDiscountUpdated {
   108  	event := be.GetTransferFeesDiscount()
   109  	if event == nil {
   110  		return nil
   111  	}
   112  
   113  	return &TransferFeesDiscountUpdated{
   114  		Base: newBaseFromBusEvent(ctx, TransferFeesDiscountUpdatedEvent, be),
   115  		pb:   event,
   116  	}
   117  }