Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

c-kzg

Package Overview
Dependencies
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

c-kzg

NodeJS bindings for C-KZG

  • 1.0.7
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
595
decreased by-17.36%
Maintainers
1
Weekly downloads
 
Created
Source

This package wraps the c-kzg C code in C++ NAPI bindings which allow it to be imported into a NodeJS program.

Spec: https://github.com/ethereum/consensus-specs/blob/dev/specs/eip4844/polynomial-commitments.md

Usage

Install this library with

yarn add c-kzg

Import from it like any other library

import {
  KZGCommitment,
  blobToKzgCommitment,
  verifyAggregateKzgProof,
  loadTrustedSetup,
  transformTrustedSetupJSON,
} from "c-kzg";

Requirements

The C and C++ code is compiled by node-gyp on installation. Your environment will need

  • A compiler like g++ or clang
  • make
  • python3

Contributing

This directory contains the code necessary to generate NodeJS bindings for C-KZG.

The bindings file has the following interface:


  loadTrustedSetup: (filePath: string) => SetupHandle;

  freeTrustedSetup: (setupHandle: SetupHandle) => void;

  blobToKzgCommitment: (blob: Blob, setupHandle: SetupHandle) => KZGCommitment;

  computeAggregateKzgProof: (
    blobs: Blob[],
    setupHandle: SetupHandle
  ) => KZGProof;

  verifyAggregateKzgProof: (
    blobs: Blob[],
    expectedKzgCommitments: KZGCommitment[],
    kzgAggregatedProof: KZGProof,
    setupHandle: SetupHandle
  ) => boolean;

But this library wraps it in module with manages the setupHandle internally.

First, npm install -g yarn if you don't have it.

Install the blst submodule

git submodule update --init

Build blst and c_kzg_4844.c

cd src && make blst lib

Generate NodeJS bindings and run the TypeScript tests against them

cd ../bindings/node.js && yarn install && make test

After doing this once, you can re-build (if necessary) and re-run the tests with

make build test

After making changes, regenerate the distributable JS and type defs

make bundle

FAQs

Package last updated on 22 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc