
Overview
The Eigenlayer Contract Deployer is a Rust library that provides bindings for smart contracts commonly used in blueprints created with the Blueprint SDK. It focuses on EigenLayer/EVM blueprints and includes tools for deploying contracts and setting up environments for blueprints.
The library contains:
- Rust Bindings for Smart Contracts: Automatically generated Rust bindings for specified contracts.
- Deployment Tools: Helper functions for deploying contracts and setting up permissions.
- Environment Setup: Utilities for setting up environments for blueprints, specifically for EigenLayer AVSs.
Currently, the library includes specific support for the EigenLayer Incredible Squaring blueprint, with plans to make it more general-purpose for any AVS.
Features
- Automatic Binding Generation: Uses a build script to generate Rust bindings from Solidity contracts.
- Core Contract Deployment: Functions to deploy EigenLayer core contracts.
- AVS Contract Deployment: Functions to deploy AVS-specific contracts for EigenLayer.
- Permission Management: Utilities to set up permissions between aforementioned contracts.
Usage
Prerequisites
- Rust 1.86
- Forge (for contract compilation and binding generation)
Installation
Add the library to your Cargo.toml:
[]
= { = "https://github.com/tangle-network/eigenlayer-contract-deployer" }
Example: Deploying EigenLayer AVS Contracts
use deploy_avs_contracts;
use deploy_core_contracts;
use Address;
async
Architecture
The library is structured as follows:
- build.rs: Handles the automatic generation of Rust bindings from Solidity contracts.
- src/bindings/: Contains the generated Rust bindings for contracts.
- src/core.rs: Functions for deploying EigenLayer core contracts.
- src/deploy.rs: Functions for deploying AVS-specific contracts.
- src/helpers.rs: Utility functions for contract deployment.
- src/permissions.rs: Functions for setting up permissions between contracts.
📜 License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your discretion.