@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.
Files changed (149) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +422 -0
  3. package/SECURITY.md +55 -0
  4. package/SKILLS.md +163 -0
  5. package/deployments/nana-suckers-v5/arbitrum/JBArbitrumSucker.json +1425 -0
  6. package/deployments/nana-suckers-v5/arbitrum/JBArbitrumSuckerDeployer.json +391 -0
  7. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSucker.json +1479 -0
  8. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSuckerDeployer.json +433 -0
  9. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSuckerDeployer_1.json +433 -0
  10. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSuckerDeployer_2.json +433 -0
  11. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSucker_1.json +1479 -0
  12. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSucker_2.json +1479 -0
  13. package/deployments/nana-suckers-v5/arbitrum/JBSuckerRegistry.json +690 -0
  14. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBArbitrumSucker.json +1425 -0
  15. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBArbitrumSuckerDeployer.json +391 -0
  16. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSucker.json +1479 -0
  17. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSuckerDeployer.json +433 -0
  18. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSuckerDeployer_1.json +433 -0
  19. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSuckerDeployer_2.json +433 -0
  20. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSucker_1.json +1479 -0
  21. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSucker_2.json +1479 -0
  22. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBSuckerRegistry.json +690 -0
  23. package/deployments/nana-suckers-v5/base/JBBaseSucker.json +1389 -0
  24. package/deployments/nana-suckers-v5/base/JBBaseSuckerDeployer.json +376 -0
  25. package/deployments/nana-suckers-v5/base/JBCCIPSucker.json +1483 -0
  26. package/deployments/nana-suckers-v5/base/JBCCIPSuckerDeployer.json +436 -0
  27. package/deployments/nana-suckers-v5/base/JBCCIPSuckerDeployer_1.json +436 -0
  28. package/deployments/nana-suckers-v5/base/JBCCIPSuckerDeployer_2.json +436 -0
  29. package/deployments/nana-suckers-v5/base/JBCCIPSucker_1.json +1483 -0
  30. package/deployments/nana-suckers-v5/base/JBCCIPSucker_2.json +1483 -0
  31. package/deployments/nana-suckers-v5/base/JBSuckerRegistry.json +694 -0
  32. package/deployments/nana-suckers-v5/base_sepolia/JBBaseSucker.json +1389 -0
  33. package/deployments/nana-suckers-v5/base_sepolia/JBBaseSuckerDeployer.json +376 -0
  34. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSucker.json +1483 -0
  35. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSuckerDeployer.json +436 -0
  36. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSuckerDeployer_1.json +436 -0
  37. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSuckerDeployer_2.json +436 -0
  38. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSucker_1.json +1483 -0
  39. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSucker_2.json +1483 -0
  40. package/deployments/nana-suckers-v5/base_sepolia/JBSuckerRegistry.json +694 -0
  41. package/deployments/nana-suckers-v5/ethereum/JBArbitrumSucker.json +1429 -0
  42. package/deployments/nana-suckers-v5/ethereum/JBArbitrumSuckerDeployer.json +394 -0
  43. package/deployments/nana-suckers-v5/ethereum/JBBaseSucker.json +1389 -0
  44. package/deployments/nana-suckers-v5/ethereum/JBBaseSuckerDeployer.json +376 -0
  45. package/deployments/nana-suckers-v5/ethereum/JBCCIPSucker.json +1483 -0
  46. package/deployments/nana-suckers-v5/ethereum/JBCCIPSuckerDeployer.json +436 -0
  47. package/deployments/nana-suckers-v5/ethereum/JBCCIPSuckerDeployer_1.json +436 -0
  48. package/deployments/nana-suckers-v5/ethereum/JBCCIPSuckerDeployer_2.json +436 -0
  49. package/deployments/nana-suckers-v5/ethereum/JBCCIPSucker_1.json +1483 -0
  50. package/deployments/nana-suckers-v5/ethereum/JBCCIPSucker_2.json +1483 -0
  51. package/deployments/nana-suckers-v5/ethereum/JBOptimismSucker.json +1389 -0
  52. package/deployments/nana-suckers-v5/ethereum/JBOptimismSuckerDeployer.json +376 -0
  53. package/deployments/nana-suckers-v5/ethereum/JBSuckerRegistry.json +694 -0
  54. package/deployments/nana-suckers-v5/optimism/JBCCIPSucker.json +1479 -0
  55. package/deployments/nana-suckers-v5/optimism/JBCCIPSuckerDeployer.json +433 -0
  56. package/deployments/nana-suckers-v5/optimism/JBCCIPSuckerDeployer_1.json +433 -0
  57. package/deployments/nana-suckers-v5/optimism/JBCCIPSuckerDeployer_2.json +433 -0
  58. package/deployments/nana-suckers-v5/optimism/JBCCIPSucker_1.json +1479 -0
  59. package/deployments/nana-suckers-v5/optimism/JBCCIPSucker_2.json +1479 -0
  60. package/deployments/nana-suckers-v5/optimism/JBOptimismSucker.json +1385 -0
  61. package/deployments/nana-suckers-v5/optimism/JBOptimismSuckerDeployer.json +373 -0
  62. package/deployments/nana-suckers-v5/optimism/JBSuckerRegistry.json +690 -0
  63. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSucker.json +1483 -0
  64. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSuckerDeployer.json +436 -0
  65. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSuckerDeployer_1.json +436 -0
  66. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSuckerDeployer_2.json +436 -0
  67. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSucker_1.json +1483 -0
  68. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSucker_2.json +1483 -0
  69. package/deployments/nana-suckers-v5/optimism_sepolia/JBOptimismSucker.json +1389 -0
  70. package/deployments/nana-suckers-v5/optimism_sepolia/JBOptimismSuckerDeployer.json +376 -0
  71. package/deployments/nana-suckers-v5/optimism_sepolia/JBSuckerRegistry.json +694 -0
  72. package/deployments/nana-suckers-v5/sepolia/JBArbitrumSucker.json +1429 -0
  73. package/deployments/nana-suckers-v5/sepolia/JBArbitrumSuckerDeployer.json +394 -0
  74. package/deployments/nana-suckers-v5/sepolia/JBBaseSucker.json +1389 -0
  75. package/deployments/nana-suckers-v5/sepolia/JBBaseSuckerDeployer.json +376 -0
  76. package/deployments/nana-suckers-v5/sepolia/JBCCIPSucker.json +1483 -0
  77. package/deployments/nana-suckers-v5/sepolia/JBCCIPSuckerDeployer.json +436 -0
  78. package/deployments/nana-suckers-v5/sepolia/JBCCIPSuckerDeployer_1.json +436 -0
  79. package/deployments/nana-suckers-v5/sepolia/JBCCIPSuckerDeployer_2.json +436 -0
  80. package/deployments/nana-suckers-v5/sepolia/JBCCIPSucker_1.json +1483 -0
  81. package/deployments/nana-suckers-v5/sepolia/JBCCIPSucker_2.json +1483 -0
  82. package/deployments/nana-suckers-v5/sepolia/JBOptimismSucker.json +1389 -0
  83. package/deployments/nana-suckers-v5/sepolia/JBOptimismSuckerDeployer.json +376 -0
  84. package/deployments/nana-suckers-v5/sepolia/JBSuckerRegistry.json +694 -0
  85. package/foundry.lock +11 -0
  86. package/foundry.toml +22 -0
  87. package/package.json +33 -0
  88. package/remappings.txt +1 -0
  89. package/script/Deploy.s.sol +506 -0
  90. package/script/helpers/SuckerDeploymentLib.sol +97 -0
  91. package/slither-ci.config.json +10 -0
  92. package/sphinx.lock +476 -0
  93. package/src/JBArbitrumSucker.sol +311 -0
  94. package/src/JBBaseSucker.sol +41 -0
  95. package/src/JBCCIPSucker.sol +303 -0
  96. package/src/JBOptimismSucker.sol +143 -0
  97. package/src/JBSucker.sol +1159 -0
  98. package/src/JBSuckerRegistry.sol +262 -0
  99. package/src/deployers/JBArbitrumSuckerDeployer.sol +86 -0
  100. package/src/deployers/JBBaseSuckerDeployer.sol +26 -0
  101. package/src/deployers/JBCCIPSuckerDeployer.sol +88 -0
  102. package/src/deployers/JBOptimismSuckerDeployer.sol +82 -0
  103. package/src/deployers/JBSuckerDeployer.sol +147 -0
  104. package/src/enums/JBAddToBalanceMode.sol +11 -0
  105. package/src/enums/JBLayer.sol +8 -0
  106. package/src/enums/JBSuckerState.sol +14 -0
  107. package/src/interfaces/IArbGatewayRouter.sol +11 -0
  108. package/src/interfaces/IArbL1GatewayRouter.sol +17 -0
  109. package/src/interfaces/IArbL2GatewayRouter.sol +14 -0
  110. package/src/interfaces/ICCIPRouter.sol +11 -0
  111. package/src/interfaces/IJBArbitrumSucker.sol +13 -0
  112. package/src/interfaces/IJBArbitrumSuckerDeployer.sol +12 -0
  113. package/src/interfaces/IJBCCIPSuckerDeployer.sol +15 -0
  114. package/src/interfaces/IJBOpSuckerDeployer.sol +11 -0
  115. package/src/interfaces/IJBOptimismSucker.sol +10 -0
  116. package/src/interfaces/IJBSucker.sol +144 -0
  117. package/src/interfaces/IJBSuckerDeployer.sol +40 -0
  118. package/src/interfaces/IJBSuckerExtended.sol +22 -0
  119. package/src/interfaces/IJBSuckerRegistry.sol +75 -0
  120. package/src/interfaces/IOPMessenger.sol +18 -0
  121. package/src/interfaces/IOPStandardBridge.sol +29 -0
  122. package/src/interfaces/IWrappedNativeToken.sol +13 -0
  123. package/src/libraries/ARBAddresses.sol +17 -0
  124. package/src/libraries/ARBChains.sol +11 -0
  125. package/src/libraries/CCIPHelper.sol +136 -0
  126. package/src/structs/JBClaim.sol +13 -0
  127. package/src/structs/JBInboxTreeRoot.sol +12 -0
  128. package/src/structs/JBLeaf.sol +14 -0
  129. package/src/structs/JBMessageRoot.sol +16 -0
  130. package/src/structs/JBOutboxTree.sol +18 -0
  131. package/src/structs/JBRemoteToken.sol +17 -0
  132. package/src/structs/JBSuckerDeployerConfig.sol +12 -0
  133. package/src/structs/JBSuckersPair.sol +11 -0
  134. package/src/structs/JBTokenMapping.sol +13 -0
  135. package/src/utils/MerkleLib.sol +1020 -0
  136. package/test/Fork.t.sol +514 -0
  137. package/test/InteropCompat.t.sol +676 -0
  138. package/test/SuckerAttacks.t.sol +509 -0
  139. package/test/SuckerDeepAttacks.t.sol +1563 -0
  140. package/test/mocks/ERC20Mock.sol +36 -0
  141. package/test/mocks/MockMessenger.sol +42 -0
  142. package/test/unit/arb.t.sol +28 -0
  143. package/test/unit/ccip_native_interop.t.sol +719 -0
  144. package/test/unit/ccip_refund.t.sol +234 -0
  145. package/test/unit/deployer.t.sol +475 -0
  146. package/test/unit/emergency.t.sol +305 -0
  147. package/test/unit/merkle.t.sol +212 -0
  148. package/test/unit/multi_chain_evolution.t.sol +622 -0
  149. package/test/unit/registry.t.sol +26 -0
@@ -0,0 +1,391 @@
1
+ {
2
+ "format": "sphinx-sol-ct-artifact-1",
3
+ "merkleRoot": "0xaf5e28bbeeb8122b7e38bf2cb4c20e25753886f2cc3a4b8bc8ead5d3ccb5c985",
4
+ "address": "0xea06bd663a1cec97b5bdec9375ab9a63695c9699",
5
+ "sourceName": "src/deployers/JBArbitrumSuckerDeployer.sol",
6
+ "contractName": "JBArbitrumSuckerDeployer",
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": "contract IJBTokens",
23
+ "name": "tokens",
24
+ "type": "address"
25
+ },
26
+ {
27
+ "internalType": "address",
28
+ "name": "configurator",
29
+ "type": "address"
30
+ },
31
+ {
32
+ "internalType": "address",
33
+ "name": "trusted_forwarder",
34
+ "type": "address"
35
+ }
36
+ ],
37
+ "stateMutability": "nonpayable",
38
+ "type": "constructor"
39
+ },
40
+ {
41
+ "inputs": [],
42
+ "name": "DIRECTORY",
43
+ "outputs": [
44
+ {
45
+ "internalType": "contract IJBDirectory",
46
+ "name": "",
47
+ "type": "address"
48
+ }
49
+ ],
50
+ "stateMutability": "view",
51
+ "type": "function"
52
+ },
53
+ {
54
+ "inputs": [],
55
+ "name": "LAYER_SPECIFIC_CONFIGURATOR",
56
+ "outputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "stateMutability": "view",
64
+ "type": "function"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "PERMISSIONS",
69
+ "outputs": [
70
+ {
71
+ "internalType": "contract IJBPermissions",
72
+ "name": "",
73
+ "type": "address"
74
+ }
75
+ ],
76
+ "stateMutability": "view",
77
+ "type": "function"
78
+ },
79
+ {
80
+ "inputs": [],
81
+ "name": "TOKENS",
82
+ "outputs": [
83
+ {
84
+ "internalType": "contract IJBTokens",
85
+ "name": "",
86
+ "type": "address"
87
+ }
88
+ ],
89
+ "stateMutability": "view",
90
+ "type": "function"
91
+ },
92
+ {
93
+ "inputs": [],
94
+ "name": "arbGatewayRouter",
95
+ "outputs": [
96
+ {
97
+ "internalType": "contract IArbGatewayRouter",
98
+ "name": "",
99
+ "type": "address"
100
+ }
101
+ ],
102
+ "stateMutability": "view",
103
+ "type": "function"
104
+ },
105
+ {
106
+ "inputs": [],
107
+ "name": "arbInbox",
108
+ "outputs": [
109
+ {
110
+ "internalType": "contract IInbox",
111
+ "name": "",
112
+ "type": "address"
113
+ }
114
+ ],
115
+ "stateMutability": "view",
116
+ "type": "function"
117
+ },
118
+ {
119
+ "inputs": [],
120
+ "name": "arbLayer",
121
+ "outputs": [
122
+ {
123
+ "internalType": "enum JBLayer",
124
+ "name": "",
125
+ "type": "uint8"
126
+ }
127
+ ],
128
+ "stateMutability": "view",
129
+ "type": "function"
130
+ },
131
+ {
132
+ "inputs": [
133
+ {
134
+ "internalType": "contract JBSucker",
135
+ "name": "_singleton",
136
+ "type": "address"
137
+ }
138
+ ],
139
+ "name": "configureSingleton",
140
+ "outputs": [],
141
+ "stateMutability": "nonpayable",
142
+ "type": "function"
143
+ },
144
+ {
145
+ "inputs": [
146
+ {
147
+ "internalType": "uint256",
148
+ "name": "localProjectId",
149
+ "type": "uint256"
150
+ },
151
+ {
152
+ "internalType": "bytes32",
153
+ "name": "salt",
154
+ "type": "bytes32"
155
+ }
156
+ ],
157
+ "name": "createForSender",
158
+ "outputs": [
159
+ {
160
+ "internalType": "contract IJBSucker",
161
+ "name": "sucker",
162
+ "type": "address"
163
+ }
164
+ ],
165
+ "stateMutability": "nonpayable",
166
+ "type": "function"
167
+ },
168
+ {
169
+ "inputs": [
170
+ {
171
+ "internalType": "address",
172
+ "name": "",
173
+ "type": "address"
174
+ }
175
+ ],
176
+ "name": "isSucker",
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
+ {
209
+ "internalType": "enum JBLayer",
210
+ "name": "layer",
211
+ "type": "uint8"
212
+ },
213
+ {
214
+ "internalType": "contract IInbox",
215
+ "name": "inbox",
216
+ "type": "address"
217
+ },
218
+ {
219
+ "internalType": "contract IArbGatewayRouter",
220
+ "name": "gatewayRouter",
221
+ "type": "address"
222
+ }
223
+ ],
224
+ "name": "setChainSpecificConstants",
225
+ "outputs": [],
226
+ "stateMutability": "nonpayable",
227
+ "type": "function"
228
+ },
229
+ {
230
+ "inputs": [],
231
+ "name": "singleton",
232
+ "outputs": [
233
+ {
234
+ "internalType": "contract JBSucker",
235
+ "name": "",
236
+ "type": "address"
237
+ }
238
+ ],
239
+ "stateMutability": "view",
240
+ "type": "function"
241
+ },
242
+ {
243
+ "inputs": [],
244
+ "name": "trustedForwarder",
245
+ "outputs": [
246
+ {
247
+ "internalType": "address",
248
+ "name": "",
249
+ "type": "address"
250
+ }
251
+ ],
252
+ "stateMutability": "view",
253
+ "type": "function"
254
+ },
255
+ {
256
+ "inputs": [
257
+ {
258
+ "internalType": "address",
259
+ "name": "account",
260
+ "type": "address"
261
+ },
262
+ {
263
+ "internalType": "address",
264
+ "name": "sender",
265
+ "type": "address"
266
+ },
267
+ {
268
+ "internalType": "uint256",
269
+ "name": "projectId",
270
+ "type": "uint256"
271
+ },
272
+ {
273
+ "internalType": "uint256",
274
+ "name": "permissionId",
275
+ "type": "uint256"
276
+ }
277
+ ],
278
+ "name": "JBPermissioned_Unauthorized",
279
+ "type": "error"
280
+ },
281
+ {
282
+ "inputs": [],
283
+ "name": "JBSuckerDeployer_AlreadyConfigured",
284
+ "type": "error"
285
+ },
286
+ {
287
+ "inputs": [],
288
+ "name": "JBSuckerDeployer_DeployerIsNotConfigured",
289
+ "type": "error"
290
+ },
291
+ {
292
+ "inputs": [],
293
+ "name": "JBSuckerDeployer_InvalidLayerSpecificConfiguration",
294
+ "type": "error"
295
+ },
296
+ {
297
+ "inputs": [],
298
+ "name": "JBSuckerDeployer_LayerSpecificNotConfigured",
299
+ "type": "error"
300
+ },
301
+ {
302
+ "inputs": [
303
+ {
304
+ "internalType": "address",
305
+ "name": "caller",
306
+ "type": "address"
307
+ },
308
+ {
309
+ "internalType": "address",
310
+ "name": "expected",
311
+ "type": "address"
312
+ }
313
+ ],
314
+ "name": "JBSuckerDeployer_Unauthorized",
315
+ "type": "error"
316
+ },
317
+ {
318
+ "inputs": [],
319
+ "name": "JBSuckerDeployer_ZeroConfiguratorAddress",
320
+ "type": "error"
321
+ }
322
+ ],
323
+ "args": [],
324
+ "solcInputHash": "14ce4938174f25cdd1fbe9b98155e159",
325
+ "receipt": {
326
+ "type": "0x2",
327
+ "status": "0x1",
328
+ "cumulativeGasUsed": "0xbc775",
329
+ "logs": [
330
+ {
331
+ "address": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
332
+ "topics": [
333
+ "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d",
334
+ "0x000000000000000000000000755ff2f75a0a586ecfa2b9a3c959cb662458a105",
335
+ "0x000000000000000000000000691d6d2e1f0fb22b67e7471310ddcb3a881cc968",
336
+ "0xc40614c1032b6c3da56fc7f85c23a0079096213e6e264ec4287b869e9889b612"
337
+ ],
338
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000000",
339
+ "blockHash": "0xeb3ca4fb8065ebb86cd5916127af7a5a0dc22249ea5430c731f04018b6980609",
340
+ "blockNumber": "0xb7f8c5f",
341
+ "transactionHash": "0xa1a325eccee1b6c8234f3d269057055d0fe18818c5f779e7cc10c1f66e92837e",
342
+ "transactionIndex": "0x2",
343
+ "logIndex": "0x1",
344
+ "removed": false
345
+ },
346
+ {
347
+ "address": "0x80a8f7a4bd75b539ce26937016df607fdc9abeb5",
348
+ "topics": [
349
+ "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8",
350
+ "0x000000000000000000000000691d6d2e1f0fb22b67e7471310ddcb3a881cc968"
351
+ ],
352
+ "data": "0x",
353
+ "blockHash": "0xeb3ca4fb8065ebb86cd5916127af7a5a0dc22249ea5430c731f04018b6980609",
354
+ "blockNumber": "0xb7f8c5f",
355
+ "transactionHash": "0xa1a325eccee1b6c8234f3d269057055d0fe18818c5f779e7cc10c1f66e92837e",
356
+ "transactionIndex": "0x2",
357
+ "logIndex": "0x2",
358
+ "removed": false
359
+ },
360
+ {
361
+ "address": "0x691d6d2e1f0fb22b67e7471310ddcb3a881cc968",
362
+ "topics": [
363
+ "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07",
364
+ "0xaf5e28bbeeb8122b7e38bf2cb4c20e25753886f2cc3a4b8bc8ead5d3ccb5c985"
365
+ ],
366
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000001",
367
+ "blockHash": "0xeb3ca4fb8065ebb86cd5916127af7a5a0dc22249ea5430c731f04018b6980609",
368
+ "blockNumber": "0xb7f8c5f",
369
+ "transactionHash": "0xa1a325eccee1b6c8234f3d269057055d0fe18818c5f779e7cc10c1f66e92837e",
370
+ "transactionIndex": "0x2",
371
+ "logIndex": "0x3",
372
+ "removed": false
373
+ }
374
+ ],
375
+ "logsBloom": "0x00000000000010000000000000080001000800000000000000000000000400000040000000000000000000000040000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000008800000000000000000104000000100000000000100000000020000000000000004000040000000000000000000000002300000000000000000000000044000000000002004000000000000000000000000000000000000000000000000000020000000000000000000100000000000200000000000080000008000000000000",
376
+ "transactionHash": "0xa1a325eccee1b6c8234f3d269057055d0fe18818c5f779e7cc10c1f66e92837e",
377
+ "transactionIndex": "0x2",
378
+ "blockHash": "0xeb3ca4fb8065ebb86cd5916127af7a5a0dc22249ea5430c731f04018b6980609",
379
+ "blockNumber": "0xb7f8c5f",
380
+ "gasUsed": "0xb4825",
381
+ "effectiveGasPrice": "0x5f5e100",
382
+ "from": "0x755ff2f75a0a586ecfa2b9a3c959cb662458a105",
383
+ "to": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
384
+ "contractAddress": null
385
+ },
386
+ "bytecode": "0x6101206040523480156200001257600080fd5b5060405162000caa38038062000caa83398101604081905262000035916200011e565b6001600160a01b0380821660805280851660a05280861660c05280841661010052821660e0819052859085908590859085901580156200007c57506200007a620000ab565b155b156200009b5760405163541b408960e11b815260040160405180910390fd5b50505050505050505050620001b4565b600080600160149054906101000a900460ff166001811115620000d257620000d26200019e565b141580620000ea57506002546001600160a01b031615155b806200010057506003546001600160a01b031615155b905090565b6001600160a01b03811681146200011b57600080fd5b50565b600080600080600060a086880312156200013757600080fd5b8551620001448162000105565b6020870151909550620001578162000105565b60408701519094506200016a8162000105565b60608701519093506200017d8162000105565b6080870151909250620001908162000105565b809150509295509295909350565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c05160e05161010051610a8e6200021c600039600061013701526000818161015e015281816104b901528181610537015261064c01526000610268015260006102c50152600081816101cb0152818161023f01526107d40152610a8e6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063572b6c051161008c57806388bc2ef31161006657806388bc2ef314610263578063b62654fb1461028a578063c39ec1241461029d578063f434c914146102c057600080fd5b8063572b6c05146101bb57806370a2b8db1461020b5780637da0a8771461023d57600080fd5b80631e5d73df116100c85780631e5d73df1461015957806329cc1b8a146101805780633eeb32ee14610195578063557819a4146101a857600080fd5b806307fada49146100ef578063121303661461011f5780631d831d5c14610132575b600080fd5b600354610102906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61010261012d366004610890565b6102e7565b6101027f000000000000000000000000000000000000000000000000000000000000000081565b6101027f000000000000000000000000000000000000000000000000000000000000000081565b61019361018e3660046108ca565b610478565b005b6101936101a3366004610919565b61064a565b600254610102906001600160a01b031681565b6101fb6101c9366004610919565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b6040519015158152602001610116565b6001546102309074010000000000000000000000000000000000000000900460ff1681565b6040516101169190610965565b7f0000000000000000000000000000000000000000000000000000000000000000610102565b6101027f000000000000000000000000000000000000000000000000000000000000000081565b600154610102906001600160a01b031681565b6101fb6102ab366004610919565b60006020819052908152604090205460ff1681565b6101027f000000000000000000000000000000000000000000000000000000000000000081565b6001546000906001600160a01b031661032c576040517fbc700a3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61033461074d565b8260405160200161037692919060609290921b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168252601482015260340190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101206001549092506103c5906001600160a01b03168361075c565b6001600160a01b0381166000818152602081905260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517ffe4b84df000000000000000000000000000000000000000000000000000000008152600481018690529192509063fe4b84df90602401600060405180830381600087803b15801561045a57600080fd5b505af115801561046e573d6000803e3d6000fd5b5050505092915050565b610480610771565b156104b7576040517f52880bb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104e961074d565b6001600160a01b03161461056a576104ff61074d565b6040517fdcd3b8230000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527f0000000000000000000000000000000000000000000000000000000000000000909116602482015260440160405180910390fd5b600180548491907fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000083838111156105ba576105ba610936565b0217905550600280546001600160a01b038085167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255600380549284169290911691909117905561060f610771565b610645576040517fb140414800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661067c61074d565b6001600160a01b031614610692576104ff61074d565b61069a610771565b6106d0576040517fe2e55a4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546001600160a01b031615610713576040517f52880bb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006107576107c4565b905090565b600061076a60008484610839565b9392505050565b600080600160149054906101000a900460ff16600181111561079557610795610936565b1415806107ac57506002546001600160a01b031615155b806107575750506003546001600160a01b0316151590565b6000366014336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156108015750808210155b156108315760003661081383856109a6565b61081e9282906109e6565b61082791610a10565b60601c9250505090565b339250505090565b60006c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d73600052816035600c86f59050806108845763301164256000526004601cfd5b60006021529392505050565b600080604083850312156108a357600080fd5b50508035926020909101359150565b6001600160a01b03811681146108c757600080fd5b50565b6000806000606084860312156108df57600080fd5b8335600281106108ee57600080fd5b925060208401356108fe816108b2565b9150604084013561090e816108b2565b809150509250925092565b60006020828403121561092b57600080fd5b813561076a816108b2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600283106109a0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b818103818111156109e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b600080858511156109f657600080fd5b83861115610a0357600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015610a505780818660140360031b1b83161692505b50509291505056fea26469706673582212208cca91b41f427f2ac5e906a9744dba45f69788df6ad07fd5f9f4df2b117e306364736f6c63430008170033",
387
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063572b6c051161008c57806388bc2ef31161006657806388bc2ef314610263578063b62654fb1461028a578063c39ec1241461029d578063f434c914146102c057600080fd5b8063572b6c05146101bb57806370a2b8db1461020b5780637da0a8771461023d57600080fd5b80631e5d73df116100c85780631e5d73df1461015957806329cc1b8a146101805780633eeb32ee14610195578063557819a4146101a857600080fd5b806307fada49146100ef578063121303661461011f5780631d831d5c14610132575b600080fd5b600354610102906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61010261012d366004610890565b6102e7565b6101027f0000000000000000000000004d0edd347fb1fa21589c1e109b3474924be8763681565b6101027f00000000000000000000000080a8f7a4bd75b539ce26937016df607fdc9abeb581565b61019361018e3660046108ca565b610478565b005b6101936101a3366004610919565b61064a565b600254610102906001600160a01b031681565b6101fb6101c9366004610919565b7f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb5666001600160a01b0390811691161490565b6040519015158152602001610116565b6001546102309074010000000000000000000000000000000000000000900460ff1681565b6040516101169190610965565b7f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566610102565b6101027f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf81565b600154610102906001600160a01b031681565b6101fb6102ab366004610919565b60006020819052908152604090205460ff1681565b6101027f00000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d81565b6001546000906001600160a01b031661032c576040517fbc700a3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61033461074d565b8260405160200161037692919060609290921b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168252601482015260340190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101206001549092506103c5906001600160a01b03168361075c565b6001600160a01b0381166000818152602081905260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517ffe4b84df000000000000000000000000000000000000000000000000000000008152600481018690529192509063fe4b84df90602401600060405180830381600087803b15801561045a57600080fd5b505af115801561046e573d6000803e3d6000fd5b5050505092915050565b610480610771565b156104b7576040517f52880bb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000080a8f7a4bd75b539ce26937016df607fdc9abeb56001600160a01b03166104e961074d565b6001600160a01b03161461056a576104ff61074d565b6040517fdcd3b8230000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527f00000000000000000000000080a8f7a4bd75b539ce26937016df607fdc9abeb5909116602482015260440160405180910390fd5b600180548491907fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000083838111156105ba576105ba610936565b0217905550600280546001600160a01b038085167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255600380549284169290911691909117905561060f610771565b610645576040517fb140414800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b7f00000000000000000000000080a8f7a4bd75b539ce26937016df607fdc9abeb56001600160a01b031661067c61074d565b6001600160a01b031614610692576104ff61074d565b61069a610771565b6106d0576040517fe2e55a4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546001600160a01b031615610713576040517f52880bb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006107576107c4565b905090565b600061076a60008484610839565b9392505050565b600080600160149054906101000a900460ff16600181111561079557610795610936565b1415806107ac57506002546001600160a01b031615155b806107575750506003546001600160a01b0316151590565b6000366014336001600160a01b037f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566161480156108015750808210155b156108315760003661081383856109a6565b61081e9282906109e6565b61082791610a10565b60601c9250505090565b339250505090565b60006c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d73600052816035600c86f59050806108845763301164256000526004601cfd5b60006021529392505050565b600080604083850312156108a357600080fd5b50508035926020909101359150565b6001600160a01b03811681146108c757600080fd5b50565b6000806000606084860312156108df57600080fd5b8335600281106108ee57600080fd5b925060208401356108fe816108b2565b9150604084013561090e816108b2565b809150509250925092565b60006020828403121561092b57600080fd5b813561076a816108b2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600283106109a0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b818103818111156109e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b600080858511156109f657600080fd5b83861115610a0357600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015610a505780818660140360031b1b83161692505b50509291505056fea26469706673582212208cca91b41f427f2ac5e906a9744dba45f69788df6ad07fd5f9f4df2b117e306364736f6c63430008170033",
388
+ "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\":\"contract IJBTokens\",\"name\":\"tokens\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"configurator\",\"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\":[],\"name\":\"JBSuckerDeployer_AlreadyConfigured\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBSuckerDeployer_DeployerIsNotConfigured\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBSuckerDeployer_InvalidLayerSpecificConfiguration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBSuckerDeployer_LayerSpecificNotConfigured\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expected\",\"type\":\"address\"}],\"name\":\"JBSuckerDeployer_Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBSuckerDeployer_ZeroConfiguratorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LAYER_SPECIFIC_CONFIGURATOR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKENS\",\"outputs\":[{\"internalType\":\"contract IJBTokens\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"arbGatewayRouter\",\"outputs\":[{\"internalType\":\"contract IArbGatewayRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"arbInbox\",\"outputs\":[{\"internalType\":\"contract IInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"arbLayer\",\"outputs\":[{\"internalType\":\"enum JBLayer\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract JBSucker\",\"name\":\"_singleton\",\"type\":\"address\"}],\"name\":\"configureSingleton\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"localProjectId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"createForSender\",\"outputs\":[{\"internalType\":\"contract IJBSucker\",\"name\":\"sucker\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isSucker\",\"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\":[{\"internalType\":\"enum JBLayer\",\"name\":\"layer\",\"type\":\"uint8\"},{\"internalType\":\"contract IInbox\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contract IArbGatewayRouter\",\"name\":\"gatewayRouter\",\"type\":\"address\"}],\"name\":\"setChainSpecificConstants\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"singleton\",\"outputs\":[{\"internalType\":\"contract JBSucker\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trustedForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"configureSingleton(address)\":{\"details\":\"Can only be called *once* by the layer specific configurator.\",\"params\":{\"_singleton\":\"The address of the singleton.\"}},\"constructor\":{\"params\":{\"configurator\":\"The address of the configurator.\",\"directory\":\"The directory of terminals and controllers for projects.\",\"permissions\":\"The permissions contract for the deployer.\",\"tokens\":\"The contract that manages token minting and burning.\"}},\"createForSender(uint256,bytes32)\":{\"details\":\"Uses the sender address as the salt, which means the same sender must call this function on both chains.\",\"params\":{\"localProjectId\":\"The project's ID on the local chain.\",\"salt\":\"The salt to use for the `create2` address.\"},\"returns\":{\"sucker\":\"The address of the new sucker.\"}},\"isTrustedForwarder(address)\":{\"details\":\"Indicates whether any particular address is the trusted forwarder.\"},\"trustedForwarder()\":{\"details\":\"Returns the address of the trusted forwarder.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"LAYER_SPECIFIC_CONFIGURATOR()\":{\"notice\":\"Only this address can configure this deployer, can only be used once.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"TOKENS()\":{\"notice\":\"The contract that manages token minting and burning.\"},\"arbGatewayRouter()\":{\"notice\":\"The gateway router for the specific chain\"},\"arbInbox()\":{\"notice\":\"The inbox used to send messages between the local and remote sucker.\"},\"arbLayer()\":{\"notice\":\"The layer that this contract is on.\"},\"configureSingleton(address)\":{\"notice\":\"Configure the singleton instance that is used to clone suckers.\"},\"createForSender(uint256,bytes32)\":{\"notice\":\"Create a new `JBSucker` for a specific project.\"},\"isSucker(address)\":{\"notice\":\"A mapping of suckers deployed by this contract.\"},\"setChainSpecificConstants(uint8,address,address)\":{\"notice\":\"handles some layer specific configuration that can't be done in the constructor otherwise deployment addresses would change.messenger the OPMesssenger on this layer.bridge the OPStandardBridge on this layer.\"},\"singleton()\":{\"notice\":\"The singleton used to clone suckers.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/deployers/JBArbitrumSuckerDeployer.sol\":\"JBArbitrumSuckerDeployer\"},\"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/@arbitrum/nitro-contracts/src/bridge/IBridge.sol\":{\"keccak256\":\"0xeba1e59fa4dd56d0d2cd775ab726d08e470bf3056f5473ce62b98499e55ff7bd\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fca93cb8bf8369a86d299b263081d1789fd5f0b2579cd229f26e007b8f269d5f\",\"dweb:/ipfs/QmVwEQLsy7sSGwJ7MEWeHPwSunKu1Hr5YozzNy6CW1prmH\"]},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IDelayedMessageProvider.sol\":{\"keccak256\":\"0x1f216daf990c329310f44818e1c05d81c07fe875a5a07dd379d2c8fac921f208\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d6ccdab97fb5c8b7d9a80b713dc6bd9bc0e71e9d41900ac5c7cf96cb2643aad6\",\"dweb:/ipfs/QmeypCFXVXbTu3RehtFti4PMfuTCyzVKDwfGiZ2PeewRSG\"]},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IInbox.sol\":{\"keccak256\":\"0xee6e59278213c18faa2908a8e540ca26b288f47e5b65822d5140ce021488a00c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://8dac67605a1aa2d35c884603a51f2791c647a6d8d75ba1d698816fa90c2645f8\",\"dweb:/ipfs/QmSVjgCcGsPGrXskZAMo9FDnpYRQ8tpmMhW7uxftYFfDJD\"]},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IInboxBase.sol\":{\"keccak256\":\"0x2d8800ecb63220a0174770080f714f5de9823ddd08888e23e79b80282a4940ea\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5e4f3420abcddbac00e09cdfbb1b6af9de7fa73b5b27c53b71c06e9a35ae0ba3\",\"dweb:/ipfs/QmTJimLXfWzUB8F8aPFAdeMsYVTFY1SywPPDEuFk397JNT\"]},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IOutbox.sol\":{\"keccak256\":\"0x2de956f0a532a8db249be0eff614db7caa73eec2afb485c1ac9aed78ecf39e5f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d2ceb5dc3a34dc692f9a6c6eec9227ad7f2cfc423e8fd55460427e013819493b\",\"dweb:/ipfs/Qmd3F4xSMP1aFCq2GcwEESVhqxWzGdH8y5ReK3V8UBNEZc\"]},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IOwnable.sol\":{\"keccak256\":\"0x0ce0ccc2cd25968ab37aef146be9c9a615c3f2ad239fa759d1745190666729fd\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6516e1a94fdc9530b90ceb408e3083ecc7e844afd4fc34a7ccab89a191c3b88f\",\"dweb:/ipfs/QmZ4UwQe1pgTJxx1XqzcAKTgu9Wo6qZA5WSCPHygFJSdi8\"]},\"node_modules/@arbitrum/nitro-contracts/src/bridge/ISequencerInbox.sol\":{\"keccak256\":\"0x97341bd4cc27f3eae77980a722dfeb2b0b29492e920740a6138aa0812711c69a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://78acecb4885ba0b5c1a91d5c79cc99c6ff16e0ebffd5dd1e9f99ac6e6d11344d\",\"dweb:/ipfs/QmSDK7G79KKB1ETvG5Sd1ekWdeGi3RwnUCq9GtCbKonCd5\"]},\"node_modules/@arbitrum/nitro-contracts/src/libraries/AddressAliasHelper.sol\":{\"keccak256\":\"0x53ab7b4f3e0179f4579bdaccbd68ef79246d28ce95632f8e3b585356fca0d6c0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4239875db36ea53f47c072aec3890e439d21dcac09728b0faadb607119149895\",\"dweb:/ipfs/QmejkGYPU5GFBTGwEySAYHtuJGgniiKdvtGGx9uUgsM5N9\"]},\"node_modules/@arbitrum/nitro-contracts/src/libraries/IGasRefunder.sol\":{\"keccak256\":\"0x35d07855184f8d31087ad0b67d1a8ccd0653a3a6c59c02513eb9c53b3371a385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://20eec9a16fa9003971a1ac5f5f7a3b7c558c57cba01f98c50959b5c93786f639\",\"dweb:/ipfs/QmaRQpgwZVQYe2EsFS4UrvrnFabJLQwUaBXm14C8V4rhBM\"]},\"node_modules/@arbitrum/nitro-contracts/src/precompiles/ArbSys.sol\":{\"keccak256\":\"0x4bc9f91d6a3973af46cc95dd5fe9a29d23e2e64b13512dd0b2d1bfcde705f132\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7617f08af8fd8aa01a4a5e94ed0c4f15a8567665851c72765e82dbdd8ab20462\",\"dweb:/ipfs/QmYuVxm3JtrPwWBXhtEJZkhuv2SQ1iBH4j6ypP6uRAWAgF\"]},\"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/IJBCashOutHook.sol\":{\"keccak256\":\"0x6c516b030f55065eb169d666d11dbd82c4a0b8cea7782ebc5e79433cade38670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0659eb08477176f130ccaf387d4bde71f0ecca2b24f61124d225f2f50397a3\",\"dweb:/ipfs/QmRNBRGhdGpLQLkC4wK4VrgNEw4EdSiJ4ZZJfiJU4aNt2L\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBCashOutTerminal.sol\":{\"keccak256\":\"0xac8ed1afe397bb4c4060d947ec5765cf600cefb6d10829157153f0a4324807ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6be3361a27a1944853407d61f33813b21403a63e0d4113c7b7e84ce3b87f5d61\",\"dweb:/ipfs/QmdFTXKU1j4gdFL6nNx1LTTtbgoaRgdnwyVJ7UaQDp9Uo1\"]},\"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/libraries/JBConstants.sol\":{\"keccak256\":\"0x4dd0f809f1f10cf961e85632e5f3ea5e49716b104a0e8bc4d8ccc2081e9d007a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09432ec01de81f7c295579fa3176610776cb186fba4c50d799108a18f14e5cc6\",\"dweb:/ipfs/QmS52c525xJui5u1xoY76PTq2n1pvnUzThBK38A1fsWdLp\"]},\"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/JBAfterCashOutRecordedContext.sol\":{\"keccak256\":\"0xa1acdb1a5670f66f730e71f8eff120766b6f5c934e6cd699c7f1a7cc93adf658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9c7655c9c42b30132688b395251748c809c334370ee584cb9bac46e1fb8f162\",\"dweb:/ipfs/QmbMV1wg1Fm236HaA6nnMSvRkzeYCKPRhMYDbqkAxieY7x\"]},\"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/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol\":{\"keccak256\":\"0x0b030a33274bde015419d99e54c9164f876a7d10eb590317b79b1d5e4ab23d99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68e5f96988198e8efd25ddef0d89750b4daebb7fd1204fa7f5eaccdfcb3398c8\",\"dweb:/ipfs/QmaM6nNkf9UmEtQraopuZamEWCdTWp7GvuN3pjMQrNCHxm\"]},\"node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"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/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"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/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"]},\"node_modules/solady/src/utils/LibClone.sol\":{\"keccak256\":\"0x1388494b421db04cf6f33ab69580edc5b187328688818504b87eaea9fa3c0d2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f6bf027d6fe4f102360bf7e988923f73510697a87d970b28093a0d950d9a3e5\",\"dweb:/ipfs/QmUhdrSqiwhBp2cZPef6jcTfQ8Md3KoyfnK2ZteseAvude\"]},\"src/JBArbitrumSucker.sol\":{\"keccak256\":\"0x5c3280d98be5017e10e3746a915f3e41dc8a1816d0bc1ede57a527249fd49cf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f118eac276f999b057f5534c3b5c29b20cff1e3715b5a6d3561c114ac5701329\",\"dweb:/ipfs/QmUyz82zbszLfpqyUm9xaUuvGy7Evcibdp8ozFWuHCKM8N\"]},\"src/JBSucker.sol\":{\"keccak256\":\"0x79a301ca37984bb8be6574a29d9597857825ac866d84668083acc015ed5c2d41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://352dc9899b2febb5e978b79a8f1ecbf937b8a089e8206bf4613bfa758020797f\",\"dweb:/ipfs/QmXHcDruSZW2UhpWLxMRkeG1xFutmNGYz3Zx3jCNVZsMZw\"]},\"src/deployers/JBArbitrumSuckerDeployer.sol\":{\"keccak256\":\"0xdd368c5a74df69cceeeb6409a3d86bb5b1f1b9354189a66d14c48741d52740a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb88912127e2cec3cf409b7bec52c940c66b71dc81e82145eb7ae518c0fc52bb\",\"dweb:/ipfs/QmdtU4vQBtWADvow2eSVRu7zGrzCdxVDBPFd6SAftWNbG9\"]},\"src/deployers/JBSuckerDeployer.sol\":{\"keccak256\":\"0xb06eede93f0cbda6297d5d08d1f93bef23a5cec5de29bfe26c77f921cd2e1835\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c6bd4bec3686b289a1f00ef0173101a609563543348eaf2421ef30ad70688c7\",\"dweb:/ipfs/Qmf7Av7XeML7xBPhdHfaWKdeZHDRsy19WmzEbAs6VqJ2FY\"]},\"src/enums/JBAddToBalanceMode.sol\":{\"keccak256\":\"0x0c18399ed85e6ad5ade75726af9f74e876ae4cf1e8e9d320d50006e320288e1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0080f23626ae9121aad63ba6ec37e95a5b6843de4732f9c7f16b4d09ae3d0880\",\"dweb:/ipfs/QmXudDnVpDAy7Yu7DRb7AZVJEsuK6afse7WtLE2uK12xYo\"]},\"src/enums/JBLayer.sol\":{\"keccak256\":\"0x15d74493cb3713c6883e144a39bda3d0e4f9f2b7eed1ea88491e788e2e64f992\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee37c37e5488bbb279302ba70f88e314921c44723452edd3bd4aeabac2d5011f\",\"dweb:/ipfs/QmbCwjeEW5dRmKZ6LqjPCGSX4gjaEmss4EXjs2dU6i1w6t\"]},\"src/enums/JBSuckerState.sol\":{\"keccak256\":\"0x0ee6d0d08cd4f538b8c9ff59d480c7c3371c4cb1971e5a67a89088b4b040a608\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8cce8e51b084cc9a844dc1040aba00b63b01f97868d52cc9f38b9d354fd741f\",\"dweb:/ipfs/QmTveKLmdZAGbwEwaCTBwofSBtckZsDcew3E7iNTnpeskY\"]},\"src/interfaces/IArbGatewayRouter.sol\":{\"keccak256\":\"0x915da748a184ca04585e6da1b10cbdb7de99698de1cc31fa0f6d75d02eae4e8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7204f56dc2c16a2c9a92785aadc67d737b46308d0403fc9a2a8db901700a43e\",\"dweb:/ipfs/Qma8RjHimvNwoQfzxbGYiJsTNWwTZaLN5N5ogBYu663xmN\"]},\"src/interfaces/IArbL1GatewayRouter.sol\":{\"keccak256\":\"0xef051fb5111d5623db5209ea347790bc1a82eb7ba4de6b36a70405432b02776b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://938723e93e9f17434a8688b2be8d040b54c244cab39267e03bfb49b0595badea\",\"dweb:/ipfs/QmV5C7KRPFu5DrAk7xqAFu4W9cJmqzegUbuGFK921un5JJ\"]},\"src/interfaces/IArbL2GatewayRouter.sol\":{\"keccak256\":\"0x0fb8b6fb6194c2738378b10ed1cb93eb27934c19e55fe001a44ab912738b4485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a35f25cddd85587e05aff0e58672700d57f35161e17bab0d19623c2afa905aec\",\"dweb:/ipfs/QmaiQaWaUhXJnCdB95RmDRY5uh79DQLfk5aY1AR4aX2H7h\"]},\"src/interfaces/IJBArbitrumSucker.sol\":{\"keccak256\":\"0xc0125d81d6f6e5acad1a8cd577bb16d770e5eab1d34939f76338b70453a39107\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3966a9082d7883932db709290b9346bc85f1eee8ef61148d2afdbee4838d7a7\",\"dweb:/ipfs/QmUKsWNQgu4rTizheK8HnTAc8iVG3AeY7NNCxZ6LgRNMn2\"]},\"src/interfaces/IJBArbitrumSuckerDeployer.sol\":{\"keccak256\":\"0xcc01de6dc009398f3418e0b04bfc843f323650a7e2835d969f386cf547e1034b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f94cc870879012b94fc00e72b441c3bc70b8776e6600598ec26b4f17b26e2086\",\"dweb:/ipfs/QmTobhhcHcAMfJfQU4zin88Li8PTDNLaroXm7MX7hKauXu\"]},\"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/IJBSuckerExtended.sol\":{\"keccak256\":\"0x36c5d67d1d180de68cf467d6c2dd64b1f22678a4f85b2458e4207ccbaed3b39a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb3a0f07339cb11c508ef828f9c448841cc5f61ad9c36442a01809969c4818a4\",\"dweb:/ipfs/QmUCajrDVPXFCmU1BtAeYxfGgwCLKXz6yPFhkEP8tnpCHf\"]},\"src/libraries/ARBAddresses.sol\":{\"keccak256\":\"0xfac60002ddd4b14ad272ecdb4fa1b6c39a0a7ea3f4ec8a2b2ea5d7385ac7879e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dc9ace5a20670d68fb891995d23e6279d8647c99b338b25901d1c1657015ffe\",\"dweb:/ipfs/QmTyFidXn46wtNbrszS56uQUXw71cHo7J7Kfgu78YSHMVC\"]},\"src/libraries/ARBChains.sol\":{\"keccak256\":\"0xbc878048fbeb8e209fdbe079f281f0307211e390af9243dcef8e44c50ae8e93c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://964f6ab85ac6116c3ea5dedaa4cf8ed7abe61091f3379d7532a036e8913448fe\",\"dweb:/ipfs/Qmd1AdpKjRW1i9LsnA9ozdeNC6wPQZP3wvU27qF3yTE76d\"]},\"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/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}",
389
+ "gitCommit": "15954670a31005d16a26229742a824cdc93eee06",
390
+ "history": []
391
+ }