@daohaus/contract-utils
TypeScript icon, indicating that this package has built-in type declarations

0.5.5 • Public • Published

@daohaus/contract-utils

The contract-utils package consists of TypeScript wrappers for our primary contracts. While you will read state data from moloch-v3-data, contract-utils equips you with instances of the contract and access to a set of helpers for making function calls and writing data to the contracts.

It utilizes TypeChain for type generation.

Usage

Installation

yarn add @daohaus/profile-data

Requirements

This packages uses ethers.js providers and rpc endpoints create the connection to the blockchain and contract. You should provide an ether.js provider.

Examples

How to init a contract and make a function call

import { MolochV3Contract } from '@daohaus/contract-utils';

const molochV3 = MolochV3Contract.create({
  address: '0x0somedaoaddress',
  provider: new ethers.providers.JsonRpcProvider('https:///someProviderUrl.com'),
});

molochV3.sponsorProposal('1');

How to summon a DAO

TODO: add a link to user guide on dao params Dao summoning argument explainer [here] (https://docs.daohaus.club/user/summoner/summon)

import { MolochV3AdvTokenSummonerContract } from '@daohaus/contract-utils';

const molochV3AdvSummoner = MolochV3AdvTokenSummonerContract.create({
  networkIs: '0x1',
  provider: new ethers.providers.JsonRpcProvider('https:///someProviderUrl.com'),
});

const daoSetUpData = {
  sharesTokenName: 'Voting',
  sharesTokenSymbol: 'vote',
  lootTokenName: 'nonVoting',
  lootTokenSymbol: 'nvote',
  safeAddress: 'address if using exsiting safe for treasury, blank if creating a new one',
  tokenConfig: {
    pauseShares: true,
    pauseLoot: true,
  },
  governanceConfig: {
    voting: 86400,
    grace: 86400,
    newOffering: 0,
    quorum: 0,
    sponsor: 0,
    minRetention: 66,
  },
  shamanConfig: {
    shamans: ['shamanAddress'],
    permissions: [2],
  },
  sharesConfig: {
    to: ['initialMemberAddress', 'initialMemberAddress'],
    amount: [1000000000000000000, 2000000000000000000],
  },
  lootConfig: {
    to: ['initialLootHolderAddress'],
    amount: [1000000000000000000],
  },
  daoName: 'Cheese DAO',
};

await molochV3AdvSummoner.summonMolochV3(daoSetUpData);

Building

Run nx run contract-utils:build to build the library.

Readme

Keywords

none

Package Sidebar

Install

npm i @daohaus/contract-utils

Weekly Downloads

6

Version

0.5.5

License

none

Unpacked Size

67 kB

Total Files

29

Last publish

Collaborators

  • daohaus-protocol