Skip to content

Releases: sjanel/coincenter

v3.23.0

31 Mar 09:19
Compare
Choose a tag to compare

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

01 Mar 12:32
Compare
Choose a tag to compare

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

25 Oct 11:25
Compare
Choose a tag to compare

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

17 Jun 20:33
Compare
Choose a tag to compare

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

22 Apr 18:05
Compare
Choose a tag to compare

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

18 Feb 10:02
Compare
Choose a tag to compare

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

11 Nov 22:21
Compare
Choose a tag to compare

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

24 Oct 21:33
Compare
Choose a tag to compare

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

v3.16.0

30 May 09:09
Compare
Choose a tag to compare

What's Changed

  • Fix alignment of table in MSVC by @sjanel in #306
  • Fix compilation error for clang 15, other minor changes by @sjanel in #305
  • Upgrade amc and jwt dependencies by @sjanel in #307
  • Redesign MonetaryAmount::round method, in place by @sjanel in #304
  • Possibility to export output in json by @sjanel in #287

Full Changelog: v3.15.0...v3.16.0

v3.15.0

06 May 16:18
Compare
Choose a tag to compare

What's Changed

  • Remove useless explicit deleted special operators by @sjanel in #279
  • Shrink size of PrivateExchangeName by @sjanel in #278
  • Protect against empty sample markets by @sjanel in #280
  • Use only one type for ExchangeName able to hold public (without key) or private (with key) exchange name by @sjanel in #281
  • Do not call tradeAll method for sell-all command by @sjanel in #282
  • Coincenter command refactoring by @sjanel in #283
  • Fix abort in smart buy for multi step by @sjanel in #284
  • Use test configuration for exchange public / private API tests by @sjanel in #285
  • Better place real simulated order support by @sjanel in #286
  • Extract api objects into a new module by @sjanel in #289
  • Initiate clang tidy compilation mode by @sjanel in #288
  • Add base64 codec unit test by @sjanel in #290
  • Return number of cancelled orders of cancel order query by @sjanel in #291
  • Correctly parse tokens as exchanges instead of currencies for orders queries by @sjanel in #292
  • Upgrade alpine version in Dockerfile by @sjanel in #293
  • Fix placed before time defined method by @sjanel in #294
  • Simplify code by removing tradeAll method, replacing with a percentage trade of 100 % by @sjanel in #295
  • Return traded amounts per exchange for trade requests by @sjanel in #296
  • Change return type of smart buy / sell to TradedAmountsPerExchange by @sjanel in #297
  • Upgrade ubuntu git hub actions by @sjanel in #300
  • Huobi - check withdraw amount before launch (truncating decimals) by @sjanel in #299
  • Fix Bithumb check of withdraw received json parsing error by @sjanel in #298
  • Clang-tidy off by default if present by @sjanel in #301
  • Addition of check on volume associated with number of decimals for market order book creation by @sjanel in #302

Full Changelog: v3.14.2...v3.15.0