@gateway.fm/gtw-dvf-client-js
Version:
DVF client js lib with gateway.fm rpc endpoints
27 lines (23 loc) • 660 B
JavaScript
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 })
}
}