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

CCIP-4420 Merging back CCIP codebase #15890

Merged
merged 1,599 commits into from
Jan 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1599 commits
Select commit Hold shift + click to select a range
5129735
fix unhandled already seen tx error for gnosis chiado (#14099)
huangzhen1997 Aug 13, 2024
e5ea998
classify arbitrum sequencer inaccessible error as retryable (#14100)
huangzhen1997 Aug 13, 2024
48e4152
fix hh compile and bump publish-prod version (#1299)
RensR Aug 16, 2024
d003a22
Reducing baseline test requirements until all perf items are solved (…
mateusz-sekara Aug 16, 2024
7985d31
add getPreviousPool (#1312)
RensR Aug 16, 2024
07adf8a
Tooling deployment scaffolding (#1252)
connorwstein Aug 16, 2024
5cf71a9
create a script to generate artifacts for G++ (#1315)
AnieeG Aug 16, 2024
8f3486c
CCIP-2594 Add pagination based query of CCIPConfig (#1136)
defistar Aug 19, 2024
91b0cbe
feat: CCIP-1451 gasUsed for Execution to be emitted along with Execut…
defistar Aug 19, 2024
5f52675
bump ccip version in license (#1309)
RensR Aug 19, 2024
cc8d128
core/capabilities/ccip: use commit plugin w/ state machine (#1321)
makramkd Aug 19, 2024
883c9f9
Finalize date on changelog for 2.15.0 (#14144)
chainchad Aug 19, 2024
f1f63fd
Fix import paths (#1316)
connorwstein Aug 19, 2024
11c2759
set more correct gas overheads (#1319)
RensR Aug 19, 2024
b5076b1
No new finalized Heads Implementation (#13907)
dhaidashenko Jul 30, 2024
d496c99
BCI-3842 custom timeouts for Hedera (#13876)
dhaidashenko Jul 31, 2024
64a2343
Add nonce validation after broadcast for Hedera (#13957)
amit-momin Aug 1, 2024
611a928
Custom Astar finality (#14021)
dhaidashenko Aug 9, 2024
655289d
Docs update
simsonraj Aug 19, 2024
12d4cd9
Cherry-Pick: Update ZK overflow detection logic (#14132) (#1317)
HelloKashif Aug 20, 2024
d2f26ae
Updating LogPollInterval according to the block_time (#1320)
mateusz-sekara Aug 20, 2024
4e52098
fix stale comment (#1327)
RensR Aug 20, 2024
fcce450
Merge branch 'ccip-develop' into cherry-pick-handle-errors-handling-f…
simsonraj Aug 20, 2024
f5fca9d
Merge branch 'ccip-develop' into Astar_hedera_cherrypick
friedemannf Aug 20, 2024
a1ade94
Astar & Hedera changes cherry-picked (#1324)
friedemannf Aug 20, 2024
66405be
Merge branch 'ccip-develop' into cherry-pick-handle-errors-handling-f…
simsonraj Aug 20, 2024
7200ebe
Cherry pick handle errors handling for gnosis and arbitrum (#1304)
simsonraj Aug 20, 2024
0227b9f
Stronger address book typing (#1326)
connorwstein Aug 20, 2024
377f0db
Rename ramps and rmn (#1323)
RensR Aug 20, 2024
4d14ad6
Updates to manual-execution program and batch runner script (#1271)
winder Aug 20, 2024
a42fa81
CCIP-3046 Rename migration to changeset (#1332)
cmalec Aug 20, 2024
22f5d3c
Tooling refactor preparing for configuration workflows (#1334)
connorwstein Aug 20, 2024
5e33b2f
feat(web/sdk): feeds manager gql client (#1333)
MStreet3 Aug 20, 2024
a1bdf08
CCIP-3046 fix Changeset to one word (#1336)
cmalec Aug 20, 2024
6ac05d7
fix release CI ccip reference (#1340)
RensR Aug 21, 2024
6d162c0
Add deployment tests in ci (#1337)
AnieeG Aug 21, 2024
a152bc3
Report all prices from Jobspec (#1275)
0xnogo Aug 21, 2024
9f7226a
fix VERSION_PREFIX in npm CI (#1341)
RensR Aug 21, 2024
2244d99
add tag trigger to prettier and lint (#1347)
RensR Aug 22, 2024
2ccaee8
[CCIP-2611]: cherry-pick OTI head reports (#1302)
bukata-sa Aug 22, 2024
d6a5f16
Remove old integration tests for v1.6 (#1346)
asoliman92 Aug 22, 2024
8ddbe66
feat: PriceRegistry conforms to keystone interface (#1208)
0xsuryansh Aug 22, 2024
90f64c0
CODEOWNERS: ccip offchain as codeowners of capabilities (#1285)
makramkd Aug 23, 2024
12474b4
fix: CCIP-3095 fix flaky test assertions in offramp tests (#1357)
defistar Aug 23, 2024
7d29c2e
Comments cleanup (#1343)
RayXpub Aug 23, 2024
e9e71f5
RMN home & remote contracts (#1308)
gtklocker Aug 23, 2024
bbc0554
Initialize reader configs when module loads. (#1353)
winder Aug 23, 2024
876b868
Use Finality Tag for Astar (#1329)
flodesi Aug 23, 2024
d56db81
CRIB-317 - update ctf version (#1352)
rafaelfelix Aug 26, 2024
74a6b00
cherry pick: non-zero default period (#14206) + head report chain_id …
bukata-sa Aug 26, 2024
c5f2a99
fix ping pong version (#1363)
RensR Aug 26, 2024
757cbf3
go mod tidy (#1364)
RensR Aug 26, 2024
c638767
Port v1.5 fixes to v1.6 (#1286)
0xsuryansh Aug 26, 2024
ca8fa56
Chore: Change metis config (#1345)
stackman27 Aug 26, 2024
629c2a4
feat: Add support for parsing deployed 1.0 contracts which have no Ty…
polds Aug 26, 2024
0189bd0
Bump chainlink-ccip to dev branch (#1365)
dimkouv Aug 27, 2024
ad43c21
Bump chainlink-ccip to ccip-develop latest (#1371)
dimkouv Aug 27, 2024
f1d53f2
lowercase networkName (#1372)
anirudhwarrier Aug 27, 2024
fd63fe3
Rename PriceRegistry -> FeeQuoter (#1350)
RensR Aug 27, 2024
1652400
added custom treasure fatal error (#1354)
amaechiokolobi Aug 27, 2024
bc7e5a2
fix client comp workflow - image name (#1374)
anirudhwarrier Aug 27, 2024
b8dcb90
core/capabilities/ccip: update ccipreader test (#1373)
makramkd Aug 27, 2024
00ace85
feat: emit msghash with offramp (#1370)
defistar Aug 27, 2024
8d54185
Multi-Mechanism USDC Token Pools (#1280)
jhweintraub Aug 27, 2024
d2177fd
Fix typo in RMN.sol doc (#1383)
gtklocker Aug 28, 2024
3a62686
feat: CCIP-3020 Add AllowList Config struct and implementation (#1335)
defistar Aug 28, 2024
a3f61f7
Use tests.WaitTimeout for CCIPReader e2e tests (#1382)
dimkouv Aug 28, 2024
6fe155b
replace contains with equals (#1385)
anirudhwarrier Aug 28, 2024
8572a7a
bump anvil version used in load tests (#1386)
anirudhwarrier Aug 28, 2024
caa0304
[TT-1396] [CCIP-2804] Migrate CCIP to test secrets (#1189)
lukaszcl Aug 28, 2024
1659b95
core/capabilities/ccip: fix oracle startup logic (#1348)
makramkd Aug 28, 2024
28ee41a
Update prod testnet config for Ethereum/Sepolia to have slower load f…
AnieeG Aug 29, 2024
181302f
Moving CCIP.Env.NewCLCluster.Common.ChainlinkImage to the common conf…
mateusz-sekara Aug 29, 2024
7c70148
assert fees can be set to zero (#1380)
RensR Aug 29, 2024
87b7119
Exposing image version in baseline.toml test (#1390)
mateusz-sekara Aug 29, 2024
cfbe326
[CCIP-2590] Transfer Data Availability costs to the DAGasEstimator (#…
valerii-kabisov-cll Aug 29, 2024
af392bb
[TT-1326] Update Solidty Foundry pipeline with Slither (#13986)
Tofel Aug 9, 2024
c4dc7a5
add missing step id to action (#14088)
Tofel Aug 9, 2024
1cdeaef
Bump NPM and Forge dependencies (#14093)
RensR Aug 26, 2024
5c0514f
pnpm i && snapshot && forge fmt
RensR Aug 29, 2024
54ef663
Put back previous cov
RensR Aug 30, 2024
a19214d
Cherry pick Solidity CI (#1394)
RensR Aug 30, 2024
6bdc1dc
Bump chain-selectors => v1.0.23 (#1395)
friedemannf Aug 30, 2024
9952bca
Remove capabilities/ccip and integration-tests/deployment (#1399)
asoliman92 Aug 30, 2024
c8c7d92
Consensus threshold to 2f+1 for zk overflow chains (#1313)
0xnogo Sep 1, 2024
43f261e
Merge tag 'v2.15.0' into 2.15-merge
mateusz-sekara Sep 2, 2024
a793f34
Remove BASE64_NETWORK_CONFIG and use default test secrets instead (#1…
lukaszcl Sep 2, 2024
f105b1b
Post merge fixes
mateusz-sekara Sep 2, 2024
084cfec
Merge f105b1b56a0f3cb312200fe48eba5486ddca95c1 into a793f34cdd1e87b31…
mateusz-sekara Sep 2, 2024
66f42c9
Update gethwrappers
app-token-issuer-infra-releng[bot] Sep 2, 2024
10ecf42
Adding missing prom reporter. Post merge fixes
mateusz-sekara Sep 2, 2024
a7f496c
Misc golfs and fixes (#1402)
RensR Sep 3, 2024
a9b8f33
Merge branch 'ccip-develop' into 2.15-merge
mateusz-sekara Sep 3, 2024
554f7c7
Removing .swp file, probably accidentally committed
mateusz-sekara Sep 3, 2024
b252cf1
2.15 merge (#1401)
RensR Sep 3, 2024
3c694cb
bump CTF to v1.34.10 (#1406)
anirudhwarrier Sep 3, 2024
e1577f6
Adding comment to the Observation structs (#1349)
mateusz-sekara Sep 3, 2024
62ba1f0
Increase max signers (#1405)
RensR Sep 3, 2024
6ffa59d
rename CCIPSendRequested to CCIPMessageSent (#1409)
0xsuryansh Sep 4, 2024
17ce920
Skip report execution on curse (#1408)
RayXpub Sep 4, 2024
137712f
remove bootstrapP2PIds (#1388)
makramkd Sep 4, 2024
d2c51be
Integrate RMNRemote and OffRamp (#1360)
RyanRHall Sep 4, 2024
53057b1
contracts/scripts: reduce offramp optimizations (#1414)
makramkd Sep 5, 2024
01c503f
Add report vs message source chain selector check (#1413)
RayXpub Sep 5, 2024
d389c1d
Update prod testnet config with 1.5 RMN contract (#1412)
b-gopalswami Sep 5, 2024
95ffd86
CCIP-3007 : Add script for zksync compile contract (#1276)
AnieeG Sep 5, 2024
53a8491
Enforce signature verification for commit plugin in `OffRamp` (#1416)
RayXpub Sep 9, 2024
8e883b0
Revert "reorder fields in MerkleRoot struct" (#1417)
RyanRHall Sep 9, 2024
d48e3c0
CCIP-2824: Adding reorg test (#1379)
b-gopalswami Sep 9, 2024
31a15dd
Implement getTotalChainConfigurations (#1419)
RayXpub Sep 10, 2024
884e5b6
Add sanity check in applyAllowListUpdates (#1420)
RayXpub Sep 10, 2024
f550bb4
Miscellaneous fixes and cleanups (#1421)
RayXpub Sep 11, 2024
fc50683
Fix RPCClient Deadlock on Unsubscribe and NewHead (#14236) (#1426)
0xnogo Sep 11, 2024
fd212e6
CCIP-2815 commit report event updates (#1407)
defistar Sep 11, 2024
49fde28
GasLimitOverride for manuallyExecute (#1375)
0xsuryansh Sep 11, 2024
7ba1e75
Change data feeds from default to fallback in `FeeQuoter` (#1430)
RayXpub Sep 12, 2024
71be1a7
Zp/update mockrouter (#1427)
zeuslawyer Sep 12, 2024
3d54dfb
Hybrid Token Pools: Remove problematic liquidity functions and add in…
jhweintraub Sep 12, 2024
f880d4e
Make onRamp mutable in OffRamp (#1422)
RayXpub Sep 12, 2024
ba47d7d
update offramp layout (#1434)
RensR Sep 13, 2024
f169c88
add CCIPEncodingUtils contract and gethwrapper (#1429)
RyanRHall Sep 13, 2024
bd417ed
Remove TODO and rename messageValidator to messageInterceptor (#1438)
RayXpub Sep 13, 2024
1cc98db
update diagram (#1439)
RensR Sep 13, 2024
a847f78
Make forwardFromRouter non reentrant (#1437)
RayXpub Sep 13, 2024
65f31a8
Standardize message hashing functions (#1424)
RayXpub Sep 13, 2024
258959a
Validate transmitter lengths against F values (#1432)
elatoskinas Sep 13, 2024
ef3e366
Split RampTokenAmount into EVM2AnyTokenTransfer and Any2EVMTokenTrans…
0xsuryansh Sep 13, 2024
f8d2f98
Update CTF deps (#1442)
skudasov Sep 16, 2024
1eba056
CCIP-3407: Add release testing configs (#1436)
b-gopalswami Sep 17, 2024
7728bfa
Enables Out of Order Execution for E2E Tests (#1393)
kalverra Sep 17, 2024
f95dce6
Productionize RMN remote contract (#1431)
RyanRHall Sep 18, 2024
0a2d960
Add RMN_V1_6_ANY2EVM_REPORT to RMNRemote and make public (#1447)
RyanRHall Sep 18, 2024
b08c4be
CCIP-3445: Update 1.5 RMN contract address (#1448)
b-gopalswami Sep 18, 2024
f1adcc2
CCIP-3420: Fix IsRequestTriggeredWithinTimeframe (#1445)
b-gopalswami Sep 18, 2024
70c8599
Gas limit estimation feature (#14041)
amit-momin Aug 22, 2024
0245db8
Set From address for gas limit estimation feature (#14246)
amit-momin Aug 27, 2024
3f6ac83
Update EstimateGasLimit config name to EstimateLimit (#14297)
amit-momin Sep 3, 2024
a684f36
Add Mantle errors (#14053)
DylanTinianov Aug 8, 2024
f40af80
Changed Optimism L1 Oracle to support Mantle (#14160)
ma33r Aug 22, 2024
047602a
Mantle use vanilla l1 oracle (#14471)
matYang Sep 18, 2024
19d25f8
FeeHistory estimator (#13833)
dimriou Sep 4, 2024
97f6f55
Add node level OOC error (#14315)
friedemannf Sep 5, 2024
2a08e17
update CONFIG.md (#1453)
RyanRHall Sep 20, 2024
c8753d1
merge FeePaid event into CCIPMessageSent (#1456)
RyanRHall Sep 23, 2024
94ab7f2
Change Polygon zkEVM to use FeeHistory estimator (#14161)
friedemannf Sep 23, 2024
ebc7094
[CCIP-3376] Add component into CCIP price estimators to account for c…
valerii-kabisov-cll Sep 24, 2024
d0c97c5
Add Zircuit Configs (#14541)
friedemannf Sep 24, 2024
0f28999
Regenerate CONFIG.md
friedemannf Sep 24, 2024
75b4250
Add RMNHomeAddress in the OCR3Config (#1449)
0xnogo Sep 25, 2024
3205f7a
CRIB-359: ignoring problematic git tag breaking CRIB CCIP builds (#1…
rafaelfelix Sep 25, 2024
85eebef
Cherry-Pick: Add Zircuit Configs (#1464)
RensR Sep 25, 2024
79eeba4
Cherry-Pick: Change Polygon zkEVM to use FeeHistory estimator (#1462)
RensR Sep 25, 2024
ce4cc58
bump chain-selectors (#1467)
RensR Sep 25, 2024
84691bd
Use Astar Chain Type (#1465)
flodesi Sep 25, 2024
bed8240
Bump version and update CHANGELOG fore core v2.17.0
momentmaker Sep 25, 2024
390ee23
Update pragma to most restrictive dependency or feature (#1466)
RyanRHall Sep 25, 2024
374482e
CCIP-3461: Optimize mainnet soak test (#1458)
b-gopalswami Sep 26, 2024
b71329d
Removing chain dependencies from NewCommitServices construct (#1361)
patrickhuie19 Sep 27, 2024
bf72809
RMNHome (#1469)
RensR Sep 27, 2024
71799d2
ccip home (#1473)
RensR Sep 30, 2024
7d4f8e5
CCIP-3547: Fix wallet key and add slack notifcations (#1475)
b-gopalswami Oct 1, 2024
dfa420b
fix typeAndVersion (#1479)
RensR Oct 2, 2024
bd22732
fix when contract reader fails on latestRoundData call (#1476)
patrickhuie19 Oct 2, 2024
5aee339
Feature/commit init no evm followups (#1472)
patrickhuie19 Oct 2, 2024
ce11b9f
Add seq number to CCIPMessageSent event (#1481)
RyanRHall Oct 3, 2024
0a41c0b
Rename IRMNV2 => IRMNRemote (#1484)
RyanRHall Oct 3, 2024
4db2b21
Chore: Metis change (#1485)
stackman27 Oct 4, 2024
29f7edf
Do not return the error in case if onRamp not initialized (#1487)
valerii-kabisov-cll Oct 4, 2024
ace434b
integration-tests: restore original module name; remove self-replace …
jmank88 Oct 4, 2024
e97914d
contracts/ccip/capability: per (donId, pluginType) active config inde…
makramkd Oct 4, 2024
04ad1e8
fix typo (#1486)
RensR Oct 7, 2024
f77ff21
feat: add getter to return all source chain config (#1477)
0xsuryansh Oct 7, 2024
c4907f3
Pool to support rebasing mint call (#1490)
RensR Oct 8, 2024
f772bcf
Fix/onramp allowlist race condition (#1480)
0xsuryansh Oct 8, 2024
0a2e295
Bumps chain-selectors version to latest (#1492)
mohamed-mehany Oct 8, 2024
5ebb632
Finalize date on changelog for 2.17.0 (#14714)
chainchad Oct 10, 2024
2d5ff29
Make gas fee staleness threshold configurable per chain (#1491)
RyanRHall Oct 11, 2024
918ccf6
use chain Id as opposed to chain type to identify Mantle (#1489) (#1494)
matYang Oct 11, 2024
4377d9a
updated chain-selectors to 1.0.27 (#1500)
simsonraj Oct 15, 2024
dee09c7
Add Mantle NonceTooLow Error (#14859) (#1505)
matYang Oct 21, 2024
5e185bf
Merge tag 'v2.17.0' into mk/merge-v2.17
makramkd Oct 22, 2024
93c0a85
Merge branch 'ccip-develop' into mk/merge-v2.17
makramkd Oct 22, 2024
590bce5
Post merge fixes
makramkd Oct 22, 2024
80eb41b
Adding CCIP 1.5 migration test router config (#1510)
b-gopalswami Oct 25, 2024
ba786c2
Merge develop
b-gopalswami Oct 28, 2024
d4537bb
Merge branch 'ccip-develop' of github.com:smartcontractkit/ccip into …
b-gopalswami Oct 28, 2024
d888177
CCIP-3873: merge v2.17 into ccip-develop (#1506)
mateusz-sekara Oct 28, 2024
c95bed8
Fix push test image (#1514)
b-gopalswami Oct 31, 2024
8e65aa8
Cherrypick goreleaser based fixes (#1512)
HenryNguyen5 Nov 1, 2024
96ed6ec
SHIP-2006 Consolidate All FinalityDepth Settings to default TOML file…
adityavadhavkar1215 Nov 6, 2024
ffe8e51
Update celo alfajores config (#1515)
finleydecker Nov 6, 2024
e019b14
Adding TOML configs for B^2, BoB, Berachain, Unichain, Worldchain and…
fernandezlautaro Nov 7, 2024
b6f48ec
batch1_2024: changing berachain to not honor the finality tag due to …
fernandezlautaro Nov 8, 2024
ab7fa09
add Ronin configs (#1517)
amaechiokolobi Nov 8, 2024
0b93de0
Bump ChainSelector to v1.0.28 (#1528)
stackman27 Nov 11, 2024
595537f
Cherry-pick of use cache instead of map in the plugin promwrapper (#1…
0xnogo Nov 12, 2024
9ee54f9
SHIP-3990: improving working configs (#1533)
fernandezlautaro Nov 14, 2024
0d44194
Bump chain-selectors to v1.0.30 (#1536)
HelloKashif Nov 15, 2024
4653d09
Enable AutoPurge feature on all affected chains (#1524)
friedemannf Nov 18, 2024
228298c
Cherry-pick optional ws url (#1535)
dhaidashenko Nov 18, 2024
9f39f87
Fix reorg test flake (#1542)
b-gopalswami Nov 20, 2024
91b07ba
BOB fixing finality depth in mainnet (#1545)
fernandezlautaro Nov 21, 2024
75b1a6f
Updating live environments contracts to 1.5 (#1547)
b-gopalswami Nov 27, 2024
78704d3
CCIP-4288 Refactor MockCCIPRouter to support EVMExtraArgsV2 (#15301)
andrejrakic Nov 19, 2024
4b0c72e
CCIP-4105: adds OZ AccessControl support to the registry module (#15067)
RensR Nov 5, 2024
a0dfd3a
add ownable2step (#14989)
RensR Oct 29, 2024
9350c6b
Merge a0dfd3a84a946f8812d33a89ac3ee0bde15b4cc0 into 75b1a6fbca4e17622…
RensR Nov 28, 2024
e37f379
bump Foundry and forge-std (#15360)
RensR Nov 22, 2024
5e7b209
new forge fmt
RensR Nov 28, 2024
7ecb6ee
Update gethwrappers
app-token-issuer-infra-releng[bot] Nov 28, 2024
6d131fd
update snapshots
RensR Nov 28, 2024
e86b273
Merge branch 'cherry-pick-contracts' of https://github.com/smartcontr…
RensR Nov 28, 2024
3bf1170
Cherry pick `chainlink` PRs (#1549)
RensR Nov 28, 2024
8ce5b19
bump version
RensR Nov 28, 2024
5fb2a8e
bump version (#1550)
RensR Nov 28, 2024
ca9a0f7
Fix slack channel and soak test config (#1552)
b-gopalswami Nov 28, 2024
bca2fe0
Add 1.5.1 pools (#1551)
RensR Nov 29, 2024
eb419a0
add token pool factory (#1553)
RensR Nov 29, 2024
8c94ed4
CCIP-4403 skeleton: LBTC attestation (#1554)
bukata-sa Dec 2, 2024
d904a60
Add POST requests support in token data http client
NourElRashidy Dec 2, 2024
fa3b771
CCIP-4464: Add POST requests support in token data http client (#1556)
NourElRashidy Dec 3, 2024
836ea2c
CCIP-4403 lbtc onchain reader (#1555)
bukata-sa Dec 3, 2024
857c5a6
CCIP-4403 don't request lbtc attestation if payload is returned (#1557)
bukata-sa Dec 3, 2024
6c62128
CCIP-4472: Update default rate limit and cleanup comments (#1558)
NourElRashidy Dec 4, 2024
9659505
chain-selectors v1.0.31 (#1560)
cmalec Dec 5, 2024
efbe1ac
Bump chain-selector
HelloKashif Dec 5, 2024
0634d46
Update to 1.0.34
HelloKashif Dec 5, 2024
8f8d42a
Bump chain-selector (#1561)
HelloKashif Dec 5, 2024
80dd5d2
CCIP-4405: Minor fixes and add unit tests (#1559)
NourElRashidy Dec 5, 2024
3573e1a
[TT-1894] add logstream flushing to default ccip cleanup (#1570)
Tofel Dec 11, 2024
5f0b4f5
add mantle and bitlayer errors and configs
ma33r Dec 12, 2024
67cbd12
config docs
ma33r Dec 12, 2024
cae0dd9
remove unneccessary line in mantle configs
ma33r Dec 12, 2024
61344f3
refer to online license instead of file (#15631) (#1571)
RensR Dec 12, 2024
f7d9e3b
Merge branch 'ccip-develop' into SHIP-3965/bitlayer-mantle-configs
ma33r Dec 13, 2024
001a2a4
Add Bitlayer and Mantle Configs and Error Strings (#1572)
ma33r Dec 13, 2024
b276d4d
set FinalityTagBypass=false for chains with FinalityDepth<1k (#1526)
Madalosso Dec 13, 2024
a7871ef
CCIP-4408: E2E test for LBTC (#1563)
b-gopalswami Dec 13, 2024
8d974b4
ccip-exec: lbtc histogram (#1573)
bukata-sa Dec 13, 2024
654cc22
Reduce Avalanche PriceMin to 1 gwei [SHIP-4086] (#1579)
friedemannf Dec 17, 2024
c279cbb
Revert "set FinalityTagBypass=false for chains with FinalityDepth<1k"…
bukata-sa Dec 17, 2024
3b50e16
Bump CS (#1586)
stackman27 Jan 6, 2025
3785c03
run compatibility pipeline only on demand (#1574)
Tofel Jan 7, 2025
ea7c200
Sonic, HashKey toml config (#1568)
stackman27 Jan 7, 2025
6167b77
Remove DA from HashKey (#1588)
stackman27 Jan 8, 2025
9e91b40
Custom log index for sei chain (#1592)
dhaidashenko Jan 8, 2025
d323f98
Increase token data worker settings and cache duration (#1583)
0xnogo Jan 8, 2025
ecc1fb0
[Cherry Pick] Zircuit ZK Overflow detection (#1594)
amit-momin Jan 9, 2025
7ea7b6d
Merge remote-tracking branch 'upstream/ccip-develop' into develop
mateusz-sekara Jan 10, 2025
4077590
Post merge fixes
mateusz-sekara Jan 10, 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
8 changes: 8 additions & 0 deletions .mockery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -490,12 +490,20 @@ packages:
PriceRegistryReader:
config:
filename: price_registry_reader_mock.go
FeeEstimatorConfigReader:
config:
filename: fee_estimator_config_mock.go
TokenPoolReader:
config:
filename: token_pool_reader_mock.go
USDCReader:
config:
filename: usdc_reader_mock.go
github.com/smartcontractkit/chainlink/v2/core/services/ocr2/plugins/ccip/estimatorconfig:
interfaces:
GasPriceInterceptor:
config:
filename: gas_price_interceptor_mock.go
github.com/smartcontractkit/chainlink/v2/core/services/ocr2/plugins/ccip/internal/ccipdata/batchreader:
config:
filename: token_pool_batched_reader_mock.go
Expand Down
18 changes: 18 additions & 0 deletions ccip/config/evm/Sei_Mainnet.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
ChainID = '1329'
ChainType = 'sei'
# finality_depth: instant
FinalityDepth = 10
# block_time: ~0.4s, adding 1 second buffer
LogPollInterval = '2s'
# finality_depth * block_time / 60 secs = ~0.8 min (finality time)
NoNewFinalizedHeadsThreshold = '5m'
# "RPC node returned multiple missing blocks on query for block numbers [31592085 31592084] even though the WS subscription already sent us these blocks. It might help to increase EVM.RPCBlockQueryDelay (currently 1)"
RPCBlockQueryDelay = 5

[GasEstimator]
EIP1559DynamicFees = false
Mode = 'BlockHistory'
PriceMax = '3000 gwei' # recommended by ds&a

[GasEstimator.BlockHistory]
BlockHistorySize = 200
8 changes: 5 additions & 3 deletions core/chains/evm/client/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -265,9 +265,11 @@ var aStar = ClientErrors{
}

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

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`)
Expand Down
3 changes: 3 additions & 0 deletions core/chains/evm/client/errors_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ func Test_Eth_Errors(t *testing.T) {
{"gas price too low", false, "Arbitrum"},
{"client error replacement underpriced", true, "tomlConfig"},
{"", false, "tomlConfig"},
{"failed to forward tx to sequencer, please try again. Error message: 'replacement transaction underpriced'", true, "Mantle"},
}

for _, test := range tests {
Expand Down Expand Up @@ -145,6 +146,8 @@ func Test_Eth_Errors(t *testing.T) {
{"client error transaction already in mempool", true, "tomlConfig"},
{"alreadyknown", true, "Gnosis"},
{"tx already exists in cache", true, "Sei"},
{"failed to forward tx to sequencer, please try again. Error message: 'already known'", true, "Mantle"},
{"tx already exists in cache", true, "Sei"},
}
for _, test := range tests {
err = evmclient.NewSendErrorS(test.message)
Expand Down
1 change: 1 addition & 0 deletions core/chains/evm/gas/block_history_estimator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"github.com/stretchr/testify/require"

"github.com/smartcontractkit/chainlink-common/pkg/logger"

"github.com/smartcontractkit/chainlink-common/pkg/utils/tests"

commonfee "github.com/smartcontractkit/chainlink/v2/common/fee"
Expand Down
2 changes: 2 additions & 0 deletions core/chains/evm/gas/rollups/op_l1_oracle.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ import (
)

// Reads L2-specific precompiles and caches the l1GasPrice set by the L2.
//
//nolint:unused // backported from CCIP
type optimismL1Oracle struct {
services.StateMachine
client l1OracleClient
Expand Down
17 changes: 14 additions & 3 deletions core/chains/evm/types/models_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -954,7 +954,7 @@ func TestBlock_UnmarshalJSON(t *testing.T) {
t.Run("unmarshals geth block", func(t *testing.T) {
b := new(evmtypes.Block)
err := b.UnmarshalJSON([]byte(gethSampleBlock))
assert.NoError(t, err)
require.NoError(t, err)

assert.Equal(t, int64(15051090), b.Number)
assert.Equal(t, "0x45eb0a650b6b0b9fd1ee676b870e43fa7614f1034f7404070327a332faed05c0", b.Hash.Hex())
Expand All @@ -966,14 +966,25 @@ func TestBlock_UnmarshalJSON(t *testing.T) {
t.Run("handles empty result", func(t *testing.T) {
b := new(evmtypes.Block)
err := b.UnmarshalJSON([]byte("null"))
assert.Error(t, err)
require.Error(t, err)
assert.Equal(t, pkgerrors.Cause(err), evmtypes.ErrMissingBlock)
assert.True(t, pkgerrors.Is(err, evmtypes.ErrMissingBlock))
})
t.Run("unmarshals EIP-4844 block", func(t *testing.T) {
b := new(evmtypes.Block)
err := b.UnmarshalJSON([]byte(eip4844Block))
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, int64(5300694), b.Number)
assert.Equal(t, "0x3edd900025edab70dde26a52377c3d0a9474c3f540bd0131d58f508711272590", b.Hash.Hex())
assert.Equal(t, "0x077c1d68b52f8203cb90a71759a09b11c2a6577f97ea1fd4a8686a387fbedac8", b.ParentHash.Hex())
assert.Equal(t, assets.NewWeiI(96436174005), b.BaseFeePerGas)
assert.Equal(t, int64(1708087260), b.Timestamp.Unix())
assert.Len(t, b.Transactions, 6)
})
t.Run("unmarshals EIP-4844 block", func(t *testing.T) {
b := new(evmtypes.Block)
err := b.UnmarshalJSON([]byte(eip4844Block))
require.NoError(t, err)
assert.Equal(t, int64(5300694), b.Number)
assert.Equal(t, "0x3edd900025edab70dde26a52377c3d0a9474c3f540bd0131d58f508711272590", b.Hash.Hex())
assert.Equal(t, "0x077c1d68b52f8203cb90a71759a09b11c2a6577f97ea1fd4a8686a387fbedac8", b.ParentHash.Hex())
Expand Down
3,042 changes: 3,042 additions & 0 deletions core/gethwrappers/ccip/generated/mock_lbtc_token_pool/mock_lbtc_token_pool.go

Large diffs are not rendered by default.

96 changes: 88 additions & 8 deletions core/services/ocr2/delegate.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ import (
"fmt"
"log"
"strconv"
"strings"
"time"

"gopkg.in/guregu/null.v4"

cciptypes "github.com/smartcontractkit/chainlink-common/pkg/types/ccip"
"github.com/smartcontractkit/chainlink-common/pkg/types/core"

"github.com/smartcontractkit/chainlink/v2/core/services/ocr2/plugins/ccip"
"github.com/smartcontractkit/chainlink/v2/core/services/ocr2/plugins/ccip/config"

"github.com/ethereum/go-ethereum/common"
Expand Down Expand Up @@ -41,7 +43,6 @@ import (
llotypes "github.com/smartcontractkit/chainlink-common/pkg/types/llo"
"github.com/smartcontractkit/chainlink-common/pkg/utils/mailbox"
datastreamsllo "github.com/smartcontractkit/chainlink-data-streams/llo"

"github.com/smartcontractkit/chainlink/v2/core/bridges"
"github.com/smartcontractkit/chainlink/v2/core/chains/legacyevm"
coreconfig "github.com/smartcontractkit/chainlink/v2/core/config"
Expand Down Expand Up @@ -264,12 +265,12 @@ func (d *Delegate) JobType() job.Type {
return job.OffchainReporting2
}

func (d *Delegate) BeforeJobCreated(spec job.Job) {
func (d *Delegate) BeforeJobCreated(_ job.Job) {
// This is only called first time the job is created
d.isNewlyCreatedJob = true
}
func (d *Delegate) AfterJobCreated(spec job.Job) {}
func (d *Delegate) BeforeJobDeleted(spec job.Job) {}
func (d *Delegate) AfterJobCreated(_ job.Job) {}
func (d *Delegate) BeforeJobDeleted(_ job.Job) {}
func (d *Delegate) OnDeleteJob(ctx context.Context, jb job.Job) error {
// If the job spec is malformed in any way, we report the error but return nil so that
// the job deletion itself isn't blocked.
Expand Down Expand Up @@ -1650,7 +1651,85 @@ func (d *Delegate) newServicesCCIPCommit(ctx context.Context, lggr logger.Sugare
MetricsRegisterer: prometheus.WrapRegistererWith(map[string]string{"job_name": jb.Name.ValueOrZero()}, prometheus.DefaultRegisterer),
}

return ccipcommit.NewCommitServices(ctx, d.ds, srcProvider, dstProvider, d.legacyChains, jb, lggr, d.pipelineRunner, oracleArgsNoPlugin, d.isNewlyCreatedJob, int64(srcChainID), dstChainID, logError)
priceGetter, err := d.ccipCommitPriceGetter(ctx, lggr, pluginJobSpecConfig, jb)
if err != nil {
return nil, fmt.Errorf("failed to create price getter: %w", err)
}
//nolint:gosec // safe to cast
return ccipcommit.NewCommitServices(ctx, d.ds, srcProvider, dstProvider, priceGetter, jb, lggr, d.pipelineRunner, oracleArgsNoPlugin, d.isNewlyCreatedJob, int64(srcChainID), dstChainID, logError)
}

func (d *Delegate) ccipCommitPriceGetter(ctx context.Context, lggr logger.SugaredLogger, pluginJobSpecConfig ccipconfig.CommitPluginJobSpecConfig, jb job.Job) (priceGetter ccip.AllTokensPriceGetter, err error) {
spec := jb.OCR2OracleSpec
withPipeline := strings.Trim(pluginJobSpecConfig.TokenPricesUSDPipeline, "\n\t ") != ""
if withPipeline {
priceGetter, err = ccip.NewPipelineGetter(pluginJobSpecConfig.TokenPricesUSDPipeline, d.pipelineRunner, jb.ID, jb.ExternalJobID, jb.Name.ValueOrZero(), lggr)
if err != nil {
return nil, fmt.Errorf("creating pipeline price getter: %w", err)
}
} else {
// Use dynamic price getter.
if pluginJobSpecConfig.PriceGetterConfig == nil {
return nil, errors.New("priceGetterConfig is nil")
}

// Configure contract readers for all chains specified in the aggregator configurations.
// Some lanes (e.g. Wemix/Kroma) requires other clients than source and destination, since they use feeds from other chains.
aggregatorChainsToContracts := make(map[uint64][]common.Address)
for _, aggCfg := range pluginJobSpecConfig.PriceGetterConfig.AggregatorPrices {
if _, ok := aggregatorChainsToContracts[aggCfg.ChainID]; !ok {
aggregatorChainsToContracts[aggCfg.ChainID] = make([]common.Address, 0)
}

aggregatorChainsToContracts[aggCfg.ChainID] = append(aggregatorChainsToContracts[aggCfg.ChainID], aggCfg.AggregatorContractAddress)
}

contractReaders := map[uint64]types.ContractReader{}

for chainID, aggregatorContracts := range aggregatorChainsToContracts {
relayID := types.RelayID{Network: spec.Relay, ChainID: strconv.FormatUint(chainID, 10)}
relay, rerr := d.RelayGetter.Get(relayID)
if rerr != nil {
return nil, fmt.Errorf("get relay by id=%v: %w", relayID, err)
}

contractsConfig := make(map[string]evmrelaytypes.ChainContractReader, len(aggregatorContracts))
for i := range aggregatorContracts {
contractsConfig[fmt.Sprintf("%v_%v", ccip.OffchainAggregator, i)] = evmrelaytypes.ChainContractReader{
ContractABI: ccip.OffChainAggregatorABI,
Configs: map[string]*evmrelaytypes.ChainReaderDefinition{
"decimals": { // CR consumers choose an alias
ChainSpecificName: "decimals",
},
"latestRoundData": {
ChainSpecificName: "latestRoundData",
},
},
}
}
contractReaderConfig := evmrelaytypes.ChainReaderConfig{
Contracts: contractsConfig,
}

contractReaderConfigJSONBytes, jerr := json.Marshal(contractReaderConfig)
if jerr != nil {
return nil, fmt.Errorf("marshal contract reader config: %w", jerr)
}

contractReader, cerr := relay.NewContractReader(ctx, contractReaderConfigJSONBytes)
if cerr != nil {
return nil, fmt.Errorf("new ccip commit contract reader %w", cerr)
}

contractReaders[chainID] = contractReader
}

priceGetter, err = ccip.NewDynamicPriceGetter(*pluginJobSpecConfig.PriceGetterConfig, contractReaders)
if err != nil {
return nil, fmt.Errorf("creating dynamic price getter: %w", err)
}
}
return priceGetter, nil
}

func newCCIPCommitPluginBytes(isSourceProvider bool, sourceStartBlock uint64, destStartBlock uint64) config.CommitPluginConfig {
Expand Down Expand Up @@ -1834,7 +1913,7 @@ func (d *Delegate) ccipExecGetDstProvider(ctx context.Context, jb job.Job, plugi

// PROVIDER BASED ARG CONSTRUCTION
// Write PluginConfig bytes to send source/dest relayer provider + info outside of top level rargs/pargs over the wire
dstConfigBytes, err := newExecPluginConfig(false, pluginJobSpecConfig.SourceStartBlock, pluginJobSpecConfig.DestStartBlock, pluginJobSpecConfig.USDCConfig, string(jb.ID)).Encode()
dstConfigBytes, err := newExecPluginConfig(false, pluginJobSpecConfig.SourceStartBlock, pluginJobSpecConfig.DestStartBlock, pluginJobSpecConfig.USDCConfig, pluginJobSpecConfig.LBTCConfig, string(jb.ID)).Encode()
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -1867,7 +1946,7 @@ func (d *Delegate) ccipExecGetDstProvider(ctx context.Context, jb job.Job, plugi

func (d *Delegate) ccipExecGetSrcProvider(ctx context.Context, jb job.Job, pluginJobSpecConfig ccipconfig.ExecPluginJobSpecConfig, transmitterID string, dstProvider types.CCIPExecProvider) (srcProvider types.CCIPExecProvider, srcChainID uint64, err error) {
spec := jb.OCR2OracleSpec
srcConfigBytes, err := newExecPluginConfig(true, pluginJobSpecConfig.SourceStartBlock, pluginJobSpecConfig.DestStartBlock, pluginJobSpecConfig.USDCConfig, string(jb.ID)).Encode()
srcConfigBytes, err := newExecPluginConfig(true, pluginJobSpecConfig.SourceStartBlock, pluginJobSpecConfig.DestStartBlock, pluginJobSpecConfig.USDCConfig, pluginJobSpecConfig.LBTCConfig, string(jb.ID)).Encode()
if err != nil {
return nil, 0, err
}
Expand Down Expand Up @@ -1916,12 +1995,13 @@ func (d *Delegate) ccipExecGetSrcProvider(ctx context.Context, jb job.Job, plugi
return
}

func newExecPluginConfig(isSourceProvider bool, srcStartBlock uint64, dstStartBlock uint64, usdcConfig ccipconfig.USDCConfig, jobID string) config.ExecPluginConfig {
func newExecPluginConfig(isSourceProvider bool, srcStartBlock uint64, dstStartBlock uint64, usdcConfig ccipconfig.USDCConfig, lbtcConfig ccipconfig.LBTCConfig, jobID string) config.ExecPluginConfig {
return config.ExecPluginConfig{
IsSourceProvider: isSourceProvider,
SourceStartBlock: srcStartBlock,
DestStartBlock: dstStartBlock,
USDCConfig: usdcConfig,
LBTCConfig: lbtcConfig,
JobID: jobID,
}
}
Expand Down
29 changes: 21 additions & 8 deletions core/services/ocr2/plugins/ccip/ccipcommit/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,11 @@ type reportingPluginAndInfo struct {
func (rf *CommitReportingPluginFactory) NewReportingPlugin(ctx context.Context, config types.ReportingPluginConfig) (types.ReportingPlugin, types.ReportingPluginInfo, error) {
initialRetryDelay := rf.config.newReportingPluginRetryConfig.InitialDelay
maxDelay := rf.config.newReportingPluginRetryConfig.MaxDelay
maxRetries := rf.config.newReportingPluginRetryConfig.MaxRetries

pluginAndInfo, err := ccipcommon.RetryUntilSuccess(rf.NewReportingPluginFn(ctx, config), initialRetryDelay, maxDelay)
pluginAndInfo, err := ccipcommon.RetryUntilSuccess(
rf.NewReportingPluginFn(ctx, config), initialRetryDelay, maxDelay, maxRetries,
)
if err != nil {
return nil, types.ReportingPluginInfo{}, err
}
Expand All @@ -86,33 +89,33 @@ func (rf *CommitReportingPluginFactory) NewReportingPlugin(ctx context.Context,
// retried via RetryUntilSuccess. NewReportingPlugin must return successfully in order for the Commit plugin to
// function, hence why we can only keep retrying it until it succeeds.
func (rf *CommitReportingPluginFactory) NewReportingPluginFn(ctx context.Context, config types.ReportingPluginConfig) func() (reportingPluginAndInfo, error) {
return func() (reportingPluginAndInfo, error) {
newReportingPluginFn := func() (reportingPluginAndInfo, error) {
destPriceReg, err := rf.config.commitStore.ChangeConfig(ctx, config.OnchainConfig, config.OffchainConfig)
if err != nil {
return reportingPluginAndInfo{}, err
return reportingPluginAndInfo{}, fmt.Errorf("commitStore.ChangeConfig error: %w", err)
}

priceRegEvmAddr, err := ccipcalc.GenericAddrToEvm(destPriceReg)
if err != nil {
return reportingPluginAndInfo{}, err
return reportingPluginAndInfo{}, fmt.Errorf("GenericAddrToEvm error: %w", err)
}
if err = rf.UpdateDynamicReaders(ctx, priceRegEvmAddr); err != nil {
return reportingPluginAndInfo{}, err
return reportingPluginAndInfo{}, fmt.Errorf("UpdateDynamicReaders error: %w", err)
}

pluginOffChainConfig, err := rf.config.commitStore.OffchainConfig(ctx)
if err != nil {
return reportingPluginAndInfo{}, err
return reportingPluginAndInfo{}, fmt.Errorf("commitStore.OffchainConfig error: %w", err)
}

gasPriceEstimator, err := rf.config.commitStore.GasPriceEstimator(ctx)
if err != nil {
return reportingPluginAndInfo{}, err
return reportingPluginAndInfo{}, fmt.Errorf("commitStore.GasPriceEstimator error: %w", err)
}

err = rf.config.priceService.UpdateDynamicConfig(ctx, gasPriceEstimator, rf.destPriceRegReader)
if err != nil {
return reportingPluginAndInfo{}, err
return reportingPluginAndInfo{}, fmt.Errorf("priceService.UpdateDynamicConfig error: %w", err)
}

lggr := rf.config.lggr.Named("CommitReportingPlugin")
Expand Down Expand Up @@ -145,4 +148,14 @@ func (rf *CommitReportingPluginFactory) NewReportingPluginFn(ctx context.Context

return reportingPluginAndInfo{plugin, pluginInfo}, nil
}

return func() (reportingPluginAndInfo, error) {
result, err := newReportingPluginFn()
if err != nil {
rf.config.lggr.Errorw("NewReportingPlugin failed", "err", err)
rf.config.metricsCollector.NewReportingPluginError()
}

return result, err
}
}
3 changes: 3 additions & 0 deletions core/services/ocr2/plugins/ccip/ccipcommit/factory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
"github.com/smartcontractkit/chainlink-common/pkg/utils/tests"

"github.com/smartcontractkit/chainlink/v2/core/logger"
ccip2 "github.com/smartcontractkit/chainlink/v2/core/services/ocr2/plugins/ccip"
"github.com/smartcontractkit/chainlink/v2/core/services/ocr2/plugins/ccip/internal/ccipdata"
ccipdataprovidermocks "github.com/smartcontractkit/chainlink/v2/core/services/ocr2/plugins/ccip/internal/ccipdata/ccipdataprovider/mocks"
"github.com/smartcontractkit/chainlink/v2/core/services/ocr2/plugins/ccip/internal/ccipdata/mocks"
Expand All @@ -28,6 +29,8 @@ import (
func TestNewReportingPluginRetriesUntilSuccess(t *testing.T) {
ctx := tests.Context(t)
commitConfig := CommitPluginStaticConfig{}
commitConfig.lggr = logger.TestLogger(t)
commitConfig.metricsCollector = ccip2.NoopMetricsCollector

// For this unit test, ensure that there is no delay between retries
commitConfig.newReportingPluginRetryConfig = ccipdata.RetryConfig{
Expand Down
Loading
Loading