The official JavaScript client and SDK for Project DARC (Decentralized Autonomous Regulated Company), and the compiler and runtime for By-Law Script.
If you are using Node.js, you can install the package using npm:
npm install darcjs
or yarn:
yarn add darcjs
or pnpm:
pnpm add darcjs
import {darcjs} from 'darcjs';
import {ethers} from 'ethers';
// Your By-law Script
const byLawScript = `
withdraw_cash_to(
[addr4, addr5],
[10000000, 10000000]
); `;
// Your JSON RPC provider from your blockchain
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/your-infura-project-id');
// Construct the signer via Wallet class and private key
const signer = new ethers.Wallet('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80', provider);
// deploy DARC
const darc_contract_address = await darcjs.deployDARC(
DARC_VERSION.Test, signer
);
// acceess the deployed DARC via the DARC contract address
const myDeployedDARC = new darcjs.DARC({
address: darc_contract_address,
wallet: signer,
version: DARC_VERSION.Test,
});
// Compile the code snippet above
const program = darcjs.transpile(byLawScript);
// Run the program on your deployed DARC
const result = await myDeployedDARC.entrance(program);
// Or you can just access to the DARC contract with address and provider, without signer
const myDeployedDARC_readOnly = new darcjs.DARC({
address: darc_contract_address,
provider: provider,
version: DARC_VERSION.Test,
});
// Read information from the DARC
const memberList = await myDARC_readOnly.getMemberList();
Before running the test, you need to start a Hardhat Network in your neighbour folder darc-protocol
cd ../darc-protocol
npx hardhat node
Then, you can run the test in darc-js
folder. Run below command in another terminal.
pnpm run test