tlsn-js
v0.1.0-alpha.9.1
Published
![MIT licensed][mit-badge] ![Apache licensed][apache-badge]
Downloads
8,213
Readme
tlsn-js
NPM Modules for proving and verifying using TLSNotary in the browser.
The prover requires a notary-server and a websocket proxy.
[!IMPORTANT] The primary purpose of
tlsn-js
is to support the development of the TLSNotary browser extension.
Please do not treat this as a public API (yet).
[!IMPORTANT]
tlsn-js
is developed for the usage of TLSNotary in the Browser. This module does not work innodejs
.
License
This repository is licensed under either of
at your option.
Examples
tlsn-js
can be used in many different modes, depending on your use case.
The ./demo
folder contains three demos of tlsn-js
:
react-ts-webpack
: create an attestation with a Notary and render the result.interactive-demo
: prove data interactively to a Verifier.web-to-web-p2p
: prove data between two peers, in the browser.
Running a local websocket proxy
In the demos, we attest data from the https://swapi.dev
website. Because the browser does not allow for TCP connections, you need to set up a websocket proxy:
Install wstcp:
| Tool | Command | | ------ | ----------------------------- | | cargo |
cargo install wstcp
| | brew |brew install wstcp
| | source | https://github.com/sile/wstcp |Run a websocket proxy for
https://swapi.dev
:
wstcp --bind-addr 127.0.0.1:55688 swapi.dev:443
Install as NPM Package
npm install tlsn-js
Development
This library is a JS wrapper for tlsn-wasm
.
To work on tlsn-wasm
and tlsn-js
at the same time, replace the "tlsn-wasm" dependency in package.json
with:
"tlsn-wasm": "./tlsn-wasm/pkg"
and run npm run build:wasm
to build tlsn-wasm
locally.
Next, run:
npm install
npm run test
Note: if you want to switch back to a build with the version from npm, make sure to reset/remove package-lock.json
, or it will keep using the local link.
Build for NPM
npm install
npm run build
Adding a new test
- Create a new
new-test.spec.ts
file in thetest/
directory. - Add your spec file to the entry object in
webpack.web.dev.config.js
. - Add a new
div
block totest/test.ejs
like this:<div>Testing "new-test":<div id="new-test"></div></div>
. Thediv
id must be the same as the filename.