Skip to content

Latest commit

 

History

History

contracts

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Chainlink Smart Contracts

Installation

# via pnpm
$ pnpm add @chainlink/contracts
# via npm
$ npm install @chainlink/contracts --save

Directory Structure

@chainlink/contracts
├── src # Solidity contracts
│   └── v0.8
└── abi # ABI json output
    └── v0.8

Usage

The solidity smart contracts themselves can be imported via the src directory of @chainlink/contracts:

import '@chainlink/contracts/src/v0.8/AutomationCompatibleInterface.sol';

Local Development

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

Contributing

Please try to adhere to Solidity Style Guide.

Contributions are welcome! Please refer to Chainlink's contributing guidelines for detailed contribution information.

Thank you!

Changesets

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:

  1. Install pnpm if it is not already installed - docs.
  2. 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.

License

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

  • src/v0.8/ccip/applications/* is licensed under the MIT license
  • src/v0.8/ccip/interfaces/* is licensed under the MIT license
  • src/v0.8/ccip/libraries/{Client.sol, Internal.sol} is licensed under the MIT license