This repository contains a collection of modules and tools designed to simplify interaction with the Aragon Package Manager (Registry and Repository) and the Dappnode Directory Smart Contract.
Please note that this NPM package is not compatible with browsers, as it includes Node.js native file system modules.
The toolkit offers multiple integrations with various tools available in the JavaScript ecosystem, aiming to streamline and enhance the usage of Dappnode Smart Contracts:
The Registry Smart Contract interacts with both the public
and dnp
Registries Smart Contracts. There are two methods for obtaining Dappnode packages from either the dnp
or public
Registries Smart Contracts: scanning the blockchain for the NewRepo
event, and using TheGraph to collect all the events for each Smart Contract.
Two subgraphs have been deployed to facilitate the retrieval of these events.
All the smart contracts are compiled using Truffle. These compilations are subsequently utilized by Ethers and TypeChain.
To ensure proper typing in TypeScript, the TypeChain tool generates types from the compiled Smart Contracts created by Truffle.
dnp.dappnode.eth
and public.dappnode.eth
. The dnp
registry is maintained by the Dappnode organization, while the public
registry is accessible to anyone wishing to publish their own package. The Registry module utilizes TheGraph, among other tools, to search for NewRepo
events emitted by each Smart Contract Registry. It also fetches all the Dappnode packages under each registry and utilizes the Repository module to retrieve all the Dappnode package release assets.dnp
and public
Dappnode packages. The Smart Contract determines the whitelist of Dappnode packages, their position, and the featured index.dag
).Tests are available for the following Smart Contracts modules:
dnp
and public
.To establish a clear roadmap for this toolkit, it would be beneficial to have a
We welcome contributions to the DappNode Toolkit. Please refer to the CONTRIBUTING.md
file for guidelines on how to contribute.
The DappNode Toolkit is released under the MIT License. For more information, please refer to the LICENSE
file.