/windranger-mass-delegation-contracts

Mass Delegation

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Mass Delegation 🎩👒

Providing a project with a template for the files, folder structure, dependencies, scripting, configuration (local & remote) and development standards used in a Windranger Soldity project with TypeScript tests.

Problem/Hypothesis

DAOs and treasury admins experience challenges delegating voting rights to their employees/communities. The current lack of tooling means doing so is a highly manual process that is:

  • Time consuming: Both initial delegation and ongoing maintenance (accounting for new/departing DAOm members/delegates)
  • Costly: High gas costs make delegation expensive and impractical in most scenarios
  • Prone to mistakes: highly manual process that typically requires the admin to manually track information through spreadsheets, etc

Solution: Offchain Merkle Delegation Contract

Merkle roots smart contract for a negligible gas cost approach is an oracle-based one where delegations are collated into merkle trie nodes and the root is published on chain for every delegation cycle. In order to maintain trust for each update a changelog should be published along with instructions for individuals to be able to generate the merkle trie root from the data.

Specification

Development Process

Development follows these processes outlined in development process

Install, build and run

Start by cloning the git repo locally.

Install

To retrieve the project dependencies and before any further tasks will run correctly.

npm ci

Husky Git Commit Hooks

To enable Husky commit hooks to trigger the lint-staged behaviour of formatting and linting the staged files prior before committing, prepare your repo with prepare.

npm run prepare

Build and Test

npm run build
npm test

If you make changes that don't get picked up then add a clean into the process

npm run clean
npm run build
npm test

Tools

Setup and run instructions: