-
Notifications
You must be signed in to change notification settings - Fork 51
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
MaxLogsKept = 1 for contract transmitter #1126
Draft
mateusz-sekara
wants to merge
994
commits into
release/2.12.0-ccip1.4
Choose a base branch
from
max-logs-kept-tests
base: release/2.12.0-ccip1.4
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I see you updated files related to
|
reductionista
force-pushed
the
max-logs-kept-tests
branch
2 times, most recently
from
August 7, 2024 00:32
d36b130
to
1c0771b
Compare
## Motivation `EVM2EVMMultiOffRamp.executeSingleMessage` is optimised by replacing memory to calldata, internal functions `_releaseOrMintSingleTokens` and `_releaseOrMintSingleToken` can be optimised ``` function executeSingleMessage(Internal.Any2EVMRampMessage memory message, bytes[] memory offchainTokenData) external ``` Tradeoff is increased contract size, which is exceeding the limit and thus we have to decrease the optimiser runs ## Findings After replacing memory with call data we have the following findings for gas and contract size | Test | Before | after | delta | | ------------------------------------------------------------------------------------------- | ------ | ------ | ------ | | EVM2EVMMultiOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() | 249368 | 247671 | \-1697 | | EVM2EVMMultiOffRamp_executeSingleMessage:test_NonContract_Success() | 20672 | 19245 | \-1427 | | EVM2EVMMultiOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() | 48381 | 47265 | \-1116 | | EVM2EVMMultiOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() | 278146 | 276759 | \-1387 | | EVM2EVMMultiOffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() | 93615 | 92499 | \-1116 | | EVM2EVMMultiOffRamp__releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() | 108343 | 107939 | \-404 | | **Optimser Run** | **Size** | **Margin(kB)** | **With call data optimisation** | | ---------------- | --------------------------------- | -------------- | ------------------------------- | | 2500 | 24.113 | 0.463 | No | | 2500 | 24.857 (size increase of 0.744kB) | \-0.281 | Yes | | 2400 | 24.635 | \-0.059 | Yes | | 2200 | 24.635 | \-0.059 | | | 2000 | 24.572 | 0.004 | Yes | --------- Signed-off-by: 0xsuryansh <[email protected]> Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com>
## Motivation It is significantly cheaper to assert balances than do the transferFrom ## Solution Undo recent approve changes, add balance assertions had to undo some of the multiOfframp calldata changes to make it fit --------- Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com>
## Motivation currently, gas amounts are placed in the SourceTokenData. However, for the multi-ramps, the token data should be chain-family agnostic, which will likely require the destGasAmount lift to another field ## Solution - add a new Struct which holds the receiverExecutionGasLimit and transferGasAmounts ```js struct GasLimitOverride { uint256 receiverExecutionGasLimit; uint256[] tokenGasOverrides; } ``` - `tokenGasOverrides` is an array of GasLimits to be used during the `relaseOrMint` call for the specific tokenPool associated with token --------- Signed-off-by: 0xsuryansh <[email protected]> Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com> Co-authored-by: 0xsuryansh <[email protected]> Co-authored-by: Rens Rooimans <[email protected]>
Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com>
## Motivation Static price removal job rollout will be delayed to after 1.5 release. To unblock db load concerns in 1.4.21 which writes prices to db, we want to reduce number of token-price related insertions in db. ## Solution Separate gas price and token price insertion frequency, insert every 10 minutes for token price. 10-min resolution for token price is accurate enough for our use case.
## Problem The previous shared wallet used in the live network tests is discontinued and we are advised to use new wallet(`0xB509c046e1182c7B36d2D9733554BC268716803C`) provided by Security team and the private key of this wallet is stored in github secret name `QA_SHARED_803C_KEY`. Need to wire this secret to our test config to consume the private key in our test. https://smartcontract-it.atlassian.net/browse/CCIP-2875 ## Solution 1. Added a stop gap solution until [testsecrets](#1189) changes are merged and secrets are modified. 2. Enable the workflow schedule --------- Co-authored-by: Balamurali Gopalswami <[email protected]> Co-authored-by: Balamurali Gopalswami <[email protected]>
## Motivation Price reporting frequencies have been turned to following values on Eth mainnet (where most price update costs is) ``` GasHeartBeat: 2hr ExecGasPriceDeviation: 400% DAPriceDeviation: 400% TokenPriceHeartBeat: 12hr TokenPriceDeviation: 20% ``` As a result, updates are mostly heartbeat driven as opposed to deviation driven. A simple trick to improve leader-lane batching is to always batch report all heartbeat prices. In clam environments where prices are heartbeat driven, this absolutely minimizes number of price reports. In flux environments where good number of prices are deviation driven while some remain heartbeat driven, e.g. in case of Eth blob base fee spike, the penalty we take for including each additional prices is low (~6k gas) v.s the OCR tx overhead (~110k gas)
## Motivation ## Solution
## Motivation Recent merges to chainlink-ccip have caused the integration test to break. ## Solution Include the gas estimator changes required as well as some token data reader changes. Include fixes from smartcontractkit/chainlink-ccip#60
## Motivation Use the latest version of deps ## Solution Upgrade OZ deps to latest version ## Implementation Notes `IERC20` and `SafeERC20` are kept on `4.8.3` because of the `^0.8.20` requirement OZ imposes on the v5 contracts. We can't upgrade these deps until the rest of the contract codebase upgrades to 0.8.20+ --------- Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com>
reductionista
force-pushed
the
max-logs-kept-tests
branch
from
August 13, 2024 02:57
1c0771b
to
f63102b
Compare
reductionista
had a problem deploying
to
publish
August 13, 2024 02:57
— with
GitHub Actions
Failure
reductionista
had a problem deploying
to
publish
August 13, 2024 03:25
— with
GitHub Actions
Failure
reductionista
force-pushed
the
max-logs-kept-tests
branch
from
August 13, 2024 03:33
f63102b
to
5ece5d3
Compare
## Motivation I guess this mis-aligned comment statement is a problem in a yml file. Hope this resolves the failure mentioned [here](https://github.com/smartcontractkit/ccip/actions/runs/10360863386/workflow#L143) ## Solution Align and try.
…instead of bytes32 (#1207) ## Description: rateLimiterConfig mapping of localToRemoteTokens to take bytes instead of bytes32 ## Details - In the MultiAggregateRateLimiter contract, the the following mapping might be simplifiable to - (uint64 remoteChainSelector -> address token) , - since it is only used as an isEnabled check (i.e. the (address token -> bytes32 remoteToken) is never used on-chain) - mapping being necessary off-chain, we need to convert the (address -> bytes32) mapping to (address -> bytes) to be consistent with using bytes for all family-agnostic addresses ```js mapping(uint64 remoteChainSelector => EnumerableMapAddresses.AddressToBytes32Map tokensLocalToRemote) internal s_rateLimitedTokensLocalToRemote; ``` this has to been changed to ```js mapping(uint64 remoteChainSelector => EnumerableMapAddresses.AddressToBytesMap tokensLocalToRemote) internal s_rateLimitedTokensLocalToRemote; ``` ## Change List: 1. New solidity library `EnumerableMapBytes32` which contains `Bytes32ToBytes` Mapping and enumerate it 2. `EnumerableMapAddresses.sol` library has added support for the new library cherrypicked from chainlink repo `EnumerableMapBytes32` 3. `MultiAggregateRateLimiter` with mapping for remoteSelector -> localTokenAddress -> remoteTokenAddress is updated to contain remoteTokenAddress as `bytes` instead of `bytes32` --------- Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com>
## Motivation Bump chainlink-ccip to the version from this PR: smartcontractkit/chainlink-ccip#64 ## Solution Bump and fix the tests.
## Motivation Routine bump of chainlink-ccip after the smartcontractkit/chainlink-ccip#64 PR was merged. This has no functional changes, see #1291 for the PR that fixed the integration tests. ## Solution Bump chainlink-ccip.
reductionista
force-pushed
the
max-logs-kept-tests
branch
from
August 14, 2024 15:53
da6a896
to
97f885f
Compare
- Fix stale comment - remove wrapper gen for the old mockRMN - should no longer be used in offchain tests, use the real RMN instead - Remove naming clash with RMN
There's already 1.4 pools out there of this type so we need a proxy
Also, remove some extraneous lines in orm_test.go
- Remove topics from SelectExcessLogs query - Early exit from loadFilters - upper >= end
reductionista
force-pushed
the
max-logs-kept-tests
branch
from
October 12, 2024 01:55
e33f9cc
to
2500099
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Solution