Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@0xgabi/hardhat-aragon

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@0xgabi/hardhat-aragon

Aragon Hardhat plugin

  • 0.1.0
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Aragon Hardhat plugin

Hardhat plugin for publishing Aragon apps to Aragon Package Manager.

Required plugins

This plugin requires:

Installation

yarn add --dev @1hve/hardhat-aragon @nomiclabs/hardhat-ethers ethers hardhat-deploy

And add the following statement to your hardhat.config.js:

require('@1hive/hardhat-aragon')
require('@nomiclabs/hardhat-ethers')
require('hardhat-deploy')

Or, if you are using TypeScript, add this to your hardhat.config.ts:

import '@1hive/hardhat-aragon'
import '@nomiclabs/hardhat-ethers'
import 'hardhat-deploy'

Tasks

This plugin provides the publish task, which allows you to publish an Aragon app to the Aragon Package Manager.

Usage

hardhat [GLOBAL HARDHAT OPTIONS] publish --contract <STRING> [--dry-run] [--only-content] [--skip-app-build] [--skip-validation] bump [...constructorArgs]

Options

  • --contract: Contract address previously deployed.
  • --dry-run: Output tx data without broadcasting.
  • --only-content: Prevents contract compilation, deployment, and artifact generation.
  • --skip-app-build: Skip application build.
  • --skip-validation: Skip validation of artifacts files.

Positional Arguments

  • bump: Type of bump (major, minor or patch) or semantic version

  • constructorArgs: Constructor arguments for the app contract. (default: [])

Config extensions

You need to add the following aragon config to your hardhat.config file:

module.exports = {
  networks: {
    mainnet: { ... }
  },
  aragon: {
    appEnsName: string // counter.open.aragonpm.eth
    appContractName: string // Counter
  }
};

Additionaly you can also configure the optional aragon and ipfs configs:

module.exports = {
  networks: {
    mainnet: { ... }
  },
  aragon: {
    appEnsName: string // counter.open.aragonpm.eth
    appContractName: string // Counter
    appRoles: Role[]
    appSrcPath: string // app/
    appBuildOutputPath: string // dist/
    appBuildScript: string  // build/
    ignoreFilesPath: string // .
  },
  ipfs: {
    url: string // https://ipfs.infura.io:5001/
    gateway: string // https://ipfs.io/
    pinata: {
      key: "YOUR_PINATA_API_KEY"
      secret: "YOUR_PINATA_API_SECRET_KEY"
    }
  }

Where Role has the interface:

interface Role {
  name: string // 'Create new payments'
  id: string // 'CREATE_PAYMENTS_ROLE'
  params: string[] //  ['Token address', ... ]
}

Finally the plugin also extend the hardhat network configuration to allow a custom appEnsName and ensRegistry per network:

networks: {
    hardhat: {
      ensRegistry: '0xaafca6b0c89521752e559650206d7c925fd0e530',
    },
    rinkeby: {
      appEnsName: 'counter.aragonpm.eth',
      ensRegistry: '0x98df287b6c145399aaa709692c8d308357bc085d',
      ...
    },
  },

Environment extensions

This plugins adds an ipfs object to the Hardhat Runtime Environment.

This object has the same API that ipfs-http-client.

This object is already initialized and ready to interact with the IPFS network. You can configure the node url to connect with on the hardhat.config file.

Note
The plugin default url is http://localhost:5001/ assuming you have a local IPFS node at that endpoint running. You can configure a custom url node like https://ipfs.infura.io:5001/ if you don't want to run your own node.

Keywords

FAQs

Package last updated on 12 Feb 2022

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc