UNPKG

kalshi-typescript

Version:

Official TypeScript SDK for the Kalshi API

34 lines (33 loc) 1.14 kB
"use strict"; 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;