sof-sig-util

A few useful functions for signing sophon data

Usage no npm install needed!

<script type="module">
  import sofSigUtil from 'https://cdn.skypack.dev/sof-sig-util';
</script>

README

Sof-Sig-Util CircleCI

Greenkeeper badge

A small collection of sophon signing functions.

You can find usage examples here

Available on NPM

Supported Signing Methods

Currently there is only one supported signing protocol. More will be added as standardized.

Installation

npm install sof-sig-util --save

Methods

concatSig(v, r, s)

All three arguments should be provided as buffers.

Returns a continuous, hex-prefixed hex value for the signature, suitable for inclusion in a JSON transaction's data field.

normalize(address)

Takes an address of either upper or lower case, with or without a hex prefix, and returns an all-lowercase, hex-prefixed address, suitable for submitting to an sophon provider.

personalSign (privateKeyBuffer, msgParams)

msgParams should have a data key that is hex-encoded data to sign.

Returns the prefixed signature expected for calls to sof.personalSign.

recoverPersonalSignature (msgParams)

msgParams should have a data key that is hex-encoded data unsigned, and a sig key that is hex-encoded and already signed.

Returns a hex-encoded sender address.

signTypedData (privateKeyBuffer, msgParams)

Signs typed data as per SIP712.

Data should be under data key of msgParams. The method returns prefixed signature.

recoverTypedSignature ({data, sig})

Return address of a signer that did signTypedData.

Expects the same data that were used for signing. sig is a prefixed signature.

typedSignatureHash (typedData)

Return hex-encoded hash of typed data params according to SIP712 schema.

extractPublicKey (msgParams)

msgParams should have a data key that is hex-encoded data unsigned, and a sig key that is hex-encoded and already signed.

Returns a hex-encoded public key.