Skip to content

A Foundry template for building modules using the ModuleKit

Notifications You must be signed in to change notification settings

rhinestonewtf/module-template

Repository files navigation

Module Template

A template for building smart account modules using the ModuleKit

Using the template

Install dependencies

pnpm install

Update ModuleKit

pnpm update rhinestonewtf/modulekit

Building modules

  1. Create a new file in src and inherit from the appropriate interface (see templates)
  2. After you finished writing your module, run the following command:
forge build

Testing modules

  1. Create a new .t.sol file in test and inherit from the correct testing kit (see templates)
  2. After you finished writing your tests, run the following command:
forge test

Deploying modules

  1. Import your modules into the script/DeployModule.s.sol file.
  2. Create a .env file in the root directory based on the .env.example file and fill in the variables.
  3. Run the following command:
source .env && forge script script/DeployModule.s.sol:DeployModuleScript --rpc-url $DEPLOYMENT_RPC --broadcast --sender $DEPLOYMENT_SENDER --verify

Your module is now deployed to the blockchain and verified on Etherscan.

If the verification fails, you can manually verify it on Etherscan using the following command:

source .env && forge verify-contract --chain-id [YOUR_CHAIN_ID] --watch --etherscan-api-key $ETHERSCAN_API_KEY [YOUR_MODULE_ADDRESS] src/[PATH_TO_MODULE].sol:[MODULE_CONTRACT_NAME]

Tutorials

For general explainers and guided walkthroughs of building a module, check out our documentation.

Using this repo

To install the dependencies, run:

pnpm install

To build the project, run:

forge build

To run the tests, run:

forge test

Contributing

For feature or change requests, feel free to open a PR, start a discussion or get in touch with us.

About

A Foundry template for building modules using the ModuleKit

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published