code.vegaprotocol.io/vega@v0.79.0/protos/vega/vega_ext.go (about)

     1  // vega_ext provides extra methods to the types generated by protobuf.
     2  
     3  package vega
     4  
     5  import (
     6  	fmt "fmt"
     7  	"strconv"
     8  	"time"
     9  )
    10  
    11  const (
    12  	systemOwner = "*"
    13  	noMarket    = "!"
    14  )
    15  
    16  func (ad *AccountDetails) ID() string {
    17  	idbuf := make([]byte, 256)
    18  	marketID, partyID := noMarket, systemOwner
    19  	if ad.MarketId != nil {
    20  		marketID = *ad.MarketId
    21  	}
    22  
    23  	// market account
    24  	if ad.Owner != nil {
    25  		partyID = *ad.Owner
    26  	}
    27  
    28  	copy(idbuf, marketID)
    29  	ln := len(marketID)
    30  	copy(idbuf[ln:], partyID)
    31  	ln += len(partyID)
    32  	copy(idbuf[ln:], []byte(ad.AssetId))
    33  	ln += len(ad.AssetId)
    34  	idbuf[ln] = byte(ad.Type + 48)
    35  	return string(idbuf[:ln+1])
    36  }
    37  
    38  // Float64Fee tries to parse the Fee (string) into a float64.
    39  // If parsing fails 0 is returned.
    40  func (l *LiquidityProvision) Float64Fee() float64 {
    41  	v, err := strconv.ParseFloat(l.Fee, 64)
    42  	if err != nil {
    43  		return 0
    44  	}
    45  	return v
    46  }
    47  
    48  func (o *Order) IsLiquidityOrder() bool {
    49  	return len(o.LiquidityProvisionId) > 0
    50  }
    51  
    52  // Create sets the creation time (CreatedAt) to t and returns the
    53  // updated order.
    54  func (o *Order) Create(t time.Time) *Order {
    55  	o.CreatedAt = t.UnixNano()
    56  	return o
    57  }
    58  
    59  // Update sets the modification time (UpdatedAt) to t and returns the
    60  // updated order.
    61  func (o *Order) Update(t time.Time) *Order {
    62  	o.UpdatedAt = t.UnixNano()
    63  	return o
    64  }
    65  
    66  // IsPersistent returns true if the order is persistent.
    67  // A persistent order is a Limit type order that might be
    68  // matched in the future.
    69  func (o *Order) IsPersistent() bool {
    70  	return (o.TimeInForce == Order_TIME_IN_FORCE_GTC ||
    71  		o.TimeInForce == Order_TIME_IN_FORCE_GTT ||
    72  		o.TimeInForce == Order_TIME_IN_FORCE_GFN ||
    73  		o.TimeInForce == Order_TIME_IN_FORCE_GFA) &&
    74  		o.Type == Order_TYPE_LIMIT &&
    75  		o.Remaining > 0
    76  }
    77  
    78  func (o *Order) IsExpireable() bool {
    79  	return (o.TimeInForce == Order_TIME_IN_FORCE_GFN ||
    80  		o.TimeInForce == Order_TIME_IN_FORCE_GTT ||
    81  		o.TimeInForce == Order_TIME_IN_FORCE_GFA) &&
    82  		o.ExpiresAt > 0
    83  }
    84  
    85  // IsFinished returns true if an order
    86  // is in any state different to ACTIVE and PARKED
    87  // Basically any order which is never gonna
    88  // trade anymore.
    89  func (o *Order) IsFinished() bool {
    90  	return o.Status != Order_STATUS_ACTIVE && o.Status != Order_STATUS_PARKED
    91  }
    92  
    93  func (o *Order) HasTraded() bool {
    94  	return o.Size != o.Remaining
    95  }
    96  
    97  func (t *Trade) SetIDs(aggressive, passive *Order, idx int) {
    98  	t.Id = fmt.Sprintf("%s-%010d", aggressive.Id, idx)
    99  	if aggressive.Side == Side_SIDE_BUY {
   100  		t.BuyOrder = aggressive.Id
   101  		t.SellOrder = passive.Id
   102  		return
   103  	}
   104  	t.SellOrder = aggressive.Id
   105  	t.BuyOrder = passive.Id
   106  }
   107  
   108  func (DispatchMetric) GetEnums() map[int32]string {
   109  	return DispatchMetric_name
   110  }
   111  
   112  func (Side) GetEnums() map[int32]string {
   113  	return Side_name
   114  }
   115  
   116  func (Asset_Status) GetEnums() map[int32]string {
   117  	return Asset_Status_name
   118  }
   119  
   120  func (Market_TradingMode) GetEnums() map[int32]string {
   121  	return Market_TradingMode_name
   122  }
   123  
   124  func (Market_State) GetEnums() map[int32]string {
   125  	return Market_State_name
   126  }
   127  
   128  func (NodeStatus) GetEnums() map[int32]string {
   129  	return NodeStatus_name
   130  }
   131  
   132  func (ValidatorNodeStatus) GetEnums() map[int32]string {
   133  	return ValidatorNodeStatus_name
   134  }
   135  
   136  func (Deposit_Status) GetEnums() map[int32]string {
   137  	return Deposit_Status_name
   138  }
   139  
   140  func (Withdrawal_Status) GetEnums() map[int32]string {
   141  	return Withdrawal_Status_name
   142  }
   143  
   144  func (Proposal_State) GetEnums() map[int32]string {
   145  	return Proposal_State_name
   146  }
   147  
   148  func (ProposalError) GetEnums() map[int32]string {
   149  	return ProposalError_name
   150  }
   151  
   152  func (Vote_Value) GetEnums() map[int32]string {
   153  	return Vote_Value_name
   154  }
   155  
   156  func (PositionStatus) GetEnums() map[int32]string {
   157  	return PositionStatus_name
   158  }
   159  
   160  func (DataSourceSpec_Status) GetEnums() map[int32]string {
   161  	return DataSourceSpec_Status_name
   162  }
   163  
   164  func (LiquidityProvision_Status) GetEnums() map[int32]string {
   165  	return LiquidityProvision_Status_name
   166  }
   167  
   168  func (TransferType) GetEnums() map[int32]string {
   169  	return TransferType_name
   170  }
   171  
   172  func (MarginMode) GetEnums() map[int32]string {
   173  	return MarginMode_name
   174  }
   175  
   176  func (StopOrder_ExpiryStrategy) GetEnums() map[int32]string {
   177  	return StopOrder_ExpiryStrategy_name
   178  }
   179  
   180  func (StopOrder_TriggerDirection) GetEnums() map[int32]string {
   181  	return StopOrder_TriggerDirection_name
   182  }
   183  
   184  func (StopOrder_Status) GetEnums() map[int32]string {
   185  	return StopOrder_Status_name
   186  }
   187  
   188  func (StopOrder_RejectionReason) GetEnums() map[int32]string {
   189  	return StopOrder_RejectionReason_name
   190  }
   191  
   192  func (CompositePriceType) GetEnums() map[int32]string {
   193  	return CompositePriceType_name
   194  }
   195  
   196  func (AuctionTrigger) GetEnums() map[int32]string {
   197  	return AuctionTrigger_name
   198  }