Quickstart Getting Started with ERC7660
Setting Up Your Project
First, given this example and most quickstart documentation will be relying on Forge, make sure you have the latest version of forge installed.
install
Copy curl -L https://foundry.paradigm.xyz | bash
Now that you have forge installed, create and navigate to a new directory for your ERC7660 project and install ERC7660.
Copy forge init
forge install benchmark-org/erc7660
Creating Your ERC7660
An example contract that inherits ERC7660 has been provided below. This is just a minimal implementation for quick setup.
ExampleERC7660.sol
Copy //SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol" ;
import { ERC7660 } from "erc7660/ERC7660.sol" ;
contract ExampleERC7660 is Ownable , ERC7660 {
constructor (
string memory name_ ,
string memory symbol_ ,
uint256 totalSupply_
) ERC7660 (name_, symbol_, totalSupply_) {
}
function addPair ( address _pair , bool flag) public onlyOwner {
_addPair (_pair , flat);
}
//_routers
function addRouter ( address _router , bool flag) public onlyOwner {
_addRouter (_router , flag);
}
function setDuration ( uint256 _duration ) public onlyOwner {
_setDuration (_duration);
}
}
That’s it, your all set up with your first ERC7660 contract!
Deploying
To deploy, we’ll again use our current project and set up a simple script, provided below.
Copy contract Deploy is Script {
string memory name = "ExampleBench" ;
string memory symbol = "EXBench" ;
uint256 totalSupply = 10000e18 ;
modifier broadcast ( address deployer) {
vm. startBroadcast (deployer);
_;
vm. stopBroadcast ();
}
function run () external override {
deploy ( < Your Deployer Address > );
}
function deploy ( address deployer) public broadcast ( deployer ) {
new ExampleERC7660 (name , symbol , totalSupply , deployer);
}
}
Now, you’ll need to run the script through the following command, having defined the deployer private key and rpc endpoint in your local environment.
Last updated 7 months ago