import { createHmac } from 'crypto';
import fetch from 'node-fetch';
import * as qs from 'qs';
const accessKey = '<Your Access Key>';
const secretKey = '<Your Secret Key>';
(async () => {
// path 是請求路徑,例如/api/v3/info
// nonce 是以正整數表示的時間戳記,代表了從
Unix epoch 到當前時間所經過的毫秒數(ms)。
// nonce 與伺服器的時間差不得超過正負30秒,每個 nonce 只能使用一次。
// body 中其餘的參數請依據您的請求內容自行調整
const params = {
nonce: Date.now(),
// <Other parameters if needed...>
};
const paramsToBeSigned = {
...params,
path: '/api/v3/info',
};
const payload = Buffer.from(JSON.stringify(paramsToBeSigned)).toString('base64');
const signature = createHmac('sha256', secretKey).update(payload).digest('hex');
const response = await fetch(`https://max-api.maicoin.com/api/v3/info?${qs.stringify(params, {arrayFormat: 'brackets'})}`, {
method: 'GET',
headers: {
'X-MAX-ACCESSKEY': accessKey,
'X-MAX-PAYLOAD': payload,
'X-MAX-SIGNATURE': signature,
'Content-Type': 'application/json',
},
});
const data = await response.json();
console.log(data);
})();
(async () => {
const params = {
nonce: Date.now(),
market: 'btcusdt',
};
const paramsToBeSigned = {
...params,
path: '/api/v3/wallet/spot/orders',
};
const payload = Buffer.from(JSON.stringify(paramsToBeSigned)).toString('base64');
const signature = createHmac('sha256', secretKey).update(payload).digest('hex');
const response = await fetch('https://max-api.maicoin.com/api/v3/wallet/spot/orders', {
method: 'DELETE',
body: JSON.stringify(params),
headers: {
'X-MAX-ACCESSKEY': accessKey,
'X-MAX-PAYLOAD': payload,
'X-MAX-SIGNATURE': signature,
'Content-Type': 'application/json',
},
});
const data = await response.json();
console.log(data);
})();