with Phemex and Schedule?
import crypto from "crypto";
import { axios } from "@pipedream/platform";
// Helper function to generate HMAC SHA256 signature
function generateSignature(secret, path, queryString, expiry, body = "") {
// Concatenate according to Phemex rules: Path + QueryString + Expiry + Body
const signedString = `${path}${queryString}${expiry}${body}`;
return crypto.createHmac("sha256", secret).update(signedString).digest("hex");
}
export default defineComponent({
props: {
phemex: {
type: "app",
app: "phemex",
}
},
async run({ steps, $ }) {
const path = "/accounts/accountPositions"; //Your Phemex API URL Path, QueryString, and body as needed
const queryString = "currency=BTC";
const body = ""; // For GET requests, no body
// Expiry: current Unix time + 60 seconds
const expiry = Math.floor(Date.now() / 1000) + 60;
// Generate signature
const signature = generateSignature(
this.phemex.$auth.api_secret,
path,
queryString,
expiry,
body
);
// Build headers
const headers = {
"x-phemex-access-token": this.phemex.$auth.api_key,
"x-phemex-request-expiry": expiry,
"x-phemex-request-signature": signature,
};
// Construct full URL
const url = `${this.phemex.$auth.api_url}${path}?${queryString}`;
// Make request
return await axios($, {
method: "GET", //Change the HTTP method accordingly, add body if needed
url,
headers,
});
},
})
The Schedule app in Pipedream is a powerful tool that allows you to trigger workflows at regular intervals, ranging from every minute to once a year. This enables the automation of repetitive tasks and the scheduling of actions to occur without manual intervention. By leveraging this API, you can execute code, run integrations, and process data on a reliable schedule, all within Pipedream's serverless environment.