kalshi-typescript
Version:
Official TypeScript SDK for the Kalshi API
34 lines (33 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.KalshiAuth = void 0;
const crypto = require("crypto");
class KalshiAuth {
constructor(apiKey, privateKeyPem) {
this.apiKey = apiKey;
this.privateKeyPem = privateKeyPem;
}
signPssText(text) {
const sign = crypto.createSign('RSA-SHA256');
sign.update(text);
sign.end();
const signature = sign.sign({
key: this.privateKeyPem,
padding: crypto.constants.RSA_PKCS1_PSS_PADDING,
saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST,
});
return signature.toString('base64');
}
generateAuthHeaders(method, path) {
const currentTimeMilliseconds = Date.now();
const timestampStr = currentTimeMilliseconds.toString();
const msgString = timestampStr + method + path;
const sig = this.signPssText(msgString);
return {
'KALSHI-ACCESS-KEY': this.apiKey,
'KALSHI-ACCESS-SIGNATURE': sig,
'KALSHI-ACCESS-TIMESTAMP': timestampStr
};
}
}
exports.KalshiAuth = KalshiAuth;