UNPKG

@gateway.fm/gtw-dvf-client-js

Version:

DVF client js lib with gateway.fm rpc endpoints

27 lines (23 loc) 660 B
const DVFError = require('../../lib/dvf/DVFError') const sw = require('starkware_crypto') const sigKeysToString = sig => ({ r: sig.r.toString(16), s: sig.s.toString(16), recoveryParam: sig.recoveryParam }) module.exports = (dvf, tradingKey, nonce) => { if (!tradingKey) { throw new Error('tradingKey is required') } if (!nonce) { throw new Error('nonce is required') } try { const {starkKeyPair} = dvf.stark.createKeyPair(tradingKey) return sigKeysToString( (dvf.sw || sw).ec.sign(nonce, starkKeyPair, {canonical: true}) ) } catch (error) { throw new DVFError('ERR_CREATING_STARK_SIGNATURE', { error }) } }