Skip to content
This repository was archived by the owner on Mar 14, 2025. It is now read-only.

Commit 77e0540

Browse files
authored
Merge branch 'ccip-develop' into sish/sonic-config
2 parents b9161b4 + 3785c03 commit 77e0540

File tree

43 files changed

+3901
-114
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+3901
-114
lines changed

.github/e2e-tests.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -962,6 +962,32 @@ runner-test-matrix:
962962
E2E_TEST_SELECTED_NETWORK: SIMULATED_1,SIMULATED_2
963963
test_config_override_path: integration-tests/ccip-tests/testconfig/tomls/usdc_mock_deployment.toml
964964

965+
- id: ccip-smoke-lbtc-32bytes-destination-pool-data
966+
path: integration-tests/ccip-tests/smoke/ccip_test.go
967+
test_env_type: docker
968+
runs_on: ubuntu-latest
969+
triggers:
970+
- PR E2E CCIP Tests
971+
- Merge Queue E2E CCIP Tests
972+
- Nightly E2E Tests
973+
test_cmd: cd integration-tests/ccip-tests/smoke && go test ccip_test.go -test.run ^TestSmokeCCIPForBidirectionalLane$ -timeout 30m -count=1 -test.parallel=1 -json
974+
test_env_vars:
975+
E2E_TEST_SELECTED_NETWORK: SIMULATED_1,SIMULATED_2
976+
test_config_override_path: integration-tests/ccip-tests/testconfig/tomls/lbtc_mock_deployment_with_32bytes_data.toml
977+
978+
- id: ccip-smoke-lbtc-non32bytes-destination-pool-data
979+
path: integration-tests/ccip-tests/smoke/ccip_test.go
980+
test_env_type: docker
981+
runs_on: ubuntu-latest
982+
triggers:
983+
- PR E2E CCIP Tests
984+
- Merge Queue E2E CCIP Tests
985+
- Nightly E2E Tests
986+
test_cmd: cd integration-tests/ccip-tests/smoke && go test ccip_test.go -test.run ^TestSmokeCCIPForBidirectionalLane$ -timeout 30m -count=1 -test.parallel=1 -json
987+
test_env_vars:
988+
E2E_TEST_SELECTED_NETWORK: SIMULATED_1,SIMULATED_2
989+
test_config_override_path: integration-tests/ccip-tests/testconfig/tomls/lbtc_mock_deployment_with_non32bytes_data.toml
990+
965991
- id: ccip-smoke-db-compatibility
966992
path: integration-tests/ccip-tests/smoke/ccip_test.go
967993
test_env_type: docker

.github/workflows/client-compatibility-tests.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
name: Client Compatibility Tests
22
on:
3-
schedule:
4-
- cron: "30 5 * * TUE,FRI" # Run every Tuesday and Friday at midnight + 30min EST
5-
push:
6-
tags:
7-
- "*"
8-
merge_group:
9-
pull_request:
3+
# schedule:
4+
# - cron: "30 5 * * TUE,FRI" # Run every Tuesday and Friday at midnight + 30min EST
5+
# push:
6+
# tags:
7+
# - "*"
8+
# merge_group:
9+
# pull_request:
1010
workflow_dispatch:
1111
inputs:
1212
chainlinkVersion:

ccip/config/evm/Avalanche_Fuji.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ RPCBlockQueryDelay = 2
1010
NoNewFinalizedHeadsThreshold = '1m'
1111

1212
[GasEstimator]
13-
PriceDefault = '25 gwei'
14-
PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether'
15-
PriceMin = '25 gwei'
13+
PriceMin = '1 gwei'
14+
PriceDefault = '1 gwei'
1615

1716
[GasEstimator.BlockHistory]
1817
BlockHistorySize = 24

ccip/config/evm/Avalanche_Mainnet.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ RPCBlockQueryDelay = 2
1010
NoNewFinalizedHeadsThreshold = '1m'
1111

1212
[GasEstimator]
13-
PriceDefault = '25 gwei'
14-
PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether'
15-
PriceMin = '25 gwei'
13+
PriceMin = '1 gwei'
14+
PriceDefault = '1 gwei'
1615

1716
[GasEstimator.BlockHistory]
1817
# Average block time of 2s

contracts/README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4747
Most of the contracts are licensed under the [MIT](https://choosealicense.com/licenses/mit/) license.
4848
An exception to this is the ccip folder, which defaults to be licensed under the [BUSL-1.1](./src/v0.8/ccip/LICENSE.md) license, however, there are a few exceptions
4949

50-
The CCIP repo is licensed under the [BUSL-1.1](./src/v0.8/ccip/LICENSE.md) license, however, there are a few exceptions
51-
52-
- `src/v0.8/ccip/applications/*` is licensed under the [MIT](./src/v0.8/ccip/LICENSE-MIT.md) license
53-
- `src/v0.8/ccip/interfaces/*` is licensed under the [MIT](./src/v0.8/ccip/LICENSE-MIT.md) license
54-
- `src/v0.8/ccip/libraries/{Client.sol, Internal.sol}` is licensed under the [MIT](./src/v0.8/ccip/LICENSE-MIT.md) license
50+
- `src/v0.8/ccip/applications/*` is licensed under the [MIT](https://choosealicense.com/licenses/mit/) license
51+
- `src/v0.8/ccip/interfaces/*` is licensed under the [MIT](https://choosealicense.com/licenses/mit/) license
52+
- `src/v0.8/ccip/libraries/{Client.sol, Internal.sol}` is licensed under the [MIT](https://choosealicense.com/licenses/mit/) license

contracts/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
"src/v0.8/vendor/Pausable.sol",
4848
"abi/v0.8/",
4949
"src/v0.8/ccip/LICENSE.md",
50-
"src/v0.8/ccip/LICENSE-MIT.md",
5150
"src/v0.8/ccip/v1.5-CCIP-License-grants.md",
5251
"!src/v0.8/ccip/test/**/*",
5352
"src/v0.8/ccip/test/mocks/**/*",

contracts/scripts/native_solc_compile_all_ccip

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ compileContract ccip/test/helpers/receivers/MaybeRevertMessageReceiver.sol
9292
compileContract ccip/test/helpers/MultiOCR3Helper.sol
9393
compileContract ccip/test/mocks/MockE2EUSDCTokenMessenger.sol
9494
compileContract ccip/test/mocks/MockE2EUSDCTransmitter.sol
95+
compileContract ccip/test/mocks/MockLBTCTokenPool.sol
9596
compileContract ccip/test/WETH9.sol
9697

9798

contracts/src/v0.8/ccip/LICENSE-MIT.md

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// SPDX-License-Identifier: BUSL-1.1
2+
pragma solidity 0.8.24;
3+
4+
import {ITypeAndVersion} from "../../../shared/interfaces/ITypeAndVersion.sol";
5+
import {IBurnMintERC20} from "../../../shared/token/ERC20/IBurnMintERC20.sol";
6+
7+
import {Pool} from "../../libraries/Pool.sol";
8+
import {TokenPool} from "../../pools/TokenPool.sol";
9+
10+
import {IERC20} from "../../../vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
11+
import {SafeERC20} from "../../../vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/utils/SafeERC20.sol";
12+
13+
/// @notice This mock contract facilitates testing of LBTC token transfers by burning and minting tokens.
14+
contract MockLBTCTokenPool is TokenPool, ITypeAndVersion {
15+
using SafeERC20 for IERC20;
16+
17+
string public constant override typeAndVersion = "MockLBTCTokenPool 1.5.1";
18+
19+
// This variable i_destPoolData will have either a 32-byte or non-32-byte value, which will change the off-chain behavior.
20+
// If it is 32 bytes, the off-chain will consider it as attestation enabled and call the attestation API.
21+
// If it is non-32 bytes, the off-chain will consider it as attestation disabled.
22+
bytes public i_destPoolData;
23+
24+
constructor(
25+
IERC20 token,
26+
address[] memory allowlist,
27+
address rmnProxy,
28+
address router,
29+
bytes memory destPoolData
30+
) TokenPool(token, 8, allowlist, rmnProxy, router) {
31+
i_destPoolData = destPoolData;
32+
}
33+
34+
function lockOrBurn(
35+
Pool.LockOrBurnInV1 calldata lockOrBurnIn
36+
) public virtual override returns (Pool.LockOrBurnOutV1 memory) {
37+
IBurnMintERC20(address(i_token)).burn(lockOrBurnIn.amount);
38+
emit Burned(msg.sender, lockOrBurnIn.amount);
39+
40+
return
41+
Pool.LockOrBurnOutV1({
42+
destTokenAddress: getRemoteToken(
43+
lockOrBurnIn.remoteChainSelector
44+
),
45+
destPoolData: i_destPoolData
46+
});
47+
}
48+
49+
function releaseOrMint(
50+
Pool.ReleaseOrMintInV1 calldata releaseOrMintIn
51+
) public virtual override returns (Pool.ReleaseOrMintOutV1 memory) {
52+
IBurnMintERC20(address(i_token)).mint(releaseOrMintIn.receiver, releaseOrMintIn.amount);
53+
54+
emit Minted(
55+
msg.sender,
56+
releaseOrMintIn.receiver,
57+
releaseOrMintIn.amount
58+
);
59+
60+
return
61+
Pool.ReleaseOrMintOutV1({
62+
destinationAmount: releaseOrMintIn.amount
63+
});
64+
}
65+
}
66+

core/chains/evm/client/errors.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -263,9 +263,11 @@ var aStar = ClientErrors{
263263
}
264264

265265
var mantle = ClientErrors{
266-
InsufficientEth: regexp.MustCompile(`(: |^)'*insufficient funds for gas \* price \+ value`),
267-
Fatal: regexp.MustCompile(`(: |^)'*invalid sender`),
268-
NonceTooLow: regexp.MustCompile(`(: |^)'*nonce too low`),
266+
InsufficientEth: regexp.MustCompile(`(: |^)'*insufficient funds for gas \* price \+ value`),
267+
Fatal: regexp.MustCompile(`(: |^)'*invalid sender`),
268+
NonceTooLow: regexp.MustCompile(`(: |^)'*nonce too low`),
269+
ReplacementTransactionUnderpriced: regexp.MustCompile(`(: |^)'*replacement transaction underpriced`),
270+
TransactionAlreadyInMempool: regexp.MustCompile(`(: |^)'*already known`),
269271
}
270272

271273
var hederaFatal = regexp.MustCompile(`(: |^)(execution reverted)(:|$) | ^Transaction gas limit '(\d+)' exceeds block gas limit '(\d+)' | ^Transaction gas limit provided '(\d+)' is insufficient of intrinsic gas required '(\d+)' | ^Oversized data:|status INVALID_SIGNATURE`)

0 commit comments

Comments
 (0)