WIP: Fix Aragon breaking changes; update dependencies #182

Merged
raucao merged 9 commits from chore/update_dependencies into master 2020-02-20 11:42:04 +00:00
15 changed files with 3202 additions and 96354 deletions

View File

@ -63,21 +63,26 @@ if you want to increase the block time to 10 seconds you can add
$ npm run devchain $ npm run devchain
$ ipfs daemon $ ipfs daemon
2. Deploy each app to the devchain 2. Compile contracts
(compiled contracts will be in `/build`)
$ npm run compile-contracts
3. Deploy each app to the devchain
(make sure you've run `npm install` for every app - see installation) (make sure you've run `npm install` for every app - see installation)
$ npm run deploy:apps $ npm run deploy:apps
3. Deploy a new KreditsKit and create a new DAO with the latest app versions 4. Deploy a new KreditsKit and create a new DAO with the latest app versions
$ npm run deploy:kit $ npm run deploy:kit
$ npm run deploy:dao $ npm run deploy:dao
4. Execute seeds to create demo contributors, contributions, etc. (optional) 5. Execute seeds to create demo contributors, contributions, etc. (optional)
$ npm run seeds $ npm run seeds
**Step 2-4 is also summarized in `npm run bootstrap`** **Step 2-5 is also summarized in `npm run bootstrap`**
If you want to reset your local setup: If you want to reset your local setup:
@ -165,8 +170,14 @@ Deploys a new KreditsKit that allows to create a new DAO
or or
$ npm run deploy:kit $ npm run deploy:kit
`ENS` address is required as environment variable. #### Kredits configuration options:
`DAO_FACTORY` can optionally be set as environment variable. (see aragon)
Configuration options can be set in an environment specific `kredits` object in the `arapp.json` or using a CLI parameter.
* daoFactory: Ethereum address of the used DAO Factory. On public networks we use [official aragon factories](https://github.com/aragon/deployments/tree/master/environments/)
* apmDomain: the ENS domain of the aragonPM (normally `open.aragonpm.eth`)
(please also see the [arapp.json related configuration options](https://hack.aragon.org/docs/cli-global-confg#the-arappjson-file))
### new-dao.js ### new-dao.js

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,7 @@
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"dependencies": { "dependencies": {
"@aragon/os": "^4.2.0", "@aragon/os": "^4.3.0"
"@aragon/cli": "^5.9.6"
}, },
"devDependencies": { "devDependencies": {
"@aragon/test-helpers": "^2.0.0", "@aragon/test-helpers": "^2.0.0",
@ -26,7 +25,7 @@
"publish:minor": "aragon apm publish minor", "publish:minor": "aragon apm publish minor",
"publish:major": "aragon apm publish major", "publish:major": "aragon apm publish major",
"versions": "aragon apm versions", "versions": "aragon apm versions",
"test": "aragon contracts test" "test": "truffle test"
}, },
"keywords": [] "keywords": []
} }

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,7 @@
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"dependencies": { "dependencies": {
"@aragon/os": "^4.2.0", "@aragon/os": "^4.3.0"
"@aragon/cli": "^5.9.6"
}, },
"devDependencies": { "devDependencies": {
"eth-gas-reporter": "^0.2.0", "eth-gas-reporter": "^0.2.0",
@ -26,7 +25,7 @@
"publish:minor": "aragon apm publish minor", "publish:minor": "aragon apm publish minor",
"publish:major": "aragon apm publish major", "publish:major": "aragon apm publish major",
"versions": "aragon apm versions", "versions": "aragon apm versions",
"test": "aragon contracts test" "test": "truffle test"
}, },
"keywords": [] "keywords": []
} }

View File

@ -21,8 +21,8 @@ contract('Contributor app', (accounts) => {
aclBase = await getContract('ACL').new(); aclBase = await getContract('ACL').new();
daoFactory = await getContract('DAOFactory').new(kernelBase.address, aclBase.address, ZERO_ADDR); daoFactory = await getContract('DAOFactory').new(kernelBase.address, aclBase.address, ZERO_ADDR);
r = await daoFactory.newDAO(root); r = await daoFactory.newDAO(root);
dao = getContract('Kernel').at(r.logs.filter(l => l.event == 'DeployDAO')[0].args.dao); dao = await getContract('Kernel').at(r.logs.filter(l => l.event == 'DeployDAO')[0].args.dao);
acl = getContract('ACL').at(await dao.acl()); acl = await getContract('ACL').at(await dao.acl());
//create dao mamnager permission for coin owner //create dao mamnager permission for coin owner
await acl.createPermission( await acl.createPermission(
@ -63,7 +63,7 @@ contract('Contributor app', (accounts) => {
root, root,
{ from: root } { from: root }
); );
}); });
describe("Owner default permissions", async () => { describe("Owner default permissions", async () => {
@ -71,7 +71,7 @@ contract('Contributor app', (accounts) => {
let manageContributorPermission = await acl.hasPermission(root, contributor.address, await contributor.MANAGE_CONTRIBUTORS_ROLE()); let manageContributorPermission = await acl.hasPermission(root, contributor.address, await contributor.MANAGE_CONTRIBUTORS_ROLE());
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
assert.equal(manageContributorPermission, true); assert.equal(manageContributorPermission, true);
}); });
}); });
describe("Add contributor", async () => { describe("Add contributor", async () => {

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,7 @@
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"dependencies": { "dependencies": {
"@aragon/os": "^4.2.0", "@aragon/os": "^4.3.0"
"@aragon/cli": "^5.9.6"
}, },
"devDependencies": { "devDependencies": {
"@aragon/test-helpers": "^2.0.0", "@aragon/test-helpers": "^2.0.0",
@ -26,7 +25,7 @@
"publish:minor": "aragon apm publish minor", "publish:minor": "aragon apm publish minor",
"publish:major": "aragon apm publish major", "publish:major": "aragon apm publish major",
"versions": "aragon apm versions", "versions": "aragon apm versions",
"test": "aragon contracts test" "test": "truffle test"
}, },
"keywords": [] "keywords": []
} }

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,7 @@
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"dependencies": { "dependencies": {
"@aragon/os": "^4.2.0", "@aragon/os": "^4.3.0"
"@aragon/cli": "^5.9.6"
}, },
"devDependencies": { "devDependencies": {
"@aragon/test-helpers": "^2.0.0", "@aragon/test-helpers": "^2.0.0",
@ -26,7 +25,7 @@
"publish:minor": "aragon apm publish minor", "publish:minor": "aragon apm publish minor",
"publish:major": "aragon apm publish major", "publish:major": "aragon apm publish major",
"versions": "aragon apm versions", "versions": "aragon apm versions",
"test": "aragon contracts test" "test": "truffle test"
}, },
"keywords": [] "keywords": []
} }

View File

@ -21,8 +21,8 @@ contract('Token app', (accounts) => {
aclBase = await getContract('ACL').new(); aclBase = await getContract('ACL').new();
daoFactory = await getContract('DAOFactory').new(kernelBase.address, aclBase.address, ZERO_ADDR); daoFactory = await getContract('DAOFactory').new(kernelBase.address, aclBase.address, ZERO_ADDR);
r = await daoFactory.newDAO(root); r = await daoFactory.newDAO(root);
dao = getContract('Kernel').at(r.logs.filter(l => l.event == 'DeployDAO')[0].args.dao); dao = await getContract('Kernel').at(r.logs.filter(l => l.event == 'DeployDAO')[0].args.dao);
acl = getContract('ACL').at(await dao.acl()); acl = await getContract('ACL').at(await dao.acl());
//create dao mamnager permission for coin owner //create dao mamnager permission for coin owner
await acl.createPermission( await acl.createPermission(
@ -63,7 +63,7 @@ contract('Token app', (accounts) => {
root, root,
{ from: root } { from: root }
); );
}); });
describe("Owner default space permissions", async () => { describe("Owner default space permissions", async () => {
@ -71,7 +71,7 @@ contract('Token app', (accounts) => {
let tokenIssuerPermission = await acl.hasPermission(root, token.address, await token.MINT_TOKEN_ROLE()); let tokenIssuerPermission = await acl.hasPermission(root, token.address, await token.MINT_TOKEN_ROLE());
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
assert.equal(tokenIssuerPermission, true); assert.equal(tokenIssuerPermission, true);
}); });
}); });
describe("Token issuing", async () => { describe("Token issuing", async () => {

View File

@ -34,7 +34,6 @@
"environments": { "environments": {
"development": { "development": {
"network": "development", "network": "development",
"apm": "open.aragonpm.eth",
"registry": "0x5f6f7e8cc7346a11ca2def8f827b7a0b612c56a1", "registry": "0x5f6f7e8cc7346a11ca2def8f827b7a0b612c56a1",
"appName": "dummy.open.aragonpm.eth" "appName": "dummy.open.aragonpm.eth"
}, },
@ -42,9 +41,10 @@
"network": "rinkeby", "network": "rinkeby",
"registry": "0x98Df287B6C145399Aaa709692c8D308357bC085D", "registry": "0x98Df287B6C145399Aaa709692c8D308357bC085D",
"wsRPC": "wss://rinkeby.eth.aragon.network/ws", "wsRPC": "wss://rinkeby.eth.aragon.network/ws",
"daoFactory": "0x2298d27a9b847c681d2b2c2828ab9d79013f5f1d",
"appName": "dummy.open.aragonpm.eth", "appName": "dummy.open.aragonpm.eth",
"apm": "open.aragonpm.eth" "kredits": {
"daoFactory": "0x2298d27a9b847c681d2b2c2828ab9d79013f5f1d"
}
}, },
"kovan": { "kovan": {
"network": "kovan", "network": "kovan",
@ -52,8 +52,7 @@
}, },
"default": { "default": {
"network": "development", "network": "development",
"appName": "dummy.aragonpm.eth", "appName": "dummy.aragonpm.eth"
"apm": "open.aragonpm.eth"
} }
}, },
"path": "contracts/misc/DummyApp.sol" "path": "contracts/misc/DummyApp.sol"

2337
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -15,9 +15,9 @@
"compile-contracts": "truffle compile --all", "compile-contracts": "truffle compile --all",
"bootstrap": "npm run reset:hard && npm run seeds", "bootstrap": "npm run reset:hard && npm run seeds",
"reset": "npm run deploy:kit && npm run deploy:dao", "reset": "npm run deploy:kit && npm run deploy:dao",
"reset:hard": "npm run deploy:apps && npm run reset", "reset:hard": "npm run compile-contracts && npm run deploy:apps && npm run reset",
"deploy:kit": "aragon contracts exec scripts/deploy-kit.js", "deploy:kit": "truffle exec scripts/deploy-kit.js",
"deploy:dao": "aragon contracts exec scripts/new-dao.js", "deploy:dao": "truffle exec scripts/new-dao.js",
"deploy:apps": "./scripts/every-app.sh \"aragon apm publish major --propagate-content=false --build=false --prepublish=false --skip-confirmation\"", "deploy:apps": "./scripts/every-app.sh \"aragon apm publish major --propagate-content=false --build=false --prepublish=false --skip-confirmation\"",
"devchain": "aragon devchain --port 7545", "devchain": "aragon devchain --port 7545",
"dao:address": "truffle exec scripts/current-address.js", "dao:address": "truffle exec scripts/current-address.js",
@ -43,22 +43,22 @@
"homepage": "https://github.com/67P/truffle-kredits#readme", "homepage": "https://github.com/67P/truffle-kredits#readme",
"devDependencies": { "devDependencies": {
"@aragon/kits-base": "^1.0.0", "@aragon/kits-base": "^1.0.0",
"@aragon/os": "^4.2.0", "@aragon/os": "^4.3.0",
"async-each-series": "^1.1.0", "async-each-series": "^1.1.0",
"cli-table": "^0.3.1", "cli-table": "^0.3.1",
"eslint": "^5.16.0", "eslint": "^6.8.0",
"eslint-plugin-import": "^2.17.3", "eslint-plugin-import": "^2.20.1",
"eslint-plugin-node": "^8.0.1", "eslint-plugin-node": "^11.0.0",
"eslint-plugin-promise": "^4.1.1", "eslint-plugin-promise": "^4.2.1",
"eth-provider": "^0.2.2", "eth-provider": "^0.2.5",
"promptly": "^3.0.3", "promptly": "^3.0.3",
"solc": "^0.4.26", "solc": "^0.4.26",
"solhint": "^2.1.0", "solhint": "^2.3.0",
"yargs": "^12.0.0" "yargs": "^12.0.0"
}, },
"dependencies": { "dependencies": {
"ethers": "^4.0.29", "ipfs-http-client": "^41.0.1",
"ipfs-http-client": "^30.1.3", "ethers": "^4.0.44",
"kosmos-schemas": "^2.1.0", "kosmos-schemas": "^2.1.0",
"node-fetch": "^2.6.0", "node-fetch": "^2.6.0",
"tv4": "^1.3.0" "tv4": "^1.3.0"

View File

@ -13,9 +13,18 @@ const KreditsKit = artifacts.require('KreditsKit')
const arapp = require('../arapp.json') const arapp = require('../arapp.json')
const environment = argv['network'] || argv['environment'] || 'development' const environment = argv['network'] || argv['environment'] || 'development'
const apm = arapp.environments[environment].apm
const ensAddr = arapp.environments[environment].registry || process.env.ENS const kreditsArappConfig = (arapp.environments[environment].kredits || {}
const daoFactoryAddress = arapp.environments[environment].daoFactory || process.env.DAO_FACTORY
// typically we use the open.aragonpm.eth aragonpm.
const apm = kreditsArappConfig.apmDomain || argv['apmDomain'] || 'open.aragonpm.eth'
// daoFactory is environment specific.
// See https://github.com/aragon/deployments/tree/master/environments/ for the official daoFactory
// Locally we deploy our own daoFactory and no daoFactory is required (`daoFactoryAddress` is null).
const daoFactoryAddress = kreditsArappConfig.daoFactory || argv['daoFactory']
const ensAddr = arapp.environments[environment].registry || argv['ensAddress']
module.exports = async function(callback) { module.exports = async function(callback) {