@diagonal-finance/crypto
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

Diagonal Crypto

Library for convenient signing of various diagonal signatures.

Github license GitHub Workflow test Coveralls Linter eslint Code style prettier

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

Package Version Downloads Size
@diagonal-finance/crypto (docs) NPM version Downloads npm bundle size (scoped)

🛠 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.

Readme

Keywords

none

Package Sidebar

Install

npm i @diagonal-finance/crypto

Weekly Downloads

1

Version

1.0.3

License

MIT

Unpacked Size

1.8 MB

Total Files

29

Last publish

Collaborators

  • njofce
  • smakosh
  • gabriel.diagonal.finance
  • bdim1