- Notifications
You must be signed in to change notification settings - Fork0
🔗 Cross-Project Solidity Utilities
License
sablier-labs/evm-utils
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This repository contains a collection of utility smart contracts used across various Sablier Solidity projects. Themotivation behind this repository is to reduce code duplication.
The following projects imports this repo:
In-depth documentation is available atdocs.sablier.com.
This repo contains the following subdirectories:
src/interfaces
: Interfaces forAdminable
andBatch
contracts.src/mocks
: Mock contracts used by external projects in tests.src/tests
: Helper contracts used by external projects in tests and deployment scripts.
This is the recommended approach.
Install using your favorite package manager, e.g., with Bun:
bun add @sablier/evm-utils
Then, if you are using Foundry, you need to add these to yourremappings.txt
file:
@sablier/evm-utils/=node_modules/@sablier/evm-utils/
This installation method is not recommended, but it is available for those who prefer it.
First, install the submodule using Forge:
forge install --no-commit sablier-labs/evm-utils
Second, if you are using Foundry, you need to add these to yourremappings.txt
file:
@sablier/evm-utils/=lib/evm-utils/
import { Adminable }from"@sablier/evm-utils/src/Adminable.sol";import { Batch }from"@sablier/evm-utils/src/Batch.sol";import { NoDelegateCall }from"@sablier/evm-utils/src/NoDelegateCall.sol";contractMyContractisAdminable,Batch,NoDelegateCall {constructor(addressinitialAdmin)Adminable(initialAdmin) { }// Use the `noDelegateCall` modifier to prevent delegate calls.function foo()public noDelegateCall { }// Use the `onlyAdmin` modifier to restrict access to the admin.function editFee(uint256newFee)public onlyAdmin { }}
This repo is licensed under theGNU General Public License.