1.0.3 ā€¢ Published 1 year ago

@diagonal-finance/crypto v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago
Diagonal crypto is a light weight library which allows developers to easily sign various diagonal messages.

ā™œ Jest tests & common test coverage for all packages (npm test)\ ā™ž ESLint & Prettier to keep the code neat and well organized (npm run format & npm run lint)\


šŸ“¦ Package

šŸ›  Installation

ESMModule:

npm install @diagonal-finance/crypto

šŸ“œ Usage

ESModule:

Create charge digest:

import {
    createChargeDigest,
    CreateChargeDigestInput,
} from "@diagonal-finance/crypto";

const chargeDigestInput: CreateChargeDigestInput = {
    id: "charge_17e8e79988359da2be9678f0b9936671c2031d0724abab99",
    source_address: "0x4632Ea8C867aaB1c93bf4B21b8FeD4958d111Cc0",
    token_address: "0x07865c6e87b9f70255377e024ace6630c1eaa37f",
    token_amount: "10000000",
    organization_address: "0xf78eA64621d8e2E7fCafdbc7cEd53b20edA526a0",
    chain_id: 1,
};

const chargeDigest = createChargeDigest(chargeDigestInput);

Sign digest:

You can use this snippet to sign the digest when your signing service can load the signing key in memory (ex. via env vars, via a secrets managing service), and you are not using an external signing service (ex. KMS) where the signing key is unknown.

import {
    createChargeDigest,
    signDigest,
    CreateChargeDigestInput,
    ECDSASignature,
} from "@diagonal-finance/crypto";

const chargeDigestInput: CreateChargeDigestInput = {
    id: "charge_17e8e79988359da2be9678f0b9936671c2031d0724abab99",
    source_address: "0x4632Ea8C867aaB1c93bf4B21b8FeD4958d111Cc0",
    token_address: "0x07865c6e87b9f70255377e024ace6630c1eaa37f",
    token_amount: "10000000",
    organization_address: "0xf78eA64621d8e2E7fCafdbc7cEd53b20edA526a0",
    chain_id: 1,
};

const chargeDigest: string = createChargeDigest(chargeDigestInput);

const privateKey = process.env.SIGNER_PRIVATE_KEY;

const signature: ECDSASignature = signDigest(chargeDigest, privateKey);

šŸ›  Development

Clone this repository and install the dependencies:

git clone https://github.com/diagonal-finance/crypto.git
cd crypto && npm i

šŸ“œ Usage

npm run lint # Syntax check with ESLint (yarn lint:fix to fix errors).
npm run format # Syntax check with Prettier (yarn prettier:fix to fix errors).
npm test # Run tests (with common coverage).
npm run build # Create a JS build.
npm run publish # Publish a package on npm.