Compile with Foundry
Prerequisites
Ensure that you have Foundry installed, by running the following command:
forge --versionNote that the version used in this tutorial was 1.2.3-stable. Be sure to use this version or later when following along.
If you do not have foundry yet, run the following command to install it:
curl -L https://foundry.paradigm.xyz | bashYou will need a wallet, and an account that has been funded with some Testnet INJ.
After creating your account, be sure to copy your private key somewhere accessible, as you will need it to complete this tutorial.
Set up a new Foundry project
Use git to clone the demo repo, which already has the project completely set up for you.
git clone https://github.com/injective-dev/foundry-inj
cd foundry-injInstall the forge-std library, which provides utility functions used in this project.
Orientation
Open the repo in your code editor/ IDE, and take a look at the directory structure.
The foundry.toml file is already pre-configured to connect to the Injective EVM Testnet. All you need to do before proceeding is to provide it with a private key of your Injective Testnet account.
Enter the following command to import a private key, and save it against an account named injTest:
This will prompt you for the private key, and also a password that you need to enter each time you wish to use this account. Use the private key of the account which you have just created and funded earlier (e.g. via the Injective Testnet faucet). Note that when you type or paste text for the private key and password, nothing is shown in the terminal. The output should look similar to this:
Edit the smart contract
The smart contract that is included in this demo is very basic. It:
Stores one
valuewhich is a number.Exposes a
value()query method.Exposes an
increment(num)transaction method.
Open the file: src/Counter.sol
Compile the smart contract
Run the following command:
Foundry will automatically download and run the version of the Solidity compiler (solc) that was configured in the foundry.toml file.
Check the compilation output
After the compiler completes, you should see additional directories in the project directory:
Open the Counter.json file (out/Counter.sol/Counter.json). In it, you should see the compiler outputs, including the abi and bytecode fields. These artifacts are used in all later steps (test, deploy, verify, and interact).
Next steps
Now that you have set up a Foundry project and compiled a smart contract, you are ready to test that smart contract! Check out the test a smart contract using Foundry tutorial next.
Last updated
