@bananapus/permission-ids

0.0.9 • Public • Published

Bananapus Permission ID

This repository contains permission IDs to grant scoped permissions through the JBPermissions contract and the JBPermissioned modifier.

Table of Contents
  1. Usage
  2. Repository Layout
  3. Description

Usage

Install

How to install nana-permission-ids in another project.

For projects using npm to manage dependencies (recommended):

npm install @bananapus/permission-ids

For projects using forge to manage dependencies (not recommended):

forge install Bananapus/nana-permission-ids

If you're using forge to manage dependencies, add @bananapus/permission-ids/=lib/nana-permission-ids/ to remappings.txt. You'll also need to install nana-permission-ids' dependencies and add similar remappings for them.

Develop

nana-permission-ids uses npm (version >=20.0.0) for package management and the Foundry development toolchain for builds, tests, and deployments. To get set up, install Node.js and install Foundry:

curl -L https://foundry.paradigm.xyz | sh

You can download and install dependencies with:

forge install

If you run into trouble with forge install, try using git submodule update --init --recursive to ensure that nested submodules have been properly initialized.

Some useful commands:

Command Description
forge build Compile the contracts and write artifacts to out.
forge fmt Format solidity files.
forge test Run the tests.
forge build --sizes Get contract sizes.
forge coverage Generate a test coverage report.
foundryup Update foundry. Run this periodically.
forge clean Remove the build artifacts and cache directories.

To learn more, visit the Foundry Book docs.

Repository Layout

The root directory contains this README, an MIT license, and config files. If you're developing, you're probably looking for one of these:

nana-permission-ids/
├── .github/
│   └── workflows/ - CI/CD workflows.
└── src/
    └── JBPermissionIds.sol

Description

JBPermissions allows one address to grant another address permission to call functions in Juicebox contracts on their behalf. Each ID in JBPermissionIds grants access to a specific set of these functions.

For example, if alice.eth owns project ID #5, she can queue new rulesets for the project. If alice.eth gives bob.eth permission to QUEUE_RULESETS, bob.eth can also queue rulesets for project ID #5.

Permission IDs Repository
1 ROOT (all Juicebox contracts)
2-19 nana-core
20-22 nana-721-hook
23-24 nana-buyback-hook
25-26 nana-swap-terminal
27-28 nana-suckers

If you're having trouble understanding this contract, take a look at the core protocol contracts and the documentation first. If you have questions, reach out on Discord.

Readme

Keywords

none

Package Sidebar

Install

npm i @bananapus/permission-ids

Weekly Downloads

343

Version

0.0.9

License

MIT

Unpacked Size

10.7 kB

Total Files

6

Last publish

Collaborators

  • filipviz
  • simplemachine
  • me.jango