Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Agreement: Implement protocol for disputable apps #1133

Merged
merged 65 commits into from
Jun 30, 2020
Merged
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
8ffee99
agreement: init project
facuspagnuolo Apr 15, 2020
70bde43
agreements: implement contracts
facuspagnuolo Apr 14, 2020
1ec06bc
agreement: implement happy path tests
facuspagnuolo Apr 15, 2020
86b3b7e
agreement: do not allow changing collateral token
facuspagnuolo Apr 16, 2020
69eb957
agreement: organize errors
facuspagnuolo Apr 16, 2020
358661e
agreement: small contract fixes
facuspagnuolo Apr 16, 2020
0141f86
agreement: complete unit tests
facuspagnuolo Apr 16, 2020
6d45d0f
agreement: submit evidence only if there is context on dispute
facuspagnuolo Apr 17, 2020
2b8bbf5
agreement: implement gas costs tests
facuspagnuolo Apr 17, 2020
190d76e
agreement: fix authentication logic
facuspagnuolo Apr 17, 2020
0f67a77
agreement: allow challenger to claim settlements
facuspagnuolo Apr 20, 2020
4c91389
agreements: add settings tests
facuspagnuolo Apr 20, 2020
83b01f7
agreement: model token-balance based permissions
facuspagnuolo Apr 20, 2020
1c2e477
agreements: simplify state assertion logic
facuspagnuolo Apr 21, 2020
8cd7a0e
agreements: use safe transfers always
facuspagnuolo Apr 21, 2020
5bb0d75
agreements: simplify periods validation logic
facuspagnuolo Apr 21, 2020
9cb1054
agreements: use challenge collateral instead of multiplier
facuspagnuolo Apr 21, 2020
59d9c51
agreement: support forwarding interface
facuspagnuolo Apr 21, 2020
6a10576
agreement: simplify token balance based permissions
facuspagnuolo Apr 21, 2020
b43514e
agreement: do not allow changing the arbitrator
facuspagnuolo Apr 21, 2020
fc5bfe7
agreements: add information to emitted events
facuspagnuolo Apr 21, 2020
b0d8f92
agreements: improve blacklist for evm scripts
facuspagnuolo Apr 21, 2020
f48a190
agreements: improve arbitrator fees approval
facuspagnuolo Apr 21, 2020
7a01017
agreements: implement intergration tests
facuspagnuolo Apr 22, 2020
95e46ff
agreements: add contract inline documentation
facuspagnuolo Apr 23, 2020
cbc8e1a
agreement: add authentication check when scheduling actions
facuspagnuolo Apr 23, 2020
00cebf4
agreement: update readme
facuspagnuolo Apr 23, 2020
5227c73
agreement: allow having token balance challenge permissions
facuspagnuolo Apr 24, 2020
8f5f755
agreement: add arapp json file
facuspagnuolo Apr 24, 2020
3999c6b
agreement: add manifest json file
facuspagnuolo Apr 24, 2020
fbc1ed9
agreement: migrate tests to Truffle v5
facuspagnuolo Apr 24, 2020
ed6dde2
agreements: tell whether a signer must review the content or not
facuspagnuolo Apr 27, 2020
89b537e
chore: use buidler to run tests
facuspagnuolo Apr 30, 2020
f45b236
Agreements: Implement disputable app (#1140)
facuspagnuolo May 27, 2020
4752f06
agreement: optimize bytecode
facuspagnuolo May 27, 2020
66a82f1
agreement: remove unregistering state
facuspagnuolo May 27, 2020
84048ac
agreements: support multiple challenges
facuspagnuolo May 29, 2020
5639757
agreement: add action lifetime config
facuspagnuolo May 29, 2020
a4b19bc
agreement: allow changing the arbitrator address
facuspagnuolo May 29, 2020
9db5e59
agreement: improve architecture naming
facuspagnuolo May 29, 2020
499b343
agreement: improve dispute metadata
facuspagnuolo May 30, 2020
23a664f
agreement: move disputable base app to aragonOS
facuspagnuolo May 31, 2020
0010085
agreement: update arapp json file
facuspagnuolo Jun 1, 2020
c49c8f4
agreement: fix circular dependency
facuspagnuolo Jun 1, 2020
df48d5b
agreement: skip flaky test
facuspagnuolo Jun 1, 2020
8ca55c5
agreement: poc moving responsibilities to disputable app
facuspagnuolo Jun 7, 2020
4caf89b
agreement: poc moving responsibilities to disputable app 2
facuspagnuolo Jun 7, 2020
9d99ed4
agreement: poc moving responsibilities to disputable app 3
facuspagnuolo Jun 9, 2020
80d499c
agreement: fix action getter
facuspagnuolo Jun 10, 2020
8edaa2f
Agreement: update README and details
sohkai Jun 11, 2020
f03b4f6
Agreement: typo fix in manifest.json
sohkai Jun 11, 2020
3ef1bbf
Agreement: cosmetic import re-ordering
sohkai Jun 11, 2020
ae6dc11
Agreement: cosmetic comment rewording/clarification
sohkai Jun 12, 2020
1876d42
Agreement: cosmetic code naming clarifications
sohkai Jun 12, 2020
f698674
Agreement: small state optimization in _canProceed()
sohkai Jun 12, 2020
b378a20
Agreement: Integrate external Staking app (#1151)
Jun 12, 2020
4121234
agreement: multiple enhancements
facuspagnuolo Jun 13, 2020
016c0cc
Fix CI (#1167)
Jun 16, 2020
061896a
Agreement: update comments and docstrings
sohkai Jun 26, 2020
a9e72dc
agreements: follow same ID pattern for all objects
facuspagnuolo Jun 27, 2020
7b0e41c
agreements: use aragon os v5 beta
facuspagnuolo Jun 27, 2020
6d94937
agreements: fix tests
facuspagnuolo Jun 27, 2020
f2369db
agreements: small enhancements
facuspagnuolo Jun 29, 2020
396954a
agreements: optimize disputable activation
facuspagnuolo Jun 29, 2020
8ac7e07
agreements: fix gas cost tests
facuspagnuolo Jun 30, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ lerna-debug.log
# Ignore only for first level to select just the contract build directories
*/*/abi
*/*/build
*/*/dist
*/*/cache
*/*/artifacts

# yarn
yarn-error.log
Expand Down
7 changes: 6 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ cache:
timeout: 600
directories:
- node_modules
- apps/agreement/node_modules
- apps/agent/node_modules
- apps/finance/node_modules
- apps/survey/node_modules
Expand Down Expand Up @@ -30,6 +31,8 @@ jobs:
- stage: tests
script: npm run lint
name: "Lint"
- script: npm run test:agreement
name: "Agreement"
- script: npm run test:agent
name: "Agent"
- script: npm run test:finance
Expand All @@ -52,7 +55,9 @@ jobs:
name: "Shared"

- stage: coverage
script: npm run coverage:agent
script: npm run coverage:agreement
name: "Agreement"
- script: npm run coverage:agent
name: "Agent"
- script: npm run coverage:finance
name: "Finance"
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

This repository contains the following apps:

- **[Agent](apps/agent)**: Hold assets and perform actions from Aragon organizations.
- **[Agreement](apps/agreement)**: Govern organizations through a subjective rules.
- **[Finance](apps/finance)**: Send payments and manage expenses with budgeting.
- **[Survey](apps/survey)**: Create polls to gauge community opinions.
- **[Tokens](apps/token-manager)**: Manages organization tokens.
Expand Down Expand Up @@ -60,4 +62,4 @@ If you come across an issue with Aragon, do a search in the [Issues](https://git

## Help

For help and support, feel free to contact us at any time on our Spectrum [App development channel](https://spectrum.chat/aragon/app-development).
For help and support, feel free to contact us at any time on our Spectrum [App development channel](https://spectrum.chat/aragon/app-development).
8 changes: 8 additions & 0 deletions apps/agreement/.solcover.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module.exports = {
norpc: true,
copyPackages: ['@aragon/os'],
skipFiles: [
'test',
'@aragon/os',
]
}
1 change: 1 addition & 0 deletions apps/agreement/.soliumignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
contracts/test
23 changes: 23 additions & 0 deletions apps/agreement/.soliumrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"extends": "solium:all",
"rules": {
"imports-on-top": ["error"],
"variable-declarations": ["error"],
"array-declarations": ["error"],
"operator-whitespace": ["error"],
"lbrace": ["error"],
"mixedcase": 0,
"camelcase": ["error"],
"uppercase": 0,
"no-empty-blocks": ["error"],
"no-unused-vars": ["error"],
"quotes": ["error"],
"indentation": 0,
"whitespace": ["error"],
"deprecated-suicide": ["error"],
"arg-overflow": ["error", 8],
"pragma-on-top": ["error"],
"security/enforce-explicit-visibility": ["error"],
"error-reason": 0
}
}
13 changes: 13 additions & 0 deletions apps/agreement/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Agreement
facuspagnuolo marked this conversation as resolved.
Show resolved Hide resolved

Aragon Agreements allow organization actions to be governed by a subjective set of rules, that cannot be encoded into smart contracts.

Agreements are the bridge between an Aragon organization and Aragon Court. Organizations with an Agreement can become optimistic: most actions should be easily executed and challenged exceptionally, instead of forcing each user to go through a tedious approval process every time they want to perform an action.

#### 🛠️ Project stage: development

The Agreement app is still in development phase and aspects of the mechanism are still being designed and implemented.

#### ⚠️ Security review status: pre-audit

The code in this sub-repo is under heavy development and hasn't undergone a professional security review yet, therefore we cannot recommend using any of the code at the moment.
49 changes: 49 additions & 0 deletions apps/agreement/arapp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"environments": {
"default": {
"registry": "0x5f6f7e8cc7346a11ca2def8f827b7a0b612c56a1",
"appName": "agreement.aragonpm.eth",
"network": "rpc"
},
"mainnet": {
"registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
"appName": "agreement.open.aragonpm.eth",
"network": "mainnet"
},
"rinkeby": {
"registry": "0x98Df287B6C145399Aaa709692c8D308357bC085D",
"appName": "agreement.open.aragonpm.eth",
"network": "rinkeby"
},
"ropsten": {
"registry": "0x6afe2cacee211ea9179992f89dc61ff25c61e923",
"appName": "agreement.open.aragonpm.eth",
"network": "ropsten"
},
"staging": {
"registry": "0xfe03625ea880a8cba336f9b5ad6e15b0a3b5a939",
"appName": "agreement.open.aragonpm.eth",
"network": "rinkeby"
}
},
"roles": [
{
"name": "Sign Agreement",
"id": "SIGN_ROLE",
"params": [
"Signer address"
]
},
{
"name": "Change Agreement configuration",
"id": "CHANGE_AGREEMENT_ROLE",
"params": []
},
{
"name": "Manage Agreement disputable apps",
"id": "MANAGE_DISPUTABLE_ROLE",
"params": []
}
],
"path": "contracts/Agreement.sol"
}
Loading