Skip to content

Commit

Permalink
Merge branch 'ccip-develop' into TT-1396-part-2
Browse files Browse the repository at this point in the history
  • Loading branch information
lukaszcl committed Aug 29, 2024
2 parents 14c8685 + 87b7119 commit bfb20ae
Show file tree
Hide file tree
Showing 38 changed files with 1,570 additions and 1,282 deletions.
126 changes: 66 additions & 60 deletions contracts/gas-snapshots/ccip.gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95349)
EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 20544)
EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20912)
EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 78230)
EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 81762)
EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 234078)
EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16715)
EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95271)
Expand Down Expand Up @@ -343,10 +344,10 @@ FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Su
FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeZeroInput() (gas: 13089)
FeeQuoter_applyTokenTransferFeeConfigUpdates:test_InvalidDestBytesOverhead_Revert() (gas: 17071)
FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12240)
FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 107016)
FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111366)
FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111419)
FeeQuoter_constructor:test_Setup_Success() (gas: 5336824)
FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 107046)
FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111396)
FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111449)
FeeQuoter_constructor:test_Setup_Success() (gas: 5358690)
FeeQuoter_convertTokenAmount:test_ConvertTokenAmount_Success() (gas: 72739)
FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 30963)
FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94303)
Expand All @@ -368,17 +369,17 @@ FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_S
FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40013)
FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29299)
FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 18180)
FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 81054)
FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 54294)
FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 237472)
FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 19949)
FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 31746)
FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 97692)
FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 142833)
FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 29407)
FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 111861)
FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 20085)
FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 61933)
FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 85936)
FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 56735)
FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 242354)
FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22390)
FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 34187)
FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 100133)
FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 147715)
FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21043)
FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 116743)
FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 22526)
FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 64374)
FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2094539)
FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2094497)
FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2074616)
Expand Down Expand Up @@ -564,8 +565,8 @@ MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24191)
MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61409)
MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39890)
MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32973)
MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 410714)
MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1504468)
MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 414301)
MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1506106)
NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37907)
NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23694)
NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38763)
Expand All @@ -577,10 +578,10 @@ NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success(
NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 244814)
NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 233069)
NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 153186)
NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168502)
NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220478)
NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168681)
NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220836)
NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125070)
NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 107731)
NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 107910)
NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122943)
NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42959)
NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64282)
Expand Down Expand Up @@ -747,47 +748,52 @@ OffRamp_verify:test_NotBlessedWrongChainSelector_Success() (gas: 178754)
OffRamp_verify:test_NotBlessed_Success() (gas: 141593)
OffRamp_verify:test_TooManyLeaves_Revert() (gas: 51510)
OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 390336)
OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 63649)
OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInalidChainSelector_Revert() (gas: 13308)
OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94260)
OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92177)
OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97198)
OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92235)
OnRamp_constructor:test_Constructor_Success() (gas: 2455004)
OnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 72010)
OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 112791)
OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 143561)
OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 143137)
OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 141314)
OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 143367)
OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 142736)
OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 135246)
OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 26349)
OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 133253)
OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 24426)
OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 12872)
OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 32033)
OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 15762)
OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 182032)
OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 208301)
OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 122714)
OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 144094)
OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3887491)
OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 108659)
OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 74066)
OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 273416)
OnRamp_getFee:test_EmptyMessage_Success() (gas: 104351)
OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 73173)
OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 119675)
OnRamp_getFee:test_Unhealthy_Revert() (gas: 43679)
OnRamp_allowListConfigUpdates:test_applyAllowList_Revert() (gas: 66509)
OnRamp_allowListConfigUpdates:test_applyAllowList_Success() (gas: 323566)
OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 64501)
OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInvalidChainSelector_Revert() (gas: 13242)
OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94878)
OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92812)
OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97827)
OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92870)
OnRamp_constructor:test_Constructor_Success() (gas: 2866937)
OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 115250)
OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 146019)
OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 145615)
OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 143816)
OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 145847)
OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 145216)
OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140359)
OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 28810)
OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138683)
OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 26910)
OnRamp_forwardFromRouter:test_MultiCannotSendZeroTokens_Revert() (gas: 74456)
OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 12918)
OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37224)
OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18179)
OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 185252)
OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 211543)
OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 125128)
OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 146530)
OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3891732)
OnRamp_forwardFromRouter:test_UnAllowedOriginalSender_Revert() (gas: 18609)
OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 111118)
OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76545)
OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 278740)
OnRamp_getFee:test_EmptyMessage_Success() (gas: 110107)
OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 75610)
OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 95456)
OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 41814)
OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 125476)
OnRamp_getFee:test_Unhealthy_Revert() (gas: 43669)
OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10438)
OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35270)
OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 11155)
OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 12763)
OnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 11112)
OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 15939)
OnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 52018)
OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97192)
OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35204)
OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 11402)
OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 13001)
OnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 11359)
OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16385)
OnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 55321)
OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97107)
PingPong_ccipReceive:test_CcipReceive_Success() (gas: 150169)
PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20277)
PingPong_plumbing:test_Pausing_Success() (gas: 17777)
Expand Down
5 changes: 3 additions & 2 deletions contracts/src/v0.8/ccip/FeeQuoter.sol
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ contract FeeQuoter is AuthorizedCallers, IFeeQuoter, ITypeAndVersion, IReceiver,
using KeystoneFeedDefaultMetadataLib for bytes;

error TokenNotSupported(address token);
error FeeTokenNotSupported(address token);
error ChainNotSupported(uint64 chain);
error StaleGasPrice(uint64 destChainSelector, uint256 threshold, uint256 timePassed);
error StaleKeystoneUpdate(address token, uint256 feedTimestamp, uint256 storedTimeStamp);
Expand Down Expand Up @@ -147,7 +148,7 @@ contract FeeQuoter is AuthorizedCallers, IFeeQuoter, ITypeAndVersion, IReceiver,
/// applyPremiumMultiplierWeiPerEthUpdates to set the mapping
struct PremiumMultiplierWeiPerEthArgs {
address token; // // ───────────────────╮ Token address
uint64 premiumMultiplierWeiPerEth; // ──╯ Multiplier for destination chain specific premiums. Should never be 0 so can be used as an isEnabled flag
uint64 premiumMultiplierWeiPerEth; // ──╯ Multiplier for destination chain specific premiums.
}

string public constant override typeAndVersion = "FeeQuoter 1.6.0-dev";
Expand All @@ -174,7 +175,6 @@ contract FeeQuoter is AuthorizedCallers, IFeeQuoter, ITypeAndVersion, IReceiver,
mapping(address token => IFeeQuoter.TokenPriceFeedConfig dataFeedAddress) private s_usdPriceFeedsPerToken;

/// @dev The multiplier for destination chain specific premiums that can be set by the owner or fee admin
/// This should never be 0 once set, so it can be used as an isEnabled flag
mapping(address token => uint64 premiumMultiplierWeiPerEth) internal s_premiumMultiplierWeiPerEth;

/// @dev The destination chain specific fee configs
Expand Down Expand Up @@ -473,6 +473,7 @@ contract FeeQuoter is AuthorizedCallers, IFeeQuoter, ITypeAndVersion, IReceiver,
) external view returns (uint256 feeTokenAmount) {
DestChainConfig memory destChainConfig = s_destChainConfigs[destChainSelector];
if (!destChainConfig.isEnabled) revert DestinationChainNotEnabled(destChainSelector);
if (!s_feeTokens.contains(message.feeToken)) revert FeeTokenNotSupported(message.feeToken);

uint256 numberOfTokens = message.tokenAmounts.length;
_validateMessage(destChainConfig, message.data.length, numberOfTokens, message.receiver);
Expand Down
Loading

0 comments on commit bfb20ae

Please sign in to comment.