# via pnpm
$ pnpm add @chainlink/contracts
# via npm
$ npm install @chainlink/contracts --save
@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 '@chainlink/contracts/src/v0.8/AutomationCompatibleInterface.sol';
Note: Contracts in dev/
directories 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
# Continuing via pnpm
$ cd contracts/
$ pnpm
$ pnpm test
Please try to adhere to 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
:
- Install
pnpm
if it is not already installed - docs. - Run
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.
Most of the contracts are licensed under the MIT license. An exception to this is the ccip folder, which defaults to be licensed under the BUSL-1.1 license, however, there are a few exceptions