Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
85fb7f7
feat: Add Mock Data Feeds contracts
andrejrakic Jun 8, 2024
d79388c
feat: Add MockOffchainAggregator contract that expose minAnswer and m…
andrejrakic Jun 8, 2024
0f5e71f
chore: Forge install @chainlink/[email protected]
andrejrakic Jun 8, 2024
2bb3a03
feat: Add mock data feeds smoke test
andrejrakic Jun 8, 2024
f1e3c14
chore: List upcoming release in Changelog
andrejrakic Jun 8, 2024
8235aaf
feat: Add unit tests for mock data feeds contracts
andrejrakic Jun 23, 2024
c5780d3
feat: Add smoke test for mock data feeds using Hardhat
andrejrakic Jun 23, 2024
3318bab
feat: Add forking test example and prepare for beta release
andrejrakic Jun 24, 2024
eae01b6
Merge branch 'main' into develop
andrejrakic Aug 13, 2024
54ff7b0
Support for CCIP v1.5 and preparing for 0.2.2-beta release (#19)
andrejrakic Sep 12, 2024
32543f6
chore: Add CCIP v1.5 config details to Register for all available tes…
andrejrakic Oct 4, 2024
e601b3b
fix: Use the latest version of EVM2EVMOffRamp contract in the switchC…
andrejrakic Oct 10, 2024
be7007e
chore: Prepare repo for the 0.2.2 release
andrejrakic Oct 15, 2024
ffcb38e
Merge branch 'main' into develop
andrejrakic Nov 14, 2024
2d294dc
Merge branch 'main' into develop
andrejrakic Dec 10, 2024
a9d3fff
Support for Chainlink Data Streams (#25)
andrejrakic Dec 10, 2024
6620d59
chore: Include JavaScript Data Strems scripts into package.json
andrejrakic Dec 10, 2024
d43f3e4
Update README to include installation instructions for Foundry (solde…
EmanHerawy Jan 28, 2025
1243ad3
Data Streams fixes - v0.2.4-beta.0 release candidate (#34)
andrejrakic Feb 23, 2025
649b3b9
Fix year in CHANGELOG (#35)
andrejrakic Feb 23, 2025
eb2fca7
fix: Fix incorrect import path (#36)
andrejrakic Feb 23, 2025
08f53fc
chore: Prepare for 0.2.4 release
andrejrakic Mar 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 124 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,123 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.2.4] - 25 March 2025

### Dependencies

| Package | Version |
| ------------------------- | ------------ |
| @chainlink/contracts-ccip | 1.5.1-beta.0 |
| @chainlink/contracts | 1.3.0 |

### Services

- [x] Chainlink CCIP
- [x] Chainlink CCIP v1.5
- [x] Chainlink Data Feeds
- [x] Chainlink Data Streams
- [ ] Chainlink Automation
- [ ] Chainlink VRF 2
- [ ] Chainlink VRF 2.5

### Added

- Added full support for Data Streams by adding `DataStreamsLocalSimulator.sol`
(Foundry/Hardhat/Remix IDE local mode), `DataStreamsLocalSimulatorFork.sol`
(Foundry forked mode), `DataStreamsLocalSimulatorFork.js` (Hardhat forked
mode) and `MockReportGenerator.sol` & `MockReportGenerator.js` to mock
generating unverified reports by Data Streams DON for local modes in Foundry
and Hardhat respectively.
- Instructions to install Chainlink Local using Soldeer

### Changed

- Bumped `@chainlink/contracts` to `1.3.0` version
- Started returning raw Report structs from `generateReportV2`,
`generateReportV3` and`generateReportV4` functions alongside the
`signedReport` bytes blob which is already returned

## [0.2.4-beta.1] - 24 February 2025

### Dependencies

| Package | Version |
| ------------------------- | ------------ |
| @chainlink/contracts-ccip | 1.5.1-beta.0 |
| @chainlink/contracts | 1.3.0 |

### Services

- [x] Chainlink CCIP
- [x] Chainlink CCIP v1.5
- [x] Chainlink Data Feeds
- [x] Chainlink Data Streams
- [ ] Chainlink Automation
- [ ] Chainlink VRF 2
- [ ] Chainlink VRF 2.5

### Changed

- Fixed incorrect import path for `Math.sol` in `MockFeeManager.sol`

## [0.2.4-beta.0] - 23 February 2025

### Dependencies

| Package | Version |
| ------------------------- | ------------ |
| @chainlink/contracts-ccip | 1.5.1-beta.0 |
| @chainlink/contracts | 1.3.0 |

### Services

- [x] Chainlink CCIP
- [x] Chainlink CCIP v1.5
- [x] Chainlink Data Feeds
- [x] Chainlink Data Streams
- [ ] Chainlink Automation
- [ ] Chainlink VRF 2
- [ ] Chainlink VRF 2.5

### Added

- Instructions to install Chainlink Local using Soldeer

### Changed

- Bumped `@chainlink/contracts` to `1.3.0` version
- Started returning raw Report structs from `generateReportV2`,
`generateReportV3` and`generateReportV4` functions alongside the
`signedReport` bytes blob which is already returned

## [0.2.4-beta] - 10 December 2024

### Dependencies

| Package | Version |
| ------------------------- | ------------ |
| @chainlink/contracts-ccip | 1.5.1-beta.0 |
| @chainlink/contracts | 1.1.1 |

### Services

- [x] Chainlink CCIP
- [x] Chainlink CCIP v1.5
- [x] Chainlink Data Feeds
- [x] Chainlink Data Streams
- [ ] Chainlink Automation
- [ ] Chainlink VRF 2
- [ ] Chainlink VRF 2.5

### Added

- Added full support for Data Streams by adding `DataStreamsLocalSimulator.sol`
(Foundry/Hardhat/Remix IDE local mode), `DataStreamsLocalSimulatorFork.sol`
(Foundry forked mode), `DataStreamsLocalSimulatorFork.js` (Hardhat forked
mode) and `MockReportGenerator.sol` & `MockReportGenerator.js` to mock
generating unverified reports by Data Streams DON for local modes in Foundry
and Hardhat respectively.

## [0.2.3] - 30 November 2024

### Dependencies
Expand Down Expand Up @@ -299,3 +416,10 @@ and this project adheres to
https://github.com/smartcontractkit/chainlink-local/releases/tag/v0.2.2-beta.1
[0.2.2]: https://github.com/smartcontractkit/chainlink-local/releases/tag/v0.2.2
[0.2.3]: https://github.com/smartcontractkit/chainlink-local/releases/tag/v0.2.3
[0.2.4-beta]:
https://github.com/smartcontractkit/chainlink-local/releases/tag/0.2.4-beta
[0.2.4-beta.0]:
https://github.com/smartcontractkit/chainlink-local/releases/tag/0.2.4-beta.0
[0.2.4-beta.1]:
https://github.com/smartcontractkit/chainlink-local/releases/tag/0.2.4-beta.1
[0.2.4]: https://github.com/smartcontractkit/chainlink-local/releases/tag/v0.2.4
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,13 @@ forge install smartcontractkit/chainlink-local

and then set remappings to: `@chainlink/local/=lib/chainlink-local/` in either `remappings.txt` or `foundry.toml` file

#### Foundry (soldeer)

```
forge soldeer install chainlink-local~v0.2.4-beta https://github.com/smartcontractkit/chainlink-local.git
```
Replace `v0.2.4-beta` with your desired version number.

#### Hardhat (npm)

```
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Solidity API

## DataStreamsLocalSimulator

### s_mockVerifier

```solidity
contract MockVerifier s_mockVerifier
```

### s_mockVerifierProxy

```solidity
contract MockVerifierProxy s_mockVerifierProxy
```

### s_mockFeeManager

```solidity
contract MockFeeManager s_mockFeeManager
```

### s_mockRewardManager

```solidity
contract MockRewardManager s_mockRewardManager
```

### i_wrappedNative

```solidity
contract WETH9 i_wrappedNative
```

The wrapped native token instance

### i_linkToken

```solidity
contract LinkToken i_linkToken
```

The LINK token instance

### constructor

```solidity
constructor() public
```

### requestLinkFromFaucet

```solidity
function requestLinkFromFaucet(address to, uint256 amount) external returns (bool success)
```

Requests LINK tokens from the faucet. The provided amount of tokens are
transferred to provided destination address.

#### Parameters

| Name | Type | Description |
| ------ | ------- | -------------------------------------------------- |
| to | address | - The address to which LINK tokens are to be sent. |
| amount | uint256 | - The amount of LINK tokens to send. |

#### Return Values

| Name | Type | Description |
| ------- | ---- | ----------------------------------------------------------------------------- |
| success | bool | - Returns `true` if the transfer of tokens was successful, otherwise `false`. |

### configuration

```solidity
function configuration() public view returns (contract WETH9 wrappedNative_, contract LinkToken linkToken_, contract MockVerifier mockVerifier_, contract MockVerifierProxy mockVerifierProxy_, contract MockFeeManager mockFeeManager_, contract MockRewardManager mockRewardManager_)
```

@notice Returns configuration details for pre-deployed contracts and services
needed for local Data Streams simulations.

#### Return Values

| Name | Type | Description |
| ------------------- | -------------------------- | ----------------------------------- |
| wrappedNative\_ | contract WETH9 | - The wrapped native token. |
| linkToken\_ | contract LinkToken | - The LINK token. |
| mockVerifier\_ | contract MockVerifier | - The mock verifier contract. |
| mockVerifierProxy\_ | contract MockVerifierProxy | - The mock verifier proxy contract. |
| mockFeeManager\_ | contract MockFeeManager | - The mock fee manager contract. |
| mockRewardManager\_ | contract MockRewardManager | - The mock reward manager contract. |
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# Solidity API

## DataStreamsLocalSimulatorFork

### i_register

```solidity
contract Register i_register
```

The immutable register instance

### LINK_FAUCET

```solidity
address LINK_FAUCET
```

The address of the LINK faucet

### constructor

```solidity
constructor() public
```

Constructor to initialize the contract

### getNetworkDetails

```solidity
function getNetworkDetails(uint256 chainId) external view returns (struct Register.NetworkDetails)
```

Returns the default values for currently Data Streams supported networks. If
network is not present or some of the values are changed, user can manually add
new network details using the `setNetworkDetails` function.

#### Parameters

| Name | Type | Description |
| ------- | ------- | ----------------------------------------------------------------------------- |
| chainId | uint256 | - The blockchain network chain ID. For example 11155111 for Ethereum Sepolia. |

#### Return Values

| Name | Type | Description |
| ---- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [0] | struct Register.NetworkDetails | networkDetails - The tuple containing: verifierProxyAddress - The address of the Verifier Proxy smart contract. linkAddress - The address of the LINK token. |

### setNetworkDetails

```solidity
function setNetworkDetails(uint256 chainId, struct Register.NetworkDetails networkDetails) external
```

If network details are not present or some of the values are changed, user can
manually add new network details using the `setNetworkDetails` function.

#### Parameters

| Name | Type | Description |
| -------------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| chainId | uint256 | - The blockchain network chain ID. For example 11155111 for Ethereum Sepolia. |
| networkDetails | struct Register.NetworkDetails | - The tuple containing: verifierProxyAddress - The address of the Verifier Proxy smart contract. linkAddress - The address of the LINK token. |

### requestLinkFromFaucet

```solidity
function requestLinkFromFaucet(address to, uint256 amount) external returns (bool success)
```

Requests LINK tokens from the faucet. The provided amount of tokens are
transferred to provided destination address.

#### Parameters

| Name | Type | Description |
| ------ | ------- | -------------------------------------------------- |
| to | address | - The address to which LINK tokens are to be sent. |
| amount | uint256 | - The amount of LINK tokens to send. |

#### Return Values

| Name | Type | Description |
| ------- | ---- | ----------------------------------------------------------------------------- |
| success | bool | - Returns `true` if the transfer of tokens was successful, otherwise `false`. |

### requestNativeFromFaucet

```solidity
function requestNativeFromFaucet(address to, uint256 amount) external
```

Requests native coints from the faucet.

#### Parameters

| Name | Type | Description |
| ------ | ------- | --------------------------------------------------- |
| to | address | - The address to which native coins are to be sent. |
| amount | uint256 | - The amount of native coins to send. |
Loading