@bananapus/721-hook-v6 0.0.20 → 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/AUDIT_INSTRUCTIONS.md +1 -1
  2. package/CHANGE_LOG.md +1 -1
  3. package/README.md +1 -1
  4. package/STYLE_GUIDE.md +2 -2
  5. package/foundry.toml +1 -1
  6. package/package.json +5 -5
  7. package/script/Deploy.s.sol +1 -1
  8. package/script/helpers/Hook721DeploymentLib.sol +1 -1
  9. package/src/JB721TiersHook.sol +1 -1
  10. package/src/JB721TiersHookDeployer.sol +1 -1
  11. package/src/JB721TiersHookProjectDeployer.sol +1 -1
  12. package/src/JB721TiersHookStore.sol +1 -1
  13. package/src/abstract/ERC721.sol +1 -1
  14. package/src/abstract/JB721Hook.sol +1 -1
  15. package/src/libraries/JB721TiersHookLib.sol +1 -1
  16. package/test/721HookAttacks.t.sol +1 -1
  17. package/test/E2E/Pay_Mint_Redeem_E2E.t.sol +1 -1
  18. package/test/Fork.t.sol +1 -1
  19. package/test/TestAuditGaps.sol +1 -1
  20. package/test/TestSafeTransferReentrancy.t.sol +1 -1
  21. package/test/TestVotingUnitsLifecycle.t.sol +1 -1
  22. package/test/audit/AuditRegressions.t.sol +2 -1
  23. package/test/audit/CodexNemesis_CrossCurrencySplitNoPrices.t.sol +2 -1
  24. package/test/audit/USDTVoidReturnCompat.t.sol +1 -1
  25. package/test/fork/ERC20CashOutFork.t.sol +1 -1
  26. package/test/fork/ERC20TierSplitFork.t.sol +1 -1
  27. package/test/fork/IssueTokensForSplitsFork.t.sol +1 -1
  28. package/test/invariants/TierLifecycleInvariant.t.sol +1 -1
  29. package/test/invariants/TieredHookStoreInvariant.t.sol +1 -1
  30. package/test/invariants/handlers/TierLifecycleHandler.sol +1 -1
  31. package/test/invariants/handlers/TierStoreHandler.sol +1 -1
  32. package/test/regression/BrokenTerminalDoesNotDos.t.sol +1 -1
  33. package/test/regression/CacheTierLookup.t.sol +1 -1
  34. package/test/regression/ProjectDeployerRulesets.t.sol +1 -1
  35. package/test/regression/ReserveBeneficiaryOverwrite.t.sol +1 -1
  36. package/test/regression/SplitDistributionBugs.t.sol +1 -1
  37. package/test/regression/SplitNoBeneficiary.t.sol +1 -1
  38. package/test/unit/JB721TiersRulesetMetadataResolver.t.sol +1 -1
  39. package/test/unit/JBBitmap.t.sol +1 -1
  40. package/test/unit/JBIpfsDecoder.t.sol +1 -1
  41. package/test/unit/TierSupplyReserveCheck.t.sol +1 -1
  42. package/test/unit/adjustTier_Unit.t.sol +1 -1
  43. package/test/unit/deployer_Unit.t.sol +1 -1
  44. package/test/unit/getters_constructor_Unit.t.sol +1 -1
  45. package/test/unit/mintFor_mintReservesFor_Unit.t.sol +1 -1
  46. package/test/unit/pay_CrossCurrency_Unit.t.sol +1 -1
  47. package/test/unit/pay_Unit.t.sol +1 -1
  48. package/test/unit/redeem_Unit.t.sol +1 -1
  49. package/test/unit/splitHookDistribution_Unit.t.sol +1 -1
  50. package/test/unit/tierSplitRouting_Unit.t.sol +1 -1
@@ -8,7 +8,7 @@ Read [ARCHITECTURE.md](./ARCHITECTURE.md) first for data flow context. Read [RIS
8
8
 
9
9
  | Setting | Value |
10
10
  |---------|-------|
11
- | Solidity version | ^0.8.26 |
11
+ | Solidity version | 0.8.28 |
12
12
  | EVM target | cancun |
13
13
  | Optimizer | enabled, 200 runs |
14
14
  | via-IR | not enabled |
package/CHANGE_LOG.md CHANGED
@@ -74,7 +74,7 @@ Several store errors gained a `tierId` parameter for better debugging:
74
74
 
75
75
  ### 1.8 Solidity Version Change
76
76
 
77
- All contracts upgraded from `pragma solidity 0.8.23` to `pragma solidity ^0.8.26`.
77
+ All contracts upgraded from `pragma solidity 0.8.23` to `pragma solidity 0.8.28`.
78
78
 
79
79
  ### 1.9 Cross-Repo Impact
80
80
 
package/README.md CHANGED
@@ -146,7 +146,7 @@ Key settings from `foundry.toml`:
146
146
 
147
147
  | Setting | Value |
148
148
  | --- | --- |
149
- | Solidity compiler | ^0.8.26 |
149
+ | Solidity compiler | 0.8.28 |
150
150
  | EVM target | cancun |
151
151
  | Optimizer runs | 200 |
152
152
  | Fuzz runs | 4,096 |
package/STYLE_GUIDE.md CHANGED
@@ -21,7 +21,7 @@ One contract/interface/struct/enum per file. Name the file after the type it con
21
21
 
22
22
  ```solidity
23
23
  // Contracts — pin to exact version
24
- pragma solidity ^0.8.26;
24
+ pragma solidity 0.8.28;
25
25
 
26
26
  // Interfaces, structs, enums — caret for forward compatibility
27
27
  pragma solidity ^0.8.0;
@@ -326,7 +326,7 @@ Standard config across all repos:
326
326
 
327
327
  ```toml
328
328
  [profile.default]
329
- solc = '0.8.26'
329
+ solc = '0.8.28'
330
330
  evm_version = 'cancun'
331
331
  optimizer_runs = 200
332
332
  libs = ["node_modules", "lib"]
package/foundry.toml CHANGED
@@ -1,5 +1,5 @@
1
1
  [profile.default]
2
- solc = '0.8.26'
2
+ solc = '0.8.28'
3
3
  evm_version = 'cancun'
4
4
  optimizer_runs = 200
5
5
  libs = ["node_modules", "lib"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bananapus/721-hook-v6",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,10 +17,10 @@
17
17
  "artifacts": "source ./.env && npx sphinx artifacts --org-id 'ea165b21-7cdc-4d7b-be59-ecdd4c26bee4' --project-name 'nana-721-hook-v6'"
18
18
  },
19
19
  "dependencies": {
20
- "@bananapus/address-registry-v6": "^0.0.14",
21
- "@bananapus/core-v6": "^0.0.26",
22
- "@bananapus/ownable-v6": "^0.0.13",
23
- "@bananapus/permission-ids-v6": "^0.0.12",
20
+ "@bananapus/address-registry-v6": "^0.0.15",
21
+ "@bananapus/core-v6": "^0.0.27",
22
+ "@bananapus/ownable-v6": "^0.0.14",
23
+ "@bananapus/permission-ids-v6": "^0.0.14",
24
24
  "@openzeppelin/contracts": "^5.6.1",
25
25
  "@prb/math": "^4.1.0",
26
26
  "solady": "^0.1.8"
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "@bananapus/core-v6/script/helpers/CoreDeploymentLib.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  import {stdJson} from "forge-std/Script.sol";
5
5
  import {Vm} from "forge-std/Vm.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  import {IJBDirectory} from "@bananapus/core-v6/src/interfaces/IJBDirectory.sol";
5
5
  import {IJBPermissions} from "@bananapus/core-v6/src/interfaces/IJBPermissions.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  import {IJBAddressRegistry} from "@bananapus/address-registry-v6/src/interfaces/IJBAddressRegistry.sol";
5
5
  import {JBOwnable} from "@bananapus/ownable-v6/src/JBOwnable.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  import {JBPermissioned} from "@bananapus/core-v6/src/abstract/JBPermissioned.sol";
5
5
  import {IJBController} from "@bananapus/core-v6/src/interfaces/IJBController.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  import {mulDiv} from "@prb/math/src/Common.sol";
5
5
  import {JBConstants} from "@bananapus/core-v6/src/libraries/JBConstants.sol";
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)
3
3
 
4
- pragma solidity ^0.8.26;
4
+ pragma solidity 0.8.28;
5
5
 
6
6
  import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
7
7
  import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  import {IJBCashOutHook} from "@bananapus/core-v6/src/interfaces/IJBCashOutHook.sol";
5
5
  import {IJBDirectory} from "@bananapus/core-v6/src/interfaces/IJBDirectory.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  import {IJBDirectory} from "@bananapus/core-v6/src/interfaces/IJBDirectory.sol";
5
5
  import {IJBPrices} from "@bananapus/core-v6/src/interfaces/IJBPrices.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "./utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
package/test/Fork.t.sol CHANGED
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "forge-std/Test.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "./utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "./utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "./utils/UnitTestSetup.sol";
@@ -1,7 +1,8 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // Import the shared unit test setup which deploys a hook clone with 10 tiers.
5
+ // forge-lint: disable-next-line(unaliased-plain-import)
5
6
  import "../utils/UnitTestSetup.sol";
6
7
 
7
8
  // Import IERC2981 to compute its interface ID for the supportsInterface test.
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
+ // forge-lint: disable-next-line(unaliased-plain-import)
4
5
  import "../utils/UnitTestSetup.sol";
5
6
  import {IJB721TokenUriResolver} from "../../src/interfaces/IJB721TokenUriResolver.sol";
6
7
  import {IJBDirectory} from "@bananapus/core-v6/src/interfaces/IJBDirectory.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // Import the forge-std test framework.
5
5
  import {Test} from "forge-std/Test.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "forge-std/Test.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "forge-std/Test.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "forge-std/Test.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "forge-std/StdInvariant.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "forge-std/Test.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "forge-std/Test.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  import {CommonBase} from "forge-std/Base.sol";
5
5
  import {StdCheats} from "forge-std/StdCheats.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "forge-std/Test.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "forge-std/Test.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "forge-std/Test.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "@bananapus/address-registry-v6/src/JBAddressRegistry.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.26;
2
+ pragma solidity 0.8.28;
3
3
 
4
4
  // forge-lint: disable-next-line(unaliased-plain-import)
5
5
  import "../utils/UnitTestSetup.sol";