@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,1483 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": "sphinx-sol-ct-artifact-1",
|
|
3
|
+
"merkleRoot": "0xea14d6a9e0023ebdee52ff89f225fbcdab73dd659d2b605adb5e65271611064f",
|
|
4
|
+
"address": "0x79536ab41d2088f0c6ec6b169c6af62bf99a319d",
|
|
5
|
+
"sourceName": "src/JBCCIPSucker.sol",
|
|
6
|
+
"contractName": "JBCCIPSucker",
|
|
7
|
+
"chainId": "0x1",
|
|
8
|
+
"abi": [
|
|
9
|
+
{
|
|
10
|
+
"inputs": [
|
|
11
|
+
{
|
|
12
|
+
"internalType": "contract JBCCIPSuckerDeployer",
|
|
13
|
+
"name": "deployer",
|
|
14
|
+
"type": "address"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"internalType": "contract IJBDirectory",
|
|
18
|
+
"name": "directory",
|
|
19
|
+
"type": "address"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"internalType": "contract IJBTokens",
|
|
23
|
+
"name": "tokens",
|
|
24
|
+
"type": "address"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"internalType": "contract IJBPermissions",
|
|
28
|
+
"name": "permissions",
|
|
29
|
+
"type": "address"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"internalType": "enum JBAddToBalanceMode",
|
|
33
|
+
"name": "addToBalanceMode",
|
|
34
|
+
"type": "uint8"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"internalType": "address",
|
|
38
|
+
"name": "trusted_forwarder",
|
|
39
|
+
"type": "address"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"stateMutability": "nonpayable",
|
|
43
|
+
"type": "constructor"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"stateMutability": "payable",
|
|
47
|
+
"type": "receive"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"inputs": [],
|
|
51
|
+
"name": "ADD_TO_BALANCE_MODE",
|
|
52
|
+
"outputs": [
|
|
53
|
+
{
|
|
54
|
+
"internalType": "enum JBAddToBalanceMode",
|
|
55
|
+
"name": "",
|
|
56
|
+
"type": "uint8"
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"stateMutability": "view",
|
|
60
|
+
"type": "function"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"inputs": [],
|
|
64
|
+
"name": "CCIP_ROUTER",
|
|
65
|
+
"outputs": [
|
|
66
|
+
{
|
|
67
|
+
"internalType": "contract ICCIPRouter",
|
|
68
|
+
"name": "",
|
|
69
|
+
"type": "address"
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"stateMutability": "view",
|
|
73
|
+
"type": "function"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"inputs": [],
|
|
77
|
+
"name": "DIRECTORY",
|
|
78
|
+
"outputs": [
|
|
79
|
+
{
|
|
80
|
+
"internalType": "contract IJBDirectory",
|
|
81
|
+
"name": "",
|
|
82
|
+
"type": "address"
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"stateMutability": "view",
|
|
86
|
+
"type": "function"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"inputs": [],
|
|
90
|
+
"name": "MESSENGER_BASE_GAS_LIMIT",
|
|
91
|
+
"outputs": [
|
|
92
|
+
{
|
|
93
|
+
"internalType": "uint32",
|
|
94
|
+
"name": "",
|
|
95
|
+
"type": "uint32"
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"stateMutability": "view",
|
|
99
|
+
"type": "function"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"inputs": [],
|
|
103
|
+
"name": "MESSENGER_ERC20_MIN_GAS_LIMIT",
|
|
104
|
+
"outputs": [
|
|
105
|
+
{
|
|
106
|
+
"internalType": "uint32",
|
|
107
|
+
"name": "",
|
|
108
|
+
"type": "uint32"
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
"stateMutability": "view",
|
|
112
|
+
"type": "function"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"inputs": [],
|
|
116
|
+
"name": "PERMISSIONS",
|
|
117
|
+
"outputs": [
|
|
118
|
+
{
|
|
119
|
+
"internalType": "contract IJBPermissions",
|
|
120
|
+
"name": "",
|
|
121
|
+
"type": "address"
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
"stateMutability": "view",
|
|
125
|
+
"type": "function"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"inputs": [],
|
|
129
|
+
"name": "REMOTE_CHAIN_ID",
|
|
130
|
+
"outputs": [
|
|
131
|
+
{
|
|
132
|
+
"internalType": "uint256",
|
|
133
|
+
"name": "",
|
|
134
|
+
"type": "uint256"
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"stateMutability": "view",
|
|
138
|
+
"type": "function"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"inputs": [],
|
|
142
|
+
"name": "REMOTE_CHAIN_SELECTOR",
|
|
143
|
+
"outputs": [
|
|
144
|
+
{
|
|
145
|
+
"internalType": "uint64",
|
|
146
|
+
"name": "",
|
|
147
|
+
"type": "uint64"
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
"stateMutability": "view",
|
|
151
|
+
"type": "function"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"inputs": [],
|
|
155
|
+
"name": "TOKENS",
|
|
156
|
+
"outputs": [
|
|
157
|
+
{
|
|
158
|
+
"internalType": "contract IJBTokens",
|
|
159
|
+
"name": "",
|
|
160
|
+
"type": "address"
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
"stateMutability": "view",
|
|
164
|
+
"type": "function"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"inputs": [
|
|
168
|
+
{
|
|
169
|
+
"internalType": "address",
|
|
170
|
+
"name": "token",
|
|
171
|
+
"type": "address"
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
"name": "addOutstandingAmountToBalance",
|
|
175
|
+
"outputs": [],
|
|
176
|
+
"stateMutability": "nonpayable",
|
|
177
|
+
"type": "function"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"inputs": [
|
|
181
|
+
{
|
|
182
|
+
"internalType": "address",
|
|
183
|
+
"name": "token",
|
|
184
|
+
"type": "address"
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"name": "amountToAddToBalanceOf",
|
|
188
|
+
"outputs": [
|
|
189
|
+
{
|
|
190
|
+
"internalType": "uint256",
|
|
191
|
+
"name": "",
|
|
192
|
+
"type": "uint256"
|
|
193
|
+
}
|
|
194
|
+
],
|
|
195
|
+
"stateMutability": "view",
|
|
196
|
+
"type": "function"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"inputs": [
|
|
200
|
+
{
|
|
201
|
+
"components": [
|
|
202
|
+
{
|
|
203
|
+
"internalType": "bytes32",
|
|
204
|
+
"name": "messageId",
|
|
205
|
+
"type": "bytes32"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"internalType": "uint64",
|
|
209
|
+
"name": "sourceChainSelector",
|
|
210
|
+
"type": "uint64"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"internalType": "bytes",
|
|
214
|
+
"name": "sender",
|
|
215
|
+
"type": "bytes"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"internalType": "bytes",
|
|
219
|
+
"name": "data",
|
|
220
|
+
"type": "bytes"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"components": [
|
|
224
|
+
{
|
|
225
|
+
"internalType": "address",
|
|
226
|
+
"name": "token",
|
|
227
|
+
"type": "address"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"internalType": "uint256",
|
|
231
|
+
"name": "amount",
|
|
232
|
+
"type": "uint256"
|
|
233
|
+
}
|
|
234
|
+
],
|
|
235
|
+
"internalType": "struct Client.EVMTokenAmount[]",
|
|
236
|
+
"name": "destTokenAmounts",
|
|
237
|
+
"type": "tuple[]"
|
|
238
|
+
}
|
|
239
|
+
],
|
|
240
|
+
"internalType": "struct Client.Any2EVMMessage",
|
|
241
|
+
"name": "any2EvmMessage",
|
|
242
|
+
"type": "tuple"
|
|
243
|
+
}
|
|
244
|
+
],
|
|
245
|
+
"name": "ccipReceive",
|
|
246
|
+
"outputs": [],
|
|
247
|
+
"stateMutability": "nonpayable",
|
|
248
|
+
"type": "function"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"inputs": [
|
|
252
|
+
{
|
|
253
|
+
"components": [
|
|
254
|
+
{
|
|
255
|
+
"internalType": "address",
|
|
256
|
+
"name": "token",
|
|
257
|
+
"type": "address"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"components": [
|
|
261
|
+
{
|
|
262
|
+
"internalType": "uint256",
|
|
263
|
+
"name": "index",
|
|
264
|
+
"type": "uint256"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"internalType": "address",
|
|
268
|
+
"name": "beneficiary",
|
|
269
|
+
"type": "address"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"internalType": "uint256",
|
|
273
|
+
"name": "projectTokenCount",
|
|
274
|
+
"type": "uint256"
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"internalType": "uint256",
|
|
278
|
+
"name": "terminalTokenAmount",
|
|
279
|
+
"type": "uint256"
|
|
280
|
+
}
|
|
281
|
+
],
|
|
282
|
+
"internalType": "struct JBLeaf",
|
|
283
|
+
"name": "leaf",
|
|
284
|
+
"type": "tuple"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"internalType": "bytes32[32]",
|
|
288
|
+
"name": "proof",
|
|
289
|
+
"type": "bytes32[32]"
|
|
290
|
+
}
|
|
291
|
+
],
|
|
292
|
+
"internalType": "struct JBClaim",
|
|
293
|
+
"name": "claimData",
|
|
294
|
+
"type": "tuple"
|
|
295
|
+
}
|
|
296
|
+
],
|
|
297
|
+
"name": "claim",
|
|
298
|
+
"outputs": [],
|
|
299
|
+
"stateMutability": "nonpayable",
|
|
300
|
+
"type": "function"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"inputs": [
|
|
304
|
+
{
|
|
305
|
+
"components": [
|
|
306
|
+
{
|
|
307
|
+
"internalType": "address",
|
|
308
|
+
"name": "token",
|
|
309
|
+
"type": "address"
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"components": [
|
|
313
|
+
{
|
|
314
|
+
"internalType": "uint256",
|
|
315
|
+
"name": "index",
|
|
316
|
+
"type": "uint256"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"internalType": "address",
|
|
320
|
+
"name": "beneficiary",
|
|
321
|
+
"type": "address"
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"internalType": "uint256",
|
|
325
|
+
"name": "projectTokenCount",
|
|
326
|
+
"type": "uint256"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"internalType": "uint256",
|
|
330
|
+
"name": "terminalTokenAmount",
|
|
331
|
+
"type": "uint256"
|
|
332
|
+
}
|
|
333
|
+
],
|
|
334
|
+
"internalType": "struct JBLeaf",
|
|
335
|
+
"name": "leaf",
|
|
336
|
+
"type": "tuple"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"internalType": "bytes32[32]",
|
|
340
|
+
"name": "proof",
|
|
341
|
+
"type": "bytes32[32]"
|
|
342
|
+
}
|
|
343
|
+
],
|
|
344
|
+
"internalType": "struct JBClaim[]",
|
|
345
|
+
"name": "claims",
|
|
346
|
+
"type": "tuple[]"
|
|
347
|
+
}
|
|
348
|
+
],
|
|
349
|
+
"name": "claim",
|
|
350
|
+
"outputs": [],
|
|
351
|
+
"stateMutability": "nonpayable",
|
|
352
|
+
"type": "function"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"inputs": [],
|
|
356
|
+
"name": "deployer",
|
|
357
|
+
"outputs": [
|
|
358
|
+
{
|
|
359
|
+
"internalType": "address",
|
|
360
|
+
"name": "",
|
|
361
|
+
"type": "address"
|
|
362
|
+
}
|
|
363
|
+
],
|
|
364
|
+
"stateMutability": "view",
|
|
365
|
+
"type": "function"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"inputs": [
|
|
369
|
+
{
|
|
370
|
+
"internalType": "address[]",
|
|
371
|
+
"name": "tokens",
|
|
372
|
+
"type": "address[]"
|
|
373
|
+
}
|
|
374
|
+
],
|
|
375
|
+
"name": "enableEmergencyHatchFor",
|
|
376
|
+
"outputs": [],
|
|
377
|
+
"stateMutability": "nonpayable",
|
|
378
|
+
"type": "function"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"inputs": [
|
|
382
|
+
{
|
|
383
|
+
"components": [
|
|
384
|
+
{
|
|
385
|
+
"internalType": "address",
|
|
386
|
+
"name": "token",
|
|
387
|
+
"type": "address"
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"components": [
|
|
391
|
+
{
|
|
392
|
+
"internalType": "uint256",
|
|
393
|
+
"name": "index",
|
|
394
|
+
"type": "uint256"
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
"internalType": "address",
|
|
398
|
+
"name": "beneficiary",
|
|
399
|
+
"type": "address"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"internalType": "uint256",
|
|
403
|
+
"name": "projectTokenCount",
|
|
404
|
+
"type": "uint256"
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"internalType": "uint256",
|
|
408
|
+
"name": "terminalTokenAmount",
|
|
409
|
+
"type": "uint256"
|
|
410
|
+
}
|
|
411
|
+
],
|
|
412
|
+
"internalType": "struct JBLeaf",
|
|
413
|
+
"name": "leaf",
|
|
414
|
+
"type": "tuple"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"internalType": "bytes32[32]",
|
|
418
|
+
"name": "proof",
|
|
419
|
+
"type": "bytes32[32]"
|
|
420
|
+
}
|
|
421
|
+
],
|
|
422
|
+
"internalType": "struct JBClaim",
|
|
423
|
+
"name": "claimData",
|
|
424
|
+
"type": "tuple"
|
|
425
|
+
}
|
|
426
|
+
],
|
|
427
|
+
"name": "exitThroughEmergencyHatch",
|
|
428
|
+
"outputs": [],
|
|
429
|
+
"stateMutability": "nonpayable",
|
|
430
|
+
"type": "function"
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"inputs": [
|
|
434
|
+
{
|
|
435
|
+
"components": [
|
|
436
|
+
{
|
|
437
|
+
"internalType": "address",
|
|
438
|
+
"name": "token",
|
|
439
|
+
"type": "address"
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"internalType": "uint256",
|
|
443
|
+
"name": "amount",
|
|
444
|
+
"type": "uint256"
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"components": [
|
|
448
|
+
{
|
|
449
|
+
"internalType": "uint64",
|
|
450
|
+
"name": "nonce",
|
|
451
|
+
"type": "uint64"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"internalType": "bytes32",
|
|
455
|
+
"name": "root",
|
|
456
|
+
"type": "bytes32"
|
|
457
|
+
}
|
|
458
|
+
],
|
|
459
|
+
"internalType": "struct JBInboxTreeRoot",
|
|
460
|
+
"name": "remoteRoot",
|
|
461
|
+
"type": "tuple"
|
|
462
|
+
}
|
|
463
|
+
],
|
|
464
|
+
"internalType": "struct JBMessageRoot",
|
|
465
|
+
"name": "root",
|
|
466
|
+
"type": "tuple"
|
|
467
|
+
}
|
|
468
|
+
],
|
|
469
|
+
"name": "fromRemote",
|
|
470
|
+
"outputs": [],
|
|
471
|
+
"stateMutability": "payable",
|
|
472
|
+
"type": "function"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"inputs": [],
|
|
476
|
+
"name": "getRouter",
|
|
477
|
+
"outputs": [
|
|
478
|
+
{
|
|
479
|
+
"internalType": "address",
|
|
480
|
+
"name": "",
|
|
481
|
+
"type": "address"
|
|
482
|
+
}
|
|
483
|
+
],
|
|
484
|
+
"stateMutability": "view",
|
|
485
|
+
"type": "function"
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"inputs": [
|
|
489
|
+
{
|
|
490
|
+
"internalType": "address",
|
|
491
|
+
"name": "token",
|
|
492
|
+
"type": "address"
|
|
493
|
+
}
|
|
494
|
+
],
|
|
495
|
+
"name": "inboxOf",
|
|
496
|
+
"outputs": [
|
|
497
|
+
{
|
|
498
|
+
"components": [
|
|
499
|
+
{
|
|
500
|
+
"internalType": "uint64",
|
|
501
|
+
"name": "nonce",
|
|
502
|
+
"type": "uint64"
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"internalType": "bytes32",
|
|
506
|
+
"name": "root",
|
|
507
|
+
"type": "bytes32"
|
|
508
|
+
}
|
|
509
|
+
],
|
|
510
|
+
"internalType": "struct JBInboxTreeRoot",
|
|
511
|
+
"name": "",
|
|
512
|
+
"type": "tuple"
|
|
513
|
+
}
|
|
514
|
+
],
|
|
515
|
+
"stateMutability": "view",
|
|
516
|
+
"type": "function"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"inputs": [
|
|
520
|
+
{
|
|
521
|
+
"internalType": "uint256",
|
|
522
|
+
"name": "_projectId",
|
|
523
|
+
"type": "uint256"
|
|
524
|
+
}
|
|
525
|
+
],
|
|
526
|
+
"name": "initialize",
|
|
527
|
+
"outputs": [],
|
|
528
|
+
"stateMutability": "nonpayable",
|
|
529
|
+
"type": "function"
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
"inputs": [
|
|
533
|
+
{
|
|
534
|
+
"internalType": "address",
|
|
535
|
+
"name": "token",
|
|
536
|
+
"type": "address"
|
|
537
|
+
}
|
|
538
|
+
],
|
|
539
|
+
"name": "isMapped",
|
|
540
|
+
"outputs": [
|
|
541
|
+
{
|
|
542
|
+
"internalType": "bool",
|
|
543
|
+
"name": "",
|
|
544
|
+
"type": "bool"
|
|
545
|
+
}
|
|
546
|
+
],
|
|
547
|
+
"stateMutability": "view",
|
|
548
|
+
"type": "function"
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"inputs": [
|
|
552
|
+
{
|
|
553
|
+
"internalType": "address",
|
|
554
|
+
"name": "forwarder",
|
|
555
|
+
"type": "address"
|
|
556
|
+
}
|
|
557
|
+
],
|
|
558
|
+
"name": "isTrustedForwarder",
|
|
559
|
+
"outputs": [
|
|
560
|
+
{
|
|
561
|
+
"internalType": "bool",
|
|
562
|
+
"name": "",
|
|
563
|
+
"type": "bool"
|
|
564
|
+
}
|
|
565
|
+
],
|
|
566
|
+
"stateMutability": "view",
|
|
567
|
+
"type": "function"
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"inputs": [
|
|
571
|
+
{
|
|
572
|
+
"components": [
|
|
573
|
+
{
|
|
574
|
+
"internalType": "address",
|
|
575
|
+
"name": "localToken",
|
|
576
|
+
"type": "address"
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"internalType": "uint32",
|
|
580
|
+
"name": "minGas",
|
|
581
|
+
"type": "uint32"
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"internalType": "address",
|
|
585
|
+
"name": "remoteToken",
|
|
586
|
+
"type": "address"
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"internalType": "uint256",
|
|
590
|
+
"name": "minBridgeAmount",
|
|
591
|
+
"type": "uint256"
|
|
592
|
+
}
|
|
593
|
+
],
|
|
594
|
+
"internalType": "struct JBTokenMapping",
|
|
595
|
+
"name": "map",
|
|
596
|
+
"type": "tuple"
|
|
597
|
+
}
|
|
598
|
+
],
|
|
599
|
+
"name": "mapToken",
|
|
600
|
+
"outputs": [],
|
|
601
|
+
"stateMutability": "payable",
|
|
602
|
+
"type": "function"
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"inputs": [
|
|
606
|
+
{
|
|
607
|
+
"components": [
|
|
608
|
+
{
|
|
609
|
+
"internalType": "address",
|
|
610
|
+
"name": "localToken",
|
|
611
|
+
"type": "address"
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"internalType": "uint32",
|
|
615
|
+
"name": "minGas",
|
|
616
|
+
"type": "uint32"
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
"internalType": "address",
|
|
620
|
+
"name": "remoteToken",
|
|
621
|
+
"type": "address"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"internalType": "uint256",
|
|
625
|
+
"name": "minBridgeAmount",
|
|
626
|
+
"type": "uint256"
|
|
627
|
+
}
|
|
628
|
+
],
|
|
629
|
+
"internalType": "struct JBTokenMapping[]",
|
|
630
|
+
"name": "maps",
|
|
631
|
+
"type": "tuple[]"
|
|
632
|
+
}
|
|
633
|
+
],
|
|
634
|
+
"name": "mapTokens",
|
|
635
|
+
"outputs": [],
|
|
636
|
+
"stateMutability": "payable",
|
|
637
|
+
"type": "function"
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
"inputs": [
|
|
641
|
+
{
|
|
642
|
+
"internalType": "address",
|
|
643
|
+
"name": "token",
|
|
644
|
+
"type": "address"
|
|
645
|
+
}
|
|
646
|
+
],
|
|
647
|
+
"name": "outboxOf",
|
|
648
|
+
"outputs": [
|
|
649
|
+
{
|
|
650
|
+
"components": [
|
|
651
|
+
{
|
|
652
|
+
"internalType": "uint64",
|
|
653
|
+
"name": "nonce",
|
|
654
|
+
"type": "uint64"
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
"internalType": "uint256",
|
|
658
|
+
"name": "balance",
|
|
659
|
+
"type": "uint256"
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
"components": [
|
|
663
|
+
{
|
|
664
|
+
"internalType": "bytes32[32]",
|
|
665
|
+
"name": "branch",
|
|
666
|
+
"type": "bytes32[32]"
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
"internalType": "uint256",
|
|
670
|
+
"name": "count",
|
|
671
|
+
"type": "uint256"
|
|
672
|
+
}
|
|
673
|
+
],
|
|
674
|
+
"internalType": "struct MerkleLib.Tree",
|
|
675
|
+
"name": "tree",
|
|
676
|
+
"type": "tuple"
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
"internalType": "uint256",
|
|
680
|
+
"name": "numberOfClaimsSent",
|
|
681
|
+
"type": "uint256"
|
|
682
|
+
}
|
|
683
|
+
],
|
|
684
|
+
"internalType": "struct JBOutboxTree",
|
|
685
|
+
"name": "",
|
|
686
|
+
"type": "tuple"
|
|
687
|
+
}
|
|
688
|
+
],
|
|
689
|
+
"stateMutability": "view",
|
|
690
|
+
"type": "function"
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"inputs": [],
|
|
694
|
+
"name": "peer",
|
|
695
|
+
"outputs": [
|
|
696
|
+
{
|
|
697
|
+
"internalType": "address",
|
|
698
|
+
"name": "",
|
|
699
|
+
"type": "address"
|
|
700
|
+
}
|
|
701
|
+
],
|
|
702
|
+
"stateMutability": "view",
|
|
703
|
+
"type": "function"
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
"inputs": [],
|
|
707
|
+
"name": "peerChainId",
|
|
708
|
+
"outputs": [
|
|
709
|
+
{
|
|
710
|
+
"internalType": "uint256",
|
|
711
|
+
"name": "chainId",
|
|
712
|
+
"type": "uint256"
|
|
713
|
+
}
|
|
714
|
+
],
|
|
715
|
+
"stateMutability": "view",
|
|
716
|
+
"type": "function"
|
|
717
|
+
},
|
|
718
|
+
{
|
|
719
|
+
"inputs": [
|
|
720
|
+
{
|
|
721
|
+
"internalType": "uint256",
|
|
722
|
+
"name": "projectTokenCount",
|
|
723
|
+
"type": "uint256"
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
"internalType": "address",
|
|
727
|
+
"name": "beneficiary",
|
|
728
|
+
"type": "address"
|
|
729
|
+
},
|
|
730
|
+
{
|
|
731
|
+
"internalType": "uint256",
|
|
732
|
+
"name": "minTokensReclaimed",
|
|
733
|
+
"type": "uint256"
|
|
734
|
+
},
|
|
735
|
+
{
|
|
736
|
+
"internalType": "address",
|
|
737
|
+
"name": "token",
|
|
738
|
+
"type": "address"
|
|
739
|
+
}
|
|
740
|
+
],
|
|
741
|
+
"name": "prepare",
|
|
742
|
+
"outputs": [],
|
|
743
|
+
"stateMutability": "nonpayable",
|
|
744
|
+
"type": "function"
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
"inputs": [],
|
|
748
|
+
"name": "projectId",
|
|
749
|
+
"outputs": [
|
|
750
|
+
{
|
|
751
|
+
"internalType": "uint256",
|
|
752
|
+
"name": "",
|
|
753
|
+
"type": "uint256"
|
|
754
|
+
}
|
|
755
|
+
],
|
|
756
|
+
"stateMutability": "view",
|
|
757
|
+
"type": "function"
|
|
758
|
+
},
|
|
759
|
+
{
|
|
760
|
+
"inputs": [
|
|
761
|
+
{
|
|
762
|
+
"internalType": "address",
|
|
763
|
+
"name": "token",
|
|
764
|
+
"type": "address"
|
|
765
|
+
}
|
|
766
|
+
],
|
|
767
|
+
"name": "remoteTokenFor",
|
|
768
|
+
"outputs": [
|
|
769
|
+
{
|
|
770
|
+
"components": [
|
|
771
|
+
{
|
|
772
|
+
"internalType": "bool",
|
|
773
|
+
"name": "enabled",
|
|
774
|
+
"type": "bool"
|
|
775
|
+
},
|
|
776
|
+
{
|
|
777
|
+
"internalType": "bool",
|
|
778
|
+
"name": "emergencyHatch",
|
|
779
|
+
"type": "bool"
|
|
780
|
+
},
|
|
781
|
+
{
|
|
782
|
+
"internalType": "uint32",
|
|
783
|
+
"name": "minGas",
|
|
784
|
+
"type": "uint32"
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
"internalType": "address",
|
|
788
|
+
"name": "addr",
|
|
789
|
+
"type": "address"
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
"internalType": "uint256",
|
|
793
|
+
"name": "minBridgeAmount",
|
|
794
|
+
"type": "uint256"
|
|
795
|
+
}
|
|
796
|
+
],
|
|
797
|
+
"internalType": "struct JBRemoteToken",
|
|
798
|
+
"name": "",
|
|
799
|
+
"type": "tuple"
|
|
800
|
+
}
|
|
801
|
+
],
|
|
802
|
+
"stateMutability": "view",
|
|
803
|
+
"type": "function"
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
"inputs": [
|
|
807
|
+
{
|
|
808
|
+
"internalType": "uint40",
|
|
809
|
+
"name": "timestamp",
|
|
810
|
+
"type": "uint40"
|
|
811
|
+
}
|
|
812
|
+
],
|
|
813
|
+
"name": "setDeprecation",
|
|
814
|
+
"outputs": [],
|
|
815
|
+
"stateMutability": "nonpayable",
|
|
816
|
+
"type": "function"
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
"inputs": [],
|
|
820
|
+
"name": "state",
|
|
821
|
+
"outputs": [
|
|
822
|
+
{
|
|
823
|
+
"internalType": "enum JBSuckerState",
|
|
824
|
+
"name": "",
|
|
825
|
+
"type": "uint8"
|
|
826
|
+
}
|
|
827
|
+
],
|
|
828
|
+
"stateMutability": "view",
|
|
829
|
+
"type": "function"
|
|
830
|
+
},
|
|
831
|
+
{
|
|
832
|
+
"inputs": [
|
|
833
|
+
{
|
|
834
|
+
"internalType": "bytes4",
|
|
835
|
+
"name": "interfaceId",
|
|
836
|
+
"type": "bytes4"
|
|
837
|
+
}
|
|
838
|
+
],
|
|
839
|
+
"name": "supportsInterface",
|
|
840
|
+
"outputs": [
|
|
841
|
+
{
|
|
842
|
+
"internalType": "bool",
|
|
843
|
+
"name": "",
|
|
844
|
+
"type": "bool"
|
|
845
|
+
}
|
|
846
|
+
],
|
|
847
|
+
"stateMutability": "view",
|
|
848
|
+
"type": "function"
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"inputs": [
|
|
852
|
+
{
|
|
853
|
+
"internalType": "address",
|
|
854
|
+
"name": "token",
|
|
855
|
+
"type": "address"
|
|
856
|
+
}
|
|
857
|
+
],
|
|
858
|
+
"name": "toRemote",
|
|
859
|
+
"outputs": [],
|
|
860
|
+
"stateMutability": "payable",
|
|
861
|
+
"type": "function"
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
"inputs": [],
|
|
865
|
+
"name": "trustedForwarder",
|
|
866
|
+
"outputs": [
|
|
867
|
+
{
|
|
868
|
+
"internalType": "address",
|
|
869
|
+
"name": "",
|
|
870
|
+
"type": "address"
|
|
871
|
+
}
|
|
872
|
+
],
|
|
873
|
+
"stateMutability": "view",
|
|
874
|
+
"type": "function"
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
"anonymous": false,
|
|
878
|
+
"inputs": [
|
|
879
|
+
{
|
|
880
|
+
"indexed": false,
|
|
881
|
+
"internalType": "address",
|
|
882
|
+
"name": "beneficiary",
|
|
883
|
+
"type": "address"
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"indexed": false,
|
|
887
|
+
"internalType": "address",
|
|
888
|
+
"name": "token",
|
|
889
|
+
"type": "address"
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"indexed": false,
|
|
893
|
+
"internalType": "uint256",
|
|
894
|
+
"name": "projectTokenCount",
|
|
895
|
+
"type": "uint256"
|
|
896
|
+
},
|
|
897
|
+
{
|
|
898
|
+
"indexed": false,
|
|
899
|
+
"internalType": "uint256",
|
|
900
|
+
"name": "terminalTokenAmount",
|
|
901
|
+
"type": "uint256"
|
|
902
|
+
},
|
|
903
|
+
{
|
|
904
|
+
"indexed": false,
|
|
905
|
+
"internalType": "uint256",
|
|
906
|
+
"name": "index",
|
|
907
|
+
"type": "uint256"
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
"indexed": false,
|
|
911
|
+
"internalType": "bool",
|
|
912
|
+
"name": "autoAddedToBalance",
|
|
913
|
+
"type": "bool"
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"indexed": false,
|
|
917
|
+
"internalType": "address",
|
|
918
|
+
"name": "caller",
|
|
919
|
+
"type": "address"
|
|
920
|
+
}
|
|
921
|
+
],
|
|
922
|
+
"name": "Claimed",
|
|
923
|
+
"type": "event"
|
|
924
|
+
},
|
|
925
|
+
{
|
|
926
|
+
"anonymous": false,
|
|
927
|
+
"inputs": [
|
|
928
|
+
{
|
|
929
|
+
"indexed": false,
|
|
930
|
+
"internalType": "uint40",
|
|
931
|
+
"name": "timestamp",
|
|
932
|
+
"type": "uint40"
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"indexed": false,
|
|
936
|
+
"internalType": "address",
|
|
937
|
+
"name": "caller",
|
|
938
|
+
"type": "address"
|
|
939
|
+
}
|
|
940
|
+
],
|
|
941
|
+
"name": "DeprecationTimeUpdated",
|
|
942
|
+
"type": "event"
|
|
943
|
+
},
|
|
944
|
+
{
|
|
945
|
+
"anonymous": false,
|
|
946
|
+
"inputs": [
|
|
947
|
+
{
|
|
948
|
+
"indexed": false,
|
|
949
|
+
"internalType": "address[]",
|
|
950
|
+
"name": "tokens",
|
|
951
|
+
"type": "address[]"
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"indexed": false,
|
|
955
|
+
"internalType": "address",
|
|
956
|
+
"name": "caller",
|
|
957
|
+
"type": "address"
|
|
958
|
+
}
|
|
959
|
+
],
|
|
960
|
+
"name": "EmergencyHatchOpened",
|
|
961
|
+
"type": "event"
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
"anonymous": false,
|
|
965
|
+
"inputs": [
|
|
966
|
+
{
|
|
967
|
+
"indexed": false,
|
|
968
|
+
"internalType": "uint64",
|
|
969
|
+
"name": "version",
|
|
970
|
+
"type": "uint64"
|
|
971
|
+
}
|
|
972
|
+
],
|
|
973
|
+
"name": "Initialized",
|
|
974
|
+
"type": "event"
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
"anonymous": false,
|
|
978
|
+
"inputs": [
|
|
979
|
+
{
|
|
980
|
+
"indexed": true,
|
|
981
|
+
"internalType": "address",
|
|
982
|
+
"name": "beneficiary",
|
|
983
|
+
"type": "address"
|
|
984
|
+
},
|
|
985
|
+
{
|
|
986
|
+
"indexed": true,
|
|
987
|
+
"internalType": "address",
|
|
988
|
+
"name": "token",
|
|
989
|
+
"type": "address"
|
|
990
|
+
},
|
|
991
|
+
{
|
|
992
|
+
"indexed": false,
|
|
993
|
+
"internalType": "bytes32",
|
|
994
|
+
"name": "hashed",
|
|
995
|
+
"type": "bytes32"
|
|
996
|
+
},
|
|
997
|
+
{
|
|
998
|
+
"indexed": false,
|
|
999
|
+
"internalType": "uint256",
|
|
1000
|
+
"name": "index",
|
|
1001
|
+
"type": "uint256"
|
|
1002
|
+
},
|
|
1003
|
+
{
|
|
1004
|
+
"indexed": false,
|
|
1005
|
+
"internalType": "bytes32",
|
|
1006
|
+
"name": "root",
|
|
1007
|
+
"type": "bytes32"
|
|
1008
|
+
},
|
|
1009
|
+
{
|
|
1010
|
+
"indexed": false,
|
|
1011
|
+
"internalType": "uint256",
|
|
1012
|
+
"name": "projectTokenCount",
|
|
1013
|
+
"type": "uint256"
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
"indexed": false,
|
|
1017
|
+
"internalType": "uint256",
|
|
1018
|
+
"name": "terminalTokenAmount",
|
|
1019
|
+
"type": "uint256"
|
|
1020
|
+
},
|
|
1021
|
+
{
|
|
1022
|
+
"indexed": false,
|
|
1023
|
+
"internalType": "address",
|
|
1024
|
+
"name": "caller",
|
|
1025
|
+
"type": "address"
|
|
1026
|
+
}
|
|
1027
|
+
],
|
|
1028
|
+
"name": "InsertToOutboxTree",
|
|
1029
|
+
"type": "event"
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
"anonymous": false,
|
|
1033
|
+
"inputs": [
|
|
1034
|
+
{
|
|
1035
|
+
"indexed": true,
|
|
1036
|
+
"internalType": "address",
|
|
1037
|
+
"name": "token",
|
|
1038
|
+
"type": "address"
|
|
1039
|
+
},
|
|
1040
|
+
{
|
|
1041
|
+
"indexed": false,
|
|
1042
|
+
"internalType": "uint64",
|
|
1043
|
+
"name": "nonce",
|
|
1044
|
+
"type": "uint64"
|
|
1045
|
+
},
|
|
1046
|
+
{
|
|
1047
|
+
"indexed": false,
|
|
1048
|
+
"internalType": "bytes32",
|
|
1049
|
+
"name": "root",
|
|
1050
|
+
"type": "bytes32"
|
|
1051
|
+
},
|
|
1052
|
+
{
|
|
1053
|
+
"indexed": false,
|
|
1054
|
+
"internalType": "address",
|
|
1055
|
+
"name": "caller",
|
|
1056
|
+
"type": "address"
|
|
1057
|
+
}
|
|
1058
|
+
],
|
|
1059
|
+
"name": "NewInboxTreeRoot",
|
|
1060
|
+
"type": "event"
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"anonymous": false,
|
|
1064
|
+
"inputs": [
|
|
1065
|
+
{
|
|
1066
|
+
"indexed": true,
|
|
1067
|
+
"internalType": "bytes32",
|
|
1068
|
+
"name": "root",
|
|
1069
|
+
"type": "bytes32"
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
"indexed": true,
|
|
1073
|
+
"internalType": "address",
|
|
1074
|
+
"name": "token",
|
|
1075
|
+
"type": "address"
|
|
1076
|
+
},
|
|
1077
|
+
{
|
|
1078
|
+
"indexed": false,
|
|
1079
|
+
"internalType": "uint256",
|
|
1080
|
+
"name": "index",
|
|
1081
|
+
"type": "uint256"
|
|
1082
|
+
},
|
|
1083
|
+
{
|
|
1084
|
+
"indexed": false,
|
|
1085
|
+
"internalType": "uint64",
|
|
1086
|
+
"name": "nonce",
|
|
1087
|
+
"type": "uint64"
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
"indexed": false,
|
|
1091
|
+
"internalType": "address",
|
|
1092
|
+
"name": "caller",
|
|
1093
|
+
"type": "address"
|
|
1094
|
+
}
|
|
1095
|
+
],
|
|
1096
|
+
"name": "RootToRemote",
|
|
1097
|
+
"type": "event"
|
|
1098
|
+
},
|
|
1099
|
+
{
|
|
1100
|
+
"inputs": [],
|
|
1101
|
+
"name": "InvalidInitialization",
|
|
1102
|
+
"type": "error"
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
"inputs": [],
|
|
1106
|
+
"name": "JBCCIPSucker_FailedToRefundFee",
|
|
1107
|
+
"type": "error"
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
"inputs": [
|
|
1111
|
+
{
|
|
1112
|
+
"internalType": "address",
|
|
1113
|
+
"name": "router",
|
|
1114
|
+
"type": "address"
|
|
1115
|
+
}
|
|
1116
|
+
],
|
|
1117
|
+
"name": "JBCCIPSucker_InvalidRouter",
|
|
1118
|
+
"type": "error"
|
|
1119
|
+
},
|
|
1120
|
+
{
|
|
1121
|
+
"inputs": [
|
|
1122
|
+
{
|
|
1123
|
+
"internalType": "address",
|
|
1124
|
+
"name": "account",
|
|
1125
|
+
"type": "address"
|
|
1126
|
+
},
|
|
1127
|
+
{
|
|
1128
|
+
"internalType": "address",
|
|
1129
|
+
"name": "sender",
|
|
1130
|
+
"type": "address"
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
"internalType": "uint256",
|
|
1134
|
+
"name": "projectId",
|
|
1135
|
+
"type": "uint256"
|
|
1136
|
+
},
|
|
1137
|
+
{
|
|
1138
|
+
"internalType": "uint256",
|
|
1139
|
+
"name": "permissionId",
|
|
1140
|
+
"type": "uint256"
|
|
1141
|
+
}
|
|
1142
|
+
],
|
|
1143
|
+
"name": "JBPermissioned_Unauthorized",
|
|
1144
|
+
"type": "error"
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
"inputs": [
|
|
1148
|
+
{
|
|
1149
|
+
"internalType": "uint256",
|
|
1150
|
+
"name": "minGas",
|
|
1151
|
+
"type": "uint256"
|
|
1152
|
+
},
|
|
1153
|
+
{
|
|
1154
|
+
"internalType": "uint256",
|
|
1155
|
+
"name": "minGasLimit",
|
|
1156
|
+
"type": "uint256"
|
|
1157
|
+
}
|
|
1158
|
+
],
|
|
1159
|
+
"name": "JBSucker_BelowMinGas",
|
|
1160
|
+
"type": "error"
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
"inputs": [],
|
|
1164
|
+
"name": "JBSucker_Deprecated",
|
|
1165
|
+
"type": "error"
|
|
1166
|
+
},
|
|
1167
|
+
{
|
|
1168
|
+
"inputs": [
|
|
1169
|
+
{
|
|
1170
|
+
"internalType": "uint256",
|
|
1171
|
+
"name": "givenTime",
|
|
1172
|
+
"type": "uint256"
|
|
1173
|
+
},
|
|
1174
|
+
{
|
|
1175
|
+
"internalType": "uint256",
|
|
1176
|
+
"name": "minimumTime",
|
|
1177
|
+
"type": "uint256"
|
|
1178
|
+
}
|
|
1179
|
+
],
|
|
1180
|
+
"name": "JBSucker_DeprecationTimestampTooSoon",
|
|
1181
|
+
"type": "error"
|
|
1182
|
+
},
|
|
1183
|
+
{
|
|
1184
|
+
"inputs": [],
|
|
1185
|
+
"name": "JBSucker_ExpectedMsgValue",
|
|
1186
|
+
"type": "error"
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
"inputs": [
|
|
1190
|
+
{
|
|
1191
|
+
"internalType": "uint256",
|
|
1192
|
+
"name": "amount",
|
|
1193
|
+
"type": "uint256"
|
|
1194
|
+
},
|
|
1195
|
+
{
|
|
1196
|
+
"internalType": "uint256",
|
|
1197
|
+
"name": "balance",
|
|
1198
|
+
"type": "uint256"
|
|
1199
|
+
}
|
|
1200
|
+
],
|
|
1201
|
+
"name": "JBSucker_InsufficientBalance",
|
|
1202
|
+
"type": "error"
|
|
1203
|
+
},
|
|
1204
|
+
{
|
|
1205
|
+
"inputs": [
|
|
1206
|
+
{
|
|
1207
|
+
"internalType": "uint256",
|
|
1208
|
+
"name": "received",
|
|
1209
|
+
"type": "uint256"
|
|
1210
|
+
},
|
|
1211
|
+
{
|
|
1212
|
+
"internalType": "uint256",
|
|
1213
|
+
"name": "expected",
|
|
1214
|
+
"type": "uint256"
|
|
1215
|
+
}
|
|
1216
|
+
],
|
|
1217
|
+
"name": "JBSucker_InsufficientMsgValue",
|
|
1218
|
+
"type": "error"
|
|
1219
|
+
},
|
|
1220
|
+
{
|
|
1221
|
+
"inputs": [
|
|
1222
|
+
{
|
|
1223
|
+
"internalType": "address",
|
|
1224
|
+
"name": "remoteToken",
|
|
1225
|
+
"type": "address"
|
|
1226
|
+
}
|
|
1227
|
+
],
|
|
1228
|
+
"name": "JBSucker_InvalidNativeRemoteAddress",
|
|
1229
|
+
"type": "error"
|
|
1230
|
+
},
|
|
1231
|
+
{
|
|
1232
|
+
"inputs": [
|
|
1233
|
+
{
|
|
1234
|
+
"internalType": "bytes32",
|
|
1235
|
+
"name": "root",
|
|
1236
|
+
"type": "bytes32"
|
|
1237
|
+
},
|
|
1238
|
+
{
|
|
1239
|
+
"internalType": "bytes32",
|
|
1240
|
+
"name": "inboxRoot",
|
|
1241
|
+
"type": "bytes32"
|
|
1242
|
+
}
|
|
1243
|
+
],
|
|
1244
|
+
"name": "JBSucker_InvalidProof",
|
|
1245
|
+
"type": "error"
|
|
1246
|
+
},
|
|
1247
|
+
{
|
|
1248
|
+
"inputs": [
|
|
1249
|
+
{
|
|
1250
|
+
"internalType": "address",
|
|
1251
|
+
"name": "token",
|
|
1252
|
+
"type": "address"
|
|
1253
|
+
},
|
|
1254
|
+
{
|
|
1255
|
+
"internalType": "uint256",
|
|
1256
|
+
"name": "index",
|
|
1257
|
+
"type": "uint256"
|
|
1258
|
+
}
|
|
1259
|
+
],
|
|
1260
|
+
"name": "JBSucker_LeafAlreadyExecuted",
|
|
1261
|
+
"type": "error"
|
|
1262
|
+
},
|
|
1263
|
+
{
|
|
1264
|
+
"inputs": [
|
|
1265
|
+
{
|
|
1266
|
+
"internalType": "enum JBAddToBalanceMode",
|
|
1267
|
+
"name": "mode",
|
|
1268
|
+
"type": "uint8"
|
|
1269
|
+
}
|
|
1270
|
+
],
|
|
1271
|
+
"name": "JBSucker_ManualNotAllowed",
|
|
1272
|
+
"type": "error"
|
|
1273
|
+
},
|
|
1274
|
+
{
|
|
1275
|
+
"inputs": [
|
|
1276
|
+
{
|
|
1277
|
+
"internalType": "uint256",
|
|
1278
|
+
"name": "projectId",
|
|
1279
|
+
"type": "uint256"
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
"internalType": "address",
|
|
1283
|
+
"name": "token",
|
|
1284
|
+
"type": "address"
|
|
1285
|
+
}
|
|
1286
|
+
],
|
|
1287
|
+
"name": "JBSucker_NoTerminalForToken",
|
|
1288
|
+
"type": "error"
|
|
1289
|
+
},
|
|
1290
|
+
{
|
|
1291
|
+
"inputs": [
|
|
1292
|
+
{
|
|
1293
|
+
"internalType": "address",
|
|
1294
|
+
"name": "caller",
|
|
1295
|
+
"type": "address"
|
|
1296
|
+
}
|
|
1297
|
+
],
|
|
1298
|
+
"name": "JBSucker_NotPeer",
|
|
1299
|
+
"type": "error"
|
|
1300
|
+
},
|
|
1301
|
+
{
|
|
1302
|
+
"inputs": [
|
|
1303
|
+
{
|
|
1304
|
+
"internalType": "uint256",
|
|
1305
|
+
"name": "amount",
|
|
1306
|
+
"type": "uint256"
|
|
1307
|
+
},
|
|
1308
|
+
{
|
|
1309
|
+
"internalType": "uint256",
|
|
1310
|
+
"name": "minimumAmount",
|
|
1311
|
+
"type": "uint256"
|
|
1312
|
+
}
|
|
1313
|
+
],
|
|
1314
|
+
"name": "JBSucker_QueueInsufficientSize",
|
|
1315
|
+
"type": "error"
|
|
1316
|
+
},
|
|
1317
|
+
{
|
|
1318
|
+
"inputs": [
|
|
1319
|
+
{
|
|
1320
|
+
"internalType": "address",
|
|
1321
|
+
"name": "localToken",
|
|
1322
|
+
"type": "address"
|
|
1323
|
+
},
|
|
1324
|
+
{
|
|
1325
|
+
"internalType": "address",
|
|
1326
|
+
"name": "mappedTo",
|
|
1327
|
+
"type": "address"
|
|
1328
|
+
}
|
|
1329
|
+
],
|
|
1330
|
+
"name": "JBSucker_TokenAlreadyMapped",
|
|
1331
|
+
"type": "error"
|
|
1332
|
+
},
|
|
1333
|
+
{
|
|
1334
|
+
"inputs": [
|
|
1335
|
+
{
|
|
1336
|
+
"internalType": "address",
|
|
1337
|
+
"name": "token",
|
|
1338
|
+
"type": "address"
|
|
1339
|
+
}
|
|
1340
|
+
],
|
|
1341
|
+
"name": "JBSucker_TokenHasInvalidEmergencyHatchState",
|
|
1342
|
+
"type": "error"
|
|
1343
|
+
},
|
|
1344
|
+
{
|
|
1345
|
+
"inputs": [
|
|
1346
|
+
{
|
|
1347
|
+
"internalType": "address",
|
|
1348
|
+
"name": "token",
|
|
1349
|
+
"type": "address"
|
|
1350
|
+
}
|
|
1351
|
+
],
|
|
1352
|
+
"name": "JBSucker_TokenNotMapped",
|
|
1353
|
+
"type": "error"
|
|
1354
|
+
},
|
|
1355
|
+
{
|
|
1356
|
+
"inputs": [
|
|
1357
|
+
{
|
|
1358
|
+
"internalType": "uint256",
|
|
1359
|
+
"name": "value",
|
|
1360
|
+
"type": "uint256"
|
|
1361
|
+
}
|
|
1362
|
+
],
|
|
1363
|
+
"name": "JBSucker_UnexpectedMsgValue",
|
|
1364
|
+
"type": "error"
|
|
1365
|
+
},
|
|
1366
|
+
{
|
|
1367
|
+
"inputs": [],
|
|
1368
|
+
"name": "JBSucker_ZeroBeneficiary",
|
|
1369
|
+
"type": "error"
|
|
1370
|
+
},
|
|
1371
|
+
{
|
|
1372
|
+
"inputs": [],
|
|
1373
|
+
"name": "JBSucker_ZeroERC20Token",
|
|
1374
|
+
"type": "error"
|
|
1375
|
+
},
|
|
1376
|
+
{
|
|
1377
|
+
"inputs": [],
|
|
1378
|
+
"name": "MerkleLib__insert_treeIsFull",
|
|
1379
|
+
"type": "error"
|
|
1380
|
+
},
|
|
1381
|
+
{
|
|
1382
|
+
"inputs": [],
|
|
1383
|
+
"name": "NotInitializing",
|
|
1384
|
+
"type": "error"
|
|
1385
|
+
},
|
|
1386
|
+
{
|
|
1387
|
+
"inputs": [
|
|
1388
|
+
{
|
|
1389
|
+
"internalType": "address",
|
|
1390
|
+
"name": "token",
|
|
1391
|
+
"type": "address"
|
|
1392
|
+
}
|
|
1393
|
+
],
|
|
1394
|
+
"name": "SafeERC20FailedOperation",
|
|
1395
|
+
"type": "error"
|
|
1396
|
+
}
|
|
1397
|
+
],
|
|
1398
|
+
"args": [],
|
|
1399
|
+
"solcInputHash": "14ce4938174f25cdd1fbe9b98155e159",
|
|
1400
|
+
"receipt": {
|
|
1401
|
+
"type": "0x2",
|
|
1402
|
+
"status": "0x1",
|
|
1403
|
+
"cumulativeGasUsed": "0xa78a0a",
|
|
1404
|
+
"logs": [
|
|
1405
|
+
{
|
|
1406
|
+
"address": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
|
|
1407
|
+
"topics": [
|
|
1408
|
+
"0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d",
|
|
1409
|
+
"0x000000000000000000000000755ff2f75a0a586ecfa2b9a3c959cb662458a105",
|
|
1410
|
+
"0x000000000000000000000000691d6d2e1f0fb22b67e7471310ddcb3a881cc968",
|
|
1411
|
+
"0x02648ce27ccd843ee65786a342af5f88b67e14530e8d69e0f006f08515d9c150"
|
|
1412
|
+
],
|
|
1413
|
+
"data": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
1414
|
+
"blockHash": "0x7c973733d9f0227e310eb7fc615d4d5e70b0b8601456885f16a105abae3c2993",
|
|
1415
|
+
"blockNumber": "0x1640e36",
|
|
1416
|
+
"blockTimestamp": "0x68c1c33b",
|
|
1417
|
+
"transactionHash": "0x9495896e20f6e49d58e112dc137c4bcbcb2a3eb3f346b3f452319974f16d0637",
|
|
1418
|
+
"transactionIndex": "0x26",
|
|
1419
|
+
"logIndex": "0x79",
|
|
1420
|
+
"removed": false
|
|
1421
|
+
},
|
|
1422
|
+
{
|
|
1423
|
+
"address": "0x79536ab41d2088f0c6ec6b169c6af62bf99a319d",
|
|
1424
|
+
"topics": [
|
|
1425
|
+
"0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"
|
|
1426
|
+
],
|
|
1427
|
+
"data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff",
|
|
1428
|
+
"blockHash": "0x7c973733d9f0227e310eb7fc615d4d5e70b0b8601456885f16a105abae3c2993",
|
|
1429
|
+
"blockNumber": "0x1640e36",
|
|
1430
|
+
"blockTimestamp": "0x68c1c33b",
|
|
1431
|
+
"transactionHash": "0x9495896e20f6e49d58e112dc137c4bcbcb2a3eb3f346b3f452319974f16d0637",
|
|
1432
|
+
"transactionIndex": "0x26",
|
|
1433
|
+
"logIndex": "0x7a",
|
|
1434
|
+
"removed": false
|
|
1435
|
+
},
|
|
1436
|
+
{
|
|
1437
|
+
"address": "0x80a8f7a4bd75b539ce26937016df607fdc9abeb5",
|
|
1438
|
+
"topics": [
|
|
1439
|
+
"0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8",
|
|
1440
|
+
"0x000000000000000000000000691d6d2e1f0fb22b67e7471310ddcb3a881cc968"
|
|
1441
|
+
],
|
|
1442
|
+
"data": "0x",
|
|
1443
|
+
"blockHash": "0x7c973733d9f0227e310eb7fc615d4d5e70b0b8601456885f16a105abae3c2993",
|
|
1444
|
+
"blockNumber": "0x1640e36",
|
|
1445
|
+
"blockTimestamp": "0x68c1c33b",
|
|
1446
|
+
"transactionHash": "0x9495896e20f6e49d58e112dc137c4bcbcb2a3eb3f346b3f452319974f16d0637",
|
|
1447
|
+
"transactionIndex": "0x26",
|
|
1448
|
+
"logIndex": "0x7b",
|
|
1449
|
+
"removed": false
|
|
1450
|
+
},
|
|
1451
|
+
{
|
|
1452
|
+
"address": "0x691d6d2e1f0fb22b67e7471310ddcb3a881cc968",
|
|
1453
|
+
"topics": [
|
|
1454
|
+
"0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07",
|
|
1455
|
+
"0xea14d6a9e0023ebdee52ff89f225fbcdab73dd659d2b605adb5e65271611064f"
|
|
1456
|
+
],
|
|
1457
|
+
"data": "0x0000000000000000000000000000000000000000000000000000000000000013",
|
|
1458
|
+
"blockHash": "0x7c973733d9f0227e310eb7fc615d4d5e70b0b8601456885f16a105abae3c2993",
|
|
1459
|
+
"blockNumber": "0x1640e36",
|
|
1460
|
+
"blockTimestamp": "0x68c1c33b",
|
|
1461
|
+
"transactionHash": "0x9495896e20f6e49d58e112dc137c4bcbcb2a3eb3f346b3f452319974f16d0637",
|
|
1462
|
+
"transactionIndex": "0x26",
|
|
1463
|
+
"logIndex": "0x7c",
|
|
1464
|
+
"removed": false
|
|
1465
|
+
}
|
|
1466
|
+
],
|
|
1467
|
+
"logsBloom": "0x00000000000010800000000000080000000800000000000000000000004400000000008000000000000000008040020000000000004000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000904000000100000020000100080000020000000000000004000040000000000000000000000002200000000000000000000000044000000000002004000000000000000000000000000000004040000000000000000020000000000000000000100200000000200000000000080000000000000000000",
|
|
1468
|
+
"transactionHash": "0x9495896e20f6e49d58e112dc137c4bcbcb2a3eb3f346b3f452319974f16d0637",
|
|
1469
|
+
"transactionIndex": "0x26",
|
|
1470
|
+
"blockHash": "0x7c973733d9f0227e310eb7fc615d4d5e70b0b8601456885f16a105abae3c2993",
|
|
1471
|
+
"blockNumber": "0x1640e36",
|
|
1472
|
+
"gasUsed": "0x55e884",
|
|
1473
|
+
"effectiveGasPrice": "0x47897a00",
|
|
1474
|
+
"from": "0x755ff2f75a0a586ecfa2b9a3c959cb662458a105",
|
|
1475
|
+
"to": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
|
|
1476
|
+
"contractAddress": null
|
|
1477
|
+
},
|
|
1478
|
+
"bytecode": "0x6101806040523480156200001257600080fd5b50604051620063b1380380620063b1833981016040819052620000359162000300565b6001600160a01b0380821660805280841660a05280861660e05284166101005284838584848160018111156200006f576200006f62000397565b60c081600181111562000086576200008662000397565b9052506200009362000236565b5050505050856001600160a01b03166363a49dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000fd9190620003ad565b6101408181525050856001600160a01b031663d86161876040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000144573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016a9190620003c7565b6001600160401b0316610160816001600160401b031681525050856001600160a01b0316630de229846040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e99190620003f9565b6001600160a01b03166101208190526200022a5761012051604051636e1f4ccd60e01b81526001600160a01b03909116600482015260240160405180910390fd5b50505050505062000419565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620002875760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620002e75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6001600160a01b0381168114620002e757600080fd5b60008060008060008060c087890312156200031a57600080fd5b86516200032781620002ea565b60208801519096506200033a81620002ea565b60408801519095506200034d81620002ea565b60608801519094506200036081620002ea565b6080880151909350600281106200037657600080fd5b60a08801519092506200038981620002ea565b809150509295509295509295565b634e487b7160e01b600052602160045260246000fd5b600060208284031215620003c057600080fd5b5051919050565b600060208284031215620003da57600080fd5b81516001600160401b0381168114620003f257600080fd5b9392505050565b6000602082840312156200040c57600080fd5b8151620003f281620002ea565b60805160a05160c05160e05161010051610120516101405161016051615e8a62000527600039600081816102a60152818161152c01528181614dba0152614eca01526000818161053a015261088c01526000818161075e015281816109360152818161148c01528181614ae101528181614c3b01528181614d8d0152614e9b01526000818161033c0152610bc70152600081816106f601528181610e3c0152818161126101528181611fd6015281816121d2015281816126690152612b7b01526000818161084e0152818161100d01528181611044015281816117f90152611f4e0152600081816108e20152612a1501526000818161040c0152818161056b01526147880152615e8a6000f3fe6080604052600436106102535760003560e01c80637de6fba211610138578063bf557aee116100b0578063cdfceeba1161007f578063f434c91411610064578063f434c914146108d0578063fe4b84df14610904578063fe5f42ca1461092457600080fd5b8063cdfceeba1461087d578063d5f39488146108b057600080fd5b8063bf557aee146107b5578063c1854129146107fa578063c19d93fb1461081a578063c6525f2c1461083c57600080fd5b806392ee1ea711610107578063b0f479a1116100ec578063b0f479a11461074f578063b59ef50f14610782578063b71c1179146107a257600080fd5b806392ee1ea7146107185780639e6d7d431461072f57600080fd5b80637de6fba21461058f578063802c8fa01461069757806385572ffb146106c457806388bc2ef3146106e457600080fd5b8063551ebbf0116101cb57806369d31fdd1161019a578063754515591161017f57806375451559146105085780637d1d0c5b146105285780637da0a8771461055c57600080fd5b806369d31fdd1461047c5780636d9e384b1461048f57600080fd5b8063551ebbf0146103cf578063572b6c05146103ef5780636284386a1461043c57806369ce22331461045c57600080fd5b80631d831d5c1161022257806338eb20441161020757806338eb2044146103715780633a5de07d146103845780633fafa127146103b057600080fd5b80631d831d5c1461032a5780632241dc521461035e57600080fd5b806301ffc9a71461025f57806305696511146102945780630f648214146102e157806311cda4151461030357600080fd5b3661025a57005b600080fd5b34801561026b57600080fd5b5061027f61027a36600461541f565b610958565b60405190151581526020015b60405180910390f35b3480156102a057600080fd5b506102c87f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161028b565b3480156102ed57600080fd5b506103016102fc366004615461565b6109b4565b005b34801561030f57600080fd5b50305b6040516001600160a01b03909116815260200161028b565b34801561033657600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b61030161036c36600461547a565b610a6b565b61030161037f366004615501565b610b79565b34801561039057600080fd5b5061039b62030d4081565b60405163ffffffff909116815260200161028b565b3480156103bc57600080fd5b506002545b60405190815260200161028b565b3480156103db57600080fd5b506103016103ea366004615532565b610b83565b3480156103fb57600080fd5b5061027f61040a36600461557c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b34801561044857600080fd5b50610301610457366004615599565b610db6565b34801561046857600080fd5b5061030161047736600461557c565b611009565b61030161048a366004615501565b6110a8565b34801561049b57600080fd5b506104fb6104aa36600461557c565b6040805180820190915260008082526020820152506001600160a01b03166000908152600460209081526040918290208251808401909352805467ffffffffffffffff168352600101549082015290565b60405161028b91906155c0565b34801561051457600080fd5b506103016105233660046155e1565b61124f565b34801561053457600080fd5b506103c17f000000000000000000000000000000000000000000000000000000000000000081565b34801561056857600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610312565b34801561059b57600080fd5b506106426105aa36600461557c565b6040805160a0808201835260008083526020808401829052838501829052606080850183905260809485018390526001600160a01b039687168352600682529185902085519384018652805460ff8082161515865261010082041615159285019290925262010000820463ffffffff169584019590955266010000000000009004909416938101939093526001909101549082015290565b60405161028b9190600060a08201905082511515825260208301511515602083015263ffffffff60408401511660408301526001600160a01b0360608401511660608301526080830151608083015292915050565b3480156106a357600080fd5b506106b76106b236600461557c565b6113ea565b60405161028b9190615644565b3480156106d057600080fd5b506103016106df3660046156ab565b61148a565b3480156106f057600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b34801561072457600080fd5b5061039b620493e081565b34801561073b57600080fd5b506103c161074a36600461557c565b611740565b34801561075b57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610312565b34801561078e57600080fd5b5061030161079d366004615461565b611770565b6103016107b036600461557c565b611896565b3480156107c157600080fd5b5061027f6107d036600461557c565b6001600160a01b039081166000908152600660205260409020546601000000000000900416151590565b34801561080657600080fd5b506103016108153660046156e6565b6119d9565b34801561082657600080fd5b5061082f611a12565b60405161028b9190615760565b34801561084857600080fd5b506108707f000000000000000000000000000000000000000000000000000000000000000081565b60405161028b919061577a565b34801561088957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c1565b3480156108bc57600080fd5b50600054610312906001600160a01b031681565b3480156108dc57600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b34801561091057600080fd5b5061030161091f36600461578e565b611a5b565b34801561093057600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f85572ffb0000000000000000000000000000000000000000000000000000000014806109ae57506109ae82611bea565b92915050565b6109ec60608201356109c9602084018461557c565b60808401356109de606086016040870161557c565b602086013560a08701611d19565b608081013560056000610a02602085018561557c565b6001600160a01b03166001600160a01b031681526020019081526020016000206001016000828254610a3491906157bd565b90915550610a689050610a4a602083018361557c565b608083013560608401803590610a63906040870161557c565b611f4a565b50565b6000805b82811015610b2657600060056000868685818110610a8f57610a8f6157d0565b610aa5926020608090920201908101915061557c565b6001600160a01b03168152602081019190915260400160009081209150858584818110610ad457610ad46157d0565b9050608002016040016020810190610aec919061557c565b6001600160a01b0316148015610b0a57506022810154602382015414155b15610b1d5782610b19816157e6565b9350505b50600101610a6f565b5060005b82811015610b7357610b6b848483818110610b4757610b476157d0565b90506080020160008411610b5c5760006120f3565b610b668434615800565b6120f3565b600101610b2a565b50505050565b610a6881346120f3565b6001600160a01b038316610bc3576040517f8d3329cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ea78803f610bfd60025490565b6040518263ffffffff1660e01b8152600401610c1b91815260200190565b602060405180830381865afa158015610c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5c9190615822565b90506001600160a01b038116610c9e576040517fcaa06d2000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821660009081526006602052604090205460ff16610d00576040517f04fdbe060000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b6000610d0a611a12565b90506003816003811115610d2057610d2061574a565b1480610d3d57506002816003811115610d3b57610d3b61574a565b145b15610d74576040517fb10f8cca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d91610d7f61258d565b6001600160a01b03841690308961259c565b6000610d9f83888688612618565b9050610dad87858389612806565b50505050505050565b6000610dc0611a12565b90506003816003811115610dd657610dd661574a565b1480610df357506002816003811115610df157610df161574a565b145b15610e2a576040517fb10f8cca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610e3560025490565b9050610f327f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615822565b6001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401610ee991815260200190565b602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190615822565b82601e612990565b6000610f41621275004261583f565b905064ffffffffff841615801590610f5f5750808464ffffffffff16105b15610fa6576040517f044691ac00000000000000000000000000000000000000000000000000000000815264ffffffffff8516600482015260248101829052604401610cf7565b64ffffffffff84166001557f455efa76af2a8686dc0dd3041bda89ece5ba4691277d525e2161003bbca8b24584610fdb61258d565b6040805164ffffffffff90931683526001600160a01b0390911660208301520160405180910390a150505050565b60007f0000000000000000000000000000000000000000000000000000000000000000600181111561103d5761103d61574a565b14611096577f00000000000000000000000000000000000000000000000000000000000000006040517fb039c395000000000000000000000000000000000000000000000000000000008152600401610cf7919061577a565b610a68816110a383611740565b612ada565b6110c16110b361258d565b6001600160a01b0316301490565b61110b576110cd61258d565b6040517f36183c8f0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152602401610cf7565b600060048161111d602085018561557c565b6001600160a01b0316815260208101919091526040908101600020805490925067ffffffffffffffff1690611158906060850190850161586f565b67ffffffffffffffff1611801561118857506003611174611a12565b60038111156111855761118561574a565b14155b1561124b5761119d606083016040840161586f565b815467ffffffffffffffff191667ffffffffffffffff91909116178155606082013560018201556111d1602083018361557c565b6001600160a01b03167fc69d3412489554fb7820c4c2784cb644b6c79bfc117444b93977d3d33a9b8eac61120b606085016040860161586f565b606085013561121861258d565b6040805167ffffffffffffffff909416845260208401929092526001600160a01b03169082015260600160405180910390a25b5050565b600061125a60025490565b90506112bd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e98573d6000803e3d6000fd5b60005b828110156113a2576000600660008686858181106112e0576112e06157d0565b90506020020160208101906112f5919061557c565b6001600160a01b031681526020810191909152604001600090812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001692151592909217909155600190600690868685818110611356576113566157d0565b905060200201602081019061136b919061557c565b6001600160a01b03168152602081019190915260400160002080549115156101000261ff00199092169190911790556001016112c0565b507f8021bce60b20a9afb57085869a3552e0ee5b272b868df894fb30c5e90e74c07283836113ce61258d565b6040516113dd9392919061588a565b60405180910390a1505050565b6113f261536e565b6001600160a01b0382166000908152600560209081526040918290208251608081018452815467ffffffffffffffff1681526001820154818401528351610440810180865291949293858401939192600286019284929083019184919082845b815481526020019060010190808311611452575050509183525050602091820154908201529082526023929092015491015292915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114bc61258d565b6001600160a01b0316146114d2576110cd61258d565b60006114e160608301836158ea565b8101906114ee919061596f565b905060006114ff60408401846158ea565b81019061150c919061557c565b90506001600160a01b03811630141580611569575067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661155c604085016020860161586f565b67ffffffffffffffff1614155b156115ab576040517f36183c8f0000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610cf7565b6115b86080840184615a0e565b90506001036116d65760006115d06080850185615a0e565b60008181106115e1576115e16157d0565b9050604002018036038101906115f79190615a58565b905061eeee6001600160a01b031683600001516001600160a01b0316036116d4578051600061162861eeee30612ed3565b60208401516040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081529192506001600160a01b03841691632e1a7d4d916116779160040190815260200190565b600060405180830381600087803b15801561169157600080fd5b505af11580156116a5573d6000803e3d6000fd5b505050506116b561eeee30612ed3565b60208401516116c4908361583f565b146116d1576116d1615a92565b50505b505b6040517f69d31fdd00000000000000000000000000000000000000000000000000000000815230906369d31fdd90611712908590600401615aa8565b600060405180830381600087803b15801561172c57600080fd5b505af1158015610dad573d6000803e3d6000fd5b6001600160a01b0381166000908152600560205260408120600101546117668330612ed3565b6109ae91906157bd565b6117a86060820135611785602084018461557c565b608084013561179a606086016040870161557c565b602086013560a08701612f83565b7faaca6f6829d340365b5e6599e0d513cbb4602b94f58ccf16ac77d8d3ae7139ef6117d9606083016040840161557c565b6117e6602084018461557c565b60608401356080850135602086013560017f000000000000000000000000000000000000000000000000000000000000000060018111156118295761182961574a565b14611835576000611838565b60015b61184061258d565b604080516001600160a01b039889168152968816602088015286019490945260608501929092526080840152151560a083015290911660c082015260e00160405180910390a1610a68610a4a602083018361557c565b6001600160a01b03808216600090815260066020908152604091829020825160a081018452815460ff808216151583526101008204161580159483019490945263ffffffff620100008204169482019490945266010000000000009093049093166060830152600190920154608082015290611949576040517f4bba81f00000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610cf7565b60808101516001600160a01b03831660009081526005602052604090206001015410156119ce576001600160a01b0382166000908152600560205260409081902060010154608083015191517fc3e11b79000000000000000000000000000000000000000000000000000000008152610cf79290600401918252602082015260400190565b61124b348383613059565b60005b81811015611a0d57611a058383838181106119f9576119f96157d0565b90506104a00201611770565b6001016119dc565b505050565b600154600090808203611a2757600091505090565b611a3462127500826157bd565b421015611a4357600191505090565b80421015611a5357600291505090565b600391505090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015611aa65750825b905060008267ffffffffffffffff166001148015611ac35750303b155b905081158015611ad1575080155b15611b08576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b525784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6002869055600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790558315611be25784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f18a5af27000000000000000000000000000000000000000000000000000000001480611c7d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f583ff5cc00000000000000000000000000000000000000000000000000000000145b80611cc957507fffffffff0000000000000000000000000000000000000000000000000000000082167ff434c91400000000000000000000000000000000000000000000000000000000145b806109ae57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146109ae565b6000611d23611a12565b90506003816003811115611d3957611d3961574a565b14158015611d5957506002816003811115611d5657611d5661574a565b14155b8015611d8357506001600160a01b038616600090815260066020526040902054610100900460ff16155b15611dc5576040517f4bba81f00000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610cf7565b6001600160a01b0386166000908152600560205260409020602381015415801590611e0057508360018260230154611dfd91906157bd565b10155b15611e49576040517fa4e6bcec0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101859052604401610cf7565b604080516001600160a01b03891660208201526000910160408051808303601f19018152918152815160209283012060601c60008181526003845282812060088a901c8252909352912054909150600160ff87161b1615611ee8576040517fa4e6bcec0000000000000000000000000000000000000000000000000000000081526001600160a01b038916600482015260248101869052604401610cf7565b6001600160a01b039081166000908152600360209081526040808320600889901c845282528083208054600160ff8b161b179055928a1682526005905220611f4090611f3690600201613279565b898888888861462f565b5050505050505050565b60017f00000000000000000000000000000000000000000000000000000000000000006001811115611f7e57611f7e61574a565b148015611f8a57508215155b15611f9957611f998484612ada565b6000611fa460025490565b6040517f5dd8f6aa000000000000000000000000000000000000000000000000000000008152600481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635dd8f6aa90602401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615822565b6040517fc7fb92de00000000000000000000000000000000000000000000000000000000815260048101839052602481018590526001600160a01b03848116604483015260a06064830152600060a483018190526084830152919091169063c7fb92de9060c4016020604051808303816000875af11580156120cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be29190615af4565b6000612102602084018461557c565b6001600160a01b03808216600090815260066020908152604091829020825160a081018452815460ff808216151583526101008204161580159483019490945263ffffffff62010000820416948201949094526601000000000000909304909316606083015260019092015460808201529192506121b7576040517f4bba81f00000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610cf7565b6121c0846146e1565b60006121cb60025490565b90506122c87f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa15801561222e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122529190615822565b6001600160a01b0316636352211e836040518263ffffffff1660e01b815260040161227f91815260200190565b602060405180830381865afa15801561229c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c09190615822565b82601c612990565b60608201516001600160a01b03161580159061230957506122ef606086016040870161557c565b6001600160a01b031682606001516001600160a01b031614155b801561232e57506000612322606087016040880161557c565b6001600160a01b031614155b801561235457506001600160a01b03831660009081526005602052604090206022015415155b156123a45760608201516040517f1460b5460000000000000000000000000000000000000000000000000000000081526001600160a01b0380861660048301529091166024820152604401610cf7565b60006123b6606087016040880161557c565b6001600160a01b03161480156123ed57506001600160a01b0383166000908152600560205260409020602281015460239091015414155b156123fd576123fd848484613059565b6040518060a0016040528060006001600160a01b0316876040016020810190612426919061557c565b6001600160a01b03161415151581526020016000151581526020018660200160208101906124549190615b0d565b63ffffffff16815260200160006124716060890160408a0161557c565b6001600160a01b0316146124945761248f606088016040890161557c565b61249a565b83606001515b6001600160a01b039081168252606097880135602092830152948516600090815260068252604090819020835181549385015192850151998501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000090941690151561ff0019161761010092151592909202919091177fffffffffffff000000000000000000000000000000000000000000000000ffff166201000063ffffffff909916989098027fffffffffffff0000000000000000000000000000000000000000ffffffffffff16979097176601000000000000919095160293909317855550506080015160019092019190915550565b6000612597614778565b905090565b6040516001600160a01b038481166024830152838116604483015260648201839052610b739186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506147ed565b60008061262460025490565b6040517f86202650000000000000000000000000000000000000000000000000000000008152600481018290526001600160a01b0386811660248301529192506000917f00000000000000000000000000000000000000000000000000000000000000001690638620265090604401602060405180830381865afa1580156126b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d49190615822565b90506001600160a01b038116612728576040517fb61c181f000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0386166024820152604401610cf7565b60006127348630612ed3565b604080516020810182526000815290517f13da83170000000000000000000000000000000000000000000000000000000081529192506001600160a01b038416916313da83179161279391309188918d918d918d918691600401615b79565b6020604051808303816000875af11580156127b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d69190615af4565b9350806127e38730612ed3565b6127ed91906157bd565b84146127fb576127fb615a92565b505050949350505050565b6040805160208082018790528183018590526001600160a01b03841660608084019190915283518084039091018152608090920190925280519101206000906001600160a01b03851660009081526005602090815260408083208151610440810180845295965090946128af9387936002880192849291830191849182845b81548152602001906001019080831161288557505050918352505060209182015491015290614877565b8051909150819060028401906128c8908290602061539a565b5060208201518160200155905050848260010160008282546128ea919061583f565b92505081905550856001600160a01b0316846001600160a01b03167f584a41ff082fad99bb6e50c5767c347c762057fe5726539f0a8de49d84549c23856001856020015161293891906157bd565b61294487600201613279565b8c8b61294e61258d565b60408051968752602087019590955293850192909252606084015260808301526001600160a01b031660a082015260c00160405180910390a350505050505050565b600061299a61258d565b9050836001600160a01b0316816001600160a01b031614158015612a8257506040517f348b684e0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015612a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a809190615bcc565b155b15610b73576040517f264deeaa0000000000000000000000000000000000000000000000000000000081526001600160a01b038086166004830152821660248201526044810184905260648101839052608401610cf7565b6000612ae583611740565b905080821115612b2b576040517f60ec3e710000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610cf7565b6000612b3660025490565b6040517f86202650000000000000000000000000000000000000000000000000000000008152600481018290526001600160a01b0386811660248301529192506000917f00000000000000000000000000000000000000000000000000000000000000001690638620265090604401602060405180830381865afa158015612bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be69190615822565b90506001600160a01b038116612c3a576040517fb61c181f000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0386166024820152604401610cf7565b6001600160a01b03851661eeee14612e23576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015612cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd09190615af4565b9050612cdd8683876149af565b6040517f9e6eec05000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0387811660248301526044820187905260006064830181905260c0608484015260c4830181905260e060a484015260e4830152831690639e6eec059061010401600060405180830381600087803b158015612d6b57600080fd5b505af1158015612d7f573d6000803e3d6000fd5b505050508481612d8f91906157bd565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa158015612dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e109190615af4565b14612e1d57612e1d615a92565b50612ecc565b6040517f9e6eec05000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0386811660248301526044820186905260006064830181905260c0608484015260c4830181905260e060a484015260e4830152821690639e6eec05908690610104016000604051808303818588803b158015612eb257600080fd5b505af1158015612ec6573d6000803e3d6000fd5b50505050505b5050505050565b600061eeed196001600160a01b03841601612ef957506001600160a01b038116316109ae565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301528416906370a0823190602401602060405180830381865afa158015612f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7c9190615af4565b9392505050565b6001600160a01b0385166000908152600360209081526040808320600886901c8452909152902054600160ff84161b1615612ffc576040517fa4e6bcec0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101839052604401610cf7565b6001600160a01b0385166000908152600360209081526040808320600886901c845290915290208054600160ff85161b1790556001600160a01b038516600090815260046020526040902060010154611be290878686868661462f565b60608101516001600160a01b03166130a8576040517f04fdbe060000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610cf7565b60006130b2611a12565b905060038160038111156130c8576130c861574a565b14806130e5575060028160038111156130e3576130e361574a565b145b1561311c576040517fb10f8cca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0383166000908152600560205260408120600181018054908390558154919290918390829061315b9067ffffffffffffffff16615bee565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790559050600061319084600201613279565b60228501546023860181905590915060006131ac6001836157bd565b9050886001600160a01b0316837f47c5615513b0f669da2dd7e3362a34610ca2695d0a0e2da2160cee952eab203c83876131e461258d565b6040805193845267ffffffffffffffff90921660208401526001600160a01b03169082015260600160405180910390a3600060405180606001604052808a606001516001600160a01b0316815260200187815260200160405180604001604052808867ffffffffffffffff16815260200187815250815250905061326c8b838c898d86614a6d565b5050505050505050505050565b60208101546000908082036132b057507f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75792915050565b60008360018316156132d2578054600052600060205260406000209350613b85565b60028316156133175760018101546000527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb56020526040600020935060019150613b85565b600483161561335c5760028101546000527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d306020526040600020935060029150613b85565b60088316156133a15760038101546000527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba856020526040600020935060039150613b85565b60108316156133e65760048101546000527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a193446020526040600020935060049150613b85565b602083161561342b5760058101546000527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d6020526040600020935060059150613b85565b60408316156134705760068101546000527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a19686020526040600020935060069150613b85565b60808316156134b55760078101546000527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f836020526040600020935060079150613b85565b6101008316156134fb5760088101546000527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6020526040600020935060089150613b85565b6102008316156135415760098101546000527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06020526040600020935060099150613b85565b61040083161561358757600a8101546000527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a560205260406000209350600a9150613b85565b6108008316156135cd57600b8101546000527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf89260205260406000209350600b9150613b85565b61100083161561361357600c8101546000527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c60205260406000209350600c9150613b85565b61200083161561365957600d8101546000527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb60205260406000209350600d9150613b85565b61400083161561369f57600e8101546000527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc60205260406000209350600e9150613b85565b6180008316156136e557600f8101546000527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d260205260406000209350600f9150613b85565b6201000083161561372c5760108101546000527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6020526040600020935060109150613b85565b620200008316156137735760118101546000527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6020526040600020935060119150613b85565b620400008316156137ba5760128101546000527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06020526040600020935060129150613b85565b620800008316156138015760138101546000527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06020526040600020935060139150613b85565b621000008316156138485760148101546000527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26020526040600020935060149150613b85565b6220000083161561388f5760158101546000527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96020526040600020935060159150613b85565b624000008316156138d65760168101546000527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776020526040600020935060169150613b85565b6280000083161561391d5760178101546000527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526020526040600020935060179150613b85565b63010000008316156139655760188101546000527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6020526040600020935060189150613b85565b63020000008316156139ad5760198101546000527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6020526040600020935060199150613b85565b63040000008316156139f557601a8101546000527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d060205260406000209350601a9150613b85565b6308000000831615613a3d57601b8101546000527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e60205260406000209350601b9150613b85565b6310000000831615613a8557601c8101546000527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e60205260406000209350601c9150613b85565b6320000000831615613acd57601d8101546000527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea32260205260406000209350601d9150613b85565b6340000000831615613b1557601e8101546000527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d73560205260406000209350601e9150613b85565b6380000000831615613b5d57601f8101546000527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a960205260406000209350601f9150613b85565b7f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d7579350602091505b601e8211614627576001821015613be357600283168015613bb157600182015460005284602052613bda565b846000527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb56020525b50604060002093505b6002821015613c3957600483168015613c0757600282015460005284602052613c30565b846000527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d306020525b50604060002093505b6003821015613c8f57600883168015613c5d57600382015460005284602052613c86565b846000527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba856020525b50604060002093505b6004821015613ce557601083168015613cb357600482015460005284602052613cdc565b846000527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a193446020525b50604060002093505b6005821015613d3b57602083168015613d0957600582015460005284602052613d32565b846000527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d6020525b50604060002093505b6006821015613d9157604083168015613d5f57600682015460005284602052613d88565b846000527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a19686020525b50604060002093505b6007821015613de757608083168015613db557600782015460005284602052613dde565b846000527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f836020525b50604060002093505b6008821015613e3e5761010083168015613e0c57600882015460005284602052613e35565b846000527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6020525b50604060002093505b6009821015613e955761020083168015613e6357600982015460005284602052613e8c565b846000527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06020525b50604060002093505b600a821015613eec5761040083168015613eba57600a82015460005284602052613ee3565b846000527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56020525b50604060002093505b600b821015613f435761080083168015613f1157600b82015460005284602052613f3a565b846000527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926020525b50604060002093505b600c821015613f9a5761100083168015613f6857600c82015460005284602052613f91565b846000527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6020525b50604060002093505b600d821015613ff15761200083168015613fbf57600d82015460005284602052613fe8565b846000527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6020525b50604060002093505b600e821015614048576140008316801561401657600e8201546000528460205261403f565b846000527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6020525b50604060002093505b600f82101561409f576180008316801561406d57600f82015460005284602052614096565b846000527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26020525b50604060002093505b60108210156140f75762010000831680156140c5576010820154600052846020526140ee565b846000527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6020525b50604060002093505b601182101561414f57620200008316801561411d57601182015460005284602052614146565b846000527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6020525b50604060002093505b60128210156141a75762040000831680156141755760128201546000528460205261419e565b846000527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06020525b50604060002093505b60138210156141ff5762080000831680156141cd576013820154600052846020526141f6565b846000527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06020525b50604060002093505b60148210156142575762100000831680156142255760148201546000528460205261424e565b846000527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26020525b50604060002093505b60158210156142af57622000008316801561427d576015820154600052846020526142a6565b846000527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96020525b50604060002093505b60168210156143075762400000831680156142d5576016820154600052846020526142fe565b846000527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776020525b50604060002093505b601782101561435f57628000008316801561432d57601782015460005284602052614356565b846000527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526020525b50604060002093505b60188210156143b857630100000083168015614386576018820154600052846020526143af565b846000527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6020525b50604060002093505b6019821015614411576302000000831680156143df57601982015460005284602052614408565b846000527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6020525b50604060002093505b601a82101561446a5763040000008316801561443857601a82015460005284602052614461565b846000527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06020525b50604060002093505b601b8210156144c35763080000008316801561449157601b820154600052846020526144ba565b846000527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6020525b50604060002093505b601c82101561451c576310000000831680156144ea57601c82015460005284602052614513565b846000527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6020525b50604060002093505b601d8210156145755763200000008316801561454357601d8201546000528460205261456c565b846000527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226020525b50604060002093505b601e8210156145ce5763400000008316801561459c57601e820154600052846020526145c5565b846000527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356020525b50604060002093505b601f821015614627576380000000831680156145f557601f8201546000528460205261461e565b846000527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96020525b50604060002093505b505050919050565b6040805160208082018890528183018790526001600160a01b038616606080840191909152835180840390910181526080830180855281519183019190912061048090930190935260009261469d92918590828261040080828437600092019190915250879150614fd19050565b9050868114610dad576040517ee587d20000000000000000000000000000000000000000000000000000000081526004810182905260248101889052604401610cf7565b62030d406146f56040830160208401615b0d565b63ffffffff1610801561471f575061eeee614713602083018361557c565b6001600160a01b031614155b15610a68576147346040820160208301615b0d565b6040517f555d0f1000000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015262030d406024820152604401610cf7565b6000366014336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156147b55750808210155b156147e5576000366147c783856157bd565b6147d2928290615c15565b6147db91615c3f565b60601c9250505090565b339250505090565b600080602060008451602086016000885af180614810576040513d6000823e3d81fd5b50506000513d91508115614828578060011415614835565b6001600160a01b0384163b155b15610b73576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610cf7565b61487f6153d8565b6000836020018051614890906157e6565b90819052905060016148a460206002615d6b565b6148ae91906157bd565b8111156148e7576040517f8eab04bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b602081101561497c578160011660010361492357845184908260208110614913576149136157d0565b6020020152508391506109ae9050565b84518160208110614936576149366157d0565b602002015184604051602001614956929190918252602082015260400190565b60408051601f1981840301815291905280516020909101209350600191821c91016148ea565b506040517f8eab04bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052614a2e848261531f565b610b73576040516001600160a01b03848116602483015260006044830152614a6391869182169063095ea7b3906064016125d1565b610b7384826147ed565b85600003614aa7576040517f3cb7b09b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620493e060608415614c60576040840151614ac89063ffffffff168361583f565b915061eeed196001600160a01b03871601614bbb5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e861e9076040518163ffffffff1660e01b8152600401602060405180830381865afa158015614b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b619190615822565b9050806001600160a01b031663d0e30db0876040518263ffffffff1660e01b81526004016000604051808303818588803b158015614b9e57600080fd5b505af1158015614bb2573d6000803e3d6000fd5b50939950505050505b60408051600180825281830190925290816020015b6040805180820190915260008082526020820152815260200190600190039081614bd05790505090506040518060400160405280876001600160a01b031681526020018681525081600081518110614c2a57614c2a6157d0565b6020026020010181905250614c60867f0000000000000000000000000000000000000000000000000000000000000000876149af565b60006040518060a00160405280614c743090565b604080516001600160a01b03909216602083015201604051602081830303815290604052815260200185604051602001614cae9190615aa8565b604051602081830303815290604052815260200183815260200160006001600160a01b03168152602001614d5560405180602001604052808781525060408051915160248084019190915281518084039091018152604490920190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f97a657c90000000000000000000000000000000000000000000000000000000017905290565b90526040517f20487ded0000000000000000000000000000000000000000000000000000000081529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906320487ded90614de4907f0000000000000000000000000000000000000000000000000000000000000000908690600401615d77565b602060405180830381865afa158015614e01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e259190615af4565b905089811115614e6b576040517f0ee99a47000000000000000000000000000000000000000000000000000000008152600481018b905260248101829052604401610cf7565b6040517f96f4e9f90000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906396f4e9f9908390614ef4907f0000000000000000000000000000000000000000000000000000000000000000908790600401615d77565b60206040518083038185885af1158015614f12573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190614f379190615af4565b506000614f4261258d565b6001600160a01b0316614f55838d6157bd565b604051600081818185875af1925050503d8060008114614f91576040519150601f19603f3d011682016040523d82523d6000602084013e614f96565b606091505b505090508061326c576040517f97484b1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020600582811b8216948552835194820394909452604060008181206002851615871b808503919091528386015190528181206004851615871b808503919091528286015190528181206008851615871b80850391909152606086015190528181206010851615871b8085039190915260808087015190915282822084861615881b8086039190915260a0870151905282822083861615881b8086039190915260c0870151905282822090851615871b8085039190915260e0860151905281812061010080861615881b80860392909252860151905281812061020080861615881b80860392909252610120870151909152828220610400861615881b808603919091526101408701519052828220610800861615881b808603919091526101608701519052828220611000861615881b808603919091526101808701519052828220612000861615881b808603919091526101a08701519052828220614000861615881b808603919091526101c08701519052828220618000861615881b808603919091526101e0870151905282822062010000861615881b8086039190915290860151905281812062020000851615871b80850391909152610220860151905281812062040000851615871b80850391909152610240860151905281812062080000851615871b80850391909152610260860151905281812062100000851615871b80850391909152610280860151905281812062200000851615871b808503919091526102a0860151905281812062400000851615871b808503919091526102c0860151905281812062800000851615871b808503919091526102e086015190528181206301000000851615871b8085039190915261030086015190528181206302000000851615871b8085039190915261032086015190528181206304000000851615871b8085039190915261034086015190528181206308000000851615871b8085039190915261036086015190528181206310000000851615871b8085039190915261038086015190528181206320000000851615871b808503919091526103a086015190528181206340000000851615871b808503919091526103c0860151905281812063800000009094161590951b91829003929092526103e090920151909152902090565b6000806000806020600086516020880160008a5af192503d91506000519050828015615364575081156153555780600114615364565b6000866001600160a01b03163b115b9695505050505050565b604080516080810182526000808252602082015290810161538d6153d8565b8152602001600081525090565b82602081019282156153c8579160200282015b828111156153c85782518255916020019190600101906153ad565b506153d49291506153eb565b5090565b604051806040016040528061538d615400565b5b808211156153d457600081556001016153ec565b6040518061040001604052806020906020820280368337509192915050565b60006020828403121561543157600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612f7c57600080fd5b60006104a0828403121561547457600080fd5b50919050565b6000806020838503121561548d57600080fd5b823567ffffffffffffffff808211156154a557600080fd5b818501915085601f8301126154b957600080fd5b8135818111156154c857600080fd5b8660208260071b85010111156154dd57600080fd5b60209290920196919550909350505050565b60006080828403121561547457600080fd5b60006080828403121561551357600080fd5b612f7c83836154ef565b6001600160a01b0381168114610a6857600080fd5b6000806000806080858703121561554857600080fd5b84359350602085013561555a8161551d565b92506040850135915060608501356155718161551d565b939692955090935050565b60006020828403121561558e57600080fd5b8135612f7c8161551d565b6000602082840312156155ab57600080fd5b813564ffffffffff81168114612f7c57600080fd5b815167ffffffffffffffff16815260208083015190820152604081016109ae565b600080602083850312156155f457600080fd5b823567ffffffffffffffff8082111561560c57600080fd5b818501915085601f83011261562057600080fd5b81358181111561562f57600080fd5b8660208260051b85010111156154dd57600080fd5b815167ffffffffffffffff1681526020808301518183015260408084015180516104808501939260009086015b8482101561568f578251815291840191600191909101908401615671565b5050500151610440830152606092909201516104609091015290565b6000602082840312156156bd57600080fd5b813567ffffffffffffffff8111156156d457600080fd5b820160a08185031215612f7c57600080fd5b600080602083850312156156f957600080fd5b823567ffffffffffffffff8082111561571157600080fd5b818501915085601f83011261572557600080fd5b81358181111561573457600080fd5b8660206104a0830285010111156154dd57600080fd5b634e487b7160e01b600052602160045260246000fd5b60208101600483106157745761577461574a565b91905290565b60208101600283106157745761577461574a565b6000602082840312156157a057600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156109ae576109ae6157a7565b634e487b7160e01b600052603260045260246000fd5b600060001982036157f9576157f96157a7565b5060010190565b60008261581d57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561583457600080fd5b8151612f7c8161551d565b808201808211156109ae576109ae6157a7565b803567ffffffffffffffff8116811461586a57600080fd5b919050565b60006020828403121561588157600080fd5b612f7c82615852565b6040808252810183905260008460608301825b868110156158cd5782356158b08161551d565b6001600160a01b031682526020928301929091019060010161589d565b5080925050506001600160a01b0383166020830152949350505050565b6000808335601e1984360301811261590157600080fd5b83018035915067ffffffffffffffff82111561591c57600080fd5b60200191503681900382131561593157600080fd5b9250929050565b6040805190810167ffffffffffffffff8111828210171561596957634e487b7160e01b600052604160045260246000fd5b60405290565b6000818303608081121561598257600080fd5b6040516060810181811067ffffffffffffffff821117156159b357634e487b7160e01b600052604160045260246000fd5b60405283356159c18161551d565b8152602084810135908201526040603f19830112156159df57600080fd5b6159e7615938565b91506159f560408501615852565b8252606093909301356020820152604083015250919050565b6000808335601e19843603018112615a2557600080fd5b83018035915067ffffffffffffffff821115615a4057600080fd5b6020019150600681901b360382131561593157600080fd5b600060408284031215615a6a57600080fd5b615a72615938565b8235615a7d8161551d565b81526020928301359281019290925250919050565b634e487b7160e01b600052600160045260246000fd5b60006080820190506001600160a01b038351168252602083015160208301526040830151615aed6040840182805167ffffffffffffffff168252602090810151910152565b5092915050565b600060208284031215615b0657600080fd5b5051919050565b600060208284031215615b1f57600080fd5b813563ffffffff81168114612f7c57600080fd5b6000815180845260005b81811015615b5957602081850181015186830182015201615b3d565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160a01b03808a168352886020840152876040840152808716606084015285608084015280851660a08401525060e060c0830152615bbf60e0830184615b33565b9998505050505050505050565b600060208284031215615bde57600080fd5b81518015158114612f7c57600080fd5b600067ffffffffffffffff808316818103615c0b57615c0b6157a7565b6001019392505050565b60008085851115615c2557600080fd5b83861115615c3257600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015615c7f5780818660140360031b1b83161692505b505092915050565b600181815b80851115615cc2578160001904821115615ca857615ca86157a7565b80851615615cb557918102915b93841c9390800290615c8c565b509250929050565b600082615cd9575060016109ae565b81615ce6575060006109ae565b8160018114615cfc5760028114615d0657615d22565b60019150506109ae565b60ff841115615d1757615d176157a7565b50506001821b6109ae565b5060208310610133831016604e8410600b8410161715615d45575081810a6109ae565b615d4f8383615c87565b8060001904821115615d6357615d636157a7565b029392505050565b6000612f7c8383615cca565b6000604067ffffffffffffffff851683526020604081850152845160a06040860152615da660e0860182615b33565b905081860151603f1980878403016060880152615dc38383615b33565b6040890151888203830160808a01528051808352908601945060009350908501905b80841015615e1757845180516001600160a01b0316835286015186830152938501936001939093019290860190615de5565b5060608901516001600160a01b031660a08901526080890151888203830160c08a01529550615e468187615b33565b9a995050505050505050505056fea26469706673582212209c55e86a735e54c8dcf952b1ec61ed953cdc81d6288653e8fc1ed1525419af0f64736f6c63430008170033",
|
|
1479
|
+
"deployedBytecode": "0x6080604052600436106102535760003560e01c80637de6fba211610138578063bf557aee116100b0578063cdfceeba1161007f578063f434c91411610064578063f434c914146108d0578063fe4b84df14610904578063fe5f42ca1461092457600080fd5b8063cdfceeba1461087d578063d5f39488146108b057600080fd5b8063bf557aee146107b5578063c1854129146107fa578063c19d93fb1461081a578063c6525f2c1461083c57600080fd5b806392ee1ea711610107578063b0f479a1116100ec578063b0f479a11461074f578063b59ef50f14610782578063b71c1179146107a257600080fd5b806392ee1ea7146107185780639e6d7d431461072f57600080fd5b80637de6fba21461058f578063802c8fa01461069757806385572ffb146106c457806388bc2ef3146106e457600080fd5b8063551ebbf0116101cb57806369d31fdd1161019a578063754515591161017f57806375451559146105085780637d1d0c5b146105285780637da0a8771461055c57600080fd5b806369d31fdd1461047c5780636d9e384b1461048f57600080fd5b8063551ebbf0146103cf578063572b6c05146103ef5780636284386a1461043c57806369ce22331461045c57600080fd5b80631d831d5c1161022257806338eb20441161020757806338eb2044146103715780633a5de07d146103845780633fafa127146103b057600080fd5b80631d831d5c1461032a5780632241dc521461035e57600080fd5b806301ffc9a71461025f57806305696511146102945780630f648214146102e157806311cda4151461030357600080fd5b3661025a57005b600080fd5b34801561026b57600080fd5b5061027f61027a36600461541f565b610958565b60405190151581526020015b60405180910390f35b3480156102a057600080fd5b506102c87f000000000000000000000000000000000000000000000000dda641cfe44aff8281565b60405167ffffffffffffffff909116815260200161028b565b3480156102ed57600080fd5b506103016102fc366004615461565b6109b4565b005b34801561030f57600080fd5b50305b6040516001600160a01b03909116815260200161028b565b34801561033657600080fd5b506103127f0000000000000000000000004d0edd347fb1fa21589c1e109b3474924be8763681565b61030161036c36600461547a565b610a6b565b61030161037f366004615501565b610b79565b34801561039057600080fd5b5061039b62030d4081565b60405163ffffffff909116815260200161028b565b3480156103bc57600080fd5b506002545b60405190815260200161028b565b3480156103db57600080fd5b506103016103ea366004615532565b610b83565b3480156103fb57600080fd5b5061027f61040a36600461557c565b7f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb5666001600160a01b0390811691161490565b34801561044857600080fd5b50610301610457366004615599565b610db6565b34801561046857600080fd5b5061030161047736600461557c565b611009565b61030161048a366004615501565b6110a8565b34801561049b57600080fd5b506104fb6104aa36600461557c565b6040805180820190915260008082526020820152506001600160a01b03166000908152600460209081526040918290208251808401909352805467ffffffffffffffff168352600101549082015290565b60405161028b91906155c0565b34801561051457600080fd5b506103016105233660046155e1565b61124f565b34801561053457600080fd5b506103c17f000000000000000000000000000000000000000000000000000000000000210581565b34801561056857600080fd5b507f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566610312565b34801561059b57600080fd5b506106426105aa36600461557c565b6040805160a0808201835260008083526020808401829052838501829052606080850183905260809485018390526001600160a01b039687168352600682529185902085519384018652805460ff8082161515865261010082041615159285019290925262010000820463ffffffff169584019590955266010000000000009004909416938101939093526001909101549082015290565b60405161028b9190600060a08201905082511515825260208301511515602083015263ffffffff60408401511660408301526001600160a01b0360608401511660608301526080830151608083015292915050565b3480156106a357600080fd5b506106b76106b236600461557c565b6113ea565b60405161028b9190615644565b3480156106d057600080fd5b506103016106df3660046156ab565b61148a565b3480156106f057600080fd5b506103127f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf81565b34801561072457600080fd5b5061039b620493e081565b34801561073b57600080fd5b506103c161074a36600461557c565b611740565b34801561075b57600080fd5b507f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d610312565b34801561078e57600080fd5b5061030161079d366004615461565b611770565b6103016107b036600461557c565b611896565b3480156107c157600080fd5b5061027f6107d036600461557c565b6001600160a01b039081166000908152600660205260409020546601000000000000900416151590565b34801561080657600080fd5b506103016108153660046156e6565b6119d9565b34801561082657600080fd5b5061082f611a12565b60405161028b9190615760565b34801561084857600080fd5b506108707f000000000000000000000000000000000000000000000000000000000000000181565b60405161028b919061577a565b34801561088957600080fd5b507f00000000000000000000000000000000000000000000000000000000000021056103c1565b3480156108bc57600080fd5b50600054610312906001600160a01b031681565b3480156108dc57600080fd5b506103127f00000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d81565b34801561091057600080fd5b5061030161091f36600461578e565b611a5b565b34801561093057600080fd5b506103127f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f85572ffb0000000000000000000000000000000000000000000000000000000014806109ae57506109ae82611bea565b92915050565b6109ec60608201356109c9602084018461557c565b60808401356109de606086016040870161557c565b602086013560a08701611d19565b608081013560056000610a02602085018561557c565b6001600160a01b03166001600160a01b031681526020019081526020016000206001016000828254610a3491906157bd565b90915550610a689050610a4a602083018361557c565b608083013560608401803590610a63906040870161557c565b611f4a565b50565b6000805b82811015610b2657600060056000868685818110610a8f57610a8f6157d0565b610aa5926020608090920201908101915061557c565b6001600160a01b03168152602081019190915260400160009081209150858584818110610ad457610ad46157d0565b9050608002016040016020810190610aec919061557c565b6001600160a01b0316148015610b0a57506022810154602382015414155b15610b1d5782610b19816157e6565b9350505b50600101610a6f565b5060005b82811015610b7357610b6b848483818110610b4757610b476157d0565b90506080020160008411610b5c5760006120f3565b610b668434615800565b6120f3565b600101610b2a565b50505050565b610a6881346120f3565b6001600160a01b038316610bc3576040517f8d3329cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f0000000000000000000000004d0edd347fb1fa21589c1e109b3474924be876366001600160a01b031663ea78803f610bfd60025490565b6040518263ffffffff1660e01b8152600401610c1b91815260200190565b602060405180830381865afa158015610c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5c9190615822565b90506001600160a01b038116610c9e576040517fcaa06d2000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821660009081526006602052604090205460ff16610d00576040517f04fdbe060000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b6000610d0a611a12565b90506003816003811115610d2057610d2061574a565b1480610d3d57506002816003811115610d3b57610d3b61574a565b145b15610d74576040517fb10f8cca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d91610d7f61258d565b6001600160a01b03841690308961259c565b6000610d9f83888688612618565b9050610dad87858389612806565b50505050505050565b6000610dc0611a12565b90506003816003811115610dd657610dd661574a565b1480610df357506002816003811115610df157610df161574a565b145b15610e2a576040517fb10f8cca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610e3560025490565b9050610f327f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf6001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615822565b6001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401610ee991815260200190565b602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190615822565b82601e612990565b6000610f41621275004261583f565b905064ffffffffff841615801590610f5f5750808464ffffffffff16105b15610fa6576040517f044691ac00000000000000000000000000000000000000000000000000000000815264ffffffffff8516600482015260248101829052604401610cf7565b64ffffffffff84166001557f455efa76af2a8686dc0dd3041bda89ece5ba4691277d525e2161003bbca8b24584610fdb61258d565b6040805164ffffffffff90931683526001600160a01b0390911660208301520160405180910390a150505050565b60007f0000000000000000000000000000000000000000000000000000000000000001600181111561103d5761103d61574a565b14611096577f00000000000000000000000000000000000000000000000000000000000000016040517fb039c395000000000000000000000000000000000000000000000000000000008152600401610cf7919061577a565b610a68816110a383611740565b612ada565b6110c16110b361258d565b6001600160a01b0316301490565b61110b576110cd61258d565b6040517f36183c8f0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152602401610cf7565b600060048161111d602085018561557c565b6001600160a01b0316815260208101919091526040908101600020805490925067ffffffffffffffff1690611158906060850190850161586f565b67ffffffffffffffff1611801561118857506003611174611a12565b60038111156111855761118561574a565b14155b1561124b5761119d606083016040840161586f565b815467ffffffffffffffff191667ffffffffffffffff91909116178155606082013560018201556111d1602083018361557c565b6001600160a01b03167fc69d3412489554fb7820c4c2784cb644b6c79bfc117444b93977d3d33a9b8eac61120b606085016040860161586f565b606085013561121861258d565b6040805167ffffffffffffffff909416845260208401929092526001600160a01b03169082015260600160405180910390a25b5050565b600061125a60025490565b90506112bd7f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf6001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e98573d6000803e3d6000fd5b60005b828110156113a2576000600660008686858181106112e0576112e06157d0565b90506020020160208101906112f5919061557c565b6001600160a01b031681526020810191909152604001600090812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001692151592909217909155600190600690868685818110611356576113566157d0565b905060200201602081019061136b919061557c565b6001600160a01b03168152602081019190915260400160002080549115156101000261ff00199092169190911790556001016112c0565b507f8021bce60b20a9afb57085869a3552e0ee5b272b868df894fb30c5e90e74c07283836113ce61258d565b6040516113dd9392919061588a565b60405180910390a1505050565b6113f261536e565b6001600160a01b0382166000908152600560209081526040918290208251608081018452815467ffffffffffffffff1681526001820154818401528351610440810180865291949293858401939192600286019284929083019184919082845b815481526020019060010190808311611452575050509183525050602091820154908201529082526023929092015491015292915050565b7f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d6001600160a01b03166114bc61258d565b6001600160a01b0316146114d2576110cd61258d565b60006114e160608301836158ea565b8101906114ee919061596f565b905060006114ff60408401846158ea565b81019061150c919061557c565b90506001600160a01b03811630141580611569575067ffffffffffffffff7f000000000000000000000000000000000000000000000000dda641cfe44aff821661155c604085016020860161586f565b67ffffffffffffffff1614155b156115ab576040517f36183c8f0000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610cf7565b6115b86080840184615a0e565b90506001036116d65760006115d06080850185615a0e565b60008181106115e1576115e16157d0565b9050604002018036038101906115f79190615a58565b905061eeee6001600160a01b031683600001516001600160a01b0316036116d4578051600061162861eeee30612ed3565b60208401516040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081529192506001600160a01b03841691632e1a7d4d916116779160040190815260200190565b600060405180830381600087803b15801561169157600080fd5b505af11580156116a5573d6000803e3d6000fd5b505050506116b561eeee30612ed3565b60208401516116c4908361583f565b146116d1576116d1615a92565b50505b505b6040517f69d31fdd00000000000000000000000000000000000000000000000000000000815230906369d31fdd90611712908590600401615aa8565b600060405180830381600087803b15801561172c57600080fd5b505af1158015610dad573d6000803e3d6000fd5b6001600160a01b0381166000908152600560205260408120600101546117668330612ed3565b6109ae91906157bd565b6117a86060820135611785602084018461557c565b608084013561179a606086016040870161557c565b602086013560a08701612f83565b7faaca6f6829d340365b5e6599e0d513cbb4602b94f58ccf16ac77d8d3ae7139ef6117d9606083016040840161557c565b6117e6602084018461557c565b60608401356080850135602086013560017f000000000000000000000000000000000000000000000000000000000000000160018111156118295761182961574a565b14611835576000611838565b60015b61184061258d565b604080516001600160a01b039889168152968816602088015286019490945260608501929092526080840152151560a083015290911660c082015260e00160405180910390a1610a68610a4a602083018361557c565b6001600160a01b03808216600090815260066020908152604091829020825160a081018452815460ff808216151583526101008204161580159483019490945263ffffffff620100008204169482019490945266010000000000009093049093166060830152600190920154608082015290611949576040517f4bba81f00000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610cf7565b60808101516001600160a01b03831660009081526005602052604090206001015410156119ce576001600160a01b0382166000908152600560205260409081902060010154608083015191517fc3e11b79000000000000000000000000000000000000000000000000000000008152610cf79290600401918252602082015260400190565b61124b348383613059565b60005b81811015611a0d57611a058383838181106119f9576119f96157d0565b90506104a00201611770565b6001016119dc565b505050565b600154600090808203611a2757600091505090565b611a3462127500826157bd565b421015611a4357600191505090565b80421015611a5357600291505090565b600391505090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015611aa65750825b905060008267ffffffffffffffff166001148015611ac35750303b155b905081158015611ad1575080155b15611b08576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b525784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6002869055600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790558315611be25784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f18a5af27000000000000000000000000000000000000000000000000000000001480611c7d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f583ff5cc00000000000000000000000000000000000000000000000000000000145b80611cc957507fffffffff0000000000000000000000000000000000000000000000000000000082167ff434c91400000000000000000000000000000000000000000000000000000000145b806109ae57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146109ae565b6000611d23611a12565b90506003816003811115611d3957611d3961574a565b14158015611d5957506002816003811115611d5657611d5661574a565b14155b8015611d8357506001600160a01b038616600090815260066020526040902054610100900460ff16155b15611dc5576040517f4bba81f00000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610cf7565b6001600160a01b0386166000908152600560205260409020602381015415801590611e0057508360018260230154611dfd91906157bd565b10155b15611e49576040517fa4e6bcec0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101859052604401610cf7565b604080516001600160a01b03891660208201526000910160408051808303601f19018152918152815160209283012060601c60008181526003845282812060088a901c8252909352912054909150600160ff87161b1615611ee8576040517fa4e6bcec0000000000000000000000000000000000000000000000000000000081526001600160a01b038916600482015260248101869052604401610cf7565b6001600160a01b039081166000908152600360209081526040808320600889901c845282528083208054600160ff8b161b179055928a1682526005905220611f4090611f3690600201613279565b898888888861462f565b5050505050505050565b60017f00000000000000000000000000000000000000000000000000000000000000016001811115611f7e57611f7e61574a565b148015611f8a57508215155b15611f9957611f998484612ada565b6000611fa460025490565b6040517f5dd8f6aa000000000000000000000000000000000000000000000000000000008152600481018290529091507f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf6001600160a01b031690635dd8f6aa90602401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615822565b6040517fc7fb92de00000000000000000000000000000000000000000000000000000000815260048101839052602481018590526001600160a01b03848116604483015260a06064830152600060a483018190526084830152919091169063c7fb92de9060c4016020604051808303816000875af11580156120cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be29190615af4565b6000612102602084018461557c565b6001600160a01b03808216600090815260066020908152604091829020825160a081018452815460ff808216151583526101008204161580159483019490945263ffffffff62010000820416948201949094526601000000000000909304909316606083015260019092015460808201529192506121b7576040517f4bba81f00000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610cf7565b6121c0846146e1565b60006121cb60025490565b90506122c87f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf6001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa15801561222e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122529190615822565b6001600160a01b0316636352211e836040518263ffffffff1660e01b815260040161227f91815260200190565b602060405180830381865afa15801561229c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c09190615822565b82601c612990565b60608201516001600160a01b03161580159061230957506122ef606086016040870161557c565b6001600160a01b031682606001516001600160a01b031614155b801561232e57506000612322606087016040880161557c565b6001600160a01b031614155b801561235457506001600160a01b03831660009081526005602052604090206022015415155b156123a45760608201516040517f1460b5460000000000000000000000000000000000000000000000000000000081526001600160a01b0380861660048301529091166024820152604401610cf7565b60006123b6606087016040880161557c565b6001600160a01b03161480156123ed57506001600160a01b0383166000908152600560205260409020602281015460239091015414155b156123fd576123fd848484613059565b6040518060a0016040528060006001600160a01b0316876040016020810190612426919061557c565b6001600160a01b03161415151581526020016000151581526020018660200160208101906124549190615b0d565b63ffffffff16815260200160006124716060890160408a0161557c565b6001600160a01b0316146124945761248f606088016040890161557c565b61249a565b83606001515b6001600160a01b039081168252606097880135602092830152948516600090815260068252604090819020835181549385015192850151998501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000090941690151561ff0019161761010092151592909202919091177fffffffffffff000000000000000000000000000000000000000000000000ffff166201000063ffffffff909916989098027fffffffffffff0000000000000000000000000000000000000000ffffffffffff16979097176601000000000000919095160293909317855550506080015160019092019190915550565b6000612597614778565b905090565b6040516001600160a01b038481166024830152838116604483015260648201839052610b739186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506147ed565b60008061262460025490565b6040517f86202650000000000000000000000000000000000000000000000000000000008152600481018290526001600160a01b0386811660248301529192506000917f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf1690638620265090604401602060405180830381865afa1580156126b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d49190615822565b90506001600160a01b038116612728576040517fb61c181f000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0386166024820152604401610cf7565b60006127348630612ed3565b604080516020810182526000815290517f13da83170000000000000000000000000000000000000000000000000000000081529192506001600160a01b038416916313da83179161279391309188918d918d918d918691600401615b79565b6020604051808303816000875af11580156127b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d69190615af4565b9350806127e38730612ed3565b6127ed91906157bd565b84146127fb576127fb615a92565b505050949350505050565b6040805160208082018790528183018590526001600160a01b03841660608084019190915283518084039091018152608090920190925280519101206000906001600160a01b03851660009081526005602090815260408083208151610440810180845295965090946128af9387936002880192849291830191849182845b81548152602001906001019080831161288557505050918352505060209182015491015290614877565b8051909150819060028401906128c8908290602061539a565b5060208201518160200155905050848260010160008282546128ea919061583f565b92505081905550856001600160a01b0316846001600160a01b03167f584a41ff082fad99bb6e50c5767c347c762057fe5726539f0a8de49d84549c23856001856020015161293891906157bd565b61294487600201613279565b8c8b61294e61258d565b60408051968752602087019590955293850192909252606084015260808301526001600160a01b031660a082015260c00160405180910390a350505050505050565b600061299a61258d565b9050836001600160a01b0316816001600160a01b031614158015612a8257506040517f348b684e0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f00000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d169063348b684e9060c401602060405180830381865afa158015612a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a809190615bcc565b155b15610b73576040517f264deeaa0000000000000000000000000000000000000000000000000000000081526001600160a01b038086166004830152821660248201526044810184905260648101839052608401610cf7565b6000612ae583611740565b905080821115612b2b576040517f60ec3e710000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610cf7565b6000612b3660025490565b6040517f86202650000000000000000000000000000000000000000000000000000000008152600481018290526001600160a01b0386811660248301529192506000917f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf1690638620265090604401602060405180830381865afa158015612bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be69190615822565b90506001600160a01b038116612c3a576040517fb61c181f000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0386166024820152604401610cf7565b6001600160a01b03851661eeee14612e23576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015612cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd09190615af4565b9050612cdd8683876149af565b6040517f9e6eec05000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0387811660248301526044820187905260006064830181905260c0608484015260c4830181905260e060a484015260e4830152831690639e6eec059061010401600060405180830381600087803b158015612d6b57600080fd5b505af1158015612d7f573d6000803e3d6000fd5b505050508481612d8f91906157bd565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa158015612dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e109190615af4565b14612e1d57612e1d615a92565b50612ecc565b6040517f9e6eec05000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0386811660248301526044820186905260006064830181905260c0608484015260c4830181905260e060a484015260e4830152821690639e6eec05908690610104016000604051808303818588803b158015612eb257600080fd5b505af1158015612ec6573d6000803e3d6000fd5b50505050505b5050505050565b600061eeed196001600160a01b03841601612ef957506001600160a01b038116316109ae565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301528416906370a0823190602401602060405180830381865afa158015612f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7c9190615af4565b9392505050565b6001600160a01b0385166000908152600360209081526040808320600886901c8452909152902054600160ff84161b1615612ffc576040517fa4e6bcec0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101839052604401610cf7565b6001600160a01b0385166000908152600360209081526040808320600886901c845290915290208054600160ff85161b1790556001600160a01b038516600090815260046020526040902060010154611be290878686868661462f565b60608101516001600160a01b03166130a8576040517f04fdbe060000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610cf7565b60006130b2611a12565b905060038160038111156130c8576130c861574a565b14806130e5575060028160038111156130e3576130e361574a565b145b1561311c576040517fb10f8cca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0383166000908152600560205260408120600181018054908390558154919290918390829061315b9067ffffffffffffffff16615bee565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790559050600061319084600201613279565b60228501546023860181905590915060006131ac6001836157bd565b9050886001600160a01b0316837f47c5615513b0f669da2dd7e3362a34610ca2695d0a0e2da2160cee952eab203c83876131e461258d565b6040805193845267ffffffffffffffff90921660208401526001600160a01b03169082015260600160405180910390a3600060405180606001604052808a606001516001600160a01b0316815260200187815260200160405180604001604052808867ffffffffffffffff16815260200187815250815250905061326c8b838c898d86614a6d565b5050505050505050505050565b60208101546000908082036132b057507f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75792915050565b60008360018316156132d2578054600052600060205260406000209350613b85565b60028316156133175760018101546000527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb56020526040600020935060019150613b85565b600483161561335c5760028101546000527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d306020526040600020935060029150613b85565b60088316156133a15760038101546000527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba856020526040600020935060039150613b85565b60108316156133e65760048101546000527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a193446020526040600020935060049150613b85565b602083161561342b5760058101546000527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d6020526040600020935060059150613b85565b60408316156134705760068101546000527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a19686020526040600020935060069150613b85565b60808316156134b55760078101546000527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f836020526040600020935060079150613b85565b6101008316156134fb5760088101546000527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6020526040600020935060089150613b85565b6102008316156135415760098101546000527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06020526040600020935060099150613b85565b61040083161561358757600a8101546000527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a560205260406000209350600a9150613b85565b6108008316156135cd57600b8101546000527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf89260205260406000209350600b9150613b85565b61100083161561361357600c8101546000527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c60205260406000209350600c9150613b85565b61200083161561365957600d8101546000527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb60205260406000209350600d9150613b85565b61400083161561369f57600e8101546000527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc60205260406000209350600e9150613b85565b6180008316156136e557600f8101546000527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d260205260406000209350600f9150613b85565b6201000083161561372c5760108101546000527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6020526040600020935060109150613b85565b620200008316156137735760118101546000527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6020526040600020935060119150613b85565b620400008316156137ba5760128101546000527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06020526040600020935060129150613b85565b620800008316156138015760138101546000527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06020526040600020935060139150613b85565b621000008316156138485760148101546000527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26020526040600020935060149150613b85565b6220000083161561388f5760158101546000527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96020526040600020935060159150613b85565b624000008316156138d65760168101546000527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776020526040600020935060169150613b85565b6280000083161561391d5760178101546000527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526020526040600020935060179150613b85565b63010000008316156139655760188101546000527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6020526040600020935060189150613b85565b63020000008316156139ad5760198101546000527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6020526040600020935060199150613b85565b63040000008316156139f557601a8101546000527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d060205260406000209350601a9150613b85565b6308000000831615613a3d57601b8101546000527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e60205260406000209350601b9150613b85565b6310000000831615613a8557601c8101546000527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e60205260406000209350601c9150613b85565b6320000000831615613acd57601d8101546000527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea32260205260406000209350601d9150613b85565b6340000000831615613b1557601e8101546000527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d73560205260406000209350601e9150613b85565b6380000000831615613b5d57601f8101546000527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a960205260406000209350601f9150613b85565b7f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d7579350602091505b601e8211614627576001821015613be357600283168015613bb157600182015460005284602052613bda565b846000527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb56020525b50604060002093505b6002821015613c3957600483168015613c0757600282015460005284602052613c30565b846000527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d306020525b50604060002093505b6003821015613c8f57600883168015613c5d57600382015460005284602052613c86565b846000527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba856020525b50604060002093505b6004821015613ce557601083168015613cb357600482015460005284602052613cdc565b846000527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a193446020525b50604060002093505b6005821015613d3b57602083168015613d0957600582015460005284602052613d32565b846000527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d6020525b50604060002093505b6006821015613d9157604083168015613d5f57600682015460005284602052613d88565b846000527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a19686020525b50604060002093505b6007821015613de757608083168015613db557600782015460005284602052613dde565b846000527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f836020525b50604060002093505b6008821015613e3e5761010083168015613e0c57600882015460005284602052613e35565b846000527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6020525b50604060002093505b6009821015613e955761020083168015613e6357600982015460005284602052613e8c565b846000527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06020525b50604060002093505b600a821015613eec5761040083168015613eba57600a82015460005284602052613ee3565b846000527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56020525b50604060002093505b600b821015613f435761080083168015613f1157600b82015460005284602052613f3a565b846000527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926020525b50604060002093505b600c821015613f9a5761100083168015613f6857600c82015460005284602052613f91565b846000527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6020525b50604060002093505b600d821015613ff15761200083168015613fbf57600d82015460005284602052613fe8565b846000527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6020525b50604060002093505b600e821015614048576140008316801561401657600e8201546000528460205261403f565b846000527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6020525b50604060002093505b600f82101561409f576180008316801561406d57600f82015460005284602052614096565b846000527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26020525b50604060002093505b60108210156140f75762010000831680156140c5576010820154600052846020526140ee565b846000527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6020525b50604060002093505b601182101561414f57620200008316801561411d57601182015460005284602052614146565b846000527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6020525b50604060002093505b60128210156141a75762040000831680156141755760128201546000528460205261419e565b846000527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06020525b50604060002093505b60138210156141ff5762080000831680156141cd576013820154600052846020526141f6565b846000527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06020525b50604060002093505b60148210156142575762100000831680156142255760148201546000528460205261424e565b846000527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26020525b50604060002093505b60158210156142af57622000008316801561427d576015820154600052846020526142a6565b846000527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96020525b50604060002093505b60168210156143075762400000831680156142d5576016820154600052846020526142fe565b846000527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776020525b50604060002093505b601782101561435f57628000008316801561432d57601782015460005284602052614356565b846000527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526020525b50604060002093505b60188210156143b857630100000083168015614386576018820154600052846020526143af565b846000527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6020525b50604060002093505b6019821015614411576302000000831680156143df57601982015460005284602052614408565b846000527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6020525b50604060002093505b601a82101561446a5763040000008316801561443857601a82015460005284602052614461565b846000527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06020525b50604060002093505b601b8210156144c35763080000008316801561449157601b820154600052846020526144ba565b846000527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6020525b50604060002093505b601c82101561451c576310000000831680156144ea57601c82015460005284602052614513565b846000527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6020525b50604060002093505b601d8210156145755763200000008316801561454357601d8201546000528460205261456c565b846000527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226020525b50604060002093505b601e8210156145ce5763400000008316801561459c57601e820154600052846020526145c5565b846000527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356020525b50604060002093505b601f821015614627576380000000831680156145f557601f8201546000528460205261461e565b846000527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96020525b50604060002093505b505050919050565b6040805160208082018890528183018790526001600160a01b038616606080840191909152835180840390910181526080830180855281519183019190912061048090930190935260009261469d92918590828261040080828437600092019190915250879150614fd19050565b9050868114610dad576040517ee587d20000000000000000000000000000000000000000000000000000000081526004810182905260248101889052604401610cf7565b62030d406146f56040830160208401615b0d565b63ffffffff1610801561471f575061eeee614713602083018361557c565b6001600160a01b031614155b15610a68576147346040820160208301615b0d565b6040517f555d0f1000000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015262030d406024820152604401610cf7565b6000366014336001600160a01b037f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566161480156147b55750808210155b156147e5576000366147c783856157bd565b6147d2928290615c15565b6147db91615c3f565b60601c9250505090565b339250505090565b600080602060008451602086016000885af180614810576040513d6000823e3d81fd5b50506000513d91508115614828578060011415614835565b6001600160a01b0384163b155b15610b73576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610cf7565b61487f6153d8565b6000836020018051614890906157e6565b90819052905060016148a460206002615d6b565b6148ae91906157bd565b8111156148e7576040517f8eab04bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b602081101561497c578160011660010361492357845184908260208110614913576149136157d0565b6020020152508391506109ae9050565b84518160208110614936576149366157d0565b602002015184604051602001614956929190918252602082015260400190565b60408051601f1981840301815291905280516020909101209350600191821c91016148ea565b506040517f8eab04bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052614a2e848261531f565b610b73576040516001600160a01b03848116602483015260006044830152614a6391869182169063095ea7b3906064016125d1565b610b7384826147ed565b85600003614aa7576040517f3cb7b09b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620493e060608415614c60576040840151614ac89063ffffffff168361583f565b915061eeed196001600160a01b03871601614bbb5760007f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d6001600160a01b031663e861e9076040518163ffffffff1660e01b8152600401602060405180830381865afa158015614b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b619190615822565b9050806001600160a01b031663d0e30db0876040518263ffffffff1660e01b81526004016000604051808303818588803b158015614b9e57600080fd5b505af1158015614bb2573d6000803e3d6000fd5b50939950505050505b60408051600180825281830190925290816020015b6040805180820190915260008082526020820152815260200190600190039081614bd05790505090506040518060400160405280876001600160a01b031681526020018681525081600081518110614c2a57614c2a6157d0565b6020026020010181905250614c60867f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d876149af565b60006040518060a00160405280614c743090565b604080516001600160a01b03909216602083015201604051602081830303815290604052815260200185604051602001614cae9190615aa8565b604051602081830303815290604052815260200183815260200160006001600160a01b03168152602001614d5560405180602001604052808781525060408051915160248084019190915281518084039091018152604490920190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f97a657c90000000000000000000000000000000000000000000000000000000017905290565b90526040517f20487ded0000000000000000000000000000000000000000000000000000000081529091506000906001600160a01b037f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d16906320487ded90614de4907f000000000000000000000000000000000000000000000000dda641cfe44aff82908690600401615d77565b602060405180830381865afa158015614e01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e259190615af4565b905089811115614e6b576040517f0ee99a47000000000000000000000000000000000000000000000000000000008152600481018b905260248101829052604401610cf7565b6040517f96f4e9f90000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d16906396f4e9f9908390614ef4907f000000000000000000000000000000000000000000000000dda641cfe44aff82908790600401615d77565b60206040518083038185885af1158015614f12573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190614f379190615af4565b506000614f4261258d565b6001600160a01b0316614f55838d6157bd565b604051600081818185875af1925050503d8060008114614f91576040519150601f19603f3d011682016040523d82523d6000602084013e614f96565b606091505b505090508061326c576040517f97484b1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020600582811b8216948552835194820394909452604060008181206002851615871b808503919091528386015190528181206004851615871b808503919091528286015190528181206008851615871b80850391909152606086015190528181206010851615871b8085039190915260808087015190915282822084861615881b8086039190915260a0870151905282822083861615881b8086039190915260c0870151905282822090851615871b8085039190915260e0860151905281812061010080861615881b80860392909252860151905281812061020080861615881b80860392909252610120870151909152828220610400861615881b808603919091526101408701519052828220610800861615881b808603919091526101608701519052828220611000861615881b808603919091526101808701519052828220612000861615881b808603919091526101a08701519052828220614000861615881b808603919091526101c08701519052828220618000861615881b808603919091526101e0870151905282822062010000861615881b8086039190915290860151905281812062020000851615871b80850391909152610220860151905281812062040000851615871b80850391909152610240860151905281812062080000851615871b80850391909152610260860151905281812062100000851615871b80850391909152610280860151905281812062200000851615871b808503919091526102a0860151905281812062400000851615871b808503919091526102c0860151905281812062800000851615871b808503919091526102e086015190528181206301000000851615871b8085039190915261030086015190528181206302000000851615871b8085039190915261032086015190528181206304000000851615871b8085039190915261034086015190528181206308000000851615871b8085039190915261036086015190528181206310000000851615871b8085039190915261038086015190528181206320000000851615871b808503919091526103a086015190528181206340000000851615871b808503919091526103c0860151905281812063800000009094161590951b91829003929092526103e090920151909152902090565b6000806000806020600086516020880160008a5af192503d91506000519050828015615364575081156153555780600114615364565b6000866001600160a01b03163b115b9695505050505050565b604080516080810182526000808252602082015290810161538d6153d8565b8152602001600081525090565b82602081019282156153c8579160200282015b828111156153c85782518255916020019190600101906153ad565b506153d49291506153eb565b5090565b604051806040016040528061538d615400565b5b808211156153d457600081556001016153ec565b6040518061040001604052806020906020820280368337509192915050565b60006020828403121561543157600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612f7c57600080fd5b60006104a0828403121561547457600080fd5b50919050565b6000806020838503121561548d57600080fd5b823567ffffffffffffffff808211156154a557600080fd5b818501915085601f8301126154b957600080fd5b8135818111156154c857600080fd5b8660208260071b85010111156154dd57600080fd5b60209290920196919550909350505050565b60006080828403121561547457600080fd5b60006080828403121561551357600080fd5b612f7c83836154ef565b6001600160a01b0381168114610a6857600080fd5b6000806000806080858703121561554857600080fd5b84359350602085013561555a8161551d565b92506040850135915060608501356155718161551d565b939692955090935050565b60006020828403121561558e57600080fd5b8135612f7c8161551d565b6000602082840312156155ab57600080fd5b813564ffffffffff81168114612f7c57600080fd5b815167ffffffffffffffff16815260208083015190820152604081016109ae565b600080602083850312156155f457600080fd5b823567ffffffffffffffff8082111561560c57600080fd5b818501915085601f83011261562057600080fd5b81358181111561562f57600080fd5b8660208260051b85010111156154dd57600080fd5b815167ffffffffffffffff1681526020808301518183015260408084015180516104808501939260009086015b8482101561568f578251815291840191600191909101908401615671565b5050500151610440830152606092909201516104609091015290565b6000602082840312156156bd57600080fd5b813567ffffffffffffffff8111156156d457600080fd5b820160a08185031215612f7c57600080fd5b600080602083850312156156f957600080fd5b823567ffffffffffffffff8082111561571157600080fd5b818501915085601f83011261572557600080fd5b81358181111561573457600080fd5b8660206104a0830285010111156154dd57600080fd5b634e487b7160e01b600052602160045260246000fd5b60208101600483106157745761577461574a565b91905290565b60208101600283106157745761577461574a565b6000602082840312156157a057600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156109ae576109ae6157a7565b634e487b7160e01b600052603260045260246000fd5b600060001982036157f9576157f96157a7565b5060010190565b60008261581d57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561583457600080fd5b8151612f7c8161551d565b808201808211156109ae576109ae6157a7565b803567ffffffffffffffff8116811461586a57600080fd5b919050565b60006020828403121561588157600080fd5b612f7c82615852565b6040808252810183905260008460608301825b868110156158cd5782356158b08161551d565b6001600160a01b031682526020928301929091019060010161589d565b5080925050506001600160a01b0383166020830152949350505050565b6000808335601e1984360301811261590157600080fd5b83018035915067ffffffffffffffff82111561591c57600080fd5b60200191503681900382131561593157600080fd5b9250929050565b6040805190810167ffffffffffffffff8111828210171561596957634e487b7160e01b600052604160045260246000fd5b60405290565b6000818303608081121561598257600080fd5b6040516060810181811067ffffffffffffffff821117156159b357634e487b7160e01b600052604160045260246000fd5b60405283356159c18161551d565b8152602084810135908201526040603f19830112156159df57600080fd5b6159e7615938565b91506159f560408501615852565b8252606093909301356020820152604083015250919050565b6000808335601e19843603018112615a2557600080fd5b83018035915067ffffffffffffffff821115615a4057600080fd5b6020019150600681901b360382131561593157600080fd5b600060408284031215615a6a57600080fd5b615a72615938565b8235615a7d8161551d565b81526020928301359281019290925250919050565b634e487b7160e01b600052600160045260246000fd5b60006080820190506001600160a01b038351168252602083015160208301526040830151615aed6040840182805167ffffffffffffffff168252602090810151910152565b5092915050565b600060208284031215615b0657600080fd5b5051919050565b600060208284031215615b1f57600080fd5b813563ffffffff81168114612f7c57600080fd5b6000815180845260005b81811015615b5957602081850181015186830182015201615b3d565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160a01b03808a168352886020840152876040840152808716606084015285608084015280851660a08401525060e060c0830152615bbf60e0830184615b33565b9998505050505050505050565b600060208284031215615bde57600080fd5b81518015158114612f7c57600080fd5b600067ffffffffffffffff808316818103615c0b57615c0b6157a7565b6001019392505050565b60008085851115615c2557600080fd5b83861115615c3257600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015615c7f5780818660140360031b1b83161692505b505092915050565b600181815b80851115615cc2578160001904821115615ca857615ca86157a7565b80851615615cb557918102915b93841c9390800290615c8c565b509250929050565b600082615cd9575060016109ae565b81615ce6575060006109ae565b8160018114615cfc5760028114615d0657615d22565b60019150506109ae565b60ff841115615d1757615d176157a7565b50506001821b6109ae565b5060208310610133831016604e8410600b8410161715615d45575081810a6109ae565b615d4f8383615c87565b8060001904821115615d6357615d636157a7565b029392505050565b6000612f7c8383615cca565b6000604067ffffffffffffffff851683526020604081850152845160a06040860152615da660e0860182615b33565b905081860151603f1980878403016060880152615dc38383615b33565b6040890151888203830160808a01528051808352908601945060009350908501905b80841015615e1757845180516001600160a01b0316835286015186830152938501936001939093019290860190615de5565b5060608901516001600160a01b031660a08901526080890151888203830160c08a01529550615e468187615b33565b9a995050505050505050505056fea26469706673582212209c55e86a735e54c8dcf952b1ec61ed953cdc81d6288653e8fc1ed1525419af0f64736f6c63430008170033",
|
|
1480
|
+
"metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract JBCCIPSuckerDeployer\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBTokens\",\"name\":\"tokens\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"enum JBAddToBalanceMode\",\"name\":\"addToBalanceMode\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"trusted_forwarder\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBCCIPSucker_FailedToRefundFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"}],\"name\":\"JBCCIPSucker_InvalidRouter\",\"type\":\"error\"},{\"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\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGasLimit\",\"type\":\"uint256\"}],\"name\":\"JBSucker_BelowMinGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBSucker_Deprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"givenTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumTime\",\"type\":\"uint256\"}],\"name\":\"JBSucker_DeprecationTimestampTooSoon\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBSucker_ExpectedMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"JBSucker_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"JBSucker_InsufficientMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"}],\"name\":\"JBSucker_InvalidNativeRemoteAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"inboxRoot\",\"type\":\"bytes32\"}],\"name\":\"JBSucker_InvalidProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"JBSucker_LeafAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum JBAddToBalanceMode\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"JBSucker_ManualNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"JBSucker_NoTerminalForToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"JBSucker_NotPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumAmount\",\"type\":\"uint256\"}],\"name\":\"JBSucker_QueueInsufficientSize\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mappedTo\",\"type\":\"address\"}],\"name\":\"JBSucker_TokenAlreadyMapped\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"JBSucker_TokenHasInvalidEmergencyHatchState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"JBSucker_TokenNotMapped\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"JBSucker_UnexpectedMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBSucker_ZeroBeneficiary\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBSucker_ZeroERC20Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MerkleLib__insert_treeIsFull\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"autoAddedToBalance\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"timestamp\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"DeprecationTimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"EmergencyHatchOpened\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashed\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"InsertToOutboxTree\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"NewInboxTreeRoot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"RootToRemote\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADD_TO_BALANCE_MODE\",\"outputs\":[{\"internalType\":\"enum JBAddToBalanceMode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CCIP_ROUTER\",\"outputs\":[{\"internalType\":\"contract ICCIPRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER_BASE_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER_ERC20_MIN_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_CHAIN_SELECTOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKENS\",\"outputs\":[{\"internalType\":\"contract IJBTokens\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"addOutstandingAmountToBalance\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"amountToAddToBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Client.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Client.Any2EVMMessage\",\"name\":\"any2EvmMessage\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct JBLeaf\",\"name\":\"leaf\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[32]\",\"name\":\"proof\",\"type\":\"bytes32[32]\"}],\"internalType\":\"struct JBClaim\",\"name\":\"claimData\",\"type\":\"tuple\"}],\"name\":\"claim\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct JBLeaf\",\"name\":\"leaf\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[32]\",\"name\":\"proof\",\"type\":\"bytes32[32]\"}],\"internalType\":\"struct JBClaim[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"name\":\"claim\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deployer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"enableEmergencyHatchFor\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct JBLeaf\",\"name\":\"leaf\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[32]\",\"name\":\"proof\",\"type\":\"bytes32[32]\"}],\"internalType\":\"struct JBClaim\",\"name\":\"claimData\",\"type\":\"tuple\"}],\"name\":\"exitThroughEmergencyHatch\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct JBInboxTreeRoot\",\"name\":\"remoteRoot\",\"type\":\"tuple\"}],\"internalType\":\"struct JBMessageRoot\",\"name\":\"root\",\"type\":\"tuple\"}],\"name\":\"fromRemote\",\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRouter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"inboxOf\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct JBInboxTreeRoot\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_projectId\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"isMapped\",\"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\":[{\"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\":\"map\",\"type\":\"tuple\"}],\"name\":\"mapToken\",\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"maps\",\"type\":\"tuple[]\"}],\"name\":\"mapTokens\",\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"outboxOf\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32[32]\",\"name\":\"branch\",\"type\":\"bytes32[32]\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"internalType\":\"struct MerkleLib.Tree\",\"name\":\"tree\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"numberOfClaimsSent\",\"type\":\"uint256\"}],\"internalType\":\"struct JBOutboxTree\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"peer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"peerChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minTokensReclaimed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"prepare\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"remoteTokenFor\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"emergencyHatch\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"minGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minBridgeAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct JBRemoteToken\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"timestamp\",\"type\":\"uint40\"}],\"name\":\"setDeprecation\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum JBSuckerState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"toRemote\",\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trustedForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addOutstandingAmountToBalance(address)\":{\"params\":{\"token\":\"The address of the terminal token to add to the project's balance.\"}},\"amountToAddToBalanceOf(address)\":{\"params\":{\"token\":\"The local terminal token to get the amount to add to balance for.\"}},\"ccipReceive((bytes32,uint64,bytes,bytes,(address,uint256)[]))\":{\"details\":\"Extremely important to ensure only router calls this.\",\"params\":{\"any2EvmMessage\":\"The message to process.\"}},\"claim((address,(uint256,address,uint256,uint256),bytes32[32]))\":{\"params\":{\"claimData\":\"The terminal token, merkle tree leaf, and proof for the claim.\"}},\"claim((address,(uint256,address,uint256,uint256),bytes32[32])[])\":{\"params\":{\"claims\":\"A list of claims to perform (including the terminal token, merkle tree leaf, and proof for each claim).\"}},\"constructor\":{\"params\":{\"addToBalanceMode\":\"The mode of adding tokens to balance.\",\"deployer\":\"A contract that deploys the clones for this contracts.\",\"directory\":\"A contract storing directories of terminals and controllers for each project.\",\"permissions\":\"A contract storing permissions.\",\"tokens\":\"A contract that manages token minting and burning.\"}},\"enableEmergencyHatchFor(address[])\":{\"details\":\"For use when a token or a few tokens are no longer compatible with a bridge.\",\"params\":{\"tokens\":\"The terminal tokens to enable the emergency hatch for.\"}},\"exitThroughEmergencyHatch((address,(uint256,address,uint256,uint256),bytes32[32]))\":{\"params\":{\"claimData\":\"The terminal token, merkle tree leaf, and proof for the claim\"}},\"fromRemote((address,uint256,(uint64,bytes32)))\":{\"details\":\"This can only be called by the messenger contract on the local chain, with a message from the remote peer.\",\"params\":{\"root\":\"The merkle root, token, and amount being received.\"}},\"getRouter()\":{\"returns\":{\"_0\":\"CCIP router address\"}},\"inboxOf(address)\":{\"params\":{\"token\":\"The local terminal token to get the inbox for.\"}},\"initialize(uint256)\":{\"params\":{\"_projectId\":\"The ID of the project (on the local chain) that this sucker is associated with.\"}},\"isMapped(address)\":{\"params\":{\"token\":\"The terminal token to check.\"},\"returns\":{\"_0\":\"A boolean which is `true` if the token is mapped to a remote token and `false` if it is not.\"}},\"isTrustedForwarder(address)\":{\"details\":\"Indicates whether any particular address is the trusted forwarder.\"},\"mapToken((address,uint32,address,uint256))\":{\"params\":{\"map\":\"The local and remote terminal token addresses to map, and minimum amount/gas limits for bridging them.\"}},\"mapTokens((address,uint32,address,uint256)[])\":{\"params\":{\"maps\":\"A list of local and remote terminal token addresses to map, and minimum amount/gas limits for bridging them.\"}},\"outboxOf(address)\":{\"params\":{\"token\":\"The local terminal token to get the remote token for.\"}},\"peerChainId()\":{\"returns\":{\"chainId\":\"of the peer.\"}},\"prepare(uint256,address,uint256,address)\":{\"details\":\"This adds the tokens and funds to the outbox tree for the `token`. They will be bridged by the next call to `toRemote` for the same `token`.\",\"params\":{\"beneficiary\":\"The address of the recipient of the tokens on the remote chain.\",\"minTokensReclaimed\":\"The minimum amount of terminal tokens to cash out for. If the amount cashed out is less than this, the transaction will revert.\",\"projectTokenCount\":\"The number of project tokens to prepare for bridging.\",\"token\":\"The address of the terminal token to cash out for.\"}},\"remoteTokenFor(address)\":{\"params\":{\"token\":\"The local terminal token to get the remote token for.\"}},\"setDeprecation(uint40)\":{\"params\":{\"timestamp\":\"The time after which the sucker will be deprecated. Or `0` to remove the upcoming deprecation.\"}},\"state()\":{\"returns\":{\"_0\":\"state The current deprecation state\"}},\"supportsInterface(bytes4)\":{\"details\":\"Should indicate whether the contract implements IAny2EVMMessageReceiver e.g. return interfaceId == type(IAny2EVMMessageReceiver).interfaceId || interfaceId == type(IERC165).interfaceId This allows CCIP to check if ccipReceive is available before calling it. If this returns false or reverts, only tokens are transferred to the receiver. If this returns true, tokens are transferred and ccipReceive is called atomically. Additionally, if the receiver address does not have code associated with it at the time of execution (EXTCODESIZE returns 0), only tokens will be transferred.\",\"params\":{\"interfaceId\":\"The interfaceId to check\"},\"returns\":{\"_0\":\"true if the interfaceId is supported\"}},\"toRemote(address)\":{\"details\":\"This sends the outbox root for the specified `token` to the remote chain.\",\"params\":{\"token\":\"The terminal token being bridged.\"}},\"trustedForwarder()\":{\"details\":\"Returns the address of the trusted forwarder.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ADD_TO_BALANCE_MODE()\":{\"notice\":\"Whether the `amountToAddToBalance` gets added to the project's balance automatically when `claim` is called or manually by calling `addOutstandingAmountToBalance`.\"},\"CCIP_ROUTER()\":{\"notice\":\"The CCIP router used to bridge tokens between the local and remote chain.\"},\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"MESSENGER_BASE_GAS_LIMIT()\":{\"notice\":\"A reasonable minimum gas limit for a basic cross-chain call. The minimum amount of gas required to call the `fromRemote` (successfully/safely) on the remote chain.\"},\"MESSENGER_ERC20_MIN_GAS_LIMIT()\":{\"notice\":\"A reasonable minimum gas limit used when bridging ERC-20s. The minimum amount of gas required to (successfully/safely) perform a transfer on the remote chain.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"REMOTE_CHAIN_ID()\":{\"notice\":\"The chain id of the remote chain.\"},\"REMOTE_CHAIN_SELECTOR()\":{\"notice\":\"The CCIP chain selector of the remote chain.\"},\"TOKENS()\":{\"notice\":\"The contract that manages token minting and burning.\"},\"addOutstandingAmountToBalance(address)\":{\"notice\":\"Adds the reclaimed `token` balance to the projects terminal. Can only be used if `ADD_TO_BALANCE_MODE` is `MANUAL`.\"},\"amountToAddToBalanceOf(address)\":{\"notice\":\"The outstanding amount of tokens to be added to the project's balance by `claim` or `addOutstandingAmountToBalance`.\"},\"ccipReceive((bytes32,uint64,bytes,bytes,(address,uint256)[]))\":{\"notice\":\"The entrypoint for the CCIP router to call. This function should never revert, all errors should be handled internally in this contract.\"},\"claim((address,(uint256,address,uint256,uint256),bytes32[32]))\":{\"notice\":\"`JBClaim` project tokens which have been bridged from the remote chain for their beneficiary.\"},\"claim((address,(uint256,address,uint256,uint256),bytes32[32])[])\":{\"notice\":\"Performs multiple claims.\"},\"deployer()\":{\"notice\":\"The address of this contract's deployer.\"},\"enableEmergencyHatchFor(address[])\":{\"notice\":\"Enables the emergency hatch for a list of tokens, allowing users to exit on the chain they deposited on.\"},\"exitThroughEmergencyHatch((address,(uint256,address,uint256,uint256),bytes32[32]))\":{\"notice\":\"Lets user exit on the chain they deposited in a scenario where the bridge is no longer functional.\"},\"fromRemote((address,uint256,(uint64,bytes32)))\":{\"notice\":\"Receive a merkle root for a terminal token from the remote project.\"},\"getRouter()\":{\"notice\":\"Return the current router\"},\"inboxOf(address)\":{\"notice\":\"The inbox merkle tree root for a given token.\"},\"initialize(uint256)\":{\"notice\":\"Initializes the sucker with the project ID and peer address.\"},\"isMapped(address)\":{\"notice\":\"Checks whether the specified token is mapped to a remote token.\"},\"mapToken((address,uint32,address,uint256))\":{\"notice\":\"Map an ERC-20 token on the local chain to an ERC-20 token on the remote chain, allowing that token to be bridged.\"},\"mapTokens((address,uint32,address,uint256)[])\":{\"notice\":\"Map multiple ERC-20 tokens on the local chain to ERC-20 tokens on the remote chain, allowing those tokens to be bridged.\"},\"outboxOf(address)\":{\"notice\":\"Information about the token on the remote chain that the given token on the local chain is mapped to.\"},\"peer()\":{\"notice\":\"The peer sucker on the remote chain.\"},\"peerChainId()\":{\"notice\":\"Returns the chain on which the peer is located.\"},\"prepare(uint256,address,uint256,address)\":{\"notice\":\"Prepare project tokens and the cash out amount backing them to be bridged to the remote chain.\"},\"projectId()\":{\"notice\":\"The ID of the project (on the local chain) that this sucker is associated with.\"},\"remoteTokenFor(address)\":{\"notice\":\"Information about the token on the remote chain that the given token on the local chain is mapped to.\"},\"setDeprecation(uint40)\":{\"notice\":\"Set or remove the time after which this sucker will be deprecated, once deprecated the sucker will no longer be functional and it will let all users exit.\"},\"state()\":{\"notice\":\"Reports the deprecation state of the sucker.\"},\"supportsInterface(bytes4)\":{\"notice\":\"IERC165 supports an interfaceId\"},\"toRemote(address)\":{\"notice\":\"Bridge the project tokens, cashed out funds, and beneficiary information for a given `token` to the remote chain.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/JBCCIPSucker.sol\":\"JBCCIPSucker\"},\"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/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/IGasRefunder.sol\":{\"keccak256\":\"0x35d07855184f8d31087ad0b67d1a8ccd0653a3a6c59c02513eb9c53b3371a385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://20eec9a16fa9003971a1ac5f5f7a3b7c558c57cba01f98c50959b5c93786f639\",\"dweb:/ipfs/QmaRQpgwZVQYe2EsFS4UrvrnFabJLQwUaBXm14C8V4rhBM\"]},\"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/@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IAny2EVMMessageReceiver.sol\":{\"keccak256\":\"0xd2a05a4f58a453cbf8cfa6aa78f58cb8e42091b3a025f711a0aa51f584e16b48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3bb4ca50612b0150a29b9ea7c82f6228914ff54716584541bad5c0259e8fa33\",\"dweb:/ipfs/QmTnqhNtBD9bUmqVaR4YHkWrBUdSGHV3DXAgrTM193PGkH\"]},\"node_modules/@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol\":{\"keccak256\":\"0x176bc6a1bec19d76464566d4becb68946e4c53b779e2019b34f95be4fee571f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f8abd3813d7acb8f5b510dbdc9f7eb9b0fe300ea4261ae9c4f843e0d3f0b24a\",\"dweb:/ipfs/QmSCmCC5wXYqgvLfpdqWxZTfo837DYVPLo9CYEKhgid1DA\"]},\"node_modules/@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol\":{\"keccak256\":\"0xa1ce70adec733c80b230084b425a50caa852a99f17a7e43e38a96a975f11ce88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08db3aa57ceae13832c1bf323aa29afa2620fd5b5205ff0d56152bf323c56256\",\"dweb:/ipfs/QmUG2FSVP8xXVkdgFwNhc4YFDU7FNCaf1kKShiTaaHUddE\"]},\"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/JBCCIPSucker.sol\":{\"keccak256\":\"0xd7bc72a33884a1c91150aa2b76612941363e959c2f7533cf3de6451506b761da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://798e866abfd329fa51a92d02562f22553e73b6dabc83cbd07dc06d243ed3c712\",\"dweb:/ipfs/QmW2oBKfo81EESzuNZ35K9XqsWAkNqntMVhTgA1JAN1cPq\"]},\"src/JBSucker.sol\":{\"keccak256\":\"0x79a301ca37984bb8be6574a29d9597857825ac866d84668083acc015ed5c2d41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://352dc9899b2febb5e978b79a8f1ecbf937b8a089e8206bf4613bfa758020797f\",\"dweb:/ipfs/QmXHcDruSZW2UhpWLxMRkeG1xFutmNGYz3Zx3jCNVZsMZw\"]},\"src/deployers/JBCCIPSuckerDeployer.sol\":{\"keccak256\":\"0x48d62feae6e06c8233f0c1be90e817b8cd3c8b4c7a4d0dfb375211d38256b191\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16a359716c7cbef40f6a50eeaca2b392e2244cfe1572e2dd5423b9f5ab532b7f\",\"dweb:/ipfs/QmSLP8t7Adqqrbhn9XDXgfgREjMkibLDtJ6d8sryYYYjyd\"]},\"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/ICCIPRouter.sol\":{\"keccak256\":\"0x335265248704b77676b114f6faae3750e84d3829038ee901804be4f0daf7c03c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f3ce3b4648f1cc0ff4f25d09872a257361c54d773e7622e843830954c364ec2\",\"dweb:/ipfs/QmVcdbjmjf9UEe1NawEokARnnYpkFb2SFtWG4LKM2dD9NQ\"]},\"src/interfaces/IJBArbitrumSuckerDeployer.sol\":{\"keccak256\":\"0xcc01de6dc009398f3418e0b04bfc843f323650a7e2835d969f386cf547e1034b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f94cc870879012b94fc00e72b441c3bc70b8776e6600598ec26b4f17b26e2086\",\"dweb:/ipfs/QmTobhhcHcAMfJfQU4zin88Li8PTDNLaroXm7MX7hKauXu\"]},\"src/interfaces/IJBCCIPSuckerDeployer.sol\":{\"keccak256\":\"0xcaf4286d59c259c7ed8b3ac21d1612fa811ea908f3c5974df02f61a8ff0827a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e27136ca19708440ff7aa6711408d331328240704080d95f7ef6a433db07b695\",\"dweb:/ipfs/QmT6tgtRH4c1bzdvC6rVu1wzmgucGSmtnxWioWVcgXzSXq\"]},\"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/interfaces/IWrappedNativeToken.sol\":{\"keccak256\":\"0xb890a076ec70d0082a17dbf1b24cd8e8b4370cde987723736507a05b2064f3c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b51d694d9809a66990d9599cc9025d2de9d838abee8a089c32c13cbfc190f2c2\",\"dweb:/ipfs/QmZWMXvTvK5cV6vhChL7b2qtB8C14G1sv3gD333ZLMmrow\"]},\"src/libraries/CCIPHelper.sol\":{\"keccak256\":\"0xf53337a0e219b8ddf10d8a93f1f0273bfb1b1cdbfd25340ea838237065e8aa4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3dc194cbc561ff456b057e2a590641cee5ded203ff687330abca98534145016\",\"dweb:/ipfs/QmeCkctgbAEPWgUK6pkzHavZoHnuMG3C9sNyhW4qrceWot\"]},\"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}",
|
|
1481
|
+
"gitCommit": "15954670a31005d16a26229742a824cdc93eee06",
|
|
1482
|
+
"history": []
|
|
1483
|
+
}
|