Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate RMNRemote and OffRamp #1360

Merged

Conversation

RyanRHall
Copy link
Contributor

@RyanRHall RyanRHall commented Aug 23, 2024

Motivation

Remove the requirement for self-transmitted RMN blessings

Solution

Allow the commit DON to include RMN blessings at commitment time
This PR has a dependency on changes to chainlink-ccip

Copy link
Contributor

github-actions bot commented Aug 23, 2024

LCOV of commit 0e7f614 during Solidity Foundry #8012

Summary coverage rate:
  lines......: 97.6% (2152 of 2204 lines)
  functions..: 94.9% (408 of 430 functions)
  branches...: 93.4% (511 of 547 branches)

Files changed coverage rate: n/a

@RyanRHall RyanRHall marked this pull request as ready for review August 23, 2024 21:11
@RyanRHall RyanRHall requested review from makramkd, elatoskinas, RayXpub and a team as code owners August 23, 2024 21:11
@RyanRHall RyanRHall changed the title Ccip 2455 off chain blessing off ramp contract changes Integrate IRMNRemote and offchain blessing verification Aug 23, 2024
@RyanRHall RyanRHall force-pushed the CCIP-2455-off-chain-blessing-off-ramp-contract-changes branch from 76d74d5 to e830e38 Compare August 26, 2024 13:16
@RyanRHall RyanRHall requested a review from a team as a code owner August 27, 2024 14:40
@RyanRHall RyanRHall force-pushed the CCIP-2455-off-chain-blessing-off-ramp-contract-changes branch from ce7ec8f to 3289314 Compare August 27, 2024 15:53
@RyanRHall RyanRHall requested a review from a team as a code owner August 27, 2024 15:53
@RyanRHall RyanRHall force-pushed the CCIP-2455-off-chain-blessing-off-ramp-contract-changes branch from e490109 to 8847c12 Compare August 27, 2024 16:18
@RyanRHall RyanRHall force-pushed the CCIP-2455-off-chain-blessing-off-ramp-contract-changes branch from 8847c12 to 5093308 Compare August 27, 2024 16:26
@RyanRHall RyanRHall force-pushed the CCIP-2455-off-chain-blessing-off-ramp-contract-changes branch from 5093308 to 3015456 Compare August 28, 2024 19:17
@RyanRHall RyanRHall requested a review from a team as a code owner August 28, 2024 19:17
@RyanRHall RyanRHall force-pushed the CCIP-2455-off-chain-blessing-off-ramp-contract-changes branch from f961f92 to bec52a5 Compare September 3, 2024 20:30
…CCIP-2455-off-chain-blessing-off-ramp-contract-changes
@RyanRHall RyanRHall force-pushed the CCIP-2455-off-chain-blessing-off-ramp-contract-changes branch 2 times, most recently from 441eef3 to 412e4a8 Compare September 4, 2024 17:29
makramkd and others added 2 commits September 4, 2024 15:47
## Motivation

Bootstrap P2P IDs are no longer needed in the OCR config in CCIPConfig.
See #1348's description for more details.

## Solution

Remove bootstrap P2P IDs from the OCR config in CCIPConfig.

## Related PRs
smartcontractkit/chainlink-ccip#89
@RyanRHall RyanRHall force-pushed the CCIP-2455-off-chain-blessing-off-ramp-contract-changes branch from 412e4a8 to cfd706e Compare September 4, 2024 19:49
@RyanRHall RyanRHall force-pushed the CCIP-2455-off-chain-blessing-off-ramp-contract-changes branch from cfd706e to 0e7f614 Compare September 4, 2024 20:05
@RyanRHall RyanRHall enabled auto-merge (squash) September 4, 2024 20:05
uint64 sourceChainSelector; // Remote source chain selector that the Merkle Root is scoped to
bytes32 merkleRoot; // Merkle root of a single remote source chain
Internal.MerkleRoot[] merkleRoots; // Collection of merkle roots per source chain to commit
IRMNV2.Signature[] rmnSignatures; // RMN signatures on the merkle roots
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we want to be accurate these aren't signatures on the merkle roots exactly. They're signatures on a particular RMN report that consists of "lane updates" that match the updates in the merkleRoots array above. Maybe reference RMNRemote.verify() for folks who want to see the exact message being signed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you're right. If I make additional changes, I'll fix the comment :)

contracts/src/v0.8/ccip/rmn/RMNRemote.sol Show resolved Hide resolved
contracts/src/v0.8/ccip/interfaces/IRMNV2.sol Show resolved Hide resolved
bytes32 s;
}

function verify(Internal.MerkleRoot[] memory merkleRoots, Signature[] memory signatures) external view;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A basic docstring on the expected behavior of this function might be useful (e.g maybe for implementing mocks), i.e "verifies RMN signatures against provided MerkleRoot structs and reverts on invalid signatures"

@RyanRHall RyanRHall merged commit d2c51be into ccip-develop Sep 4, 2024
127 checks passed
@RyanRHall RyanRHall deleted the CCIP-2455-off-chain-blessing-off-ramp-contract-changes branch September 4, 2024 20:35
@cl-sonarqube-production
Copy link

makramkd added a commit that referenced this pull request Oct 22, 2024
…ip repo (#14345)

* Misc golfs and fixes (#1402)

Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com>

* Increase max signers (#1405)

Improve tests and error checks

---------

Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com>

* rename CCIPSendRequested to CCIPMessageSent (#1409)

* Skip report execution on curse (#1408)

## Motivation

The goal of this PR is to remove reverts on lane cursing for DON
execution transactions. If a lane is cursed, reverting will cause the
whole execution transaction to fail so any execution reports for other
lanes will be blocked.

## Solution

For DON execution transactions the behavior is now to skip the report
and emit a `SkippedReportExecution`. For manual execution we still
revert, otherwise the transaction will silently fail for the users.

---------

Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com>

* remove bootstrapP2PIds (#1388)

## Motivation

Bootstrap P2P IDs are no longer needed in the OCR config in CCIPConfig.
See #1348's description for more details.

## Solution

Remove bootstrap P2P IDs from the OCR config in CCIPConfig.

## Related PRs
smartcontractkit/chainlink-ccip#89

* fixes

* Integrate RMNRemote and OffRamp (#1360)

Remove the requirement for self-transmitted RMN blessings

Allow the commit DON to include RMN blessings at commitment time
This PR has a dependency on changes to
[chainlink-ccip](smartcontractkit/chainlink-ccip#84)

---------

Co-authored-by: Makram <[email protected]>

* contracts/scripts: reduce offramp optimizations (#1414)

## Motivation

The offramp was failing to deploy due to too many optimizations causing
a max code size exceeded error.

## Solution

Reduce the number of optimizations by 1.

Also, add a test that deploys v1.6 contracts and ensures that they are
deployable on the simulated backend.

* more fixes

* remove isBlessed from contract reader cfg

* deploy RMNRemote instead of MockRMN

* bump chainlink-ccip

* bump chainlink-ccip and add changesets

---------

Co-authored-by: Rens Rooimans <[email protected]>
Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com>
Co-authored-by: Suryansh <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Ryan Hall <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants