From 77912b200bcb40bfff8e921bb532f1598ec72725 Mon Sep 17 00:00:00 2001 From: Jem <0x0xjem@gmail.com> Date: Thu, 2 Oct 2025 15:53:38 +0400 Subject: [PATCH 1/4] Define remappings for dependencies --- remappings.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 remappings.txt diff --git a/remappings.txt b/remappings.txt new file mode 100644 index 0000000..3036d26 --- /dev/null +++ b/remappings.txt @@ -0,0 +1,3 @@ +safe-smart-account/=lib/safe-smart-account/contracts/ +solidity-http/=lib/solidity-http/src/ +solidity-stringutils/=lib/solidity-stringutils/src/ From a5da3508a17c354296004a6947e97296d5cb3ac2 Mon Sep 17 00:00:00 2001 From: Jem <0x0xjem@gmail.com> Date: Thu, 2 Oct 2025 15:53:47 +0400 Subject: [PATCH 2/4] Foundry lockfile for dependencies --- foundry.lock | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 foundry.lock diff --git a/foundry.lock b/foundry.lock new file mode 100644 index 0000000..8ae97a1 --- /dev/null +++ b/foundry.lock @@ -0,0 +1,14 @@ +{ + "lib/forge-std": { + "rev": "3b20d60d14b343ee4f908cb8079495c07f5e8981" + }, + "lib/safe-smart-account": { + "rev": "bf943f80fec5ac647159d26161446ac5d716a294" + }, + "lib/solidity-http": { + "rev": "0e15051882932d4cd9f46730f1bafef8c360d1b3" + }, + "lib/solidity-stringutils": { + "rev": "4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461" + } +} \ No newline at end of file From 55325570862d0b59a89c0c4d70a0e7ee49df2d90 Mon Sep 17 00:00:00 2001 From: Jem <0x0xjem@gmail.com> Date: Thu, 2 Oct 2025 15:54:12 +0400 Subject: [PATCH 3/4] Migrate files to use remappings over relative imports --- src/ISafeSmartAccount.sol | 2 +- src/Safe.sol | 6 +++--- test/Safe.t.sol | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ISafeSmartAccount.sol b/src/ISafeSmartAccount.sol index f86dfb9..667513a 100644 --- a/src/ISafeSmartAccount.sol +++ b/src/ISafeSmartAccount.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.13; -import {Enum} from "../lib/safe-smart-account/contracts/common/Enum.sol"; +import {Enum} from "safe-smart-account/common/Enum.sol"; interface ISafeSmartAccount { function nonce() external view returns (uint256); diff --git a/src/Safe.sol b/src/Safe.sol index ffdb5aa..dfa6713 100644 --- a/src/Safe.sol +++ b/src/Safe.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.13; import {Vm} from "forge-std/Vm.sol"; -import {HTTP} from "../lib/solidity-http/src/HTTP.sol"; -import {MultiSendCallOnly} from "../lib/safe-smart-account/contracts/libraries/MultiSendCallOnly.sol"; -import {Enum} from "../lib/safe-smart-account/contracts/common/Enum.sol"; +import {HTTP} from "solidity-http/HTTP.sol"; +import {MultiSendCallOnly} from "safe-smart-account/libraries/MultiSendCallOnly.sol"; +import {Enum} from "safe-smart-account/common/Enum.sol"; import {ISafeSmartAccount} from "./ISafeSmartAccount.sol"; library Safe { diff --git a/test/Safe.t.sol b/test/Safe.t.sol index 97bfc45..d7b0b71 100644 --- a/test/Safe.t.sol +++ b/test/Safe.t.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.13; import {Test, console} from "forge-std/Test.sol"; import {Safe} from "../src/Safe.sol"; -import {strings} from "../lib/solidity-stringutils/src/strings.sol"; +import {strings} from "solidity-stringutils/strings.sol"; import {IWETH} from "./interfaces/IWETH.sol"; contract SafeTest is Test { From 786b6b0a5dc97ef01823d351e5f8e4aa807bd635 Mon Sep 17 00:00:00 2001 From: Jem <0x0xjem@gmail.com> Date: Thu, 2 Oct 2025 15:54:19 +0400 Subject: [PATCH 4/4] Ignore forge lint warning --- src/Safe.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Safe.sol b/src/Safe.sol index dfa6713..9008c02 100644 --- a/src/Safe.sol +++ b/src/Safe.sol @@ -10,6 +10,7 @@ import {ISafeSmartAccount} from "./ISafeSmartAccount.sol"; library Safe { using HTTP for *; + /// forge-lint: disable-next-line(screaming-snake-case-const) Vm constant vm = Vm(address(bytes20(uint160(uint256(keccak256("hevm cheat code")))))); // https://github.com/safe-global/safe-smart-account/blob/release/v1.4.1/contracts/libraries/SafeStorage.sol