import { axios } from "@pipedream/platform";
import crypto from "crypto";
export default defineComponent({
props: {
bitget: {
type: "app",
app: "bitget",
}
},
async run({ steps, $ }) {
function sign(message, secretKey) {
const mac = crypto.createHmac('sha256', secretKey);
mac.update(message, 'utf8');
const digest = mac.digest();
return Buffer.from(digest).toString('base64');
}
function preHash(timestamp, method, requestPath, body) {
return timestamp.toString() + method.toUpperCase() + requestPath + body;
}
const emptyBody = "";
const timestamp = Math.round(new Date());
const requestPath = "/api/v2/mix/account/account?symbol=btcusdt&productType=USDT-FUTURES&marginCoin=usdt";
const getSignResult = sign(preHash(timestamp, "GET", requestPath, emptyBody), this.bitget.$auth.secret_key);
return await axios($, {
url: `https://api.bitget.com${requestPath}`,
method: "GET",
headers: {
"ACCESS-KEY": this.bitget.$auth.api_key,
"ACCESS-SIGN": getSignResult,
"ACCESS-PASSPHRASE": this.bitget.$auth.secret_passphrase,
"ACCESS-TIMESTAMP": timestamp,
"locale": "en-US",
"Content-Type": "application/json"
}
})
},
})
Bitget uses API keys for authentication. When you connect your Bitget account, Pipedream securely stores the keys so you can easily authenticate to Bitget APIs in both code and no-code steps.