EOSIO ECC
A lightweight (~6 KB) universal JavaScript Antelope and EOSIO digital signature and cryptokey utilty package.
Installation
For Node.js, to install eosio-ecc
run:
npm i eosio-ecc
For Deno.js, to use eosio_ecc Add these import paths to your deno.json
file:
{
"imports": {
"universal-sha256-js/": "https://deno.land/x/sha256js/",
"universal-hmac-sha256-js/": "https://deno.land/x/hmacsha256/",
"universal-hmac-sha256-js/hmac-sha256-node.mjs": "https://deno.land/x/hmacsha256/hmac-sha256-deno.mjs",
"base58-js/": "https://deno.land/x/base58/",
"isomorphic-secp256k1-js/": "https://deno.land/x/secp256k1js/",
"ripemd160-js/": "https://deno.land/x/ripemd160js@v2.0.3/"
}
}
Examples
Signing a packed transaction.
import sign_packed_txn from "eosio-ecc/sign_packed_txn.mjs";
sign_packed_txn({
chain_id: "2a02a0053…",
transaction_header: "fa123232…",
transaction_body: "fa45ffa2…",
wif_private_key: "5f…",
}).then(console.log);
The logged output will be SIG_K1_…
An example of how to create a pair keys.
import new_keys from "eosio-ecc/new_keys.mjs";
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 "eosio-ecc/recover_public_key.mjs";
recover_public_key({
signature: "SIG_K1_…",
data: "ff",
}).then(console.log);
The logged output will be PUB_K1….
Ways to require in CJS
Note
As this package is ESM if you need to require it in a Common JS package, then you can require like this:
(async function () {
const { default: new_keys } = await import("eosio-ecc/new_keys.mjs");
const key_pair = await new_keys();
console.log(key_pair);
})();
the logged output was: { public_key: PUB_K1_6…, private_key: PVT_K1_ge…}
Requirements
Supported runtime environments:
Exports
The npm package eosio-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
: