Releases: sjanel/coincenter
Releases · sjanel/coincenter
v3.24.1
v3.24.0
What's Changed
- [Code cleaning] - Fix clang-tidy warnings by adding some missing headers by @sjanel in #555
- [Log] - Log curl url when errors for better issue identification by @sjanel in #556
- [Feature] - Timeout configuration per HTTP request at exchange level by @sjanel in #557
- Implement Kraken private api request retry and factorize code by @sjanel in #558
- [SSL clean-up] Avoid memory allocations for SSL module, clean-up and factorize code by @sjanel in #559
- Fix Windows warnings by @sjanel in #560
- Test vcpkg config by @sjanel in #561
- [Market order book] - Fix some slightly incorrect ticker data instead… by @sjanel in #562
- [Code clean-up] Fix further Windows warnings by @sjanel in #563
- Chore/add git shallow dependencies by @sjanel in #564
- Minor cleanup by @sjanel in #565
- [Clean-up] Add missing include in stringhelpers by @sjanel in #566
- [Build system] Add support for conan package manager and document it by @sjanel in #567
- Bugfix/kraken no throw currencies available by @sjanel in #568
- [Feature] - Regular CachedResult memory release over time by @sjanel in #569
- [Code refactoring] - Base64 code clean up by @sjanel in #570
- [Code refactoring] Optimize CachedResult for key absence by @sjanel in #571
- [Feature] - Use Binance global infos data as a last resort when crawler fails to retrieve data by @sjanel in #572
- [Feature] - Withdrawal improvements (deposit id added, withdrawal simulation mode) by @sjanel in #573
- [Feature] - Addition of logging activity simulated command filter option by @sjanel in #574
- Chore/use clang 19 tidy by @sjanel in #575
- [Code refactoring] - Clean-up clang tidy warnings by @sjanel in #576
- Bump spdlog version to v1.14.1 by @sjanel in #577
- Fix clang-tidy warnings by @sjanel in #578
- [Upbit & Bithumb] - No order book logs for order book query by @sjanel in #579
- Make sure that cached result always refresh the cache for a zero refr… by @sjanel in #580
- Split mathhelpers.hpp into dedicated include files for each functiona… by @sjanel in #581
- [Dockerfile] - Upgrade to Ubuntu 24.04 as base image by @sjanel in #582
- [Feature] Serialization of market data in protobuf by @sjanel in #498
- [Bithumb API] - Support integral values for 'status' return code by @sjanel in #583
- Chore/clean up string conv by @sjanel in #584
- Remove heuristic on minimum length of currency codes in determineMarketFromMarketStr, and fix clang-tidy warnings by @sjanel in #585
- Ensure deterministic order of api calls of order books and last trades for market-data by @sjanel in #586
- Less logs for repeated GET request logs by @sjanel in #587
- [GitHub] - Prepare workflows for Ubuntu 24 migration by @sjanel in #588
- Use range instead of iterators for parallelTransform in thread pool, fix clang-tidy warnings by @sjanel in #590
- Support scientific notation for MonetaryAmount by @sjanel in #589
- Second pass of clang-tidy warnings fixes by @sjanel in #591
Full Changelog: v3.23.0...v3.24.0
v3.23.0
What's Changed
- Improve withdrawal fees crawler's first source by downloading json fi… by @sjanel in #515
- [Feature] - New CLI option closed-orders by @sjanel in #516
- [GitHub action] - Faster Windows build by @sjanel in #517
- [Feature] - Handle interrupt and termination signals to gracefully sh… by @sjanel in #518
- [Feature] - New CL option conversion (legacy 'conversion' option rena… by @sjanel in #519
- [Feature] - make conversion possible with special fiat currency at st… by @sjanel in #520
- Improve market order book computation of average price for taker buy … by @sjanel in #521
- [Feature] - Be more robust against fiat queries errors for source 1 by @sjanel in #523
- [Feature] - Allow MonetaryAmount operations with doubles by @sjanel in #522
- Feature/add more order based services market order book by @sjanel in #524
- [Feature] - Merge Closed Order method by @sjanel in #527
- Revert signal handler to default once called in order to allow progra… by @sjanel in #525
- Fix MarketOrderBook avgPriceAndMatchedVolumeBuy by @sjanel in #526
- [Optim] - Avoid copying arguments in parallelTransform of threadpool by @sjanel in #528
- [Feature] - Support of multi line cells in SimpleTable by @sjanel in #529
- Rename Time types into duration as they are actually durations by @sjanel in #530
- Bugfix/fix ubsan error withdrawal fees crawler test by @sjanel in #531
- Fix asan error in withdrawal fees crawler by @sjanel in #532
- Improve compile time string view logging levels by @sjanel in #463
- Clean-up and make MarketOrderBook creation more user friendly by @sjanel in #534
- [Code cleaning] - Create PublicTradeVector and MarketOrderBookVector by @sjanel in #535
- Do not select Exchange without account with private requests on empty list of exchanges by @sjanel in #536
- Use std::unique_ptr instead of forward_list to hold ExchangePrivate memory by @sjanel in #537
- Make curl failures non-throwing for withdrawal fees crawler by @sjanel in #538
- More strict checking of ExchangeName creation from 2 parameters by @sjanel in #539
- Log instead of throw for duplicate prices in MarketOrderBook and merg… by @sjanel in #540
- Check at configure time that LTO is supported by the C++ compiler bef… by @sjanel in #541
- Chore/misc clean up and add unit tests by @sjanel in #542
- Less verbose request stats logs by @sjanel in #543
- Correctly take into account depth parameter for Binance & Kucoin orde… by @sjanel in #544
- Correctly take into account depth parameter for last trades for some … by @sjanel in #545
- Add PublicTrade unit test by @sjanel in #546
- Add cct::format by @sjanel in #547
- Do not throw exception when json parsing fails for unstable APIs by @sjanel in #548
- Implement more error - retry instead of exceptions for json parsing and exchange errors by @sjanel in #549
- [MonetaryAmount] - Fix divide when result has no decimal part and results in adding zeros by @sjanel in #550
- [GitHub workflows] - Remove upgrade dependencies for faster builds by @sjanel in #551
- [Conversion] - Support transferable results for conversion by @sjanel in #552
Full Changelog: v3.22.0...v3.23.0
v3.22.0
What's Changed
- Improve returned trade result information by @sjanel in #472
- MonetaryAmount from std::string_view should be be constructible with … by @sjanel in #474
- Refactor and test coincenter options by @sjanel in #476
- Bugfix/upbit add deposit info net type by @sjanel in #478
- [Binance] - Use another URL for Binance public withdrawal fees source by @sjanel in #479
- Clean up code around fiat converter by @sjanel in #480
- Modernize array with std::array without template parameter arguments when applicable by @sjanel in #481
- Multi-command pipe support by @sjanel in #475
- Easier usage as library - parseExchanges does not require to be last anymore by @sjanel in #482
- New CLI option - currencies, to get all tradable currencies by @sjanel in #483
- Make first currency optional for markets command by @sjanel in #487
- Use FlatSet instead of unordered_map for withdrawal fees by @sjanel in #489
- Currency is now optional for withdraw-fee CLI, renamed into withdraw-fees by @sjanel in #490
- Fix race condition on get all approximated order books when several e… by @sjanel in #491
- Fix compilation error of prometheus-cpp by disabling tests as workaround by @sjanel in #493
- Fix incorrect assert for fiat conversions in equivalent balance conve… by @sjanel in #492
- Feature/add upbit withdraw net type parameter by @sjanel in #494
- Add retry mechanism to requests by @sjanel in #496
- Bump dependencies to latest release versions by @sjanel in #497
- Add cct::string::operator+= with std::string_view by @sjanel in #500
- Use DurationToString in logs by @sjanel in #501
- Add second source for fiat currency service, first one may be down by @sjanel in #503
- Make some default trade options configurable in exchangeconfig file by @sjanel in #502
- Fix Bithumb withdrawal fees parsing, factorize crawlers code by @sjanel in #504
- Market Order books objects are enriched with timestamp by @sjanel in #505
- Strong typing for market order book lines, minor code clean up by @sjanel in #506
- Add second source for fiat conversion, not requiring any API key by @sjanel in #507
- Code cleaning - rename LastTradesVectors into TradesVector by @sjanel in #508
- [Code refactoring] Fix clang-tidy warnings by @sjanel in #509
- Fix Windows build by @sjanel in #512
- Some MSVC compiler bug has been fixed, remove workaround by @sjanel in #452
- Fix race condition for simultaneous calls to queryTradableMarkets from private exchanges by @sjanel in #511
Full Changelog: v3.21.0...v3.22.0
v3.21.0
What's Changed
- Fix clang tidy warnings by @sjanel in #444
- Implementation of parallel exchange requests by @sjanel in #443
- Slightly improved SimpleTable pretty print with '+' instead of '-' at intersection of columns by @sjanel in #446
- Kraken - take nb last trade parameter option into account instead of … by @sjanel in #447
- Upgrade dependencies, fix clang-tidy warnings by @sjanel in #448
- Remove Cryptowatch API (it has been switch off) by @sjanel in #454
- Avoids live queries to fiats in most tests (except main one) by @sjanel in #456
- Clang 17 support - remove clang < 17 support by @sjanel in #455
- Support multi command in CLI, with commands starting without -- by @sjanel in #451
- Fix some clang-tidy warnings - bugprone-unchecked-optional-access & p… by @sjanel in #457
- Fix clang-tidy warnings about includes by @sjanel in #459
- More strict exchange name parsing for better error diagnosis in options parser by @sjanel in #462
- Extract gethostname into a dedicated module. Add unit test and better error management by @sjanel in #461
- Finishes all futures when one throws an exception by @sjanel in #464
- ipow10 optimization as most usages are with 10 base by @sjanel in #465
- Use correct field name for log level override by command line in json by @sjanel in #466
- Make curl log level configurable by exchange by @sjanel in #467
- Kucoin - check prices of ticker because they are sometimes invalid by @sjanel in #469
- Fix IWYU warnings of clang-tidy - activate check by default by @sjanel in #468
Full Changelog: v3.20.0...v3.21.0
v3.20.0
What's Changed
- Automatic synchronization of timestamps for Binance private API by @sjanel in #404
- Binance: implement NOTIONAL filter by @sjanel in #406
- Fix wrong display of Monitoring options in help output by @sjanel in #407
- Implementation of new trade option --trade-async by @sjanel in #408
- Implementation of new withdraw option --withdraw-async by @sjanel in #409
- Improve withdraw algorithm checks to alternatively check receiver even if we did not found sent confirmation by @sjanel in #410
- Switch default docker image to Ubuntu based instead of Alpine by @sjanel in #411
- Chore/fix clang tidy by @sjanel in #412
- Refactor code around recent deposits by @sjanel in #413
- Addition of status of recent deposits in output by @sjanel in #415
- Upbit - Update new withdraw fees static data by @sjanel in #417
- Add method isCloseTo in MonetaryAmount by @sjanel in #418
- Implementation of query recent withdrawals by @sjanel in #414
- Rename some options, notably withdraw apply to limit accidents by @sjanel in #419
- Extract some objects creation functions from main to make code usable as external library by @sjanel in #420
- No repeat if no commands by @sjanel in #421
- Addition of new Withdraw Status Initial. Clean-up withdraw logs by @sjanel in #425
- Code refactoring - renamed iotools into http-requests, remove objects dependency on iotools by @sjanel in #427
- Use custom URLEncode function instead of curl to simplify code by @sjanel in #428
- Feature/curl override query responses mode for test by @sjanel in #429
- Binance - retrieve withdraw fee from default network in public api by @sjanel in #432
- Accept encoding curl option support by @sjanel in #433
- Log unused & not explicitly set fields from personal exchangeinfo.json file by @sjanel in #435
- Kraken now accepts address parameter to withdraw, for double checking purposes by @sjanel in #437
- Print correctly key name for Withdraw output in json by @sjanel in #438
- Log selected command types in appended activity log file by @sjanel in #439
- Upgrade alpine docker image base version by @sjanel in #440
Full Changelog: v3.19.0...v3.20.0
v3.19.0
What's Changed
Features
- Kraken now supports deposit status method without specifying asset by @sjanel in #387
- Log exchange name with key in private requests by @sjanel in #388
- Use both Kraken withdrawal fees sources and do a merge of data by @sjanel in #389
- Allow CCT_DATA_DIR environment variable to be read at runtime by @sjanel in #391
- Addition of option to validate API keys at ExchangePrivate creation by @sjanel in #399
- Decrease log level of some startup logs by @sjanel in #401
Other changes
- Dropped support for GCC 10 and clang 13 by @sjanel in #377
- Fix some clang-tidy warnings - especially dealing with min variable length by @sjanel in #378
- Simplify centralized trade algorithm by @sjanel in #379
- Fix some clang-tidy warnings 2 by @sjanel in #380
- Simplify Withdraw info objects and Wallet by @sjanel in #381
- Upgrade Alpine minor version for Dockerfile by @sjanel in #382
- Upgrade GoogleTest to 1.13.0 by @sjanel in #383
- Fix deprecation warning in spdlog fmt lib due to passing enum directly by @sjanel in #384
- Stop using deprecated functions from OpenSSL 3 by @sjanel in #385
- Log exception when error is raised in configuration loading by @sjanel in #392
- Rename tools package in iotools to be more specific by @sjanel in #393
- Fix some clang tidy warnings. Activate new checks by @sjanel in #394
- Activate new clang-tidy checks, fix them by @sjanel in #395
- Clean-up and optimize code of APIKeysProvider by @sjanel in #397
- Extract Curl global init from Coincenter object by @sjanel in #398
- Clean-up code related to settings::RunMode. Also add unit tests of LoggingInfo and ProcessCommandsFromCLI by @sjanel in #400
Bug fixes
- Fix asan error in a log in main when an exception is raised as LoggingInfo loggers have been destroyed at this point by @sjanel in #386
- Shrink acronym prefixes to support long Arbitrum and Optimism Bithumb acronyms by @sjanel in #396
Full Changelog: v3.18.0...v3.19.0
v3.18.0
What's Changed
- Refactoring - move APIKey and APIKeyProvider to higher module by @sjanel in #356
- Bugfix/docker ignore logs by @sjanel in #357
- Chore/invalid argument format by @sjanel in #358
- Health check implementation by @sjanel in #359
- Adds some [[nodiscard]] attributes to some methods in MonetaryAmount by @sjanel in #360
- Chore/update alpine dockerfile by @sjanel in #361
- Extract URL picker logic from CurlHandle in a new class by @sjanel in #362
- Fix some clang-tidy warnings by @sjanel in #363
- Better protection against extreme response time in URL base picker by @sjanel in #364
- Add curl and OpenSSL versions to coincenter version information by @sjanel in #366
- Use latest xcode for macos build CI by @sjanel in #368
- Clean up in ssl lib by @sjanel in #367
- Fix withdraw logs in Kraken. Also clean up returned objects from withdraw APIs by @sjanel in #369
- Huobi - fix exception when parsing chain names by @sjanel in #372
- Fix MSVC warning of variable shadow by @sjanel in #373
- Chore/avoid bool as parameter of method by @sjanel in #374
- Take string_view instead of data() for json key by @sjanel in #375
- TradeInfo objects refactoring by @sjanel in #371
Full Changelog: v3.17.0...v3.18.0
v3.17.0
What's Changed
- Increase maximum number of characters of currency code to 10 by @sjanel in #331
- Customize fmt formatter of MonetaryAmount, Market for easier logs by @sjanel in #333
- Copy certificates in the final build image from scratch instead of embedding alpine OS by @sjanel in #335
- Wallet fmt::format by @sjanel in #336
- ExchangeName format support by @sjanel in #337
- Format exception - part 1 by @sjanel in #338
- Migrate exception to formatting in src/tools by @sjanel in #339
- Simplify some exception creation with format by @sjanel in #340
- Exception formatting with all changes by @sjanel in #334
- Fix incorrect parsing of MonetaryAmount built with single string when currency starts with a digit by @sjanel in #341
- Addition of MonetaryAmount::appendStr, MonetaryAmount::appendAmountStr by @sjanel in #342
- Activate deep merge for exchange info config from default by @sjanel in #343
- Fixed bug in MonetaryAmount::appendAmountStr. Added unit tests by @sjanel in #344
- Dust sweeper feature implementation by @sjanel in #268
- Support of configurable spdlog multi sink logging, in files and console by @sjanel in #345
- Make output print of tables and json as logger, to be synchronized with console logger by @sjanel in #346
- Allow addition / subtraction of default MonetaryAmount with any other (neutral element) by @sjanel in #348
- Fix parsing of Kraken opened orders price by @sjanel in #347
- New option balance in use by @sjanel in #349
- Code management - implementation of ExchangeInfo constructor in the src file by @sjanel in #350
- Support fmt::format for OrdersConstraints by @sjanel in #351
- Fix Bithumb parsing units for withdraw receival by @sjanel in #353
- Factorize timestamp code to enhance readability by @sjanel in #354
- Fix invalid signature of Huobi when launching withdraw with a currency tag by @sjanel in #355
- Get recent deposits implementation by @sjanel in #352
Full Changelog: v3.16.1...v3.17.0
v3.16.1
What's Changed
- Do not throw if error occurs at writing of cache file by @sjanel in #308
- Simplify computeLimitOrderPrice by @sjanel in #309
- Fix Kraken withdraw fees scan by @sjanel in #310
- Use latest alpine docker version by @sjanel in #311
- Fix Huobi withdraw fee rate parsing by @sjanel in #313
- Upgrade Alpine to 3.16.1 by @sjanel in #314
- Update clang-format-check.yml by @sjanel in #315
- Upgrade Google Test, prometheus-cpp by @sjanel in #316
- Upgrade alpine docker file base image by @sjanel in #317
- Remove useless parameter by @sjanel in #318
- Split exchanges orchestrator tests in smaller files for better clarity by @sjanel in #319
- Update clang format check by @sjanel in #320
- Better error management number of bytes parsing by @sjanel in #321
- Minor clean-up by @sjanel in #322
- Bump json version to 3.11.2 by @sjanel in #323
- Update amc version by @sjanel in #324
- Fix trace of withdraw amount when withdraw is done from a percentage by @sjanel in #325
- Allow currency option to be optional or mandatory depending on the needs by @sjanel in #328
- Avoid useless warning log of too many digits truncating integral part from Huobi market info creation by @sjanel in #332
Full Changelog: v3.16.0...v3.16.1