Leozhang404 / filecoin-signing-tools

Filecoin Signing Library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Filecoin Signing Tools

License CircleCI npm version

You can find more information in the Documentation Site

  • Rust Native Library

    • Secp256k1
    • Multisig (Work in progress)
    • BLS
    • Filecoin transactions (CBOR <> JSON serialization)
  • WASM Library

    • Secp256k1
    • Multisig (Work in progress)
    • BLS
    • Filecoin transactions (CBOR <> JSON serialization)
  • JSON RPC Server

    • Focus: Exchange integration
    • Exposes most of the functions available in the signing library
    • Lotus integration:
      • nonce caching
      • determine testnet vs mainnet
      • retrieve nonce
      • submit signed transaction
      • retrieve tx status
  • Examples

    Caller Callee Status
    Node.js JSONRPC Service Ready ✔️ Link
    Browser WASM Ready ✔️ Link
    Node.js / Mocha WASM Ready ✔️ Link
    C Rust Ready ✔️ Link
    C++ Rust Ready ✔️ Link
    Java Rust Ready ✔️ Link
    Kotlin Rust Ready ✔️ Link
    Go Rust Ready ✔️ Link
    Objective-C Rust Ready ✔️ Link
    Swift Rust Ready ✔️ Link
    Flutter Rust Ready ✔️ Link
    React Native Rust Planned ⏳ Soon

Running tests and examples

TIP: A good place to look for reproducible steps is the circleci configuration of this project

Installing dependencies

You will need rust installed.

# Install wasm-pack in your system
$ make install_wasmpack
# Install some utilitary tools
$ make install_deps_rust

Note: wasm parck are required if you want to use the wasm version of the lib.

Rust

cargo test -p filecoin-signer

Service

To run these tests, you need to set two environment variables first so tests can reach a Lotus node:

LOTUS_SECRET_URL some_url
LOTUS_SECRET_JWT some_jwt

Then you can run:

cargo test -p filecoin-signer

WASM

Build WASM and link it locally so examples are linked to the local version:

make build_npm

After this, you can run the following tests / examples:

Command Description
make test_npm_unit Unit tests
make test_npm_node Node integration tests
make test_npm_browser Browser integration tests

About

Filecoin Signing Library

License:Apache License 2.0


Languages

Language:Rust 86.3%Language:JavaScript 8.4%Language:Java 1.4%Language:Makefile 1.3%Language:Shell 1.0%Language:Dart 0.8%Language:Ruby 0.4%Language:Objective-C 0.3%Language:Swift 0.2%