Initial commit
This commit is contained in:
217
docs/releases/2.3.0.md
Normal file
217
docs/releases/2.3.0.md
Normal file
@@ -0,0 +1,217 @@
|
||||
## Peatio 2.3.0 (September 15, 2019) ##
|
||||
|
||||
### Overview ###
|
||||
|
||||
We are pleased to present Peatio Open Source 2.3.0.
|
||||
|
||||
This release concentrated on new Admin API module, new features and enhancements:
|
||||
|
||||
1. Refactoring to maker-taker fee model. Major Trade model rework.
|
||||
2. Admin API module for tower.
|
||||
3. Trading Fee Schedule based on Member group.
|
||||
4. Introduce adjustments.
|
||||
5. Beneficiaries model and fiat withdrawal.
|
||||
|
||||
This release notes is must-read for migrating from older versions.
|
||||
|
||||
### Breaking changes ###
|
||||
|
||||
- [#2278](https://github.com/rubykube/peatio/pull/2278): Market & Currency admin forms corrections & improvements
|
||||
|
||||
- Improve Market form validations and errors
|
||||
- Ask/Bid fee -> Quote/Base currency fee
|
||||
- Base/Quote unit -> Base/Quote currency
|
||||
- Use number_field for decimals
|
||||
- Id has already been taken -> #{base}, #{quote} market already exists
|
||||
- Validate amount_precision instead of precisions sum
|
||||
- Validate price_preciosion to be less than FUNDS_PRECISION
|
||||
- Validate amount_precision to be less than FUNDS_PRECISION - price_precision
|
||||
- Update deposit table columns
|
||||
- Validate code instead of id in Currency
|
||||
- Define convention for organizing Ruby On Rails Models
|
||||
- Use 'withdrawal' instead of 'withdraw' everywhere
|
||||
|
||||
- [#2292](https://github.com/rubykube/peatio/pull/2292): Switch to maker-taker fee model. Major Trade model rework
|
||||
|
||||
This patch replaces side-related (buy or sell) with maker-taker fee model. Its basic structure gives a fee discount to market makers providing liquidity (the makers); and charges higher fee to customers who take liquidity out of the market (the takers). Fee could be configured per market.
|
||||
Next changes were produced by switching to maker-taker fee model:
|
||||
|
||||
- Replace `ask_fee` and `bid_fee` with `maker_fee` and `taker_fee` in Market model;
|
||||
- Replace `fee` with `maker_fee` and `taker_fee` in Order model;
|
||||
- Update Entities for Market and Trade models in user API, Trade model in management API;
|
||||
- Update Trade Accounting with maker/taker_fee;
|
||||
- Update Trade_executor and Matching_engine with new Trade model;
|
||||
- Update Market seeds;
|
||||
- Specs for maker/taker_fee;
|
||||
|
||||
Trade model rework consist of next changes:
|
||||
- Update Trade model structure:
|
||||
- ask_id -> maker_order_id;
|
||||
- bid_id -> taker_order_id;
|
||||
- ask_member_id -> maker_id;
|
||||
- bid_member_id -> taker_id;
|
||||
- volume -> amount;
|
||||
- funds -> total;
|
||||
- drop trend;
|
||||
|
||||
### New Features ###
|
||||
|
||||
- [#2264](https://github.com/rubykube/peatio/pull/2264): Admin API module for tower ([mod](https://github.com/mod))
|
||||
|
||||
- Feature admin panel api for:
|
||||
|
||||
- Orders
|
||||
- Blockchains
|
||||
- Currencies
|
||||
- Markets
|
||||
- Wallets
|
||||
- Deposits
|
||||
- Withdraws
|
||||
- Trades
|
||||
- Operations
|
||||
- Members
|
||||
|
||||
Unify API doc files structure and naming.
|
||||
|
||||
- [#2321](https://github.com/rubykube/peatio/pull/2321): Trading Fee Schedule based on Member group ([ysv](https://github.com/ysv))
|
||||
|
||||
- Add FeeSchedule module;
|
||||
- Add FeeSchedule::TradingFee model;
|
||||
- FeeSchedule::TradingFee record selected with the next priorities:
|
||||
- both group and market_id match
|
||||
- group match
|
||||
- market_id match
|
||||
- both group and market_id are nil
|
||||
- default (zero fees)
|
||||
- Add Group member column;
|
||||
- Remove maker/taker_fee from Market model;
|
||||
- Add custom validator class PrecisionValidator for validate precisions for Order, TradingFee, Market models;
|
||||
- FeeSchedule::TradingFees seeding via rake task;
|
||||
|
||||
- [#2310](https://github.com/rubykube/peatio/pull/2310): Use Vault transit engine for storing Wallet & PaymentAddress sensitive data ([dnfd](https://github.com/dnfd))
|
||||
|
||||
- [#2325](https://github.com/rubykube/peatio/pull/2325): Integrate ability to create accounting Adjustments ([dnfd](https://github.com/dnfd))
|
||||
- Add Adjustment model;
|
||||
- Adjustement has pending, accepted and rejected states;
|
||||
- Only on accepted state creates operations;
|
||||
- Add API for get, create and accept/reject adjustments;
|
||||
- Adjustment creates a pair with asset and liabilty || revenue || expense;
|
||||
- Update user balance in case of creation liability after accepting adjustment;
|
||||
|
||||
Co-authored-by: mnaichuk <mnaichuk@heliostech.fr>
|
||||
Co-authored-by: dnfd <dfedorchenko@heliostech.fr>
|
||||
|
||||
- [#2347](https://github.com/rubykube/peatio/pull/2347) Beneficiaries model with ability to manage via user API ([mod](https://github.com/mod))
|
||||
|
||||
Add Beneficiary model which can store both fiat crypto beneficiary data. Custom beneficiary fields like country, account_number, bank_swift_code are stored in JSON format. Also beneficiary contains name, description & currency_id in string format.
|
||||
|
||||
On beneficiary creation pin generated and saved in DB user needs to activate beneficiary with pin sent by email. Create & update actions are published to RabbitMQ by Event API.
|
||||
|
||||
There are 3 states of beneficiary:
|
||||
- pending - requires activation with pin;
|
||||
- active - activated by user and can be used for withdrawal;
|
||||
- achieved - equal to removed except fact that admin can read it.
|
||||
|
||||
Beneficiary account API consists of 5 endpoints:
|
||||
- GET /beneficiaries - get paginated list of beneficiaries for user;
|
||||
- GET /beneficiaries/:id - get single beneficiary by id;
|
||||
- POST /beneficiaries - create beneficiary for user;
|
||||
- PATH /beneficiaries/:id/activate - activate beneficiary with pin;
|
||||
- DELETE /beneficiaries/:id - delete beneficiary (actually change state to archived).
|
||||
|
||||
Co-authored-by: ysv <ysavchuk@heliostech.fr>
|
||||
Co-authored-by: mod <lbellet@heliostech.fr>
|
||||
|
||||
- [#2355](https://github.com/rubykube/peatio/pull/2355): Integrate ability to withdraw both fiat & crypto with Beneficiary model ([ysv](https://github.com/ysv))
|
||||
|
||||
Since we can store Beneficiaries in peatio starting from #2347 now we can
|
||||
implement user withdraw API for both fiat & crypto currencies. Itmeans that in
|
||||
this patch we have replaced POST accounts/withdraw `rid` param with
|
||||
`beneficiary_id`. This change gives ability to use active beneficiaries for
|
||||
both fiat & crypto withdrawals.
|
||||
|
||||
`Beneficiary` is now exposed in Admin API as field of `Withdraw` so admin can
|
||||
validate it directly.
|
||||
|
||||
`beneficiary_id` foreign key was added to `Withdraw` model so now it has
|
||||
optional `belongs_to` association with `Beneficiary`.
|
||||
|
||||
Also this patch improves `Withdraw` `sum` & `amount` precision logic. Instead
|
||||
of rounding attributes on creation now attributes precision is validated on
|
||||
`Withdraw` creation.
|
||||
|
||||
This patch also adds additional validation for Beneficiary data attribute
|
||||
|
||||
### Enhancements ###
|
||||
|
||||
- Add RevShare model. Add state to Trade [\#2283](https://github.com/rubykube/peatio/pull/2283) ([ysv](https://github.com/ysv))
|
||||
- Add GET API for Operations and Members [\#2285](https://github.com/rubykube/peatio/pull/2285) ([dnfd](https://github.com/dnfd))
|
||||
- Update peatio-ripple gem version [\#2298](https://github.com/rubykube/peatio/pull/2298) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Update peatio-ripple gem version [\#2306](https://github.com/rubykube/peatio/pull/2306) ([ysv](https://github.com/ysv))
|
||||
- Update API doc files structure and naming [\#2305](https://github.com/rubykube/peatio/pull/2305) ([ysv](https://github.com/ysv))
|
||||
- Update peatio-ripple gem version [\#2304](https://github.com/rubykube/peatio/pull/2304) ([ysv](https://github.com/ysv))
|
||||
- Add parity wallet gataway and use it instead of peth. Deprecate peth [\#2295](https://github.com/rubykube/peatio/pull/2295) ([streetcrypto7](https://github.com/streetcrypto7))
|
||||
- Update management/transfers [\#2307](https://github.com/rubykube/peatio/pull/2307) ([dnfd](https://github.com/dnfd))
|
||||
- Drop step from blockchain model [\#2282](https://github.com/rubykube/peatio/pull/2282) ([shal](https://github.com/shal))
|
||||
- Change run Peatio::Application to Rails.application in config.ru [\#2316](https://github.com/rubykube/peatio/pull/2316) ([ysv](https://github.com/ysv))
|
||||
- Upgrade Transfer model. Add gross Revenue account [\#2301](https://github.com/rubykube/peatio/pull/2301) ([ysv](https://github.com/ysv))
|
||||
- Prepare management API for Revenue Share [\#2293](https://github.com/rubykube/peatio/pull/2293) ([shal](https://github.com/shal))
|
||||
- Update Admin API [\#2317](https://github.com/rubykube/peatio/pull/2317) ([dnfd](https://github.com/dnfd))
|
||||
- Feature: add gem for support dash [\#2338](https://github.com/rubykube/peatio/pull/2338) ([ymasiuk](https://github.com/ymasiuk))
|
||||
- Update API [\#2336](https://github.com/rubykube/peatio/pull/2336) ([dnfd](https://github.com/dnfd))
|
||||
- Use Faker::Blockchain::Bitcoin instead of Faker::Bitcoin [\#2343](https://github.com/rubykube/peatio/pull/2343) ([ysv](https://github.com/ysv))
|
||||
- Update specs for swagger [\#2340](https://github.com/rubykube/peatio/pull/2340) ([dnfd](https://github.com/dnfd))
|
||||
- Add endpoint to list all blockchain clients & provide access to disabled markets in Admin API [\#2339](https://github.com/rubykube/peatio/pull/2339) ([dnfd](https://github.com/dnfd))
|
||||
- Remove uid length limit in members table [\#2346](https://github.com/rubykube/peatio/pull/2346) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Add Admin and Management API for TradingFees [\#2334](https://github.com/rubykube/peatio/pull/2334) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Minor Wallet Admin API fixes & improvements. Drop parent & nsig from Wallet [\#2348](https://github.com/rubykube/peatio/pull/2348) ([dnfd](https://github.com/dnfd))
|
||||
- Add uid, email field for withdrawal and deposits admin entities [\#2350](https://github.com/rubykube/peatio/pull/2350) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Add public endpoint for trading\_fees [\#2353](https://github.com/rubykube/peatio/pull/2353) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Add actions endpoints for Withdraw and Deposit Admin API [\#2351](https://github.com/rubykube/peatio/pull/2351) ([dnfd](https://github.com/dnfd))
|
||||
- Minor Transfer table updates [\#2356](https://github.com/rubykube/peatio/pull/2356) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Add endpoint to select adjustment by ID [\#2354](https://github.com/rubykube/peatio/pull/2354) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Add endpoint for create fiat deposit [\#2357](https://github.com/rubykube/peatio/pull/2357) ([chumaknadya](https://github.com/chumaknadya))
|
||||
- Add ability to change markets precision in Admin API [\#2361](https://github.com/rubykube/peatio/pull/2361) ([ysv](https://github.com/ysv))
|
||||
- Use grape entity for exposing & documenting market ticker [\#2365](https://github.com/rubykube/peatio/pull/2365) ([ysv](https://github.com/ysv))
|
||||
- Add details about fees in trade API [\#2363](https://github.com/rubykube/peatio/pull/2363) ([dnfd](https://github.com/dnfd))
|
||||
- Validate accounting on Transfer & Adjustment creation. Create account on fly if does not exist [\#2370](https://github.com/rubykube/peatio/pull/2370) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Add endpoint to get currency by code to management API ([#2372](https://github.com/openware/peatio/issues/2372))
|
||||
- Reraise errors in #submit and #cancel methods ([#2375](https://github.com/openware/peatio/issues/2375))
|
||||
- OrderProcessor must process order cancel after TradeExecutor ([#2371](https://github.com/openware/peatio/issues/2371))
|
||||
- Add visible, deposit_enabled, withdrawal_enabled columns to Currency ([#2374](https://github.com/openware/peatio/issues/2374))
|
||||
- Update README.md
|
||||
- Update CI to build images with git sha for branches matching {fix,integration}/*
|
||||
- Update update sassc and ffi
|
||||
- Update websocket API documentation for peatio 2.4 ([#2505](https://github.com/openware/peatio/issues/2505))
|
||||
- Update irix and peatio-bitgo versions ([#2533](https://github.com/openware/peatio/issues/2533))
|
||||
- Update export task with data field for market ([#2513](https://github.com/openware/peatio/issues/2513))
|
||||
- Update irix version ([#2506](https://github.com/openware/peatio/issues/2506))
|
||||
- Update peatio plugins ([#2504](https://github.com/openware/peatio/issues/2504))
|
||||
- Update to Rails 5.2.4 ([#2466](https://github.com/openware/peatio/issues/2466))
|
||||
- Update Peatio API documentation ([#2477](https://github.com/openware/peatio/issues/2477))
|
||||
- Update roadmap.md
|
||||
- Update Order model for compatibility with Finex ([#2440](https://github.com/openware/peatio/issues/2440))
|
||||
- Update gem versions ([#2414](https://github.com/openware/peatio/issues/2414))
|
||||
- Update ruby to 2.6.5 for security reasons ([#2386](https://github.com/openware/peatio/issues/2386))
|
||||
- Support beneficiary_id in management API create withdraw ([#2378](https://github.com/openware/peatio/issues/2378))
|
||||
- Support beneficiary_id in management API create withdraw ([#2378](https://github.com/openware/peatio/issues/2378))
|
||||
- Tweak public-markets endpoint ([#2395](https://github.com/openware/peatio/issues/2395))
|
||||
|
||||
### Bug Fixes ###
|
||||
|
||||
- Update gendocs script [\#2300](https://github.com/rubykube/peatio/pull/2300) ([dnfd](https://github.com/dnfd))
|
||||
- Update gem versions to reduce vulnerabilities [\#2318](https://github.com/rubykube/peatio/pull/2318) ([snyk-bot](https://github.com/snyk-bot))
|
||||
- Fail ethereum withdrawal in case of fail status in blockchain [\#2302](https://github.com/rubykube/peatio/pull/2302) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Don't use validations for updating database in migrations [\#2324](https://github.com/rubykube/peatio/pull/2324) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Add ability to bump & tag stable branches [\#2328](https://github.com/rubykube/peatio/pull/2328) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Fail ethereum withdrawal in case of fail status in blockchain [\#2327](https://github.com/rubykube/peatio/pull/2327) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Rewrite validation for buy and sell order in trade\_executor [\#2335](https://github.com/rubykube/peatio/pull/2335) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Remove jq package from gendocs [\#2333](https://github.com/rubykube/peatio/pull/2333) ([dnfd](https://github.com/dnfd))
|
||||
- Add missing -y for jq install in bin/gendocs [\#2332](https://github.com/rubykube/peatio/pull/2332) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Use update\_attribute in migrations for skipping validations [\#2331](https://github.com/rubykube/peatio/pull/2331) ([mnaichuk](https://github.com/mnaichuk))
|
||||
- Add email to withdraw & deposit event\_api payloads [\#2349](https://github.com/rubykube/peatio/pull/2349) ([shal](https://github.com/shal))
|
||||
- Minor Admin fixes for Blockchain, Order, Trade, Currency [\#2352](https://github.com/rubykube/peatio/pull/2352) ([chumaknadya](https://github.com/chumaknadya))
|
||||
- Fix 422 response on successful withdraw action [\#2358](https://github.com/rubykube/peatio/pull/2358) ([dnfd](https://github.com/dnfd))
|
||||
- Increase trading fees maker & taker precision to 6 digits [\#2360](https://github.com/rubykube/peatio/pull/2360) ([ysv](https://github.com/ysv))
|
||||
- Crash daemons on Mysql connection error [\#2367](https://github.com/rubykube/peatio/pull/2367) ([dnfd](https://github.com/dnfd))
|
||||
- Do not log full backtrace on order creation ([#2368](https://github.com/openware/peatio/issues/2368))
|
||||
Reference in New Issue
Block a user