• 2.2.2 93c309c68e

    jpcx released this 2022-06-10 12:07:24 -07:00 | 0 commits to main since this release

    Fixed

    • Added error listener to WS dict reads.
    • Added explicit errors to WS open/close rejections.
    • Fixed double socket open due to immediate rapid WS requests.
    • Updated last changelog 2.2.1 publish date.

    Changed

    • Modified WS subscribe/unsubscribe signatures to simplify pair array passing.
    • Added explicit internal errors to unexpected rejections.

    See Issue https://github.com/jpcx/node-kraken-api/issues/8#issuecomment-1152663922

    Downloads
     
  • 2.2.1 5fe8d90a6c

    jpcx released this 2022-06-09 20:26:33 -07:00 | 2 commits to main since this release

    • Added content type header to public REST requests.
    • Added unexpected rejection handlers to WebSocket methods.
    Downloads
     
  • 2.2.0 215b3ab625

    jpcx released this 2022-03-13 17:32:19 -07:00 | 7 commits to main since this release

    Updated all dependencies to latest versions.

    Added Content-Type header to REST requests to fix RetrieveExport.

    Downloads
     
  • 2.1.0 444ede10cb

    jpcx released this 2021-09-16 10:26:09 -07:00 | 9 commits to main since this release

    Added a few (deprecated) legacy settings and .call() to ease the upgrade process.

    • As before, .call() configurably parses responses (dates and numbers by default), but does not use a rate limiter, queueing, or retries.
    • Function signature maintained from 0.4.1.

    Updated 0.4.1 migration guide:

    Added

    • Complete WS 1.8.3 functionality
    • Typings
    • New REST methods

    Deprecated

    • Custom response parsing (Settings.parse, Settings.dataFormatter)
      • To ensure type consistency, it is best to leave parsing to the user.
      • Used only for the deprecated .call() function.
    • Method name settings (Settings.pubMethods, Settings.privMethods)
      • Previously, settings were used to differentiate between public and private methods rather than requiring the user to specify for each call.
      • Instead, named requests are provided to hard-code these differences.
      • Used only for the deprecated .call() function.
    • .call()
      • Replaced by .request() and the named REST methods.

    Removed

    • Ratelimiting (Settings.limiter and Settings.tier)
      • The aim of this API is to maximize clear and accurate communication with the server; ratelimiting makes assumptions about the client setup and should be left to the user.
    • REST retries (Settings.retryCt)
      • This was originally included due to the occasional nonce and timeout error.
        • To reduce this possibility, increase your API key nonce window and the .timeout setting.
    • REST syncing (Settings.syncIntervals)
      • With the introduction of the WebSocket connection, REST syncing is no longer required for many data sources.
        • For all other sources, simply use an asynchronous loop.
    • Server Settings (Settings.hostname, Settings.version)
      • These values should be constants.
    • OTP value setting (Settings.otp and .setOTP())
      • Replaced by Settings.genotp
    • Direct construction using module.exports()
      • Changed to class export for modern standards.

    Changed

    • Errors have changed to named classes. Please review the synopsis.

    Upgrade Guide

    1. Replace all calls to .call() with the corresponding named method or .request().
      • Make sure to view the expected response types; they have changed since 0.4.1.
    2. Replace all sync instances with an async loop that requests every few seconds.
      • If you are syncing one of the endpoints provided by WS, use that instead.
    3. Ensure that your REST calls are not being made too quickly.
      • Ratelimiting has been removed; you may encounter server errors if you were relying on the limiter.
      • See the rate limits documentation.
    4. Increase your api key nonce window if you're getting invalid nonce errors.
      • Calls may now be performed concurrently (global queueing is removed).
    5. Remove calls to .setOTP() and Settings.otp; provide .genotp in the settings.
    6. Review the error classes; if you were parsing errors you will need to update your catch statements.
      • Note: calls are no longer automatically retried retryCt times.
    7. If you're constructing using module.exports (e.g. const kraken = require('node-kraken-api')({...})), you will need to use the module.exports.Kraken class instead: import { Kraken } from "node-kraken-api"; const kraken = new Kraken({...});
    Downloads
     
  • 2.0.0 88cf91091e

    jpcx released this 2021-09-15 17:12:40 -07:00 | 12 commits to main since this release

    Changed

    • Made improvements to the 0.4.1 migration guide and README.
    • Kraken.Emitter moved to its own package and improved; filters now pass on type assertion result to listeners.
      • This changed the signature for event filtering:
        • (...args: <type>[]) => boolean -> (args: [<type>, <type>, ...]) => args is [<subtype>, <subtype>, ...]
    • Moved (internally) from qs to URLSearchParams due to deprecation.

    Removed

    • Kraken.Emitter
    Downloads
     
  • 1.0.0 db3e6086b0

    jpcx released this 2021-09-13 19:40:33 -07:00 | 14 commits to main since this release

    MIGRATION FROM 0.4.1:

    The entire project has been completely rewritten using TypeScript and many features have changed.

    If you're upgrading, please review the changes and upgrade guide below.

    Note: if upgrading to 2.1.0, please see the updated migration guide instead

    Added

    • Complete WS 1.8.3 functionality
    • Typings
    • New REST methods

    Removed

    • Custom response parsing
      • To ensure type consistency, it is best to leave parsing to the user.
    • Ratelimiting
      • The aim of this API is to maximize clear and accurate communication with the server.
    • retryCt setting
      • This was originally included due to the occasional nonce and timeout error.
        • To reduce this possibility, increase your API key nonce window and the .timeout setting.
    • REST syncing
      • With the introduction of the WebSocket connection, REST syncing is no longer required for many data sources.
        • For all other sources, simply use an asynchronous loop.
    • Method name settings
      • Previously, settings were used to differentiate between public and private methods rather than requiring the user to specify for each call.
      • Instead, named requests are provided to hard-code these differences.
    • Direct construction using module.exports()
      • Changed to class export for modern standards.

    Changed

    • .call(): replaced by .request()
      • .request() now accepts four arguments: endpoint, options, public|private, utf8|binary.
    • .setOTP(): replaced by the .genotp setting.
    • Errors have changed to named classes. Please review the synopsis.

    Upgrade Guide

    1. Replace all calls to .call() with the corresponding named method.
      • Make sure to view the expected response types; they have changed since 0.4.1.
      • Alternatively, use .request():
        • .call("Assets", { pair: "XXBTZUSD" }, (response) => ...); -> .request("Assets", { pair: "XXBTZUSD" }).then(...);
        • .call("Balance").then(...); -> .request("Balance", "private").then(...);
    2. Replace all sync instances with an async loop that requests every few seconds.
      • If you are syncing one of the endpoints provided by WS, use that instead.
    3. Ensure that your REST calls are not being made too quickly.
      • Ratelimiting has been removed; you may encounter server errors if you were relying on the limiter.
      • See the rate limits documentation.
    4. Increase your api key nonce window if you're getting invalid nonce errors.
      • Calls may now be performed concurrently; 0.4.1 queued calls to guarantee nonce order.
    5. Remove calls to .setOTP(); provide .genotp in the settings.
    6. Review the error classes; if you were parsing errors you will need to update your catch statements.
      • Note: calls are no longer automatically retried retryCt times.
    7. If you're constructing using module.exports (e.g. const kraken = require('node-kraken-api')({...})), you will need to use the module.exports.Kraken class instead: import { Kraken } from "node-kraken-api"; const kraken = new Kraken({...});
    Downloads
     
  • 0.4.1 6adae55c29

    jpcx released this 2018-07-21 19:46:25 -07:00 | 24 commits to main since this release

    Private counter reduction restoration time was too low.

    Downloads
     
  • 0.4.0 716ec15391

    jpcx released this 2018-07-21 18:51:23 -07:00 | 33 commits to main since this release

    Increased responsiveness to rate limit violations for private methods and added temporary lockout handling.

    Downloads
     
  • 0.3.1 af501d11b0

    Fixed 0.3.0 Changelog Pre-Release

    jpcx released this 2018-07-20 18:30:06 -07:00 | 46 commits to main since this release

    Changelog grammar needed to be fixed. Also included one more 'bugfix' entry.

    Downloads
     
  • 0.3.0 e1ea013939

    jpcx released this 2018-07-20 18:14:15 -07:00 | 50 commits to main since this release

    Standard rate-limiting logic was not adequately preventing lockouts due to the kind of server-side rate-limiting logic used for authenticated calls. Implemented the system described in the Kraken API Docs.

    Downloads