aragonone / voting-connectors

Connector apps for Aragon Voting

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Voting Connectors

This repository contains apps that serve as bridges to Aragon Voting apps requiring checkpointed balances (or any other app that requires checkpointed balances).

An Aragon Voting app requiring checkpointed balances expects the following interface to be implemented in its attached power source (usually a token or a contract that looks like one):

// See shared/contract-utils/contracts/interfaces/IERC20WithCheckpointing.sol
contract IERC20WithCheckpointing {
    function balanceOf(address _owner) public view returns (uint256);
    function balanceOfAt(address _owner, uint256 _blockNumber) public view returns (uint256);

    function totalSupply() public view returns (uint256);
    function totalSupplyAt(uint256 _blockNumber) public view returns (uint256);
}

An example of one such Voting app is aragon-apps/voting.

Included apps

Each of the individual apps come with a frontend that is intended to be installed and used through the Aragon client.

🚨 Security review status: audited

Each individual app may be audited at a different time, and past audits are documented in AUDIT.md.

Quick start

npm install

This installs global package dependencies and also bootstraps the entire monorepo through lerna.

Note: the monorepo is set up in such a way that you must install it through a lerna bootstrap (done automatically after an npm install).

If you're only interested in the contract dependencies, and not the frontends, you can use INSTALL_FRONTEND=false npm install instead.

If you're only interested in bootstrapping one package, you can use npx lerna bootstrap --scope @aragon/<package> --include-filtered-dependencies

Running tests on all apps can be done by running npm run test at the root directory (note that running all of the tests can take a significant amount of time!).

Running tests of an individual app can be done by running npm run test inside an individual app's directory, or through the selective npm run test:<app> scripts.

By default, tests are run on an in-memory instance of ganache.

Contributing

For some introductory information on what an Aragon app is, and how to build one, please read through the Aragon stack introduction and Your first Aragon app. The aragonAPI documentation is also available as a reference.

👋 Get started contributing with a good first issue.

Don't be shy to contribute even the smallest tweak. 🐲 There are still some dragons to be aware of, but we'll be here to help you get started!

About

Connector apps for Aragon Voting

License:GNU Affero General Public License v3.0


Languages

Language:JavaScript 60.8%Language:Solidity 37.7%Language:Shell 1.2%Language:HTML 0.4%