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 deployment**address**
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"}}}