Add a contract in celo-monorepo
As of block height 31,056,500 (March 26, 2025, 3:00 AM UTC), Celo is no longer a standalone Layer 1 blockchain—it is now an Ethereum Layer 2! Some documentation may be outdated as updates are in progress. If you encounter issues, please file a bug report.
For the most up-to-date information, refer to our Celo L2 documentation.
Adding a contract in celo-monorepo​
Set up a unit/migration test suit for the contract you just created in celo-monorepo and a short guide to running it successfully on celo test net. We’ll be using Accounts.sol
as an example.
After initial contract creation​
After the contract is created and it’s ready to be tested, run yarn build
to trigger typechain which is essentially a TS wrapper for the contract. Keep in mind that everytime you change your contract you have to run yarn build
once again.
Unit tests​
The test directory is organized the same way as the contracts directory so feel free to navigate to the parent folder of your currently created contract and create a corresponding(.ts) file for it. For example: celo-monorepo/packages/protocol/contracts/common/Accounts.sol → celo-monorepo/packages/protocol/test/common/accounts.ts
.
Some build issues can be resolved by simply deleting the build
and the typechain
folder. Don’t forget to run yarn build
once again.