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

feat(AcrossV3): adds support for AcrossV3 (AcrossFacetV3 v1.0.0, AcrossFacetPackedV3 v1.0.0, ReceiverAcrossV3 v1.0.0) #687

Merged
merged 99 commits into from
Oct 23, 2024
Merged
Show file tree
Hide file tree
Changes from 97 commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
987bcaa
Implment and add tests for LibUtil::revertWith()
ezynda3 May 24, 2024
b4cad32
remove unneeded import
ezynda3 May 24, 2024
5d60f13
deploy to staging
ezynda3 May 24, 2024
10060c7
Merge remote-tracking branch 'origin/forward-revert-from-external-cal…
0xDEnYO May 27, 2024
d2af220
temp - DO NOT PUSH
0xDEnYO May 28, 2024
d384be0
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Jun 10, 2024
638b99e
split facets, test files, deploy scripts etc. to V1/V3
0xDEnYO Jun 10, 2024
3875533
fix: replaces address parameter in facet
0xDEnYO Jun 11, 2024
ad40487
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Jun 11, 2024
3b4370e
tests fixed
0xDEnYO Jun 11, 2024
3992f6d
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Jun 12, 2024
e89ea15
demoscript can do ERC20 and native bridging
0xDEnYO Jun 13, 2024
ffbf729
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Jun 13, 2024
06c3df5
ReceiverAcrossV3 + deploy script added (and deployed)
0xDEnYO Jun 13, 2024
85ee060
added dest calls on demoscript
0xDEnYO Jun 14, 2024
8197742
ReceiverAcrossV3 updated (out-of-gas handling) & redeployed
0xDEnYO Jun 15, 2024
28ed9bd
ReceiverAcrossV3 updated (will revert for out-of-gas during swap exec…
0xDEnYO Jun 17, 2024
123c019
Successfully sent native+destCall with demoScript
0xDEnYO Jun 17, 2024
e1c94ab
simplified demo script to only use one fromChain
0xDEnYO Jun 17, 2024
21b51d7
fixed failing test
0xDEnYO Jun 17, 2024
b5e0b01
fix spelling error in import
0xDEnYO Jun 17, 2024
cdd084d
update forge coverage command in Github action
0xDEnYO Jun 18, 2024
92d2fe6
adds a check that ensures receiver addresses match in case of no dst …
0xDEnYO Jun 20, 2024
08420b1
solves stack-too-deep issue in GenericSwapFacetV3 test file (popped u…
0xDEnYO Jun 20, 2024
d36b393
adds destinationCallFlag validation
0xDEnYO Jun 20, 2024
3fb2413
implements gas savings in ReceiverAcrossV3 and redeploys to staging
0xDEnYO Jun 20, 2024
68faa35
updates docs
0xDEnYO Jun 20, 2024
d9921ca
removes coverage files as these should not be synced to github
0xDEnYO Jun 20, 2024
33a4ebd
gas optimization: use solady lib in ReceiverAcrossV3
0xDEnYO Jun 20, 2024
7f15805
change min solc version to ^0.8.17
0xDEnYO Jun 20, 2024
bf12ea7
removes native asset handling from receiver since this is not require…
0xDEnYO Jun 20, 2024
4a64b62
removes coverage files as these should not be synced to github
0xDEnYO Jun 20, 2024
b1bd52e
removes unused import
0xDEnYO Jun 20, 2024
ef2d7bc
redeployed ReceiverAcrossV3 to arbitrum
0xDEnYO Jun 20, 2024
74fbc57
updates CalldataVerificationFacet to support AcrossV3
0xDEnYO Jun 26, 2024
69648b0
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Jun 26, 2024
ddc45f1
removes payable keyword (audit issue #13)
0xDEnYO Jul 1, 2024
554b40f
removes unused import (audit issue #4)
0xDEnYO Jul 2, 2024
c87faf6
removes payable keyword from handleV3AcrossMessage function (audit is…
0xDEnYO Jul 2, 2024
f073ea9
removes unused import (audit issue #7)
0xDEnYO Jul 2, 2024
bda55b5
adds more detailed explanations to revert handling in Receiver contra…
0xDEnYO Jul 2, 2024
4e59f57
narrows variable type (audit issue #9)
0xDEnYO Jul 2, 2024
f8cb0d8
re-deploys facets to optimism staging
0xDEnYO Jul 2, 2024
e9872c8
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Jul 2, 2024
22db19b
updates expected gas values in tests
0xDEnYO Jul 2, 2024
8904104
trying to fix failing types action
0xDEnYO Jul 2, 2024
22afc10
undo last commit
0xDEnYO Jul 2, 2024
904d5c8
updates typechain command in package.json
0xDEnYO Jul 2, 2024
dd86c63
finally fixed $§%&$%§&$% CI issue
0xDEnYO Jul 3, 2024
6426267
move back to solc 0.8.17
0xDEnYO Jul 3, 2024
0a08959
updates evm-version used for testing in Github action
0xDEnYO Jul 3, 2024
48e51c6
updates evm-version used for testing in Github action #2
0xDEnYO Jul 3, 2024
501c36c
removes forge coverage from github action (unused anyway)
0xDEnYO Jul 3, 2024
af663be
disable PR reminder for PRs with label waitForBackend
0xDEnYO Jul 3, 2024
b316a22
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Jul 31, 2024
7096f2c
redeployed AcrossFacetV3 and ReceiverAcrossV3 to OPT & POL staging
0xDEnYO Jul 31, 2024
4c216a4
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Aug 30, 2024
f4ffe33
audit log updated and report added
0xDEnYO Sep 2, 2024
08f012e
Deploy AcrossV3 (except for zksync)
ezynda3 Sep 2, 2024
9af7c5c
Deploy AcrossV3 packed (except for zksync)
ezynda3 Sep 2, 2024
f2185ba
Deploy to zksync
ezynda3 Sep 6, 2024
fa20238
Deploy packed facet
ezynda3 Sep 9, 2024
bb9d7dd
add task to update approvals for AcrossFacetPackedV3
ezynda3 Sep 10, 2024
ed0acdf
Fix AcrossFacetPackedV3 script
ezynda3 Sep 12, 2024
fc78b4e
Merge branch 'main' into acrossV3-lf-7054-solcUpdate
ezynda3 Sep 12, 2024
6b72d9d
update deploy requirements
0xDEnYO Sep 13, 2024
3714bb9
Fix update scripts
ezynda3 Sep 17, 2024
bf64524
Fix update scripts
ezynda3 Sep 17, 2024
2ab287e
Cleanup
ezynda3 Sep 17, 2024
cf1b8be
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
ezynda3 Sep 17, 2024
02f1144
fix imports
ezynda3 Sep 18, 2024
08e5f27
Merge branch 'acrossV3-lf-7054-solcUpdate' of github.com:lifinance/co…
0xDEnYO Sep 19, 2024
4badbaf
import paths updated for zkSync scripts
0xDEnYO Sep 25, 2024
199488d
fixes one more import
0xDEnYO Sep 26, 2024
fca5bf1
adds ready_for_review triggers to git actions
0xDEnYO Sep 26, 2024
f9095d6
Merge branch 'addReadyForReviewTriggerToActions' into fixZkSyncScripts
0xDEnYO Sep 26, 2024
3ebb9d7
adds support for exclusiveRelayer parameters
0xDEnYO Oct 3, 2024
ca80fac
redeployed facets to arbitrum and optimism STAGING
0xDEnYO Oct 3, 2024
2c78f9f
update audit report (incl exclusivity relayer)
0xDEnYO Oct 7, 2024
c04663b
Merge branch 'fixZkSyncScripts' into acrossV3-lf-7054-solcUpdate
0xDEnYO Oct 8, 2024
87ca779
deployments to various networks
0xDEnYO Oct 8, 2024
bc6c747
zksync deploy scripts updated
0xDEnYO Oct 8, 2024
260d5b9
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Oct 8, 2024
5d1d8fd
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Oct 8, 2024
0aa7689
updates deploy script for AcrossFacetPackedV3
0xDEnYO Oct 8, 2024
11e044f
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Oct 10, 2024
41ca298
proposed diamondCuts & periphery update to all relevant diamonds (exc…
0xDEnYO Oct 10, 2024
503e712
Deploy Across V3 to zkSync
ezynda3 Oct 11, 2024
4c83874
update across demo scripts
maxklenk Oct 11, 2024
6c66785
Update logs for zksync
ezynda3 Oct 22, 2024
c37233a
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Oct 23, 2024
e012722
Merge branch 'acrossV3-lf-7054-solcUpdate' of github.com:lifinance/co…
0xDEnYO Oct 23, 2024
47d9895
update coverage command in package.json
0xDEnYO Oct 23, 2024
d40fb3f
Merge branch 'main' of github.com:lifinance/contracts into acrossV3-l…
0xDEnYO Oct 23, 2024
5df938b
diamond logs updated
0xDEnYO Oct 23, 2024
a9cd138
bump version of EmergencyPauseFacet
0xDEnYO Oct 23, 2024
15c1116
update pragma
0xDEnYO Oct 23, 2024
3e51969
remove DeBridgeDLNFacet from archive
0xDEnYO Oct 23, 2024
89f46ba
fix git action that runs test coverage
0xDEnYO Oct 23, 2024
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
4 changes: 2 additions & 2 deletions .github/workflows/forge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,6 @@ jobs:
- name: Run forge tests (with auto-repeat in case of error)
uses: Wandalen/[email protected]
with:
command: forge test
command: forge test --evm-version 'shanghai'
attempt_limit: 10
attempt_delay: 15000
attempt_delay: 15000
5 changes: 5 additions & 0 deletions .github/workflows/unreviewedPRReminder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ jobs:
continue
fi

# Continue loop if the PR has the label "WaitForBackend"
if echo "$PR_LABELS" | grep -q "WaitForBackend"; then
continue
fi

# Convert date to Unix timestamp
PR_CREATED_AT=$(date -d"$PR_CREATED_AT" +%s)
NOW=$(date +%s)
Expand Down
6 changes: 3 additions & 3 deletions .solhint.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
}
],
"code-complexity": ["error", 20],
"compiler-version": ["error", "^0.8.7"],
"compiler-version": ["error", "^0.8.17"],
"const-name-snakecase": "off",
"func-name-mixedcase": "off",
"constructor-syntax": "error",
"func-visibility": ["error", {"ignoreConstructors": true}],
"func-visibility": ["error", { "ignoreConstructors": true }],
"not-rely-on-time": "off",
"reason-string": ["warn", {"maxLength": 64}]
"reason-string": ["warn", { "maxLength": 64 }]
}
}
5 changes: 3 additions & 2 deletions archive/scripts/Deploy/DeployLiFiDiamondImmutable.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ pragma solidity ^0.8.17;
import { DeployScriptBase } from "./utils/DeployScriptBase.sol";
import { stdJson } from "forge-std/Script.sol";
import { LiFiDiamondImmutable } from "lifi/LiFiDiamondImmutable.sol";
import { DiamondCutFacet, IDiamondCut } from "lifi/Facets/DiamondCutFacet.sol";
import { DiamondCutFacet } from "lifi/Facets/DiamondCutFacet.sol";
import { LibDiamond } from "lifi/Libraries/LibDiamond.sol";

contract DeployScript is DeployScriptBase {
using stdJson for string;

IDiamondCut.FacetCut[] internal cut;
LibDiamond.FacetCut[] internal cut;
address internal diamondImmutable;
DiamondCutFacet internal cutter;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// // SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { DeployScriptBase } from "./utils/DeployScriptBase.sol";
import { NonStandardSelectorsRegistryFacet } from "lifi/Facets/NonStandardSelectorsRegistryFacet.sol";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { UpdateScriptBase } from "./utils/UpdateScriptBase.sol";
import { stdJson } from "forge-std/StdJson.sol";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types'
import { DeployFunction } from 'hardhat-deploy/types'
import { ethers, network } from 'hardhat'
import { PeripheryRegistryFacet } from '../../../../typechain'
import { PeripheryRegistryFacet } from '../../../typechain'
import {
diamondContractName,
updateDeploymentLogs,
verifyContract,
} from '../../../../script/deploy/zksync/9999_utils'
import globalConfig from '../../../../config/global.json'
} from '../../../script/deploy/zksync/9999_utils'
import globalConfig from '../../../config/global.json'

const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
// Protect against unwanted redeployments
Expand Down
2 changes: 1 addition & 1 deletion archive/src/Facets/CelerIMFacetImmutable.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { CelerIMFacetBase, IMessageBus, MsgDataTypes, IERC20, CelerIM } from "../Helpers/CelerIMFacetBase.sol";

Expand Down
2 changes: 1 addition & 1 deletion archive/src/Facets/CircleBridgeFacet.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { ILiFi } from "../Interfaces/ILiFi.sol";
import { ITokenMessenger } from "../Interfaces/ITokenMessenger.sol";
Expand Down
172 changes: 172 additions & 0 deletions archive/src/Facets/DeBridgeDlnFacet.sol
0xDEnYO marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import { ILiFi } from "../Interfaces/ILiFi.sol";
import { LibDiamond } from "../Libraries/LibDiamond.sol";
import { LibAsset, IERC20 } from "../Libraries/LibAsset.sol";
import { LibSwap } from "../Libraries/LibSwap.sol";
import { ReentrancyGuard } from "../Helpers/ReentrancyGuard.sol";
import { SwapperV2 } from "../Helpers/SwapperV2.sol";
import { Validatable } from "../Helpers/Validatable.sol";
import { IDlnSource } from "../Interfaces/IDlnSource.sol";

/// @title DeBridgeDLN Facet
/// @author LI.FI (https://li.fi)
/// @notice Provides functionality for bridging through DeBridge DLN
/// @custom:version 1.0.0
contract DeBridgeDlnFacet is ILiFi, ReentrancyGuard, SwapperV2, Validatable {
/// Storage ///

address internal constant NON_EVM_ADDRESS =
0x11f111f111f111F111f111f111F111f111f111F1;
IDlnSource public immutable dlnSource;

/// Types ///

/// @param receivingAssetId The address of the asset to receive
/// @param receiver The address of the receiver
/// @param minAmountOut The minimum amount to receive on the destination chain
struct DeBridgeDlnData {
bytes receivingAssetId;
bytes receiver;
uint256 minAmountOut;
}

/// Events ///

event DlnOrderCreated(bytes32 indexed orderId);

event BridgeToNonEVMChain(
bytes32 indexed transactionId,
uint256 indexed destinationChainId,
bytes receiver
);

/// Constructor ///

/// @notice Constructor for the contract.
/// @param _dlnSource The address of the DLN order creation contract
constructor(IDlnSource _dlnSource) {
dlnSource = _dlnSource;
}

/// External Methods ///

/// @notice Bridges tokens via DeBridgeDLN
/// @param _bridgeData The core information needed for bridging
/// @param _deBridgeDlnData Data specific to DeBridgeDLN
function startBridgeTokensViaDeBridgeDln(
ILiFi.BridgeData memory _bridgeData,
DeBridgeDlnData calldata _deBridgeDlnData
)
external
payable
nonReentrant
refundExcessNative(payable(msg.sender))
validateBridgeData(_bridgeData)
doesNotContainSourceSwaps(_bridgeData)
doesNotContainDestinationCalls(_bridgeData)
{
LibAsset.depositAsset(
_bridgeData.sendingAssetId,
_bridgeData.minAmount
);
_startBridge(
_bridgeData,
_deBridgeDlnData,
dlnSource.globalFixedNativeFee()
);
}

/// @notice Performs a swap before bridging via DeBridgeDLN
/// @param _bridgeData The core information needed for bridging
/// @param _swapData An array of swap related data for performing swaps before bridging
/// @param _deBridgeDlnData Data specific to DeBridgeDLN
function swapAndStartBridgeTokensViaDeBridgeDln(
ILiFi.BridgeData memory _bridgeData,
LibSwap.SwapData[] calldata _swapData,
DeBridgeDlnData calldata _deBridgeDlnData
)
external
payable
nonReentrant
refundExcessNative(payable(msg.sender))
containsSourceSwaps(_bridgeData)
doesNotContainDestinationCalls(_bridgeData)
validateBridgeData(_bridgeData)
{
uint256 fee = dlnSource.globalFixedNativeFee();
address assetId = _bridgeData.sendingAssetId;
_bridgeData.minAmount = _depositAndSwap(
_bridgeData.transactionId,
_bridgeData.minAmount,
_swapData,
payable(msg.sender),
LibAsset.isNativeAsset(assetId) ? 0 : fee
);
_startBridge(_bridgeData, _deBridgeDlnData, fee);
}

/// Internal Methods ///

/// @dev Contains the business logic for the bridge via DeBridgeDLN
/// @param _bridgeData The core information needed for bridging
/// @param _deBridgeDlnData Data specific to DeBridgeDLN
function _startBridge(
ILiFi.BridgeData memory _bridgeData,
DeBridgeDlnData calldata _deBridgeDlnData,
uint256 _fee
) internal {
IDlnSource.OrderCreation memory orderCreation = IDlnSource
.OrderCreation({
giveTokenAddress: _bridgeData.sendingAssetId,
giveAmount: _bridgeData.minAmount,
takeTokenAddress: _deBridgeDlnData.receivingAssetId,
takeAmount: _deBridgeDlnData.minAmountOut,
takeChainId: _bridgeData.destinationChainId,
receiverDst: _deBridgeDlnData.receiver,
givePatchAuthoritySrc: _bridgeData.receiver,
orderAuthorityAddressDst: _deBridgeDlnData.receiver,
allowedTakerDst: "",
externalCall: "",
allowedCancelBeneficiarySrc: ""
});

bytes32 orderId;
if (!LibAsset.isNativeAsset(_bridgeData.sendingAssetId)) {
// Give the DLN Source approval to bridge tokens
LibAsset.maxApproveERC20(
IERC20(_bridgeData.sendingAssetId),
address(dlnSource),
_bridgeData.minAmount
);

orderId = dlnSource.createOrder{ value: _fee }(
orderCreation,
"",
0,
""
);
} else {
orderCreation.giveAmount = orderCreation.giveAmount - _fee;
orderId = dlnSource.createOrder{ value: _bridgeData.minAmount }(
orderCreation,
"",
0,
""
);
}

emit DlnOrderCreated(orderId);

if (_bridgeData.receiver == NON_EVM_ADDRESS) {
emit BridgeToNonEVMChain(
_bridgeData.transactionId,
_bridgeData.destinationChainId,
_deBridgeDlnData.receiver
);
}

emit LiFiTransferStarted(_bridgeData);
}
}
2 changes: 1 addition & 1 deletion archive/src/Facets/DeBridgeFacet.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { ILiFi } from "../Interfaces/ILiFi.sol";
import { IDeBridgeGate } from "../Interfaces/IDeBridgeGate.sol";
Expand Down
2 changes: 1 addition & 1 deletion archive/src/Facets/GnosisBridgeL2Facet.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { ILiFi } from "../Interfaces/ILiFi.sol";
import { IXDaiBridgeL2 } from "../Interfaces/IXDaiBridgeL2.sol";
Expand Down
2 changes: 1 addition & 1 deletion archive/src/Facets/MakerTeleportFacet.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/utils/math/SafeCast.sol";
Expand Down
2 changes: 1 addition & 1 deletion archive/src/Facets/MultichainFacet.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { ILiFi } from "../Interfaces/ILiFi.sol";
import { LibAsset, IERC20 } from "../Libraries/LibAsset.sol";
Expand Down
2 changes: 1 addition & 1 deletion archive/src/Facets/NonStandardSelectorsRegistryFacet.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { LibDiamond } from "../Libraries/LibDiamond.sol";

Expand Down
2 changes: 1 addition & 1 deletion archive/src/Facets/SynapseBridgeFacet.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { ILiFi } from "../Interfaces/ILiFi.sol";
import { ISynapseRouter } from "../Interfaces/ISynapseRouter.sol";
Expand Down
8 changes: 4 additions & 4 deletions archive/src/LiFiDiamondImmutable.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { LibDiamond } from "./Libraries/LibDiamond.sol";
import { IDiamondCut } from "./Interfaces/IDiamondCut.sol";
Expand All @@ -14,12 +14,12 @@ contract LiFiDiamondImmutable {
LibDiamond.setContractOwner(_contractOwner);

// Add the diamondCut external function from the diamondCutFacet
IDiamondCut.FacetCut[] memory cut = new IDiamondCut.FacetCut[](1);
LibDiamond.FacetCut[] memory cut = new LibDiamond.FacetCut[](1);
bytes4[] memory functionSelectors = new bytes4[](1);
functionSelectors[0] = IDiamondCut.diamondCut.selector;
cut[0] = IDiamondCut.FacetCut({
cut[0] = LibDiamond.FacetCut({
facetAddress: _diamondCutFacet,
action: IDiamondCut.FacetCutAction.Add,
action: LibDiamond.FacetCutAction.Add,
functionSelectors: functionSelectors
});
LibDiamond.diamondCut(cut, address(0), "");
Expand Down
2 changes: 1 addition & 1 deletion archive/src/Periphery/GasRebateDistributor.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { TransferrableOwnership } from "../Helpers/TransferrableOwnership.sol";
import { MerkleProof } from "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";
Expand Down
2 changes: 1 addition & 1 deletion archive/src/Periphery/ServiceFeeCollector.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { LibAsset } from "../Libraries/LibAsset.sol";
import { TransferrableOwnership } from "../Helpers/TransferrableOwnership.sol";
Expand Down
2 changes: 1 addition & 1 deletion archive/test/CircleBridgeFacet.t.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Unlicense
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { LibSwap, LibAllowList, TestBaseFacet, console } from "../utils/TestBaseFacet.sol";
import { InsufficientBalance } from "src/Errors/GenericErrors.sol";
Expand Down
2 changes: 1 addition & 1 deletion archive/test/DeBridgeDlnFacet.t.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Unlicense
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { LibAllowList, TestBaseFacet, console, ERC20, LibSwap } from "../utils/TestBaseFacet.sol";
import { DeBridgeDlnFacet } from "lifi/Facets/DeBridgeDlnFacet.sol";
Expand Down
2 changes: 1 addition & 1 deletion archive/test/DeBridgeFacet.t.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Unlicense
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { LibAllowList, TestBaseFacet, console } from "../utils/TestBaseFacet.sol";
import { DeBridgeFacet } from "lifi/Facets/DeBridgeFacet.sol";
Expand Down
2 changes: 1 addition & 1 deletion archive/test/GasRebateDistributor.t.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { Test, stdJson } from "forge-std/Test.sol";
import { console } from "../utils/Console.sol";
Expand Down
2 changes: 1 addition & 1 deletion archive/test/GnosisBridgeL2Facet.t.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Unlicense
pragma solidity 0.8.17;
pragma solidity ^0.8.17;

import { LibSwap, LibAllowList, TestBaseFacet, console } from "../utils/TestBaseFacet.sol";
import { InsufficientBalance } from "src/Errors/GenericErrors.sol";
Expand Down
Loading
Loading