Skip to content

v0.2.7-beta.0

Pre-release
Pre-release

Choose a tag to compare

@andrejrakic andrejrakic released this 09 Oct 23:54
· 1 commit to develop since this release
1263371

chainlink local logo

v0.2.7-beta.0 Release - 9 October 2025

This release adds support for a new Data Streams billing mechanism.

⚠️ Important: This release updates the version of the @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() and enableOnChainBilling() functions
  • getBillingMechanism() 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 to 1.6.2 version
  • Bumped @chainlink/contracts to 1.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

Full Changelog: v0.2.7-beta...v0.2.7-beta.0