Skip to content
This repository has been archived by the owner on Sep 10, 2019. It is now read-only.

Commit

Permalink
Remove all contents
Browse files Browse the repository at this point in the history
  • Loading branch information
dallasjohnson committed May 11, 2019
1 parent bddf342 commit af888a2
Show file tree
Hide file tree
Showing 123 changed files with 2 additions and 290,839 deletions.
1 change: 0 additions & 1 deletion .gitignore

This file was deleted.

7 changes: 0 additions & 7 deletions CMakeLists.txt

This file was deleted.

21 changes: 0 additions & 21 deletions LICENSE

This file was deleted.

102 changes: 2 additions & 100 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,101 +1,3 @@
# dacmultisigs
eosDAC multi-signature proposal contract management. This contract keeps a record of system-level multisig proposals which are of interest to the custodians of a DAC. At the same time (preferably in the same transaction) as the initial eosio.msig proposal, the custodian should call the `proposed` action with some metadata about the proposal. The `proposed` action will record the details about the proposal as well as the transaction id in the `proposals` table.
# `dacmultisigs` - Multisig transaction management.

Off-chain processes can then read the transaction id from the database and then fetch the transaction referenced and read the metadata.

Approvals, cancellations etc must also be notified, this will update the `modifieddate` entry in the database. Proposals without any activity in 2 weeks can be removed from the database to free RAM using the `clean` action.

## Tables:

### proposals
Stored in the scope of the respective

* `proposalname` (name) - name for the proposal (should follow the character limitations similar to the account names on EOS)
* `transactionid` (string) - transaction id containing the metadata for a proposal.
* `modifieddate` (uint32) - timestamp of last activity on this proposal, used to allow cleaning of abandoned proposals

## Actions

### proposed
Should be called after proposing to the system multisig contract, the metadata will be ignored and the current transaction id will be stored so that external tools can fetch the metadata.

##### Assertions:
* The action must be authorised by the `proposer` and `dacauthority@one` (ie they must be a currently elected custodian). There must be an entry in the eosio.msig `proposal` table with the scope of the proposer and primary key of the `proposal_name`

##### Parameters:
* `proposer` (name) - account name for the user making the proposal
* `proposal_name` (name) - name for the proposal (should follow the character limitations similar to the account names on EOS, but can be less than 12 characters)
* `metadata` (string) - JSON string with metadata about the proposal. Currently the metadata should be a JSON string with `name` and `description` properties.

##### Postconditions:

After success a new proposal will be added to the `proposals` table in this contract, with the current transaction id.

### approved
Signals that a proposal has been approved on the system msig contract.

#### Assertions:
* The action must be authorised by the `approver` and `dacauthority@one` (ie they must be a currently elected custodian). There must be an entry in the eosio.msig `proposal` table with the scope of the proposer and primary key of the `proposal_name`.

##### Parameters:
* `proposer` (name) - account name for the user making the proposal
* `proposal_name` (name) - name for the proposal (should follow the character limitations similar to the account names on EOS, but can be less than 12 characters)
* `approver` (name) - account name which approved the proposal

##### Postconditions:
The `modifieddate` will be updated for this proposal.

### unapproved
Signals that a proposal has been unapproved on the system msig contract.

#### Assertions:
* The action must be authorised by the `unapprover` and `dacauthority@one` (ie they must be a currently elected custodian). There must be an entry in the eosio.msig `proposal` table with the scope of the proposer and primary key of the `proposal_name`.

##### Parameters:
* `proposer` (name) - account name for the user making the proposal
* `proposal_name` (name) - name for the proposal (should follow the character limitations similar to the account names on EOS, but can be less than 12 characters)
* `unapprover` (name) - account name which unapproved the proposal

##### Postconditions:
The `modifieddate` will be updated for this proposal.

### executed
Notify the contract that you executed a proposal.

#### Assertions:
* The action must be authorised by the `unapprover` and `dacauthority@one` (ie they must be a currently elected custodian). There must *NOT* be an entry in the eosio.msig `proposal` table with the scope of the proposer and primary key of the `proposal_name`.

##### Parameters:
* `proposer` (name) - account name for the user making the proposal
* `proposal_name` (name) - name for the proposal (should follow the character limitations similar to the account names on EOS, but can be less than 12 characters)
* `executer` (name) - account name which executed the proposal

##### Postconditions:
The proposal will be removed from the database.

### cancelled
Notify the contract that you cancelled a proposal.

#### Assertions:
* The action must be authorised by the `unapprover` and `dacauthority@one` (ie they must be a currently elected custodian). There must *NOT* be an entry in the eosio.msig `proposal` table with the scope of the proposer and primary key of the `proposal_name`.

##### Parameters:
* `proposer` (name) - account name for the user making the proposal
* `proposal_name` (name) - name for the proposal (should follow the character limitations similar to the account names on EOS, but can be less than 12 characters)
* `canceler` (name) - account name which cancelled the proposal

##### Postconditions:
The proposal will be removed from the database.

### clean
Will remove a proposal from the database to free RAM.

#### Assertions:
* The proposal being cleaned from the database must have a `modifieddate` more than 2 weeks in the past. Transaction must provide `dacauthority` permission.

##### Parameters:
* `proposer` (name) - account name for the user making the proposal
* `proposal_name` (name) - name for the proposal (should follow the character limitations similar to the account names on EOS, but can be less than 12 characters)

##### Postconditions:
The proposal will be removed from the database.
**All the content of this repo has been moved with the other EOSDAC contracts to allow easier cross contract dependencies https://github.com/eosdac/eosdac-contracts**
173 changes: 0 additions & 173 deletions dacmultisigs.abi

This file was deleted.

Loading

0 comments on commit af888a2

Please sign in to comment.