We need a .js file that fully deploys the projects.
Example:
import { ethers } from "hardhat";
async function main() {
...
const lock = await ethers.deployContract("Lock");
...
}
main().catch((error) => {
...
});
Please ensure the project can be fully deployed by running node deploy.js
to a local testnet (anvil / Ganache) and the integration test does not fail.
We need a .sol file with a contract containing setUp
function, and invoking this function can fully deploy the project.
Example:
pragma solidity ^0.8.13;
import "forge-std/Test.sol";
contract ContractTest is Test {
function setUp() public {
vm.startPrank(...);
new Project();
...
}
}
Please ensure the project can be fully deployed by running forge test -mc deploy.sol -vvv
Note: all Foundry VM cheatcodes are supported, including the invariant test qualifiers.
We need a JSON-formatted string containing the deployment configuration. It shall contain all contracts that needed to be deployed, which is a map from contract file name to (a map from contract name to configs). All file names and contract names available can be obtained from results
Build artifacts URL, this will be consumed by other services Contracts not mentioned in offchain_config
are not deployed or tested.
constructor_args
the constructor argument passed to the contract during deploymentaddress
the address that this contract shall be deployed to.Example:
{"src/Counter.sol":{"Counter":{"constructor_args":"","address":"0x6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b"}},"src/Counter2.sol":{"Test2":{"constructor_args":"0x00000000000000000000000000000000000000000000000000000144bc78b202","address":"0x8B5b40e31dCB1166f17d31315E3b17b6Bfc82B37"}}}