neverrekt-kucoin
Version:
Kucoin API for NeverRekt
56 lines (55 loc) • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTimestamp = exports.getPath = exports.getSignature = exports.checkParameters = exports.getQueryString = void 0;
var crypto = require("crypto");
function getQueryString(params) {
var keys = Object.keys(params);
return !!keys.length
? "?" + keys
.map(function (k) { return encodeURIComponent(k) + "=" + encodeURIComponent(params[k]); })
.join("&")
: "";
}
exports.getQueryString = getQueryString;
function checkParameters(params, map) {
var unused = params
? (Object.keys(params) || []).filter(function (param) {
return (map.findIndex(function (item) {
return item.key === param;
}) === -1);
})
: [];
var missing = (map || [])
.map(function (item) {
return (!params && item.required) ||
(params && !params[item.key] && item.required)
? item.key
: undefined;
})
.filter(Boolean);
if (!!unused.length) {
console.warn("These are questionable parameters that may be unused: " + unused.join(", ") + ".");
}
if (!!missing.length) {
return "You are missing the following required parameters: " + missing.join(", ") + ".";
}
return false;
}
exports.checkParameters = checkParameters;
function getSignature(secret, path, queryString, timestamp, method) {
var strForSign = "" + timestamp + method + path + queryString;
var signatureResult = crypto
.createHmac("sha256", secret)
.update(strForSign)
.digest("base64");
return signatureResult;
}
exports.getSignature = getSignature;
function getPath(prefix, endpoint) {
return prefix + endpoint;
}
exports.getPath = getPath;
function getTimestamp() {
return Date.now() + "";
}
exports.getTimestamp = getTimestamp;