Skip to content
/ ordao Public

Toolset for DAOs using non-transferable reputation token (Respect)

License

Notifications You must be signed in to change notification settings

sim31/ordao

Repository files navigation

ORDAO

ORDAO (Optimistic Respect-based DAO) is a toolset for type of DAOs which use non-transferrable reputation token (Respect). Core of ORDAO is Optimisti Respect-based executive contract (OREC), which enables DAOs to execute actions onchain in a democratic way while avoiding voter-apathy problem. Broadly speaking ORDAO is OREC smart contract plus necessary tooling around it (off-chain services, libraries and frontend apps).

More specifically these are currently the main components of ORDAO:

  • Contracts
  • Services
    • ornode - API service for storing OREC proposals and Respect token metadata;
  • Libraries for interfacing with OREC
    • orclient - A library for Ordao apps / frontends, that abstracts all the communication with the backend and blockchain;
    • ortypes - Typescript types and helper utilities for Ordaos. Defines interfaces between orclient - ornode - contracts.
  • Apps
    • gui - ORDAO frontend (currently only breakout-result submission frontend for fractals is implemented);
    • console - documentation plus console interface for orclient (allows you to interface with ORDAO through browser console).
  • Dev - tools, scripts and tests for development, deployment and system administration of ordao;
  • Docs - documentation;
---
title: Dependency graph
---
flowchart TD
  apps/gui --> libs/orclient
  apps/console --> libs/orclient
  apps/gui --> libs/ortypes
  apps/console --> libs/ortypes
  libs/orclient --> libs/ortypes
  services/ornode --> libs/ortypes
  libs/ortypes --> contracts/respect1155
  libs/ortypes --> contracts/orec
Loading

Relationship to Optimism Fractal

ORDAO came about as an upgrade to Optimism Fractal. Here you can find comparison with older Optimism Fractal software and proposed upgrade path.

Workflow for testing packages locally before publishing

Based on suggestion from here.

  1. Setup verdaccio (standard setup, no need to change defaults);
  2. In a project in which you want to test the packages add .npmrc file with this line: registry=http://localhost:4873;
  3. Run npm run local-publish script from ordao root;
  4. Test the packages in external project
  • Checkout out a new branch;
  • Run npm update <pkg>... for packages which got updated and need testing. See that required packages got updated;
  • Do the tests;
  1. If packages work as expected
  • Run npm run local-unpublish-all to cleanup verdacio registry;
  • Discard changes to ordao repo that local-publish script made (should be changes to lerna.json and package-lock.json);
  • Run npm run publish to publish changes to public npmjs registry;
  • In the external project
    • Merge changes from the test branch into the main branch except for package-lock.json;
    • Comment out registry setting in .npmrc
    • Do npm update <pkg>...;
    • Test again;
    • Commit and push if needed;
  1. If packages do not work as expected;
  • Make required changes in the packages;
  • Commit them without commiting lerna.json and package-lock.json (or anything else that references the new versions);
  • Go back to step 3;

About

Toolset for DAOs using non-transferable reputation token (Respect)

Resources

License

Stars

Watchers

Forks

Packages

No packages published