Skip to content

Commit

Permalink
Add comments on RMN-associated signatures
Browse files Browse the repository at this point in the history
  • Loading branch information
matYang committed Oct 16, 2023
1 parent 155b4ec commit 0fc8932
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 2 deletions.
1 change: 1 addition & 0 deletions contracts/src/v0.8/ccip/ARM.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {IARM} from "./interfaces/IARM.sol";

import {OwnerIsCreator} from "./../shared/access/OwnerIsCreator.sol";

/// @dev This contract is owned by RMN, if changes required, please notify RMN.
contract ARM is IARM, OwnerIsCreator, ITypeAndVersion {
// STATIC CONFIG
// solhint-disable-next-line chainlink-solidity/all-caps-constant-storage-variables
Expand Down
4 changes: 4 additions & 0 deletions contracts/src/v0.8/ccip/CommitStore.sol
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ contract CommitStore is ICommitStore, ITypeAndVersion, OCR2Base {

event Paused(address account);
event Unpaused(address account);
/// @dev RMN depends on this event, if changing, please notify RMN.
event ReportAccepted(CommitReport report);
event ConfigSet(StaticConfig staticConfig, DynamicConfig dynamicConfig);
event RootRemoved(bytes32 root);

/// @notice Static commit store config
/// @dev RMN depends on this struct, if changing, please notify RMN.
struct StaticConfig {
uint64 chainSelector; // ───────╮ Destination chainSelector
uint64 sourceChainSelector; // ─╯ Source chainSelector
Expand All @@ -45,6 +47,7 @@ contract CommitStore is ICommitStore, ITypeAndVersion, OCR2Base {
}

/// @notice Report that is committed by the observing DON at the committing phase
/// @dev RMN depends on this struct, if changing, please notify RMN.
struct CommitReport {
Internal.PriceUpdates priceUpdates;
Interval interval;
Expand Down Expand Up @@ -222,6 +225,7 @@ contract CommitStore is ICommitStore, ITypeAndVersion, OCR2Base {
// ================================================================

/// @notice Returns the static commit store config.
/// @dev RMN depends on this function, if changing, please notify RMN.
/// @return the configuration.
function getStaticConfig() external view returns (StaticConfig memory) {
return
Expand Down
6 changes: 5 additions & 1 deletion contracts/src/v0.8/ccip/libraries/Internal.sol
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ library Internal {
address pool; // The token pool address
}

/// @notice Report that is submitted by the execution DON at the execution phase.
/// @dev RMN depends on this struct, if changing, please notify RMN.
struct ExecutionReport {
EVM2EVMMessage[] messages;
// Contains a bytes array for each message, each inner bytes array contains bytes per transferred token
Expand All @@ -53,7 +55,8 @@ library Internal {
uint256 proofFlagBits;
}

// @notice The cross chain message that gets committed to EVM chains
/// @notice The cross chain message that gets committed to EVM chains.
/// @dev RMN depends on this struct, if changing, please notify RMN.
struct EVM2EVMMessage {
uint64 sourceChainSelector; // ─────────╮ the chain selector of the source chain, note: not chainId
address sender; // ─────────────────────╯ sender address on the source chain
Expand Down Expand Up @@ -129,6 +132,7 @@ library Internal {
/// IN_PROGRESS currently being executed, used a replay protection
/// SUCCESS successfully executed. End state
/// FAILURE unsuccessfully executed, manual execution is now enabled.
/// @dev RMN depends on this enum, if changing, please notify RMN.
enum MessageExecutionState {
UNTOUCHED,
IN_PROGRESS,
Expand Down
5 changes: 4 additions & 1 deletion contracts/src/v0.8/ccip/offRamp/EVM2EVMOffRamp.sol
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,11 @@ contract EVM2EVMOffRamp is IAny2EVMOffRamp, AggregateRateLimiter, ITypeAndVersio

event PoolAdded(address token, address pool);
event PoolRemoved(address token, address pool);
// this event is needed for Atlas; if their structs/signature changes, we must update the ABIs there
/// @dev Atlas depends on this event, if changing, please notify Atlas.
event ConfigSet(StaticConfig staticConfig, DynamicConfig dynamicConfig);
event SkippedIncorrectNonce(uint64 indexed nonce, address indexed sender);
event SkippedSenderWithPreviousRampMessageInflight(uint64 indexed nonce, address indexed sender);
/// @dev RMN depends on this event, if changing, please notify RMN.
event ExecutionStateChanged(
uint64 indexed sequenceNumber,
bytes32 indexed messageId,
Expand All @@ -75,6 +76,7 @@ contract EVM2EVMOffRamp is IAny2EVMOffRamp, AggregateRateLimiter, ITypeAndVersio
);

/// @notice Static offRamp config
/// @dev RMN depends on this struct, if changing, please notify RMN.
struct StaticConfig {
address commitStore; // ────────╮ CommitStore address on the destination chain
uint64 chainSelector; // ───────╯ Destination chainSelector
Expand Down Expand Up @@ -449,6 +451,7 @@ contract EVM2EVMOffRamp is IAny2EVMOffRamp, AggregateRateLimiter, ITypeAndVersio

/// @notice Returns the static config.
/// @dev This function will always return the same struct as the contents is static and can never change.
/// RMN depends on this function, if changing, please notify RMN.
function getStaticConfig() external view returns (StaticConfig memory) {
return
StaticConfig({
Expand Down
3 changes: 3 additions & 0 deletions contracts/src/v0.8/ccip/onRamp/EVM2EVMOnRamp.sol
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,14 @@ contract EVM2EVMOnRamp is IEVM2AnyOnRamp, ILinkAvailable, AggregateRateLimiter,
event NopPaid(address indexed nop, uint256 amount);
event FeeConfigSet(FeeTokenConfigArgs[] feeConfig);
event TokenTransferFeeConfigSet(TokenTransferFeeConfigArgs[] transferFeeConfig);
/// RMN depends on this event, if changing, please notify RMN.
event CCIPSendRequested(Internal.EVM2EVMMessage message);
event NopsSet(uint256 nopWeightsTotal, NopAndWeight[] nopsAndWeights);
event PoolAdded(address token, address pool);
event PoolRemoved(address token, address pool);

/// @dev Struct that contains the static configuration
/// RMN depends on this struct, if changing, please notify RMN.
struct StaticConfig {
address linkToken; // ────────╮ Link token address
uint64 chainSelector; // ─────╯ Source chainSelector
Expand Down Expand Up @@ -382,6 +384,7 @@ contract EVM2EVMOnRamp is IEVM2AnyOnRamp, ILinkAvailable, AggregateRateLimiter,
// ================================================================

/// @notice Returns the static onRamp config.
/// @dev RMN depends on this function, if changing, please notify RMN.
/// @return the configuration.
function getStaticConfig() external view returns (StaticConfig memory) {
return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ func (c CommitOffchainConfigV1_2_0) Validate() error {
if c.InflightCacheExpiry.Duration() == 0 {
return errors.New("must set InflightCacheExpiry")
}
// DAGasPriceDeviationPPB is not validated because it can be 0 on non-rollups

return nil
}
Expand Down

0 comments on commit 0fc8932

Please sign in to comment.