@zoralabs/coins 0.9.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/.turbo/turbo-build.log +179 -114
  2. package/CHANGELOG.md +46 -0
  3. package/abis/BaseCoin.json +26 -118
  4. package/abis/BaseTest.json +47 -0
  5. package/abis/BuySupplyWithSwapRouterHook.json +40 -0
  6. package/abis/Coin.json +171 -63
  7. package/abis/CoinDopplerMultiCurve.json +38 -0
  8. package/abis/CoinRewardsV4.json +54 -0
  9. package/abis/CoinTest.json +53 -20
  10. package/abis/CoinUniV4Test.json +1091 -0
  11. package/abis/CoinV4.json +234 -211
  12. package/abis/DeployScript.json +47 -0
  13. package/abis/DeployedCoinVersionLookup.json +21 -0
  14. package/abis/DeployedCoinVersionLookupTest.json +716 -0
  15. package/abis/DifferentNamespaceVersionLookup.json +39 -0
  16. package/abis/DopplerUniswapV3Test.json +49 -93
  17. package/abis/ERC20.json +310 -0
  18. package/abis/FactoryTest.json +85 -7
  19. package/abis/FeeEstimatorHook.json +1515 -0
  20. package/abis/HooksDeployment.json +23 -0
  21. package/abis/HooksTest.json +60 -0
  22. package/abis/ICoin.json +40 -71
  23. package/abis/ICoinV3.json +879 -0
  24. package/abis/ICoinV4.json +915 -0
  25. package/abis/IDeployedCoinVersionLookup.json +21 -0
  26. package/abis/IERC721.json +36 -36
  27. package/abis/IHasPoolKey.json +42 -0
  28. package/abis/IHasRewardsRecipients.json +54 -0
  29. package/abis/IHasSwapPath.json +60 -0
  30. package/abis/IMsgSender.json +15 -0
  31. package/abis/IPoolConfigEncoding.json +46 -0
  32. package/abis/ISwapPathRouter.json +92 -0
  33. package/abis/IUniversalRouter.json +61 -0
  34. package/abis/IUnlockCallback.json +21 -0
  35. package/abis/IV4Quoter.json +310 -0
  36. package/abis/IZoraFactory.json +210 -11
  37. package/abis/IZoraV4CoinHook.json +348 -4
  38. package/abis/MockERC20.json +21 -0
  39. package/abis/MultiOwnableTest.json +47 -0
  40. package/abis/{CoinConfigurationVersions.json → Position.json} +1 -1
  41. package/abis/PrintUpgradeCommand.json +9 -0
  42. package/abis/ProxyShim.json +24 -0
  43. package/abis/StateLibrary.json +80 -0
  44. package/abis/TestDeployedCoinVersionLookupImplementation.json +39 -0
  45. package/abis/TestV4Swap.json +9 -0
  46. package/abis/UpgradeCoinImpl.json +47 -0
  47. package/abis/UpgradesTest.json +81 -0
  48. package/abis/Vm.json +1482 -111
  49. package/abis/VmSafe.json +856 -32
  50. package/abis/ZoraFactoryImpl.json +339 -1
  51. package/abis/ZoraV4CoinHook.json +442 -5
  52. package/addresses/8453.json +7 -4
  53. package/addresses/84532.json +8 -5
  54. package/addresses/dev/8453.json +10 -0
  55. package/dist/index.cjs +1932 -167
  56. package/dist/index.cjs.map +1 -1
  57. package/dist/index.js +1928 -167
  58. package/dist/index.js.map +1 -1
  59. package/dist/wagmiGenerated.d.ts +2606 -160
  60. package/dist/wagmiGenerated.d.ts.map +1 -1
  61. package/foundry.toml +1 -0
  62. package/package/wagmiGenerated.ts +1941 -164
  63. package/package.json +8 -3
  64. package/remappings.txt +6 -1
  65. package/script/Deploy.s.sol +1 -1
  66. package/script/DeployDevFactory.s.sol +21 -0
  67. package/script/DeployHooks.s.sol +1 -1
  68. package/script/PrintUpgradeCommand.s.sol +13 -0
  69. package/script/Simulate.s.sol +1 -10
  70. package/script/TestBackingCoinSwap.s.sol +147 -0
  71. package/script/TestV4Swap.s.sol +136 -0
  72. package/script/UpgradeCoinImpl.sol +2 -2
  73. package/script/UpgradeFactoryImpl.s.sol +2 -2
  74. package/src/BaseCoin.sol +190 -0
  75. package/src/Coin.sol +87 -202
  76. package/src/CoinV4.sol +121 -0
  77. package/src/ZoraFactoryImpl.sol +208 -36
  78. package/{script → src/deployment}/CoinsDeployerBase.sol +111 -17
  79. package/src/hooks/ZoraV4CoinHook.sol +212 -0
  80. package/src/hooks/{BaseCoinDeployHook.sol → deployment/BaseCoinDeployHook.sol} +3 -3
  81. package/src/hooks/deployment/BuySupplyWithSwapRouterHook.sol +140 -0
  82. package/src/interfaces/ICoin.sol +31 -39
  83. package/src/interfaces/ICoinV3.sol +71 -0
  84. package/src/interfaces/ICoinV4.sol +69 -0
  85. package/src/interfaces/IDeployedCoinVersionLookup.sol +11 -0
  86. package/src/interfaces/IMsgSender.sol +9 -0
  87. package/src/interfaces/IPoolConfigEncoding.sol +14 -0
  88. package/src/interfaces/ISwapPathRouter.sol +14 -0
  89. package/src/interfaces/IZoraFactory.sol +67 -28
  90. package/src/interfaces/IZoraV4CoinHook.sol +116 -0
  91. package/src/libs/CoinCommon.sol +15 -0
  92. package/src/libs/CoinConfigurationVersions.sol +116 -1
  93. package/src/libs/CoinConstants.sol +5 -0
  94. package/src/libs/CoinDopplerMultiCurve.sol +134 -0
  95. package/src/libs/CoinDopplerUniV3.sol +19 -171
  96. package/src/libs/CoinRewards.sol +195 -0
  97. package/src/libs/CoinRewardsV4.sol +179 -0
  98. package/src/libs/CoinSetup.sol +57 -0
  99. package/src/libs/CoinSetupV3.sol +6 -67
  100. package/src/libs/DopplerMath.sol +156 -0
  101. package/src/libs/HooksDeployment.sol +128 -0
  102. package/src/libs/MarketConstants.sol +4 -0
  103. package/src/libs/PoolStateReader.sol +22 -0
  104. package/src/libs/UniV3BuySell.sol +74 -292
  105. package/src/libs/UniV4SwapHelper.sol +65 -0
  106. package/src/libs/UniV4SwapToCurrency.sol +109 -0
  107. package/src/libs/V4Liquidity.sol +122 -0
  108. package/src/types/PoolConfiguration.sol +15 -0
  109. package/src/utils/DeployedCoinVersionLookup.sol +52 -0
  110. package/src/version/ContractVersionBase.sol +1 -1
  111. package/test/Coin.t.sol +78 -88
  112. package/test/CoinDopplerUniV3.t.sol +32 -171
  113. package/test/CoinUniV4.t.sol +777 -0
  114. package/test/{Hooks.t.sol → DeploymentHooks.t.sol} +53 -16
  115. package/test/Factory.t.sol +80 -47
  116. package/test/MultiOwnable.t.sol +6 -3
  117. package/test/Upgrades.t.sol +97 -5
  118. package/test/mocks/MockERC20.sol +12 -0
  119. package/test/utils/BaseTest.sol +162 -57
  120. package/test/utils/DeployedCoinVersionLookup.t.sol +127 -0
  121. package/test/utils/FeeEstimatorHook.sol +84 -0
  122. package/test/utils/ProxyShim.sol +17 -0
  123. package/wagmi.config.ts +4 -0
  124. package/.env +0 -1
  125. package/.turbo/turbo-update-contract-version.log +0 -22
  126. package/abis/CoinSetupV3.json +0 -7
  127. package/abis/HookDeployer.json +0 -68
  128. package/abis/IHookDeployer.json +0 -42
  129. package/src/hooks/BuySupplyWithSwapRouterHook.sol +0 -78
  130. package/src/libs/CoinLegacy.sol +0 -48
  131. package/src/libs/CoinLegacyMarket.sol +0 -182
@@ -0,0 +1,1091 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "CREATE_REFERRAL_REWARD_BPS",
5
+ "inputs": [],
6
+ "outputs": [
7
+ {
8
+ "name": "",
9
+ "type": "uint256",
10
+ "internalType": "uint256"
11
+ }
12
+ ],
13
+ "stateMutability": "view"
14
+ },
15
+ {
16
+ "type": "function",
17
+ "name": "CREATOR_REWARD_BPS",
18
+ "inputs": [],
19
+ "outputs": [
20
+ {
21
+ "name": "",
22
+ "type": "uint256",
23
+ "internalType": "uint256"
24
+ }
25
+ ],
26
+ "stateMutability": "view"
27
+ },
28
+ {
29
+ "type": "function",
30
+ "name": "DOPPLER_REWARD_BPS",
31
+ "inputs": [],
32
+ "outputs": [
33
+ {
34
+ "name": "",
35
+ "type": "uint256",
36
+ "internalType": "uint256"
37
+ }
38
+ ],
39
+ "stateMutability": "view"
40
+ },
41
+ {
42
+ "type": "function",
43
+ "name": "IS_TEST",
44
+ "inputs": [],
45
+ "outputs": [
46
+ {
47
+ "name": "",
48
+ "type": "bool",
49
+ "internalType": "bool"
50
+ }
51
+ ],
52
+ "stateMutability": "view"
53
+ },
54
+ {
55
+ "type": "function",
56
+ "name": "TRADE_REFERRAL_REWARD_BPS",
57
+ "inputs": [],
58
+ "outputs": [
59
+ {
60
+ "name": "",
61
+ "type": "uint256",
62
+ "internalType": "uint256"
63
+ }
64
+ ],
65
+ "stateMutability": "view"
66
+ },
67
+ {
68
+ "type": "function",
69
+ "name": "excludeArtifacts",
70
+ "inputs": [],
71
+ "outputs": [
72
+ {
73
+ "name": "excludedArtifacts_",
74
+ "type": "string[]",
75
+ "internalType": "string[]"
76
+ }
77
+ ],
78
+ "stateMutability": "view"
79
+ },
80
+ {
81
+ "type": "function",
82
+ "name": "excludeContracts",
83
+ "inputs": [],
84
+ "outputs": [
85
+ {
86
+ "name": "excludedContracts_",
87
+ "type": "address[]",
88
+ "internalType": "address[]"
89
+ }
90
+ ],
91
+ "stateMutability": "view"
92
+ },
93
+ {
94
+ "type": "function",
95
+ "name": "excludeSelectors",
96
+ "inputs": [],
97
+ "outputs": [
98
+ {
99
+ "name": "excludedSelectors_",
100
+ "type": "tuple[]",
101
+ "internalType": "struct StdInvariant.FuzzSelector[]",
102
+ "components": [
103
+ {
104
+ "name": "addr",
105
+ "type": "address",
106
+ "internalType": "address"
107
+ },
108
+ {
109
+ "name": "selectors",
110
+ "type": "bytes4[]",
111
+ "internalType": "bytes4[]"
112
+ }
113
+ ]
114
+ }
115
+ ],
116
+ "stateMutability": "view"
117
+ },
118
+ {
119
+ "type": "function",
120
+ "name": "excludeSenders",
121
+ "inputs": [],
122
+ "outputs": [
123
+ {
124
+ "name": "excludedSenders_",
125
+ "type": "address[]",
126
+ "internalType": "address[]"
127
+ }
128
+ ],
129
+ "stateMutability": "view"
130
+ },
131
+ {
132
+ "type": "function",
133
+ "name": "failed",
134
+ "inputs": [],
135
+ "outputs": [
136
+ {
137
+ "name": "",
138
+ "type": "bool",
139
+ "internalType": "bool"
140
+ }
141
+ ],
142
+ "stateMutability": "view"
143
+ },
144
+ {
145
+ "type": "function",
146
+ "name": "setUp",
147
+ "inputs": [],
148
+ "outputs": [],
149
+ "stateMutability": "nonpayable"
150
+ },
151
+ {
152
+ "type": "function",
153
+ "name": "setUpWithBlockNumber",
154
+ "inputs": [
155
+ {
156
+ "name": "forkBlockNumber",
157
+ "type": "uint256",
158
+ "internalType": "uint256"
159
+ }
160
+ ],
161
+ "outputs": [],
162
+ "stateMutability": "nonpayable"
163
+ },
164
+ {
165
+ "type": "function",
166
+ "name": "targetArtifactSelectors",
167
+ "inputs": [],
168
+ "outputs": [
169
+ {
170
+ "name": "targetedArtifactSelectors_",
171
+ "type": "tuple[]",
172
+ "internalType": "struct StdInvariant.FuzzArtifactSelector[]",
173
+ "components": [
174
+ {
175
+ "name": "artifact",
176
+ "type": "string",
177
+ "internalType": "string"
178
+ },
179
+ {
180
+ "name": "selectors",
181
+ "type": "bytes4[]",
182
+ "internalType": "bytes4[]"
183
+ }
184
+ ]
185
+ }
186
+ ],
187
+ "stateMutability": "view"
188
+ },
189
+ {
190
+ "type": "function",
191
+ "name": "targetArtifacts",
192
+ "inputs": [],
193
+ "outputs": [
194
+ {
195
+ "name": "targetedArtifacts_",
196
+ "type": "string[]",
197
+ "internalType": "string[]"
198
+ }
199
+ ],
200
+ "stateMutability": "view"
201
+ },
202
+ {
203
+ "type": "function",
204
+ "name": "targetContracts",
205
+ "inputs": [],
206
+ "outputs": [
207
+ {
208
+ "name": "targetedContracts_",
209
+ "type": "address[]",
210
+ "internalType": "address[]"
211
+ }
212
+ ],
213
+ "stateMutability": "view"
214
+ },
215
+ {
216
+ "type": "function",
217
+ "name": "targetInterfaces",
218
+ "inputs": [],
219
+ "outputs": [
220
+ {
221
+ "name": "targetedInterfaces_",
222
+ "type": "tuple[]",
223
+ "internalType": "struct StdInvariant.FuzzInterface[]",
224
+ "components": [
225
+ {
226
+ "name": "addr",
227
+ "type": "address",
228
+ "internalType": "address"
229
+ },
230
+ {
231
+ "name": "artifacts",
232
+ "type": "string[]",
233
+ "internalType": "string[]"
234
+ }
235
+ ]
236
+ }
237
+ ],
238
+ "stateMutability": "view"
239
+ },
240
+ {
241
+ "type": "function",
242
+ "name": "targetSelectors",
243
+ "inputs": [],
244
+ "outputs": [
245
+ {
246
+ "name": "targetedSelectors_",
247
+ "type": "tuple[]",
248
+ "internalType": "struct StdInvariant.FuzzSelector[]",
249
+ "components": [
250
+ {
251
+ "name": "addr",
252
+ "type": "address",
253
+ "internalType": "address"
254
+ },
255
+ {
256
+ "name": "selectors",
257
+ "type": "bytes4[]",
258
+ "internalType": "bytes4[]"
259
+ }
260
+ ]
261
+ }
262
+ ],
263
+ "stateMutability": "view"
264
+ },
265
+ {
266
+ "type": "function",
267
+ "name": "targetSenders",
268
+ "inputs": [],
269
+ "outputs": [
270
+ {
271
+ "name": "targetedSenders_",
272
+ "type": "address[]",
273
+ "internalType": "address[]"
274
+ }
275
+ ],
276
+ "stateMutability": "view"
277
+ },
278
+ {
279
+ "type": "function",
280
+ "name": "testSwappingEmitsSwapEventFromSenderNoRevert",
281
+ "inputs": [],
282
+ "outputs": [],
283
+ "stateMutability": "nonpayable"
284
+ },
285
+ {
286
+ "type": "function",
287
+ "name": "testSwappingEmitsSwapEventFromSenderReverts",
288
+ "inputs": [],
289
+ "outputs": [],
290
+ "stateMutability": "nonpayable"
291
+ },
292
+ {
293
+ "type": "function",
294
+ "name": "testSwappingEmitsSwapEventFromTrustedMessageSenderNoRevert",
295
+ "inputs": [],
296
+ "outputs": [],
297
+ "stateMutability": "nonpayable"
298
+ },
299
+ {
300
+ "type": "function",
301
+ "name": "testSwappingEmitsSwapEventFromTrustedMessageSenderReverts",
302
+ "inputs": [],
303
+ "outputs": [],
304
+ "stateMutability": "nonpayable"
305
+ },
306
+ {
307
+ "type": "function",
308
+ "name": "test_afterInitializeRevertsWhenSenderIsNotACoin",
309
+ "inputs": [],
310
+ "outputs": [],
311
+ "stateMutability": "nonpayable"
312
+ },
313
+ {
314
+ "type": "function",
315
+ "name": "test_canGetQuoteForSwappingCurrencyForCoin",
316
+ "inputs": [],
317
+ "outputs": [],
318
+ "stateMutability": "nonpayable"
319
+ },
320
+ {
321
+ "type": "function",
322
+ "name": "test_canSwapCoinForCurrencyCoinIsFirst",
323
+ "inputs": [
324
+ {
325
+ "name": "amountIn",
326
+ "type": "uint128",
327
+ "internalType": "uint128"
328
+ }
329
+ ],
330
+ "outputs": [],
331
+ "stateMutability": "nonpayable"
332
+ },
333
+ {
334
+ "type": "function",
335
+ "name": "test_canSwapCoinForCurrencyCoinIsSecond",
336
+ "inputs": [
337
+ {
338
+ "name": "amountIn",
339
+ "type": "uint128",
340
+ "internalType": "uint128"
341
+ }
342
+ ],
343
+ "outputs": [],
344
+ "stateMutability": "nonpayable"
345
+ },
346
+ {
347
+ "type": "function",
348
+ "name": "test_canSwapCurrencyForCoinCoinIsFirst",
349
+ "inputs": [
350
+ {
351
+ "name": "amountIn",
352
+ "type": "uint128",
353
+ "internalType": "uint128"
354
+ }
355
+ ],
356
+ "outputs": [],
357
+ "stateMutability": "nonpayable"
358
+ },
359
+ {
360
+ "type": "function",
361
+ "name": "test_canSwapCurrencyForCoinCoinIsSecond",
362
+ "inputs": [
363
+ {
364
+ "name": "amountIn",
365
+ "type": "uint128",
366
+ "internalType": "uint128"
367
+ }
368
+ ],
369
+ "outputs": [],
370
+ "stateMutability": "nonpayable"
371
+ },
372
+ {
373
+ "type": "function",
374
+ "name": "test_distributesMarketRewards",
375
+ "inputs": [
376
+ {
377
+ "name": "amountIn",
378
+ "type": "uint64",
379
+ "internalType": "uint64"
380
+ },
381
+ {
382
+ "name": "hasCreateReferral",
383
+ "type": "bool",
384
+ "internalType": "bool"
385
+ },
386
+ {
387
+ "name": "hasTradeReferral",
388
+ "type": "bool",
389
+ "internalType": "bool"
390
+ }
391
+ ],
392
+ "outputs": [],
393
+ "stateMutability": "nonpayable"
394
+ },
395
+ {
396
+ "type": "function",
397
+ "name": "test_estimateLpFees",
398
+ "inputs": [],
399
+ "outputs": [],
400
+ "stateMutability": "nonpayable"
401
+ },
402
+ {
403
+ "type": "function",
404
+ "name": "test_getSwapPath_whenBackingCurrencyIsErc20",
405
+ "inputs": [],
406
+ "outputs": [],
407
+ "stateMutability": "nonpayable"
408
+ },
409
+ {
410
+ "type": "function",
411
+ "name": "test_getSwapPath_whenBackingCurrencyProvidesPath",
412
+ "inputs": [],
413
+ "outputs": [],
414
+ "stateMutability": "nonpayable"
415
+ },
416
+ {
417
+ "type": "function",
418
+ "name": "test_setupZeroAddressForHooks",
419
+ "inputs": [],
420
+ "outputs": [],
421
+ "stateMutability": "nonpayable"
422
+ },
423
+ {
424
+ "type": "function",
425
+ "name": "test_setupZeroAddressForPoolManager",
426
+ "inputs": [],
427
+ "outputs": [],
428
+ "stateMutability": "nonpayable"
429
+ },
430
+ {
431
+ "type": "function",
432
+ "name": "test_swap_emitsCoinMarketRewardsV4",
433
+ "inputs": [
434
+ {
435
+ "name": "amountIn",
436
+ "type": "uint64",
437
+ "internalType": "uint64"
438
+ }
439
+ ],
440
+ "outputs": [],
441
+ "stateMutability": "nonpayable"
442
+ },
443
+ {
444
+ "type": "function",
445
+ "name": "test_swap_withBackingCoinToZora_paysRewardsInZoraOnly",
446
+ "inputs": [
447
+ {
448
+ "name": "amountIn",
449
+ "type": "uint128",
450
+ "internalType": "uint128"
451
+ }
452
+ ],
453
+ "outputs": [],
454
+ "stateMutability": "nonpayable"
455
+ },
456
+ {
457
+ "type": "event",
458
+ "name": "CoinMarketRewardsV4",
459
+ "inputs": [
460
+ {
461
+ "name": "coin",
462
+ "type": "address",
463
+ "indexed": false,
464
+ "internalType": "address"
465
+ },
466
+ {
467
+ "name": "currency",
468
+ "type": "address",
469
+ "indexed": false,
470
+ "internalType": "address"
471
+ },
472
+ {
473
+ "name": "payoutRecipient",
474
+ "type": "address",
475
+ "indexed": false,
476
+ "internalType": "address"
477
+ },
478
+ {
479
+ "name": "platformReferrer",
480
+ "type": "address",
481
+ "indexed": false,
482
+ "internalType": "address"
483
+ },
484
+ {
485
+ "name": "tradeReferrer",
486
+ "type": "address",
487
+ "indexed": false,
488
+ "internalType": "address"
489
+ },
490
+ {
491
+ "name": "protocolRewardRecipient",
492
+ "type": "address",
493
+ "indexed": false,
494
+ "internalType": "address"
495
+ },
496
+ {
497
+ "name": "dopplerRecipient",
498
+ "type": "address",
499
+ "indexed": false,
500
+ "internalType": "address"
501
+ },
502
+ {
503
+ "name": "marketRewards",
504
+ "type": "tuple",
505
+ "indexed": false,
506
+ "internalType": "struct IZoraV4CoinHook.MarketRewardsV4",
507
+ "components": [
508
+ {
509
+ "name": "creatorPayoutAmountCurrency",
510
+ "type": "uint256",
511
+ "internalType": "uint256"
512
+ },
513
+ {
514
+ "name": "creatorPayoutAmountCoin",
515
+ "type": "uint256",
516
+ "internalType": "uint256"
517
+ },
518
+ {
519
+ "name": "platformReferrerAmountCurrency",
520
+ "type": "uint256",
521
+ "internalType": "uint256"
522
+ },
523
+ {
524
+ "name": "platformReferrerAmountCoin",
525
+ "type": "uint256",
526
+ "internalType": "uint256"
527
+ },
528
+ {
529
+ "name": "tradeReferrerAmountCurrency",
530
+ "type": "uint256",
531
+ "internalType": "uint256"
532
+ },
533
+ {
534
+ "name": "tradeReferrerAmountCoin",
535
+ "type": "uint256",
536
+ "internalType": "uint256"
537
+ },
538
+ {
539
+ "name": "protocolAmountCurrency",
540
+ "type": "uint256",
541
+ "internalType": "uint256"
542
+ },
543
+ {
544
+ "name": "protocolAmountCoin",
545
+ "type": "uint256",
546
+ "internalType": "uint256"
547
+ },
548
+ {
549
+ "name": "dopplerAmountCurrency",
550
+ "type": "uint256",
551
+ "internalType": "uint256"
552
+ },
553
+ {
554
+ "name": "dopplerAmountCoin",
555
+ "type": "uint256",
556
+ "internalType": "uint256"
557
+ }
558
+ ]
559
+ }
560
+ ],
561
+ "anonymous": false
562
+ },
563
+ {
564
+ "type": "event",
565
+ "name": "Swapped",
566
+ "inputs": [
567
+ {
568
+ "name": "sender",
569
+ "type": "address",
570
+ "indexed": true,
571
+ "internalType": "address"
572
+ },
573
+ {
574
+ "name": "swapSender",
575
+ "type": "address",
576
+ "indexed": true,
577
+ "internalType": "address"
578
+ },
579
+ {
580
+ "name": "isTrustedSwapSenderAddress",
581
+ "type": "bool",
582
+ "indexed": false,
583
+ "internalType": "bool"
584
+ },
585
+ {
586
+ "name": "key",
587
+ "type": "tuple",
588
+ "indexed": false,
589
+ "internalType": "struct PoolKey",
590
+ "components": [
591
+ {
592
+ "name": "currency0",
593
+ "type": "address",
594
+ "internalType": "Currency"
595
+ },
596
+ {
597
+ "name": "currency1",
598
+ "type": "address",
599
+ "internalType": "Currency"
600
+ },
601
+ {
602
+ "name": "fee",
603
+ "type": "uint24",
604
+ "internalType": "uint24"
605
+ },
606
+ {
607
+ "name": "tickSpacing",
608
+ "type": "int24",
609
+ "internalType": "int24"
610
+ },
611
+ {
612
+ "name": "hooks",
613
+ "type": "address",
614
+ "internalType": "contract IHooks"
615
+ }
616
+ ]
617
+ },
618
+ {
619
+ "name": "poolKeyHash",
620
+ "type": "bytes32",
621
+ "indexed": true,
622
+ "internalType": "bytes32"
623
+ },
624
+ {
625
+ "name": "params",
626
+ "type": "tuple",
627
+ "indexed": false,
628
+ "internalType": "struct SwapParams",
629
+ "components": [
630
+ {
631
+ "name": "zeroForOne",
632
+ "type": "bool",
633
+ "internalType": "bool"
634
+ },
635
+ {
636
+ "name": "amountSpecified",
637
+ "type": "int256",
638
+ "internalType": "int256"
639
+ },
640
+ {
641
+ "name": "sqrtPriceLimitX96",
642
+ "type": "uint160",
643
+ "internalType": "uint160"
644
+ }
645
+ ]
646
+ },
647
+ {
648
+ "name": "amount0",
649
+ "type": "int128",
650
+ "indexed": false,
651
+ "internalType": "int128"
652
+ },
653
+ {
654
+ "name": "amount1",
655
+ "type": "int128",
656
+ "indexed": false,
657
+ "internalType": "int128"
658
+ },
659
+ {
660
+ "name": "isCoinBuy",
661
+ "type": "bool",
662
+ "indexed": false,
663
+ "internalType": "bool"
664
+ },
665
+ {
666
+ "name": "hookData",
667
+ "type": "bytes",
668
+ "indexed": false,
669
+ "internalType": "bytes"
670
+ },
671
+ {
672
+ "name": "sqrtPriceX96",
673
+ "type": "uint160",
674
+ "indexed": false,
675
+ "internalType": "uint160"
676
+ }
677
+ ],
678
+ "anonymous": false
679
+ },
680
+ {
681
+ "type": "event",
682
+ "name": "log",
683
+ "inputs": [
684
+ {
685
+ "name": "",
686
+ "type": "string",
687
+ "indexed": false,
688
+ "internalType": "string"
689
+ }
690
+ ],
691
+ "anonymous": false
692
+ },
693
+ {
694
+ "type": "event",
695
+ "name": "log_address",
696
+ "inputs": [
697
+ {
698
+ "name": "",
699
+ "type": "address",
700
+ "indexed": false,
701
+ "internalType": "address"
702
+ }
703
+ ],
704
+ "anonymous": false
705
+ },
706
+ {
707
+ "type": "event",
708
+ "name": "log_array",
709
+ "inputs": [
710
+ {
711
+ "name": "val",
712
+ "type": "uint256[]",
713
+ "indexed": false,
714
+ "internalType": "uint256[]"
715
+ }
716
+ ],
717
+ "anonymous": false
718
+ },
719
+ {
720
+ "type": "event",
721
+ "name": "log_array",
722
+ "inputs": [
723
+ {
724
+ "name": "val",
725
+ "type": "int256[]",
726
+ "indexed": false,
727
+ "internalType": "int256[]"
728
+ }
729
+ ],
730
+ "anonymous": false
731
+ },
732
+ {
733
+ "type": "event",
734
+ "name": "log_array",
735
+ "inputs": [
736
+ {
737
+ "name": "val",
738
+ "type": "address[]",
739
+ "indexed": false,
740
+ "internalType": "address[]"
741
+ }
742
+ ],
743
+ "anonymous": false
744
+ },
745
+ {
746
+ "type": "event",
747
+ "name": "log_bytes",
748
+ "inputs": [
749
+ {
750
+ "name": "",
751
+ "type": "bytes",
752
+ "indexed": false,
753
+ "internalType": "bytes"
754
+ }
755
+ ],
756
+ "anonymous": false
757
+ },
758
+ {
759
+ "type": "event",
760
+ "name": "log_bytes32",
761
+ "inputs": [
762
+ {
763
+ "name": "",
764
+ "type": "bytes32",
765
+ "indexed": false,
766
+ "internalType": "bytes32"
767
+ }
768
+ ],
769
+ "anonymous": false
770
+ },
771
+ {
772
+ "type": "event",
773
+ "name": "log_int",
774
+ "inputs": [
775
+ {
776
+ "name": "",
777
+ "type": "int256",
778
+ "indexed": false,
779
+ "internalType": "int256"
780
+ }
781
+ ],
782
+ "anonymous": false
783
+ },
784
+ {
785
+ "type": "event",
786
+ "name": "log_named_address",
787
+ "inputs": [
788
+ {
789
+ "name": "key",
790
+ "type": "string",
791
+ "indexed": false,
792
+ "internalType": "string"
793
+ },
794
+ {
795
+ "name": "val",
796
+ "type": "address",
797
+ "indexed": false,
798
+ "internalType": "address"
799
+ }
800
+ ],
801
+ "anonymous": false
802
+ },
803
+ {
804
+ "type": "event",
805
+ "name": "log_named_array",
806
+ "inputs": [
807
+ {
808
+ "name": "key",
809
+ "type": "string",
810
+ "indexed": false,
811
+ "internalType": "string"
812
+ },
813
+ {
814
+ "name": "val",
815
+ "type": "uint256[]",
816
+ "indexed": false,
817
+ "internalType": "uint256[]"
818
+ }
819
+ ],
820
+ "anonymous": false
821
+ },
822
+ {
823
+ "type": "event",
824
+ "name": "log_named_array",
825
+ "inputs": [
826
+ {
827
+ "name": "key",
828
+ "type": "string",
829
+ "indexed": false,
830
+ "internalType": "string"
831
+ },
832
+ {
833
+ "name": "val",
834
+ "type": "int256[]",
835
+ "indexed": false,
836
+ "internalType": "int256[]"
837
+ }
838
+ ],
839
+ "anonymous": false
840
+ },
841
+ {
842
+ "type": "event",
843
+ "name": "log_named_array",
844
+ "inputs": [
845
+ {
846
+ "name": "key",
847
+ "type": "string",
848
+ "indexed": false,
849
+ "internalType": "string"
850
+ },
851
+ {
852
+ "name": "val",
853
+ "type": "address[]",
854
+ "indexed": false,
855
+ "internalType": "address[]"
856
+ }
857
+ ],
858
+ "anonymous": false
859
+ },
860
+ {
861
+ "type": "event",
862
+ "name": "log_named_bytes",
863
+ "inputs": [
864
+ {
865
+ "name": "key",
866
+ "type": "string",
867
+ "indexed": false,
868
+ "internalType": "string"
869
+ },
870
+ {
871
+ "name": "val",
872
+ "type": "bytes",
873
+ "indexed": false,
874
+ "internalType": "bytes"
875
+ }
876
+ ],
877
+ "anonymous": false
878
+ },
879
+ {
880
+ "type": "event",
881
+ "name": "log_named_bytes32",
882
+ "inputs": [
883
+ {
884
+ "name": "key",
885
+ "type": "string",
886
+ "indexed": false,
887
+ "internalType": "string"
888
+ },
889
+ {
890
+ "name": "val",
891
+ "type": "bytes32",
892
+ "indexed": false,
893
+ "internalType": "bytes32"
894
+ }
895
+ ],
896
+ "anonymous": false
897
+ },
898
+ {
899
+ "type": "event",
900
+ "name": "log_named_decimal_int",
901
+ "inputs": [
902
+ {
903
+ "name": "key",
904
+ "type": "string",
905
+ "indexed": false,
906
+ "internalType": "string"
907
+ },
908
+ {
909
+ "name": "val",
910
+ "type": "int256",
911
+ "indexed": false,
912
+ "internalType": "int256"
913
+ },
914
+ {
915
+ "name": "decimals",
916
+ "type": "uint256",
917
+ "indexed": false,
918
+ "internalType": "uint256"
919
+ }
920
+ ],
921
+ "anonymous": false
922
+ },
923
+ {
924
+ "type": "event",
925
+ "name": "log_named_decimal_uint",
926
+ "inputs": [
927
+ {
928
+ "name": "key",
929
+ "type": "string",
930
+ "indexed": false,
931
+ "internalType": "string"
932
+ },
933
+ {
934
+ "name": "val",
935
+ "type": "uint256",
936
+ "indexed": false,
937
+ "internalType": "uint256"
938
+ },
939
+ {
940
+ "name": "decimals",
941
+ "type": "uint256",
942
+ "indexed": false,
943
+ "internalType": "uint256"
944
+ }
945
+ ],
946
+ "anonymous": false
947
+ },
948
+ {
949
+ "type": "event",
950
+ "name": "log_named_int",
951
+ "inputs": [
952
+ {
953
+ "name": "key",
954
+ "type": "string",
955
+ "indexed": false,
956
+ "internalType": "string"
957
+ },
958
+ {
959
+ "name": "val",
960
+ "type": "int256",
961
+ "indexed": false,
962
+ "internalType": "int256"
963
+ }
964
+ ],
965
+ "anonymous": false
966
+ },
967
+ {
968
+ "type": "event",
969
+ "name": "log_named_string",
970
+ "inputs": [
971
+ {
972
+ "name": "key",
973
+ "type": "string",
974
+ "indexed": false,
975
+ "internalType": "string"
976
+ },
977
+ {
978
+ "name": "val",
979
+ "type": "string",
980
+ "indexed": false,
981
+ "internalType": "string"
982
+ }
983
+ ],
984
+ "anonymous": false
985
+ },
986
+ {
987
+ "type": "event",
988
+ "name": "log_named_uint",
989
+ "inputs": [
990
+ {
991
+ "name": "key",
992
+ "type": "string",
993
+ "indexed": false,
994
+ "internalType": "string"
995
+ },
996
+ {
997
+ "name": "val",
998
+ "type": "uint256",
999
+ "indexed": false,
1000
+ "internalType": "uint256"
1001
+ }
1002
+ ],
1003
+ "anonymous": false
1004
+ },
1005
+ {
1006
+ "type": "event",
1007
+ "name": "log_string",
1008
+ "inputs": [
1009
+ {
1010
+ "name": "",
1011
+ "type": "string",
1012
+ "indexed": false,
1013
+ "internalType": "string"
1014
+ }
1015
+ ],
1016
+ "anonymous": false
1017
+ },
1018
+ {
1019
+ "type": "event",
1020
+ "name": "log_uint",
1021
+ "inputs": [
1022
+ {
1023
+ "name": "",
1024
+ "type": "uint256",
1025
+ "indexed": false,
1026
+ "internalType": "uint256"
1027
+ }
1028
+ ],
1029
+ "anonymous": false
1030
+ },
1031
+ {
1032
+ "type": "event",
1033
+ "name": "logs",
1034
+ "inputs": [
1035
+ {
1036
+ "name": "",
1037
+ "type": "bytes",
1038
+ "indexed": false,
1039
+ "internalType": "bytes"
1040
+ }
1041
+ ],
1042
+ "anonymous": false
1043
+ },
1044
+ {
1045
+ "type": "error",
1046
+ "name": "Create2EmptyBytecode",
1047
+ "inputs": []
1048
+ },
1049
+ {
1050
+ "type": "error",
1051
+ "name": "Create2FailedDeployment",
1052
+ "inputs": []
1053
+ },
1054
+ {
1055
+ "type": "error",
1056
+ "name": "Create2InsufficientBalance",
1057
+ "inputs": [
1058
+ {
1059
+ "name": "balance",
1060
+ "type": "uint256",
1061
+ "internalType": "uint256"
1062
+ },
1063
+ {
1064
+ "name": "needed",
1065
+ "type": "uint256",
1066
+ "internalType": "uint256"
1067
+ }
1068
+ ]
1069
+ },
1070
+ {
1071
+ "type": "error",
1072
+ "name": "HookNotDeployed",
1073
+ "inputs": []
1074
+ },
1075
+ {
1076
+ "type": "error",
1077
+ "name": "InvalidHookAddress",
1078
+ "inputs": [
1079
+ {
1080
+ "name": "expected",
1081
+ "type": "address",
1082
+ "internalType": "address"
1083
+ },
1084
+ {
1085
+ "name": "actual",
1086
+ "type": "address",
1087
+ "internalType": "address"
1088
+ }
1089
+ ]
1090
+ }
1091
+ ]