First-time contributors can find complete instructions in the Multi-Signature Tutorial.
The steps below are a quick start if you have already set up your development environment, the casper node, and the nctl testing tool.
The JS client code expects a compiled WASM file in the contract folder and a local network called casper-net-1.
To compile the WASM file, use these commands:
cd keys-manager
make prepare
make build-contractSet up nctl to interact and deploy to a local network.
You need to set certain environment variables in an .env file in the client folder.
You need to set the minimum configuration for your client to communicate with the network:
- The
BASE_KEY_PATHfor the absolute path to your faucet account - The
NODE_URLfor the first node in your local network
Your .env file will look like this (replace <ENTER_YOUR_PATH> with the absolute path of your local drive, because the relative path does not work in this context):
BASE_KEY_PATH=<ENTER_YOUR_PATH>/casper-node/utils/nctl/assets/net-1/faucet/
NODE_URL=http://localhost:11101/rpcIf you want to customize your setup further, you can set other optional environment variables described below.
WASM_PATH=... # optional, defaults to ../contract/target/wasm32-unknown-unknown/release/keys-manager.wasm
NETWORK_NAME=... # optional, defaults to casper-net-1
FUND_AMOUNT=10000000000000 # defaults to 10000000000000 = 10000CSPR
PAYMENT_AMOUNT=100000000000 # defaults to 100000000000 = 100CSPR
TRANSFER_AMOUNT=2500000000 # defaults to 2500000000 = 2.5CSPRYou can also provide a custom .env path by running this command:
npm run start:atomic dotenv_config_path=./example-env-fileTo install the client, run npm install in the client folder.
cd client
npm installYou will run an example scenario with the following command where three additional accounts will be added to the main account. You will need two out of four accounts to perform a deploy. You will need three out of four accounts to add a new account. Run this command to try out this example:
npm run start:allIn a second example scenario, two additional accounts will be added to the main account to perform deploys, but they will not be able to add another account. Run this command for this example:
npm run start:atomicTo run a script in interactive mode, just add interactive to the above commands.