From 8643fd45fda2741b13145e60931383dfe5794a33 Mon Sep 17 00:00:00 2001 From: Francisco Date: Tue, 8 Aug 2023 23:22:57 -0300 Subject: [PATCH] Update remappings and install instructions for Foundry on docs site (#4498) Co-authored-by: ernestognw --- docs/modules/ROOT/pages/index.adoc | 16 +++++++++++++++- remappings.txt | 2 +- test/governance/Governor.t.sol | 4 ++-- test/metatx/ERC2771Forwarder.t.sol | 4 ++-- test/token/ERC20/extensions/ERC4626.t.sol | 10 +++++----- .../ERC721/extensions/ERC721Consecutive.t.sol | 4 ++-- test/utils/ShortStrings.t.sol | 2 +- test/utils/math/Math.t.sol | 2 +- 8 files changed, 29 insertions(+), 15 deletions(-) diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index ff720f93c..905ce231d 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -11,11 +11,25 @@ [[install]] === Installation +==== Hardhat, Truffle (npm) + ```console $ npm install @openzeppelin/contracts ``` -OpenZeppelin Contracts features a xref:releases-stability.adoc#api-stability[stable API], which means your contracts won't break unexpectedly when upgrading to a newer minor version. +OpenZeppelin Contracts features a xref:releases-stability.adoc#api-stability[stable API], which means that your contracts won't break unexpectedly when upgrading to a newer minor version. + +==== Foundry (git) + +WARNING: When installing via git, it is a common error to use the `master` branch. This is a development branch that should be avoided in favor of tagged releases. The release process involves security measures that the `master` branch does not guarantee. + +WARNING: Foundry installs the latest version initially, but subsequent `forge update` commands will use the `master` branch. + +```console +$ forge install OpenZeppelin/openzeppelin-contracts +``` + +Add `@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/` in `remappings.txt.` [[usage]] === Usage diff --git a/remappings.txt b/remappings.txt index 2479e3d26..304d1386a 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1 +1 @@ -openzeppelin/=contracts/ +@openzeppelin/contracts/=contracts/ diff --git a/test/governance/Governor.t.sol b/test/governance/Governor.t.sol index eaa4eefe5..f63124536 100644 --- a/test/governance/Governor.t.sol +++ b/test/governance/Governor.t.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; -import {Strings} from "../../contracts/utils/Strings.sol"; -import {Governor} from "../../contracts/governance/Governor.sol"; +import {Strings} from "@openzeppelin/contracts/utils/Strings.sol"; +import {Governor} from "@openzeppelin/contracts/governance/Governor.sol"; contract GovernorInternalTest is Test, Governor { constructor() Governor("") {} diff --git a/test/metatx/ERC2771Forwarder.t.sol b/test/metatx/ERC2771Forwarder.t.sol index 3256289ea..d69b4750a 100644 --- a/test/metatx/ERC2771Forwarder.t.sol +++ b/test/metatx/ERC2771Forwarder.t.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; -import {ERC2771Forwarder} from "contracts/metatx/ERC2771Forwarder.sol"; -import {CallReceiverMockTrustingForwarder, CallReceiverMock} from "contracts/mocks/CallReceiverMock.sol"; +import {ERC2771Forwarder} from "@openzeppelin/contracts/metatx/ERC2771Forwarder.sol"; +import {CallReceiverMockTrustingForwarder, CallReceiverMock} from "@openzeppelin/contracts/mocks/CallReceiverMock.sol"; struct ForwardRequest { address from; diff --git a/test/token/ERC20/extensions/ERC4626.t.sol b/test/token/ERC20/extensions/ERC4626.t.sol index d4b9e2af1..72b0daca1 100644 --- a/test/token/ERC20/extensions/ERC4626.t.sol +++ b/test/token/ERC20/extensions/ERC4626.t.sol @@ -3,12 +3,12 @@ pragma solidity ^0.8.20; import {ERC4626Test} from "erc4626-tests/ERC4626.test.sol"; -import {ERC20} from "openzeppelin/token/ERC20/ERC20.sol"; -import {ERC4626} from "openzeppelin/token/ERC20/extensions/ERC4626.sol"; +import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import {ERC4626} from "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol"; -import {ERC20Mock} from "openzeppelin/mocks/token/ERC20Mock.sol"; -import {ERC4626Mock} from "openzeppelin/mocks/token/ERC4626Mock.sol"; -import {ERC4626OffsetMock} from "openzeppelin/mocks/token/ERC4626OffsetMock.sol"; +import {ERC20Mock} from "@openzeppelin/contracts/mocks/token/ERC20Mock.sol"; +import {ERC4626Mock} from "@openzeppelin/contracts/mocks/token/ERC4626Mock.sol"; +import {ERC4626OffsetMock} from "@openzeppelin/contracts/mocks/token/ERC4626OffsetMock.sol"; contract ERC4626VaultOffsetMock is ERC4626OffsetMock { constructor( diff --git a/test/token/ERC721/extensions/ERC721Consecutive.t.sol b/test/token/ERC721/extensions/ERC721Consecutive.t.sol index fc164558b..eca15e717 100644 --- a/test/token/ERC721/extensions/ERC721Consecutive.t.sol +++ b/test/token/ERC721/extensions/ERC721Consecutive.t.sol @@ -4,8 +4,8 @@ pragma solidity ^0.8.20; // solhint-disable func-name-mixedcase -import {ERC721} from "../../../../contracts/token/ERC721/ERC721.sol"; -import {ERC721Consecutive} from "../../../../contracts/token/ERC721/extensions/ERC721Consecutive.sol"; +import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import {ERC721Consecutive} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Consecutive.sol"; import {Test, StdUtils} from "forge-std/Test.sol"; function toSingleton(address account) pure returns (address[] memory) { diff --git a/test/utils/ShortStrings.t.sol b/test/utils/ShortStrings.t.sol index e7e6b1960..b854d273c 100644 --- a/test/utils/ShortStrings.t.sol +++ b/test/utils/ShortStrings.t.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; -import {ShortStrings, ShortString} from "../../contracts/utils/ShortStrings.sol"; +import {ShortStrings, ShortString} from "@openzeppelin/contracts/utils/ShortStrings.sol"; contract ShortStringsTest is Test { string _fallback; diff --git a/test/utils/math/Math.t.sol b/test/utils/math/Math.t.sol index d5c7e5c32..0b497a858 100644 --- a/test/utils/math/Math.t.sol +++ b/test/utils/math/Math.t.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; -import {Math} from "../../../contracts/utils/math/Math.sol"; +import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; contract MathTest is Test { // CEILDIV