UNPKG

@znode/sign

Version:
34 lines (33 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.signWs = exports.sign = void 0; const hmac_1 = require("@zodash/hmac"); const qs = require("@zcorky/query-string"); function sign(data, secret) { const _params = { ...data.params, timestamp: data.timestamp, api_key: data.apiKey, }; // alphabet order const _params_alphabetical = Object.keys(_params) .sort((a, b) => a.localeCompare(b)) .reduce((all, key) => { all[key] = _params[key]; return all; }, {}); // join with urlencoded const text = qs.stringify(_params_alphabetical); // console.log('text:', text); // console.log('raw:', require('crypto').createHmac('sha256', secret).update(text).digest('hex'), 'secret:', secret); return hmac_1.hmacSHA256(text, secret); } exports.sign = sign; function signWs(timestamp, secret) { const text = `GET/realtime${timestamp}`; return hmac_1.hmacSHA256(text, secret); } exports.signWs = signWs; const _sign = sign; _sign.ws = signWs; exports.default = _sign;