- Considering package re-organization for better imports etc.
- Convenient type defs and functions for verbose type signatures like
Box<Arc<Mutex<dyn SecretsProvider>>>
- Secrecy had a major breaking change (if moving to 0.10.3), which will force breaking changes to the
Secrets
struct andSecretsProvider
trait
All changes are breaking unless otherwise noted and given upgrade instructions.
- Minor version bumps for hyper, tokio, serde, url, tracing, tokio-stream, time, and tracing-subscriber (non-breaking)
- Relax type bounds for
KrakenWSSClient
'snew_with_urls
andnew_with_tracing
(non-breaking) - Remove V1 websockets,
KrakenWSSClient
and all associated tests and data- Upgrade path for existing V2 users:
- Remove all imports with
::v2::
in them - Follow build failures and re-import removed imports
- Remove all imports with
- Upgrade path for existing V2 users:
- Remove deprecated features
debug-inbound
anddebug-outbound
- Upgrade path:
- Use the
new_with_tracing
methods onKrakenWSSClient
andKrakenClient
to enable tracing (disabled by default)
- Use the
- Upgrade path:
- Relax type bounds for
KrakenClient
'snew_with_url
andset_user_agent
methods toimpl ToString
- Upgrade path:
- Update any implementations of the trait
KrakenClient
you've defined - otherwise, relaxing this type bound is non-breaking
- Update any implementations of the trait
- Upgrade path:
- Deprecate
debug-inbound
anddebug-outbound
features - Add
new_with_tracing
method toKrakenClient
to allow setting a flag for tracing inbound REST messages - Add
new_with_tracing
method toKrakenWSSClient
to allow setting a flag for tracing inbound websocket messages
- Update to Spot REST V1, Spot Websockets V2.0.9 as of 26 September 2024 changelog notes
- Adds
cl_ord_id
(client_order_id) to many types - Adds AmendOrder endpoint, WS request/responses for amending orders, and updates to many request and response types
- Adds get_order_amends endpoint to retrieve amendments made to a particular order
- Updated rate limiting to support amending orders and correcting their lifetimes for correct penalties
- Adds
- Bump various dependencies
- Fix
StatusUpdate.connection_id
after observing it's not always populated - Add test-support default feature for common example and testing code
- Fix
ExecutionResult
for trigger orders, whereactual_price
,peak_price
,last_price
, andtimestamp
are not necessarily provided
- Fix parsing of
ExecutionResult
after addition of new fields - Fix
PositionStatusV2::Open
->Opened
- Add cl_ord_id (client_order_id) to
AddOrderResult
,CancelOrderResult
,BatchOrder
,BatchOrderParams
,BatchCancelResponse
, andExecutionResult
- Update tokio-tungstenite to 0.23.1, several breaking changes
- Fix serde and Display for SelfTradePrevention to be snake_case
- Add custom
Token(Secret<String>)
type for websocket tokens to avoid accidental exposure via logging etc- Feature-gated logging of incoming and outgoing messages to prevent disclosure of secrets by default
(see
debug-inbound
anddebug-outbound
features)
- Feature-gated logging of incoming and outgoing messages to prevent disclosure of secrets by default
(see
- Add
Clone
to remaining response types, addCopy
where sensible - Modify
OpenPosition
to havenet
andvalue
be optional (return depends on query params)
- Change
KrakenClient
signature to requiresecrets_provider: Box<Arc<Mutex<dyn SecretsProvider>>>,
to enableClone
onCoreKrakenClient
- Fix
BalancesSubscription
sending null for snapshot by default (skip_serializing_none) - Fix
WSSMessage
by addingWssMessage(ErrorResponse { .. })
variant - Change
checksum
fields for L2 and L3 books tou32
to match crc32fast crate impl - Derive Clone for
Message<T>
and all*Subscription
types - Derive
Clone
forRateLimitedKrakenClient
so clones can share the rate limiters - Derive
Debug
forCoreKrakenClient
for consistency - Make incoming WSS messages trace!(...) only; reduces logs with correct settings
- Make
ExecutionResult.order_user_ref
optional - Bump dependencies
- Websockets V2 support - all V2 websocket endpoints are now supported
- Deprecated v1
KrakenWSSClient
since Kraken will support but no longer update v1
- Deprecated v1
- Update dependencies (ws-mock -> 0.1.1)
Using rust_decimal::Decimal instead of Strings where applicable. Bug fixes, cleanup, more enum usage, and other changes from using downstream and finding what drove poor patterns, etc.
- Decimal conversions instead of String (settled on this due to abundance/annoyance of Decimal::try_from(&someString)?
- Made
KrakenClient.set_user_agent
async (not required but allows Tokio mutex proxying downstream) - Changed
vol
andvol_exec
tovolume
andvolume_executed
in all places - Added String data to several variants of
ClientError
where additional information is helpful downstream - Added From<...> impls for StringCSV, OrderFlags, and IntOrString
- These reduce things like
StringCSV::new(vec!["someTxId".to_string()])
to"someTxId".into()
- These reduce things like
- Added example of querying an order to /examples
- Updated dependencies, including
h2
for a security advisory, though it doesn't affect how it's used here - Add
err(Debug)
tracing to allCoreKrakenClient
methods - Add
ret
tracing to any small responses and all trading endpoints inCoreKrakenClient
- Add
Clone
to WSS un/subscribe message types - Add
Debug
,Clone
,Copy
toKrakenWSSClient
- Add
pub
to additional fields on structs in private and public WSS messages - Change
OpenOrder
WSS type to useOrderStatus
enum - Used
TriggerType
enum in additional places
- Initial version