-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Overview
Common Theory should include a Decision
contract that allows for collective decision-making regarding payments.
Decision contracts should be deployed on a per-group basis. Any group of individuals wanting to use a multi-signature Decision contract will need to pay for deployment of the contract. This is in contrast to the Syndicate contract, which exists as a singular entity.
Example
John, Mary, and Ann want to begin working on a software project together. Any liquid ether for this project can be sent to a deployed Decision
contract, and any ether over time can be sent as a Payment through the Syndicate
contract.
John, Mary, and Ann can now collectively vote to do the following:
- Send ether from the Decision contract
- Create Syndicate payments using Decision contract ether
- Fork Syndicate payments owned by the Decision contract
- Settle and withdraw Syndicate payments owned by the Decision contract
Visual Representation
The above is a rough visual representation of potential paths for transfer of funds.
Functionality
The Decision
contract should include the ability to vote on the following:
- Instant fund transfer
- Creation of Syndicate Payment
- Forking of Syndicate Payment
- Settling of Syndicate Payment
Any action should require 0 negative votes and at least 75% voter participation.
Previous Implementations
Proposal system with timed vote cycles: 3372d9e
This implementation attempted to use inline assembly to allow voting for execution of any function in any contract. The new Decision implementation should be more tightly coupled to Syndicate functionality to reduce the complexity that arises from generalizing too far.