Skip to content

A universal JavaScript ECC digital signature and key utility package for Antelope based blockchains

License

Notifications You must be signed in to change notification settings

pur3miish/Antelope-ECC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

antelope ecc logo

Antelope ECC

NPM Package CI status License: MIT

A lightweight (~6 KB) universal JavaScript digital signature and cryptokey utilty package for Antelope based blockchains.

Features of package Antelope blokchain

  • Generate sep256k1 signatures (SIG_K1) .
  • Generate secp256k1 key pair (private and public keys).
  • Derive public key from private key.
  • Recover public key from siganture.
  • Create and recover private key mnemonic (BIP39).
  • Legacy key transformation utility functions.

Installation

For Node.js, to install antelope-ecc run:

npm i antelope-ecc

Examples

Signing a packed transaction.

import sign_packed_txn from "antelope-ecc/sign_packed_txn.js";

sign_packed_txn({
  chain_id: "2a02a0053…",
  transaction_header: "fa123232…",
  transaction_body: "fa45ffa2…",
  wif_private_key: "PVT_K1_…",
}).then(console.log);

The logged output will be SIG_K1_…

Sign a message digest.

import sign_txn from "antelope-ecc/sign_txn.js";
import crypto from "crypto";

sign_txn({
  hash: crypto
    .createHash("sha256")
    .update(Uint8Array.from([1, 2, 3, 4, 5]))
    .digest()
    .toString("hex"), // Uint8Array | string
  wif_private_key: "PVT_K1_43…",
}).then(console.log);

The logged output will be SIG_K1…

An example of how to create a pair keys.

import new_keys from "antelope-ecc/new_keys.js";

new_keys().then(console.log);

The logged output will be an object containing PUB_K1 and PVT_K1 wif keys.

Recover public key from signature.

import recover_public_key from "antelope-ecc/recover_public_key.js";

const hash = Uint8Array.from(
  crypto.createHash("sha256").update(Buffer.from("ff", "hex")).digest()
); // Data signed with private key

recover_public_key({
  signature: "SIG_K1_…",
  hash,
}).then(console.log);

The logged output will contain the public key “PUB_K1…” used to sign the hash.

Requirements

Supported runtime environments:

Exports

The npm package antelope-ecc features optimal JavaScript module design, It doesn’t have a main index module, so use deep imports from the ECMAScript modules that are exported via the package.json field exports: