@bananapus/721-hook-v6 1.0.0 → 1.1.0
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.
- package/README.md +4 -0
- package/deployments/arbitrum/JB721Checkpoints.json +794 -0
- package/deployments/arbitrum/JB721CheckpointsDeployer.json +158 -0
- package/deployments/arbitrum/JB721TiersHook.json +2817 -0
- package/deployments/arbitrum/JB721TiersHookDeployer.json +447 -0
- package/deployments/arbitrum/JB721TiersHookLib.json +713 -0
- package/deployments/arbitrum/JB721TiersHookProjectDeployer.json +1793 -0
- package/deployments/arbitrum/JB721TiersHookStore.json +1744 -0
- package/deployments/arbitrum/JB721TiersHook__ProjectBAN.json +3497 -0
- package/deployments/arbitrum/JB721TiersHook__ProjectCPN.json +3450 -0
- package/deployments/arbitrum_sepolia/JB721Checkpoints.json +794 -0
- package/deployments/arbitrum_sepolia/JB721CheckpointsDeployer.json +158 -0
- package/deployments/arbitrum_sepolia/JB721TiersHook.json +2817 -0
- package/deployments/arbitrum_sepolia/JB721TiersHookDeployer.json +447 -0
- package/deployments/arbitrum_sepolia/JB721TiersHookLib.json +713 -0
- package/deployments/arbitrum_sepolia/JB721TiersHookProjectDeployer.json +1793 -0
- package/deployments/arbitrum_sepolia/JB721TiersHookStore.json +1744 -0
- package/deployments/arbitrum_sepolia/JB721TiersHook__ProjectBAN.json +3497 -0
- package/deployments/arbitrum_sepolia/JB721TiersHook__ProjectCPN.json +3450 -0
- package/deployments/base/JB721Checkpoints.json +799 -0
- package/deployments/base/JB721CheckpointsDeployer.json +163 -0
- package/deployments/base/JB721TiersHook.json +2822 -0
- package/deployments/base/JB721TiersHookDeployer.json +452 -0
- package/deployments/base/JB721TiersHookLib.json +718 -0
- package/deployments/base/JB721TiersHookProjectDeployer.json +1798 -0
- package/deployments/base/JB721TiersHookStore.json +1749 -0
- package/deployments/base/JB721TiersHook__ProjectBAN.json +3502 -0
- package/deployments/base/JB721TiersHook__ProjectCPN.json +3455 -0
- package/deployments/base_sepolia/JB721Checkpoints.json +799 -0
- package/deployments/base_sepolia/JB721CheckpointsDeployer.json +163 -0
- package/deployments/base_sepolia/JB721TiersHook.json +2822 -0
- package/deployments/base_sepolia/JB721TiersHookDeployer.json +452 -0
- package/deployments/base_sepolia/JB721TiersHookLib.json +718 -0
- package/deployments/base_sepolia/JB721TiersHookProjectDeployer.json +1798 -0
- package/deployments/base_sepolia/JB721TiersHookStore.json +1749 -0
- package/deployments/base_sepolia/JB721TiersHook__ProjectBAN.json +3502 -0
- package/deployments/base_sepolia/JB721TiersHook__ProjectCPN.json +3455 -0
- package/deployments/ethereum/JB721Checkpoints.json +791 -0
- package/deployments/ethereum/JB721CheckpointsDeployer.json +155 -0
- package/deployments/ethereum/JB721TiersHook.json +2814 -0
- package/deployments/ethereum/JB721TiersHookDeployer.json +444 -0
- package/deployments/ethereum/JB721TiersHookLib.json +710 -0
- package/deployments/ethereum/JB721TiersHookProjectDeployer.json +1790 -0
- package/deployments/ethereum/JB721TiersHookStore.json +1741 -0
- package/deployments/ethereum/JB721TiersHook__ProjectBAN.json +3511 -0
- package/deployments/ethereum/JB721TiersHook__ProjectCPN.json +3503 -0
- package/deployments/optimism/JB721Checkpoints.json +799 -0
- package/deployments/optimism/JB721CheckpointsDeployer.json +163 -0
- package/deployments/optimism/JB721TiersHook.json +2822 -0
- package/deployments/optimism/JB721TiersHookDeployer.json +452 -0
- package/deployments/optimism/JB721TiersHookLib.json +718 -0
- package/deployments/optimism/JB721TiersHookProjectDeployer.json +1798 -0
- package/deployments/optimism/JB721TiersHookStore.json +1749 -0
- package/deployments/optimism/JB721TiersHook__ProjectBAN.json +3502 -0
- package/deployments/optimism/JB721TiersHook__ProjectCPN.json +3438 -0
- package/deployments/optimism_sepolia/JB721Checkpoints.json +799 -0
- package/deployments/optimism_sepolia/JB721CheckpointsDeployer.json +163 -0
- package/deployments/optimism_sepolia/JB721TiersHook.json +2822 -0
- package/deployments/optimism_sepolia/JB721TiersHookDeployer.json +452 -0
- package/deployments/optimism_sepolia/JB721TiersHookLib.json +718 -0
- package/deployments/optimism_sepolia/JB721TiersHookProjectDeployer.json +1798 -0
- package/deployments/optimism_sepolia/JB721TiersHookStore.json +1749 -0
- package/deployments/optimism_sepolia/JB721TiersHook__ProjectBAN.json +3453 -0
- package/deployments/optimism_sepolia/JB721TiersHook__ProjectCPN.json +3389 -0
- package/deployments/sepolia/JB721Checkpoints.json +791 -0
- package/deployments/sepolia/JB721CheckpointsDeployer.json +155 -0
- package/deployments/sepolia/JB721TiersHook.json +2814 -0
- package/deployments/sepolia/JB721TiersHookDeployer.json +444 -0
- package/deployments/sepolia/JB721TiersHookLib.json +710 -0
- package/deployments/sepolia/JB721TiersHookProjectDeployer.json +1790 -0
- package/deployments/sepolia/JB721TiersHookStore.json +1741 -0
- package/deployments/sepolia/JB721TiersHook__ProjectBAN.json +3511 -0
- package/deployments/sepolia/JB721TiersHook__ProjectCPN.json +3503 -0
- package/package.json +3 -2
- package/src/JB721TiersHookProjectDeployer.sol +20 -0
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bananapus/721-hook-v6",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/Bananapus/nana-721-hook-v6.git"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
|
+
"deployments/",
|
|
10
11
|
"foundry.toml",
|
|
11
12
|
"references/",
|
|
12
13
|
"remappings.txt",
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
},
|
|
27
28
|
"dependencies": {
|
|
28
29
|
"@bananapus/address-registry-v6": "^1.0.0",
|
|
29
|
-
"@bananapus/core-v6": "^1.0.
|
|
30
|
+
"@bananapus/core-v6": "^1.0.2",
|
|
30
31
|
"@bananapus/ownable-v6": "^1.0.0",
|
|
31
32
|
"@bananapus/permission-ids-v6": "^1.0.0",
|
|
32
33
|
"@openzeppelin/contracts": "5.6.1",
|
|
@@ -4,8 +4,10 @@ pragma solidity 0.8.28;
|
|
|
4
4
|
import {JBPermissioned} from "@bananapus/core-v6/src/abstract/JBPermissioned.sol";
|
|
5
5
|
import {IJBController} from "@bananapus/core-v6/src/interfaces/IJBController.sol";
|
|
6
6
|
import {IJBDirectory} from "@bananapus/core-v6/src/interfaces/IJBDirectory.sol";
|
|
7
|
+
import {IJBPayerTracker} from "@bananapus/core-v6/src/interfaces/IJBPayerTracker.sol";
|
|
7
8
|
import {IJBPermissions} from "@bananapus/core-v6/src/interfaces/IJBPermissions.sol";
|
|
8
9
|
import {IJBProjects} from "@bananapus/core-v6/src/interfaces/IJBProjects.sol";
|
|
10
|
+
import {JBPayerTrackerLib} from "@bananapus/core-v6/src/libraries/JBPayerTrackerLib.sol";
|
|
9
11
|
import {JBRulesetConfig} from "@bananapus/core-v6/src/structs/JBRulesetConfig.sol";
|
|
10
12
|
import {JBRulesetMetadata} from "@bananapus/core-v6/src/structs/JBRulesetMetadata.sol";
|
|
11
13
|
import {JBOwnable} from "@bananapus/ownable-v6/src/JBOwnable.sol";
|
|
@@ -31,6 +33,7 @@ contract JB721TiersHookProjectDeployer is
|
|
|
31
33
|
ERC2771Context,
|
|
32
34
|
JBPermissioned,
|
|
33
35
|
IERC721Receiver,
|
|
36
|
+
IJBPayerTracker,
|
|
34
37
|
IJB721TiersHookProjectDeployer
|
|
35
38
|
{
|
|
36
39
|
//*********************************************************************//
|
|
@@ -43,6 +46,16 @@ contract JB721TiersHookProjectDeployer is
|
|
|
43
46
|
/// @notice The deployer contract used to create new 721 tiers hook instances via clone.
|
|
44
47
|
IJB721TiersHookDeployer public immutable override HOOK_DEPLOYER;
|
|
45
48
|
|
|
49
|
+
//*********************************************************************//
|
|
50
|
+
// ------------------- public transient properties ------------------- //
|
|
51
|
+
//*********************************************************************//
|
|
52
|
+
|
|
53
|
+
/// @notice The account that paid the creation fee for the project currently being launched.
|
|
54
|
+
/// @dev Set to the resolved fee payer (this contract's caller, or that caller's upstream payer when the caller is
|
|
55
|
+
/// itself an `IJBPayerTracker`) while `JBProjects.createFor` runs, so `JBProjects` attributes the fee to the true
|
|
56
|
+
/// payer. Cleared back to `address(0)` once the call returns.
|
|
57
|
+
address public transient override originalPayer;
|
|
58
|
+
|
|
46
59
|
//*********************************************************************//
|
|
47
60
|
// -------------------------- constructor ---------------------------- //
|
|
48
61
|
//*********************************************************************//
|
|
@@ -92,8 +105,15 @@ contract JB721TiersHookProjectDeployer is
|
|
|
92
105
|
{
|
|
93
106
|
// Reserve the project ID up front so permissionless project creations cannot invalidate hook deployment.
|
|
94
107
|
IJBProjects projects = DIRECTORY.PROJECTS();
|
|
108
|
+
|
|
109
|
+
// Expose the resolved fee payer so `JBProjects` attributes the creation fee to the true payer, not this
|
|
110
|
+
// contract. Cleared immediately after.
|
|
111
|
+
originalPayer = JBPayerTrackerLib.resolve(_msgSender());
|
|
112
|
+
|
|
95
113
|
projectId = projects.createFor{value: msg.value}(address(this));
|
|
96
114
|
|
|
115
|
+
originalPayer = address(0);
|
|
116
|
+
|
|
97
117
|
// Deploy the hook.
|
|
98
118
|
hook = HOOK_DEPLOYER.deployHookFor({
|
|
99
119
|
projectId: projectId,
|