Skip to content

Commit

Permalink
Rename ramps and rmn (#1323)
Browse files Browse the repository at this point in the history
  • Loading branch information
RensR authored Aug 20, 2024
1 parent 0227b9f commit 377f0db
Show file tree
Hide file tree
Showing 54 changed files with 2,816 additions and 2,940 deletions.
348 changes: 174 additions & 174 deletions contracts/gas-snapshots/ccip.gas-snapshot

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions contracts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,12 @@
"!src/v0.8/ccip/test/**/*",
"src/v0.8/ccip/test/mocks/**/*",
"!src/v0.8/ccip/test/mocks/test/*",
"!src/v0.8/ccip/onRamp/EVM2EVMMultiOnRamp.sol",
"!src/v0.8/ccip/offRamp/EVM2EVMMultiOffRamp.sol"
"!src/v0.8/ccip/onRamp/OnRamp.sol",
"!src/v0.8/ccip/offRamp/OffRamp.sol",
"!src/v0.8/ccip/ocr/MultiOCR3Base.sol",
"!src/v0.8/ccip/NonceManager.sol",
"!src/v0.8/ccip/MultiAggregateRateLimiter.sol",
"!src/v0.8/ccip/capability"
],
"pnpm": {
"_comment": "See https://github.com/ethers-io/ethers.js/discussions/2849#discussioncomment-2696454",
Expand Down
6 changes: 3 additions & 3 deletions contracts/scripts/native_solc_compile_all_ccip
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ compileContract () {
echo "OffRamp uses $OPTIMIZE_RUNS_OFFRAMP optimizer runs."
optimize_runs=$OPTIMIZE_RUNS_OFFRAMP
;;
"ccip/offRamp/EVM2EVMMultiOffRamp.sol")
"ccip/offRamp/OffRamp.sol")
echo "MultiOffRamp uses $OPTIMIZE_RUNS_MULTI_OFFRAMP optimizer runs."
optimize_runs=$OPTIMIZE_RUNS_MULTI_OFFRAMP
;;
Expand All @@ -58,11 +58,11 @@ compileContract () {
# Solc produces and overwrites intermediary contracts.
# Contracts should be ordered in reverse-import-complexity-order to minimize overwrite risks.
compileContract ccip/offRamp/EVM2EVMOffRamp.sol
compileContract ccip/offRamp/EVM2EVMMultiOffRamp.sol
compileContract ccip/offRamp/OffRamp.sol
compileContract ccip/applications/PingPongDemo.sol
compileContract ccip/applications/SelfFundedPingPong.sol
compileContract ccip/applications/EtherSenderReceiver.sol
compileContract ccip/onRamp/EVM2EVMMultiOnRamp.sol
compileContract ccip/onRamp/OnRamp.sol
compileContract ccip/onRamp/EVM2EVMOnRamp.sol
compileContract ccip/CommitStore.sol
compileContract ccip/MultiAggregateRateLimiter.sol
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ import {MultiOCR3Base} from "../ocr/MultiOCR3Base.sol";
import {IERC20} from "../../vendor/openzeppelin-solidity/v5.0.2/contracts/token/ERC20/IERC20.sol";
import {ERC165Checker} from "../../vendor/openzeppelin-solidity/v5.0.2/contracts/utils/introspection/ERC165Checker.sol";

/// @notice EVM2EVMOffRamp enables OCR networks to execute multiple messages
/// @notice OffRamp enables OCR networks to execute multiple messages
/// in an OffRamp in a single transaction.
/// @dev The EVM2EVMMultiOnRamp and EVM2EVMMultiOffRamp form an xchain upgradeable unit. Any change to one of them
/// @dev The OnRamp and OffRamp form an xchain upgradeable unit. Any change to one of them
/// results an onchain upgrade of both contracts.
/// @dev MultiOCR3Base is used to store multiple OCR configs for both the OffRamp and the CommitStore.
/// The execution plugin type has to be configured without signature verification, and the commit
/// plugin type with verification.
contract EVM2EVMMultiOffRamp is ITypeAndVersion, MultiOCR3Base {
contract OffRamp is ITypeAndVersion, MultiOCR3Base {
using ERC165Checker for address;
using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap;

Expand Down Expand Up @@ -142,7 +142,7 @@ contract EVM2EVMMultiOffRamp is ITypeAndVersion, MultiOCR3Base {
}

// STATIC CONFIG
string public constant override typeAndVersion = "EVM2EVMMultiOffRamp 1.6.0-dev";
string public constant override typeAndVersion = "OffRamp 1.6.0-dev";
/// @dev ChainSelector of this chain
uint64 internal immutable i_chainSelector;
/// @dev The address of the RMN proxy
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ import {USDPriceWith18Decimals} from "../libraries/USDPriceWith18Decimals.sol";
import {IERC20} from "../../vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
import {SafeERC20} from "../../vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/utils/SafeERC20.sol";

/// @notice The EVM2EVMMultiOnRamp is a contract that handles lane-specific fee logic
/// @dev The EVM2EVMMultiOnRamp, MultiCommitStore and EVM2EVMMultiOffRamp form an xchain upgradeable unit. Any change to one of them
/// @notice The OnRamp is a contract that handles lane-specific fee logic
/// @dev The OnRamp, MultiCommitStore and OffRamp form an xchain upgradeable unit. Any change to one of them
/// results an onchain upgrade of all 3.
contract EVM2EVMMultiOnRamp is IEVM2AnyOnRampClient, ITypeAndVersion, OwnerIsCreator {
contract OnRamp is IEVM2AnyOnRampClient, ITypeAndVersion, OwnerIsCreator {
using SafeERC20 for IERC20;
using USDPriceWith18Decimals for uint224;

Expand Down Expand Up @@ -80,7 +80,7 @@ contract EVM2EVMMultiOnRamp is IEVM2AnyOnRampClient, ITypeAndVersion, OwnerIsCre
}

// STATIC CONFIG
string public constant override typeAndVersion = "EVM2EVMMultiOnRamp 1.6.0-dev";
string public constant override typeAndVersion = "OnRamp 1.6.0-dev";
/// @dev The chain ID of the source chain that this contract is deployed to
uint64 internal immutable i_chainSelector;
/// @dev The address of the rmn proxy
Expand Down
38 changes: 15 additions & 23 deletions contracts/src/v0.8/ccip/test/NonceManager.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,15 @@ import {Client} from "../libraries/Client.sol";
import {Internal} from "../libraries/Internal.sol";
import {Pool} from "../libraries/Pool.sol";
import {RateLimiter} from "../libraries/RateLimiter.sol";
import {EVM2EVMMultiOffRamp} from "../offRamp/EVM2EVMMultiOffRamp.sol";
import {EVM2EVMMultiOnRamp} from "../onRamp/EVM2EVMMultiOnRamp.sol";
import {OffRamp} from "../offRamp/OffRamp.sol";
import {EVM2EVMOnRamp} from "../onRamp/EVM2EVMOnRamp.sol";

import {OnRamp} from "../onRamp/OnRamp.sol";
import {BaseTest} from "./BaseTest.t.sol";
import {EVM2EVMOffRampHelper} from "./helpers/EVM2EVMOffRampHelper.sol";
import {EVM2EVMOnRampHelper} from "./helpers/EVM2EVMOnRampHelper.sol";
import {MockCommitStore} from "./mocks/MockCommitStore.sol";
import {EVM2EVMMultiOffRampSetup} from "./offRamp/EVM2EVMMultiOffRampSetup.t.sol";
import {EVM2EVMMultiOnRampSetup} from "./onRamp/EVM2EVMMultiOnRampSetup.t.sol";
import {OffRampSetup} from "./offRamp/OffRampSetup.t.sol";
import {OnRampSetup} from "./onRamp/OnRampSetup.t.sol";
import {Test} from "forge-std/Test.sol";

contract NonceManager_typeAndVersion is Test {
Expand Down Expand Up @@ -87,7 +86,7 @@ contract NonceManager_NonceIncrementation is BaseTest {
}
}

contract NonceManager_applyPreviousRampsUpdates is EVM2EVMMultiOnRampSetup {
contract NonceManager_applyPreviousRampsUpdates is OnRampSetup {
function test_SingleRampUpdate() public {
address prevOnRamp = makeAddr("prevOnRamp");
address prevOffRamp = makeAddr("prevOffRamp");
Expand Down Expand Up @@ -189,7 +188,7 @@ contract NonceManager_applyPreviousRampsUpdates is EVM2EVMMultiOnRampSetup {
}
}

contract NonceManager_OnRampUpgrade is EVM2EVMMultiOnRampSetup {
contract NonceManager_OnRampUpgrade is OnRampSetup {
uint256 internal constant FEE_AMOUNT = 1234567890;
EVM2EVMOnRampHelper internal s_prevOnRamp;

Expand Down Expand Up @@ -266,7 +265,7 @@ contract NonceManager_OnRampUpgrade is EVM2EVMMultiOnRampSetup {
Client.EVM2AnyMessage memory message = _generateEmptyMessage();

vm.expectEmit();
emit EVM2EVMMultiOnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, _messageToEvent(message, 1, 1, FEE_AMOUNT, OWNER));
emit OnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, _messageToEvent(message, 1, 1, FEE_AMOUNT, OWNER));
s_onRamp.forwardFromRouter(DEST_CHAIN_SELECTOR, message, FEE_AMOUNT, OWNER);
}

Expand All @@ -293,18 +292,14 @@ contract NonceManager_OnRampUpgrade is EVM2EVMMultiOnRampSetup {

// new onramp nonce should start from 2, while sequence number start from 1
vm.expectEmit();
emit EVM2EVMMultiOnRamp.CCIPSendRequested(
DEST_CHAIN_SELECTOR, _messageToEvent(message, 1, startNonce + 2, FEE_AMOUNT, OWNER)
);
emit OnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, _messageToEvent(message, 1, startNonce + 2, FEE_AMOUNT, OWNER));
s_onRamp.forwardFromRouter(DEST_CHAIN_SELECTOR, message, FEE_AMOUNT, OWNER);

assertEq(startNonce + 2, s_outboundNonceManager.getOutboundNonce(DEST_CHAIN_SELECTOR, OWNER));

// after another send, nonce should be 3, and sequence number be 2
vm.expectEmit();
emit EVM2EVMMultiOnRamp.CCIPSendRequested(
DEST_CHAIN_SELECTOR, _messageToEvent(message, 2, startNonce + 3, FEE_AMOUNT, OWNER)
);
emit OnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, _messageToEvent(message, 2, startNonce + 3, FEE_AMOUNT, OWNER));
s_onRamp.forwardFromRouter(DEST_CHAIN_SELECTOR, message, FEE_AMOUNT, OWNER);

assertEq(startNonce + 3, s_outboundNonceManager.getOutboundNonce(DEST_CHAIN_SELECTOR, OWNER));
Expand All @@ -319,14 +314,12 @@ contract NonceManager_OnRampUpgrade is EVM2EVMMultiOnRampSetup {
address newSender = address(1234567);
// new onramp nonce should start from 1 for new sender
vm.expectEmit();
emit EVM2EVMMultiOnRamp.CCIPSendRequested(
DEST_CHAIN_SELECTOR, _messageToEvent(message, 1, 1, FEE_AMOUNT, newSender)
);
emit OnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, _messageToEvent(message, 1, 1, FEE_AMOUNT, newSender));
s_onRamp.forwardFromRouter(DEST_CHAIN_SELECTOR, message, FEE_AMOUNT, newSender);
}
}

contract NonceManager_OffRampUpgrade is EVM2EVMMultiOffRampSetup {
contract NonceManager_OffRampUpgrade is OffRampSetup {
EVM2EVMOffRampHelper internal s_prevOffRamp;
EVM2EVMOffRampHelper[] internal s_nestedPrevOffRamps;

Expand Down Expand Up @@ -366,21 +359,20 @@ contract NonceManager_OffRampUpgrade is EVM2EVMMultiOffRampSetup {
);
s_inboundNonceManager.applyPreviousRampsUpdates(previousRamps);

EVM2EVMMultiOffRamp.SourceChainConfigArgs[] memory sourceChainConfigs =
new EVM2EVMMultiOffRamp.SourceChainConfigArgs[](3);
sourceChainConfigs[0] = EVM2EVMMultiOffRamp.SourceChainConfigArgs({
OffRamp.SourceChainConfigArgs[] memory sourceChainConfigs = new OffRamp.SourceChainConfigArgs[](3);
sourceChainConfigs[0] = OffRamp.SourceChainConfigArgs({
router: s_destRouter,
sourceChainSelector: SOURCE_CHAIN_SELECTOR_1,
isEnabled: true,
onRamp: ON_RAMP_ADDRESS_1
});
sourceChainConfigs[1] = EVM2EVMMultiOffRamp.SourceChainConfigArgs({
sourceChainConfigs[1] = OffRamp.SourceChainConfigArgs({
router: s_destRouter,
sourceChainSelector: SOURCE_CHAIN_SELECTOR_2,
isEnabled: true,
onRamp: ON_RAMP_ADDRESS_2
});
sourceChainConfigs[2] = EVM2EVMMultiOffRamp.SourceChainConfigArgs({
sourceChainConfigs[2] = OffRamp.SourceChainConfigArgs({
router: s_destRouter,
sourceChainSelector: SOURCE_CHAIN_SELECTOR_3,
isEnabled: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,25 @@ pragma solidity 0.8.24;

import {Client} from "../../../libraries/Client.sol";
import {Internal} from "../../../libraries/Internal.sol";
import {EVM2EVMMultiOnRamp} from "../../../onRamp/EVM2EVMMultiOnRamp.sol";
import {OnRamp} from "../../../onRamp/OnRamp.sol";
import {TokenPool} from "../../../pools/TokenPool.sol";
import {EVM2EVMMultiOnRampSetup} from "../../onRamp/EVM2EVMMultiOnRampSetup.t.sol";
import {OnRampSetup} from "../../onRamp/OnRampSetup.t.sol";
import {FacadeClient} from "./FacadeClient.sol";
import {ReentrantMaliciousTokenPool} from "./ReentrantMaliciousTokenPool.sol";

import {IERC20} from "../../../../vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";

/// @title MultiOnRampTokenPoolReentrancy
/// Attempts to perform a reentrancy exploit on Onramp with a malicious TokenPool
contract MultiOnRampTokenPoolReentrancy is EVM2EVMMultiOnRampSetup {
contract MultiOnRampTokenPoolReentrancy is OnRampSetup {
FacadeClient internal s_facadeClient;
ReentrantMaliciousTokenPool internal s_maliciousTokenPool;
IERC20 internal s_sourceToken;
IERC20 internal s_feeToken;
address internal immutable i_receiver = makeAddr("receiver");

function setUp() public virtual override {
EVM2EVMMultiOnRampSetup.setUp();
OnRampSetup.setUp();

s_sourceToken = IERC20(s_sourceTokens[0]);
s_feeToken = IERC20(s_sourceTokens[0]);
Expand Down Expand Up @@ -107,9 +107,9 @@ contract MultiOnRampTokenPoolReentrancy is EVM2EVMMultiOnRampSetup {
Internal.EVM2AnyRampMessage memory msgEvent2 = _messageToEvent(message2, 2, 2, expectedFee, address(s_facadeClient));

vm.expectEmit();
emit EVM2EVMMultiOnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, msgEvent2);
emit OnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, msgEvent2);
vm.expectEmit();
emit EVM2EVMMultiOnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, msgEvent1);
emit OnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, msgEvent1);

s_facadeClient.send(amount);
}
Expand Down
39 changes: 19 additions & 20 deletions contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,29 @@ import {NonceManager} from "../../NonceManager.sol";
import {LockReleaseTokenPool} from "../../pools/LockReleaseTokenPool.sol";
import {TokenAdminRegistry} from "../../tokenAdminRegistry/TokenAdminRegistry.sol";
import "../helpers/MerkleHelper.sol";
import "../offRamp/EVM2EVMMultiOffRampSetup.t.sol";
import "../onRamp/EVM2EVMMultiOnRampSetup.t.sol";
import "../offRamp/OffRampSetup.t.sol";
import "../onRamp/OnRampSetup.t.sol";

/// @notice This E2E test implements the following scenario:
/// 1. Send multiple messages from multiple source chains to a single destination chain (2 messages from source chain 1 and 1 from
/// source chain 2).
/// 2. Commit multiple merkle roots (1 for each source chain).
/// 3. Batch execute all the committed messages.
contract MultiRampsE2E is EVM2EVMMultiOnRampSetup, EVM2EVMMultiOffRampSetup {
contract MultiRampsE2E is OnRampSetup, OffRampSetup {
using Internal for Internal.Any2EVMRampMessage;

Router internal s_sourceRouter2;
EVM2EVMMultiOnRampHelper internal s_onRamp2;
OnRampHelper internal s_onRamp2;
TokenAdminRegistry internal s_tokenAdminRegistry2;
NonceManager internal s_nonceManager2;

bytes32 internal s_metadataHash2;

mapping(address destPool => address sourcePool) internal s_sourcePoolByDestPool;

function setUp() public virtual override(EVM2EVMMultiOnRampSetup, EVM2EVMMultiOffRampSetup) {
EVM2EVMMultiOnRampSetup.setUp();
EVM2EVMMultiOffRampSetup.setUp();
function setUp() public virtual override(OnRampSetup, OffRampSetup) {
OnRampSetup.setUp();
OffRampSetup.setUp();

// Deploy new source router for the new source chain
s_sourceRouter2 = new Router(s_sourceRouter.getWrappedNative(), address(s_mockRMN));
Expand Down Expand Up @@ -63,7 +63,7 @@ contract MultiRampsE2E is EVM2EVMMultiOnRampSetup, EVM2EVMMultiOffRampSetup {

(
// Deploy the new source chain onramp
// Outsource to shared helper function with EVM2EVMMultiOnRampSetup
// Outsource to shared helper function with OnRampSetup
s_onRamp2,
s_metadataHash2
) = _deployOnRamp(
Expand All @@ -85,16 +85,15 @@ contract MultiRampsE2E is EVM2EVMMultiOnRampSetup, EVM2EVMMultiOffRampSetup {
_deployOffRamp(s_mockRMN, s_inboundNonceManager);

// Enable source chains on offramp
EVM2EVMMultiOffRamp.SourceChainConfigArgs[] memory sourceChainConfigs =
new EVM2EVMMultiOffRamp.SourceChainConfigArgs[](2);
sourceChainConfigs[0] = EVM2EVMMultiOffRamp.SourceChainConfigArgs({
OffRamp.SourceChainConfigArgs[] memory sourceChainConfigs = new OffRamp.SourceChainConfigArgs[](2);
sourceChainConfigs[0] = OffRamp.SourceChainConfigArgs({
router: s_destRouter,
sourceChainSelector: SOURCE_CHAIN_SELECTOR,
isEnabled: true,
// Must match OnRamp address
onRamp: abi.encode(address(s_onRamp))
});
sourceChainConfigs[1] = EVM2EVMMultiOffRamp.SourceChainConfigArgs({
sourceChainConfigs[1] = OffRamp.SourceChainConfigArgs({
router: s_destRouter,
sourceChainSelector: SOURCE_CHAIN_SELECTOR + 1,
isEnabled: true,
Expand Down Expand Up @@ -137,20 +136,20 @@ contract MultiRampsE2E is EVM2EVMMultiOnRampSetup, EVM2EVMMultiOffRampSetup {
merkleRoots[0] = MerkleHelper.getMerkleRoot(hashedMessages1);
merkleRoots[1] = MerkleHelper.getMerkleRoot(hashedMessages2);

EVM2EVMMultiOffRamp.MerkleRoot[] memory roots = new EVM2EVMMultiOffRamp.MerkleRoot[](2);
roots[0] = EVM2EVMMultiOffRamp.MerkleRoot({
OffRamp.MerkleRoot[] memory roots = new OffRamp.MerkleRoot[](2);
roots[0] = OffRamp.MerkleRoot({
sourceChainSelector: SOURCE_CHAIN_SELECTOR,
interval: EVM2EVMMultiOffRamp.Interval(messages1[0].header.sequenceNumber, messages1[1].header.sequenceNumber),
interval: OffRamp.Interval(messages1[0].header.sequenceNumber, messages1[1].header.sequenceNumber),
merkleRoot: merkleRoots[0]
});
roots[1] = EVM2EVMMultiOffRamp.MerkleRoot({
roots[1] = OffRamp.MerkleRoot({
sourceChainSelector: SOURCE_CHAIN_SELECTOR + 1,
interval: EVM2EVMMultiOffRamp.Interval(messages2[0].header.sequenceNumber, messages2[0].header.sequenceNumber),
interval: OffRamp.Interval(messages2[0].header.sequenceNumber, messages2[0].header.sequenceNumber),
merkleRoot: merkleRoots[1]
});

EVM2EVMMultiOffRamp.CommitReport memory report =
EVM2EVMMultiOffRamp.CommitReport({priceUpdates: _getEmptyPriceUpdates(), merkleRoots: roots});
OffRamp.CommitReport memory report =
OffRamp.CommitReport({priceUpdates: _getEmptyPriceUpdates(), merkleRoots: roots});

vm.resumeGasMetering();
_commit(report, ++s_latestSequenceNumber);
Expand Down Expand Up @@ -235,7 +234,7 @@ contract MultiRampsE2E is EVM2EVMMultiOnRampSetup, EVM2EVMMultiOffRampSetup {
);

vm.expectEmit();
emit EVM2EVMMultiOnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, msgEvent);
emit OnRamp.CCIPSendRequested(DEST_CHAIN_SELECTOR, msgEvent);

vm.resumeGasMetering();
router.ccipSend(DEST_CHAIN_SELECTOR, message);
Expand Down
17 changes: 6 additions & 11 deletions contracts/src/v0.8/ccip/test/helpers/CCIPReaderTester.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,20 @@
pragma solidity 0.8.24;

import {Internal} from "../../libraries/Internal.sol";
import {EVM2EVMMultiOffRamp} from "../../offRamp/EVM2EVMMultiOffRamp.sol";
import {OffRamp} from "../../offRamp/OffRamp.sol";

contract CCIPReaderTester {
event CCIPSendRequested(uint64 indexed destChainSelector, Internal.EVM2AnyRampMessage message);

mapping(uint64 sourceChainSelector => EVM2EVMMultiOffRamp.SourceChainConfig sourceChainConfig) internal
s_sourceChainConfigs;
mapping(uint64 sourceChainSelector => OffRamp.SourceChainConfig sourceChainConfig) internal s_sourceChainConfigs;

function getSourceChainConfig(uint64 sourceChainSelector)
external
view
returns (EVM2EVMMultiOffRamp.SourceChainConfig memory)
{
function getSourceChainConfig(uint64 sourceChainSelector) external view returns (OffRamp.SourceChainConfig memory) {
return s_sourceChainConfigs[sourceChainSelector];
}

function setSourceChainConfig(
uint64 sourceChainSelector,
EVM2EVMMultiOffRamp.SourceChainConfig memory sourceChainConfig
OffRamp.SourceChainConfig memory sourceChainConfig
) external {
s_sourceChainConfigs[sourceChainSelector] = sourceChainConfig;
}
Expand All @@ -47,9 +42,9 @@ contract CCIPReaderTester {
emit ExecutionStateChanged(sourceChainSelector, sequenceNumber, messageId, state, returnData);
}

event CommitReportAccepted(EVM2EVMMultiOffRamp.CommitReport report);
event CommitReportAccepted(OffRamp.CommitReport report);

function emitCommitReportAccepted(EVM2EVMMultiOffRamp.CommitReport memory report) external {
function emitCommitReportAccepted(OffRamp.CommitReport memory report) external {
emit CommitReportAccepted(report);
}
}
Loading

0 comments on commit 377f0db

Please sign in to comment.