synapsecns/sanguine

View on GitHub
packages/contracts-rfq/test/FastBridgeV2.GasBench.Dst.Zap.t.sol

Summary

Maintainability
Test Coverage
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {FastBridgeV2GasBenchmarkDstTest} from "./FastBridgeV2.GasBench.Dst.t.sol";
import {RecipientMock} from "./mocks/RecipientMock.sol";

// solhint-disable func-name-mixedcase, no-empty-blocks
contract FastBridgeV2GasBenchmarkDstZapTest is FastBridgeV2GasBenchmarkDstTest {
    // To get an idea about how much overhead the Zap adds to the relaying process, we use a mock
    // recipient that has the hook function implemented as a no-op.
    // The mocked zapData are chosen to be similar to the real use cases:
    // - user address
    // - some kind of ID to decide what to do with the tokens next

    /// @notice We include an empty "test" function so that this contract does not appear in the coverage report.
    function testFastBridgeV2GasBenchmarkDstZapTest() external {}

    function setUp() public virtual override {
        // In the inherited tests userB is always used as the recipient of the tokens.
        userB = address(new RecipientMock());
        vm.label(userB, "ContractRecipient");
        super.setUp();
    }

    function createFixturesV2() public virtual override {
        super.createFixturesV2();
        bytes memory mockZapData = abi.encode(userA, keccak256("Random ID"));
        setTokenTestZapData(mockZapData);
        setEthTestZapData(mockZapData);
    }
}