Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

aragraph

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aragraph

Visualize your Aragon DAO Templates

latest
Source
npmnpm
Version
0.0.6
Version published
Maintainers
1
Created
Source

get in touch with Consensys Diligence
[ 🌐 📩 🔥 ]

aragraph-logo

AraGraph

This blog post is a good introduction to AraGraph.

AraGraph is a tool to generate nice looking permission graphs for Aragon DAOs. It can take the following inputs:

  • The address and chain-ID of a live DAO.
  • A DAO template description file (yaml).
  • A specification in Markdown table format.

The tool generates an UML description for the DAO. Use Plantuml to render it.

aragraph

install

$ npm install -g aragraph

CLI

generate for a live DAO on mainnet

$ aragraph 0x2dE83b50Af29678774D5AbC4a7Cb2a588762f28C --chain-id 1 > dao.plantuml

generate from yaml description

$ aragraph ./examples/company.yaml > dao.plantuml

generate from markdown

$ aragraph ./examples/aragon_company_README.md > dao.plantuml

Render

$ java -jar plantuml.jar dao.plantuml

or open with vscode-PlantUML

Config / Templating

AraGraph allows you to template certain apps to enrich them with even more context like available Roles, Methods, static security information. See templates/config.json for details.

You can either provide you own config.json:

$ aragraph 0x2dE83b50Af29678774D5AbC4a7Cb2a588762f28C --config config.json

Or use the config.json provided with this package:

$ aragraph 0x2dE83b50Af29678774D5AbC4a7Cb2a588762f28C --default-config

Library

for a live DAO on mainnet

Example: DAO-Kernel on mainnet

fromDAO

new AragonPermissions().fromDAO(address, chainId).then((aragaph) => {
        console.log(aragaph.uml())
        process.exit(0)
})

from DAO description files (yaml)

Specification: DAO-Templates/Descriptor

Example: Company.yaml

fromYaml

const AragonPermissions = require("./AragonPermissions.js");
console.log(new AragonPermissions().fromYaml('./examples/company.yaml').uml())

from markdown table

Example: Readme.md

image

const AragonPermissions = require("./AragonPermissions.js");
const input = `

| App               | Permission            | Grantee       | Manager |
|-------------------|-----------------------|---------------|---------|
| Kernel            | APP_MANAGER           | Voting        | Voting  |
| ACL               | CREATE_PERMISSIONS    | Voting        | Voting  |
| EVMScriptRegistry | REGISTRY_MANAGER      | Voting        | Voting  |
| EVMScriptRegistry | REGISTRY_ADD_EXECUTOR | Voting        | Voting  |
| Voting            | CREATE_VOTES          | Token Manager | Voting  |
| Voting            | MODIFY_QUORUM         | Voting        | Voting  |
| Voting            | MODIFY_SUPPORT        | Voting        | Voting  |
| Agent or Vault    | TRANSFER              | Finance       | Voting  |
| Finance           | CREATE_PAYMENTS       | Voting        | Voting  |
| Finance           | EXECUTE_PAYMENTS      | Voting        | Voting  |
| Finance           | MANAGE_PAYMENTS       | Voting        | Voting  |
| Token Manager     | MINT                  | Voting        | Voting  |
| Token Manager     | BURN                  | Voting        | Voting  |
| Agent             | RUN_SCRIPT            | Voting        | Voting  |
| Agent             | EXECUTE               | Voting        | Voting  |
| Finance             | CREATE_PAYMENTS            | Payroll             | Voting        |
| Payroll             | ADD_BONUS_ROLE             | EOA or Voting       | Voting        |
| Payroll             | ADD_EMPLOYEE_ROLE          | EOA or Voting       | Voting        |
| Payroll             | ADD_REIMBURSEMENT_ROLE     | EOA or Voting       | Voting        |
| Payroll             | TERMINATE_EMPLOYEE_ROLE    | EOA or Voting       | Voting        |
| Payroll             | SET_EMPLOYEE_SALARY_ROLE   | EOA or voting       | Voting        |
| Payroll             | MODIFY_PRICE_FEED_ROLE     | Voting              | Voting        |
| Payroll             | MODIFY_RATE_EXPIRY_ROLE    | Voting              | Voting        |
| Payroll             | MANAGE_ALLOWED_TOKENS_ROLE | Voting              | Voting        |
`;

console.log(new AragonPermissions().fromMarkdownTable(input).uml())

Contributors 🤗

Keywords

aragon

FAQs

Package last updated on 08 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts