https://github.com/daostack/common-factory
https://github.com/daostack/common-factory
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/daostack/common-factory
- Owner: daostack
- Created: 2020-03-30T10:05:07.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T03:18:47.000Z (almost 3 years ago)
- Last Synced: 2025-03-20T19:48:49.434Z (9 months ago)
- Language: JavaScript
- Size: 1010 KB
- Stars: 1
- Watchers: 3
- Forks: 3
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CommonFactory
Package with helper scripts to deploy a Common DAO using Arc `DAOFactory`.
# Usage
Run: `npm install --save @daostack/commonfactory`
Import the `commonfactory` methods: `getForgeOrgData, getSetSchemesData` and use them to generate call data to Arc `DAOFactory` methods.
```javascript
const { getForgeOrgData, getSetSchemesData } = require('@daostack/commonfactory');
// ...
const forgeOrg = await daoFactory.methods.forgeOrg(
...getForgeOrgData({
DAOFactoryInstance,
orgName,
founderAddresses: [web3.eth.accounts.wallet[0].address],
repDist: [100]
})
).send();
// ...
const setSchemes = await daoFactory.methods.setSchemes(
...getSetSchemesData({
DAOFactoryInstance,
avatar: avatarAddress,
votingMachine,
fundingToken: "0x0000000000000000000000000000000000000000",
minFeeToJoin: 100,
memberReputation: 100,
goal: 1000,
deadline,
metaData: 'metadata'
})
).send();
//...
```
# API
### - `getForgeOrgData`: Prepares the parameters for calling DAOFactory `forgeOrg`.
### Parameters:
- `DAOFactoryInstance`: The DAOFactory address
- `orgName`: The Common name
- `founderAddresses`: Array of founders addresses
- `repDist`: Array of reputation per founder (array must be the same length as `founderAddresses`)
### - `getSetSchemesData`: Prepares the parameters for calling DAOFactory `setSchemes`.
### Parameters:
- `DAOFactoryInstance`: The DAOFactory address
- `avatar`: The address of the Avatar (created by the `forgeOrg` contract call)
- `votingMachine`: Genesis Protocol address
- `fundingToken`: Token address to use in the `Join` and `FundingRequest` schemes (`0x0000000000000000000000000000000000000000` for the native token of the network used)
- `minFeeToJoin`: Minimum fee to join the Common (wei value)
- `memberReputation`: Reputation to give to each member joining
- `goal`: Funding goal of the Common (wei value)
- `deadline`: Deadline to reach the Common funding goal (UNIX epoch)
- `metaData`: IPFS hash to the Common parameters