/chainlink-ccip

Primary LanguageGoOtherNOASSERTION

Chainlink logo

License Code Documentation API Documentation

chainlink-ccip

This repo contains [OCR3 plugins][ocr3] for CCIP. See the documentation for more.

Getting Started

Go Version

The version of go is specified in the project's go.mod file. You can install Go from their installation page.

Running the Linter

We use golangci-lint as our linting tool. Run the linter like this:

make lint

Running the Unit Tests

make test

Generating the Mocks

We use mockery to generate mocks and they're organized in the mockery.yaml file.

make generate

Development Cycle

In order to keep the main branch in working condition, we need to make sure the integration tests written in the CCIP repo will pass.

As such, part of CI will run this integration test combined with your latest pushed change.

Follow the steps below to ensure that we don't run into any unexpected breakages.

  1. Create a PR on chainlink-ccip with the changes you want to make.
  2. CI will run the integration test in the chainlink repo after applying your changes.
  3. If the integration test fails, make sure to fix it first before merging your changes into the main branch of chainlink-ccip. You can do this by:
    • Creating a branch in the CCIP repo and running go get github.com/smartcontractkit/chainlink-ccip@<your-branch-commit-sha>.
    • Fixing the build/tests.
    • You can specify a particular commit hash on the chainlink repo by adding "core ref: commit sha" to your PR description. See this as an example. If you update the description, manually rerun the workflow. NOTE: Your PR description should not contain single quote (').
  4. Once your chainlink-ccip PR is approved, merge it.
  5. Go back to your chainlink PR and bump the chainlink-ccip version to the latest main.
  6. Once the integration test passes, merge your chainlink PR into develop.