Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fireblocks/fireblocks-sdk-js
Typescript & Javascript SDK for developers using Fireblocks API
https://github.com/fireblocks/fireblocks-sdk-js
blockchain crypto fireblocks javascript nodejs sdk typescript
Last synced: 6 days ago
JSON representation
Typescript & Javascript SDK for developers using Fireblocks API
- Host: GitHub
- URL: https://github.com/fireblocks/fireblocks-sdk-js
- Owner: fireblocks
- License: mit
- Created: 2019-09-02T08:26:35.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-28T22:51:13.000Z (4 months ago)
- Last Synced: 2024-09-07T02:04:02.076Z (4 months ago)
- Topics: blockchain, crypto, fireblocks, javascript, nodejs, sdk, typescript
- Language: TypeScript
- Homepage: https://docs.fireblocks.com/api/swagger-ui/
- Size: 1.17 MB
- Stars: 70
- Watchers: 21
- Forks: 67
- Open Issues: 46
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
## The Official Javascript & Typescript SDK for Fireblocks API
[![npm version](https://badge.fury.io/js/fireblocks-sdk.svg)](https://badge.fury.io/js/fireblocks-sdk)> The current version of the SDK has changed the minimum supported Node.js version from v12 to v16.
>
> Versions older than v16 are no longer maintained by the Node.js community and are considered EOL.### About
This repository contains the official Javascript & Typescript SDK for Fireblocks API.
For the complete API reference, go to [API reference](https://developers.fireblocks.com/reference/api-overview).## v4 Migration
Please read the [following guide](./docs/V4-MIGRATION.md) for migration.## Usage
#### Before You Begin
Make sure you have the credentials for Fireblocks API Services. Otherwise, please contact Fireblocks support for further instructions on how to obtain your API credentials.#### Requirements
- [Node.js](https://nodejs.org) v16 or higher.#### Installation
`npm install fireblocks-sdk --save`or
`yarn add fireblocks-sdk`
#### Importing Fireblocks SDK
JavaScript:
```javascript
const FireblocksSDK = require("fireblocks-sdk").FireblocksSDK;
const fireblocks = new FireblocksSDK(privateKey, apiKey);
```TypeScript:
```typescript
import { FireblocksSDK } from "fireblocks-sdk";
const fireblocks = new FireblocksSDK(privateKey, apiKey);
```You can also pass additional options:
```typescript
const baseUrl = "https://api.fireblocks.io";
const authProvider: IAuthProvider = { /* Custom implementation */ };
const fireblocks = new FireblocksSDK(privateKey, apiKey, baseUrl, authProvider, options);
```
The `options` argument has the following structure:
```typescript
interface SDKOptions {
/** HTTP request timeout */
timeoutInMs?: number;/** Proxy configurations */
proxy?: AxiosProxyConfig | false;/** Whether to remove platform from User-Agent header */
anonymousPlatform?: boolean;
/** Additional product identifier to be prepended to the User-Agent header */
userAgent?: string;/** TravelRule Provider options to initialize PII Client for PII encryption */
travelRuleOptions?: TravelRuleOptions;
}
```#### Axios Interceptor
You can provide the sdk options with an [axios response interceptor](https://axios-http.com/docs/interceptors):
```ts
new FireblocksSDK(privateKey, userId, serverAddress, undefined, {
customAxiosOptions: {
interceptors: {
response: {
onFulfilled: (response) => {
console.log(`Request ID: ${response.headers["x-request-id"]}`);
return response;
},
onRejected: (error) => {
console.log(`Request ID: ${error.response.headers["x-request-id"]}`);
throw error;
}
}
}
}
});
```#### Error Handling
The SDK throws `AxiosError` upon http errors for API requests.You can read more about axios error handling [here](https://axios-http.com/docs/handling_errors).
You can get more data on the Fireblocks error using the following fields:
- `error.response.data.code`: The Fireblocks error code, should be provided on support tickets
- `error.response.data.message`: Explanation of the Fireblocks error
- `error.response.headers['x-request-id']`: The request ID correlated to the API request, should be provided on support tickets / Github issues