dl-solidity-library/dev-modules
Forked fromChanges
- Added Context to all contracts to support integration with GSN and Meta Transactions
Solidity Development Modules by Distributed Lab
Elaborate solidity development modules library by DL.
The library consists of modules and utilities that are built with a help of Openzeppelin Contracts (4.9.2) and go far beyond mediocre solidity.
- Implementation of Contracts Registry pattern
- Versatile RBAC smart contract
- Enhanced and simplified Diamond pattern
- Heap based priority queue library
- Memory data structures (Vector)
- Optimized Incremental Merkle Tree data structure
- Novel ReturnDataProxy contract
- Utilities to ease work with ERC20 decimals, arrays, and sets
Overview
Installation
$ npm install @dlsl/dev-modules
The latest stable version is always in the master
branch.
Usage
You will find the smart contracts in the /contracts
directory. Feel free to play around and check the source code, it is rather descriptive.
Once the npm package is installed, one can use the modules just like that:
pragma solidity ^0.8.4;
import "@dlsl/dev-modules/contracts-registry/presets/OwnableContractsRegistry.sol";
contract ContractsRegistry is OwnableContractsRegistry {
. . .
}
It is important to use the library as it is shipped and not copy-paste the code from untrusted sources.
License
The development modules are released under the MIT License.