Why is this release great? An intro by @cdm
This release is improves the developer experience for those who want to create powerful and performant applications on Vega. The changes made to switch to Buf, have paved the way to open source the API clients repo which is now available. This repo has various auto-generated clients, and includes the all important Proto files / definitions so that you can build your own should you wish to (in any compatible language) and take advantage of the speed, type safety and simplicity of the gRPC APIs.
Related and in addition to opening up the API clients, the documentation in the autogenerated gRPC API docs has been improved.
Note: To improve consistency many fields used internally have been sanitised, and there’s a particularly common field based breaking change to watch out for in this release, where all time in force enumeration keys, previously in format
TIME_IN_FORCE_XXX. For more detail, please see @edd’s commentary below.
Release notes and commentary by @edd
Many of the fixes below relate to Liquidity Commitments, which are still disabled in testnet, and Data Sourcing, which is also not enabled. Data Sourcing (a.k.a Oracles) is one of the last remaining pieces we need to complete settlement at instrument expiry, and Liquidity Commitment will be enabled when the functionality has been stabilised.
This release does improve protocol documentation, with all missing fields filled in and the explanations for Pegged Orders expanded. Two crashers have been fixed, although the first is already live as hotfix on testnet, and the other is in functionality that is not yet enabled.
This release also makes some major API changes:
- api.TradingClient → api.v1.TradingServiceClient
- api.TradingDataClient → api.v1.TradingDataServiceClient
- Fields have changed from camel-case to snake-cased (e.g. someFieldName is now some_field_name)
- All API calls now have request and response messages whose names match the API call name (e.g. GetSomething now has a request called GetSomethingRequest and a response called GetSomethingResponse) [See #2879 for details]
- #2879 - Update all the protobuf files with Buf recommendations
- #2847 - Improve proto documentation, in particular for pegged orders
- #2905 - Update vega verify command to verify genesis block files
- #2851 - Enable distribution of liquidity fees to liquidity providers
- #2871 - Add submitOracleData command
- #2887 - Add Open Oracle data processing & data normalisation
- #2915 - Add Liquidity Commitments to API responses
- #2913 - Fix market lifecycle events not being published through event bus API
- #2906 - Add new process for calculating margins for orders during auction
- #2887 - Liquidity Commitment improvements
- #2879 - Apply Buf lint recommendations
- #2872 - Improve field names in fee distribution package
- #2867 - Fix GraphQL bug: deposits creditedAt incorrectly showed createdAt time, not credit time
- #2858 - Fix crasher caused by parking pegged orders for auction
- #2852 - Remove unused binaries from CI builds
- #2850 - Fix bug that caused fees to be charged for pegged orders
- #2893 - Remove unused dependency in repricing
- #2929 - Refactor GraphQL resolver for withdrawals
- #2939 - Fix crasher caused by incorrectly loading Fee account for transfers
Where to next?
Check out https://docs.testnet.vega.xyz for more information, visit https://testnet.vega.trading to dive straight into the Console, or reach out to us on Discord if you need some hosted wallet details.
Thank you, please comment below if you’d like to give any feedback on the release.
Note: You can raise bugs for the software in the Vega Nolt