cfx-sig-util

A few useful functions for signing ethereum data

Usage no npm install needed!

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

README

Cfx-Sig-Util CircleCI

A small collection of ethereum signing functions.

You can find usage examples here

Available on NPM

Installation

npm install cfx-sig-util --save
# or
yarn add cfx-sig-util

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 ethereum 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 eth.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 an early draft of EIP 712.

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

signTypedData_v3 (privateKeyBuffer, msgParams)

Signs typed data as per the published version of EIP 712.

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

signTypedData_v4 (privateKeyBuffer, msgParams)

Signs typed data as per an extension of the published version of EIP 712.

This extension adds support for arrays and recursive data types.

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.

recoverTypedSignature_V4 ({data, sig})

Return address of a signer that did signTypedData as per an extension of the published version of EIP 712.

This extension adds support for arrays and recursive data types.

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 EIP712 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.