Skip to content

Commit 54bb616

Browse files
authored
Merge pull request #2402 from vegaprotocol/release/v0.25.1
Release v0.25.1
2 parents e2138c4 + a1ee661 commit 54bb616

9 files changed

Lines changed: 122 additions & 23 deletions

File tree

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Changelog
22

3+
## 0.25.1
4+
5+
*2020-10-14*
6+
7+
This release backports two fixes from the forthcoming 0.26.0 release.
8+
9+
### Improvements
10+
- [#2354](https://github.com/vegaprotocol/vega/pull/2354) Update `OrderEvent` to copy by value
11+
- [#2379](https://github.com/vegaprotocol/vega/pull/2379) Add missing `/governance/prepare/vote` REST endpoint
12+
313
## 0.25.0
414

515
*2020-09-24*

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Vega
22

3-
Version 0.25.0.
3+
Version 0.25.1.
44

55
A decentralised trading platform that allows pseudo-anonymous trading of derivatives on a blockchain.
66

events/order.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ import (
88

99
type Order struct {
1010
*Base
11-
o *types.Order
11+
o types.Order
1212
}
1313

1414
func NewOrderEvent(ctx context.Context, o *types.Order) *Order {
15-
return &Order{
15+
order := &Order{
1616
Base: newBase(ctx, OrderEvent),
17-
o: o,
17+
o: *o,
1818
}
19+
return order
1920
}
2021

2122
func (o Order) IsParty(id string) bool {
@@ -31,15 +32,15 @@ func (o Order) MarketID() string {
3132
}
3233

3334
func (o *Order) Order() *types.Order {
34-
return o.o
35+
return &o.o
3536
}
3637

3738
func (o Order) Proto() types.Order {
38-
return *o.o
39+
return o.o
3940
}
4041

4142
func (o Order) StreamMessage() *types.BusEvent {
42-
cpy := *o.o
43+
cpy := o.o
4344
return &types.BusEvent{
4445
ID: o.eventID(),
4546
Type: o.et.ToProto(),

execution/engine.go

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ func (e *Engine) onChainTimeUpdate(ctx context.Context, t time.Time) {
382382
// remove expired orders
383383
// TODO(FIXME): this should be remove, and handled inside the market directly
384384
// when call with the new time (see the next for loop)
385-
e.removeExpiredOrders(t)
385+
e.removeExpiredOrders(ctx, t)
386386

387387
// notify markets of the time expiration
388388
for mktID, mkt := range e.markets {
@@ -399,11 +399,8 @@ func (e *Engine) onChainTimeUpdate(ctx context.Context, t time.Time) {
399399

400400
// Process any data updates (including state changes)
401401
// e.g. removing expired orders from matching engine.
402-
func (e *Engine) removeExpiredOrders(t time.Time) {
402+
func (e *Engine) removeExpiredOrders(ctx context.Context, t time.Time) {
403403
timer := metrics.NewTimeCounter("-", "execution", "removeExpiredOrders")
404-
if e.log.GetLevel() == logging.DebugLevel {
405-
e.log.Debug("Removing expiring orders from matching engine")
406-
}
407404
expiringOrders := []types.Order{}
408405
timeNow := t.UnixNano()
409406
for _, mkt := range e.markets {
@@ -416,20 +413,12 @@ func (e *Engine) removeExpiredOrders(t time.Time) {
416413
expiringOrders = append(
417414
expiringOrders, orders...)
418415
}
419-
if e.log.GetLevel() == logging.DebugLevel {
420-
e.log.Debug("Removed expired orders from matching engine",
421-
logging.Int("orders-removed", len(expiringOrders)))
422-
}
423416
for _, order := range expiringOrders {
424417
order := order
425-
evt := events.NewOrderEvent(context.Background(), &order)
418+
evt := events.NewOrderEvent(ctx, &order)
426419
e.broker.Send(evt)
427420
metrics.OrderGaugeAdd(-1, order.MarketID) // decrement gauge
428421
}
429-
if e.log.GetLevel() == logging.DebugLevel {
430-
e.log.Debug("Updated expired orders in stores",
431-
logging.Int("orders-removed", len(expiringOrders)))
432-
}
433422
timer.EngineTimeCounterAdd()
434423
}
435424

gateway/rest/grpc-rest-bindings.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ http:
113113
- selector: api.trading.PrepareProposal
114114
post: '/governance/prepare/proposal'
115115
body: "*"
116+
- selector: api.trading.PrepareVote
117+
post: '/governance/prepare/vote'
118+
body: "*"
116119

117120

118121
# Miscellaneous

integration/execution_layer_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ func tradersCancelsTheFollowingOrdersReference(refs *gherkin.DataTable) error {
404404
continue
405405
}
406406

407-
o, err := execsetup.broker.getByReference(val(row, 0), val(row, 1))
407+
o, err := execsetup.broker.getFirstByReference(val(row, 0), val(row, 1))
408408
if err != nil {
409409
return err
410410
}

integration/stubs_test.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ func (b *brokerStub) getTraderGeneralAccount(trader, asset string) (proto.Accoun
252252
return proto.Account{}, errors.New("account does not exist")
253253
}
254254

255-
func (b *brokerStub) getByReference(party, ref string) (proto.Order, error) {
255+
func (b *brokerStub) getFirstByReference(party, ref string) (proto.Order, error) {
256256
data := b.GetOrderEvents()
257257
for _, o := range data {
258258
v := o.Order()
@@ -263,6 +263,24 @@ func (b *brokerStub) getByReference(party, ref string) (proto.Order, error) {
263263
return proto.Order{}, fmt.Errorf("no order for party %v and referrence %v", party, ref)
264264
}
265265

266+
func (b *brokerStub) getByReference(party, ref string) (proto.Order, error) {
267+
data := b.GetOrderEvents()
268+
269+
var last proto.Order // we need the most recent event, the order object is not updated (copy v pointer, issue 2353)
270+
var matched bool = false
271+
for _, o := range data {
272+
v := o.Order()
273+
if v.Reference == ref && v.PartyID == party {
274+
last = *v
275+
matched = true
276+
}
277+
}
278+
if matched == true {
279+
return last, nil
280+
}
281+
return proto.Order{}, fmt.Errorf("no order for party %v and referrence %v", party, ref)
282+
}
283+
266284
func (b *brokerStub) getTrades() []proto.Trade {
267285
data := b.GetTradeEvents()
268286
trades := make([]proto.Trade, 0, len(data))

proto/api/trading.pb.gw.go

Lines changed: 41 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

proto/api/trading.swagger.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,33 @@
163163
]
164164
}
165165
},
166+
"/governance/prepare/vote": {
167+
"post": {
168+
"summary": "Prepare a governance vote",
169+
"operationId": "PrepareVote",
170+
"responses": {
171+
"200": {
172+
"description": "A successful response.",
173+
"schema": {
174+
"$ref": "#/definitions/apiPrepareVoteResponse"
175+
}
176+
}
177+
},
178+
"parameters": [
179+
{
180+
"name": "body",
181+
"in": "body",
182+
"required": true,
183+
"schema": {
184+
"$ref": "#/definitions/apiPrepareVoteRequest"
185+
}
186+
}
187+
],
188+
"tags": [
189+
"trading"
190+
]
191+
}
192+
},
166193
"/markets": {
167194
"get": {
168195
"summary": "Get a list of Markets",
@@ -1805,6 +1832,16 @@
18051832
},
18061833
"description": "Response for preparing an order submission."
18071834
},
1835+
"apiPrepareVoteRequest": {
1836+
"type": "object",
1837+
"properties": {
1838+
"vote": {
1839+
"$ref": "#/definitions/vegaVote",
1840+
"description": "Vote. Required field."
1841+
}
1842+
},
1843+
"description": "Request to prepare a governance vote."
1844+
},
18081845
"apiPrepareVoteResponse": {
18091846
"type": "object",
18101847
"properties": {

0 commit comments

Comments
 (0)