UNPKG

kalshi-typescript

Version:
30 lines (29 loc) 1.01 kB
import * as crypto from 'crypto'; export 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 }; } }