with BitMEX and Node?
Write custom Node.js code and use any of the 400k+ npm packages available. Refer to the Pipedream Node docs to learn more.
import crypto from "crypto";
import { axios } from "@pipedream/platform";
export default defineComponent({
props: {
bitmex: {
type: "app",
app: "bitmex",
}
},
async run({ steps, $ }) {
// Set verb, path, and data as needed
const verb = "GET";
const path = "/api/v1/user";
const expires = Math.floor(Date.now() / 1000) + 60; // UNIX timestamp in seconds
const data = ""; // No body for GET
// Function to generate signature
function generateSignature(apiSecret, verb, path, expires, data) {
const message = verb + path + expires + data;
return crypto
.createHmac("sha256", apiSecret)
.update(message)
.digest("hex");
}
// Build headers
const signature = generateSignature(
this.bitmex.$auth.api_secret,
verb,
path,
expires,
data
);
const headers = {
"api-key": this.bitmex.$auth.api_key,
"api-expires": expires,
"api-signature": signature,
};
// Perform request
return await axios($, {
method: verb,
url: `${this.bitmex.$auth.api_url}${path}`,
headers,
});
},
})Develop, run and deploy your Node.js code in Pipedream workflows, using it between no-code steps, with connected accounts, or integrate Data Stores and File Stores
This includes installing NPM packages, within your code without having to manage a package.json file or running npm install.
Below is an example of installing the axios package in a Pipedream Node.js code step. Pipedream imports the axios package, performs the API request, and shares the response with subsequent workflow steps:
// To use previous step data, pass the `steps` object to the run() function
export default defineComponent({
async run({ steps, $ }) {
// Return data to use it in future steps
return steps.trigger.event
},
})