Skip to content
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
4 changes: 4 additions & 0 deletions foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ src = "src"
out = "out"
libs = ["lib"]
test = "test"
remappings = [
"base-std/=src/",
"base-std-test/=test/",
]
ast = true

solc = "0.8.30"
Expand Down
8 changes: 4 additions & 4 deletions test/lib/ActivationRegistryTest.sol
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {ActivationRegistryFeatureList} from "test/lib/mocks/ActivationRegistryFeatureList.sol";
import {BaseTest} from "test/lib/BaseTest.sol";
import {ActivationRegistryFeatureList} from "base-std-test/lib/mocks/ActivationRegistryFeatureList.sol";
import {BaseTest} from "base-std-test/lib/BaseTest.sol";

import {IActivationRegistry} from "src/interfaces/IActivationRegistry.sol";
import {StdPrecompiles} from "src/StdPrecompiles.sol";
import {IActivationRegistry} from "base-std/interfaces/IActivationRegistry.sol";
import {StdPrecompiles} from "base-std/StdPrecompiles.sol";

/// @notice Base test contract for `IActivationRegistry` unit tests.
///
Expand Down
4 changes: 2 additions & 2 deletions test/lib/B20AssetTest.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {B20Test} from "test/lib/B20Test.sol";
import {B20Test} from "base-std-test/lib/B20Test.sol";

import {IB20Asset} from "src/interfaces/IB20Asset.sol";
import {IB20Asset} from "base-std/interfaces/IB20Asset.sol";

/// @notice Base test contract for `IB20Asset` unit tests.
///
Expand Down
7 changes: 3 additions & 4 deletions test/lib/B20FactoryLibTest.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 {BaseTest} from "test/lib/BaseTest.sol";
import {BaseTest} from "base-std-test/lib/BaseTest.sol";

/// @notice Base test contract for `B20FactoryLib` unit tests.
///
Expand All @@ -16,6 +16,5 @@ import {BaseTest} from "test/lib/BaseTest.sol";
/// helper, even though the library itself does not consult `msg.sender`.
/// Re-using those gives the test contracts a uniform vocabulary with
/// the rest of the suite. No `setUp` extension is needed.
contract B20FactoryLibTest is BaseTest {
// No additional state; `BaseTest`'s actor labels and helpers are sufficient.
}
/// @dev No additional state; `BaseTest`'s actor labels and helpers are sufficient.
contract B20FactoryLibTest is BaseTest {}
12 changes: 6 additions & 6 deletions test/lib/B20FactoryTest.sol
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {BaseTest} from "test/lib/BaseTest.sol";
import {MockB20Storage} from "test/lib/mocks/MockB20Storage.sol";
import {BaseTest} from "base-std-test/lib/BaseTest.sol";
import {MockB20Storage} from "base-std-test/lib/mocks/MockB20Storage.sol";

import {B20Constants} from "src/lib/B20Constants.sol";
import {B20FactoryLib} from "src/lib/B20FactoryLib.sol";
import {IB20Factory} from "src/interfaces/IB20Factory.sol";
import {StdPrecompiles} from "src/StdPrecompiles.sol";
import {B20Constants} from "base-std/lib/B20Constants.sol";
import {B20FactoryLib} from "base-std/lib/B20FactoryLib.sol";
import {IB20Factory} from "base-std/interfaces/IB20Factory.sol";
import {StdPrecompiles} from "base-std/StdPrecompiles.sol";

/// @notice Base test contract for `IB20Factory` unit tests, and the
/// parent for token-test bases (`B20Test`, `B20StablecoinTest`)
Expand Down
4 changes: 2 additions & 2 deletions test/lib/B20StablecoinTest.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {B20Test} from "test/lib/B20Test.sol";
import {B20Test} from "base-std-test/lib/B20Test.sol";

import {IB20} from "src/interfaces/IB20.sol";
import {IB20} from "base-std/interfaces/IB20.sol";

/// @notice Base test contract for `IB20Stablecoin` unit tests.
///
Expand Down
6 changes: 3 additions & 3 deletions test/lib/B20Test.sol
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {B20FactoryTest} from "test/lib/B20FactoryTest.sol";
import {B20FactoryTest} from "base-std-test/lib/B20FactoryTest.sol";

import {IB20} from "src/interfaces/IB20.sol";
import {IB20} from "base-std/interfaces/IB20.sol";

import {B20Constants} from "test/lib/mocks/MockB20.sol";
import {B20Constants} from "base-std-test/lib/mocks/MockB20.sol";

/// @notice Base test contract for `IB20` unit tests.
///
Expand Down
12 changes: 6 additions & 6 deletions test/lib/BaseTest.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ pragma solidity ^0.8.20;
import {Test} from "forge-std/Test.sol";
import {Vm} from "forge-std/Vm.sol";

import {ActivationRegistryFeatureList} from "test/lib/mocks/ActivationRegistryFeatureList.sol";
import {MockActivationRegistry} from "test/lib/mocks/MockActivationRegistry.sol";
import {MockPolicyRegistry} from "test/lib/mocks/MockPolicyRegistry.sol";
import {MockB20Factory} from "test/lib/mocks/MockB20Factory.sol";
import {ActivationRegistryFeatureList} from "base-std-test/lib/mocks/ActivationRegistryFeatureList.sol";
import {MockActivationRegistry} from "base-std-test/lib/mocks/MockActivationRegistry.sol";
import {MockPolicyRegistry} from "base-std-test/lib/mocks/MockPolicyRegistry.sol";
import {MockB20Factory} from "base-std-test/lib/mocks/MockB20Factory.sol";

import {IPolicyRegistry} from "src/interfaces/IPolicyRegistry.sol";
import {StdPrecompiles} from "src/StdPrecompiles.sol";
import {IPolicyRegistry} from "base-std/interfaces/IPolicyRegistry.sol";
import {StdPrecompiles} from "base-std/StdPrecompiles.sol";

/// @notice Common base for every test contract in this suite.
///
Expand Down
10 changes: 5 additions & 5 deletions test/lib/PolicyRegistryTest.sol
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {BaseTest} from "test/lib/BaseTest.sol";
import {BaseTest} from "base-std-test/lib/BaseTest.sol";

import {IPolicyRegistry} from "src/interfaces/IPolicyRegistry.sol";
import {StdPrecompiles} from "src/StdPrecompiles.sol";
import {PolicyRegistryConstants} from "test/lib/mocks/MockPolicyRegistry.sol";
import {MockPolicyRegistryStorage} from "test/lib/mocks/MockPolicyRegistryStorage.sol";
import {IPolicyRegistry} from "base-std/interfaces/IPolicyRegistry.sol";
import {StdPrecompiles} from "base-std/StdPrecompiles.sol";
import {PolicyRegistryConstants} from "base-std-test/lib/mocks/MockPolicyRegistry.sol";
import {MockPolicyRegistryStorage} from "base-std-test/lib/mocks/MockPolicyRegistryStorage.sol";

/// @notice Base test contract for `IPolicyRegistry` unit tests.
///
Expand Down
4 changes: 2 additions & 2 deletions test/lib/mocks/MockActivationRegistry.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IActivationRegistry} from "src/interfaces/IActivationRegistry.sol";
import {IActivationRegistry} from "base-std/interfaces/IActivationRegistry.sol";

import {MockActivationRegistryStorage} from "test/lib/mocks/MockActivationRegistryStorage.sol";
import {MockActivationRegistryStorage} from "base-std-test/lib/mocks/MockActivationRegistryStorage.sol";

/// @title MockActivationRegistry
/// @notice Reference implementation of the `IActivationRegistry` precompile.
Expand Down
10 changes: 5 additions & 5 deletions test/lib/mocks/MockB20.sol
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IB20} from "src/interfaces/IB20.sol";
import {IPolicyRegistry} from "src/interfaces/IPolicyRegistry.sol";
import {StdPrecompiles} from "src/StdPrecompiles.sol";
import {IB20} from "base-std/interfaces/IB20.sol";
import {IPolicyRegistry} from "base-std/interfaces/IPolicyRegistry.sol";
import {StdPrecompiles} from "base-std/StdPrecompiles.sol";

import {MockB20Storage} from "test/lib/mocks/MockB20Storage.sol";
import {B20Constants} from "src/lib/B20Constants.sol";
import {MockB20Storage} from "base-std-test/lib/mocks/MockB20Storage.sol";
import {B20Constants} from "base-std/lib/B20Constants.sol";

/// @title MockB20
/// @notice Reference implementation of the `IB20` default-token surface.
Expand Down
8 changes: 4 additions & 4 deletions test/lib/mocks/MockB20Asset.sol
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IB20} from "src/interfaces/IB20.sol";
import {IB20Asset} from "src/interfaces/IB20Asset.sol";
import {IB20} from "base-std/interfaces/IB20.sol";
import {IB20Asset} from "base-std/interfaces/IB20Asset.sol";

import {MockB20} from "test/lib/mocks/MockB20.sol";
import {MockB20AssetStorage, MockB20Storage} from "test/lib/mocks/MockB20Storage.sol";
import {MockB20} from "base-std-test/lib/mocks/MockB20.sol";
import {MockB20AssetStorage, MockB20Storage} from "base-std-test/lib/mocks/MockB20Storage.sol";

/// @title MockB20Asset
/// @author Coinbase
Expand Down
22 changes: 13 additions & 9 deletions test/lib/mocks/MockB20Factory.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,21 @@ pragma solidity ^0.8.20;

import {Vm} from "forge-std/Vm.sol";

import {B20Constants} from "src/lib/B20Constants.sol";
import {IB20Factory} from "src/interfaces/IB20Factory.sol";
import {B20FactoryLib} from "src/lib/B20FactoryLib.sol";
import {StdPrecompiles} from "src/StdPrecompiles.sol";
import {B20Constants} from "base-std/lib/B20Constants.sol";
import {IB20Factory} from "base-std/interfaces/IB20Factory.sol";
import {B20FactoryLib} from "base-std/lib/B20FactoryLib.sol";
import {StdPrecompiles} from "base-std/StdPrecompiles.sol";

import {ActivationRegistryFeatureList} from "test/lib/mocks/ActivationRegistryFeatureList.sol";
import {ActivationRegistryFeatureList} from "base-std-test/lib/mocks/ActivationRegistryFeatureList.sol";

import {MockB20Stablecoin} from "test/lib/mocks/MockB20Stablecoin.sol";
import {MockB20Asset} from "test/lib/mocks/MockB20Asset.sol";
import {MockB20} from "test/lib/mocks/MockB20.sol";
import {MockB20Storage, MockB20AssetStorage, MockB20StablecoinStorage} from "test/lib/mocks/MockB20Storage.sol";
import {MockB20Stablecoin} from "base-std-test/lib/mocks/MockB20Stablecoin.sol";
import {MockB20Asset} from "base-std-test/lib/mocks/MockB20Asset.sol";
import {MockB20} from "base-std-test/lib/mocks/MockB20.sol";
import {
MockB20Storage,
MockB20AssetStorage,
MockB20StablecoinStorage
} from "base-std-test/lib/mocks/MockB20Storage.sol";

/// @title MockB20Factory
/// @notice Reference implementation of the `IB20Factory` precompile
Expand Down
8 changes: 4 additions & 4 deletions test/lib/mocks/MockB20Stablecoin.sol
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IB20Stablecoin} from "src/interfaces/IB20Stablecoin.sol";
import {IB20} from "src/interfaces/IB20.sol";
import {IB20Stablecoin} from "base-std/interfaces/IB20Stablecoin.sol";
import {IB20} from "base-std/interfaces/IB20.sol";

import {MockB20} from "test/lib/mocks/MockB20.sol";
import {MockB20StablecoinStorage} from "test/lib/mocks/MockB20Storage.sol";
import {MockB20} from "base-std-test/lib/mocks/MockB20.sol";
import {MockB20StablecoinStorage} from "base-std-test/lib/mocks/MockB20Storage.sol";

/// @title MockB20Stablecoin
/// @notice Reference implementation of the `IB20Stablecoin` variant.
Expand Down
4 changes: 2 additions & 2 deletions test/lib/mocks/MockPolicyRegistry.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IPolicyRegistry} from "src/interfaces/IPolicyRegistry.sol";
import {IPolicyRegistry} from "base-std/interfaces/IPolicyRegistry.sol";

import {MockPolicyRegistryStorage} from "test/lib/mocks/MockPolicyRegistryStorage.sol";
import {MockPolicyRegistryStorage} from "base-std-test/lib/mocks/MockPolicyRegistryStorage.sol";

/// @notice Canonical built-in policy ID constants. Declared as a library
/// so tests can reference them at compile time via
Expand Down
8 changes: 4 additions & 4 deletions test/regression/B20Removals.t.sol
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IB20} from "src/interfaces/IB20.sol";
import {IB20Factory} from "src/interfaces/IB20Factory.sol";
import {B20Constants} from "src/lib/B20Constants.sol";
import {IB20} from "base-std/interfaces/IB20.sol";
import {IB20Factory} from "base-std/interfaces/IB20Factory.sol";
import {B20Constants} from "base-std/lib/B20Constants.sol";

import {B20AssetTest} from "test/lib/B20AssetTest.sol";
import {B20AssetTest} from "base-std-test/lib/B20AssetTest.sol";

/// @title B20 removal regression suite
///
Expand Down
10 changes: 5 additions & 5 deletions test/regression/B20Renames.t.sol
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IB20} from "src/interfaces/IB20.sol";
import {IB20Asset} from "src/interfaces/IB20Asset.sol";
import {B20Constants} from "src/lib/B20Constants.sol";
import {IB20} from "base-std/interfaces/IB20.sol";
import {IB20Asset} from "base-std/interfaces/IB20Asset.sol";
import {B20Constants} from "base-std/lib/B20Constants.sol";

import {B20AssetTest} from "test/lib/B20AssetTest.sol";
import {ActivationRegistryFeatureList} from "test/lib/mocks/ActivationRegistryFeatureList.sol";
import {B20AssetTest} from "base-std-test/lib/B20AssetTest.sol";
import {ActivationRegistryFeatureList} from "base-std-test/lib/mocks/ActivationRegistryFeatureList.sol";

/// @title B20 rename regression suite
///
Expand Down
6 changes: 3 additions & 3 deletions test/unit/ActivationRegistry/activate.t.sol
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IActivationRegistry} from "src/interfaces/IActivationRegistry.sol";
import {IActivationRegistry} from "base-std/interfaces/IActivationRegistry.sol";

import {ActivationRegistryTest} from "test/lib/ActivationRegistryTest.sol";
import {MockActivationRegistryStorage} from "test/lib/mocks/MockActivationRegistryStorage.sol";
import {ActivationRegistryTest} from "base-std-test/lib/ActivationRegistryTest.sol";
import {MockActivationRegistryStorage} from "base-std-test/lib/mocks/MockActivationRegistryStorage.sol";

contract ActivationRegistryActivateTest is ActivationRegistryTest {
/// @notice Verifies activate reverts when called by any non-admin caller
Expand Down
4 changes: 2 additions & 2 deletions test/unit/ActivationRegistry/activate_revertOrder.t.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IActivationRegistry} from "src/interfaces/IActivationRegistry.sol";
import {IActivationRegistry} from "base-std/interfaces/IActivationRegistry.sol";

import {ActivationRegistryTest} from "test/lib/ActivationRegistryTest.sol";
import {ActivationRegistryTest} from "base-std-test/lib/ActivationRegistryTest.sol";

contract ActivationRegistryActivateRevertOrderTest is ActivationRegistryTest {
/// @notice Verifies Unauthorized fires before AlreadyActivated when caller is not admin
Expand Down
2 changes: 1 addition & 1 deletion test/unit/ActivationRegistry/admin.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 {ActivationRegistryTest} from "test/lib/ActivationRegistryTest.sol";
import {ActivationRegistryTest} from "base-std-test/lib/ActivationRegistryTest.sol";

contract ActivationRegistryAdminTest is ActivationRegistryTest {
/// @notice Verifies admin returns the configured activation admin address
Expand Down
6 changes: 3 additions & 3 deletions test/unit/ActivationRegistry/deactivate.t.sol
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IActivationRegistry} from "src/interfaces/IActivationRegistry.sol";
import {IActivationRegistry} from "base-std/interfaces/IActivationRegistry.sol";

import {ActivationRegistryTest} from "test/lib/ActivationRegistryTest.sol";
import {MockActivationRegistryStorage} from "test/lib/mocks/MockActivationRegistryStorage.sol";
import {ActivationRegistryTest} from "base-std-test/lib/ActivationRegistryTest.sol";
import {MockActivationRegistryStorage} from "base-std-test/lib/mocks/MockActivationRegistryStorage.sol";

contract ActivationRegistryDeactivateTest is ActivationRegistryTest {
/// @notice Verifies deactivate reverts when called by any non-admin caller
Expand Down
4 changes: 2 additions & 2 deletions test/unit/ActivationRegistry/deactivate_revertOrder.t.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IActivationRegistry} from "src/interfaces/IActivationRegistry.sol";
import {IActivationRegistry} from "base-std/interfaces/IActivationRegistry.sol";

import {ActivationRegistryTest} from "test/lib/ActivationRegistryTest.sol";
import {ActivationRegistryTest} from "base-std-test/lib/ActivationRegistryTest.sol";

contract ActivationRegistryDeactivateRevertOrderTest is ActivationRegistryTest {
/// @notice Verifies Unauthorized fires before FeatureNotActivated when caller is not admin
Expand Down
2 changes: 1 addition & 1 deletion test/unit/ActivationRegistry/featureList.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pragma solidity ^0.8.20;

import {Test} from "forge-std/Test.sol";

import {ActivationRegistryFeatureList} from "test/lib/mocks/ActivationRegistryFeatureList.sol";
import {ActivationRegistryFeatureList} from "base-std-test/lib/mocks/ActivationRegistryFeatureList.sol";

/// @notice Pins each feature id constant in `ActivationRegistryFeatureList` to
/// its canonical `keccak256("base.<feature>")` preimage.
Expand Down
2 changes: 1 addition & 1 deletion test/unit/ActivationRegistry/isActivated.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 {ActivationRegistryTest} from "test/lib/ActivationRegistryTest.sol";
import {ActivationRegistryTest} from "base-std-test/lib/ActivationRegistryTest.sol";

contract ActivationRegistryIsActivatedTest is ActivationRegistryTest {
/// @notice Verifies isActivated returns false for any feature id that has never been activated
Expand Down
2 changes: 1 addition & 1 deletion test/unit/B20/erc20/allowance.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 {B20Test} from "test/lib/B20Test.sol";
import {B20Test} from "base-std-test/lib/B20Test.sol";

contract B20AllowanceTest is B20Test {
/// @notice Verifies allowance returns zero for any unconfigured (owner, spender) pair
Expand Down
6 changes: 3 additions & 3 deletions test/unit/B20/erc20/approve.t.sol
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IB20} from "src/interfaces/IB20.sol";
import {IB20} from "base-std/interfaces/IB20.sol";

import {B20Test} from "test/lib/B20Test.sol";
import {MockB20Storage} from "test/lib/mocks/MockB20Storage.sol";
import {B20Test} from "base-std-test/lib/B20Test.sol";
import {MockB20Storage} from "base-std-test/lib/mocks/MockB20Storage.sol";

contract B20ApproveTest is B20Test {
/// @notice Verifies approve reverts for the zero spender address
Expand Down
6 changes: 3 additions & 3 deletions test/unit/B20/erc20/approve_revertOrder.t.sol
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IB20} from "src/interfaces/IB20.sol";
import {IB20} from "base-std/interfaces/IB20.sol";

import {B20Test} from "test/lib/B20Test.sol";
import {MockB20} from "test/lib/mocks/MockB20.sol";
import {B20Test} from "base-std-test/lib/B20Test.sol";
import {MockB20} from "base-std-test/lib/mocks/MockB20.sol";

/// @title Differential check-order tests for `approve`.
///
Expand Down
Loading
Loading