Skip to content

Release v0.3.0

Choose a tag to compare

@github-actions github-actions released this 08 Jun 18:46

Changes

Added

  • taker_fee_rate and maker_fee_rate in REST api.
  • Portfolios endpoints: list_portfolios, create_portfolio, get_portfolio_breakdown, move_portfolio_funds, edit_portfolio, delete_portfolio
  • Convert endpoints: create_convert_quote, get_convert_trade, commit_convert_trade
  • Payment Methods endpoints: list_payment_methods, get_payment_method
  • Data API endpoint: get_api_key_permissions
  • Futures (CFM) endpoints: get_futures_balance_summary, list_futures_positions, get_futures_position, schedule_futures_sweep, list_futures_sweeps, cancel_pending_futures_sweep, get_intraday_margin_setting, get_current_margin_window, set_intraday_margin_setting
  • Perpetuals (INTX) endpoints: allocate_portfolio, get_perps_portfolio_summary, list_perps_positions, get_perps_position, get_perps_portfolio_balances, opt_in_or_out_multi_asset_collateral
  • Async mirrors of all the above in CoinbaseAwaitableRestClient, plus new data model headers (portfolio.hpp, convert.hpp, payment_method.hpp, key_permissions.hpp, futures.hpp, perpetuals.hpp) and Amount type in common.hpp

Changed

  • Change log file opening mode to append for data logging
  • Upgraded slick-net dependency from v2.0.0 to v2.1.0
  • Changed market_data_websocket_ and user_data_websocket_ members from shared_ptr to unique_ptr
  • Refactored WebSocketClient destructor to call reset_callbacks() before closing sockets, eliminating busy-wait polling loops on disconnect
  • Removed atomic pending_md_socket_close_ and pending_user_socket_close_ counters
  • stop() no longer resets websocket pointers; connection state is preserved for reconnect
  • Disconnect callbacks no longer reset websocket pointers
  • subscribe() now checks socket status to reopen a disconnected (but existing) connection instead of only creating on null
  • Heartbeat subscription is now sent immediately after open() on user data socket creation

Fixed

  • unsubscribe() now holds a reference to the unique_ptr instead of copying it
  • double_from_json now handles fields the API returns as raw JSON numbers (not just stringified numbers), fixing parsing of PortfolioPosition.allocation/available_to_trade_fiat