@bananapus/suckers-v6 0.0.1
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/LICENSE +21 -0
- package/README.md +422 -0
- package/SECURITY.md +55 -0
- package/SKILLS.md +163 -0
- package/deployments/nana-suckers-v5/arbitrum/JBArbitrumSucker.json +1425 -0
- package/deployments/nana-suckers-v5/arbitrum/JBArbitrumSuckerDeployer.json +391 -0
- package/deployments/nana-suckers-v5/arbitrum/JBCCIPSucker.json +1479 -0
- package/deployments/nana-suckers-v5/arbitrum/JBCCIPSuckerDeployer.json +433 -0
- package/deployments/nana-suckers-v5/arbitrum/JBCCIPSuckerDeployer_1.json +433 -0
- package/deployments/nana-suckers-v5/arbitrum/JBCCIPSuckerDeployer_2.json +433 -0
- package/deployments/nana-suckers-v5/arbitrum/JBCCIPSucker_1.json +1479 -0
- package/deployments/nana-suckers-v5/arbitrum/JBCCIPSucker_2.json +1479 -0
- package/deployments/nana-suckers-v5/arbitrum/JBSuckerRegistry.json +690 -0
- package/deployments/nana-suckers-v5/arbitrum_sepolia/JBArbitrumSucker.json +1425 -0
- package/deployments/nana-suckers-v5/arbitrum_sepolia/JBArbitrumSuckerDeployer.json +391 -0
- package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSucker.json +1479 -0
- package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSuckerDeployer.json +433 -0
- package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSuckerDeployer_1.json +433 -0
- package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSuckerDeployer_2.json +433 -0
- package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSucker_1.json +1479 -0
- package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSucker_2.json +1479 -0
- package/deployments/nana-suckers-v5/arbitrum_sepolia/JBSuckerRegistry.json +690 -0
- package/deployments/nana-suckers-v5/base/JBBaseSucker.json +1389 -0
- package/deployments/nana-suckers-v5/base/JBBaseSuckerDeployer.json +376 -0
- package/deployments/nana-suckers-v5/base/JBCCIPSucker.json +1483 -0
- package/deployments/nana-suckers-v5/base/JBCCIPSuckerDeployer.json +436 -0
- package/deployments/nana-suckers-v5/base/JBCCIPSuckerDeployer_1.json +436 -0
- package/deployments/nana-suckers-v5/base/JBCCIPSuckerDeployer_2.json +436 -0
- package/deployments/nana-suckers-v5/base/JBCCIPSucker_1.json +1483 -0
- package/deployments/nana-suckers-v5/base/JBCCIPSucker_2.json +1483 -0
- package/deployments/nana-suckers-v5/base/JBSuckerRegistry.json +694 -0
- package/deployments/nana-suckers-v5/base_sepolia/JBBaseSucker.json +1389 -0
- package/deployments/nana-suckers-v5/base_sepolia/JBBaseSuckerDeployer.json +376 -0
- package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSucker.json +1483 -0
- package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSuckerDeployer.json +436 -0
- package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSuckerDeployer_1.json +436 -0
- package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSuckerDeployer_2.json +436 -0
- package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSucker_1.json +1483 -0
- package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSucker_2.json +1483 -0
- package/deployments/nana-suckers-v5/base_sepolia/JBSuckerRegistry.json +694 -0
- package/deployments/nana-suckers-v5/ethereum/JBArbitrumSucker.json +1429 -0
- package/deployments/nana-suckers-v5/ethereum/JBArbitrumSuckerDeployer.json +394 -0
- package/deployments/nana-suckers-v5/ethereum/JBBaseSucker.json +1389 -0
- package/deployments/nana-suckers-v5/ethereum/JBBaseSuckerDeployer.json +376 -0
- package/deployments/nana-suckers-v5/ethereum/JBCCIPSucker.json +1483 -0
- package/deployments/nana-suckers-v5/ethereum/JBCCIPSuckerDeployer.json +436 -0
- package/deployments/nana-suckers-v5/ethereum/JBCCIPSuckerDeployer_1.json +436 -0
- package/deployments/nana-suckers-v5/ethereum/JBCCIPSuckerDeployer_2.json +436 -0
- package/deployments/nana-suckers-v5/ethereum/JBCCIPSucker_1.json +1483 -0
- package/deployments/nana-suckers-v5/ethereum/JBCCIPSucker_2.json +1483 -0
- package/deployments/nana-suckers-v5/ethereum/JBOptimismSucker.json +1389 -0
- package/deployments/nana-suckers-v5/ethereum/JBOptimismSuckerDeployer.json +376 -0
- package/deployments/nana-suckers-v5/ethereum/JBSuckerRegistry.json +694 -0
- package/deployments/nana-suckers-v5/optimism/JBCCIPSucker.json +1479 -0
- package/deployments/nana-suckers-v5/optimism/JBCCIPSuckerDeployer.json +433 -0
- package/deployments/nana-suckers-v5/optimism/JBCCIPSuckerDeployer_1.json +433 -0
- package/deployments/nana-suckers-v5/optimism/JBCCIPSuckerDeployer_2.json +433 -0
- package/deployments/nana-suckers-v5/optimism/JBCCIPSucker_1.json +1479 -0
- package/deployments/nana-suckers-v5/optimism/JBCCIPSucker_2.json +1479 -0
- package/deployments/nana-suckers-v5/optimism/JBOptimismSucker.json +1385 -0
- package/deployments/nana-suckers-v5/optimism/JBOptimismSuckerDeployer.json +373 -0
- package/deployments/nana-suckers-v5/optimism/JBSuckerRegistry.json +690 -0
- package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSucker.json +1483 -0
- package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSuckerDeployer.json +436 -0
- package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSuckerDeployer_1.json +436 -0
- package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSuckerDeployer_2.json +436 -0
- package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSucker_1.json +1483 -0
- package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSucker_2.json +1483 -0
- package/deployments/nana-suckers-v5/optimism_sepolia/JBOptimismSucker.json +1389 -0
- package/deployments/nana-suckers-v5/optimism_sepolia/JBOptimismSuckerDeployer.json +376 -0
- package/deployments/nana-suckers-v5/optimism_sepolia/JBSuckerRegistry.json +694 -0
- package/deployments/nana-suckers-v5/sepolia/JBArbitrumSucker.json +1429 -0
- package/deployments/nana-suckers-v5/sepolia/JBArbitrumSuckerDeployer.json +394 -0
- package/deployments/nana-suckers-v5/sepolia/JBBaseSucker.json +1389 -0
- package/deployments/nana-suckers-v5/sepolia/JBBaseSuckerDeployer.json +376 -0
- package/deployments/nana-suckers-v5/sepolia/JBCCIPSucker.json +1483 -0
- package/deployments/nana-suckers-v5/sepolia/JBCCIPSuckerDeployer.json +436 -0
- package/deployments/nana-suckers-v5/sepolia/JBCCIPSuckerDeployer_1.json +436 -0
- package/deployments/nana-suckers-v5/sepolia/JBCCIPSuckerDeployer_2.json +436 -0
- package/deployments/nana-suckers-v5/sepolia/JBCCIPSucker_1.json +1483 -0
- package/deployments/nana-suckers-v5/sepolia/JBCCIPSucker_2.json +1483 -0
- package/deployments/nana-suckers-v5/sepolia/JBOptimismSucker.json +1389 -0
- package/deployments/nana-suckers-v5/sepolia/JBOptimismSuckerDeployer.json +376 -0
- package/deployments/nana-suckers-v5/sepolia/JBSuckerRegistry.json +694 -0
- package/foundry.lock +11 -0
- package/foundry.toml +22 -0
- package/package.json +33 -0
- package/remappings.txt +1 -0
- package/script/Deploy.s.sol +506 -0
- package/script/helpers/SuckerDeploymentLib.sol +97 -0
- package/slither-ci.config.json +10 -0
- package/sphinx.lock +476 -0
- package/src/JBArbitrumSucker.sol +311 -0
- package/src/JBBaseSucker.sol +41 -0
- package/src/JBCCIPSucker.sol +303 -0
- package/src/JBOptimismSucker.sol +143 -0
- package/src/JBSucker.sol +1159 -0
- package/src/JBSuckerRegistry.sol +262 -0
- package/src/deployers/JBArbitrumSuckerDeployer.sol +86 -0
- package/src/deployers/JBBaseSuckerDeployer.sol +26 -0
- package/src/deployers/JBCCIPSuckerDeployer.sol +88 -0
- package/src/deployers/JBOptimismSuckerDeployer.sol +82 -0
- package/src/deployers/JBSuckerDeployer.sol +147 -0
- package/src/enums/JBAddToBalanceMode.sol +11 -0
- package/src/enums/JBLayer.sol +8 -0
- package/src/enums/JBSuckerState.sol +14 -0
- package/src/interfaces/IArbGatewayRouter.sol +11 -0
- package/src/interfaces/IArbL1GatewayRouter.sol +17 -0
- package/src/interfaces/IArbL2GatewayRouter.sol +14 -0
- package/src/interfaces/ICCIPRouter.sol +11 -0
- package/src/interfaces/IJBArbitrumSucker.sol +13 -0
- package/src/interfaces/IJBArbitrumSuckerDeployer.sol +12 -0
- package/src/interfaces/IJBCCIPSuckerDeployer.sol +15 -0
- package/src/interfaces/IJBOpSuckerDeployer.sol +11 -0
- package/src/interfaces/IJBOptimismSucker.sol +10 -0
- package/src/interfaces/IJBSucker.sol +144 -0
- package/src/interfaces/IJBSuckerDeployer.sol +40 -0
- package/src/interfaces/IJBSuckerExtended.sol +22 -0
- package/src/interfaces/IJBSuckerRegistry.sol +75 -0
- package/src/interfaces/IOPMessenger.sol +18 -0
- package/src/interfaces/IOPStandardBridge.sol +29 -0
- package/src/interfaces/IWrappedNativeToken.sol +13 -0
- package/src/libraries/ARBAddresses.sol +17 -0
- package/src/libraries/ARBChains.sol +11 -0
- package/src/libraries/CCIPHelper.sol +136 -0
- package/src/structs/JBClaim.sol +13 -0
- package/src/structs/JBInboxTreeRoot.sol +12 -0
- package/src/structs/JBLeaf.sol +14 -0
- package/src/structs/JBMessageRoot.sol +16 -0
- package/src/structs/JBOutboxTree.sol +18 -0
- package/src/structs/JBRemoteToken.sol +17 -0
- package/src/structs/JBSuckerDeployerConfig.sol +12 -0
- package/src/structs/JBSuckersPair.sol +11 -0
- package/src/structs/JBTokenMapping.sol +13 -0
- package/src/utils/MerkleLib.sol +1020 -0
- package/test/Fork.t.sol +514 -0
- package/test/InteropCompat.t.sol +676 -0
- package/test/SuckerAttacks.t.sol +509 -0
- package/test/SuckerDeepAttacks.t.sol +1563 -0
- package/test/mocks/ERC20Mock.sol +36 -0
- package/test/mocks/MockMessenger.sol +42 -0
- package/test/unit/arb.t.sol +28 -0
- package/test/unit/ccip_native_interop.t.sol +719 -0
- package/test/unit/ccip_refund.t.sol +234 -0
- package/test/unit/deployer.t.sol +475 -0
- package/test/unit/emergency.t.sol +305 -0
- package/test/unit/merkle.t.sol +212 -0
- package/test/unit/multi_chain_evolution.t.sol +622 -0
- package/test/unit/registry.t.sol +26 -0
|
@@ -0,0 +1,690 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": "sphinx-sol-ct-artifact-1",
|
|
3
|
+
"merkleRoot": "0xaf5e28bbeeb8122b7e38bf2cb4c20e25753886f2cc3a4b8bc8ead5d3ccb5c985",
|
|
4
|
+
"address": "0x07c8c5bf08f0361883728a8a5f8824ba5724ece3",
|
|
5
|
+
"sourceName": "src/JBSuckerRegistry.sol",
|
|
6
|
+
"contractName": "JBSuckerRegistry",
|
|
7
|
+
"chainId": "0x66eee",
|
|
8
|
+
"abi": [
|
|
9
|
+
{
|
|
10
|
+
"inputs": [
|
|
11
|
+
{
|
|
12
|
+
"internalType": "contract IJBDirectory",
|
|
13
|
+
"name": "directory",
|
|
14
|
+
"type": "address"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"internalType": "contract IJBPermissions",
|
|
18
|
+
"name": "permissions",
|
|
19
|
+
"type": "address"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"internalType": "address",
|
|
23
|
+
"name": "initialOwner",
|
|
24
|
+
"type": "address"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"internalType": "address",
|
|
28
|
+
"name": "trusted_forwarder",
|
|
29
|
+
"type": "address"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"stateMutability": "nonpayable",
|
|
33
|
+
"type": "constructor"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"inputs": [],
|
|
37
|
+
"name": "DIRECTORY",
|
|
38
|
+
"outputs": [
|
|
39
|
+
{
|
|
40
|
+
"internalType": "contract IJBDirectory",
|
|
41
|
+
"name": "",
|
|
42
|
+
"type": "address"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"stateMutability": "view",
|
|
46
|
+
"type": "function"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"inputs": [],
|
|
50
|
+
"name": "PERMISSIONS",
|
|
51
|
+
"outputs": [
|
|
52
|
+
{
|
|
53
|
+
"internalType": "contract IJBPermissions",
|
|
54
|
+
"name": "",
|
|
55
|
+
"type": "address"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"stateMutability": "view",
|
|
59
|
+
"type": "function"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"inputs": [],
|
|
63
|
+
"name": "PROJECTS",
|
|
64
|
+
"outputs": [
|
|
65
|
+
{
|
|
66
|
+
"internalType": "contract IJBProjects",
|
|
67
|
+
"name": "",
|
|
68
|
+
"type": "address"
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"stateMutability": "view",
|
|
72
|
+
"type": "function"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"inputs": [
|
|
76
|
+
{
|
|
77
|
+
"internalType": "address",
|
|
78
|
+
"name": "deployer",
|
|
79
|
+
"type": "address"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"name": "allowSuckerDeployer",
|
|
83
|
+
"outputs": [],
|
|
84
|
+
"stateMutability": "nonpayable",
|
|
85
|
+
"type": "function"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"inputs": [
|
|
89
|
+
{
|
|
90
|
+
"internalType": "address[]",
|
|
91
|
+
"name": "deployers",
|
|
92
|
+
"type": "address[]"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"name": "allowSuckerDeployers",
|
|
96
|
+
"outputs": [],
|
|
97
|
+
"stateMutability": "nonpayable",
|
|
98
|
+
"type": "function"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"inputs": [
|
|
102
|
+
{
|
|
103
|
+
"internalType": "uint256",
|
|
104
|
+
"name": "projectId",
|
|
105
|
+
"type": "uint256"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"internalType": "bytes32",
|
|
109
|
+
"name": "salt",
|
|
110
|
+
"type": "bytes32"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"components": [
|
|
114
|
+
{
|
|
115
|
+
"internalType": "contract IJBSuckerDeployer",
|
|
116
|
+
"name": "deployer",
|
|
117
|
+
"type": "address"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"components": [
|
|
121
|
+
{
|
|
122
|
+
"internalType": "address",
|
|
123
|
+
"name": "localToken",
|
|
124
|
+
"type": "address"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"internalType": "uint32",
|
|
128
|
+
"name": "minGas",
|
|
129
|
+
"type": "uint32"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"internalType": "address",
|
|
133
|
+
"name": "remoteToken",
|
|
134
|
+
"type": "address"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"internalType": "uint256",
|
|
138
|
+
"name": "minBridgeAmount",
|
|
139
|
+
"type": "uint256"
|
|
140
|
+
}
|
|
141
|
+
],
|
|
142
|
+
"internalType": "struct JBTokenMapping[]",
|
|
143
|
+
"name": "mappings",
|
|
144
|
+
"type": "tuple[]"
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"internalType": "struct JBSuckerDeployerConfig[]",
|
|
148
|
+
"name": "configurations",
|
|
149
|
+
"type": "tuple[]"
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"name": "deploySuckersFor",
|
|
153
|
+
"outputs": [
|
|
154
|
+
{
|
|
155
|
+
"internalType": "address[]",
|
|
156
|
+
"name": "suckers",
|
|
157
|
+
"type": "address[]"
|
|
158
|
+
}
|
|
159
|
+
],
|
|
160
|
+
"stateMutability": "nonpayable",
|
|
161
|
+
"type": "function"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"inputs": [
|
|
165
|
+
{
|
|
166
|
+
"internalType": "uint256",
|
|
167
|
+
"name": "projectId",
|
|
168
|
+
"type": "uint256"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"internalType": "address",
|
|
172
|
+
"name": "addr",
|
|
173
|
+
"type": "address"
|
|
174
|
+
}
|
|
175
|
+
],
|
|
176
|
+
"name": "isSuckerOf",
|
|
177
|
+
"outputs": [
|
|
178
|
+
{
|
|
179
|
+
"internalType": "bool",
|
|
180
|
+
"name": "",
|
|
181
|
+
"type": "bool"
|
|
182
|
+
}
|
|
183
|
+
],
|
|
184
|
+
"stateMutability": "view",
|
|
185
|
+
"type": "function"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"inputs": [
|
|
189
|
+
{
|
|
190
|
+
"internalType": "address",
|
|
191
|
+
"name": "forwarder",
|
|
192
|
+
"type": "address"
|
|
193
|
+
}
|
|
194
|
+
],
|
|
195
|
+
"name": "isTrustedForwarder",
|
|
196
|
+
"outputs": [
|
|
197
|
+
{
|
|
198
|
+
"internalType": "bool",
|
|
199
|
+
"name": "",
|
|
200
|
+
"type": "bool"
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
"stateMutability": "view",
|
|
204
|
+
"type": "function"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"inputs": [],
|
|
208
|
+
"name": "owner",
|
|
209
|
+
"outputs": [
|
|
210
|
+
{
|
|
211
|
+
"internalType": "address",
|
|
212
|
+
"name": "",
|
|
213
|
+
"type": "address"
|
|
214
|
+
}
|
|
215
|
+
],
|
|
216
|
+
"stateMutability": "view",
|
|
217
|
+
"type": "function"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"inputs": [
|
|
221
|
+
{
|
|
222
|
+
"internalType": "uint256",
|
|
223
|
+
"name": "projectId",
|
|
224
|
+
"type": "uint256"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"internalType": "address",
|
|
228
|
+
"name": "sucker",
|
|
229
|
+
"type": "address"
|
|
230
|
+
}
|
|
231
|
+
],
|
|
232
|
+
"name": "removeDeprecatedSucker",
|
|
233
|
+
"outputs": [],
|
|
234
|
+
"stateMutability": "nonpayable",
|
|
235
|
+
"type": "function"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"inputs": [
|
|
239
|
+
{
|
|
240
|
+
"internalType": "address",
|
|
241
|
+
"name": "deployer",
|
|
242
|
+
"type": "address"
|
|
243
|
+
}
|
|
244
|
+
],
|
|
245
|
+
"name": "removeSuckerDeployer",
|
|
246
|
+
"outputs": [],
|
|
247
|
+
"stateMutability": "nonpayable",
|
|
248
|
+
"type": "function"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"inputs": [],
|
|
252
|
+
"name": "renounceOwnership",
|
|
253
|
+
"outputs": [],
|
|
254
|
+
"stateMutability": "nonpayable",
|
|
255
|
+
"type": "function"
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"inputs": [
|
|
259
|
+
{
|
|
260
|
+
"internalType": "address",
|
|
261
|
+
"name": "deployer",
|
|
262
|
+
"type": "address"
|
|
263
|
+
}
|
|
264
|
+
],
|
|
265
|
+
"name": "suckerDeployerIsAllowed",
|
|
266
|
+
"outputs": [
|
|
267
|
+
{
|
|
268
|
+
"internalType": "bool",
|
|
269
|
+
"name": "",
|
|
270
|
+
"type": "bool"
|
|
271
|
+
}
|
|
272
|
+
],
|
|
273
|
+
"stateMutability": "view",
|
|
274
|
+
"type": "function"
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"inputs": [
|
|
278
|
+
{
|
|
279
|
+
"internalType": "uint256",
|
|
280
|
+
"name": "projectId",
|
|
281
|
+
"type": "uint256"
|
|
282
|
+
}
|
|
283
|
+
],
|
|
284
|
+
"name": "suckerPairsOf",
|
|
285
|
+
"outputs": [
|
|
286
|
+
{
|
|
287
|
+
"components": [
|
|
288
|
+
{
|
|
289
|
+
"internalType": "address",
|
|
290
|
+
"name": "local",
|
|
291
|
+
"type": "address"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"internalType": "address",
|
|
295
|
+
"name": "remote",
|
|
296
|
+
"type": "address"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"internalType": "uint256",
|
|
300
|
+
"name": "remoteChainId",
|
|
301
|
+
"type": "uint256"
|
|
302
|
+
}
|
|
303
|
+
],
|
|
304
|
+
"internalType": "struct JBSuckersPair[]",
|
|
305
|
+
"name": "pairs",
|
|
306
|
+
"type": "tuple[]"
|
|
307
|
+
}
|
|
308
|
+
],
|
|
309
|
+
"stateMutability": "view",
|
|
310
|
+
"type": "function"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"inputs": [
|
|
314
|
+
{
|
|
315
|
+
"internalType": "uint256",
|
|
316
|
+
"name": "projectId",
|
|
317
|
+
"type": "uint256"
|
|
318
|
+
}
|
|
319
|
+
],
|
|
320
|
+
"name": "suckersOf",
|
|
321
|
+
"outputs": [
|
|
322
|
+
{
|
|
323
|
+
"internalType": "address[]",
|
|
324
|
+
"name": "",
|
|
325
|
+
"type": "address[]"
|
|
326
|
+
}
|
|
327
|
+
],
|
|
328
|
+
"stateMutability": "view",
|
|
329
|
+
"type": "function"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"inputs": [
|
|
333
|
+
{
|
|
334
|
+
"internalType": "address",
|
|
335
|
+
"name": "newOwner",
|
|
336
|
+
"type": "address"
|
|
337
|
+
}
|
|
338
|
+
],
|
|
339
|
+
"name": "transferOwnership",
|
|
340
|
+
"outputs": [],
|
|
341
|
+
"stateMutability": "nonpayable",
|
|
342
|
+
"type": "function"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"inputs": [],
|
|
346
|
+
"name": "trustedForwarder",
|
|
347
|
+
"outputs": [
|
|
348
|
+
{
|
|
349
|
+
"internalType": "address",
|
|
350
|
+
"name": "",
|
|
351
|
+
"type": "address"
|
|
352
|
+
}
|
|
353
|
+
],
|
|
354
|
+
"stateMutability": "view",
|
|
355
|
+
"type": "function"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"anonymous": false,
|
|
359
|
+
"inputs": [
|
|
360
|
+
{
|
|
361
|
+
"indexed": true,
|
|
362
|
+
"internalType": "address",
|
|
363
|
+
"name": "previousOwner",
|
|
364
|
+
"type": "address"
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"indexed": true,
|
|
368
|
+
"internalType": "address",
|
|
369
|
+
"name": "newOwner",
|
|
370
|
+
"type": "address"
|
|
371
|
+
}
|
|
372
|
+
],
|
|
373
|
+
"name": "OwnershipTransferred",
|
|
374
|
+
"type": "event"
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"anonymous": false,
|
|
378
|
+
"inputs": [
|
|
379
|
+
{
|
|
380
|
+
"indexed": false,
|
|
381
|
+
"internalType": "uint256",
|
|
382
|
+
"name": "projectId",
|
|
383
|
+
"type": "uint256"
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"indexed": false,
|
|
387
|
+
"internalType": "address",
|
|
388
|
+
"name": "sucker",
|
|
389
|
+
"type": "address"
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"components": [
|
|
393
|
+
{
|
|
394
|
+
"internalType": "contract IJBSuckerDeployer",
|
|
395
|
+
"name": "deployer",
|
|
396
|
+
"type": "address"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"components": [
|
|
400
|
+
{
|
|
401
|
+
"internalType": "address",
|
|
402
|
+
"name": "localToken",
|
|
403
|
+
"type": "address"
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
"internalType": "uint32",
|
|
407
|
+
"name": "minGas",
|
|
408
|
+
"type": "uint32"
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"internalType": "address",
|
|
412
|
+
"name": "remoteToken",
|
|
413
|
+
"type": "address"
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
"internalType": "uint256",
|
|
417
|
+
"name": "minBridgeAmount",
|
|
418
|
+
"type": "uint256"
|
|
419
|
+
}
|
|
420
|
+
],
|
|
421
|
+
"internalType": "struct JBTokenMapping[]",
|
|
422
|
+
"name": "mappings",
|
|
423
|
+
"type": "tuple[]"
|
|
424
|
+
}
|
|
425
|
+
],
|
|
426
|
+
"indexed": false,
|
|
427
|
+
"internalType": "struct JBSuckerDeployerConfig",
|
|
428
|
+
"name": "configuration",
|
|
429
|
+
"type": "tuple"
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"indexed": false,
|
|
433
|
+
"internalType": "address",
|
|
434
|
+
"name": "caller",
|
|
435
|
+
"type": "address"
|
|
436
|
+
}
|
|
437
|
+
],
|
|
438
|
+
"name": "SuckerDeployedFor",
|
|
439
|
+
"type": "event"
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"anonymous": false,
|
|
443
|
+
"inputs": [
|
|
444
|
+
{
|
|
445
|
+
"indexed": false,
|
|
446
|
+
"internalType": "address",
|
|
447
|
+
"name": "deployer",
|
|
448
|
+
"type": "address"
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
"indexed": false,
|
|
452
|
+
"internalType": "address",
|
|
453
|
+
"name": "caller",
|
|
454
|
+
"type": "address"
|
|
455
|
+
}
|
|
456
|
+
],
|
|
457
|
+
"name": "SuckerDeployerAllowed",
|
|
458
|
+
"type": "event"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"anonymous": false,
|
|
462
|
+
"inputs": [
|
|
463
|
+
{
|
|
464
|
+
"indexed": false,
|
|
465
|
+
"internalType": "address",
|
|
466
|
+
"name": "deployer",
|
|
467
|
+
"type": "address"
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"indexed": false,
|
|
471
|
+
"internalType": "address",
|
|
472
|
+
"name": "caller",
|
|
473
|
+
"type": "address"
|
|
474
|
+
}
|
|
475
|
+
],
|
|
476
|
+
"name": "SuckerDeployerRemoved",
|
|
477
|
+
"type": "event"
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"anonymous": false,
|
|
481
|
+
"inputs": [
|
|
482
|
+
{
|
|
483
|
+
"indexed": false,
|
|
484
|
+
"internalType": "uint256",
|
|
485
|
+
"name": "projectId",
|
|
486
|
+
"type": "uint256"
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"indexed": false,
|
|
490
|
+
"internalType": "address",
|
|
491
|
+
"name": "sucker",
|
|
492
|
+
"type": "address"
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"indexed": false,
|
|
496
|
+
"internalType": "address",
|
|
497
|
+
"name": "caller",
|
|
498
|
+
"type": "address"
|
|
499
|
+
}
|
|
500
|
+
],
|
|
501
|
+
"name": "SuckerDeprecated",
|
|
502
|
+
"type": "event"
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"inputs": [
|
|
506
|
+
{
|
|
507
|
+
"internalType": "address",
|
|
508
|
+
"name": "account",
|
|
509
|
+
"type": "address"
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"internalType": "address",
|
|
513
|
+
"name": "sender",
|
|
514
|
+
"type": "address"
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
"internalType": "uint256",
|
|
518
|
+
"name": "projectId",
|
|
519
|
+
"type": "uint256"
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
"internalType": "uint256",
|
|
523
|
+
"name": "permissionId",
|
|
524
|
+
"type": "uint256"
|
|
525
|
+
}
|
|
526
|
+
],
|
|
527
|
+
"name": "JBPermissioned_Unauthorized",
|
|
528
|
+
"type": "error"
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
"inputs": [
|
|
532
|
+
{
|
|
533
|
+
"internalType": "contract IJBSuckerDeployer",
|
|
534
|
+
"name": "deployer",
|
|
535
|
+
"type": "address"
|
|
536
|
+
}
|
|
537
|
+
],
|
|
538
|
+
"name": "JBSuckerRegistry_InvalidDeployer",
|
|
539
|
+
"type": "error"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"inputs": [
|
|
543
|
+
{
|
|
544
|
+
"internalType": "uint256",
|
|
545
|
+
"name": "projectId",
|
|
546
|
+
"type": "uint256"
|
|
547
|
+
}
|
|
548
|
+
],
|
|
549
|
+
"name": "JBSuckerRegistry_RulesetDoesNotAllowAddingSucker",
|
|
550
|
+
"type": "error"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"inputs": [
|
|
554
|
+
{
|
|
555
|
+
"internalType": "uint256",
|
|
556
|
+
"name": "projectId",
|
|
557
|
+
"type": "uint256"
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"internalType": "address",
|
|
561
|
+
"name": "sucker",
|
|
562
|
+
"type": "address"
|
|
563
|
+
}
|
|
564
|
+
],
|
|
565
|
+
"name": "JBSuckerRegistry_SuckerDoesNotBelongToProject",
|
|
566
|
+
"type": "error"
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"inputs": [
|
|
570
|
+
{
|
|
571
|
+
"internalType": "address",
|
|
572
|
+
"name": "sucker",
|
|
573
|
+
"type": "address"
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
"internalType": "enum JBSuckerState",
|
|
577
|
+
"name": "suckerState",
|
|
578
|
+
"type": "uint8"
|
|
579
|
+
}
|
|
580
|
+
],
|
|
581
|
+
"name": "JBSuckerRegistry_SuckerIsNotDeprecated",
|
|
582
|
+
"type": "error"
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"inputs": [
|
|
586
|
+
{
|
|
587
|
+
"internalType": "address",
|
|
588
|
+
"name": "owner",
|
|
589
|
+
"type": "address"
|
|
590
|
+
}
|
|
591
|
+
],
|
|
592
|
+
"name": "OwnableInvalidOwner",
|
|
593
|
+
"type": "error"
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"inputs": [
|
|
597
|
+
{
|
|
598
|
+
"internalType": "address",
|
|
599
|
+
"name": "account",
|
|
600
|
+
"type": "address"
|
|
601
|
+
}
|
|
602
|
+
],
|
|
603
|
+
"name": "OwnableUnauthorizedAccount",
|
|
604
|
+
"type": "error"
|
|
605
|
+
}
|
|
606
|
+
],
|
|
607
|
+
"args": [],
|
|
608
|
+
"solcInputHash": "14ce4938174f25cdd1fbe9b98155e159",
|
|
609
|
+
"receipt": {
|
|
610
|
+
"type": "0x2",
|
|
611
|
+
"status": "0x1",
|
|
612
|
+
"cumulativeGasUsed": "0x182f4a",
|
|
613
|
+
"logs": [
|
|
614
|
+
{
|
|
615
|
+
"address": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
|
|
616
|
+
"topics": [
|
|
617
|
+
"0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d",
|
|
618
|
+
"0x000000000000000000000000755ff2f75a0a586ecfa2b9a3c959cb662458a105",
|
|
619
|
+
"0x000000000000000000000000691d6d2e1f0fb22b67e7471310ddcb3a881cc968",
|
|
620
|
+
"0x3f87d07121fc22aec7db071f6ac86a83208fc68d3115ff01f7b120f82eb281a4"
|
|
621
|
+
],
|
|
622
|
+
"data": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
623
|
+
"blockHash": "0x9824ca3215910e2e5e4d5c8ce773d79bbf39874fdae40344002d580723e48194",
|
|
624
|
+
"blockNumber": "0xb7f8f22",
|
|
625
|
+
"transactionHash": "0x9d20b51c87ea07b1466b6d30bffb3fd56b5d7602a44a83b733a8a127aae7740c",
|
|
626
|
+
"transactionIndex": "0x1",
|
|
627
|
+
"logIndex": "0x0",
|
|
628
|
+
"removed": false
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"address": "0x07c8c5bf08f0361883728a8a5f8824ba5724ece3",
|
|
632
|
+
"topics": [
|
|
633
|
+
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
|
|
634
|
+
"0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
635
|
+
"0x00000000000000000000000080a8f7a4bd75b539ce26937016df607fdc9abeb5"
|
|
636
|
+
],
|
|
637
|
+
"data": "0x",
|
|
638
|
+
"blockHash": "0x9824ca3215910e2e5e4d5c8ce773d79bbf39874fdae40344002d580723e48194",
|
|
639
|
+
"blockNumber": "0xb7f8f22",
|
|
640
|
+
"transactionHash": "0x9d20b51c87ea07b1466b6d30bffb3fd56b5d7602a44a83b733a8a127aae7740c",
|
|
641
|
+
"transactionIndex": "0x1",
|
|
642
|
+
"logIndex": "0x1",
|
|
643
|
+
"removed": false
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
"address": "0x80a8f7a4bd75b539ce26937016df607fdc9abeb5",
|
|
647
|
+
"topics": [
|
|
648
|
+
"0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8",
|
|
649
|
+
"0x000000000000000000000000691d6d2e1f0fb22b67e7471310ddcb3a881cc968"
|
|
650
|
+
],
|
|
651
|
+
"data": "0x",
|
|
652
|
+
"blockHash": "0x9824ca3215910e2e5e4d5c8ce773d79bbf39874fdae40344002d580723e48194",
|
|
653
|
+
"blockNumber": "0xb7f8f22",
|
|
654
|
+
"transactionHash": "0x9d20b51c87ea07b1466b6d30bffb3fd56b5d7602a44a83b733a8a127aae7740c",
|
|
655
|
+
"transactionIndex": "0x1",
|
|
656
|
+
"logIndex": "0x2",
|
|
657
|
+
"removed": false
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
"address": "0x691d6d2e1f0fb22b67e7471310ddcb3a881cc968",
|
|
661
|
+
"topics": [
|
|
662
|
+
"0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07",
|
|
663
|
+
"0xaf5e28bbeeb8122b7e38bf2cb4c20e25753886f2cc3a4b8bc8ead5d3ccb5c985"
|
|
664
|
+
],
|
|
665
|
+
"data": "0x0000000000000000000000000000000000000000000000000000000000000011",
|
|
666
|
+
"blockHash": "0x9824ca3215910e2e5e4d5c8ce773d79bbf39874fdae40344002d580723e48194",
|
|
667
|
+
"blockNumber": "0xb7f8f22",
|
|
668
|
+
"transactionHash": "0x9d20b51c87ea07b1466b6d30bffb3fd56b5d7602a44a83b733a8a127aae7740c",
|
|
669
|
+
"transactionIndex": "0x1",
|
|
670
|
+
"logIndex": "0x3",
|
|
671
|
+
"removed": false
|
|
672
|
+
}
|
|
673
|
+
],
|
|
674
|
+
"logsBloom": "0x00000000000010000000000000080000000800000000000000800000000400000040000000000000000000000040000000000000000000010000000000040000000000000000200000000000000000000001000000000000000000000000000000000000020200000000000000000800000800000000000000000000000000400800000000000000000104000000100000000000100000000020000000000000004000040000000000000000000040002300000000000000800000000044000000000002004000000000000800000000000000800000000000000000000020020000000000000000000100000000020200000000000080000000000000000001",
|
|
675
|
+
"transactionHash": "0x9d20b51c87ea07b1466b6d30bffb3fd56b5d7602a44a83b733a8a127aae7740c",
|
|
676
|
+
"transactionIndex": "0x1",
|
|
677
|
+
"blockHash": "0x9824ca3215910e2e5e4d5c8ce773d79bbf39874fdae40344002d580723e48194",
|
|
678
|
+
"blockNumber": "0xb7f8f22",
|
|
679
|
+
"gasUsed": "0x182f4a",
|
|
680
|
+
"effectiveGasPrice": "0x5f5e100",
|
|
681
|
+
"from": "0x755ff2f75a0a586ecfa2b9a3c959cb662458a105",
|
|
682
|
+
"to": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
|
|
683
|
+
"contractAddress": null
|
|
684
|
+
},
|
|
685
|
+
"bytecode": "0x6101006040523480156200001257600080fd5b5060405162001b0938038062001b09833981016040819052620000359162000171565b6001600160a01b038082166080528390839081166200006e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000798162000108565b506001600160a01b0390811660a052841660c08190526040805163293c499960e01b8152905163293c4999916004808201926020929091908290030181865afa158015620000cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f19190620001d9565b6001600160a01b031660e052506200020092505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200016e57600080fd5b50565b600080600080608085870312156200018857600080fd5b8451620001958162000158565b6020860151909450620001a88162000158565b6040860151909350620001bb8162000158565b6060860151909250620001ce8162000158565b939692955090935050565b600060208284031215620001ec57600080fd5b8151620001f98162000158565b9392505050565b60805160a05160c05160e0516118b3620002566000396000818161013a01526103e1015260006102880152600081816102f60152610d890152600081816101cf0152818161024c0152610f3a01526118b36000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b25780638da5cb5b11610081578063f2fde38b11610066578063f2fde38b146102de578063f434c914146102f1578063f73ac20f1461031857600080fd5b80638da5cb5b146102aa578063a1031a4f146102bb57600080fd5b8063715018a6146102425780637da0a8771461024a57806383db9d011461027057806388bc2ef31461028357600080fd5b80633d12cb87116100ee5780633d12cb87146101ac578063572b6c05146101bf5780635d6f1fc51461020f578063669745a51461022f57600080fd5b8063153bb1bb14610120578063293c4999146101355780632f3f50e014610179578063314fcc3814610199575b600080fd5b61013361012e36600461121a565b61032b565b005b61015c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61018c61018736600461127c565b6103a3565b60405161017091906112cf565b6101336101a736600461131c565b610720565b61018c6101ba36600461134c565b6108bd565b6101ff6101cd36600461121a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b6040519015158152602001610170565b61022261021d36600461134c565b6108dd565b6040516101709190611365565b61013361023d3660046113ca565b610ac6565b610133610b85565b7f000000000000000000000000000000000000000000000000000000000000000061015c565b6101ff61027e36600461131c565b610b99565b61015c7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031661015c565b6101ff6102c936600461121a565b60016020526000908152604090205460ff1681565b6101336102ec36600461121a565b610bcf565b61015c7f000000000000000000000000000000000000000000000000000000000000000081565b61013361032636600461121a565b610c26565b610333610c7e565b6001600160a01b0381166000908152600160205260409020805460ff191690557f1b9942be0c71843c19753c9070512cdce46255a7bf38934a6175b1a684950b948161037d610cf5565b604080516001600160a01b0393841681529290911660208301520160405180910390a150565b6040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101859052606090610454906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044c919061140c565b86601d610d04565b8167ffffffffffffffff81111561046d5761046d611429565b604051908082528060200260200182016040528015610496578160200160208202803683370190505b5090506104a1610cf5565b604080516001600160a01b039092166020830152810185905260600160405160208183030381529060405280519060200120935060005b828110156107175760008484838181106104f4576104f461143f565b90506020028101906105069190611455565b61050f9061152e565b80516001600160a01b031660009081526001602052604090205490915060ff166105785780516040517f2223f1010000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024015b60405180910390fd5b80516040517f1213036600000000000000000000000000000000000000000000000000000000815260048101899052602481018890526000916001600160a01b0316906312130366906044016020604051808303816000875af11580156105e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610607919061140c565b90508084848151811061061c5761061c61143f565b6001600160a01b03909216602092830291909101820152600089815260029091526040902061064d90826001610e54565b5060208201516040517f2241dc520000000000000000000000000000000000000000000000000000000081526001600160a01b03831691632241dc529161069791906004016116c1565b600060405180830381600087803b1580156106b157600080fd5b505af11580156106c5573d6000803e3d6000fd5b505050507fc251bde8ae398be4a0f10fc061bb0cf6e5decd8860b54b7607d06bb6c142d0188882846106f5610cf5565b60405161070594939291906116d4565b60405180910390a150506001016104d8565b50949350505050565b6000828152600260205260408120819061073a9084610e72565b9150915081158061074c575060018114155b15610795576040517f4b2fac56000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b038416602482015260440161056f565b6000836001600160a01b031663c19d93fb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f99190611727565b9050600381600381111561080f5761080f611748565b1461084a5783816040517f7312850c00000000000000000000000000000000000000000000000000000000815260040161056f92919061175e565b60008581526002602052604090206108629085610e99565b507fa0598050070757d3cfb55dc6d3bd9f6ac70f5c9e58e5aa29392a9b9c9cf28ef0858561088e610cf5565b604080519384526001600160a01b03928316602085015291169082015260600160405180910390a15050505050565b60008181526002602052604090206060906108d790610eb5565b92915050565b6000818152600260205260408120606091906108f890610eb5565b9050805167ffffffffffffffff81111561091457610914611429565b60405190808252806020026020018201604052801561097d57816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816109325790505b50915060005b8151811015610abf5760008282815181106109a0576109a061143f565b602002602001015190506040518060600160405280826001600160a01b03168152602001826001600160a01b03166311cda4156040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a26919061140c565b6001600160a01b03168152602001826001600160a01b031663cdfceeba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a969190611799565b815250848381518110610aab57610aab61143f565b602090810291909101015250600101610983565b5050919050565b610ace610c7e565b60005b81811015610b80576000838383818110610aed57610aed61143f565b9050602002016020810190610b02919061121a565b6001600160a01b0381166000908152600160208190526040909120805460ff1916909117905590507f47459529aa21b5f8615a27cd523fad12250733748e422c3eada707a36d3c49bc81610b54610cf5565b604080516001600160a01b0393841681529290911660208301520160405180910390a150600101610ad1565b505050565b610b8d610c7e565b610b976000610ec2565b565b600082815260026020526040812081908190610bb59085610e72565b91509150818015610bc65750600181145b95945050505050565b610bd7610c7e565b6001600160a01b038116610c1a576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526000600482015260240161056f565b610c2381610ec2565b50565b610c2e610c7e565b6001600160a01b0381166000908152600160208190526040909120805460ff191690911790557f47459529aa21b5f8615a27cd523fad12250733748e422c3eada707a36d3c49bc8161037d610cf5565b610c86610cf5565b6001600160a01b0316610ca16000546001600160a01b031690565b6001600160a01b031614610b9757610cb7610cf5565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015260240161056f565b6000610cff610f2a565b905090565b6000610d0e610cf5565b9050836001600160a01b0316816001600160a01b031614158015610df657506040517f348b684e0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df491906117b2565b155b15610e4e576040517f264deeaa0000000000000000000000000000000000000000000000000000000081526001600160a01b03808616600483015282166024820152604481018490526064810183905260840161056f565b50505050565b6000610e6a846001600160a01b03851684610f9f565b949350505050565b6000808080610e8a866001600160a01b038716610fbc565b909450925050505b9250929050565b6000610eae836001600160a01b038416610ff6565b9392505050565b60606000610eae83611013565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000366014336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610f675750808210155b15610f9757600036610f7983856117d4565b610f849282906117f5565b610f8d9161181f565b60601c9250505090565b339250505090565b60008281526002840160205260408120829055610e6a848461101e565b6000818152600283016020526040812054819080610feb57610fde858561102a565b925060009150610e929050565b600192509050610e92565b60008181526002830160205260408120819055610eae8383611036565b60606108d782611042565b6000610eae838361104f565b6000610eae838361109e565b6000610eae83836110b6565b60606000610eae836111a9565b6000818152600183016020526040812054611096575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108d7565b5060006108d7565b60008181526001830160205260408120541515610eae565b6000818152600183016020526040812054801561119f5760006110da6001836117d4565b85549091506000906110ee906001906117d4565b905080821461115357600086600001828154811061110e5761110e61143f565b90600052602060002001549050808760000184815481106111315761113161143f565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061116457611164611867565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506108d7565b60009150506108d7565b6060816000018054806020026020016040519081016040528092919081815260200182805480156111f957602002820191906000526020600020905b8154815260200190600101908083116111e5575b50505050509050919050565b6001600160a01b0381168114610c2357600080fd5b60006020828403121561122c57600080fd5b8135610eae81611205565b60008083601f84011261124957600080fd5b50813567ffffffffffffffff81111561126157600080fd5b6020830191508360208260051b8501011115610e9257600080fd5b6000806000806060858703121561129257600080fd5b8435935060208501359250604085013567ffffffffffffffff8111156112b757600080fd5b6112c387828801611237565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b818110156113105783516001600160a01b0316835292840192918401916001016112eb565b50909695505050505050565b6000806040838503121561132f57600080fd5b82359150602083013561134181611205565b809150509250929050565b60006020828403121561135e57600080fd5b5035919050565b602080825282518282018190526000919060409081850190868401855b828110156113bd57815180516001600160a01b0390811686528782015116878601528501518585015260609093019290850190600101611382565b5091979650505050505050565b600080602083850312156113dd57600080fd5b823567ffffffffffffffff8111156113f457600080fd5b61140085828601611237565b90969095509350505050565b60006020828403121561141e57600080fd5b8151610eae81611205565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261148957600080fd5b9190910192915050565b6040805190810167ffffffffffffffff811182821017156114b6576114b6611429565b60405290565b6040516080810167ffffffffffffffff811182821017156114b6576114b6611429565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561152657611526611429565b604052919050565b6000604080833603121561154157600080fd5b611549611493565b833561155481611205565b815260208481013567ffffffffffffffff8082111561157257600080fd5b9086019036601f83011261158557600080fd5b81358181111561159757611597611429565b6115a5848260051b016114df565b818152848101925060079190911b8301840190368211156115c557600080fd5b928401925b8184101561163f57608084360312156115e35760008081fd5b6115eb6114bc565b84356115f681611205565b81528486013563ffffffff8116811461160f5760008081fd5b818701528488013561162081611205565b81890152606085810135908201528352608090930192918401916115ca565b93850193909352509195945050505050565b60008151808452602080850194506020840160005b838110156116b657815180516001600160a01b0390811689528482015163ffffffff16858a0152604080830151909116908901526060908101519088015260809096019590820190600101611666565b509495945050505050565b602081526000610eae6020830184611651565b84815260006001600160a01b038086166020840152608060408401528085511660808401526020850151604060a085015261171260c0850182611651565b92505080841660608401525095945050505050565b60006020828403121561173957600080fd5b815160048110610eae57600080fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0383168152604081016004831061178c57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6000602082840312156117ab57600080fd5b5051919050565b6000602082840312156117c457600080fd5b81518015158114610eae57600080fd5b818103818111156108d757634e487b7160e01b600052601160045260246000fd5b6000808585111561180557600080fd5b8386111561181257600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000813581811691601485101561185f5780818660140360031b1b83161692505b505092915050565b634e487b7160e01b600052603160045260246000fdfea26469706673582212209351511d75691661f346fc6c56deae277afe5f1687139af351958095a82803f864736f6c63430008170033",
|
|
686
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b25780638da5cb5b11610081578063f2fde38b11610066578063f2fde38b146102de578063f434c914146102f1578063f73ac20f1461031857600080fd5b80638da5cb5b146102aa578063a1031a4f146102bb57600080fd5b8063715018a6146102425780637da0a8771461024a57806383db9d011461027057806388bc2ef31461028357600080fd5b80633d12cb87116100ee5780633d12cb87146101ac578063572b6c05146101bf5780635d6f1fc51461020f578063669745a51461022f57600080fd5b8063153bb1bb14610120578063293c4999146101355780632f3f50e014610179578063314fcc3814610199575b600080fd5b61013361012e36600461121a565b61032b565b005b61015c7f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d481565b6040516001600160a01b0390911681526020015b60405180910390f35b61018c61018736600461127c565b6103a3565b60405161017091906112cf565b6101336101a736600461131c565b610720565b61018c6101ba36600461134c565b6108bd565b6101ff6101cd36600461121a565b7f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb5666001600160a01b0390811691161490565b6040519015158152602001610170565b61022261021d36600461134c565b6108dd565b6040516101709190611365565b61013361023d3660046113ca565b610ac6565b610133610b85565b7f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb56661015c565b6101ff61027e36600461131c565b610b99565b61015c7f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf81565b6000546001600160a01b031661015c565b6101ff6102c936600461121a565b60016020526000908152604090205460ff1681565b6101336102ec36600461121a565b610bcf565b61015c7f00000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d81565b61013361032636600461121a565b610c26565b610333610c7e565b6001600160a01b0381166000908152600160205260409020805460ff191690557f1b9942be0c71843c19753c9070512cdce46255a7bf38934a6175b1a684950b948161037d610cf5565b604080516001600160a01b0393841681529290911660208301520160405180910390a150565b6040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101859052606090610454906001600160a01b037f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d41690636352211e90602401602060405180830381865afa158015610428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044c919061140c565b86601d610d04565b8167ffffffffffffffff81111561046d5761046d611429565b604051908082528060200260200182016040528015610496578160200160208202803683370190505b5090506104a1610cf5565b604080516001600160a01b039092166020830152810185905260600160405160208183030381529060405280519060200120935060005b828110156107175760008484838181106104f4576104f461143f565b90506020028101906105069190611455565b61050f9061152e565b80516001600160a01b031660009081526001602052604090205490915060ff166105785780516040517f2223f1010000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024015b60405180910390fd5b80516040517f1213036600000000000000000000000000000000000000000000000000000000815260048101899052602481018890526000916001600160a01b0316906312130366906044016020604051808303816000875af11580156105e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610607919061140c565b90508084848151811061061c5761061c61143f565b6001600160a01b03909216602092830291909101820152600089815260029091526040902061064d90826001610e54565b5060208201516040517f2241dc520000000000000000000000000000000000000000000000000000000081526001600160a01b03831691632241dc529161069791906004016116c1565b600060405180830381600087803b1580156106b157600080fd5b505af11580156106c5573d6000803e3d6000fd5b505050507fc251bde8ae398be4a0f10fc061bb0cf6e5decd8860b54b7607d06bb6c142d0188882846106f5610cf5565b60405161070594939291906116d4565b60405180910390a150506001016104d8565b50949350505050565b6000828152600260205260408120819061073a9084610e72565b9150915081158061074c575060018114155b15610795576040517f4b2fac56000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b038416602482015260440161056f565b6000836001600160a01b031663c19d93fb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f99190611727565b9050600381600381111561080f5761080f611748565b1461084a5783816040517f7312850c00000000000000000000000000000000000000000000000000000000815260040161056f92919061175e565b60008581526002602052604090206108629085610e99565b507fa0598050070757d3cfb55dc6d3bd9f6ac70f5c9e58e5aa29392a9b9c9cf28ef0858561088e610cf5565b604080519384526001600160a01b03928316602085015291169082015260600160405180910390a15050505050565b60008181526002602052604090206060906108d790610eb5565b92915050565b6000818152600260205260408120606091906108f890610eb5565b9050805167ffffffffffffffff81111561091457610914611429565b60405190808252806020026020018201604052801561097d57816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816109325790505b50915060005b8151811015610abf5760008282815181106109a0576109a061143f565b602002602001015190506040518060600160405280826001600160a01b03168152602001826001600160a01b03166311cda4156040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a26919061140c565b6001600160a01b03168152602001826001600160a01b031663cdfceeba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a969190611799565b815250848381518110610aab57610aab61143f565b602090810291909101015250600101610983565b5050919050565b610ace610c7e565b60005b81811015610b80576000838383818110610aed57610aed61143f565b9050602002016020810190610b02919061121a565b6001600160a01b0381166000908152600160208190526040909120805460ff1916909117905590507f47459529aa21b5f8615a27cd523fad12250733748e422c3eada707a36d3c49bc81610b54610cf5565b604080516001600160a01b0393841681529290911660208301520160405180910390a150600101610ad1565b505050565b610b8d610c7e565b610b976000610ec2565b565b600082815260026020526040812081908190610bb59085610e72565b91509150818015610bc65750600181145b95945050505050565b610bd7610c7e565b6001600160a01b038116610c1a576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526000600482015260240161056f565b610c2381610ec2565b50565b610c2e610c7e565b6001600160a01b0381166000908152600160208190526040909120805460ff191690911790557f47459529aa21b5f8615a27cd523fad12250733748e422c3eada707a36d3c49bc8161037d610cf5565b610c86610cf5565b6001600160a01b0316610ca16000546001600160a01b031690565b6001600160a01b031614610b9757610cb7610cf5565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015260240161056f565b6000610cff610f2a565b905090565b6000610d0e610cf5565b9050836001600160a01b0316816001600160a01b031614158015610df657506040517f348b684e0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f00000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d169063348b684e9060c401602060405180830381865afa158015610dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df491906117b2565b155b15610e4e576040517f264deeaa0000000000000000000000000000000000000000000000000000000081526001600160a01b03808616600483015282166024820152604481018490526064810183905260840161056f565b50505050565b6000610e6a846001600160a01b03851684610f9f565b949350505050565b6000808080610e8a866001600160a01b038716610fbc565b909450925050505b9250929050565b6000610eae836001600160a01b038416610ff6565b9392505050565b60606000610eae83611013565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000366014336001600160a01b037f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb56616148015610f675750808210155b15610f9757600036610f7983856117d4565b610f849282906117f5565b610f8d9161181f565b60601c9250505090565b339250505090565b60008281526002840160205260408120829055610e6a848461101e565b6000818152600283016020526040812054819080610feb57610fde858561102a565b925060009150610e929050565b600192509050610e92565b60008181526002830160205260408120819055610eae8383611036565b60606108d782611042565b6000610eae838361104f565b6000610eae838361109e565b6000610eae83836110b6565b60606000610eae836111a9565b6000818152600183016020526040812054611096575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108d7565b5060006108d7565b60008181526001830160205260408120541515610eae565b6000818152600183016020526040812054801561119f5760006110da6001836117d4565b85549091506000906110ee906001906117d4565b905080821461115357600086600001828154811061110e5761110e61143f565b90600052602060002001549050808760000184815481106111315761113161143f565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061116457611164611867565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506108d7565b60009150506108d7565b6060816000018054806020026020016040519081016040528092919081815260200182805480156111f957602002820191906000526020600020905b8154815260200190600101908083116111e5575b50505050509050919050565b6001600160a01b0381168114610c2357600080fd5b60006020828403121561122c57600080fd5b8135610eae81611205565b60008083601f84011261124957600080fd5b50813567ffffffffffffffff81111561126157600080fd5b6020830191508360208260051b8501011115610e9257600080fd5b6000806000806060858703121561129257600080fd5b8435935060208501359250604085013567ffffffffffffffff8111156112b757600080fd5b6112c387828801611237565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b818110156113105783516001600160a01b0316835292840192918401916001016112eb565b50909695505050505050565b6000806040838503121561132f57600080fd5b82359150602083013561134181611205565b809150509250929050565b60006020828403121561135e57600080fd5b5035919050565b602080825282518282018190526000919060409081850190868401855b828110156113bd57815180516001600160a01b0390811686528782015116878601528501518585015260609093019290850190600101611382565b5091979650505050505050565b600080602083850312156113dd57600080fd5b823567ffffffffffffffff8111156113f457600080fd5b61140085828601611237565b90969095509350505050565b60006020828403121561141e57600080fd5b8151610eae81611205565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261148957600080fd5b9190910192915050565b6040805190810167ffffffffffffffff811182821017156114b6576114b6611429565b60405290565b6040516080810167ffffffffffffffff811182821017156114b6576114b6611429565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561152657611526611429565b604052919050565b6000604080833603121561154157600080fd5b611549611493565b833561155481611205565b815260208481013567ffffffffffffffff8082111561157257600080fd5b9086019036601f83011261158557600080fd5b81358181111561159757611597611429565b6115a5848260051b016114df565b818152848101925060079190911b8301840190368211156115c557600080fd5b928401925b8184101561163f57608084360312156115e35760008081fd5b6115eb6114bc565b84356115f681611205565b81528486013563ffffffff8116811461160f5760008081fd5b818701528488013561162081611205565b81890152606085810135908201528352608090930192918401916115ca565b93850193909352509195945050505050565b60008151808452602080850194506020840160005b838110156116b657815180516001600160a01b0390811689528482015163ffffffff16858a0152604080830151909116908901526060908101519088015260809096019590820190600101611666565b509495945050505050565b602081526000610eae6020830184611651565b84815260006001600160a01b038086166020840152608060408401528085511660808401526020850151604060a085015261171260c0850182611651565b92505080841660608401525095945050505050565b60006020828403121561173957600080fd5b815160048110610eae57600080fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0383168152604081016004831061178c57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6000602082840312156117ab57600080fd5b5051919050565b6000602082840312156117c457600080fd5b81518015158114610eae57600080fd5b818103818111156108d757634e487b7160e01b600052601160045260246000fd5b6000808585111561180557600080fd5b8386111561181257600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000813581811691601485101561185f5780818660140360031b1b83161692505b505092915050565b634e487b7160e01b600052603160045260246000fdfea26469706673582212209351511d75691661f346fc6c56deae277afe5f1687139af351958095a82803f864736f6c63430008170033",
|
|
687
|
+
"metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"trusted_forwarder\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"name\":\"JBPermissioned_Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IJBSuckerDeployer\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"JBSuckerRegistry_InvalidDeployer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"JBSuckerRegistry_RulesetDoesNotAllowAddingSucker\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sucker\",\"type\":\"address\"}],\"name\":\"JBSuckerRegistry_SuckerDoesNotBelongToProject\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sucker\",\"type\":\"address\"},{\"internalType\":\"enum JBSuckerState\",\"name\":\"suckerState\",\"type\":\"uint8\"}],\"name\":\"JBSuckerRegistry_SuckerIsNotDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sucker\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract IJBSuckerDeployer\",\"name\":\"deployer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"minGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minBridgeAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct JBTokenMapping[]\",\"name\":\"mappings\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct JBSuckerDeployerConfig\",\"name\":\"configuration\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SuckerDeployedFor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SuckerDeployerAllowed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SuckerDeployerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sucker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SuckerDeprecated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROJECTS\",\"outputs\":[{\"internalType\":\"contract IJBProjects\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"allowSuckerDeployer\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"deployers\",\"type\":\"address[]\"}],\"name\":\"allowSuckerDeployers\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"contract IJBSuckerDeployer\",\"name\":\"deployer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"minGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minBridgeAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct JBTokenMapping[]\",\"name\":\"mappings\",\"type\":\"tuple[]\"}],\"internalType\":\"struct JBSuckerDeployerConfig[]\",\"name\":\"configurations\",\"type\":\"tuple[]\"}],\"name\":\"deploySuckersFor\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"suckers\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isSuckerOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sucker\",\"type\":\"address\"}],\"name\":\"removeDeprecatedSucker\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"removeSuckerDeployer\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"suckerDeployerIsAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"suckerPairsOf\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"local\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"remote\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"remoteChainId\",\"type\":\"uint256\"}],\"internalType\":\"struct JBSuckersPair[]\",\"name\":\"pairs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"suckersOf\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trustedForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowSuckerDeployer(address)\":{\"details\":\"Can only be called by this contract's owner (initially project ID 1, or JuiceboxDAO).\",\"params\":{\"deployer\":\"The address of the deployer to add.\"}},\"allowSuckerDeployers(address[])\":{\"details\":\"Can only be called by this contract's owner (initially project ID 1, or JuiceboxDAO).\",\"params\":{\"deployers\":\"The address of the deployer to add.\"}},\"constructor\":{\"params\":{\"directory\":\"The juicebox directory.\",\"initialOwner\":\"The initial owner of this contract.\",\"permissions\":\"A contract storing permissions.\"}},\"deploySuckersFor(uint256,bytes32,(address,(address,uint32,address,uint256)[])[])\":{\"details\":\"The caller must be the project's owner or have `JBPermissionIds.DEPLOY_SUCKERS` from the project's owner.\",\"params\":{\"configurations\":\"The sucker deployer configs to use to deploy the suckers.\",\"projectId\":\"The ID of the project to deploy suckers for.\",\"salt\":\"The salt used to deploy the contract. For the suckers to be peers, this must be the same value on each chain where suckers are deployed.\"},\"returns\":{\"suckers\":\"The addresses of the deployed suckers.\"}},\"isSuckerOf(uint256,address)\":{\"params\":{\"addr\":\"The address of the sucker to check.\",\"projectId\":\"The ID of the project to check for.\"},\"returns\":{\"_0\":\"flag A flag indicating if the sucker belongs to the project, and was deployed through this registry.\"}},\"isTrustedForwarder(address)\":{\"details\":\"Indicates whether any particular address is the trusted forwarder.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeDeprecatedSucker(uint256,address)\":{\"params\":{\"projectId\":\"The ID of the project to remove the sucker from.\",\"sucker\":\"The address of the deprecated sucker to remove.\"}},\"removeSuckerDeployer(address)\":{\"details\":\"Can only be called by this contract's owner (initially project ID 1, or JuiceboxDAO).\",\"params\":{\"deployer\":\"The address of the deployer to remove.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"suckerPairsOf(uint256)\":{\"params\":{\"projectId\":\"The ID of the project to get the suckers of.\"},\"returns\":{\"pairs\":\"The pairs of suckers and their metadata.\"}},\"suckersOf(uint256)\":{\"params\":{\"projectId\":\"The ID of the project to get the suckers of.\"},\"returns\":{\"_0\":\"suckers The addresses of the suckers.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"trustedForwarder()\":{\"details\":\"Returns the address of the trusted forwarder.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The juicebox directory.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"PROJECTS()\":{\"notice\":\"A contract which mints ERC-721s that represent project ownership and transfers.\"},\"allowSuckerDeployer(address)\":{\"notice\":\"Adds a suckers deployer to the allowlist.\"},\"allowSuckerDeployers(address[])\":{\"notice\":\"Adds multiple suckers deployer to the allowlist.\"},\"deploySuckersFor(uint256,bytes32,(address,(address,uint32,address,uint256)[])[])\":{\"notice\":\"Deploy one or more suckers for the specified project.\"},\"isSuckerOf(uint256,address)\":{\"notice\":\"Returns true if the specified sucker belongs to the specified project, and was deployed through this registry.\"},\"removeDeprecatedSucker(uint256,address)\":{\"notice\":\"Lets anyone remove a deprecated sucker from a project.\"},\"removeSuckerDeployer(address)\":{\"notice\":\"Removes a sucker deployer from the allowlist.\"},\"suckerDeployerIsAllowed(address)\":{\"notice\":\"Tracks whether the specified sucker deployer is approved by this registry.\"},\"suckerPairsOf(uint256)\":{\"notice\":\"Helper function for retrieving the projects suckers and their metadata.\"},\"suckersOf(uint256)\":{\"notice\":\"Gets all of the specified project's suckers which were deployed through this registry.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/JBSuckerRegistry.sol\":\"JBSuckerRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\"@arbitrum/=node_modules/@arbitrum/\",\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@offchainlabs/=node_modules/@offchainlabs/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"@zksync/=node_modules/@zksync/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solady/=node_modules/solady/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"]},\"sources\":{\"node_modules/@bananapus/core-v5/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0xbaaa61c6aa043522617d3c1a86960c23b9978ee2a6c9d593b00beeeb6ce64423\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09beed8608e02ce9dbf28814309aaf62c9eec67e0701a26113bdbb4cbae56c42\",\"dweb:/ipfs/QmZrHFnpjX9uBzbFrSjqQgQBkvpJ1ZyvjtT9RfneNGv32S\"]},\"node_modules/@bananapus/core-v5/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBController.sol\":{\"keccak256\":\"0xc903b660dccd57e610e1d834407b2bead1fc456153e106f2582407e505a39a96\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://624bb32a7cd93ce056ea2705332821abd9cd7c83f419bbb279ad96e47c2b6013\",\"dweb:/ipfs/QmXKmQAGecR2zYAXMZ54erg5QnYoWNue4Ek3jCJCUyfW7q\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x1ea768919979d9f625920c05a5e633739febc822ce14b1e4724d739b19c10fb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c5391a510bd610a97978245b7306d8d21c79d7c45c15f590ba9b603ea751154\",\"dweb:/ipfs/QmPSJvVWswqzv3bVq422UhA2BybMsiHoYFWGPp5Jh6Xs6a\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0xfd8ea4cffd289e7fef6e53b5c8983eb6b941de306517f40c047048d3a8a2ca08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2765cdee206f8b1b53874448e2481db001cd3706753190cfc9381318c7a7c41c\",\"dweb:/ipfs/QmQ5UYSadtzrb7BcTR93KnAYKXawdyDUG5HjjASV1zbys5\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0x5b038d4dee116584e88b230920e56d48e135053e3f7e5642eaea14a775c1dad7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e43102f349fd4a1da1c0943ffb8f2950007fe4bb4bb7e8f74fc142575d091b\",\"dweb:/ipfs/QmXHAt4KzDTdDZgDDefEXH2WKi7NcfkJb9R7nxW5uDqsNp\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0x49d2b91a866004af098a6770b28040071885b048b4b50744b12a1e5b212c5e5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089b4dda50be91412ffe1fbe333f78cc894f073c1a7afe469f10a2cee12fbf9e\",\"dweb:/ipfs/QmYPPBZ6HwBa1RNkNGqGcR2xgj4fnWBzrPHHoJG3kZA6AN\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0xc9ab647179d7d0c857fdd881d6ce96f06254739440ed08e85a1c2042218f7c7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8529368f30c98c8d5a69acdbe4ac79e3eeb4afa5a9cd278325c5f2184ef3d50f\",\"dweb:/ipfs/QmfUaozYiAGt1UwBDUEZvon1tEBS5sLPzqpN9dNdjQotPN\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x5f0dc5968277b572ba5dc74518906dfb33a9684b7a199c7843f4e66af1c11fb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://323ce3731aebdf5bf8055b8550055e856feed700d293af8beaf8a750625a0975\",\"dweb:/ipfs/QmU2ErV2uzvXnsJt1qBKm73H2qWcEqYtQGHtZEpx93DaWJ\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0xf287c7a4a162cd58084ed10ee5f9f31c992addff0ce2f2ac7e810cc393546f30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c851b72de52c3ceb73c6b1849ad0cc7c0832fd126ee52cc838a163ab6d3055b8\",\"dweb:/ipfs/Qmbv6k6pSeNMwZoTUKzDNb18DMGR8DboRMrYQBydATuVZw\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0xeb8dfac7a4b81897a1c3b5d0d853a406bcff33720fb187d5ca5bb3dcc0ba3a12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36aaeef6107cfe5b0127e063ea215aac7200f8af02e28a48e61111abd3254688\",\"dweb:/ipfs/QmQ8yQANXnhQCAWBGKsKCDsJ3A8hnTKNg5tyo79GfWXTcV\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x424e6d1189b9ba7a5d441e7675ae09ff893c13c62b9ddde4dd6bc2690e96c6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e30ed7ab1daf20ff324aacfef7150a243b5db496eceaf032c7012ccb3c4227d\",\"dweb:/ipfs/QmRj5EZKmDjJy8tpvKbpz8vPSKHR5C9Q5ENe7oSLij4H8M\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0x5a4c0ef6c8fd10069a408cc42a862909f7b47aba46327da5003203508d8f17d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d8854151c21046b6b939189ad2139c669888e6baf47034a0cb754104d1efe6\",\"dweb:/ipfs/QmaMrxnf6K6znvDBwdAqsw5x6yuR4SY1BdNtyz226siAt5\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xc2c0a75d97e3a20fd6964b09381736de03f56e58c27a874a0c96a21e02d0e577\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ef8d476174aca6c35f7fb24ff8be619191bfd22038d3729ca4803252d3dae6a\",\"dweb:/ipfs/QmdWtAwf2A4P88of9gUyWY6hodT9fqpxJK4NBVQt9ys2Jd\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0xe3f0cca072afcac9ee3c875b7439a6edb4a9276e9dba01184d11e8270a25f258\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc3e437b8588965b911a750dc632ac1aca4f9348a137877047a62df598a17bc7\",\"dweb:/ipfs/QmdXjVMdCFcw8HFbhxZZbj9KzxNx2ThjVfcDhFBt1khfvL\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0x3bfc01ae9944a0ff5c41125e18ebb8efca58d7aa4e471d2ffa6d8588afb689ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://beb21399142d9b89539cfc8aa94119bc106bd1ea847b922d4c78f3f8804a5cba\",\"dweb:/ipfs/QmXDwJXrzCb6zh1KYwVdN2PEY86uK62MTfYF1M2MBtbEP7\"]},\"node_modules/@bananapus/core-v5/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"]},\"node_modules/@bananapus/core-v5/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x9fdaa8d017b72da25f583700a444a86849df053f7fb8eac874ec5139bcf651e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8e44c49ee444a98424a0dbeb6897a76a0bf00d88a613f62ac2012afdac754ee\",\"dweb:/ipfs/QmdYkAiRi5bXM1YYNkc7BiqimHSFodMGn1cjHR5hcpm4xH\"]},\"node_modules/@bananapus/core-v5/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0x65e26b78a1f00d81a21abd255c9670b600efca60cf36a993b8f48ecb268464a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d108c721c4281b13de34641befd2a1e9fac73a70195ef5ca957abda6fca9acca\",\"dweb:/ipfs/QmWoJo7wzSKY3z4YCpFvR8DoCUTKviiuFEj2tBkcgKUqW1\"]},\"node_modules/@bananapus/core-v5/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x2d1f0a8457e94addae51a8222b1837e372847624fde96bb3178e7aee52ab2b24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bbb1478e8f5d1c20f981e5a0d5e526d002add1e05ddced87ccd45543ed00c9e4\",\"dweb:/ipfs/QmZkgaYdwkbnvW2MGwVe9FeHjac8XyZTP1YZcWUApiGZgE\"]},\"node_modules/@bananapus/core-v5/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0xeba54f25ad84b9c6009f62ded187b58f97e0822e9b19ab0986aee6603ca5400a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a51743febf78f2ede92d32a2b18c3c5f06f02c413c2d01f28dc296840b068ef\",\"dweb:/ipfs/QmVSRDtB7xUgaLGW5tSJr7PhW5XPxkWg226Sk2g75qWpxh\"]},\"node_modules/@bananapus/core-v5/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0x318f0b75275c3822df53a02e98782c9e98e7961116f2ad66a528c6adcd14c946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d60f62390e43d182bfe875d1ac57e9de10426d81038ba7d8c3727b22392299e2\",\"dweb:/ipfs/QmUtE6fcP25wEhVJNEbrPHyFPkg5hp2PFf5xcwBeHPmNAf\"]},\"node_modules/@bananapus/core-v5/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"]},\"node_modules/@bananapus/core-v5/src/structs/JBSplit.sol\":{\"keccak256\":\"0xfcedbb8b6937ee00578a4c3ec70e2555a2c0a5c18f1eba3b96701b07c1dd94a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7014a7b6f30f35941898eea1d9d32a2d75c807f59e2f0fcb430efc8c25edc1da\",\"dweb:/ipfs/QmWitPTxQCDUfoWrRRrYvE9YhuTcwCAXxVvkVLNk9Jsem1\"]},\"node_modules/@bananapus/core-v5/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"]},\"node_modules/@bananapus/core-v5/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0x1cef82bf434f91d518092ea7e57db4a72ce7654f48a7db9bf44882900b6b6623\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc5012008ab7e74cf766fe1c202a23e3a73365356bcf1e0b04ec01baf21b204b\",\"dweb:/ipfs/QmSwJvd6Yrg9XZMhjquBcak5sfUswbR5nPEuJBfpjM54VT\"]},\"node_modules/@bananapus/core-v5/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"]},\"node_modules/@bananapus/core-v5/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"]},\"node_modules/@bananapus/permission-ids-v5/src/JBPermissionIds.sol\":{\"keccak256\":\"0x03d598c570091f294bebe9c7b59bfc2d907d5b70a3193c3bdb9ddec67edae1e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afb1aefda01e53fa79441bab1fa9cb46154e0db9d16bec8f9b7fa80d200916db\",\"dweb:/ipfs/Qmbkt9HgWmz5rgehRttkzFqW9SkwRYvXYqtHmuxHVxz8ZD\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol\":{\"keccak256\":\"0x0b030a33274bde015419d99e54c9164f876a7d10eb590317b79b1d5e4ab23d99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68e5f96988198e8efd25ddef0d89750b4daebb7fd1204fa7f5eaccdfcb3398c8\",\"dweb:/ipfs/QmaM6nNkf9UmEtQraopuZamEWCdTWp7GvuN3pjMQrNCHxm\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0xafb7be6c8945a04bdd080fd6a3a3d0fa0329f1ad0d3bcd431dc1dcf2462d3da9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5a595aaee5f9fcfa163293afd9518d069fa424bffbf65d53d961d0394ed1dc5\",\"dweb:/ipfs/Qmb8U9Z38K1nmKwP895JoUo8pupwexUnjzcgAC6STzpQo4\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"src/JBSuckerRegistry.sol\":{\"keccak256\":\"0x497b2df5d7c50a01fc55878118039f0ec66c127b29edbd16fa6485494063ad12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0667a124ee1c73e0709216fa1c0745ddc166755bcac8ff74c8161b5b254480d1\",\"dweb:/ipfs/QmZcY6tJFYo2WhiXJAhvwpWXiKpNMNUDZ31mFGMfKTC68x\"]},\"src/enums/JBAddToBalanceMode.sol\":{\"keccak256\":\"0x0c18399ed85e6ad5ade75726af9f74e876ae4cf1e8e9d320d50006e320288e1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0080f23626ae9121aad63ba6ec37e95a5b6843de4732f9c7f16b4d09ae3d0880\",\"dweb:/ipfs/QmXudDnVpDAy7Yu7DRb7AZVJEsuK6afse7WtLE2uK12xYo\"]},\"src/enums/JBSuckerState.sol\":{\"keccak256\":\"0x0ee6d0d08cd4f538b8c9ff59d480c7c3371c4cb1971e5a67a89088b4b040a608\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8cce8e51b084cc9a844dc1040aba00b63b01f97868d52cc9f38b9d354fd741f\",\"dweb:/ipfs/QmTveKLmdZAGbwEwaCTBwofSBtckZsDcew3E7iNTnpeskY\"]},\"src/interfaces/IJBSucker.sol\":{\"keccak256\":\"0xc5637080a3bd632b53ca57457a09f252647e1aedd007a21ba9d2fcff8859b343\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://285815a5dc3f29bee503ecc9e7614d49f5e8fd44a6037c3a72e787694a59aebd\",\"dweb:/ipfs/QmccChKT2Gs1Tmeg4LgQAY1ejigdvQYHBo8AQCMfHLMg2j\"]},\"src/interfaces/IJBSuckerDeployer.sol\":{\"keccak256\":\"0x6913c0677d52e01cd2d6f785846a255fcc1783e6b90d15a2f296289d4f482026\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24781b17a192ec8bc2d8ab47400a06e4eed2320bc5537489a1f7bbdaed078ad2\",\"dweb:/ipfs/QmbTUkAvFxcAHhjy8hvJ4uUo4PyeKK4BVuU4YtR3QT7s68\"]},\"src/interfaces/IJBSuckerRegistry.sol\":{\"keccak256\":\"0x65aaa205ac5ffc4a4d9a38a39cf5b427e6c58d610cf042854a27c41f0d7d8b8e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9f279b1e5868b8c6b80220c87a4ad5f3a95665fabe0467e2b0601bd910a20592\",\"dweb:/ipfs/QmUqFEoGdUUNgH5FGWnXewSPzjZqG73b2z5nsJevG165oX\"]},\"src/structs/JBClaim.sol\":{\"keccak256\":\"0xd616fb935e61727ce04832808667bd40dc121d66f5cc2f347018dfd971635dab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dfdcfb12878dc03b4623ddfaa42afa7e8270e8a259a8c453ef4f7e916ca52876\",\"dweb:/ipfs/QmZyAUzatUq2HfGBpoKbeqkC7mpetQC27M3797wgNgkE6H\"]},\"src/structs/JBInboxTreeRoot.sol\":{\"keccak256\":\"0xc1d8a61fc49d5d095486b194b7041595dc7639db33e3e310b1703d21caa184da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c2d8480b823b25a55c4a9af0e6fb4bf6f8c0cba16f71bebf53585a5a86db6d\",\"dweb:/ipfs/QmY9Jbbb1PB9T8UHHjBq2Eq72zu5sPoSPYwVApbypLJtwB\"]},\"src/structs/JBLeaf.sol\":{\"keccak256\":\"0x4b71bd2b39022b2f7e59f45d967118ce47061db02e1e827ab4cc6f3a3b960107\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6fd76058f73ff40da48553412b95c2c3f00ddbb2a59d0774b207ab98d555a9\",\"dweb:/ipfs/QmPMe4J6MvRt1hKdDtUGXJoiZjWxqh736ds79bh2fJQEeN\"]},\"src/structs/JBMessageRoot.sol\":{\"keccak256\":\"0xed41178db7810558f486583d76382b8eb77f586648e7522070475d5e576a869c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2516fee99b547fa4008f8e3f40a7ef86701b286e9e4ceabd8ae24e3e67b8cf42\",\"dweb:/ipfs/QmeiNo3zgHkqSczQEmCK4S7R5BZwPM9RJp9dnjqqQRNyku\"]},\"src/structs/JBOutboxTree.sol\":{\"keccak256\":\"0x900ddc463282f90537e6e6f80d9217bc8da68c06c79c0ba66be1a48ba3647d99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e88c122091442114e734a9f6130cd3019add220f804518b82abbcb82726e5ee\",\"dweb:/ipfs/QmeG4grFoBaRbqPj5nDbxTt6V9mb8tvRLnMBzNSKkwKeyR\"]},\"src/structs/JBRemoteToken.sol\":{\"keccak256\":\"0xa675639bbc082957d4ea05b4c840d472f1777ad22fc78b0b32962fccc3f19995\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cdd472cfb3efeb2e3c7a7032e844abcce7f615d8d67eb4b33280968d8f8fb0\",\"dweb:/ipfs/QmfPUPLrxNVEYUaYzkAV7CaDX6YRfx2aJ8qDhLPFaXEGEA\"]},\"src/structs/JBSuckerDeployerConfig.sol\":{\"keccak256\":\"0xf62c06876ee13ee67630dcc82c10264264c062f20972ff65a9c1d87a554d2379\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff81847604f9f1cd2a6c3b687759e69f4beddd67f8dc78488d81ca6aa1e7cc5d\",\"dweb:/ipfs/QmRJPRQq1ifZnGnf3V7xXoVarwTywAut4zq6jnhawtivPE\"]},\"src/structs/JBSuckersPair.sol\":{\"keccak256\":\"0xfe76a400e1fa57758973705a9cbac4fab125785b97b49b752b5c13d414f6938b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d2449d365b5e45ed09c70cf4cfa4d2c9bccd492be5e1562f0b3fc2a10ccaf63\",\"dweb:/ipfs/QmYVrJVm7wKtGJ1hnPaHjfFgyKtA5LAJUrkMgSVRupj7AW\"]},\"src/structs/JBTokenMapping.sol\":{\"keccak256\":\"0x124f304139003b90ce0b15063d9d79a4990c8b2b6b0444fb0ebf2e2c213faabe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea7411e1be2809991b66659dcfabf300550d356ae04d77a001ab33ba96eb109b\",\"dweb:/ipfs/QmdzMYmaxL7FTreDTV3qEScDPECZJga1HRE5yLZB2Zq3Tb\"]},\"src/utils/MerkleLib.sol\":{\"keccak256\":\"0xbe3c73ca7be5471a742f409c921cdb641b77600bb5eacd4b47c36ccd92955d47\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b944fd8fa55e70696313ceac05ecb23ef81e0cd58386af75fc03953b69900efd\",\"dweb:/ipfs/QmSBPBakyc8vtcnu5YjGHXGgnpuc9tFW2eejiawp8z9yrk\"]}},\"version\":1}",
|
|
688
|
+
"gitCommit": "15954670a31005d16a26229742a824cdc93eee06",
|
|
689
|
+
"history": []
|
|
690
|
+
}
|