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

Use soldeer #17

Merged
merged 3 commits into from
Nov 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 4 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,8 @@ jobs:
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1

- name: Install dependencies
run: make install

- name: Run unit tests
run: make compiler_test
run: make quick_test
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,7 @@ out/
.env

# Docs
docs/
docs/

# Soldeer
/dependencies
12 changes: 0 additions & 12 deletions .gitmodules

This file was deleted.

21 changes: 5 additions & 16 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,7 @@
{
"wake.compiler.solc.remappings": [
"@manifoldxyz/libraries-solidity/=lib/royalty-registry-solidity/lib/libraries-solidity/",
"@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"create2-helpers/=lib/royalty-registry-solidity/lib/create2-helpers/",
"create2-scripts/=lib/royalty-registry-solidity/lib/create2-helpers/script/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"libraries-solidity/=lib/royalty-registry-solidity/lib/libraries-solidity/contracts/",
"openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
"openzeppelin/=lib/openzeppelin-contracts/contracts/",
"royalty-registry-solidity/=lib/royalty-registry-solidity/contracts/",
"openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/"
]
"editor.formatOnSave": true,
"[solidity]": {
"editor.defaultFormatter": "NomicFoundation.hardhat-solidity"
},
"solidity.formatter": "forge",
}
15 changes: 8 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,12 @@ clean:

# Remove the modules
remove:
rm -rf .gitmodules && rm -rf .git/modules/* && rm -rf lib && touch .gitmodules
rm -rf dependencies

# Install the modules
install:
forge install foundry-rs/forge-std --no-commit
forge install OpenZeppelin/[email protected] --no-commit
forge install OpenZeppelin/[email protected] --no-commit
forge install manifoldxyz/royalty-registry-solidity --no-commit
forge soldeer install

# Updatee the modules
update: remove install

# Builds
build:
Expand All @@ -29,6 +24,12 @@ compiler_test:
forge test --use 0.8.20
forge test --use 0.8.21
forge test --use 0.8.22
forge test --use 0.8.23
forge test --use 0.8.24
forge test --use 0.8.25
forge test --use 0.8.26
forge test --use 0.8.27
forge test --use 0.8.28

quick_test:
forge test
Expand Down
13 changes: 11 additions & 2 deletions foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
src = 'src'
test = 'test'
out = 'out'
libs = ['lib']
libs = ['lib', "dependencies"]
auto_detect_solc = true
optimizer = true
optimizer_runs = 20000
Expand All @@ -11,4 +11,13 @@ wrap_comments = true
fs_permissions = [{ access = "read", path = "./"}]

[fuzz]
runs = 1024
runs = 1024

[soldeer]
recursive_deps = true

[dependencies]
forge-std = "1.9.4"
"@openzeppelin-contracts" = "5.0.2"
"@openzeppelin-contracts-upgradeable" = "5.0.2"
royalty-registry-solidity = { version = "1.0.0", git = "https://github.com/manifoldxyz/royalty-registry-solidity.git", rev = "e5369fc79279ce2e4c6ea2eb5914df51e89e8bd8" }
1 change: 0 additions & 1 deletion lib/forge-std
Submodule forge-std deleted from 155d54
1 change: 0 additions & 1 deletion lib/openzeppelin-contracts
Submodule openzeppelin-contracts deleted from 01ef44
1 change: 0 additions & 1 deletion lib/openzeppelin-contracts-upgradeable
Submodule openzeppelin-contracts-upgradeable deleted from fbdb82
1 change: 0 additions & 1 deletion lib/royalty-registry-solidity
Submodule royalty-registry-solidity deleted from e5369f
21 changes: 9 additions & 12 deletions remappings.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
@manifoldxyz/libraries-solidity/=lib/royalty-registry-solidity/lib/libraries-solidity/
@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
create2-helpers/=lib/royalty-registry-solidity/lib/create2-helpers/
create2-scripts/=lib/royalty-registry-solidity/lib/create2-helpers/script/
ds-test/=lib/forge-std/lib/ds-test/src/
erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/
forge-std/=lib/forge-std/src/
libraries-solidity/=lib/royalty-registry-solidity/lib/libraries-solidity/contracts/
openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
openzeppelin/=lib/openzeppelin-contracts/contracts/
royalty-registry-solidity/=lib/royalty-registry-solidity/contracts/
@manifoldxyz/libraries-solidity/=dependencies/royalty-registry-solidity-1.0.0/lib/libraries-solidity/
@openzeppelin-contracts-5.0.2/=dependencies/@openzeppelin-contracts-5.0.2/
@openzeppelin-contracts-upgradeable-5.0.2/=dependencies/@openzeppelin-contracts-upgradeable-5.0.2/
@openzeppelin/=dependencies/royalty-registry-solidity-1.0.0/lib/openzeppelin-contracts/
create2-helpers/=dependencies/royalty-registry-solidity-1.0.0/lib/create2-helpers/
create2-scripts/=dependencies/royalty-registry-solidity-1.0.0/lib/create2-helpers/script/
forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/
libraries-solidity/=dependencies/royalty-registry-solidity-1.0.0/lib/libraries-solidity/contracts/
royalty-registry-solidity-1.0.0/=dependencies/royalty-registry-solidity-1.0.0/contracts/
26 changes: 26 additions & 0 deletions soldeer.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[[dependencies]]
name = "@openzeppelin-contracts"
version = "5.0.2"
url = "https://soldeer-revisions.s3.amazonaws.com/@openzeppelin-contracts/5_0_2_14-03-2024_06:11:59_contracts.zip"
checksum = "8bc4f0acc7c187771b878d46f7de4bfad1acad2eb5d096d9d05d34035853f5c3"
integrity = "55881f6114aa36158566ef52b486d9d96b217c3e47d0e24bbd4994a8cfb5ee7c"

[[dependencies]]
name = "@openzeppelin-contracts-upgradeable"
version = "5.0.2"
url = "https://soldeer-revisions.s3.amazonaws.com/@openzeppelin-contracts-upgradeable/5_0_2_14-03-2024_06:12:07_contracts-upgradeable.zip"
checksum = "fb3f8db8541fc01636f91b0e7d9dd6f450f1bf7e2b4a17e96caf6e779ace8f5b"
integrity = "4bded842e12902cca59a500494d26586b3baea76b59150fd4e2b1d29078a2e71"

[[dependencies]]
name = "forge-std"
version = "1.9.4"
url = "https://soldeer-revisions.s3.amazonaws.com/forge-std/1_9_4_25-10-2024_14:36:59_forge-std-1.9.zip"
checksum = "b5be24beb5e4dab5e42221b2ad1288b64c826bee5ee71b6159ba93ffe86f14d4"
integrity = "3874463846ab995a6a9a88412913cacec6144f7605daa1af57c2d8bf3f210b13"

[[dependencies]]
name = "royalty-registry-solidity"
version = "1.0.0"
git = "https://github.com/manifoldxyz/royalty-registry-solidity.git"
rev = "e5369fc79279ce2e4c6ea2eb5914df51e89e8bd8"
4 changes: 2 additions & 2 deletions src/access/OwnableAccessControl.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {Ownable} from "openzeppelin/access/Ownable.sol";
import {EnumerableSet} from "openzeppelin/utils/structs/EnumerableSet.sol";
import {Ownable} from "@openzeppelin-contracts-5.0.2/access/Ownable.sol";
import {EnumerableSet} from "@openzeppelin-contracts-5.0.2/utils/structs/EnumerableSet.sol";

/// @title OwnableAccessControl.sol
/// @notice Single owner, flexible access control mechanics
Expand Down
2 changes: 1 addition & 1 deletion src/payments/IWETH.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IERC20} from "openzeppelin/token/ERC20/IERC20.sol";
import {IERC20} from "@openzeppelin-contracts-5.0.2/token/ERC20/IERC20.sol";

interface IWETH is IERC20 {
function deposit() external payable;
Expand Down
2 changes: 1 addition & 1 deletion src/payments/RoyaltyPayoutHelper.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IRoyaltyEngineV1} from "royalty-registry-solidity/IRoyaltyEngineV1.sol";
import {IRoyaltyEngineV1} from "royalty-registry-solidity-1.0.0/IRoyaltyEngineV1.sol";
import {SanctionsCompliance} from "./SanctionsCompliance.sol";
import {TransferHelper} from "./TransferHelper.sol";

Expand Down
2 changes: 1 addition & 1 deletion src/payments/TransferHelper.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {SafeERC20} from "openzeppelin/token/ERC20/utils/SafeERC20.sol";
import {SafeERC20} from "@openzeppelin-contracts-5.0.2/token/ERC20/utils/SafeERC20.sol";
import {IWETH, IERC20} from "./IWETH.sol";

/// @title Transfer Helper
Expand Down
6 changes: 4 additions & 2 deletions src/royalties/EIP2981TL.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {ERC165} from "openzeppelin/utils/introspection/ERC165.sol";
import {ERC165} from "@openzeppelin-contracts-5.0.2/utils/introspection/ERC165.sol";
import {IEIP2981} from "./IEIP2981.sol";

/// @title EIP2981TL.sol
Expand Down Expand Up @@ -37,7 +37,9 @@ abstract contract EIP2981TL is IEIP2981, ERC165 {
event DefaultRoyaltyUpdate(address indexed sender, address newRecipient, uint256 newPercentage);

/// @dev Event to emit when a token royalty is overriden
event TokenRoyaltyOverride(address indexed sender, uint256 indexed tokenId, address newRecipient, uint256 newPercentage);
event TokenRoyaltyOverride(
address indexed sender, uint256 indexed tokenId, address newRecipient, uint256 newPercentage
);

/*//////////////////////////////////////////////////////////////////////////
Errors
Expand Down
4 changes: 2 additions & 2 deletions src/upgradeable/access/OwnableAccessControlUpgradeable.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {OwnableUpgradeable} from "openzeppelin-upgradeable/access/OwnableUpgradeable.sol";
import {EnumerableSet} from "openzeppelin/utils/structs/EnumerableSet.sol";
import {OwnableUpgradeable} from "@openzeppelin-contracts-upgradeable-5.0.2/access/OwnableUpgradeable.sol";
import {EnumerableSet} from "@openzeppelin-contracts-5.0.2/utils/structs/EnumerableSet.sol";

/// @title OwnableAccessControlUpgradeable.sol
/// @notice Single owner, flexible access control mechanics
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IRoyaltyEngineV1} from "royalty-registry-solidity/IRoyaltyEngineV1.sol";
import {IRoyaltyEngineV1} from "royalty-registry-solidity-1.0.0/IRoyaltyEngineV1.sol";
import {TransferHelper} from "../../payments/TransferHelper.sol";
import {SanctionsComplianceUpgradeable} from "../../upgradeable/payments/SanctionsComplianceUpgradeable.sol";

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

import {Initializable} from "openzeppelin-upgradeable/proxy/utils/Initializable.sol";
import {Initializable} from "@openzeppelin-contracts-upgradeable-5.0.2/proxy/utils/Initializable.sol";
import {IChainalysisSanctionsOracle} from "../../payments/IChainalysisSanctionsOracle.sol";

/// @title Sanctions Compliance
Expand Down
6 changes: 4 additions & 2 deletions src/upgradeable/royalties/EIP2981TLUpgradeable.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {ERC165Upgradeable} from "openzeppelin-upgradeable/utils/introspection/ERC165Upgradeable.sol";
import {ERC165Upgradeable} from "@openzeppelin-contracts-upgradeable-5.0.2/utils/introspection/ERC165Upgradeable.sol";
import {IEIP2981} from "../../royalties/IEIP2981.sol";

/// @title EIP2981TLUpgradeable.sol
Expand Down Expand Up @@ -55,7 +55,9 @@ abstract contract EIP2981TLUpgradeable is IEIP2981, ERC165Upgradeable {
event DefaultRoyaltyUpdate(address indexed sender, address newRecipient, uint256 newPercentage);

/// @dev Event to emit when a token royalty is overriden
event TokenRoyaltyOverride(address indexed sender, uint256 indexed tokenId, address newRecipient, uint256 newPercentage);
event TokenRoyaltyOverride(
address indexed sender, uint256 indexed tokenId, address newRecipient, uint256 newPercentage
);

/*//////////////////////////////////////////////////////////////////////////
Errors
Expand Down
2 changes: 1 addition & 1 deletion test/access/OwnableAccessControl.t.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "forge-std/Test.sol";
import "forge-std-1.9.4/Test.sol";
import {MockOwnableAccessControl} from "test/utils/MockOwnableAccessControl.sol";
import {OwnableAccessControl, Ownable} from "src/access/OwnableAccessControl.sol";

Expand Down
4 changes: 2 additions & 2 deletions test/payments/RoyaltyPayoutHelper.t.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "forge-std/Test.sol";
import {Strings} from "openzeppelin/utils/Strings.sol";
import "forge-std-1.9.4/Test.sol";
import {Strings} from "@openzeppelin-contracts-5.0.2/utils/Strings.sol";
import {Receiver, RevertingReceiver} from "test/utils/Receivers.sol";
import {WETH9} from "test/utils/WETH9.sol";
import {MockERC20, MockERC20WithFee} from "test/utils/MockERC20.sol";
Expand Down
2 changes: 1 addition & 1 deletion test/payments/SanctionsCompliance.t.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {Test} from "forge-std/Test.sol";
import {Test} from "forge-std-1.9.4/Test.sol";
import {SanctionsCompliance} from "src/payments/SanctionsCompliance.sol";
import {IChainalysisSanctionsOracle} from "src/payments/IChainalysisSanctionsOracle.sol";

Expand Down
4 changes: 2 additions & 2 deletions test/payments/TransferHelper.t.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "forge-std/Test.sol";
import {IERC20} from "openzeppelin/token/ERC20/IERC20.sol";
import "forge-std-1.9.4/Test.sol";
import {IERC20} from "@openzeppelin-contracts-5.0.2/token/ERC20/IERC20.sol";
import {Receiver, RevertingReceiver, GriefingReceiver} from "test/utils/Receivers.sol";
import {WETH9} from "test/utils/WETH9.sol";
import {MockERC20, MockERC20WithFee} from "test/utils/MockERC20.sol";
Expand Down
6 changes: 4 additions & 2 deletions test/royalties/EIP2981TL.t.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "forge-std/Test.sol";
import "forge-std-1.9.4/Test.sol";
import {MockEIP2981TL} from "test/utils/MockEIP2981TL.sol";
import {EIP2981TL} from "src/royalties/EIP2981TL.sol";

Expand All @@ -12,7 +12,9 @@ contract TestEIP2981TL is Test {
event DefaultRoyaltyUpdate(address indexed sender, address newRecipient, uint256 newPercentage);

/// @dev Event to emit when a token royalty is overriden
event TokenRoyaltyOverride(address indexed sender, uint256 indexed tokenId, address newRecipient, uint256 newPercentage);
event TokenRoyaltyOverride(
address indexed sender, uint256 indexed tokenId, address newRecipient, uint256 newPercentage
);

function test_DefaultRoyaltyInfo(uint256 tokenId, address recipient, uint16 percentage, uint256 saleAmount)
public
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "forge-std/Test.sol";
import "forge-std-1.9.4/Test.sol";
import {MockOwnableAccessControlUpgradeable} from "test/utils/MockOwnableAccessControlUpgradeable.sol";
import {
OwnableAccessControlUpgradeable,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "forge-std/Test.sol";
import {Strings} from "openzeppelin/utils/Strings.sol";
import "forge-std-1.9.4/Test.sol";
import {Strings} from "@openzeppelin-contracts-5.0.2/utils/Strings.sol";
import {Receiver, RevertingReceiver} from "test/utils/Receivers.sol";
import {WETH9} from "test/utils/WETH9.sol";
import {MockERC20, MockERC20WithFee} from "test/utils/MockERC20.sol";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {Test} from "forge-std/Test.sol";
import {Test} from "forge-std-1.9.4/Test.sol";
import {SanctionsComplianceUpgradeable} from "src/upgradeable/payments/SanctionsComplianceUpgradeable.sol";
import {IChainalysisSanctionsOracle} from "src/payments/IChainalysisSanctionsOracle.sol";

Expand Down
6 changes: 4 additions & 2 deletions test/upgradeable/royalties/EIP2981TLUpgradeable.t.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "forge-std/Test.sol";
import "forge-std-1.9.4/Test.sol";
import {MockEIP2981TLUpgradeable} from "test/utils/MockEIP2981TLUpgradeable.sol";
import {EIP2981TLUpgradeable} from "src/upgradeable/royalties/EIP2981TLUpgradeable.sol";

Expand All @@ -12,7 +12,9 @@ contract TestEIP2981TLUpgradeable is Test {
event DefaultRoyaltyUpdate(address indexed sender, address newRecipient, uint256 newPercentage);

/// @dev Event to emit when a token royalty is overriden
event TokenRoyaltyOverride(address indexed sender, uint256 indexed tokenId, address newRecipient, uint256 newPercentage);
event TokenRoyaltyOverride(
address indexed sender, uint256 indexed tokenId, address newRecipient, uint256 newPercentage
);

function test_DefaultRoyaltyInfo(uint256 tokenId, address recipient, uint16 percentage, uint256 saleAmount)
public
Expand Down
Loading