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 }