catch-21 / cardano-js-sdk

:construction: Work in progress: JavaScript SDK for interacting with Cardano, providing various key management options, soon to be including support for popular hardware wallets

Home Page:https://input-output-hk.github.io/cardano-js-sdk/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cardano JS SDK

CI


Overview

A suite of TypeScript packages suitable for both Node.js and browser-based development.

Cardano Provider Implementations

ℹ️ Looking to use a Cardano service not listed here? Let us know!

Webpack

You may use the following config when bundling this SDK with Webpack:

const { IgnorePlugin, ProvidePlugin } = require('webpack');
{
  plugins: [
    // see https://www.npmjs.com/package/bip39 README
    new IgnorePlugin(/^\.\/wordlists\/(?!english)/, /bip39\/src$/),
  ],
  experiments: {
    // Requires code splitting to work.
    // Must dynamically `import()` a chunk that imports '@cardano-sdk/*'.
    syncWebAssembly: true
  }
}

Additionally, for browser builds:

const { NormalModuleReplacementPlugin } = require('webpack');
{
  resolve: {
    fallback: {
      // Node.js polyfills. May want to install as explicit dependencies.
      stream: require.resolve('readable-stream'),
      buffer: require.resolve('buffer'),
    }
  },
  plugins: [
    // install "browser" version packages of these dependencies first
    new NormalModuleReplacementPlugin(
      /@emurgo\/cardano-serialization-lib-nodejs/,
      '@emurgo/cardano-serialization-lib-browser'
    ),
    new NormalModuleReplacementPlugin(
      /@emurgo\/cardano-message-signing-nodejs/,
      '@emurgo/cardano-message-signing-browser'
    )
  ]
}

Testing

Development

A Yarn Workspace maintaining a single version across all packages.

System Requirements

  • Docker 17.12.0+
  • Docker Compose

Install and Build

yarn install && \
yarn build

Run Tests

yarn testnet:up

In another terminal

yarn test

or

yarn test:debug

Lint

yarn lint

Cleanup

yarn cleanup

Distribute

Pack

./scripts/pack.sh

Publish to npm.org

./scripts/publish.sh

Generate Docs

yarn docs

Maintenance

Bump Version

yarn bump-version

Then update the sibling dependencies manually.

New package checklist

  1. Extend packageMap in .versionrc.js
  2. Extend pack.sh
  3. Extend publish.sh

📖 Documentation

About

:construction: Work in progress: JavaScript SDK for interacting with Cardano, providing various key management options, soon to be including support for popular hardware wallets

https://input-output-hk.github.io/cardano-js-sdk/

License:Apache License 2.0


Languages

Language:TypeScript 98.5%Language:JavaScript 1.3%Language:Shell 0.3%