EVM Gauntlet Functions
npm install @chainlink/evm-gauntlet-functionsThis package is an contains the comands necessary for interacting with the Chainlink Functions contracts
#### Prerequisites:
First, ensure that Foundry is installed
In your local environment set the following environment variable to tell Foundry to use the Functions profile:
```
export FOUNDRY_PROFILE=functions
#### To update an ABI:
1. From the @chainlink repository go to /contracts.forge build
2. Run ./contracts/foundry-artifacts/
3. In the folder there will be artifacts. Find the relevant contracts and copy the ABI.
#### To regenerate the FunctionsContracts.build.json file:
1. From the @chainlink repository go to /contracts.foundry.toml
2. In the [profile.functions] temporarily update test to point only to the ``
test = 'src/v0.8/functions/tests/v1_X/testhelpers/FunctionsClientUpgradeHelper.sol'`
3. Run:`
forge build --build-info --build-info-path=./info./contracts/info
4. You will notice a new folder in . Verify that it looks as expected, then copy the contents into FunctionsContracts.build.json
*If using Linux, remove the .Linux.gcc suffix from the end of the field "solcLongVersion"
There are scenarios such as when testing new code or deploying to a staging DON that you may want to make changes and use them through the Gauntlet package.
The proper way to do this would be:
1. Make experimental changes
2. Bump the version here in gauntlet-evm's @chainlink/evm-gauntlet-functions package.jsonyarn build
3. Run from the gauntlet-evm respositorygauntlet
4. Now in the repository link local package version using npm link [path to gauntlet-evm's @chainlink/evm-gauntlet-functions package.json]gauntlet
5. Change 's package.json to depend on the local version that was bumped to in gauntlet-evm's @chainlink/evm-gauntlet-functions package.jsonyarn install
6. Run from the gauntlet repositoryyarn build
7. Run from the gauntlet repositorygauntlet
8. To verify, the repository's node_modules should have @chainlink/evm-gauntlet-functions with the version that you set locally and running npm ls -g should show the local package versiongauntlet-evm
9. Now that the packages are linked any hot changes to can be reloaded by running yarn build in gauntlet-evm and then again in gauntlet`