
Product
Introducing Webhook Events for Pull Request Scans
Add real-time Socket webhook events to your workflows to automatically receive pull request scan results and security alerts in real time.
@chainlink/contracts
Advanced tools
[!IMPORTANT] Since v1.4.0 of the Chainlink contracts, the contracts have been moved to their own repository: chainlink-evm. Prior to that, the contracts were part of the main Chainlink repository
[!WARNING] When installing via git, the ref defaults to master when no tag is given.
$ forge install smartcontractkit/chainlink-evm@<version_tag>
Add @chainlink/contracts/=lib/smartcontractkit/chainlink-evm/contracts/
in remappings.txt.
# pnpm
$ pnpm add @chainlink/contracts
# npm
$ npm install @chainlink/contracts --save
Add @chainlink/contracts/=node_modules/@chainlink/contracts/
in remappings.txt.
@chainlink/contracts
├── src # Solidity contracts
│ └── v0.8
└── abi # ABI json output
└── v0.8
The solidity smart contracts themselves can be imported via the src
directory of @chainlink/contracts
:
import {IVerifier} from '@chainlink/contracts/src/v0.8/llo-feeds/v0.5.0/interfaces/IVerifier.sol';
This repository uses Solidity remappings to resolve imports.
The remapping is defined in the remappings.txt
file.
Note:
Contracts in dev/
directories or with a typeAndVersion ending in -dev
are under active development
and are likely unaudited.
Please refrain from using these in production applications.
# Clone Chainlink repository
$ git clone https://github.com/smartcontractkit/chainlink.git
$ cd contracts/
$ pnpm
Each Chainlink project has its own directory under src/
which can be targeted using Foundry profiles.
To test a specific project, run:
# Replace <project> with the product you want to test
export FOUNDRY_PROFILE=<project>
forge test
To test the llo-feeds (data steams) project:
export FOUNDRY_PROFILE=llo-feeds
forge test
Please adhere to the Solidity Style Guide.
Contributions are welcome! Please refer to Chainlink's contributing guidelines for detailed contribution information.
Thank you!
We use changesets to manage versioning the contracts.
Every PR that modifies any configuration or code, should most likely accompanied by a changeset file.
To install changesets
:
pnpm
if it is not already installed - docs.pnpm install
.Either after or before you create a commit, run the pnpm changeset
command in the contracts
directory to create an accompanying changeset entry which will reflect on the CHANGELOG for the next release.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
FAQs
Chainlink smart contracts
The npm package @chainlink/contracts receives a total of 24,097 weekly downloads. As such, @chainlink/contracts popularity was classified as popular.
We found that @chainlink/contracts demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 8 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Add real-time Socket webhook events to your workflows to automatically receive pull request scan results and security alerts in real time.
Research
The Socket Threat Research Team uncovered malicious NuGet packages typosquatting the popular Nethereum project to steal wallet keys.
Product
A single platform for static analysis, secrets detection, container scanning, and CVE checks—built on trusted open source tools, ready to run out of the box.