From 0d0494ffecb768e19e2618113df3acc4b0fbd85f Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Thu, 14 May 2026 13:55:42 +0400 Subject: [PATCH] refactor: use relative paths for vendored Flare imports Drop the flare-smart-contracts/ and flare-smart-contracts-v2/ remappings; rewrite the source imports that used them to relative paths into src/vendor/. Downstream soldeer consumers no longer need a bridge remapping to pull these interfaces transitively. Closes #34. Co-Authored-By: Claude Opus 4.7 (1M context) --- foundry.toml | 9 --------- src/err/ErrFtso.sol | 2 +- src/interface/IGoverned.sol | 2 +- src/lib/lts/LibFtsoV2LTS.sol | 4 ++-- src/lib/price/LibFtsoCurrentPriceUsd.sol | 2 +- src/lib/registry/LibFlareContractRegistry.sol | 10 +++++----- test/prod/FlareInterfacesProd.t.sol | 10 +++++----- test/src/lib/lts/LibFtsoV2LTS.t.sol | 2 +- 8 files changed, 16 insertions(+), 25 deletions(-) diff --git a/foundry.toml b/foundry.toml index 0f627a7..4fc2db7 100644 --- a/foundry.toml +++ b/foundry.toml @@ -10,15 +10,6 @@ evm_version = "cancun" bytecode_hash = "none" cbor_metadata = false -# Vendored Flare interface files (MIT-licensed, under src/vendor/). -# Neither flare-smart-contracts repo is on soldeer; only these specific -# interfaces are needed, so they're checked in rather than pulled as -# submodules. -remappings = [ - "flare-smart-contracts/=src/vendor/flare-smart-contracts/", - "flare-smart-contracts-v2/=src/vendor/flare-smart-contracts-v2/", -] - fs_permissions = [ { access = "read-write", path = "src/generated" }, { access = "read-write", path = "meta" }, diff --git a/src/err/ErrFtso.sol b/src/err/ErrFtso.sol index 945eba0..83b4c05 100644 --- a/src/err/ErrFtso.sol +++ b/src/err/ErrFtso.sol @@ -2,7 +2,7 @@ // SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.19; -import {IFtso} from "flare-smart-contracts/userInterfaces/IFtso.sol"; +import {IFtso} from "../vendor/flare-smart-contracts/userInterfaces/IFtso.sol"; /// Workaround for https://github.com/foundry-rs/foundry/issues/6572 contract ErrFtso {} diff --git a/src/interface/IGoverned.sol b/src/interface/IGoverned.sol index afb5acb..c854b08 100644 --- a/src/interface/IGoverned.sol +++ b/src/interface/IGoverned.sol @@ -2,7 +2,7 @@ // SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; -import {IGovernanceSettings} from "flare-smart-contracts/userInterfaces/IGovernanceSettings.sol"; +import {IGovernanceSettings} from "../vendor/flare-smart-contracts/userInterfaces/IGovernanceSettings.sol"; interface IGoverned { function governance() external view returns (address); diff --git a/src/lib/lts/LibFtsoV2LTS.sol b/src/lib/lts/LibFtsoV2LTS.sol index 012c4a7..d406dd5 100644 --- a/src/lib/lts/LibFtsoV2LTS.sol +++ b/src/lib/lts/LibFtsoV2LTS.sol @@ -4,9 +4,9 @@ pragma solidity ^0.8.19; //forge-lint: disable-next-line(unused-import) import {IFtsoRegistry, LibFlareContractRegistry} from "../registry/LibFlareContractRegistry.sol"; -import {FtsoV2Interface} from "flare-smart-contracts-v2/userInterfaces/LTS/FtsoV2Interface.sol"; +import {FtsoV2Interface} from "../../vendor/flare-smart-contracts-v2/userInterfaces/LTS/FtsoV2Interface.sol"; import {StalePrice} from "../../err/ErrFtso.sol"; -import {IFeeCalculator} from "flare-smart-contracts-v2/userInterfaces/IFeeCalculator.sol"; +import {IFeeCalculator} from "../../vendor/flare-smart-contracts-v2/userInterfaces/IFeeCalculator.sol"; /// @dev FTSO feed IDs. /// https://dev.flare.network/ftso/feeds diff --git a/src/lib/price/LibFtsoCurrentPriceUsd.sol b/src/lib/price/LibFtsoCurrentPriceUsd.sol index 85d817a..7cded63 100644 --- a/src/lib/price/LibFtsoCurrentPriceUsd.sol +++ b/src/lib/price/LibFtsoCurrentPriceUsd.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.19; import {IFtsoRegistry, LibFlareContractRegistry} from "../registry/LibFlareContractRegistry.sol"; import {InactiveFtso, PriceNotFinalized, StalePrice, InconsistentFtso} from "../../err/ErrFtso.sol"; -import {IFtso} from "flare-smart-contracts/userInterfaces/IFtso.sol"; +import {IFtso} from "../../vendor/flare-smart-contracts/userInterfaces/IFtso.sol"; library LibFtsoCurrentPriceUsd { function ftsoCurrentPriceUsd(string memory symbol, uint256 timeout) internal view returns (uint256, uint256) { diff --git a/src/lib/registry/LibFlareContractRegistry.sol b/src/lib/registry/LibFlareContractRegistry.sol index ebb8417..0451c8c 100644 --- a/src/lib/registry/LibFlareContractRegistry.sol +++ b/src/lib/registry/LibFlareContractRegistry.sol @@ -2,12 +2,12 @@ // SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.19; -import {FtsoV2Interface} from "flare-smart-contracts-v2/userInterfaces/LTS/FtsoV2Interface.sol"; -import {IFeeCalculator} from "flare-smart-contracts-v2/userInterfaces/IFeeCalculator.sol"; -import {IFtsoRegistry} from "flare-smart-contracts/userInterfaces/IFtsoRegistry.sol"; -import {IFlareContractRegistry} from "flare-smart-contracts/userInterfaces/IFlareContractRegistry.sol"; +import {FtsoV2Interface} from "../../vendor/flare-smart-contracts-v2/userInterfaces/LTS/FtsoV2Interface.sol"; +import {IFeeCalculator} from "../../vendor/flare-smart-contracts-v2/userInterfaces/IFeeCalculator.sol"; +import {IFtsoRegistry} from "../../vendor/flare-smart-contracts/userInterfaces/IFtsoRegistry.sol"; +import {IFlareContractRegistry} from "../../vendor/flare-smart-contracts/userInterfaces/IFlareContractRegistry.sol"; //forge-lint: disable-next-line(unused-import) -import {IFtso} from "flare-smart-contracts/userInterfaces/IFtso.sol"; +import {IFtso} from "../../vendor/flare-smart-contracts/userInterfaces/IFtso.sol"; // The address of the Flare contract registry. // This is the same and immutable across all Flare networks diff --git a/test/prod/FlareInterfacesProd.t.sol b/test/prod/FlareInterfacesProd.t.sol index 546f34f..83b0fa9 100644 --- a/test/prod/FlareInterfacesProd.t.sol +++ b/test/prod/FlareInterfacesProd.t.sol @@ -6,11 +6,11 @@ import {Test} from "forge-std-1.16.1/src/Test.sol"; import {LibFork} from "../fork/LibFork.sol"; import {BLOCK_NUMBER} from "../src/lib/registry/LibFlareContractRegistry.t.sol"; -import {IFlareContractRegistry} from "flare-smart-contracts/userInterfaces/IFlareContractRegistry.sol"; -import {IFtsoRegistry} from "flare-smart-contracts/userInterfaces/IFtsoRegistry.sol"; -import {IFtso} from "flare-smart-contracts/userInterfaces/IFtso.sol"; -import {FtsoV2Interface} from "flare-smart-contracts-v2/userInterfaces/LTS/FtsoV2Interface.sol"; -import {IFeeCalculator} from "flare-smart-contracts-v2/userInterfaces/IFeeCalculator.sol"; +import {IFlareContractRegistry} from "../../src/vendor/flare-smart-contracts/userInterfaces/IFlareContractRegistry.sol"; +import {IFtsoRegistry} from "../../src/vendor/flare-smart-contracts/userInterfaces/IFtsoRegistry.sol"; +import {IFtso} from "../../src/vendor/flare-smart-contracts/userInterfaces/IFtso.sol"; +import {FtsoV2Interface} from "../../src/vendor/flare-smart-contracts-v2/userInterfaces/LTS/FtsoV2Interface.sol"; +import {IFeeCalculator} from "../../src/vendor/flare-smart-contracts-v2/userInterfaces/IFeeCalculator.sol"; import { FLARE_CONTRACT_REGISTRY, diff --git a/test/src/lib/lts/LibFtsoV2LTS.t.sol b/test/src/lib/lts/LibFtsoV2LTS.t.sol index 9fc286c..b7188f0 100644 --- a/test/src/lib/lts/LibFtsoV2LTS.t.sol +++ b/test/src/lib/lts/LibFtsoV2LTS.t.sol @@ -7,7 +7,7 @@ import {LibFtsoV2LTS, ETH_USD_FEED_ID} from "src/lib/lts/LibFtsoV2LTS.sol"; import {BLOCK_NUMBER} from "../registry/LibFlareContractRegistry.t.sol"; import {LibFork} from "test/fork/LibFork.sol"; import {LibFlareContractRegistry} from "src/lib/registry/LibFlareContractRegistry.sol"; -import {IFeeCalculator} from "flare-smart-contracts-v2/userInterfaces/IFeeCalculator.sol"; +import {IFeeCalculator} from "../../../../src/vendor/flare-smart-contracts-v2/userInterfaces/IFeeCalculator.sol"; import {IGoverned, IGovernanceSettings} from "src/interface/IGoverned.sol"; import {IGovernedFeeCalculator} from "src/interface/IGovernedFeeCalculator.sol"; import {StalePrice} from "src/err/ErrFtso.sol";