@collectivexyz/governance

Posted on Tue 13 December 2022 in tech

@collectivexyz just published @collectivexyz/governance

Install from command line:

 $ npm install @collectivexyz/governance

Install using yarn:

 $ yarn add @collectivexyz/governance

Usage

Simple example to connect to a governance contract.

import { EthWallet, Governance, GovernanceBuilder, CollectiveGovernance } from '@collectivexyz/governance';
import Web3 from 'web3';

export async function connect(): Promise<Governance> {
  try {
    const rpcUrl = 'wss://localhost:8545';
    const privateKey = 'XXXXXXXXXXXX';
    const abiPath = 'node_modules/@collectivexyz/governance/abi';
    const builderAddress = '0xd64f3Db037B263D54561a2cc9885Db370B51E354';
    const buildTransaction = '0x0f7f3e13055547b8b6ac5b28285abc960266c6297094ab451ca9de318cbf5906';    
    const maximumGas = 600000;

    const web3 = new Web3(rpcUrl);

    const wallet = new EthWallet(privateKey, web3);
    wallet.connect();
    const builder = new GovernanceBuilder(abiPath, builderAddress, web3, wallet, maximumGas);
    const contractAddress = await builder.discoverContract(buildTransaction);
    const governance = new CollectiveGovernance(abiPath, contractAddress.governanceAddress, web3, wallet, maximumGas);
    const name = await governance.name();
    const version = await governance.version();

    return governance;
  } catch (error) {
    throw new Error('Run failed');
  }
}

More information on GitHub