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

refactor(contracts-rfq): mark new methods as V2 #3410

Merged
merged 2 commits into from
Nov 25, 2024

Conversation

ChiTimesChi
Copy link
Collaborator

@ChiTimesChi ChiTimesChi commented Nov 25, 2024

Description
A clear and concise description of the features you're adding in this pull request.

Additional context
Add any other context about the problem you're solving.

Metadata

  • Fixes #[Link to Issue]

Summary by CodeRabbit

  • New Features

    • Introduced versioned functions for bridging, claiming, canceling, relaying, and proving transactions (e.g., bridgeV2, claimV2).
    • Added new parameters in the BridgeParamsV2 structure to enhance transaction handling.
  • Bug Fixes

    • Updated tests to ensure correct invocation of new versioned functions and error handling for various scenarios.
  • Documentation

    • Improved clarity in the interface for bridge transactions with updated method signatures reflecting the new versioning system.

Copy link
Contributor

coderabbitai bot commented Nov 25, 2024

Walkthrough

The pull request implements significant updates to the FastBridgeV2 contract and its associated interface, IFastBridgeV2. Key changes include renaming several functions to reflect a versioning update from V1 to V2, introducing new parameters and validation checks, and updating related tests to ensure compatibility with the new function signatures. The modifications enhance the bridge transaction process and integrate new functionalities, particularly concerning the handling of zap-related features.

Changes

File Path Change Summary
packages/contracts-rfq/contracts/FastBridgeV2.sol Functions renamed to include "V2": bridgebridgeV2, refundcancelV2, relayrelayV2, proveproveV2, claimclaimV2, getBridgeTransactiongetBridgeTransactionV2. New structure BridgeParamsV2 introduced.
packages/contracts-rfq/contracts/interfaces/IFastBridgeV2.sol Functions renamed to include "V2": bridge, relay, prove, claim, cancel updated to their respective V2 versions. New structs BridgeParamsV2 and BridgeTransactionV2 added.
packages/contracts-rfq/test/FastBridgeV2.Dst.Base.t.sol Updated method call from fastBridge.relay to fastBridge.relayV2. No changes to parameters or structure.
packages/contracts-rfq/test/FastBridgeV2.Dst.t.sol Updated test cases to call relayV2 instead of relay. Maintained existing error handling and control flow.
packages/contracts-rfq/test/FastBridgeV2.Src.Base.t.sol Updated method calls to bridgeV2, proveV2, claimV2, and cancelV2. Structure and logic remain unchanged.
packages/contracts-rfq/test/FastBridgeV2.Src.t.sol Updated tests to use claimV2 and cancelV2. Enhanced error handling for unsupported versions and invalid requests.
packages/contracts-rfq/test/integration/FastBridgeV2.TokenZapV1.Src.t.sol Updated bridge function to call fastBridge.bridgeV2 with BridgeParamsV2. No changes to event expectations or balance checks.

Possibly related PRs

Suggested labels

size/m, needs-go-generate-services/rfq

Suggested reviewers

  • parodime
  • trajan0x
  • aureliusbtc

Poem

In the meadow where bridges gleam,
FastBridgeV2 is now the dream.
With functions renamed, oh what a sight,
Zapping through tokens, all feels right!
Parameters new, validations tight,
Hopping along, our code takes flight! 🐰✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (8)
packages/contracts-rfq/test/FastBridgeV2.Dst.Base.t.sol (1)

53-53: LGTM, but ensure consistency across helper functions.

The update to use relayV2 is correct, however, there's an inconsistency with the relay helper function (line 39) which still uses the old relay method.

Consider updating both helper functions consistently:

    function relay(address caller, uint256 msgValue, IFastBridgeV2.BridgeTransactionV2 memory bridgeTx) public {
        bytes memory request = BridgeTransactionV2Lib.encodeV2(bridgeTx);
        vm.prank({msgSender: caller, txOrigin: caller});
-       fastBridge.relay{value: msgValue}(request);
+       fastBridge.relayV2{value: msgValue}(request, caller);
    }
packages/contracts-rfq/test/integration/FastBridgeV2.TokenZapV1.Src.t.sol (1)

Line range hint 1-115: Comprehensive test coverage for V2 bridging scenarios

The test suite effectively covers various bridging scenarios including:

  • Token deposits
  • Native token deposits
  • Zap operations
  • Error cases

The test structure maintains good separation of concerns with distinct setup, execution, and verification phases.

Consider adding test cases for:

  1. Edge cases with maximum values
  2. Cross-chain gas fee scenarios
  3. Failed zap operations
packages/contracts-rfq/test/FastBridgeV2.Dst.t.sol (1)

456-468: Consider adding migration test cases.

While the tests cover the V2 functionality well, consider adding test cases that verify the migration path from V1 to V2, ensuring backward compatibility if required.

Example test case to add:

+    function test_relay_v1_to_v2_migration() public {
+        // First relay with V1
+        bytes memory v1Request = // ... create v1 request
+        vm.prank(relayerA);
+        fastBridge.relay(v1Request);
+
+        // Then relay with V2
+        bytes memory v2Request = // ... create v2 request
+        vm.prank(relayerA);
+        fastBridge.relayV2(v2Request, relayerB);
+
+        // Verify both transactions are marked as relayed
+        assertTrue(fastBridge.bridgeRelays(getTxId(v1Request)));
+        assertTrue(fastBridge.bridgeRelays(getTxId(v2Request)));
+    }
packages/contracts-rfq/test/FastBridgeV2.Src.t.sol (2)

1001-1013: Consider updating test names for consistency with V2 methods.

The test functions verify claimV2 behavior but their names don't reflect the V2 suffix. Consider updating the test names to match the method being tested.

Apply this diff to maintain consistency:

-    function test_claim_revert_requestV1() public {
+    function test_claimV2_revert_requestV1() public {
         expectRevertUnsupportedVersion(0);
         vm.prank({msgSender: relayerA, txOrigin: relayerA});
         fastBridge.claimV2(mockRequestV1);
     }
 
-    function test_claim_revert_invalidRequestV2() public {
+    function test_claimV2_revert_invalidRequestV2() public {
         expectRevertInvalidEncodedTx();
         vm.prank({msgSender: relayerA, txOrigin: relayerA});
         fastBridge.claimV2(invalidRequestV2);
     }
 
-    function test_claim_revert_requestV3() public {
+    function test_claimV2_revert_requestV3() public {
         expectRevertUnsupportedVersion(3);
         vm.prank({msgSender: relayerA, txOrigin: relayerA});
         fastBridge.claimV2(mockRequestV3);
     }

1039-1051: Consider updating test names for consistency with V2 methods.

The test functions verify cancelV2 behavior but their names don't reflect the V2 suffix. Consider updating the test names to match the method being tested.

Apply this diff to maintain consistency:

-    function test_cancel_revert_requestV1() public {
+    function test_cancelV2_revert_requestV1() public {
         expectRevertUnsupportedVersion(0);
         vm.prank({msgSender: relayerA, txOrigin: relayerA});
         fastBridge.cancelV2(mockRequestV1);
     }
 
-    function test_cancel_revert_invalidRequestV2() public {
+    function test_cancelV2_revert_invalidRequestV2() public {
         expectRevertInvalidEncodedTx();
         vm.prank({msgSender: relayerA, txOrigin: relayerA});
         fastBridge.cancelV2(invalidRequestV2);
     }
 
-    function test_cancel_revert_requestV3() public {
+    function test_cancelV2_revert_requestV3() public {
         expectRevertUnsupportedVersion(3);
         vm.prank({msgSender: relayerA, txOrigin: relayerA});
         fastBridge.cancelV2(mockRequestV3);
     }
packages/contracts-rfq/contracts/FastBridgeV2.sol (3)

Line range hint 180-243: Ensure comprehensive validation in bridgeV2 parameters

The new bridgeV2 function introduces additional parameters within BridgeParamsV2. Verify that _validateBridgeParams thoroughly checks all new and existing parameters to prevent potential security vulnerabilities or misuse.

Would you like assistance in reviewing or enhancing the validation logic to ensure robust parameter checks?


Line range hint 281-349: Reentrancy consideration in relayV2 function

While relayV2 follows the checks-effects-interactions pattern, the transfer of tokens and execution of Zap involve external calls. To enhance security, consider implementing reentrancy guards to protect against potential reentrancy attacks.

Apply this diff to add reentrancy protection:

+import "@openzeppelin/contracts/security/ReentrancyGuard.sol";

-contract FastBridgeV2 is AdminV2, MulticallTarget, IFastBridgeV2, IFastBridgeV2Errors {
+contract FastBridgeV2 is AdminV2, MulticallTarget, IFastBridgeV2, IFastBridgeV2Errors, ReentrancyGuard {

     ...

-    function relayV2(bytes calldata request, address relayer) public payable {
+    function relayV2(bytes calldata request, address relayer) public payable nonReentrant {
         // existing code...
     }

     ...
}

Line range hint 243-279: Potential issue with refund logic in cancelV2

In cancelV2, when calculating the refund amount, the full amount (collateral plus protocol fees) is returned to the user. If the protocol fees are meant to be accumulated regardless of transaction cancellation, this could impact revenue. Verify if returning the protocol fees is the intended behavior.

If protocol fees should be retained upon cancellation, consider modifying the refund logic:

-uint256 amount = request.originAmount() + request.originFeeAmount();
+uint256 amount = request.originAmount();
+// Accumulate protocol fees even if the transaction is cancelled
+if (request.originFeeAmount() > 0) protocolFees[token] += request.originFeeAmount();
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between f81e128 and 209fbb1.

📒 Files selected for processing (7)
  • packages/contracts-rfq/contracts/FastBridgeV2.sol (6 hunks)
  • packages/contracts-rfq/contracts/interfaces/IFastBridgeV2.sol (1 hunks)
  • packages/contracts-rfq/test/FastBridgeV2.Dst.Base.t.sol (1 hunks)
  • packages/contracts-rfq/test/FastBridgeV2.Dst.t.sol (1 hunks)
  • packages/contracts-rfq/test/FastBridgeV2.Src.Base.t.sol (3 hunks)
  • packages/contracts-rfq/test/FastBridgeV2.Src.t.sol (2 hunks)
  • packages/contracts-rfq/test/integration/FastBridgeV2.TokenZapV1.Src.t.sol (1 hunks)
🧰 Additional context used
📓 Learnings (5)
packages/contracts-rfq/contracts/FastBridgeV2.sol (1)
Learnt from: ChiTimesChi
PR: synapsecns/sanguine#3284
File: packages/contracts-rfq/contracts/FastBridgeV2.sol:100-118
Timestamp: 2024-11-12T03:37:08.148Z
Learning: When reviewing code in `packages/contracts-rfq/contracts/FastBridgeV2.sol` (Solidity), focus on changes introduced in the PR and avoid commenting on existing functions like `refund` if they are not modified by the PR, as such comments are considered out of scope.
packages/contracts-rfq/contracts/interfaces/IFastBridgeV2.sol (1)
Learnt from: ChiTimesChi
PR: synapsecns/sanguine#3284
File: packages/contracts-rfq/contracts/FastBridgeV2.sol:100-118
Timestamp: 2024-11-12T03:37:08.148Z
Learning: When reviewing code in `packages/contracts-rfq/contracts/FastBridgeV2.sol` (Solidity), focus on changes introduced in the PR and avoid commenting on existing functions like `refund` if they are not modified by the PR, as such comments are considered out of scope.
packages/contracts-rfq/test/FastBridgeV2.Src.Base.t.sol (4)
Learnt from: ChiTimesChi
PR: synapsecns/sanguine#3284
File: packages/contracts-rfq/test/FastBridgeV2.t.sol:53-56
Timestamp: 2024-11-12T03:37:02.230Z
Learning: Modifying test utility contracts in the `test` directory is unnecessary and would only pollute the code.
Learnt from: ChiTimesChi
PR: synapsecns/sanguine#3284
File: packages/contracts-rfq/contracts/FastBridgeV2.sol:100-118
Timestamp: 2024-11-12T03:37:08.148Z
Learning: When reviewing code in `packages/contracts-rfq/contracts/FastBridgeV2.sol` (Solidity), focus on changes introduced in the PR and avoid commenting on existing functions like `refund` if they are not modified by the PR, as such comments are considered out of scope.
Learnt from: ChiTimesChi
PR: synapsecns/sanguine#3284
File: packages/contracts-rfq/test/FastBridgeV2.Src.t.sol:919-993
Timestamp: 2024-11-12T03:37:02.230Z
Learning: In Solidity test files for FastBridgeV2 (e.g., `packages/contracts-rfq/test/FastBridgeV2.Src.t.sol`), code duplication in test functions is acceptable to maintain readability and maintainability, even if it contradicts DRY principles.
Learnt from: ChiTimesChi
PR: synapsecns/sanguine#3284
File: packages/contracts-rfq/test/FastBridgeV2.Src.Base.t.sol:97-97
Timestamp: 2024-11-12T03:37:08.148Z
Learning: In `packages/contracts-rfq/test/FastBridgeV2.t.sol`, when testing expected revert behaviors, `abi.encodeWithSelector` is used with custom errors and should not be replaced with `BridgeTransactionV2Lib.encodeV2`.
packages/contracts-rfq/test/FastBridgeV2.Src.t.sol (1)
Learnt from: ChiTimesChi
PR: synapsecns/sanguine#3284
File: packages/contracts-rfq/contracts/FastBridgeV2.sol:100-118
Timestamp: 2024-11-12T03:37:08.148Z
Learning: When reviewing code in `packages/contracts-rfq/contracts/FastBridgeV2.sol` (Solidity), focus on changes introduced in the PR and avoid commenting on existing functions like `refund` if they are not modified by the PR, as such comments are considered out of scope.
packages/contracts-rfq/test/integration/FastBridgeV2.TokenZapV1.Src.t.sol (2)
Learnt from: ChiTimesChi
PR: synapsecns/sanguine#3300
File: packages/contracts-rfq/contracts/FastBridgeV2.sol:451-453
Timestamp: 2024-11-12T03:37:02.230Z
Learning: In the `FastBridgeV2` contract (`packages/contracts-rfq/contracts/FastBridgeV2.sol`), `destToken` is used for the Zap, so when validating parameters in `_validateBridgeParams`, we should check `params.destToken` when verifying if `ZapNativeNotSupported`.
Learnt from: ChiTimesChi
PR: synapsecns/sanguine#3284
File: packages/contracts-rfq/test/FastBridgeV2.Src.t.sol:919-993
Timestamp: 2024-11-12T03:37:02.230Z
Learning: In Solidity test files for FastBridgeV2 (e.g., `packages/contracts-rfq/test/FastBridgeV2.Src.t.sol`), code duplication in test functions is acceptable to maintain readability and maintainability, even if it contradicts DRY principles.
🔇 Additional comments (18)
packages/contracts-rfq/test/integration/FastBridgeV2.TokenZapV1.Src.t.sol (1)

40-40: LGTM! Function call updated to match V2 interface

The change from bridge to bridgeV2 correctly aligns with the interface updates while maintaining the same parameter structure.

packages/contracts-rfq/test/FastBridgeV2.Src.Base.t.sol (4)

71-71: LGTM: Correctly updated to use V2 bridge method

The change appropriately updates the test helper to use the new bridgeV2 method while maintaining backward compatibility by accepting both V1 and V2 parameters.


76-76: LGTM: Correctly updated to use V2 prove method

The change appropriately updates the test helper to use the new proveV2 method while maintaining the same parameter structure.


86-86: LGTM: Correctly updated to use V2 claim method

The change appropriately updates the test helper to use the new claimV2 method while maintaining the correct encoding of V2 bridge transactions.


101-101: LGTM: Correctly updated to use V2 cancel method

The change appropriately updates the test helper to use the new cancelV2 method while maintaining the correct encoding of V2 bridge transactions.

packages/contracts-rfq/test/FastBridgeV2.Dst.t.sol (2)

456-456: LGTM! Function calls updated consistently to V2.

The renaming from relay to relayV2 is consistent with the PR objectives of marking new methods as V2. The test cases properly validate the behavior of the V2 implementation.

Also applies to: 462-462, 468-468


Line range hint 1-600: Verify test coverage for V2-specific features.

The test file comprehensively covers various scenarios, but let's verify that all V2-specific features are properly tested.

✅ Verification successful

Let me try a different approach to search for V2-specific test coverage.


Let me try another search approach to verify the V2-specific test coverage.


Based on the search results, I can now provide a final response about the test coverage for V2-specific features.

Test coverage for V2-specific features is comprehensive and well-structured.

The test suite includes:

  • Core relay functionality tests for both tokens and ETH
  • Version-specific tests including V1, V2, and V3 request handling
  • Extensive error cases and edge conditions
  • Various recipient types and their behaviors
  • Comprehensive testing of relayer address handling
  • ZapNative functionality testing
  • Protocol fee handling
  • Integration tests with various components

The test file structure shows thorough coverage across different aspects:

  • Base functionality tests
  • Gas benchmarking
  • Encoding tests
  • Integration tests
  • Exclusivity tests
  • Protocol fee tests
  • Zap functionality tests
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for V2-specific test cases and features
echo "Searching for V2-specific test cases..."
rg -l "V2" --type solidity

echo "Searching for relay function implementations..."
ast-grep --pattern 'function relay$$$V2($$$) {
  $$$
}'

Length of output: 311


Script:

#!/bin/bash
# Search for V2-specific test cases and features
echo "Searching for V2-specific test cases..."
rg -l "FastBridgeV2" .

echo "Searching for V2 test implementations..."
rg "test.*V2" -A 2 .

echo "Searching for relay function implementations..."
rg "function relay.*V2" -A 2 .

Length of output: 134065


Script:

#!/bin/bash
# Search for test files and their contents
echo "Searching for test files..."
find . -name "FastBridgeV2*.t.sol" -type f

echo "Searching for test functions in FastBridgeV2.Dst.t.sol..."
rg "^    function test" ./packages/contracts-rfq/test/FastBridgeV2.Dst.t.sol

echo "Searching for V2-specific relay implementations..."
rg "function relay.*V2|function test.*relay.*V2" ./packages/contracts-rfq/test/FastBridgeV2.Dst.t.sol

Length of output: 8094

packages/contracts-rfq/contracts/interfaces/IFastBridgeV2.sol (5)

73-73: Function bridgeV2 signature aligns with updated parameters

The bridgeV2 function correctly introduces the new BridgeParamsV2 parameters, allowing for extended functionality while maintaining backward compatibility.


78-78: Function relayV2 appropriately updated with V2 specifications

The relayV2 function updates the relay mechanism in line with V2 requirements, ensuring it accommodates the enhanced bridge transaction process.


84-84: Function proveV2 accurately reflects new proofing parameters

The proveV2 function correctly incorporates the V2 parameters needed for transaction proofing, maintaining consistency with the updated protocol.


89-89: claimV2 function enables proper claiming under V2

The claimV2 function provides a clear method for relayers to claim deposited capital in accordance with the V2 structure.


94-94: cancelV2 function facilitates secure transaction cancellation

The cancelV2 function appropriately allows users to cancel outstanding bridge transactions and ensures the safe return of funds if optimistic bridging fails.

packages/contracts-rfq/contracts/FastBridgeV2.sol (6)

Line range hint 68-75: Updated bridge function delegates to bridgeV2 correctly

The bridge function now calls bridgeV2 with default BridgeParamsV2 values. This ensures backward compatibility while integrating the new parameters introduced in bridgeV2.


84-86: refund function now redirects to cancelV2

By updating refund to call cancelV2, the code maintains existing functionality and aligns with the new versioning scheme.


92-94: relay function delegates to relayV2 with appropriate parameters

The relay function now passes request and msg.sender as relayer to relayV2, ensuring consistent behavior with the updated contract logic.


98-100: prove function incorporates V2 validation before delegation

The prove function now validates the request using validateV2() before calling proveV2. This addition ensures that only properly formatted V2 requests are processed.


102-104: Verify the use of address(0) in claimV2 function

In claimV2, the function calls claim with the to parameter set to address(0). Confirm that using address(0) correctly defaults the claim to the proven relayer and does not introduce unintended behavior.


Line range hint 350-357: Proper access control in proveV2 function

The proveV2 function is secured with onlyRole(PROVER_ROLE), ensuring that only authorized entities can call it. This is a good practice for maintaining contract security.

Copy link

Deploying sanguine-fe with  Cloudflare Pages  Cloudflare Pages

Latest commit: 209fbb1
Status: ✅  Deploy successful!
Preview URL: https://f6b6cda4.sanguine-fe.pages.dev
Branch Preview URL: https://refactor-fbv2-new-methods.sanguine-fe.pages.dev

View logs

Copy link

Changes to gas cost

Generated at commit: 68f39952b8bedf6a86b85c15d241ccf7de855d7c, compared to commit: b59c9d0a98cbe1982a28ff4d43c6cb97c7adddce

🧾 Summary (50% most significant diffs)

Contract Method Avg (+/-) %
FastBridgeV2 bridgeProofs
bridgeRelayDetails
canClaim
senderNonces
-22 ✅
+66 ❌
-65 ✅
-22 ✅
-3.64%
+10.65%
-2.15%
-2.02%

Full diff report 👇
Contract Deployment Cost (+/-) Method Min (+/-) % Avg (+/-) % Median (+/-) % Max (+/-) % # Calls (+/-)
FastBridgeV2 4,309,763 (-888) GOVERNOR_ROLE
PROVER_ROLE
bridgeProofs
bridgeRelayDetails
canClaim
dispute
getBridgeTransaction
grantRole
nonce
protocolFees
senderNonces
setCancelDelay
setProtocolFeeRate
284 (-22)
261 (-22)
582 (-22)
686 (+66)
2,960 (-65)
31,102 (+22)
4,009 (+22)
29,256 (-22)
262 (-45)
589 (-22)
569 (-22)
30,267 (-22)
47,336 (+22)
-7.19%
-7.77%
-3.64%
+10.65%
-2.15%
+0.07%
+0.55%
-0.08%
-14.66%
-3.60%
-3.72%
-0.07%
+0.05%
284 (-22)
261 (-22)
582 (-22)
686 (+66)
2,960 (-65)
31,112 (+22)
4,009 (+22)
109,823 (-22)
262 (-45)
1,089 (-22)
1,069 (-22)
30,267 (-22)
47,336 (+22)
-7.19%
-7.77%
-3.64%
+10.65%
-2.15%
+0.07%
+0.55%
-0.02%
-14.66%
-1.98%
-2.02%
-0.07%
+0.05%
284 (-22)
261 (-22)
582 (-22)
686 (+66)
2,960 (-65)
31,114 (+22)
4,009 (+22)
118,294 (-22)
262 (-45)
589 (-22)
569 (-22)
30,267 (-22)
47,336 (+22)
-7.19%
-7.77%
-3.64%
+10.65%
-2.15%
+0.07%
+0.55%
-0.02%
-14.66%
-3.60%
-3.72%
-0.07%
+0.05%
284 (-22)
261 (-22)
582 (-22)
686 (+66)
2,960 (-65)
31,114 (+22)
4,009 (+22)
118,294 (-22)
262 (-45)
2,589 (-22)
2,569 (-22)
30,267 (-22)
47,336 (+22)
-7.19%
-7.77%
-3.64%
+10.65%
-2.15%
+0.07%
+0.55%
-0.02%
-14.66%
-0.84%
-0.85%
-0.07%
+0.05%
88 (0)
134 (0)
12 (0)
12 (0)
12 (0)
6 (0)
1 (0)
356 (0)
4 (0)
536 (0)
248 (0)
67 (0)
21 (0)

Copy link

codecov bot commented Nov 25, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 41.80602%. Comparing base (b59c9d0) to head (209fbb1).
Report is 2 commits behind head on master.

Additional details and impacted files
@@              Coverage Diff              @@
##              master       #3410   +/-   ##
=============================================
  Coverage   41.80602%   41.80602%           
=============================================
  Files             87          87           
  Lines           2990        2990           
  Branches          82          82           
=============================================
  Hits            1250        1250           
  Misses          1737        1737           
  Partials           3           3           
Flag Coverage Δ
packages 90.44834% <ø> (ø)
solidity 98.76161% <100.00000%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.


🚨 Try these New Features:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant