-
released this
2022-06-10 12:07:24 -07:00 | 0 commits to main since this releaseFixed
- 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
-
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
-
released this
2022-03-13 17:32:19 -07:00 | 7 commits to main since this releaseUpdated all dependencies to latest versions.
Added
Content-Type
header to REST requests to fixRetrieveExport
.Downloads
-
released this
2021-09-16 10:26:09 -07:00 | 9 commits to main since this releaseAdded 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.
- Replaced by
Removed
- Ratelimiting (
Settings.limiter
andSettings.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.
- To reduce this possibility, increase your API key nonce window and the
- This was originally included due to the occasional nonce and timeout error.
- 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.
- With the introduction of the WebSocket connection, REST syncing is no longer required for many data sources.
- Server Settings (
Settings.hostname
,Settings.version
)- These values should be constants.
- OTP value setting (
Settings.otp
and.setOTP()
)- Replaced by
Settings.genotp
- Replaced by
- 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
- 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.
- 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.
- 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.
- Increase your api key nonce window if you're getting invalid nonce errors.
- Calls may now be performed concurrently (global queueing is removed).
- Remove calls to
.setOTP()
andSettings.otp
; provide.genotp
in the settings. - 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.
- Note: calls are no longer automatically retried
- If you're constructing using module.exports (e.g.
const kraken = require('node-kraken-api')({...})
), you will need to use themodule.exports.Kraken
class instead:import { Kraken } from "node-kraken-api"; const kraken = new Kraken({...});
Downloads
- As before,
-
2.0.0: Emitter Improvements Stable
released this
2021-09-15 17:12:40 -07:00 | 12 commits to main since this releaseChanged
- 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>, ...]
- This changed the signature for event filtering:
- Moved (internally) from qs to URLSearchParams due to deprecation.
Removed
- Kraken.Emitter
Downloads
-
1.0.0: Full Rewrite Stable
released this
2021-09-13 19:40:33 -07:00 | 14 commits to main since this releaseMIGRATION 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.
- To reduce this possibility, increase your API key nonce window and the
- This was originally included due to the occasional nonce and timeout error.
- 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.
- With the introduction of the WebSocket connection, REST syncing is no longer required for many data sources.
- 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
- 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(...);
- 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.
- 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.
- 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.
- Remove calls to
.setOTP()
; provide.genotp
in the settings. - 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.
- Note: calls are no longer automatically retried
- If you're constructing using module.exports (e.g.
const kraken = require('node-kraken-api')({...})
), you will need to use themodule.exports.Kraken
class instead:import { Kraken } from "node-kraken-api"; const kraken = new Kraken({...});
Downloads
-
released this
2018-07-21 19:46:25 -07:00 | 24 commits to main since this releasePrivate counter reduction restoration time was too low.
Downloads
-
released this
2018-07-21 18:51:23 -07:00 | 33 commits to main since this releaseIncreased responsiveness to rate limit violations for private methods and added temporary lockout handling.
Downloads
-
Fixed 0.3.0 Changelog Pre-Release
released this
2018-07-20 18:30:06 -07:00 | 46 commits to main since this releaseChangelog grammar needed to be fixed. Also included one more 'bugfix' entry.
Downloads
-
released this
2018-07-20 18:14:15 -07:00 | 50 commits to main since this releaseStandard 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