Skip to content

A collection of functions for signing and verifying data with Ethereum keys.

License

Notifications You must be signed in to change notification settings

zapstash/eth-sig-util

 
 

Repository files navigation

Eth-Sig-Util CircleCI

A small collection of ethereum signing functions.

You can find usage examples here

Available on NPM

Installation

npm install eth-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 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.

Running tests

yarn test

About

A collection of functions for signing and verifying data with Ethereum keys.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 98.6%
  • Other 1.4%