Files
xahau.js/packages/ripple-keypairs
Hans Bergren a6b4308a49 Replace TSLint with ESLint + Prettier (#71)
* Replace TSLint with ESLint + Prettier

TSLint is deprecated, and ESLint is now officially supported by
TypeScript.

Additionally, Prettier is the industry standard for auto-formatting
JS/TS code. That lets code reviews be about content rather than style.

The `.eslintrc.js` file contains comments for the reasoning behind every
configuration, so feel free to take a look at that as well.

* Run src/ through Prettier

* Add Mocha support for ESLint

We do not actually lint Mocha files right now because they aren't in TS,
but moving forward, this will give us better linting rules for our tests
2020-01-17 15:55:05 -05:00
..
2015-09-23 14:40:56 -07:00
2019-10-17 17:03:01 -07:00
2017-12-03 14:05:33 -08:00
2020-01-14 13:27:36 -05:00
2019-01-22 23:23:13 -08:00

ripple-keypairs NPM Build Status

An implementation of ripple keypairs & wallet generation using elliptic which supports rfc6979 and eddsa deterministic signatures.

NPM

API Methods

generateSeed({entropy?: Array<integer>, algorithm?: string}) -> string

Generate a seed that can be used to generate keypairs. Entropy can be provided as an array of bytes expressed as integers in the range 0-255. If provided, it must be at least 16 bytes long. If not provided, entropy will be automatically generated. The "algorithm" defaults to "ecdsa-secp256k1", but can also be set to "ed25519". The result is a seed encoded in base58, starting with "s".

deriveKeypair(seed: string) -> {privateKey: string, publicKey: string}

Derive a public and private key from a seed. The keys are represented as 33-byte hexadecimal strings.

sign(messageHex: string, privateKey: string) -> string

Sign an arbitrary hex-encoded message with a private key. Returns the signature as a hexadecimal string.

verify(messageHex: string, signature: string, publicKey: string) -> boolean

Verify a signature for a given hex-encoded message and public key. Returns true if the signature is valid, false otherwise.

deriveAddress(publicKey: string) -> string

Derive a Ripple address from a public key.

deriveNodeAddress(publicKey: string) -> string

Derive a node address from a public key.

Generate a random Ripple address

const seed = generateSeed();
const keypair = deriveKeypair(seed);
const address = deriveAddress(keypair.publicKey);