v0.2.7-beta.0
Pre-releasev0.2.7-beta.0 Release - 9 October 2025
This release adds support for a new Data Streams billing mechanism.
@chainlink/contracts
dependency to v1.5.0
and the @chainlink/contracts-ccip
dependency to v1.6.2
, in which the remappings related to OpenZeppelin contracts have been changed. If you experience any issues with Chainlink Local after upgrading to this release (v0.2.7-beta.0
), please report them by opening a GitHub issue.
Changelog
Dependencies
Package | Version |
---|---|
@chainlink/contracts-ccip | 1.6.2 |
@chainlink/contracts | 1.5.0 |
Added
- Data Streams billing mechanism toggle in
DataStreamsLocalSimulator.sol
enableOffChainBilling()
andenableOnChainBilling()
functionsgetBillingMechanism()
helper function- Developer-friendly error messages for billing mechanism mismatches
- Comprehensive test suite for billing mechanisms
- Trusted publishing workflow with OIDC authentication
- Automatic version and branch validation in CI/CD
Changed
- Bumped
@chainlink/contracts-ccip
to1.6.2
version - Bumped
@chainlink/contracts
to1.5.0
version - Updated import paths to use vendored OpenZeppelin contracts
- Enhanced
configuration()
function to return current fee manager state - Unified publish workflows into single automated workflow
Fixed
- Fixed Hardhat 2 compilation issues by vendoring OpenZeppelin contracts
- Fixed import path issues that occurred with updated dependency versions
Basic usage
This PR adds support for toggling between on-chain and off-chain billing mechanisms in the DataStreamsLocalSimulator
contract.
// Existing users - no changes needed!
DataStreamsLocalSimulator simulator = new DataStreamsLocalSimulator();
// Defaults to an old on-chain billing (existing behavior)
// For a new off-chain billing
simulator.enableOffChainBilling();
// Switch back to on-chain billing if needed
simulator.enableOnChainBilling();
// User contracts can check current state
address feeManager = address(verifierProxy.s_feeManager());
if (feeManager != address(0)) {
// On-chain billing active
} else {
// Off-chain billing active
}
Testing the release
To test this release install @chainlink-local
using the following commands:
Foundry (git)
forge install smartcontractkit/[email protected]
and then set remappings to: @chainlink/local/=lib/chainlink-local/
in either remappings.txt
or foundry.toml
file
Hardhat (npm)
npm install @chainlink/[email protected]
and then create the following contract and compile it:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {CCIPLocalSimulator} from "@chainlink/local/src/ccip/CCIPLocalSimulator.sol";
Remix IDE
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {CCIPLocalSimulator} from "https://github.com/smartcontractkit/chainlink-local/blob/v0.2.7-beta.0/src/ccip/CCIPLocalSimulator.sol";
PRs included
- DEVREL-144 : Data Streams billing mechanism by @andrejrakic in #47
Full Changelog: v0.2.7-beta...v0.2.7-beta.0