@chainlink/evm-gauntlet-functions
TypeScript icon, indicating that this package has built-in type declarations

1.1.4 • Public • Published

Chainlink Functions package

This package is an contains the comands necessary for interacting with the Chainlink Functions contracts

Handling contract updates

Whenever a contract is changed, the ABI and build must be updated this Gauntlet package.

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.
  2. Run forge build
  3. In the folder ./contracts/foundry-artifacts/<contract name>/<contract name>.json 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.
  2. In foundry.toml the [profile.functions] temporarily update test to point only to the
test = 'src/v0.8/functions/tests/v1_X/testhelpers/FunctionsClientUpgradeHelper.sol'
  1. Run:
forge build --build-info --build-info-path=./info
  1. You will notice a new folder in ./contracts/info. 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"

Using a local build

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.json
  3. Run yarn build from the gauntlet-evm respository
  4. Now in the gauntlet repository link local package version using npm link [path to gauntlet-evm's @chainlink/evm-gauntlet-functions package.json]
  5. Change gauntlet's package.json to depend on the local version that was bumped to in gauntlet-evm's @chainlink/evm-gauntlet-functions package.json
  6. Run yarn install from the gauntlet repository
  7. Run yarn build from the gauntlet repository
  8. To verify, the gauntlet 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 version
  9. Now that the packages are linked any hot changes to gauntlet-evm can be reloaded by running yarn build in gauntlet-evm and then again in gauntlet

Readme

Keywords

Package Sidebar

Install

npm i @chainlink/evm-gauntlet-functions

Weekly Downloads

2,866

Version

1.1.4

License

none

Unpacked Size

20.1 MB

Total Files

174

Last publish

Collaborators

  • notoriousenigma
  • secure.andrew
  • secure.javier
  • secure.ericz
  • secure.thanh
  • m4us