Running Code

circle-info

To install the Dvr Module Client lib separately, please refer to this section Installing the Dvr Module Client lib

System Requirements

  1. Ubuntu version 20 or higher, WSL (Windows Subsystem for Linux) is also supported.

circle-exclamation

Installing WSL for Windows users

This command will enable the necessary features to run WSL and install the Ubuntu distribution of Linux.

circle-info

If your underlying system, like Ubuntu, is already Linux-based, you can skip this step.

circle-exclamation
  1. Open PowerShell or Windows Command Prompt in administrator mode by right-clicking and selecting "Run as administrator"

  2. Run the command below

wsl --install
  1. Restart your machine

  2. Once you have installed WSL, you will need to create a user account and password for your newly installed Linux distribution.

circle-info

The above command only works if WSL is not installed at all, if you run wsl --install and see the WSL help text, please try running wsl --list --online to see a list of available distros and run wsl --install -d <DistroName> to install a distro. To uninstall WSL, see Uninstall legacy version of WSLarrow-up-right or unregister or uninstall a Linux distributionarrow-up-right.

circle-info

If you have installed WSL before, you can login using the command wsl

circle-info

For a complete WSL installation guide, refer to this documentationarrow-up-right.

Installing Node.js 18.17.0 via NVM

Installing NVM

nvm allows you to quickly install and use different versions of node via the command line.

  1. Run the command below

  1. Restart your terminal session

Installing Node 18.17.0 and NPM via NVM

To check whether Node has been installed properly, run the commands below:

circle-info

Complete NVM documentation can be found herearrow-up-right.

Installing Git

To check whether Node has been installed properly, run the commands below:

circle-info

Complete Git documentation can be found herearrow-up-right.


Installing the SDK

circle-info

If you wish to explore our demo application, feel free to skip this installation step, as it has already been completed in the demo application.

If you want to use our zkpass-client-ts library on your own project / outside the demo application, you can follow this step

  1. Set the npm registry configuration to gdp-labs registry.

  1. Install the zkpass-client library for typescript

circle-info

For NextJS projects with App Routing, several configurations have to be made in next.config.js file:

circle-info

The serverComponentsExternalPackages configuration ensures that the package @zkpass/dvr-client-ts is excluded from NextJS' bundling and compilation process, allowing it to be imported directly from node_modules. As a result, remember to include the node_modules directory in your production build. See NextJS Deployment Guidearrow-up-right.

Running CLI Demo

The demo application will run in a CLI and requires 2 parameters: DVR and user data. Please review zkPass key conceptsarrow-up-right to have better understanding of the use case.

Cloning Demo

To try our Typescript CLI demo, you can follow these steps

  1. Clone demo repository

  1. Go to Typescript CLI demo directory (Let's assume this is our root directory for steps below)

Running Demo

  1. Install packages

  1. Run Dewi demo

It will run the demo using predefined user data and DVR for Dewi. The expected query result is "false".

Expected result :

  1. Run Ramana demo

It will run the demo using predefined user data and DVR for Ramana. The expected query result is "true".

Expected result :

  1. Run Jane demo

It will run the demo using predefined user data and DVR for Jane. The expected query result is "true".

Expected result :

  1. Run demo with custom data

You can run the demo using custom data. Examples for user data and DVR can be found in rust/test/data.

Example running demo using custom data :

Expected result :

  1. Run demo with multiple user data

You can also run the demo using multiple user data. Examples for multiple user data and DVR can be found in typescript/test/data/multiple.

Example running demo using multiple data:

Last updated