@zoralabs/coins 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/.env +1 -0
  2. package/.turbo/turbo-build.log +114 -109
  3. package/.turbo/turbo-update-contract-version.log +22 -0
  4. package/CHANGELOG.md +28 -0
  5. package/abis/BadImpl.json +15 -0
  6. package/abis/BalanceDeltaLibrary.json +15 -0
  7. package/abis/BaseCoin.json +1442 -0
  8. package/abis/BaseCoinDeployHook.json +78 -0
  9. package/abis/BaseHook.json +897 -0
  10. package/abis/BaseTest.json +13 -91
  11. package/abis/BeforeSwapDeltaLibrary.json +15 -0
  12. package/abis/BuySupplyWithSwapRouterHook.json +126 -0
  13. package/abis/Coin.json +48 -92
  14. package/abis/CoinConstants.json +65 -0
  15. package/abis/CoinTest.json +13 -91
  16. package/abis/CoinV4.json +1664 -0
  17. package/abis/CurrencyLibrary.json +25 -0
  18. package/abis/DeployHooks.json +9 -0
  19. package/abis/DopplerUniswapV3Test.json +13 -91
  20. package/abis/FactoryTest.json +13 -91
  21. package/abis/FakeHookNoInterface.json +21 -0
  22. package/abis/HookDeployer.json +68 -0
  23. package/abis/Hooks.json +28 -0
  24. package/abis/HooksTest.json +651 -0
  25. package/abis/IAllowanceTransfer.json +486 -0
  26. package/abis/ICoin.json +25 -1
  27. package/abis/ICoinDeployHook.json +31 -0
  28. package/abis/IContractMetadata.json +28 -0
  29. package/abis/IEIP712.json +15 -0
  30. package/abis/IEIP712_v4.json +15 -0
  31. package/abis/IERC20Minimal.json +172 -0
  32. package/abis/IERC6909Claims.json +288 -0
  33. package/abis/IERC721Permit_v4.json +88 -0
  34. package/abis/IExtsload.json +64 -0
  35. package/abis/IExttload.json +40 -0
  36. package/abis/IHasAfterCoinDeploy.json +31 -0
  37. package/abis/IHasContractName.json +15 -0
  38. package/abis/IHookDeployer.json +42 -0
  39. package/abis/IHooks.json +789 -0
  40. package/abis/IImmutableState.json +15 -0
  41. package/abis/IMulticall_v4.json +21 -0
  42. package/abis/INotifier.json +187 -0
  43. package/abis/IPermit2.json +865 -0
  44. package/abis/IPermit2Forwarder.json +138 -0
  45. package/abis/IPoolInitializer_v4.json +53 -0
  46. package/abis/IPoolManager.json +1286 -0
  47. package/abis/IPositionManager.json +712 -0
  48. package/abis/IProtocolFees.json +174 -0
  49. package/abis/ISignatureTransfer.json +394 -0
  50. package/abis/ISubscriber.json +89 -0
  51. package/abis/ISwapRouter.json +82 -0
  52. package/abis/IUnorderedNonce.json +44 -0
  53. package/abis/IV4Router.json +47 -0
  54. package/abis/IZoraFactory.json +144 -0
  55. package/abis/IZoraV4CoinHook.json +83 -0
  56. package/abis/ImmutableState.json +36 -0
  57. package/abis/LPFeeLibrary.json +65 -0
  58. package/abis/MultiOwnableTest.json +13 -91
  59. package/abis/Simulate.json +0 -91
  60. package/abis/UniV3BuySell.json +12 -0
  61. package/abis/UniV3Errors.json +32 -0
  62. package/abis/UpgradeFactoryImpl.json +9 -0
  63. package/abis/UpgradesTest.json +604 -0
  64. package/abis/ZoraFactoryImpl.json +111 -0
  65. package/abis/ZoraV4CoinHook.json +989 -0
  66. package/addresses/8453.json +2 -1
  67. package/addresses/84532.json +4 -3
  68. package/dist/index.cjs +125 -62
  69. package/dist/index.cjs.map +1 -1
  70. package/dist/index.js +120 -56
  71. package/dist/index.js.map +1 -1
  72. package/dist/wagmiGenerated.d.ts +212 -464
  73. package/dist/wagmiGenerated.d.ts.map +1 -1
  74. package/package/wagmiGenerated.ts +122 -66
  75. package/package.json +4 -4
  76. package/script/CoinsDeployerBase.sol +32 -0
  77. package/script/DeployHooks.s.sol +22 -0
  78. package/script/Simulate.s.sol +3 -2
  79. package/script/UpgradeCoinImpl.sol +2 -2
  80. package/script/UpgradeFactoryImpl.s.sol +23 -0
  81. package/src/Coin.sol +35 -342
  82. package/src/ZoraFactoryImpl.sol +73 -45
  83. package/src/hooks/BaseCoinDeployHook.sol +62 -0
  84. package/src/hooks/BuySupplyWithSwapRouterHook.sol +78 -0
  85. package/src/interfaces/ICoin.sol +5 -1
  86. package/src/interfaces/ICoinDeployHook.sol +8 -0
  87. package/src/interfaces/ISwapRouter.sol +1 -35
  88. package/src/interfaces/IZoraFactory.sol +52 -0
  89. package/src/{utils → libs}/CoinConstants.sol +6 -6
  90. package/src/libs/CoinLegacy.sol +4 -4
  91. package/src/libs/CoinLegacyMarket.sol +182 -0
  92. package/src/libs/CoinSetupV3.sol +111 -0
  93. package/src/libs/UniV3BuySell.sol +449 -0
  94. package/src/libs/UniV3Errors.sol +11 -0
  95. package/src/version/ContractVersionBase.sol +1 -1
  96. package/test/Coin.t.sol +20 -17
  97. package/test/CoinDopplerUniV3.t.sol +7 -17
  98. package/test/Factory.t.sol +4 -3
  99. package/test/Hooks.t.sol +274 -0
  100. package/test/Upgrades.t.sol +67 -0
  101. package/test/utils/BaseTest.sol +18 -3
  102. package/wagmi.config.ts +6 -9
  103. package/src/libs/CoinSetup.sol +0 -37
  104. /package/abis/{CoinSetup.json → CoinSetupV3.json} +0 -0
@@ -0,0 +1,1286 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "allowance",
5
+ "inputs": [
6
+ {
7
+ "name": "owner",
8
+ "type": "address",
9
+ "internalType": "address"
10
+ },
11
+ {
12
+ "name": "spender",
13
+ "type": "address",
14
+ "internalType": "address"
15
+ },
16
+ {
17
+ "name": "id",
18
+ "type": "uint256",
19
+ "internalType": "uint256"
20
+ }
21
+ ],
22
+ "outputs": [
23
+ {
24
+ "name": "amount",
25
+ "type": "uint256",
26
+ "internalType": "uint256"
27
+ }
28
+ ],
29
+ "stateMutability": "view"
30
+ },
31
+ {
32
+ "type": "function",
33
+ "name": "approve",
34
+ "inputs": [
35
+ {
36
+ "name": "spender",
37
+ "type": "address",
38
+ "internalType": "address"
39
+ },
40
+ {
41
+ "name": "id",
42
+ "type": "uint256",
43
+ "internalType": "uint256"
44
+ },
45
+ {
46
+ "name": "amount",
47
+ "type": "uint256",
48
+ "internalType": "uint256"
49
+ }
50
+ ],
51
+ "outputs": [
52
+ {
53
+ "name": "",
54
+ "type": "bool",
55
+ "internalType": "bool"
56
+ }
57
+ ],
58
+ "stateMutability": "nonpayable"
59
+ },
60
+ {
61
+ "type": "function",
62
+ "name": "balanceOf",
63
+ "inputs": [
64
+ {
65
+ "name": "owner",
66
+ "type": "address",
67
+ "internalType": "address"
68
+ },
69
+ {
70
+ "name": "id",
71
+ "type": "uint256",
72
+ "internalType": "uint256"
73
+ }
74
+ ],
75
+ "outputs": [
76
+ {
77
+ "name": "amount",
78
+ "type": "uint256",
79
+ "internalType": "uint256"
80
+ }
81
+ ],
82
+ "stateMutability": "view"
83
+ },
84
+ {
85
+ "type": "function",
86
+ "name": "burn",
87
+ "inputs": [
88
+ {
89
+ "name": "from",
90
+ "type": "address",
91
+ "internalType": "address"
92
+ },
93
+ {
94
+ "name": "id",
95
+ "type": "uint256",
96
+ "internalType": "uint256"
97
+ },
98
+ {
99
+ "name": "amount",
100
+ "type": "uint256",
101
+ "internalType": "uint256"
102
+ }
103
+ ],
104
+ "outputs": [],
105
+ "stateMutability": "nonpayable"
106
+ },
107
+ {
108
+ "type": "function",
109
+ "name": "clear",
110
+ "inputs": [
111
+ {
112
+ "name": "currency",
113
+ "type": "address",
114
+ "internalType": "Currency"
115
+ },
116
+ {
117
+ "name": "amount",
118
+ "type": "uint256",
119
+ "internalType": "uint256"
120
+ }
121
+ ],
122
+ "outputs": [],
123
+ "stateMutability": "nonpayable"
124
+ },
125
+ {
126
+ "type": "function",
127
+ "name": "collectProtocolFees",
128
+ "inputs": [
129
+ {
130
+ "name": "recipient",
131
+ "type": "address",
132
+ "internalType": "address"
133
+ },
134
+ {
135
+ "name": "currency",
136
+ "type": "address",
137
+ "internalType": "Currency"
138
+ },
139
+ {
140
+ "name": "amount",
141
+ "type": "uint256",
142
+ "internalType": "uint256"
143
+ }
144
+ ],
145
+ "outputs": [
146
+ {
147
+ "name": "amountCollected",
148
+ "type": "uint256",
149
+ "internalType": "uint256"
150
+ }
151
+ ],
152
+ "stateMutability": "nonpayable"
153
+ },
154
+ {
155
+ "type": "function",
156
+ "name": "donate",
157
+ "inputs": [
158
+ {
159
+ "name": "key",
160
+ "type": "tuple",
161
+ "internalType": "struct PoolKey",
162
+ "components": [
163
+ {
164
+ "name": "currency0",
165
+ "type": "address",
166
+ "internalType": "Currency"
167
+ },
168
+ {
169
+ "name": "currency1",
170
+ "type": "address",
171
+ "internalType": "Currency"
172
+ },
173
+ {
174
+ "name": "fee",
175
+ "type": "uint24",
176
+ "internalType": "uint24"
177
+ },
178
+ {
179
+ "name": "tickSpacing",
180
+ "type": "int24",
181
+ "internalType": "int24"
182
+ },
183
+ {
184
+ "name": "hooks",
185
+ "type": "address",
186
+ "internalType": "contract IHooks"
187
+ }
188
+ ]
189
+ },
190
+ {
191
+ "name": "amount0",
192
+ "type": "uint256",
193
+ "internalType": "uint256"
194
+ },
195
+ {
196
+ "name": "amount1",
197
+ "type": "uint256",
198
+ "internalType": "uint256"
199
+ },
200
+ {
201
+ "name": "hookData",
202
+ "type": "bytes",
203
+ "internalType": "bytes"
204
+ }
205
+ ],
206
+ "outputs": [
207
+ {
208
+ "name": "",
209
+ "type": "int256",
210
+ "internalType": "BalanceDelta"
211
+ }
212
+ ],
213
+ "stateMutability": "nonpayable"
214
+ },
215
+ {
216
+ "type": "function",
217
+ "name": "extsload",
218
+ "inputs": [
219
+ {
220
+ "name": "slot",
221
+ "type": "bytes32",
222
+ "internalType": "bytes32"
223
+ }
224
+ ],
225
+ "outputs": [
226
+ {
227
+ "name": "value",
228
+ "type": "bytes32",
229
+ "internalType": "bytes32"
230
+ }
231
+ ],
232
+ "stateMutability": "view"
233
+ },
234
+ {
235
+ "type": "function",
236
+ "name": "extsload",
237
+ "inputs": [
238
+ {
239
+ "name": "startSlot",
240
+ "type": "bytes32",
241
+ "internalType": "bytes32"
242
+ },
243
+ {
244
+ "name": "nSlots",
245
+ "type": "uint256",
246
+ "internalType": "uint256"
247
+ }
248
+ ],
249
+ "outputs": [
250
+ {
251
+ "name": "values",
252
+ "type": "bytes32[]",
253
+ "internalType": "bytes32[]"
254
+ }
255
+ ],
256
+ "stateMutability": "view"
257
+ },
258
+ {
259
+ "type": "function",
260
+ "name": "extsload",
261
+ "inputs": [
262
+ {
263
+ "name": "slots",
264
+ "type": "bytes32[]",
265
+ "internalType": "bytes32[]"
266
+ }
267
+ ],
268
+ "outputs": [
269
+ {
270
+ "name": "values",
271
+ "type": "bytes32[]",
272
+ "internalType": "bytes32[]"
273
+ }
274
+ ],
275
+ "stateMutability": "view"
276
+ },
277
+ {
278
+ "type": "function",
279
+ "name": "exttload",
280
+ "inputs": [
281
+ {
282
+ "name": "slots",
283
+ "type": "bytes32[]",
284
+ "internalType": "bytes32[]"
285
+ }
286
+ ],
287
+ "outputs": [
288
+ {
289
+ "name": "values",
290
+ "type": "bytes32[]",
291
+ "internalType": "bytes32[]"
292
+ }
293
+ ],
294
+ "stateMutability": "view"
295
+ },
296
+ {
297
+ "type": "function",
298
+ "name": "exttload",
299
+ "inputs": [
300
+ {
301
+ "name": "slot",
302
+ "type": "bytes32",
303
+ "internalType": "bytes32"
304
+ }
305
+ ],
306
+ "outputs": [
307
+ {
308
+ "name": "value",
309
+ "type": "bytes32",
310
+ "internalType": "bytes32"
311
+ }
312
+ ],
313
+ "stateMutability": "view"
314
+ },
315
+ {
316
+ "type": "function",
317
+ "name": "initialize",
318
+ "inputs": [
319
+ {
320
+ "name": "key",
321
+ "type": "tuple",
322
+ "internalType": "struct PoolKey",
323
+ "components": [
324
+ {
325
+ "name": "currency0",
326
+ "type": "address",
327
+ "internalType": "Currency"
328
+ },
329
+ {
330
+ "name": "currency1",
331
+ "type": "address",
332
+ "internalType": "Currency"
333
+ },
334
+ {
335
+ "name": "fee",
336
+ "type": "uint24",
337
+ "internalType": "uint24"
338
+ },
339
+ {
340
+ "name": "tickSpacing",
341
+ "type": "int24",
342
+ "internalType": "int24"
343
+ },
344
+ {
345
+ "name": "hooks",
346
+ "type": "address",
347
+ "internalType": "contract IHooks"
348
+ }
349
+ ]
350
+ },
351
+ {
352
+ "name": "sqrtPriceX96",
353
+ "type": "uint160",
354
+ "internalType": "uint160"
355
+ }
356
+ ],
357
+ "outputs": [
358
+ {
359
+ "name": "tick",
360
+ "type": "int24",
361
+ "internalType": "int24"
362
+ }
363
+ ],
364
+ "stateMutability": "nonpayable"
365
+ },
366
+ {
367
+ "type": "function",
368
+ "name": "isOperator",
369
+ "inputs": [
370
+ {
371
+ "name": "owner",
372
+ "type": "address",
373
+ "internalType": "address"
374
+ },
375
+ {
376
+ "name": "spender",
377
+ "type": "address",
378
+ "internalType": "address"
379
+ }
380
+ ],
381
+ "outputs": [
382
+ {
383
+ "name": "approved",
384
+ "type": "bool",
385
+ "internalType": "bool"
386
+ }
387
+ ],
388
+ "stateMutability": "view"
389
+ },
390
+ {
391
+ "type": "function",
392
+ "name": "mint",
393
+ "inputs": [
394
+ {
395
+ "name": "to",
396
+ "type": "address",
397
+ "internalType": "address"
398
+ },
399
+ {
400
+ "name": "id",
401
+ "type": "uint256",
402
+ "internalType": "uint256"
403
+ },
404
+ {
405
+ "name": "amount",
406
+ "type": "uint256",
407
+ "internalType": "uint256"
408
+ }
409
+ ],
410
+ "outputs": [],
411
+ "stateMutability": "nonpayable"
412
+ },
413
+ {
414
+ "type": "function",
415
+ "name": "modifyLiquidity",
416
+ "inputs": [
417
+ {
418
+ "name": "key",
419
+ "type": "tuple",
420
+ "internalType": "struct PoolKey",
421
+ "components": [
422
+ {
423
+ "name": "currency0",
424
+ "type": "address",
425
+ "internalType": "Currency"
426
+ },
427
+ {
428
+ "name": "currency1",
429
+ "type": "address",
430
+ "internalType": "Currency"
431
+ },
432
+ {
433
+ "name": "fee",
434
+ "type": "uint24",
435
+ "internalType": "uint24"
436
+ },
437
+ {
438
+ "name": "tickSpacing",
439
+ "type": "int24",
440
+ "internalType": "int24"
441
+ },
442
+ {
443
+ "name": "hooks",
444
+ "type": "address",
445
+ "internalType": "contract IHooks"
446
+ }
447
+ ]
448
+ },
449
+ {
450
+ "name": "params",
451
+ "type": "tuple",
452
+ "internalType": "struct ModifyLiquidityParams",
453
+ "components": [
454
+ {
455
+ "name": "tickLower",
456
+ "type": "int24",
457
+ "internalType": "int24"
458
+ },
459
+ {
460
+ "name": "tickUpper",
461
+ "type": "int24",
462
+ "internalType": "int24"
463
+ },
464
+ {
465
+ "name": "liquidityDelta",
466
+ "type": "int256",
467
+ "internalType": "int256"
468
+ },
469
+ {
470
+ "name": "salt",
471
+ "type": "bytes32",
472
+ "internalType": "bytes32"
473
+ }
474
+ ]
475
+ },
476
+ {
477
+ "name": "hookData",
478
+ "type": "bytes",
479
+ "internalType": "bytes"
480
+ }
481
+ ],
482
+ "outputs": [
483
+ {
484
+ "name": "callerDelta",
485
+ "type": "int256",
486
+ "internalType": "BalanceDelta"
487
+ },
488
+ {
489
+ "name": "feesAccrued",
490
+ "type": "int256",
491
+ "internalType": "BalanceDelta"
492
+ }
493
+ ],
494
+ "stateMutability": "nonpayable"
495
+ },
496
+ {
497
+ "type": "function",
498
+ "name": "protocolFeeController",
499
+ "inputs": [],
500
+ "outputs": [
501
+ {
502
+ "name": "",
503
+ "type": "address",
504
+ "internalType": "address"
505
+ }
506
+ ],
507
+ "stateMutability": "view"
508
+ },
509
+ {
510
+ "type": "function",
511
+ "name": "protocolFeesAccrued",
512
+ "inputs": [
513
+ {
514
+ "name": "currency",
515
+ "type": "address",
516
+ "internalType": "Currency"
517
+ }
518
+ ],
519
+ "outputs": [
520
+ {
521
+ "name": "amount",
522
+ "type": "uint256",
523
+ "internalType": "uint256"
524
+ }
525
+ ],
526
+ "stateMutability": "view"
527
+ },
528
+ {
529
+ "type": "function",
530
+ "name": "setOperator",
531
+ "inputs": [
532
+ {
533
+ "name": "operator",
534
+ "type": "address",
535
+ "internalType": "address"
536
+ },
537
+ {
538
+ "name": "approved",
539
+ "type": "bool",
540
+ "internalType": "bool"
541
+ }
542
+ ],
543
+ "outputs": [
544
+ {
545
+ "name": "",
546
+ "type": "bool",
547
+ "internalType": "bool"
548
+ }
549
+ ],
550
+ "stateMutability": "nonpayable"
551
+ },
552
+ {
553
+ "type": "function",
554
+ "name": "setProtocolFee",
555
+ "inputs": [
556
+ {
557
+ "name": "key",
558
+ "type": "tuple",
559
+ "internalType": "struct PoolKey",
560
+ "components": [
561
+ {
562
+ "name": "currency0",
563
+ "type": "address",
564
+ "internalType": "Currency"
565
+ },
566
+ {
567
+ "name": "currency1",
568
+ "type": "address",
569
+ "internalType": "Currency"
570
+ },
571
+ {
572
+ "name": "fee",
573
+ "type": "uint24",
574
+ "internalType": "uint24"
575
+ },
576
+ {
577
+ "name": "tickSpacing",
578
+ "type": "int24",
579
+ "internalType": "int24"
580
+ },
581
+ {
582
+ "name": "hooks",
583
+ "type": "address",
584
+ "internalType": "contract IHooks"
585
+ }
586
+ ]
587
+ },
588
+ {
589
+ "name": "newProtocolFee",
590
+ "type": "uint24",
591
+ "internalType": "uint24"
592
+ }
593
+ ],
594
+ "outputs": [],
595
+ "stateMutability": "nonpayable"
596
+ },
597
+ {
598
+ "type": "function",
599
+ "name": "setProtocolFeeController",
600
+ "inputs": [
601
+ {
602
+ "name": "controller",
603
+ "type": "address",
604
+ "internalType": "address"
605
+ }
606
+ ],
607
+ "outputs": [],
608
+ "stateMutability": "nonpayable"
609
+ },
610
+ {
611
+ "type": "function",
612
+ "name": "settle",
613
+ "inputs": [],
614
+ "outputs": [
615
+ {
616
+ "name": "paid",
617
+ "type": "uint256",
618
+ "internalType": "uint256"
619
+ }
620
+ ],
621
+ "stateMutability": "payable"
622
+ },
623
+ {
624
+ "type": "function",
625
+ "name": "settleFor",
626
+ "inputs": [
627
+ {
628
+ "name": "recipient",
629
+ "type": "address",
630
+ "internalType": "address"
631
+ }
632
+ ],
633
+ "outputs": [
634
+ {
635
+ "name": "paid",
636
+ "type": "uint256",
637
+ "internalType": "uint256"
638
+ }
639
+ ],
640
+ "stateMutability": "payable"
641
+ },
642
+ {
643
+ "type": "function",
644
+ "name": "swap",
645
+ "inputs": [
646
+ {
647
+ "name": "key",
648
+ "type": "tuple",
649
+ "internalType": "struct PoolKey",
650
+ "components": [
651
+ {
652
+ "name": "currency0",
653
+ "type": "address",
654
+ "internalType": "Currency"
655
+ },
656
+ {
657
+ "name": "currency1",
658
+ "type": "address",
659
+ "internalType": "Currency"
660
+ },
661
+ {
662
+ "name": "fee",
663
+ "type": "uint24",
664
+ "internalType": "uint24"
665
+ },
666
+ {
667
+ "name": "tickSpacing",
668
+ "type": "int24",
669
+ "internalType": "int24"
670
+ },
671
+ {
672
+ "name": "hooks",
673
+ "type": "address",
674
+ "internalType": "contract IHooks"
675
+ }
676
+ ]
677
+ },
678
+ {
679
+ "name": "params",
680
+ "type": "tuple",
681
+ "internalType": "struct SwapParams",
682
+ "components": [
683
+ {
684
+ "name": "zeroForOne",
685
+ "type": "bool",
686
+ "internalType": "bool"
687
+ },
688
+ {
689
+ "name": "amountSpecified",
690
+ "type": "int256",
691
+ "internalType": "int256"
692
+ },
693
+ {
694
+ "name": "sqrtPriceLimitX96",
695
+ "type": "uint160",
696
+ "internalType": "uint160"
697
+ }
698
+ ]
699
+ },
700
+ {
701
+ "name": "hookData",
702
+ "type": "bytes",
703
+ "internalType": "bytes"
704
+ }
705
+ ],
706
+ "outputs": [
707
+ {
708
+ "name": "swapDelta",
709
+ "type": "int256",
710
+ "internalType": "BalanceDelta"
711
+ }
712
+ ],
713
+ "stateMutability": "nonpayable"
714
+ },
715
+ {
716
+ "type": "function",
717
+ "name": "sync",
718
+ "inputs": [
719
+ {
720
+ "name": "currency",
721
+ "type": "address",
722
+ "internalType": "Currency"
723
+ }
724
+ ],
725
+ "outputs": [],
726
+ "stateMutability": "nonpayable"
727
+ },
728
+ {
729
+ "type": "function",
730
+ "name": "take",
731
+ "inputs": [
732
+ {
733
+ "name": "currency",
734
+ "type": "address",
735
+ "internalType": "Currency"
736
+ },
737
+ {
738
+ "name": "to",
739
+ "type": "address",
740
+ "internalType": "address"
741
+ },
742
+ {
743
+ "name": "amount",
744
+ "type": "uint256",
745
+ "internalType": "uint256"
746
+ }
747
+ ],
748
+ "outputs": [],
749
+ "stateMutability": "nonpayable"
750
+ },
751
+ {
752
+ "type": "function",
753
+ "name": "transfer",
754
+ "inputs": [
755
+ {
756
+ "name": "receiver",
757
+ "type": "address",
758
+ "internalType": "address"
759
+ },
760
+ {
761
+ "name": "id",
762
+ "type": "uint256",
763
+ "internalType": "uint256"
764
+ },
765
+ {
766
+ "name": "amount",
767
+ "type": "uint256",
768
+ "internalType": "uint256"
769
+ }
770
+ ],
771
+ "outputs": [
772
+ {
773
+ "name": "",
774
+ "type": "bool",
775
+ "internalType": "bool"
776
+ }
777
+ ],
778
+ "stateMutability": "nonpayable"
779
+ },
780
+ {
781
+ "type": "function",
782
+ "name": "transferFrom",
783
+ "inputs": [
784
+ {
785
+ "name": "sender",
786
+ "type": "address",
787
+ "internalType": "address"
788
+ },
789
+ {
790
+ "name": "receiver",
791
+ "type": "address",
792
+ "internalType": "address"
793
+ },
794
+ {
795
+ "name": "id",
796
+ "type": "uint256",
797
+ "internalType": "uint256"
798
+ },
799
+ {
800
+ "name": "amount",
801
+ "type": "uint256",
802
+ "internalType": "uint256"
803
+ }
804
+ ],
805
+ "outputs": [
806
+ {
807
+ "name": "",
808
+ "type": "bool",
809
+ "internalType": "bool"
810
+ }
811
+ ],
812
+ "stateMutability": "nonpayable"
813
+ },
814
+ {
815
+ "type": "function",
816
+ "name": "unlock",
817
+ "inputs": [
818
+ {
819
+ "name": "data",
820
+ "type": "bytes",
821
+ "internalType": "bytes"
822
+ }
823
+ ],
824
+ "outputs": [
825
+ {
826
+ "name": "",
827
+ "type": "bytes",
828
+ "internalType": "bytes"
829
+ }
830
+ ],
831
+ "stateMutability": "nonpayable"
832
+ },
833
+ {
834
+ "type": "function",
835
+ "name": "updateDynamicLPFee",
836
+ "inputs": [
837
+ {
838
+ "name": "key",
839
+ "type": "tuple",
840
+ "internalType": "struct PoolKey",
841
+ "components": [
842
+ {
843
+ "name": "currency0",
844
+ "type": "address",
845
+ "internalType": "Currency"
846
+ },
847
+ {
848
+ "name": "currency1",
849
+ "type": "address",
850
+ "internalType": "Currency"
851
+ },
852
+ {
853
+ "name": "fee",
854
+ "type": "uint24",
855
+ "internalType": "uint24"
856
+ },
857
+ {
858
+ "name": "tickSpacing",
859
+ "type": "int24",
860
+ "internalType": "int24"
861
+ },
862
+ {
863
+ "name": "hooks",
864
+ "type": "address",
865
+ "internalType": "contract IHooks"
866
+ }
867
+ ]
868
+ },
869
+ {
870
+ "name": "newDynamicLPFee",
871
+ "type": "uint24",
872
+ "internalType": "uint24"
873
+ }
874
+ ],
875
+ "outputs": [],
876
+ "stateMutability": "nonpayable"
877
+ },
878
+ {
879
+ "type": "event",
880
+ "name": "Approval",
881
+ "inputs": [
882
+ {
883
+ "name": "owner",
884
+ "type": "address",
885
+ "indexed": true,
886
+ "internalType": "address"
887
+ },
888
+ {
889
+ "name": "spender",
890
+ "type": "address",
891
+ "indexed": true,
892
+ "internalType": "address"
893
+ },
894
+ {
895
+ "name": "id",
896
+ "type": "uint256",
897
+ "indexed": true,
898
+ "internalType": "uint256"
899
+ },
900
+ {
901
+ "name": "amount",
902
+ "type": "uint256",
903
+ "indexed": false,
904
+ "internalType": "uint256"
905
+ }
906
+ ],
907
+ "anonymous": false
908
+ },
909
+ {
910
+ "type": "event",
911
+ "name": "Donate",
912
+ "inputs": [
913
+ {
914
+ "name": "id",
915
+ "type": "bytes32",
916
+ "indexed": true,
917
+ "internalType": "PoolId"
918
+ },
919
+ {
920
+ "name": "sender",
921
+ "type": "address",
922
+ "indexed": true,
923
+ "internalType": "address"
924
+ },
925
+ {
926
+ "name": "amount0",
927
+ "type": "uint256",
928
+ "indexed": false,
929
+ "internalType": "uint256"
930
+ },
931
+ {
932
+ "name": "amount1",
933
+ "type": "uint256",
934
+ "indexed": false,
935
+ "internalType": "uint256"
936
+ }
937
+ ],
938
+ "anonymous": false
939
+ },
940
+ {
941
+ "type": "event",
942
+ "name": "Initialize",
943
+ "inputs": [
944
+ {
945
+ "name": "id",
946
+ "type": "bytes32",
947
+ "indexed": true,
948
+ "internalType": "PoolId"
949
+ },
950
+ {
951
+ "name": "currency0",
952
+ "type": "address",
953
+ "indexed": true,
954
+ "internalType": "Currency"
955
+ },
956
+ {
957
+ "name": "currency1",
958
+ "type": "address",
959
+ "indexed": true,
960
+ "internalType": "Currency"
961
+ },
962
+ {
963
+ "name": "fee",
964
+ "type": "uint24",
965
+ "indexed": false,
966
+ "internalType": "uint24"
967
+ },
968
+ {
969
+ "name": "tickSpacing",
970
+ "type": "int24",
971
+ "indexed": false,
972
+ "internalType": "int24"
973
+ },
974
+ {
975
+ "name": "hooks",
976
+ "type": "address",
977
+ "indexed": false,
978
+ "internalType": "contract IHooks"
979
+ },
980
+ {
981
+ "name": "sqrtPriceX96",
982
+ "type": "uint160",
983
+ "indexed": false,
984
+ "internalType": "uint160"
985
+ },
986
+ {
987
+ "name": "tick",
988
+ "type": "int24",
989
+ "indexed": false,
990
+ "internalType": "int24"
991
+ }
992
+ ],
993
+ "anonymous": false
994
+ },
995
+ {
996
+ "type": "event",
997
+ "name": "ModifyLiquidity",
998
+ "inputs": [
999
+ {
1000
+ "name": "id",
1001
+ "type": "bytes32",
1002
+ "indexed": true,
1003
+ "internalType": "PoolId"
1004
+ },
1005
+ {
1006
+ "name": "sender",
1007
+ "type": "address",
1008
+ "indexed": true,
1009
+ "internalType": "address"
1010
+ },
1011
+ {
1012
+ "name": "tickLower",
1013
+ "type": "int24",
1014
+ "indexed": false,
1015
+ "internalType": "int24"
1016
+ },
1017
+ {
1018
+ "name": "tickUpper",
1019
+ "type": "int24",
1020
+ "indexed": false,
1021
+ "internalType": "int24"
1022
+ },
1023
+ {
1024
+ "name": "liquidityDelta",
1025
+ "type": "int256",
1026
+ "indexed": false,
1027
+ "internalType": "int256"
1028
+ },
1029
+ {
1030
+ "name": "salt",
1031
+ "type": "bytes32",
1032
+ "indexed": false,
1033
+ "internalType": "bytes32"
1034
+ }
1035
+ ],
1036
+ "anonymous": false
1037
+ },
1038
+ {
1039
+ "type": "event",
1040
+ "name": "OperatorSet",
1041
+ "inputs": [
1042
+ {
1043
+ "name": "owner",
1044
+ "type": "address",
1045
+ "indexed": true,
1046
+ "internalType": "address"
1047
+ },
1048
+ {
1049
+ "name": "operator",
1050
+ "type": "address",
1051
+ "indexed": true,
1052
+ "internalType": "address"
1053
+ },
1054
+ {
1055
+ "name": "approved",
1056
+ "type": "bool",
1057
+ "indexed": false,
1058
+ "internalType": "bool"
1059
+ }
1060
+ ],
1061
+ "anonymous": false
1062
+ },
1063
+ {
1064
+ "type": "event",
1065
+ "name": "ProtocolFeeControllerUpdated",
1066
+ "inputs": [
1067
+ {
1068
+ "name": "protocolFeeController",
1069
+ "type": "address",
1070
+ "indexed": true,
1071
+ "internalType": "address"
1072
+ }
1073
+ ],
1074
+ "anonymous": false
1075
+ },
1076
+ {
1077
+ "type": "event",
1078
+ "name": "ProtocolFeeUpdated",
1079
+ "inputs": [
1080
+ {
1081
+ "name": "id",
1082
+ "type": "bytes32",
1083
+ "indexed": true,
1084
+ "internalType": "PoolId"
1085
+ },
1086
+ {
1087
+ "name": "protocolFee",
1088
+ "type": "uint24",
1089
+ "indexed": false,
1090
+ "internalType": "uint24"
1091
+ }
1092
+ ],
1093
+ "anonymous": false
1094
+ },
1095
+ {
1096
+ "type": "event",
1097
+ "name": "Swap",
1098
+ "inputs": [
1099
+ {
1100
+ "name": "id",
1101
+ "type": "bytes32",
1102
+ "indexed": true,
1103
+ "internalType": "PoolId"
1104
+ },
1105
+ {
1106
+ "name": "sender",
1107
+ "type": "address",
1108
+ "indexed": true,
1109
+ "internalType": "address"
1110
+ },
1111
+ {
1112
+ "name": "amount0",
1113
+ "type": "int128",
1114
+ "indexed": false,
1115
+ "internalType": "int128"
1116
+ },
1117
+ {
1118
+ "name": "amount1",
1119
+ "type": "int128",
1120
+ "indexed": false,
1121
+ "internalType": "int128"
1122
+ },
1123
+ {
1124
+ "name": "sqrtPriceX96",
1125
+ "type": "uint160",
1126
+ "indexed": false,
1127
+ "internalType": "uint160"
1128
+ },
1129
+ {
1130
+ "name": "liquidity",
1131
+ "type": "uint128",
1132
+ "indexed": false,
1133
+ "internalType": "uint128"
1134
+ },
1135
+ {
1136
+ "name": "tick",
1137
+ "type": "int24",
1138
+ "indexed": false,
1139
+ "internalType": "int24"
1140
+ },
1141
+ {
1142
+ "name": "fee",
1143
+ "type": "uint24",
1144
+ "indexed": false,
1145
+ "internalType": "uint24"
1146
+ }
1147
+ ],
1148
+ "anonymous": false
1149
+ },
1150
+ {
1151
+ "type": "event",
1152
+ "name": "Transfer",
1153
+ "inputs": [
1154
+ {
1155
+ "name": "caller",
1156
+ "type": "address",
1157
+ "indexed": false,
1158
+ "internalType": "address"
1159
+ },
1160
+ {
1161
+ "name": "from",
1162
+ "type": "address",
1163
+ "indexed": true,
1164
+ "internalType": "address"
1165
+ },
1166
+ {
1167
+ "name": "to",
1168
+ "type": "address",
1169
+ "indexed": true,
1170
+ "internalType": "address"
1171
+ },
1172
+ {
1173
+ "name": "id",
1174
+ "type": "uint256",
1175
+ "indexed": true,
1176
+ "internalType": "uint256"
1177
+ },
1178
+ {
1179
+ "name": "amount",
1180
+ "type": "uint256",
1181
+ "indexed": false,
1182
+ "internalType": "uint256"
1183
+ }
1184
+ ],
1185
+ "anonymous": false
1186
+ },
1187
+ {
1188
+ "type": "error",
1189
+ "name": "AlreadyUnlocked",
1190
+ "inputs": []
1191
+ },
1192
+ {
1193
+ "type": "error",
1194
+ "name": "CurrenciesOutOfOrderOrEqual",
1195
+ "inputs": [
1196
+ {
1197
+ "name": "currency0",
1198
+ "type": "address",
1199
+ "internalType": "address"
1200
+ },
1201
+ {
1202
+ "name": "currency1",
1203
+ "type": "address",
1204
+ "internalType": "address"
1205
+ }
1206
+ ]
1207
+ },
1208
+ {
1209
+ "type": "error",
1210
+ "name": "CurrencyNotSettled",
1211
+ "inputs": []
1212
+ },
1213
+ {
1214
+ "type": "error",
1215
+ "name": "InvalidCaller",
1216
+ "inputs": []
1217
+ },
1218
+ {
1219
+ "type": "error",
1220
+ "name": "ManagerLocked",
1221
+ "inputs": []
1222
+ },
1223
+ {
1224
+ "type": "error",
1225
+ "name": "MustClearExactPositiveDelta",
1226
+ "inputs": []
1227
+ },
1228
+ {
1229
+ "type": "error",
1230
+ "name": "NonzeroNativeValue",
1231
+ "inputs": []
1232
+ },
1233
+ {
1234
+ "type": "error",
1235
+ "name": "PoolNotInitialized",
1236
+ "inputs": []
1237
+ },
1238
+ {
1239
+ "type": "error",
1240
+ "name": "ProtocolFeeCurrencySynced",
1241
+ "inputs": []
1242
+ },
1243
+ {
1244
+ "type": "error",
1245
+ "name": "ProtocolFeeTooLarge",
1246
+ "inputs": [
1247
+ {
1248
+ "name": "fee",
1249
+ "type": "uint24",
1250
+ "internalType": "uint24"
1251
+ }
1252
+ ]
1253
+ },
1254
+ {
1255
+ "type": "error",
1256
+ "name": "SwapAmountCannotBeZero",
1257
+ "inputs": []
1258
+ },
1259
+ {
1260
+ "type": "error",
1261
+ "name": "TickSpacingTooLarge",
1262
+ "inputs": [
1263
+ {
1264
+ "name": "tickSpacing",
1265
+ "type": "int24",
1266
+ "internalType": "int24"
1267
+ }
1268
+ ]
1269
+ },
1270
+ {
1271
+ "type": "error",
1272
+ "name": "TickSpacingTooSmall",
1273
+ "inputs": [
1274
+ {
1275
+ "name": "tickSpacing",
1276
+ "type": "int24",
1277
+ "internalType": "int24"
1278
+ }
1279
+ ]
1280
+ },
1281
+ {
1282
+ "type": "error",
1283
+ "name": "UnauthorizedDynamicLPFeeUpdate",
1284
+ "inputs": []
1285
+ }
1286
+ ]